カスタムトランザクション列フィールドのアプローチは、NSとRESTletを使用する外部システムとの間のデータの同期に対処するための良い方法です。しかし、これを実行するための組み込みオプションがあり、これが標準的な方法です。
ExternalIdは、レコードおよびラインアイテムで使用できる標準カラムです。これは、レコードのラインアイテムの更新/削除に使用できます。
このExternalIdは、NSレコードのUIでは表示できません。これは、外部システムに格納されているrecordidで保存することができます。
例として、SQLテーブルを持つ外部システムにはSalesOrderが格納され、そのテーブルにはid列があり、salesorderの各行項目にはID列も格納されているSOLineItemテーブルが格納されています。
これで、レコードIDはSOのexternalidとしてJSONに渡されなければなりません。また、lineitems idは、JSONのitemsオブジェクトのlineitemsのexternalidとしてJSONに渡されなければなりません。
サンプルJSON
{
"internalid": "",
"recordtype": "salesorder",
"entity": "3217",
"salesrep": "3209",
"terms": "2",
"trandate": "6\/16\/2014",
"orderstatus": "A",
"otherrefnum": "245852",
"billaddress":"",
"shipaddress":"",
"externalid": "FF160614-SO03", //ID of SO record on SO SQL table
"item": [
{
"isremove":"",
"internalid": "",
"item": "486",
"amount": "50",
"quantity": "5",
"externalid": "FF160614-SO03-L1-INV-486" //ID of LineItems record SOLineItem SQL table
},
{
"isremove":"",
"internalid": "",
"item": "700",
"amount": "100",
"quantity": "1",
"externalid": "FF160614-SO03-L2-GRP-700A" //ID of LineItems record SOLineItem SQL table
}
]
}
あなたはそれが項目のサブリストにisremoveと呼ばれる性質を持っているサンプルJSONに気づいた場合。 trueに設定すると、それぞれの広告申込情報を削除する必要があります。
ありがとうございます - 私はそのアプローチをとるでしょう。したがって、NetSuiteに送信された元の請求書に3つの広告申込情報があって、後で修正されたバージョンに2つの広告申込情報がある場合...カスタムIDを比較できます。一致しない場合は削除されたと見なすことができますNetSuiteの請求書。しかし、広告申込情報のフィールドが更新されたかどうかはどのように分かりますか? – MG2016
興味のあるフィールド値をすべて手動で比較する必要があります。JSONのラインオブジェクトと同じ構造のJSオブジェクトに各行の値を解析することをお勧めします。次に、2つのオブジェクトを比較できます。 – erictgrubaugh