为什么ABAP里有些场景必须加上COMMIT WORK才生效
Sent: Friday, November 29, 2013 7:44 PM
Subject: RE: 關(guān)于content management的commit work
我找到我們social post和service request behavior 不一致的原因了。
問題就出在紅色的這個(gè)FM我們沒有enhance:
它會(huì)判斷當(dāng)前的BO在DB是否存在,根據(jù)結(jié)果決定是否需要一個(gè)顯式的commit:
我們的socialpost落到了WHEN OTHERS里,因?yàn)橐膊皇莝ocial post,所以就默認(rèn)為ev_exist = false. 所以總是需要顯式call commit work 才能真正刪除掉link。
所以我們要么enhance上面那個(gè)FM,要么繼續(xù)在我們的code里使用COMMIT WORK
我之前測(cè)試的時(shí)候也是hard code成service request 的BOR: BUS2000223
你的util class寫死的刪CRMSOCPOST, 你刪service request的時(shí)候在 debugger里面動(dòng)態(tài)改成service request的BOR type么? 是什么?
我刪service request是直接run util class刪的,可以刪掉
From: Wang, Jerry
Sent: Friday, November 29, 2013 4:25 PM
你刪service request的attachment也是在report里刪,但是沒用commit work,也一樣能刪掉?? 我覺得不可能。我正在看代碼
From: 黃忠
Sent: Friday, November 29, 2013 4:23 PM
我在刪的時(shí)候需要像下面這樣,call完util class以后commit work, 不然刪不掉
From: Wang, Jerry
Sent: Friday, November 29, 2013 4:14 PM
這只是create的case。我稍后會(huì)看Max說的delete的case。
我直接創(chuàng)建document的時(shí)候,是在一個(gè)test report里面做的,如果沒有加commit work,document創(chuàng)建了之后就get不到,加上才work。
Host BO 和其attachment的relationshi是通過 GOS 維護(hù)的。
只有代碼里出現(xiàn)COMMIT WORK, GOS的方法才會(huì)在新的update process里被觸發(fā)。要debug必須打開update debugging。
真正的link是在這里存的,如果沒有commit work,這些代碼都不會(huì)被執(zhí)行到:
IC 點(diǎn)了end button存BO和interaction的link,也是用的類似的辦法,由application call 一個(gè)commit,會(huì)trigger Genil的框架執(zhí)行一次commit work。
要獲取更多Jerry的原創(chuàng)文章,請(qǐng)關(guān)注公眾號(hào)"汪子熙":總結(jié)
以上是生活随笔為你收集整理的为什么ABAP里有些场景必须加上COMMIT WORK才生效的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 政府专项债券由谁偿还
- 下一篇: 短期信用工具包括 短期的信用工具包括什么