我们正在使用REST API来 Upsert客户记录。PUT中包括地址记录。
每次我们发送PUT时,客户记录都会按预期更新。问题是,每次我们运行请求时,一个新的地址被添加到地址簿中。
"companyName"=> $result['CLIENTNAME'],
"email"=> '',
"emailPreference"=> "PDF",
"emailTransactions"=> false,
"externalId"=> $netsuiteCustomerId,
"isinactive"=> false,
"phone"=> $result['TELEPHONENO'],
"subsidiary"=> ["id"=> "2"],
"terms"=> ["externalId"=> "PTTRM".$result["TERMID"]],
"vatRegNumber"=> $result['ABN'],
"addressbook" => array(
"items" => array(
array(
"label"=> $address['addr1'],
"addressbookaddress" => $address = array(
"addr1" => $result['ADDRESS1'],
"addressee" => $result['CLIENTNAME'],
"addrText"=> $result['ADDRESS1']."\n".$result['ADDRESS2'],
"externalId" => 'ADDR_'.$netsuiteCustomerId,
);
)
)
)
添加 externalId
到地址似乎并不奏效。我们有多个相同ID的地址。SOAP API允许一个 replaceAll
属性,但在REST API上并不存在。
我还没有尝试过这样做,但你可能想再次检查文档(https:/docs.oracle.comcloudlatestnetsuitecs_gsNSTRWNSTRW.pdf。). 它显示了在查询参数中使用'replace'替换子列表的示例。
REST API浏览器也在请求参数下提到了'replace'。