Progress-4gl:事务范围如何应用于外部程序调用?

问题描述

我需要一些帮助来了解当前程序之外的程序/程序的事务范围。

假设我有三个程序,程序A,程序B和程序C。在程序A中,我有一个程序,其中有些行包装在do transaction(非强类型)块中。在该do transaction块中,它调用另一个程序B。从程序B返回后,将执行撤消,退出命令。在同一个事务块中,它调用程序C并具有撤消功能,也要在此调用后退出。

我的问题是,如果在事务块内程序B执行无错误,但程序c返回错误,则撤消程序C调用后的撤消操作是否也将撤消在程序B内部发生的事务?

Procedure do_something:
  some processing....
  do transaction:
    error-message = "".
    {run programB.p}
    if error-message <> "" then undo,leave.
  
    some further processing...
  
    error-message = "".
    {run programC.p}
    if error-message <> "" then undo,leave.
  end. /* end of do transaction */
end procedure.

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)