netsuite - suitescript 在单击按钮时运行函数
问题描述
Redux:我想在单击按钮时运行脚本(因为您无法在单击按钮时在脚本中运行函数)我遵循了 Suitescript 文档,并且只能运行第二个日志。任何想法?
` form.setScript('customscript_toloader')
form.addButton('custpagetestbutton', 'TEST button', 'createTO();');`
-其他脚本
function createTO() //(request, response)
{
alert("This function was called");
//variable set up
nlapiLogExecution('DEBUG', 'script', 'runs 1');
var POID ;
var POType ;
var PORecord;
var lines;
nlapiLogExecution('DEBUG', 'script', 'runs 2');
var arrayName = new Array();
var arrayQty = new Array();
PORecord = nlapiGetNewRecord();
lines = PORecord.getLineItemCount('item');
POID = nlapiGetRecordId();
POTYPE = nlapiGetRecordType();
// get name and quantity
for ( var i = 1; i < lines + 1 ; i++ )
{
arrayName[i] = PORecord.getLineItemValue('item', 'item', i );
arrayQty[i] = PORecord.getLineItemValue('item', 'quantity' , i);
}
nlapiLogExecution('DEBUG', 'script', 'runs 3');
//creates to and changes focus
var TOrecord = nlapiCreateRecord ('transferorder');
var TOrecordID = TOrecord.getId();
TOrecord.setFieldValue('customform',128);
//subsidiaries CC bedford id is 2
TOrecord.setFieldValue('subsidiary',2);
//testing for location and transfer location, 144 & 145
TOrecord.setFieldValue('location',144);
TOrecord.setFieldValue('transferlocation',145);
TOrecord.setFieldValue('memo', 'PO: ' + POID );
TOrecord.setFieldValue('employee',nlapiGetContext().getUser());
//TOrecord.setFieldValue('department',"C-C");
//set name and quantity
for ( var j = 1; j < lines +1 ; j++ )
{
arrayName[j] = parseInt(arrayName[j]);
TOrecord.setLineItemValue("item", "item", j , arrayName[j] );
TOrecord.setLineItemValue("item", "quantity", j , parseInt(arrayQty[j])); //added parse int, should work
}
// set the item and location values on the currently selected line
nlapiSetCurrentLineItemValue('item', 'location', 6);
// commit the line to the database
//nlapiCommitLineItem('item');
var TOResult = nlapiSubmitRecord(TOrecord, true, true);
var TOTranID= nlapiLookupField('transferorder', TOResult, 'tranid');
var poURL = nlapiResolveURL('RECORD', 'transferorder', TOResult);
nlapiSetRedirectURL('RECORD','transferorder', TOResult);
return;
}
~其余没有执行的代码~`
解决方案
var steve = "form.setScript('customscript_toloader')" ; form.addButton('custpage_purchaseorder', '创建 TO', steve);
不确定您在这些行中要做什么,但 addButton 中的第三个参数应该只是您的函数名称。例如:
form.addButton('custpage_purchaseorder', 'Create TO', 'createTO');
推荐阅读
- rust - 检查是否选项
是一些(my_string) - python - Python:如何在简单的 webapp 中请求整数
- java - Mule http 代理需要双斜杠(无法通过端点路由事件)
- python-3.x - 未找到 discord.py 重写命令中的 Discord Selfbot
- opengl - 三角形法线与顶点法线
- reactjs - 即使后端返回了正确的数据,useEffect 代码也会显示错误的信息
- laravel - 是否可以从 laravel 7 降级到 laravel 5.8?
- cython - 来自不同已安装软件包的软件包 pxd 定义
- identityserver4 - 如果我有两个基于相同私钥的不同证书,我的令牌是否仍然可以验证?
- python - 具有赋值问题的递归 N 维数组创建函数