Netsuite - 无法获取子列表行数

Netsuite - Unable to get sublist line count

我正在使用预定脚本来获取客户记录中子列表的行数,以便循环遍历该列表。列表项是自定义记录类型 (SOW_rec) 并且是客户的子项。我能够加载记录,但 lineCount only returns a -1 无论我尝试哪个子列表 ID。如何找到子列表处于父子关系的子列表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
     });

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

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

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

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

选中您尝试使用 .getLineCount 命令访问的子记录上的 "Allow Child Record Editing" 复选框。

此外,如 dcrs 所述,linecount 命令应为 var lineCount = companyRecord.getLineCount({sublistId:"RECMACHCUSTRECORD...."});

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

The internal ID for a custom child record sublist is recmach + > field_id_for_the_parent_field (for example: recmachcustrecord111).

NetSuite 要求 Id 全部小写。