SuiteScript 在客户端脚本中创建文件

时间:2021-04-03 20:14:27

标签: javascript file netsuite suitescript

我正在尝试在文件柜中创建一个文件并在客户端脚本中写入该文件。检查 API 参考,我看到所有的 File 对象都是服务器端的。

这是否意味着您不能在客户端脚本中创建和写入文件?无论如何,我尝试使用客户端脚本中的代码,但出现错误:

Fail to evaluate script: {"type":"error.SuiteScriptModuleLoaderError","name":"{stack=[Ljava.lang.Object;@59c89ae9, toJSON=org.mozilla.javascript.InterpretedFunction@5a4dd71f, name=MODULE_DOES_NOT_EXIST, toString=org.mozilla.javascript.InterpretedFunction@1818dc3c, id=, message=Module does not exist: N/file.js, TYPE=error.SuiteScriptModuleLoaderError}","message":"","stack":[]}

当我尝试将其作为脚本文件保存在 NetSuite 中时。以上是不是说Client脚本中不能加载N/File对象?

我可以在客户端脚本中写入文件吗?

2 个答案:

答案 0 :(得分:1)

创建客户端脚本 - 该脚本将包含调用 Suitelet 的函数,并在需要时传递来自当前记录/会话的信息。

$(function() {
    var bcHTML = $('.breadcrumbs').html();
    var originalBreadcrumb = localStorage.setItem('ogBC', bcHTML);
    var getOriginalBreadcrumb = localStorage.getItem('ogBC');

    function breadcrumbAdjustment(){
        var screenWidth = $(window).width();
        
        if (screenWidth <= 600) {
            $('.breadcrumbs').html('<li class="sidebar-toggle">Good to Know</li>');
                
            $('.sidebar-toggle').on('click', function() {
                $('#sidebar').fadeToggle("fast");
                $('.sidebar-toggle').toggleClass('open');
            });
        }
        
        else {
            $('.breadcrumbs').html(getOriginalBreadcrumb);
        }
    };
    
    $(window).resize(breadcrumbAdjustment);
});

创建一个 Suitelet - 此脚本将创建文件

  function pageInit{
    //required but can be empty
  }
  function CallforSuitelet(){
    var record = currentRecord.get();
    var recId = record.id;
    var recType = record.type
    var suiteletURL = url.resolveScript({
      scriptId:'customscriptcase3783737_suitelet',// script ID of your Suitelet
      deploymentId: 'customdeploycase3783737_suitelet_dep',//deployment ID of your Suitelet
      params: {
       'recId':recId,
       'recType':recType
      }
     });
      document.location=suiteletURL;
  }

  return {
    CallforSuitelet : CallforSuitelet,
    pageInit : pageInit
  }

答案 1 :(得分:0)

正如您已经发现的那样,不能直接从客户端脚本调用仅服务器模块,但这可以通过 Suitelet 来完成。您需要决定 Suitelet 如何工作。可以在 herehere

中找到工作中的校长示例