0

私のコードは、ドキュメント リポジトリにファイルを正しく作成し、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
}
4

2 に答える 2

2

あなたのコードの私のテストでは、ファイル名を から に変更すると、ファイル キャビネットに、その他のバイナリ ファイルではなく PDF ファイル タイプのファイルが作成されますPO Doc TestPO Doc Test.pdf

これにより、NetSuite が PDF ファイル タイプとして認識するファイルが作成されますが、test有効な PDF ファイル コンテンツではないように見えるため、結果のファイルを Acrobat リーダーで開くことができません。

ドキュメントによると、PDF などのバイナリ ファイルを作成しようとする場合、コンテンツは base64 でエンコードする必要があるため、コンテンツを でラップする必要がありますnlapiEncrypt(content, 'base64')

また、チェックしてくださいnlapiXMLToPDF()。この関数を使用すると、コンテンツを XML 文字列で定義し、そこから PDF を生成できます。

于 2016-03-22T13:23:23.003 に答える