You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用NetSuite高级PDF模板将Suitelet设计导出为PDF?

在销售订单高级PDF模板中调用Suitelet生成PDF的实现方法

完全可以通过调用Suitelet URL的方式,将Suitelet的设计内容嵌入到销售订单的高级PDF模板中,具体实现步骤如下:

1. 配置Suitelet以返回PDF内容

首先需要修改你的Suitelet代码,使其能够接收销售订单ID参数,并返回对应的PDF格式内容:

  • 设置Suitelet的返回类型为PDF,在onRequest函数中使用NetSuite的render模块生成PDF,或者直接输出符合PDF格式的字节流。
  • 示例代码:
/**
 * @NApiVersion 2.x
 * @NScriptType Suitelet
 */
define(['N/render', 'N/record'], function(render, record) {
    function onRequest(context) {
        var request = context.request;
        var response = context.response;
        
        // 获取传入的销售订单ID
        var soId = request.parameters.salesorderid;
        if (!soId) {
            response.write('Missing sales order ID');
            return;
        }
        
        // 加载销售订单记录(按需处理数据)
        var soRecord = record.load({type: record.Type.SALES_ORDER, id: soId});
        
        // 生成PDF内容(这里可以用自定义模板或Suitelet的HTML渲染后转PDF)
        var pdfFile = render.createPdf({
            xmlString: '<!DOCTYPE html><html><body><h1>销售订单:' + soRecord.getValue('tranid') + '</h1></body></html>'
        });
        
        // 设置响应头并返回PDF
        response.setHeader({name: 'Content-Type', value: 'application/pdf'});
        response.setHeader({name: 'Content-Disposition', value: 'inline; filename=so_' + soId + '.pdf'});
        response.writeFile(pdfFile);
    }
    
    return {
        onRequest: onRequest
    };
});

2. 在高级PDF模板中调用Suitelet URL

在销售订单的高级PDF模板中,使用NetSuite提供的nlapiRequestURL函数请求Suitelet的URL,并将返回的PDF内容嵌入到当前PDF中:

  • 首先构造Suitelet的完整URL,替换其中的<accountID>、<scriptID>、<deployID>为你实际的账号ID、脚本ID和部署ID,同时传递当前销售订单的ID作为参数。
  • 在模板中添加如下代码(使用Freemarker语法):
<%
var suiteletUrl = "https://<accountID>.app.netsuite.com/app/site/hosting/scriptlet.nl?script=<scriptID>&deploy=<deployID>&salesorderid=" + record.id;
var suiteletPdf = nlapiRequestURL(suiteletUrl);
%>
${suiteletPdf}
  • 注意:如果Suitelet返回的是完整的PDF文件内容,直接输出即可;如果是HTML内容,也可以在Suitelet中先转成PDF再返回,确保嵌入后格式正确。

3. 配置权限与测试

  • 确保部署Suitelet时,给需要生成销售订单PDF的角色分配访问该Suitelet的权限。
  • 测试时,打开销售订单页面,点击“打印”选择对应的高级PDF模板,检查是否成功加载Suitelet生成的PDF内容。

内容的提问来源于stack exchange,提问作者Maira S

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 07:57:05