我在Windows上将Java API与Case Manager 5.2.1结合使用。
我的Web服务执行以下操作:
// Create a brand new case
CaseType myCaseType = CaseType.fetchInstance(osRef, myCaseTypeName);
Case newPendingCase = Case.createPendingInstance(myCaseType);
// Save it now to get access to the Case ID
newPendingCase.save(RefreshMode.REFRESH, null, ModificationIntent.MODIFY);
newCaseIdentifier = newPendingCase.getIdentifier();
// Fetch a fresh copy of the case instance
Case cs = Case.fetchInstanceFromIdentifier(osRef, newCaseIdentifier);
// Now set a whole bunch of properties, add documents, etc. etc.
...
// Finally, save all our updates: to "cs", not "newCaseIdentifier"
cs.save(RefreshMode.REFRESH, null, ModificationIntent.MODIFY);
问题:我间歇性地收到此错误:
类的对象{52EECAC2-38B2-4CB5-8F22-BAF33D6C35EC}
“ MyCaseTypeName”未更改或删除,因为已对其进行了修改
自检索到应用程序以来,在存储库中进行了一次或多次
它。更新序列号不匹配;请求的USN = 0,数据库USN =
1个
我知道只有两个case.save()调用:一个用于“ newPendingDocument”,另一个(稍后)用于“ cs”。
我多次执行了SAME代码:有时可以正常工作,有时如果失败则
“更新序列号不匹配”错误。
问:关于如何解决此问题的任何想法/建议?
最佳答案
看您提供的代码,我对为什么要创建第二个Case实例感到困惑。
我想您最好这样做:
// Create a brand new case
CaseType myCaseType = CaseType.fetchInstance(osRef, myCaseTypeName);
Case newPendingCase = Case.createPendingInstance(myCaseType);
// Save it now to get access to the Case ID
newPendingCase.save(RefreshMode.REFRESH, null, ModificationIntent.MODIFY);
newCaseIdentifier = newPendingCase.getIdentifier();
// Fetch a fresh copy of the case instance (not sure if this is necessary)
newPendingCase = Case.fetchInstanceFromIdentifier(osRef, newCaseIdentifier);
// Now set a whole bunch of properties, add documents, etc. etc.
...
// Finally, save all our updates: to "newPendingCase"
newPendingCase.save(RefreshMode.REFRESH, null, ModificationIntent.MODIFY);
我尚未与Case Manager合作,但已与P8合作。 api调用非常相似。
USN号码可能有点棘手。如果有一段时间等待外部呼叫(例如,呼叫第三方REST接口),则可能需要在呼叫后执行
newPendingCase.Refresh()
,然后重新填充案例的所有所需属性。