我有一个很大的问题,我的意思是我在一家公司工作,我们使用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
相关联?
提前致谢!
答案 0 :(得分:1)
您可以使用kotnMergeTemplate代替nlapiMergeRecord
例如:
Object m(boolean b) {
if (b) {
return "123";
} else {
return new Integer(123);
}
}
nlobjEmailMerger不接受自定义值,因此您必须对结果进行后期处理。您可以再次查看我的脚本中的示例,您将获得合并的字符串,然后运行:
kotnMergeTemplate(65, 'purchaseorder', poID, null, null, mergeValuesPPCI);
答案 1 :(得分:1)
您可以使用新的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);