如何检索与记录关联的NetSuite联系人

时间:2019-04-17 17:51:21

标签: javascript netsuite suitescript2.0

在NetSuite中,当编辑记录时,我有一个按钮,该按钮需要能够获取所有联系人的名字,姓氏,电子邮件以及可能的角色,以便将其附加到我已经编写的其他代码上。我似乎无法弄清楚如何提取与记录关联的联系人。

我已经从“ N / record”模块中检索了记录,并使用sublistId“ contact”获得了Sublist“ contact”,但是使用Sublist的唯一方法是getColumn,它需要一个options.fieldId,我没有。没有或不知道如何查找,即使我做了它会返回的对象(列对象),也似乎没有我想要的值。

/**
 * @NApiVersion 2.0
 * @NScriptType ClientScript
 * @NModuleScope SameAccount
 */

define(['N/currentRecord','N/record'],function(context, recordKeeper){
    var options = {type:context.get().type, id:context.get().id, isDynamic:context.get().isDynamic};
    var record = recordKeeper.load(options);

    function TestButtonClick(){
        var contactSublist = record.getSublist({sublistId:"contact"});
        //Need to get the contact information here
        alert(JSON.stringify(contactSublist));//{"id":"contact","type":"staticlist","isChanged":false,"isDisplay":true}
    }

    function pageInit(context){
        //some code
    }

    var exports = {};
    exports.TestButtonClick = TestButtonClick;
    exports.pageInit = pageInit;

    return exports;
});

**EDIT 2**
NetSuite Fields
+customer
+customer - Address
-customer Contact
   -customer Contact 1
       Alt. Email
       Assist. Phone
       Assistant
       Attached Role
       Catagory
       Comments
       Contact (Auto-Filled)
       Contact Company
       Customer ID/Project
       Email
       Externalid
       Fax
       First Name
       Global subscription Status
       Home Phone
       Image
       Inactive
       Job Title
       Last Name

我的contactSublist给我一个对象,正如我期望的那样,但是我不确定从该联系人子列表中如何检索与记录相关联的联系人,或者我什至没有采取正确的途径来获取该信息。

编辑: 我已经尝试过record.getLineCount({sublistid:“ contact”}) record.getSublistValue({sublistId:“ contact”,fieldId:,line:}) 和record.getSublistText({sublistId:“ contact”,fieldId:,line:}) 但是,即使我在屏幕上看到联系人,我也会抛出异常,好像我的联系人不存在一样。这是异常消息 “您试图执行无效的子列表或订单项操作。您正在尝试访问不存在的行中的字段,或者试图在静态子列表中添加或删除行。”

编辑2

如果可能的话,我不知道如何在此处附加屏幕截图,因此这里是文本的视觉效果,请查看代码部分,因为我无法在此处使布局看起来不错,仅在代码部分中可以保持格式。

1 个答案:

答案 0 :(得分:1)

如果要获取联系人信息,则应遍历联系人子列表。首先使用record.getLineCount({sublistid: "contact"})获取子列表的计数。然后,您可以在循环(通常是for循环)中使用record.getSublistValue({sublistId: "contact", fieldId: <field>,line: <index>})来获取每个子列表字段/列的信息。