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
相关产品推荐
相关产品推荐

