2015-02-10 90 views
0

我正在研究檢查系統中是否存在文件以及是否檢出的Java代碼。在這些檢查之後,它會調用CHECKIN_UNIVERSAL服務。這是停止的地方。檢入一個新文件工作得很好,但它是檢查存在錯誤的現有文件。Oracle-UCM服務CHECKIN_UNIVERSAL在嘗試檢入現有文件時出現錯誤

顯示的特定錯誤(未對我的原始代碼進行修改)是!cscheckinitemexists。一堆谷歌搜索提出瞭解決方案來清除數據綁定,然後它出現了它無法檢索或使用安全令牌的錯誤。

下面是我用它來清除和檢索數據綁定代碼:

m_binder.clearResultSets(); 
m_binder.getLocalData().clear(); 
m_binder.setEnvironment(new IdcProperties(SharedObjects.getSecureEnvironment())); 

回答

0

什麼是你的代碼的其餘部分是什麼樣子?你可以鏈接到一個Gist。

一般來說,由於數據污染(如您所述),我遇到了這個問題。

您有使用m_binder而不是創建全新DataBinder的原因嗎?

看完你的要點後,你正在使用m_binder(服務中的DataBinder)來執行CHECKIN_UNIVERSAL。不要這樣做。使用單獨的DataBinder(與您爲DOC_INFO_BY_NAME服務呼叫所做的操作一樣)。

請使用requestBinder或新的DataBinder。

+0

這裏是我的代碼的要點:https://gist.github.com/Naktsvilks/b86e9bdb554ae129ee88 我試過一個新的DataBinder和m_binder,仍然是相同的錯誤 – Taibi 2015-02-11 13:30:32

0

避免這個問題的另一種方法是簡單地不尋找結帳。 CHECKIN_UNIVERSAL支持一個檢出內容項的標誌,如果它尚未檢出。

將標誌「isForceCheckout」添加到活頁夾中,值爲「1」。

相關問題