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

NetSuite项目记录打印PDF按钮触发SuiteScript错误求助

NetSuite项目记录PDF打印按钮SuiteScript错误排查

我在NetSuite的项目(Job)记录上创建了一个打印PDF按钮,用于生成项目摘要PDF发送给客户,但点击按钮时触发了SuiteScript错误。


事件脚本(Event Script)

define([],function () {
    var exports = {};
    function beforeLoad(context) {
        context.form.addButton({
            id: "custpage_mybutton",
            label: "Print Project Summary",
            functionName: "onButtonClick"
        });
        context.form.clientScriptModulePath = "SuiteScripts/job_cs_test_message.js"
    }

    exports.beforeLoad = beforeLoad;
    return exports;
});

客户端脚本(Client Script)

define(["N/url", "N/currentRecord"], function(url, currentRecord) {
    var exports = {};

    function pageInit(context) {
        // TODO
    }

    function onButtonClick() {
        var suiteletUrl = url.resolveScript({
          scriptId: 'customscript_job_su_printpdf',
          deploymentId: 'customdeploy_job_su_printpdf',
          returnExternalUrl: false,
          params: {
            custom_id: currentRecord.get().id,
          },
        });
        window.open(suiteletUrl);
      }

    exports.onButtonClick = onButtonClick;
    exports.pageInit = pageInit;
    return exports;
});

Suitelet脚本

define(['N/render', 'N/file', 'N/record'],
    function(render, file, record) 
    {
        function onRequest(context) {
        function renderRecordToPdfWithTemplate() {
            var custom_id = context.request.parameters.custom_id;
            var xmlTemplateFile = file.load('Templates/PDF Templates/custtmpl_job_pdf_test.xml');
            var renderer = render.create();
            renderer.templateContent = xmlTemplateFile.getContents();
            renderer.addRecord('record', record.load({
                type: record.Type.JOB,
                id: custom_id
            }));
            var invoicePdf = renderer.renderAsPdf();
        }
        renderRecordToPdfWithTemplate();
    }
        return {
            onRequest: onRequest
          }
    });

PDF XML模板

<?xml version="1.0"?>
<!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">

<pdf>
<head>
<meta name="title" value="My First Document"/>
</head>
<body background-color="yellow" font-size="18">
Hello, World!
</body>
</pdf>

这个功能原本在员工记录上可正常运行,我曾重点调整addRecord命令,但问题仍未解决。最近看到相关讨论提到“仅传递ID而非整个上下文”,但我不理解具体含义,特此求助。

内容的提问来源于stack exchange,提问作者Stephen Nolan

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 18:35:01