首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >指南-无法将详细信息保存到实体

指南-无法将详细信息保存到实体
EN

Stack Overflow用户
提问于 2018-11-28 11:13:52
回答 2查看 1.5K关注 0票数 0

我想把一些细节保存在政策中心。我正在从计费中心得到这些细节,并立即试图保存它,但这给了我例外。

我调用了billingAPI的“billingAPI”函数,并返回了一些值,我需要将其保存在策略中心。

com.guidewire.pl.system.exception.TransactionException:异常:在保存委托detais: java.lang.RuntimeException: commitBundle时,不能在事务中调用异常。

Code /** *在计费中心* @param期间发出策略期:策略期* @param transactionID:发出此调用的唯一事务id幂等*/

覆盖函数createPolicyPeriod(句号: PolicyPeriod,transactionID : String):String { var issuePolicyInfo =新的IssuePolicyInfo() issuePolicyInfo.sync(句号)到计费系统的策略${周期}“)

代码语言:javascript
复制
 var commissionList = callUpdate(\ b -> b.issuePolicyPeriod(issuePolicyInfo, transactionID))

gw.transaction.Transaction.runWithNewBundle(\ bundle -> {
  var commission = new CommissionDetails()
  bundle.add(commission)
  commission.Commission_SI = new BigDecimal( commissionList.get(1))
  commission.CommissionGST_SI = new BigDecimal(commissionList.get(2))
  commission.CommissionRate_SI = commissionList.get(3).toString()

})

return  commissionList.get(0)

}

我从PC调用issuePolicyPeriod()函数,使用BillingAPI并从BC返回佣金详细信息,并试图立即将其保存在PC实体中。

嗨,谢谢你的回答。我尝试了上面的代码,但是它没有保存到实体,也没有给出任何异常。我在这里有疑问,现在的包还能买到吗?因为这里我们打电话给计费中心,不知道BC什么时候回应。在web服务调用中,guidewire会保存当前的包直到响应返回吗?当guidewire在web服务调用中提交当前包时?

EN

回答 2

Stack Overflow用户

发布于 2018-11-28 15:05:12

尝试使用当前事务而不是创建新事务。

代码语言:javascript
复制
var commissionList = callUpdate(\ b -> b.issuePolicyPeriod(issuePolicyInfo, transactionID))

var bundle = gw.transaction.Transaction.Current
var commission = new CommissionDetails(bundle)
commission.Commission_SI = new BigDecimal( commissionList.get(1))
commission.CommissionGST_SI = new BigDecimal(commissionList.get(2))
commission.CommissionRate_SI = commissionList.get(3).toString()

return  commissionList.get(0)

当在块执行结束后使用runWithNewBundle,时,bundle.commit()将被调用

票数 1
EN

Stack Overflow用户

发布于 2022-02-08 14:27:59

对于一个包( com.guidewire.pl.system.exception.TransactionException::java.lang.RuntimeException:不能在事务中调用commitBundle ),我也犯了类似的错误,可以通过以下步骤来解决

  1. 退出或注释: gw.transaction.Transaction.runWithNewBundle(\ bundle -> {})
  2. 问题是我有一个现有的包,所以我只需要用getCurrent()调用它。

var bundle = gw.transaction.Transaction.getCurrent()

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53518143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档