NetSUite主要角色电子邮件

NetSUite主要角色电子邮件,netsuite,Netsuite,谢谢你的帮助。我不熟悉Netsuite脚本。我需要一个工作流,该工作流操作脚本用于获取角色为“主要联系人”的客户联系人的电子邮件地址,并在客户记录的自定义字段中设置此电子邮件地址 function getContactEmail() { var numItem = nlapiGetLineItemCount('contactroles'); for (var i = 1; i <= numItem; i++) { var contact_rec

谢谢你的帮助。我不熟悉Netsuite脚本。我需要一个工作流,该工作流操作脚本用于获取角色为“主要联系人”的客户联系人的电子邮件地址,并在客户记录的自定义字段中设置此电子邮件地址

function getContactEmail() {
    var numItem = nlapiGetLineItemCount('contactroles');

    for (var i = 1; i <= numItem; i++)
    {

        var contact_rec = nlapiGetLineItemValue('contactroles', 'contact', i);
        // get all the contact name of the contacts  of the customer

        var contactEmailAddress = nlapiGetLineItemValue('contactroles', 'email', i);
        // get the e-mail address of the contact

        var contactRole = nlapiLookupField('contact', contact_rec, 'contactrole');
        // get the internal ID of the role of that particular contact from the customer

        if (contactRole == '-10') //check is the role is 'Primary Contact' or not.
        {
            nlapiSetFieldValue('custentity_email', contactEmailAddress); 
            //set the value of custom field with email address of the
            //Contact which has 'Primary Contact' role 
        }
    }

}
函数getContactEmail(){ var numItem=nlapiGetLineItemCount('contactroles');
对于(var i=1;i你很接近了。这应该可以:

function getContactEmail() {
    var numItem = nlapiGetLineItemCount('contactroles');
    for (var i = 1; i <= numItem; i++) {
       if(nlapiGetLineItemValue('contactroles', 'role', i) != 14) continue; // the id for primary contact is 14 in my test account
       try{ //contact may be inactive
         var contactInfo = nlapiLookupField('contact', nlapiGetLineItemValue('contactroles', 'contact', i), ['email', 'company']);
         var roleEmail = nlapiGetLineItemValue('contactroles', 'email', i) || contactInfo.email;
         if(!roleEmail) continue;
         if(!contactInfo.company || contactInfo.company != nlapiGetRecordId()) continue; //maybe ok if not assigned to any company?

         nlapiSetFieldValue('custentity_email', roleEmail); //set the value of custom field with email address of the Contact which has 'Primary Contact' role 
         break;
       }catch(e){
         nlapiLogExecution('ERROR', "Looking up contact: "+ nlapiGetLineItemValue('contactroles', 'contact', i), e);
       }
    }
}    
函数getContactEmail(){ var numItem=nlapiGetLineItemCount('contactroles');
对于(var i=1;i你很接近了。这应该可以:

function getContactEmail() {
    var numItem = nlapiGetLineItemCount('contactroles');
    for (var i = 1; i <= numItem; i++) {
       if(nlapiGetLineItemValue('contactroles', 'role', i) != 14) continue; // the id for primary contact is 14 in my test account
       try{ //contact may be inactive
         var contactInfo = nlapiLookupField('contact', nlapiGetLineItemValue('contactroles', 'contact', i), ['email', 'company']);
         var roleEmail = nlapiGetLineItemValue('contactroles', 'email', i) || contactInfo.email;
         if(!roleEmail) continue;
         if(!contactInfo.company || contactInfo.company != nlapiGetRecordId()) continue; //maybe ok if not assigned to any company?

         nlapiSetFieldValue('custentity_email', roleEmail); //set the value of custom field with email address of the Contact which has 'Primary Contact' role 
         break;
       }catch(e){
         nlapiLogExecution('ERROR', "Looking up contact: "+ nlapiGetLineItemValue('contactroles', 'contact', i), e);
       }
    }
}    
函数getContactEmail(){ var numItem=nlapiGetLineItemCount('contactroles');
对于(var i=1;i对不起。我忘了联系人有多奇怪。最安全的方法是搜索:

function setContactEmail(){
  var contacts = nlapiSearchRecord('customer', null,
        [
            new nlobjSearchFilter('internalid',null, 'is', nlapiGetRecordId()),
            new nlobjSearchFilter('contactrole', 'contact', 'is', '-10'),
            new nlobjSearchFilter('isinactive', 'contact', 'is', 'F'),
            new nlobjSearchFilter('company', 'contact', 'is', nlapiGetRecordId())
        ],[
          new nlobjSearchColumn('email', 'contact')
        ]);
  if(contacts) nlapiSetFieldValue('custentity_email', contacts[0].getValue('email', 'contact'));
}

对不起,我忘了联系人有多奇怪了。最安全的方法是搜索:

function setContactEmail(){
  var contacts = nlapiSearchRecord('customer', null,
        [
            new nlobjSearchFilter('internalid',null, 'is', nlapiGetRecordId()),
            new nlobjSearchFilter('contactrole', 'contact', 'is', '-10'),
            new nlobjSearchFilter('isinactive', 'contact', 'is', 'F'),
            new nlobjSearchFilter('company', 'contact', 'is', nlapiGetRecordId())
        ],[
          new nlobjSearchColumn('email', 'contact')
        ]);
  if(contacts) nlapiSetFieldValue('custentity_email', contacts[0].getValue('email', 'contact'));
}

非常感谢您的回复。我会查看并回复您。再次感谢您的关注。您好,再次@bknight,我尝试了上述方法,并将您的号码更改为14 by-10,这是我的主要联系人的内部ID,但无效。您是否建议另一种解决方法。谢谢。是的。很抱歉,我为角色ID号m获得了14关于联系人被分配的角色。再次感谢@bknights。它现在工作得很好。我真的非常感谢你的帮助。非常感谢你的回复。我会检查一下,然后再给你回复。再次感谢你关注这一点。再次你好@bknights,我尝试了上述方法,并将你的号码改为14 by-10,这是我的内部ID主要联系人有,但没有成功。您是否建议另一种解决方法。谢谢。是的。很抱歉,无论联系人被分配到哪个角色,我都会得到14个角色id。再次感谢@bknight。现在效果很好。我非常感谢您的帮助。