电子邮件模板网络套件

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 已被弃用,它不会工作。但是我几个小时都无法在网上找到任何有效的示例......这里最重要的部分实际上是必须发送的这封电子邮件的正文。在这种情况下,它是 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 连接起来?

提前致谢!

您可以使用 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。 那么:

  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);

祝你好运!