简体   繁体   English

NetSuite - 自定义字段 - 分配给地址簿但无法使用 JS 访问

[英]NetSuite - Custom Fields - Assigned to Addressbook but cant access using JS

I am currently writing a script on the Sales Order to pull fetch a custom field attached to the selected shipping address.我目前正在销售订单上编写一个脚本,以提取附加到所选送货地址的自定义字段。 I am able to pull all of the address fields (city,zip, etc) but I am unable to figure out how to access any of the attached custom fields to the address.我能够提取所有地址字段(城市、zip 等),但我无法弄清楚如何访问该地址的任何附加自定义字段。

Example script:示例脚本:

 var custid = document.getElementById("hddn_entity_fs").value; var shiptoid = document.getElementById("hddn_shipaddresslist2").value; var customer = nlapiLoadRecord("customer", custid); var itemCount = customer.getLineItemCount('addressbook'); for (var i = 1; i < itemCount; i++) { if (customer.getLineItemValue('addressbook', 'id', i) == shiptoid) { //this works var zip = customer.getLineItemValue('addressbook', 'zip', i); console.log('zip:' + zip); //this does not work var custrecord19 = customer.getLineItemValue('addressbook', 'custrecord19', i); console.log('custrecord19:' + custrecord19); } }

I am sure I am missing something simple.我确定我错过了一些简单的东西。 Any help greatly appreciated!非常感谢任何帮助!

Zip Zip

Custom fields on address are actually on the address record地址上的自定义字段实际上在地址记录上

so something like:所以像:

SS1.0 dynamic mode. SS1.0动态模式。 Apparently server side only.显然只有服务器端。

var customer = nlapiLoadRecord('customer', custid, {recordmode:'dynamic'});
...
customer.selectLineItem('addressbook', i);
var addr = customer.editCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
console.log(addr.getFieldValue('custrecord19'));

or SS1 server side not dynamic或 SS1 服务器端不是动态的

var addr = custRec.viewLineItemSubrecord('addressbook', 'addressbookaddress', i);
console.log(addr.getFieldValue('custrecord19'));

SS2.0 works client or server side SS2.0 工作在客户端或服务器端

var addr = custRec.getSublistSubrecord({sublistId:'addressbook', fieldId:'addressbookaddress', line:i});
console.log(addr.getValue({fieldId:'custrecord19'}));

It's quite doable for an account to have a mix of SS1 and SS2 scripts.一个帐户混合使用 SS1 和 SS2 脚本是完全可行的。

In terms of getting this to work I'd suggest changing your current client script to SS2.就让它工作而言,我建议将您当前的客户端脚本更改为 SS2。

below is a skeleton client script:下面是一个骨架客户端脚本:

/**
 * @NApiVersion 2.x 
 * @NScriptType ClientScript
 */
define(['N/currentRecord', 'N/ui/message', 'N/url', 'N/https', 'N/search'],
    function(rec, msg, url, http, search) {



        return {
            fieldChanged : function(){ console.log('fired field changed');},
            postSourcing: function(){ console.log('fired sourcing');}
        };
    });

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM