通过地址簿脚本访问自定义地址字段
Script access to custom address field through addressbook
我在添加到地址表单的自定义字段中设置文本值时遇到问题。
function fieldChanged_form(type, name) {
if (name == 'custentity_bsi_agycampus') {
var lnSeq = nlapiFindLineItemValue('addressbook', 'defaultbilling', 'T');
if (lnSeq > 0) {
console.log("selected line " + lnSeq);
nlapiSelectLineItem('addressbook', lnSeq);
var agency_campus = nlapiGetFieldText('custentity_bsi_agycampus');
nlapiSetCurrentLineItemValue('addressbook',
'custrecord_bsi_agy_div_bur_sd', agency_campus, true, true);
console.log('agency' + ',' + agency_campus);
}
nlapiCommitLineItem('addressbook');
console.log('after commit: '
+ nlapiGetCurrentLineItemValue('addressbook',
'custrecord_bsi_agy_div_bur_sd'));
}
}
此脚本(应用于自定义代码选项卡下的客户表单)不会使用 custentity_bsi_agycampus(客户表单中的自定义字段)中的文本值设置 custrecord_bsi_agy_div_bur_sd。但是,如果我将 custrecord_bsi_agy_div_bur_sd 更改为 addr1(地址表单中的默认字段),它会像我希望的那样工作。
这让我想知道我是否可以通过 'addressbook' 访问地址表单中的自定义字段,就像您可以访问所有其他地址字段一样。有谁知道该问题的答案或知道如何解决此问题?
我认为您需要使用地址作为子记录。在这之后玩弄一些图案:
// {nlobjSubrecord} Get one of the addresses off the sublist
var subrecord = {};
nlapiSelectLineItem('addressbook', 1);
subrecord = nlapiEditCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
// Set the data on the subrecord
subrecord.setFieldValue('attention', 'Some Guy');
subrecord.setFieldValue('addr1', '1234 5th St');
subrecord.setFieldValue('addr2', 'Apt 234');
subrecord.setFieldValue('addrphone', '5558675309');
subrecord.setFieldValue('city', 'Scottsdale');
subrecord.setFieldValue('state', 'AZ');
subrecord.setFieldValue('country', 'US');
subrecord.setFieldValue('zip', '85260');
// Commit the subrecord to its parent before submitting the parent itself
subrecord.commit();
我在添加到地址表单的自定义字段中设置文本值时遇到问题。
function fieldChanged_form(type, name) {
if (name == 'custentity_bsi_agycampus') {
var lnSeq = nlapiFindLineItemValue('addressbook', 'defaultbilling', 'T');
if (lnSeq > 0) {
console.log("selected line " + lnSeq);
nlapiSelectLineItem('addressbook', lnSeq);
var agency_campus = nlapiGetFieldText('custentity_bsi_agycampus');
nlapiSetCurrentLineItemValue('addressbook',
'custrecord_bsi_agy_div_bur_sd', agency_campus, true, true);
console.log('agency' + ',' + agency_campus);
}
nlapiCommitLineItem('addressbook');
console.log('after commit: '
+ nlapiGetCurrentLineItemValue('addressbook',
'custrecord_bsi_agy_div_bur_sd'));
}
}
此脚本(应用于自定义代码选项卡下的客户表单)不会使用 custentity_bsi_agycampus(客户表单中的自定义字段)中的文本值设置 custrecord_bsi_agy_div_bur_sd。但是,如果我将 custrecord_bsi_agy_div_bur_sd 更改为 addr1(地址表单中的默认字段),它会像我希望的那样工作。
这让我想知道我是否可以通过 'addressbook' 访问地址表单中的自定义字段,就像您可以访问所有其他地址字段一样。有谁知道该问题的答案或知道如何解决此问题?
我认为您需要使用地址作为子记录。在这之后玩弄一些图案:
// {nlobjSubrecord} Get one of the addresses off the sublist
var subrecord = {};
nlapiSelectLineItem('addressbook', 1);
subrecord = nlapiEditCurrentLineItemSubrecord('addressbook', 'addressbookaddress');
// Set the data on the subrecord
subrecord.setFieldValue('attention', 'Some Guy');
subrecord.setFieldValue('addr1', '1234 5th St');
subrecord.setFieldValue('addr2', 'Apt 234');
subrecord.setFieldValue('addrphone', '5558675309');
subrecord.setFieldValue('city', 'Scottsdale');
subrecord.setFieldValue('state', 'AZ');
subrecord.setFieldValue('country', 'US');
subrecord.setFieldValue('zip', '85260');
// Commit the subrecord to its parent before submitting the parent itself
subrecord.commit();