使用 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);
}
}
提前致歉,我是 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);
}
}