NetSuite -无法从文件夹中引用图像

NetSuite - not able to reference images from folder

本文关键字:引用 图像 文件夹 NetSuite      更新时间:2023-09-26

我的代码:

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硬编码用于测试目的。

问题是代码无法引用某些文件夹的图像。例如,如果我引用员工个人资料图像,它会引用它们,但对于某些文件夹,代码无法引用这些文件夹的图像。

我已经检查了这些文件夹是不是私有的。请建议

根据我的经验,我必须在任何需要在PDF中呈现的图像上设置"Available Without Login"。我无法解释更深层次的原因。我只能告诉你我是如何解决这个问题的。

我相信这与NetSuite实现XML到PDF生成器的方式有关。它似乎不运行在主脚本的同一上下文中。但就像我上面说的,我不确定为什么。