gpt4 book ai didi

javascript - 如何在更新记录值时锁定记录以确保 NetSuite 上的值保持一致?

转载 作者:行者123 更新时间:2023-12-03 00:07:56 24 4
gpt4 key购买 nike

有一个销售订单,其中包含许多采购订单,并且该销售订单有一个项目,该项目汇总了每个 PO 中的所有运费。

我开发了如下两个函数来计算每个 PO 中的所有运费:

function calcuTotalShippingCostByAllPOs(.....) {
......
// var created_pos is an array which records all the unique PO id in SO
for (i = 0; i < created_pos.length; i++) {
var po_amountValue = po_record.getSublistValue({
sublistId: 'item',
fieldId: 'amount',
line: ship_line
});
total_shipping += parseFloat(po_amountValue);
}
so_record.setSublistValue({
sublistId: "item",
fieldId: "amount",
line: so_ship_line,
// ignoreFieldChange: false,
value: total_shipping
});
}

function calcuTotalShippingCostByCurrentPO(.....) {
......
switch (context.type) {
case context.UserEventType.CREATE:
var difference = new_po_ship_cost;
break;
case context.UserEventType.DELETE:
var difference = -old_po_ship_cost;
break;
default:
var difference = new_po_ship_cost - old_po_ship_cost;
break;
}

// Get the old GST-Shipping cost on SO
var old_so_ship_cost = so_record.getSublistValue({
sublistId: 'item',
fieldId: 'custcol_po_actual_cost',
line: so_ship_line
});

// if PO UNIT COST on ship line is a finite number
if (isNumber(old_so_ship_cost)) {
var new_so_ship_cost = old_so_ship_cost + difference;
} else {
var new_so_ship_cost = difference;
}

so_record.setSublistValue({
sublistId: "item",
fieldId: "amount",
line: so_ship_line,
// ignoreFieldChange: false,
value: total_shipping
});
}

但是,如果有人在计算过程中更新了特定 PO 中的运费,则总运费可能不正确。

执行汇总所有运费的功能时是否可以锁定采购订单?

例如,一个SO中有100000个PO,在计算总运费时,如果有人修改了PO中的其中一个运费,那么如果添加了该成本,则总成本可能不正确在总运输成本中。

如何防止NetSuite上出现数据不一致的情况。

最佳答案

因此,如果您想锁定 PO 记录,可以使用 Lock Record 来实现。工作流程操作:如果您在记录的 BeforeLoad 上应用该操作,它将阻止其编辑。

因此,一种方法是:添加一个新的复选框自定义正文字段(例如:锁定计算):在脚本中,在开始计算之前,更新所有 PO,以便自定义字段为 TRUE。计算完成后,将其重置为 FALSE。

您创建一个具有一个未完成状态的事务工作流程,并添加带有条件的锁定操作:锁定计算 = TRUE。

理论上,这会解决你的问题,但要小心脚本中使用的治理:因为你将更新两次 PO 数量:如果不超过 10,那一定没问题,但请记住这一点.

祝你好运:)

关于javascript - 如何在更新记录值时锁定记录以确保 NetSuite 上的值保持一致?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54877643/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com