近期在做服务支持的过程中,发现NetSuite终端用户在处理数据时,费了很多功夫,做重复的数据处理工作。是可忍,孰不可忍?减少浪费,是我们NetSuite知识会的基本理念。所以,我们计划开个直播课,来专门谈谈这个话题。

我们就从数据批量导出、批量更改、批量删除,三个典型业务场景来做个探讨。

1.批量导出

近期的一个典型业务场景是,用户希望将一个工单中200行物料一键导出。如何处理?

2.批量更改

CSV批量导入可以实现记录的批量更改。有没有更简单的方法,来达成批量更改的目的?答案是Mass Update!

3.批量删除

在需要清理环境时,我们可以通过脚本来做记录清除,但是相当的危险。作为终端用户是不可能触及的。但是如果需要批量删除时,如何做到?

/*** @NApiVersion 2.x* @NScriptType Suitelet* @NModuleScope SameAccount*/
define(['N/ui/serverWidget', 'N/search', 'N/url', 'N/record'],function(serverWidget, search, url, record) {/*** Definition of the Suitelet script trigger point.** @param {Object} context* @param {ServerRequest} context.request - Encapsulation of the incoming request* @param {ServerResponse} context.response - Encapsulation of the Suitelet response* @Since 2015.2*/function onRequest(context) {var form = serverWidget.createForm({title : 'Simple Form'});if(context.request.method == 'GET'){var mySearch = search.load({type: search.Type.TRANSACTION,id: 'customsearch_mass_deletion_results'});var mySearchRS = mySearch.run();var results = mySearchRS.getRange({start: 0,end: 1000});var sublist = form.addSublist({id : 'custpage_transaction_list',type : serverWidget.SublistType.LIST,label : 'Inline Editor Sublist'});var transactionArray = new Array();if (results != null) {sublist.addField({id: 'delete',type: serverWidget.FieldType.CHECKBOX,label: 'Delete'});// Add hidden columns for the Internal ID and for the Record type.// These fields are necessary for the nlapiDeleteRecord function.sublist.addField({id: 'internalid',type: serverWidget.FieldType.TEXT,label: 'InternalID'}).updateDisplayType({displayType : serverWidget.FieldDisplayType.HIDDEN});sublist.addField({id: 'recordtype',type: serverWidget.FieldType.TEXT,label: 'Record Type'}).updateDisplayType({displayType : serverWidget.FieldDisplayType.HIDDEN});// Add a column for the Internal ID linksublist.addField({id: 'internalidlink',type: serverWidget.FieldType.TEXT,label: 'Internal ID'});// Get the the search result columnsvar columns = results[0].columns;// Add the search columns to the sublistfor (var i = 0; i < columns.length; i++) {sublist.addField({id: columns[i].name,type: serverWidget.FieldType.TEXT,label: columns[i].label});}for (var i = 0; i < results.length; i++) {var transaction = new Object();// Set the Delete column to Falsesublist.setSublistValue({id: 'delete',line: i,value: 'F'});// Set the hidden internal ID fieldsublist.setSublistValue({id: 'internalid',line: i,value: results[i].id});// Set the hidden record type fieldsublist.setSublistValue({id: 'recordtype',line: i,value: results[i].recordType});// Create a link so users can navigate from the list of transactions to a specific transactionvar recUrl = url.resolveRecord({recordType: results[i].recordType,recordId: results[i].id,isEditMode: false});internalIdLink = " " + results[i].id + " ";// Set the linksublist.setSublistValue({id: 'internalidlink',line: i,value: internalIdLink});// set the row values to the transaction objecttry{for (var j = 0; j < columns.length; j++) {sublist.setSublistValue({id: columns[j].name,line: i,value: results[i].getValue(columns[j].name)});}}catch(ex){log.audit('error', ex);}}}sublist.addMarkAllButtons();form.addSubmitButton({label: 'Submit'});context.response.writePage({pageObject: form});}else{// Check how many lines in the sublistvar count = context.request.getLineCount({group: 'custpage_transaction_list'});log.debug('count',count);// This variable will keep track of how many records are deleted.var num = 0;//for each line in the sublistlog.debug('num',num);for (var i = 0; i < count; i++) {//get the value of the Delete checkboxvar deleteTransaction = context.request.getSublistValue({group: 'custpage_transaction_list',name: 'delete',line: i});log.debug('deleteTransaction',deleteTransaction);// If it's checked, delete the transactionif (deleteTransaction == 'T') {// Get the transaction internal IDvar internalId = context.request.getSublistValue({group: 'custpage_transaction_list',name: 'internalid',line: i});log.debug('internalId',internalId);// Get the transaction typevar recordType = context.request.getSublistValue({group: 'custpage_transaction_list',name: 'recordtype',line: i});log.debug('recordType',recordType);try {// Delete the transactionvar salesOrderRecord = record.delete({type: recordType,id: internalId,});log.debug('salesOrderRecord',salesOrderRecord);num++;}// Errors will be logged in the Execution Logcatch (ex) {log.audit('Error', 'Transaction ID ' + internalId + ': ' + ex);}}}// Show how many records were deleted.form.addField({id : 'custpage_transaction_total',type : serverWidget.FieldType.TEXT,label : 'transactions deleted'}).updateDisplayType({displayType : serverWidget.FieldDisplayType.INLINE}).defaultValue = num + " ";context.response.writePage(form);}}return {onRequest: onRequest};});

欲知答案,速来报名!

Workshop链接https://meeting.tencent.com/dw/QyusalIdkW8T

NetSuite 数据批量处理相关推荐

  1. 将表里的数据批量生成INSERT语句的存储过程 增强版

    原文:将表里的数据批量生成INSERT语句的存储过程 增强版 将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的 ...

  2. word录入表单数据 java 导入系统,java导入excel | 怎么把excel中的数据批量导入到word中的表格中...

    用javascript怎么实现把excel中的数据批量导入到数据库表中 这个js不能直接实现吧 我们程序用到 先读取excel内容转换成数组 然后放到页面上 再提交表单 储存 MySql如何批量添加数 ...

  3. 将表里的数据批量生成INSERT语句的存储过程 继续增强版

    文章继续 桦仔兄的文章 将表里的数据批量生成INSERT语句的存储过程 增强版 继续增强... 本来打算将该内容回复于桦仔兄的文章的下面的,但是不知为何博客园就是不让提交!.... 所以在这里贴出来吧 ...

  4. 【RecyclerView】 十二、RecyclerView 数据更新 ( 修改单条数据 | 批量修改数据 )

    文章目录 一.修改单条数据 二.批量修改数据 三.完整代码示例 四.RecyclerView 相关资料 一.修改单条数据 修改单条数据 : 调用 RecyclerView.Adapter 的 void ...

  5. 【RecyclerView】 十一、RecyclerView 数据更新 ( 删除单条数据 | 批量删除数据 )

    文章目录 一.删除单条数据 二.批量删除数据 三.完整代码示例 四.RecyclerView 相关资料 一.删除单条数据 删除单条数据 : 调用 RecyclerView.Adapter 的 void ...

  6. 《从0到1学习Flink》—— Flink 读取 Kafka 数据批量写入到 MySQL

    <!-- more --> 前言 之前其实在 <从0到1学习Flink>-- 如何自定义 Data Sink ? 文章中其实已经写了点将数据写入到 MySQL,但是一些配置化的 ...

  7. excel实现套用模板批量打印_#数据清洗#Excel数据批量填入Word模板

    问题描述:把Excel中数据批量填入Word模板中的特定位置 今天小伙伴,遇到一个问题,他有一份一千多个不同城市的客户资料,同时,有一份word文档,他需要把Excel中的数据一条条填写到word中对 ...

  8. mysql插入数据返回主键值_Mysql千万级别数据批量插入只需简单三步!

    第一步:配置my.ini文件 文件中配置 bulk_insert_buffer_size=120M 或者更大 将insert语句的长度设为最大. Max_allowed_packet=1M Net_b ...

  9. 如何用TXT文档数据批量生成条形码

    我们在制作商品标签的时候,经常需要根据已有的条码数据来批量生成条形码.这些条码数据一般存储在TXT文档.excel表或者是其他类型数据库中,具体怎么操作呢?我们就以TXT文档做实例,和大家分享一下如何 ...

最新文章

  1. python matplotlib模块画出的图像转换为.tiff格式
  2. 【转】ABAP的坑2
  3. 前端学习之JavaScript第二天学习
  4. scala中_+_的意思
  5. 【原】页面跳转以及表单提交中有中文的解决办法
  6. windows apache部署php,Windows下部署Apache+PHP+MySQL运行环境实战
  7. catia怎么将特征参数化_VSLAM中特征点的参数化表示
  8. 如何删除Mac系统里面的所有 DS_Store 文件呢?
  9. ROS中阶笔记(七):机器人SLAM与自主导航—SLAM功能包的使用
  10. 用人话解释比特币原理
  11. CSDN博文分类全部删除了?
  12. ssm医院人事管理系统设计与实现 毕业设计源码111151
  13. 空域变换-直方图匹配(直方图规定化)
  14. Terrasolid Suite v015-v016 for Microstation CONNECT, V8i, V8 for Windows platforms 1CD
  15. 关于名为民间借贷实为诈骗案件的讨论
  16. 江苏省职称计算机word2003教材,[205]Word 2003中文字处理 考试大纲
  17. 兼容iOS10 的一些整理
  18. Tout= ((arr+1)*(psc+1))/Tclk公式理解汇总
  19. KNY三人组对YiSmile小程序的项目总结
  20. 极客日报:iPhone13系列售价曝光:4535元起售;微信暂停个人帐号新用户注册;Android 12 Beta 3.1发布

热门文章

  1. ubuntu切换目录命令
  2. 市盈率概念及计算2021-1-19
  3. 操作系统作业 - 文件管理 - 模拟文件管理系统
  4. 可用性测试易用性和有用性_选择您的可用性测试和参与者
  5. uniapp顶部安全距离(包括app)
  6. 如何限制 Docker 的CPU和内存
  7. Open3D 可视化numpy点云数据
  8. JAVA-获取Excel文件的第一行数据
  9. cf 827div 4 G
  10. 哪个星座的心肠最硬?