javascript - NetSuite - 获取订单项 ID

标签 javascript netsuite suitescript

我有这样一个场景:系统 A 创建包含订单项的发票并推送到 NetSuite。稍后,系统 A 中的发票可能已被修改,其中行项目被更新或删除并推回 NetSuite。我们如何知道哪些行项目已被修改或删除?系统 A 应该发回线路 ID 吗?在那种情况下,我正在尝试弄清楚如何获取行项目 ID,但它没有返回值。

for (var x = 1; x <= itemcount; x++)
	{
	var lineid = nlapiGetLineItemValue('item', 'linenumber', x)
	nlapiLogExecution('DEBUG', 'removing  =  ', lineid);
		if(lineid == 1)
		{
            nlapiLogExecution('DEBUG', 'removing line item 1');
			nlapiRemoveLineItem('item', x)
		}
	}

最佳答案

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

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

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

例如,带有 SQL 表的外部系统存储一个 SalesOrder,它在该表中有一个 id 列,而且 SOLineItem 表存储相应的 salesorder 行项目也包含标识列。

现在,记录 ID 必须作为 SO 的 externalid 传递给 JSON,对于 JSON 中的项目对象,lineitems id 必须作为 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
        }
      ]
}

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

关于javascript - NetSuite - 获取订单项 ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36431354/

相关文章:

netsuite - 套件脚本 2.0 : How can I update the externalID through Script

javascript - 将参数传递给 lodash _.result

javascript - 最快的 PHP 相当于 javascript `var a = var1||var2||var3;` 表达式

javascript - nlapiSearchRecord 发送错误而不是空值

webstorm - 在 WebStorm 上部署时出现 netsuite SDF 错误

javascript - SuiteScript 1.0 - nlobjSearchFilter 包含无效的搜索条件 : Searching custom record

javascript - 如何使用 nlapiAddMonths 设置 trandate 后 2 个月的字段值? (在客户端脚本中)

javascript - 从 ScrollContainer 传递事件

javascript - 在标题移回页面顶部后将文本保持在原位

netsuite - 如何访问 Netsuite 错误日志