使用 SuiteScript,如何在字符串中组合 JavaScript 个变量?

With SuiteScript, how to combine JavaScript variables in a string?

提前致歉,我是 JavaScript 和 NetSuite 的新手。

我正在使用 DocuSign for NetSuite 捆绑包。该捆绑包具有在按钮内使用其功能的选项。

问题: 我正在尝试从 NetSuite 获取字段值并将其组合到自定义电子邮件主题字段中。例如,机会状态。

SuiteScript 支持吗?如果是,怎么做?

JavaScript 通常似乎通过使用 "This is dynamic + 'customVariableName'."

的语法来支持它

下面是我的脚本,在此先感谢:

function oppStatus () {
var status = nlapiGetFieldText('status');
}

function customSendMain () {
var searches = [
{ keyword: '.docx .doc'
, type: 'broad' }
];
var staticEmail = {
subject: 'Opportunity ' + status,
blurb: 'Static email blurb'
};
var recipients = docusignGetRecipients(docusignContext);
var files = docusignGetFiles(docusignContext, searches);
var email = staticEmail;
return docusignPopulateEnvelope(docusignContext, recipients, files, email);
}

"email"里面的"docusignPopulateEnvelope"是一个对象。 "subject" 和 "blurb" 包含字符串值。

如何在 "subject" 或 "blurb" 的字符串中引用变量值?我不断收到语法错误。

也这样试过:

var staticEmail = {
subject: Opportunity ' ' .status,
blurb: 'Static email blurb'
};

这似乎更像是一种 JS 语法,而不是特定于 Suitescript 的语法。

如果要访问变量"status",可以将代码修改为:

function oppStatus () {
return nlapiGetFieldText('status'); 
}

var staticEmail = {
subject: 'Opportunity ' + oppStatus(),
blurb: 'Static email blurb'
};

如果这就是你想问的。

使用下面的方法工作。

function RecipientsMain() {
    var recordId = docusignContext.recordId;
    var contactId = nlapiLookupField(docusignContext.recordType, docusignContext.recordId, 'customField');
    if(contactId != '')
    {   
        var fields = ['entityid', 'email'];
        var contactFields = nlapiLookupField('contact', contactId, fields);
        var entityName = contactFields.entityid;
        var entityEmail = contactFields.email;
        var dummyRecipients = [
            { id: 1 
            , order: 1
            , name: entityName
            , email: entityEmail

        }];
        var nsRecipients = docusignGetRecipients(docusignContext, 2, 2);
        var recipients = dummyRecipients.concat(nsRecipients);
        var files = docusignGetFiles(docusignContext);
        return docusignPopulateEnvelope(docusignContext, recipients, files);
    }
    else
    {
        var files = docusignGetFiles(docusignContext);
        var recipients = docusignGetRecipients(docusignContext);
        return docusignPopulateEnvelope(docusignContext, recipients, files);
    }   
}