脚本通过地址簿访问自定义地址字段

问题描述:

我在添加到地址表单中的自定义字段中设置文本值时遇到问题。脚本通过地址簿访问自定义地址字段

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')); 
    } 
} 

这个脚本(适用于自定义代码选项卡下的客户表)将不会设置custrecord_bsi_agy_div_bur_sd从custentity_bsi_agycampus文本值(在客户表单的自定义字段)。但是,如果我将custrecord_bsi_agy_div_bur_sd更改为addr1(地址表单中的默认字段),它就像我想的那样工作。

这使我怀疑我是否能够通过“通讯录”访问我的自定义字段中的地址格式如你可以为所有其他地址字段。有没有人知道这个问题的答案,或有我如何解决这个问题的想法?

+0

您试图设置的文本的价值是什么,作为custrecord_bsi_agy_div_bur_sd的值?它可能只接受数字数据吗? – TonyH

+0

custrecord_bsi_agy_div_bur_sd是一个*格式的文本字段。它会接受字符串。 – Gus

我相信你需要为子记录地址有效。在此之后玩一些图案:

// {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(); 
+0

是的,自2014.2以来我相信你必须按照Eric的方式来做 – TMann

+0

我在帮助文档中看到类似的内容,但首先你必须加载特定的记录。我正在努力使这项工作成为新客户。该记录尚未创建,目前还没有内部编号。如何访问像这样的新记录中的地址簿字段?我上面粘贴的代码用于将文本复制到新客户的地址簿字段中,例如companyname和addr1。我不明白为什么它会在这些领域,而不是我的自定义领域。 – Gus

+0

这个答案中的代码应该工作得很好,无论记录是新的还是现有的。您可以选择现有的地址簿行或新的地址簿行,然后根据需要编辑或创建新的地址行,包括在自定义字段中设置值。 – erictgrubaugh