我试图在政策中心保存一些细节。我从计费中心获取这些详细信息并立即尝试保存它,但它给了我例外。
我调用了 billingAPI 的“issuePolicyPeriod”函数并返回了一些值,我需要将其保存在策略中心。
异常: 保存佣金详细信息时出现异常:java.lang.RuntimeException:com.guidewire.pl.system.exception.TransactionException:不得在事务中调用commitBundle。
Code /** * 在计费中心发布一个策略周期 * @param period:策略周期 * @param transactionID:唯一的事务ID,使这个调用幂等 */
override function createPolicyPeriod(period: PolicyPeriod, transactionID : String) : String { var issuePolicyInfo = new IssuePolicyInfo() issuePolicyInfo.sync(period) PCLoggerCategory.BILLING_SYSTEM_PLUGIN.info("发送策略 ${period} 到计费系统")
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)
}
我正在使用 BillingAPI 从 PC 调用 issuePolicyPeriod() 函数并从 BC 返回佣金详细信息并尝试立即将其保存在 PC 实体中。
你好,谢谢你的回答。我尝试了上面的代码,但它没有保存到实体,也没有给出任何异常。我在这里怀疑当前的捆绑包是否仍然可用?因为我们在这里打电话给计费中心,不知道 BC 什么时候回复。在 Web 服务调用中,guidewire 会保留当前包,直到响应返回?guidewire 何时在 Web 服务调用中提交当前捆绑包?