简体   繁体   English

Netsuite:如何调试工作流操作脚本

[英]Netsuite: How to debug workflow action script

I'm new on suitescript(Javascript based used in Netsuite custumization). 我是Suitescript(基于Netsuite定制的Javascript)的新手。 I have a workflow action script and want to debug it via Scritp Debugger in Netsuite.But I couldnt see my workflow action script in Debugger, even if I invoked the custom action. 我有一个工作流程操作脚本,想通过Netsuite中的Scritp Debugger对其进行调试,但是即使调用了自定义操作,我也无法在Debugger中看到我的工作流程操作脚本。

I use Eclipse IDE and upload my file to Netsuite. 我使用Eclipse IDE,并将文件上传到Netsuite。 Here is my code, simply it just adds expense report info note to employee when the empolyee expense report is created. 这是我的代码,只是在创建员工工资报表时仅向员工添加了费用报表信息注释。 It has a problem with returning type. 返回类型有问题。

function UpdateEmployeeWithExpenseReport()
{
   var stFrequentCriteria = nlapiGetContext().getSetting('SCRIPT',
        'custscript_oradata_freq_trav_limit');  // get value of the script parameter
   var intFrequentCriteria = parseInt(stFrequentCriteria); //the limit of frequency
   var recExpenseReport = nlapiGetNewRecord();
   var stEntity = recExpenseReport.getFieldValue('entity');  
   var today = new Date();
   var aMonthAgo = nlapiAddDays(today, -30); 
   // filter just the main lines of expenses
   var arrSearchFilters =  [
        new nlobjSearchFilter('employee', null, 'is', stEntity),
        new nlobjSearchFilter('trandate', null, 'within', aMonthAgo, today),
        new nlobjSearchFilter('mainline', null, 'is', 'T') ];                                                   
   var arrSearchColumns = [ new nlobjSearchColumn('internalid', null, 'count') ]; // Note: count is not a field, it just counts internal id based on  Empolyee expenses reports
   var arrSearchResults = nlapiSearchRecord('expensereport', null,
        arrSearchFilters, arrSearchColumns);
   var stCount = arrSearchResults[0].getValue(arrSearchColumns[0]); //                                                                  
   var count = parseInt(stCount);
   var stFrequentTraveler = '';
   if (count >= intFrequentCriteria)
   {
      stFrequentTraveler = 'Frequent';
   }
   else 
   {
    stFrequentTraveler = 'Infrequent';
   }

   var stAmount = recExpenseReport.getFieldValue('amount');
   var intExpenseLines = recExpenseReport.getLineItemCount('expense');
   var stNotes = '';
   stNotes += stFrequentTraveler + 'Traveler' + '\n';
   stNotes += 'Last Expense Report' + '\n';
   stNotes += '--Expense Report Total= ' + stAmount + '\n';
   stNotes += '--Expense Lines = ' + intExpenseLines;

   var recEmployee = nlapiLoadRecord('employee', stEntity); // 1 internal name of record, 2.internal id for the  record

   recEmployee.setFieldValue('comments', stNotes);
   nlapiLogExecution('tDEBUG', 'stEntity', stEntity);
   stEntity = recEmployee.getFieldValue('entityid');

为了使您的脚本显示在Netsuite脚本调试器中,您需要在脚本部署记录上将“状态”设置为“正在测试”。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM