Les dejo algo que es simple pero muy importante para poder actualizar las direcciones fiscales y de entrega por medio de Service Layer sin que les marque errores como por ejemplo "This entry already exists in the following tables (ODBC -2035)", al utilizar el endpoint PATCH: https://tudominio:50000/b1s/v1/BusinessPartners('C010').
Para que Service Layer pueda identificar que dirección es la que queremos modificar debemos agregar el atributo Row en el Json a enviar como se muestra abajo:
"BPAddresses": [
{
"AddressName": "Billing Address",
"Street": "Marine Drive",
"Block": null,
"ZipCode": "12345",
"City": "NEWPORT",
"Country": "US",
"State": "OR",
"BuildingFloorRoom": "",
"AddressType": "bo_BillTo",
"StreetNo": null,
"BPCode": "T10360",
"RowNum": 0,
"GlobalLocationNumber": null,
"Nationality": null,
"TaxOffice": null,
"GSTIN": null,
"GstType": null,
"U_WBCUSTADDID": null,
"U_TelNo": null
},
El valor de este atributo, lo encuentran en la tabla CRD1 en su campo llamado LineNum con ayuda de está consulta:
SELECT "LineNum" FROM CRD1 WHERE "AdresType" = 'B' AND address = 'Nombre Dirección' AND CardCode = 'C010'esType" = 'B' AND address = 'Nombre Dirección' AND CardCode = 'C010'.
¡Saludos!