2016-10-04 49 views
2

我的代碼:NetSuite的 - 無法從文件夾中的參考圖像

function combineExpenseFiles(type){ 
    try{ 
     var currentRecordId = nlapiGetRecordId(); 
     var currentRecord = nlapiLoadRecord('expensereport',currentRecordId); 
     var expensesLineItemCount = currentRecord.getLineItemCount('expense'); 
     var template = ''; 
     var fileParts = new Array(); 
     template += '<?xml version="1.0"?><!DOCTYPE pdf PUBLIC "-//big.faceless.org//report" "report-1.1.dtd">\n'; 
     template += '<pdf>\n<head>\n'; 
     template += '</head>\n<body>\n'; 
     flag=1; 
     for(var i=1;i<=expensesLineItemCount;i++){ 
      var fileId = currentRecord.getLineItemValue('expense','expmediaitem',i); 
      var file = nlapiLoadFile(fileId); 
      var name = file.getName(); 

      //var fileUrl = file.getURL(); 

      nlapiLogExecution('DEBUG','online',file.isOnline()); 
      var fileUrl = '/core/media/media.nl?id=36333&c=3960047&h=487697f81e113499d5f4'; 
      template += '<img src="'; 
      template += nlapiEscapeXML(fileUrl); 
      template += '" width="10%" height="10%"></img>\n<br></br><br></br>'; 
      break; 
     } 
     template += '</body>\n</pdf>'; 
     nlapiLogExecution('DEBUG','filename',template); 

     var renderer = nlapiCreateTemplateRenderer(); 
     renderer.setTemplate(template); 
     //renderer.addRecord('url',url); 
     var xml = renderer.renderToString(); 
     nlapiLogExecution('DEBUG','xml',xml); 
     var combinefile = nlapiXMLToPDF(xml); 



     combinefile.setEncoding('UTF-8'); 
     combinefile.setName('expense_f.pdf'); 
     nlapiLogExecution('DEBUG','file',combinefile); 
     combinefile.setFolder(2221); // Amit_Expenses 

     nlapiSubmitFile(combinefile); 

    }catch(error){ 
     //nlapiLogExecution('DEBUG','error1',error.getDetails()); 
     nlapiLogExecution('DEBUG','error',error.toString()); 
    }  
} 

這段代碼是幹什麼,它需要所有的「JPEG」相關費用的文件,並創建一個包含所有文件模板和產生。包含所有圖像的pdf文件。代碼工作得很好。

現在我已經把文件url硬編碼用於測試目的。

問題是代碼無法爲某些文件夾引用圖像。 就像我參考僱員個人資料圖片它引用他們,但對於一些文件夾代碼無法引用這些文件夾的圖像。

我檢查過這些文件夾不是私人的。請建議

回答

1

根據我的經驗,我必須在任何需要在PDF中呈現的圖像上設置「Available Without Login」。我無法解釋爲什麼更深層次的原因。我只能告訴你我是如何解決這個問題的。

我相信它與NetSuite實現XML到PDF生成器的方式有關。看起來它不會在主腳本的相同上下文中運行。但就像我上面所說的,我不知道爲什麼。

希望你覺得這有幫助。

+0

謝謝我會考慮:) –

+0

謝謝它的工作:) –

+0

如果文件是.pdf那麼有沒有辦法可以結合所有與費用有關的.pdf文件並生成一個pdf文件? –