头图

我的知识星球有人提问:

Jerry老师,您好!我在做PM工单做释放时,后台调用IBAPI_ALM_ORDER_RELEASE,在debug时发现IBAPI_ALM_ORDER_RELEASE还调用了STATUS_CHECK检查状态表JEST是否存在该笔工单释放REL的记录,如果没有则报错。我想不明白,为啥没有释放记录还报错?不应该是做过释放后在JEST表有记录才不能再次释放吗?如果是这样的话,那第一次的释放记录是怎么产生的?

我们一起来看看这个函数 IBAPI_ALM_ORDER_RELEASE 的代码。

调用 IBAPI_S_HEADER_RELEASE

调用 subroutine set_header_released

调用 STATUS_CHECK:

stk_fre 的值为 I1002, 描述信息 Freigegeben,意思是 approved:

根据代码上下文分析,IBAPI_H_EXEC_FREI_INTERN 函数里调用 STATUS_CHECK 进行订单状态检查,检查的状态是下面第 116 行代码 <font color='red' size="3pt">硬编码</font>的 <font color='red' size="3pt">stk_fre</font>, 也就是 Approved 状态。

这个从业务上来也说得通,一个订单只有被审批之后,才能被 Release.


注销
1k 声望1.6k 粉丝

invalid