0

我尝试将 SQL 查询转换为 Gosu 脚本(Guidewire)。我的脚本仅适用于有限数量的记录

这是 SQL 查询

select  PolicyNumber,* from pc_policyperiod 
where ID in ( Select ownerID from pc_PRActiveWorkflow 
where ForeignEntityID in (Select id from pc_workflow where State=3))

这是我的脚本

var workFlowIDQuery = Query.make(Workflow).compare(Workflow#State,Relop.Equals,WorkflowState.TC_COMPLETED).select({QuerySelectColumns.path(Paths.make(entity.Workflow#ID))}).transformQueryRow(\row ->row.getColumn(0)).toTypedArray()

var prActiveWorkFlowQuery = Query.make(PRActiveWorkflow).compareIn(PRActiveWorkflow#ForeignEntity, workFlowIDQuery).select({QuerySelectColumns.path(Paths.make(entity.PRActiveWorkflow#Owner))}).transformQueryRow(\row -> row.getColumn(0)).toTypedArray()

var periodQuery = Query.make(PolicyPeriod).compareIn(PolicyPeriod#ID,prActiveWorkFlowQuery).select()

for(period in periodQuery){
  print(period.policynmber)
}

任何人都可以找到原因吗?为什么脚本会产生有限的记录或提出改进建议?

4

1 回答 1

0

我建议您编写一个 Gosu 查询来选择 policyPeriod 并将 3 个具有外键的实体连接到其他实体。

我注意到 PolicyPeriod ID 是否与 PRActiveWorkflow ID 相同。您能否详细说明 PolicyPeriod 和 PRActiveWorkflow 实体之间的关系?

于 2020-03-29T06:41:33.493 回答