Скрипт, возвращающий ограниченное количество записей по сравнению с Query - PullRequest
0 голосов
/ 17 марта 2020

Я пытался преобразовать запрос 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)
}

Может кто-нибудь найти причину ; почему сценарий приводит к ограниченному количеству записей или предлагает улучшения?

1 Ответ

0 голосов
/ 29 марта 2020

Я бы предложил вам написать один запрос Gosu для выбора policyPeriod и присоединить 3 объекта с внешним ключом к другому объекту.

Я уверен, что идентификатор PolicyPeriod совпадает с идентификатором PRActiveWorkflow. Можете ли вы разработать связь между PolicyPeriod и сущностью PRActiveWorkflow?

...