首页 Javascript 正文
221

SuiteScript如何根据fileId获取File的记录信息

  • yiqingpeng
  • 2019-02-22
  • 0
  •  
关键点是要在NetSuite中创建一个基于File的Saved Search,然后在SuiteScript中通过Search模块的search.load({id:<SavedSearchId>}), 配合Filter得到相应的File记录信息。示例代码如下:
/**
 *@NApiVersion 2.x
 *@NScriptType Suitelet
 *@Author Yi
 *@Desc Test getting meta data of a file.
 */
function isObject(mixed){
    return typeof mixed === 'object' && mixed !== null;
}

define(['N/search'], 
     function(search){
         function debug(msg){
             log.debug({
                 title: 'Suitelet debug', 
                 details: isObject(msg) ? JSON.stringify(msg) : msg
             });
         }
         function getFileMetaData(search, fileId){
             var filter = search.createFilter({
                 name: 'internalid',//字段名
                 operator: search.Operator.IS, //注意操作方法是IS,不是EQUALTO
                 values: [fileId]
             });//可以根据需求,创建多个Filter
             var searchObj = search.load({
                 'id': 'customsearch2236' // Saved search id
             });
             searchObj.filters.push(filter);
             var resultSet = searchObj.run().getRange({start:0, end:1});//只取一行记录
             if (resultSet && resultSet.length > 0) {
                 var data = resultSet[0];
                 var output = {
                     fileName: data.getValue({name: 'name'}), 
                     fileCreated: data.getValue({name: 'created'}), 
                     fileModified: data.getValue({name: 'modified'}), 
                     fileType: data.getValue({name: 'filetype'}), 
                     fileFolder: {id: data.getValue({name: 'folder'}), text: data.getText({name: 'folder'})},
                     fileOwner: {id: data.getValue({name: 'owner'}), text: data.getText({name: 'owner'})}
                 };
                 return output;
             }
             return null;
         }
         
         function onRequest(context){
             try {
                 var request = context.request;
                 var response = context.response;
                 if (request.method === 'GET') {
                     var fileId = request.parameters.fileid;
                     if (fileId > 0) {
                         var output = getFileMetaData(search, fileId);
                         if (output) {
                             return response.write(JSON.stringify(output));
                         }
                     }
                     response.write('empty result');
                 } else {
                     response.write('method error.');
                 }
             } catch(e) {
                 debug(e);
                 context.response.write({
                     output: isObject(e) ? JSON.stringify(e) : e
                 });
             }
         }
         
         return {
             onRequest: onRequest
         };
     }
);

正在加载评论...