Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript NetSuite-获取行项目ID_Javascript_Netsuite_Suitescript - Fatal编程技术网

Javascript NetSuite-获取行项目ID

Javascript NetSuite-获取行项目ID,javascript,netsuite,suitescript,Javascript,Netsuite,Suitescript,我有这样一个场景:系统a使用行项目创建发票,并将其推入NetSuite。稍后,可能会修改系统A中的发票,其中行项目会被更新或删除并推回到NetSuite中。我们如何知道哪些行项目已被修改或删除?系统A应该发回线路id吗?在这种情况下,我试图找出如何获取行项目Id,但它没有返回值 for(var x=1;x我们没有发现NetSuite的行号或其他此类字段是识别行项目的可靠方法。每当行被重新排序或修改时,它们似乎会在记录的整个生命周期内发生变化 过去,我们通过添加一个自定义事务列字段(称为Uniq

我有这样一个场景:系统a使用行项目创建发票,并将其推入NetSuite。稍后,可能会修改系统A中的发票,其中行项目会被更新或删除并推回到NetSuite中。我们如何知道哪些行项目已被修改或删除?系统A应该发回线路id吗?在这种情况下,我试图找出如何获取行项目Id,但它没有返回值


for(var x=1;x我们没有发现NetSuite的
行号
或其他此类字段是识别行项目的可靠方法。每当行被重新排序或修改时,它们似乎会在记录的整个生命周期内发生变化


过去,我们通过添加一个自定义事务列字段(称为Unique ID或Line ID或任何您想要的内容)来实现这一点。然后,NetSuite或外部系统可以为每一行生成UUID并将其存储在自定义列中。只要两个系统都为每一行维护对UUID的引用,您就可以保留它们是同步的。

我们没有发现NetSuite的
行号
或其他类似字段是识别行项目的可靠方法。只要行被重新排序或修改,它们似乎会在记录的整个生命周期内发生变化


过去,我们通过添加一个自定义事务列字段(称为Unique ID或Line ID或任何您想要的内容)来实现这一点。然后,NetSuite或外部系统可以为每一行生成UUID并将其存储在自定义列中。只要两个系统都为每一行维护对UUID的引用,您就可以保留它们是同步的。

使用自定义事务列字段处理NS之间的数据同步以及使用RESTlet与外部系统之间的数据同步是一件好事。但我们有一个内置选项来执行此操作,这是执行此操作的标准方法

ExternalId是可用于记录和行项目的标准列,可用于更新/删除记录上的行项目

此ExternalId无法在NS记录的UI中查看。它可以与存储在外部系统中的recordid一起存储

例如,带有SQL表的外部系统存储一个SalesOrder,该表中有一个id列,SOLineItem表存储SalesOrder的相应lineitem,还包含identity列

现在,记录id必须作为SO的外部id传递给JSON,而lineitems id必须作为JSON中items对象下lineitems的外部id传递给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
        }
      ]
}

如果您注意到示例JSON,它在item sublist中有一个名为isremove的属性。如果该属性设置为true,则必须删除相应的行项目。

使用自定义事务列字段的方法对于处理NS之间的数据同步以及使用RESTlet与外部系统之间的数据同步是一件好事。但是我们有一个内置的t选项执行此操作,这是执行此操作的标准方式

ExternalId是可用于记录和行项目的标准列,可用于更新/删除记录上的行项目

此ExternalId无法在NS记录的UI中查看。它可以与存储在外部系统中的recordid一起存储

例如,带有SQL表的外部系统存储一个SalesOrder,该表中有一个id列,SOLineItem表存储SalesOrder的相应lineitem,还包含identity列

现在,记录id必须作为SO的外部id传递给JSON,而lineitems id必须作为JSON中items对象下lineitems的外部id传递给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
        }
      ]
}

如果您注意到示例JSON,它在item子列表中有一个名为isremove的属性。如果该属性设置为true,则必须删除相应的行项目。

谢谢-我将采用这种方法。因此,如果发送给NetSuite的原始发票有三个行项目,而后来修改的版本有两个行项目…我可以比较客户如果没有匹配项,我可以假设它已被删除,因此在NetSuite中删除发票上的行项目。但我如何知道行项目的字段是否已更新?您必须手动比较所有感兴趣的字段值。我建议将每行上的值解析为具有相同结构的JS对象e作为JSON中的行对象。然后您可以比较这两个对象。谢谢-我将采用这种方法。因此,如果发送给NetSuite的原始发票有三个行项目,而后来修改的版本有两个行项目…我可以比较自定义ID,如果没有匹配项,我可以假设它已被删除,从而删除inv上的行项目NetSuite中的oice。但我如何知道行项目的字段是否已更新?您必须手动比较所有感兴趣的字段值。我建议将每行上的值解析为JSON中与行对象结构相同的JS对象。然后您可以比较这两个对象。感谢Frederick-将有一个去吧。让我知道结果:)谢谢弗雷德里克-会去的。让我知道结果:)