【问题标题】:Netsuite - Unable to get sublist line countNetsuite - 无法获取子列表行数
【发布时间】:2018-09-04 18:44:40
【问题描述】:

我正在使用预定脚本来获取客户记录中子列表的行数,以便循环浏览该列表。列表项是自定义记录类型 (SOW_rec) 并且是客户的子项。我能够加载记录,但无论我尝试使用哪个子列表 ID,lineCount 都只返回 -1。如何找到子列表处于父子关系的子列表 ID?我曾尝试查看 &XML=T,但其中没有子列表数据。

 var companyRecord = record.load({
        type: record.Type.CUSTOMER, 
        id: company,
        isDynamic: true,
    });
    log.debug({
        title: 'companyrecord', 
        details: companyRecord
     });
    var lineCount = companyRecord.getLineCount('SOW_Rec');

    log.debug({
        title: 'linecount', 
        details: lineCount
     });

【问题讨论】:

    标签: netsuite suitescript suitescript2.0


    【解决方案1】:

    选中您尝试使用.getLineCount 命令访问的子记录上的“允许子记录编辑”复选框。

    另外,正如 dcrs 所提到的,linecount 命令应该是var lineCount = companyRecord.getLineCount({sublistId:"RECMACHCUSTRECORD...."});

    【讨论】:

    • 与此答案一样古老,应在培训材料中提及。当我今天早些时候拔头发时,这对我帮助很大,我似乎无法在 Employee > Custom Record 关系中提取 recmach 记录。
    【解决方案2】:

    NetSuite 帮助文章 65795 详细介绍了自定义子记录子列表 ID 的命名约定

    自定义子记录子列表的内部 ID 为 recmach + > field_id_for_the_parent_field(例如:recmachcustrecord111)。

    NetSuite 要求 Id 全部小写。

    【讨论】:

      【解决方案3】:

      您的行数代码不正确。您缺少子列表所需的参数。如果这是一条子记录,它将通过选中“记录是父级”的字段链接。

      var lineCount = companyRecord.getLineCount({sublistId:"RECMACHCUSTRECORD...."});
      

      【讨论】:

      • 在获得 netsuite 支持后,我们发现您需要在自定义记录类型上检查“允许子记录编辑”设置。
      【解决方案4】:

      当我查看客户记录的 XML 结构时(使用 &xml=T 附加到 URL),我可以看到那里的子列表数据。但是,为了彻底混淆,NetSuite 将相关的 XML 元素称为 <machine> 而不是 <sublist> 或您可能自然想到的名称。因此,在使用 &xml=T 加载客户记录后尝试在客户记录上搜索“机器” - 您应该会看到对它的多个引用(每个子列表的打开和关闭标签),每个引用都带有 <line> 子元素。

      找到<machine> 元素后,您会看到每个元素都有一个name 属性,这是您要查找的子列表ID。

      【讨论】:

      • 我终于在客户记录自定义表单XML结构中找到了子列表ID。由于某种原因,子列表 ID 元素不在常规客户记录 XML 中。我认为这可能是因为子列表由子记录填充。但是子列表 ID 仍然不起作用,当有 6 行时,我得到 0 行数。在我得到 -1 之前,我猜要好一点。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      • 2022-10-22
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-07-11
      • 2021-08-18
      相关资源
      最近更新 更多