NetSuite - 套件脚本错误 - 打印 PDF 按钮 - 类型:工作

问题描述 投票:0回答:0

我在我的项目记录中创建了一个打印 pfd 按钮。目的是构建一个 pdf 项目摘要以发送给客户。当我单击该按钮时,出现套件脚本错误。

这是我的错误。

Screenshot

事件脚本

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

客户端脚本

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

套房

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

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 而不是整个上下文。老实说,我真的不知道那是什么意思。

javascript pdf netsuite suitescript clientscript
© www.soinside.com 2019 - 2024. All rights reserved.