javascript - 无效金额错误(必须是正数)通过计划脚本调整库存
问题描述
我正在尝试通过预定脚本创建库存调整,但是当我执行它时,我总是遇到错误:无效金额(必须为正),但在 UI 中,允许输入负值。
该错误是由 ir_qty 为负数引起的,我将其设置为库存明细子记录中的数量值。
这是我当前的脚本。有什么想法吗?
function createInvAdjust() {
nlapiLogExecution('DEBUG', 'Inside function', 'Inside function');
try {
var columns = new Array();
columns[0] = new nlobjSearchColumn('internalid');
var searchResult = nlapiSearchRecord(null, 'customsearch_365', null, columns);
//Item Receipt Saved Search
if (searchResult != null && searchResult != '') {
var searchResultCount = searchResult.length;
nlapiLogExecution('DEBUG', 'searchResult Count', searchResultCount);
for (var i = 0; i < searchResult.length; i++) {
nlapiLogExecution('DEBUG', 'Inside for', 'Inside for');
var ir_internalId = searchResult[i].getValue('internalid');
nlapiLogExecution('DEBUG', 'Item Receipt Internal Id', ir_internalId);
var ir_Record = nlapiLoadRecord('itemreceipt', ir_internalId);
var customer = ir_Record.getFieldValue('entity');
nlapiLogExecution('debug', 'Customer: ', customer);
var subsidiary = ir_Record.getFieldValue('subsidiary');
nlapiLogExecution('debug', 'Subsidiary: ', subsidiary);
//var ir_Number = ir_Record.getFieldValue('tranid');
//nlapiLogExecution('debug','Item Receipt Number: ',ir_Number);
var linecount = ir_Record.getLineItemCount('item');
nlapiLogExecution('debug', 'Line Count: ', linecount);
var cust_loc = nlapiLookupField('customer', customer, 'custentity_customer_consignment_location');
nlapiLogExecution('debug', 'cust_loc', cust_loc);
var inventory_record = nlapiCreateRecord('inventoryadjustment');
inventory_record.setFieldValue('customer', customer);
inventory_record.setFieldValue('custbody_linked_if_consignment', ir_internalId);
inventory_record.setFieldValue('subsidiary', subsidiary);
inventory_record.setFieldValue('account', '612'); // 82000 Cost (At Standard)
inventory_record.setFieldValue('adjlocation', '3');
if (linecount != null && linecount != '') {
for (var j = 1; j <= linecount; j++) {
var ir_item = ir_Record.getLineItemValue('item', 'item', j);
nlapiLogExecution('DEBUG', 'Item Receipt Item: ', ir_item);
var ir_quantity = ir_Record.getLineItemValue('item', 'quantity', j);
nlapiLogExecution('DEBUG', 'Item Receipt Quantity: ', ir_quantity);
var ir_qty = '-' + ir_quantity;
nlapiLogExecution('DEBUG', 'ir_qty: ', ir_qty);
inventory_record.selectNewLineItem('inventory');
inventory_record.setCurrentLineItemValue('inventory', 'item', ir_item);
inventory_record.setCurrentLineItemValue('inventory', 'location', cust_loc);
inventory_record.setCurrentLineItemValue('inventory', 'adjustqtyby', ir_quantity);
var inventoryDetail = inventory_record.createCurrentLineItemSubrecord('inventory', 'inventorydetail');
inventoryDetail.selectLineItem('inventoryassignment');
inventoryDetail.setCurrentLineItemValue('inventoryassignment', 'quantity', ir_qty);
inventoryDetail.commitLineItem('inventoryassignment');
inventoryDetail.commit();
inventory_record.commitLineItem('inventory');
}
}
try {
var submitID_INV = nlapiSubmitRecord(inventory_record, true);
nlapiLogExecution('DEBUG', 'Submit ID INV', submitID_INV);
ir_Record.setFieldValue('custbody_transfer_complete', 'T');
ir_Record.setFieldValue('custbody_linked_inv_adj', submitID_INV);
var submitID_ir = nlapiSubmitRecord(ir_Record, true);
//nlapiLogExecution('DEBUG', 'Submit ID IR', submitID_ir);
} catch (ex) {
nlapiLogExecution('Error', 'Exception in Create Inv Adj with id: ' + ir_internalId, ex);
}
//Check the Usage limit and rerun the scheduler
var context = nlapiGetContext();
if (context.getRemainingUsage() <= 200) {
var state = nlapiSetRecoveryPoint();
var state1 = nlapiYieldScript();
}
}
}
} catch (e) {
nlapiLogExecution('Error', 'Exception in Create Inventory Adjustment for IR: ', e);
}
}
解决方案
底线:数量不能为负数或零。这是设计使然。你可以逃脱 0.0001 但这太难了
推荐阅读
- firebase - firestore 映射到 StreamBuilder => ListView.Builder
- javascript - 无法使用 getDownloadURL() 在 Firebase 存储中获取路径引用 - React Native
- powerbi - 无法在 Power BI 中保存对服务器的修改
- openid-connect - 使用 yahoo 帐户通过 openid connect 登录的网站
- jhipster - 请求被拒绝,因为 URL 包含潜在的恶意字符串“;” 在 jhipster 网关中
- c# - 只需使用带有证书的.Net System.Net.WebSockets 通过 WSS 客户端检查 WSS 服务器是否打开/关闭?
- python - Anaconda 3.8.3 上没有名为“cv2”的模块
- angular - 如何以角度订阅纯/文本响应
- reactjs - 我在创建反应应用程序时遇到问题
- python-3.x - 为什么没有在工作簿中创建新工作表?蟒蛇熊猫