Last week, our functional guy raised a requirement, our price in sales order should only be modified by a customized interface, user are not allowed to change price. The functional guy created a processing constraint, although it can successfully prevent user from modify from front end, it also constraint the customized program, the process_order API also checks the processing constraints. This is a bad news. Fortunately, I turned on the oe's debuglog and saw a flag named UI something. My program shows it's false. So I modified the API used in processing constraint to return 1 only when the oe_globals.G_UI_FLAG is true. it worked. Later I also tried to remove this UI flag checking in processing constraint and it prevents the API too.
Basically, this can also be achieved by adding a responsibility into 'authorized responsibility' and run/schedule the API program in this responsibility.
One interesting finding today is , the oe_globals.g_ui_flag is FALSE when we do split line from screen. So this meet the requirement that users are not allowed to apply price adjustment but allowed to split lines, when splitting line, the previous price adjustments are automatically applied since our modifier's automatic_flag is 'Y'
上周,功能团队提出需求,销售订单中的价格只能通过定制界面进行修改,不允许直接更改。为解决这一问题,我们通过调整API及加工约束实现目标,并确保了用户界面标志正确地控制了价格调整逻辑。

被折叠的 条评论
为什么被折叠?



