电子邮件模板netsuite

时间:2016-09-09 17:25:49

标签: 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已被弃用且无效。但我真的无法在网上找到任何工作的例子......这里最重要的部分实际上是这封电子邮件的主体必须发送。在这种情况下,它是productcodehtmlmergeValuesPPCI.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相关联?

提前致谢!

2 个答案:

答案 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。 然后:

  1. 使用nlapiCreateEmailMerger(templateId)创建nlobjEmailMerger对象。

      

    var emailMerger = nlapiCreateEmailMerger(templateId);

  2. 使用nlobjEmailMerger.merge()方法执行邮件合并。

      

    var mergeResult = emailMerger.merge();

  3. 使用nlobjMergeResult方法以字符串格式获取电子邮件分发的主题和正文。

      

    var emailBody = mergeResult.getBody();

  4. 发送电子邮件

      

    nlapiSendEmail(senderInternalId,'receiver@email.com','subject',emailBody,null,null,null);

  5. 祝你好运!