电子邮件模板网络套件
Email template netsuite
我有一个很大的问题,我的意思是我在一家公司工作,我们使用 NetSuite 作为我们的业务平台,现在他们用新的 API 更新了我们的帐户。
我之前的开发者写了这段代码
for(var k = 0; k < ResultsPPCI.length; k++){
EmployeePPCI = ResultsPPCI[k].getValue('internalid'); //get the value
// log('Internal ID', EmployeePPCI);
// Merge, send, and associate an email with Purchase Order record (id=1000)
var mergeValuesPPCI = {};
mergeValuesPPCI.NLEMPFIRST = nlapiLookupField('employee', EmployeePPCI, 'firstname');
mergeValuesPPCI.NLEMPLAST = nlapiLookupField('employee', EmployeePPCI, 'lastname');
mergeValuesPPCI.NLSUPPLIER = nlapiLookupField('customer', cust, 'companyname');
mergeValuesPPCI.NLPRODUCTCODE = productcodehtml;
var emailBodyPPCI = nlapiMergeRecord(65, 'purchaseorder', poID, null, null, mergeValuesPPCI);
var recordsPPCI = {};
recordsPPCI['transaction'] = poID;
nlapiSendEmail(EmployeePPCI, EmployeePPCI, emailBodyPPCI.getName(), emailBodyPPCI.getValue(), null, null, recordsPPCI);
// log('EmployeePPCI',EmployeePPCI);
nlapiLogExecution('AUDIT', 'Potentional Problem', 'Email Sent');
}
我现在有问题,因为 nlapiMergeRecord
已被弃用,它不会工作。但是我几个小时都无法在网上找到任何有效的示例......这里最重要的部分实际上是必须发送的这封电子邮件的正文。在这种情况下,它是 productcodehtml
或 mergeValuesPPCI.NLPRODUCTCODE
。
我的模板是这样的:
<p>The QA Release has been submitted by <nlsupplier> for ${transaction.tranId}.</nlsupplier></p>
<p>The following item(s) have a short shelf life:</p>
<nlproductcode></nlproductcode>
你能帮我把这段代码转换成新方法吗?我如何将模板中的 nlproductcode
与代码中的 mergeValuesPPCI.NLPRODUCTCOD
连接起来?
提前致谢!
您可以使用 kotnMergeTemplate 作为 nlapiMergeRecord
的替代品
例如:
kotnMergeTemplate(65, 'purchaseorder', poID, null, null, mergeValuesPPCI);
nlobjEmailMerger 不采用自定义值,因此您必须 post 处理结果。您可以再次查看我的脚本中的示例,您将在其中获得合并的字符串,然后 运行:
var oldCustFieldPatt = /<(nl[^ >]+)>(\s*<\/>)?/ig;
content = content.replace(oldCustFieldPatt, function(a,m){
return mergeValuesPPCI[m.toUpperCase()] || mergeValuesPPCI[m.toLowerCase()] || '';
});
您可以使用新的 nlapiCreateEmailMerger(templateId)
首先您需要在 netsuite 中创建您的电子邮件模板并获取内部 ID。
那么:
使用 nlapiCreateEmailMerger(templateId) 创建一个 nlobjEmailMerger 对象。
var emailMerger = nlapiCreateEmailMerger(templateId);
使用nlobjEmailMerger.merge() 方法执行邮件合并。
var mergeResult = emailMerger.merge();
使用 nlobjMergeResult 方法以字符串格式获取电子邮件分发的主题和正文。
var emailBody = mergeResult.getBody();
发送您的电子邮件
nlapiSendEmail(senderInternalId, 'receiver@email.com','subject',emailBody, null, null, null);
祝你好运!
我有一个很大的问题,我的意思是我在一家公司工作,我们使用 NetSuite 作为我们的业务平台,现在他们用新的 API 更新了我们的帐户。
我之前的开发者写了这段代码
for(var k = 0; k < ResultsPPCI.length; k++){
EmployeePPCI = ResultsPPCI[k].getValue('internalid'); //get the value
// log('Internal ID', EmployeePPCI);
// Merge, send, and associate an email with Purchase Order record (id=1000)
var mergeValuesPPCI = {};
mergeValuesPPCI.NLEMPFIRST = nlapiLookupField('employee', EmployeePPCI, 'firstname');
mergeValuesPPCI.NLEMPLAST = nlapiLookupField('employee', EmployeePPCI, 'lastname');
mergeValuesPPCI.NLSUPPLIER = nlapiLookupField('customer', cust, 'companyname');
mergeValuesPPCI.NLPRODUCTCODE = productcodehtml;
var emailBodyPPCI = nlapiMergeRecord(65, 'purchaseorder', poID, null, null, mergeValuesPPCI);
var recordsPPCI = {};
recordsPPCI['transaction'] = poID;
nlapiSendEmail(EmployeePPCI, EmployeePPCI, emailBodyPPCI.getName(), emailBodyPPCI.getValue(), null, null, recordsPPCI);
// log('EmployeePPCI',EmployeePPCI);
nlapiLogExecution('AUDIT', 'Potentional Problem', 'Email Sent');
}
我现在有问题,因为 nlapiMergeRecord
已被弃用,它不会工作。但是我几个小时都无法在网上找到任何有效的示例......这里最重要的部分实际上是必须发送的这封电子邮件的正文。在这种情况下,它是 productcodehtml
或 mergeValuesPPCI.NLPRODUCTCODE
。
我的模板是这样的:
<p>The QA Release has been submitted by <nlsupplier> for ${transaction.tranId}.</nlsupplier></p>
<p>The following item(s) have a short shelf life:</p>
<nlproductcode></nlproductcode>
你能帮我把这段代码转换成新方法吗?我如何将模板中的 nlproductcode
与代码中的 mergeValuesPPCI.NLPRODUCTCOD
连接起来?
提前致谢!
您可以使用 kotnMergeTemplate 作为 nlapiMergeRecord
的替代品例如:
kotnMergeTemplate(65, 'purchaseorder', poID, null, null, mergeValuesPPCI);
nlobjEmailMerger 不采用自定义值,因此您必须 post 处理结果。您可以再次查看我的脚本中的示例,您将在其中获得合并的字符串,然后 运行:
var oldCustFieldPatt = /<(nl[^ >]+)>(\s*<\/>)?/ig;
content = content.replace(oldCustFieldPatt, function(a,m){
return mergeValuesPPCI[m.toUpperCase()] || mergeValuesPPCI[m.toLowerCase()] || '';
});
您可以使用新的 nlapiCreateEmailMerger(templateId)
首先您需要在 netsuite 中创建您的电子邮件模板并获取内部 ID。 那么:
使用 nlapiCreateEmailMerger(templateId) 创建一个 nlobjEmailMerger 对象。
var emailMerger = nlapiCreateEmailMerger(templateId);
使用nlobjEmailMerger.merge() 方法执行邮件合并。
var mergeResult = emailMerger.merge();
使用 nlobjMergeResult 方法以字符串格式获取电子邮件分发的主题和正文。
var emailBody = mergeResult.getBody();
发送您的电子邮件
nlapiSendEmail(senderInternalId, 'receiver@email.com','subject',emailBody, null, null, null);
祝你好运!