我的代码在文档存储库中正确创建了一个文件,并将其附加到NetSuite中的记录中。但是,文件类型是'其他二进制文件'什么时候应该是PDF。我读到,对于PDF,我们必须在base 64编码,但即便如此,它也不会生成PDF。有人看到了问题吗?
var fileobj = nlapiCreateFile(docname, doctype, doccontent)
fileobj.setName(docname)
fileobj.setFolder(folderid)
fileobj.setIsOnline(true)
fileobj.setEncoding('UTF-8')
var fileid = nlapiSubmitFile(fileobj)
传递数据:
{
"filecontent" : "test",
"filename" : "PO Doc Test",
"filetype" : "PDF",
"folderid" : 521,
"recordtype": "purchaseorder",
"recordid": 13832
}
答案 0 :(得分:3)
您必须使用BFO生成PDF。这是一个使用字符串" test"生成PDF的快速示例。内:
function createPDFFile(docname, folderid)
{
var xml = "<?xml version=\"1.0\"?>\n<!DOCTYPE pdf PUBLIC \"-//big.faceless.org//report\" \"report-1.1.dtd\">\n<pdf>\n<body font-size=\"18\">test</body>\n</pdf>";
var fileobj= nlapiXMLToPDF(xml);
fileobj.setName(docname);
fileobj.setFolder(folderid);
fileobj.setIsOnline(true);
fileobj.setEncoding('UTF-8');
var fileid = nlapiSubmitFile(fileobj);
}
答案 1 :(得分:2)
在我的代码测试中,将文件名从PO Doc Test
更改为PO Doc Test.pdf
会在文件柜中创建一个文件类型而不是其他二进制文件。
虽然这会创建一个NetSuite识别为PDF文件类型的文件,但test
似乎无效的PDF文件内容,因此Acrobat reader无法打开生成的文件。
文档说,在尝试创建像PDF这样的二进制文件时,内容必须是base64编码的,因此您应该将内容包装在nlapiEncrypt(content, 'base64')
中。
另外,请查看nlapiXMLToPDF()
。此功能允许您在XML字符串中定义内容并从中生成PDF。