diff --git a/entity/Activity_entity/recordcontainers/db/conditionProcess.js b/entity/Activity_entity/recordcontainers/db/conditionProcess.js index 9e14d0b2ef2ed8f4ad75bbee6884c2d96c9bcd92..2d7d8e58d07b4b7a4e5eead6f8528736d4eade6f 100644 --- a/entity/Activity_entity/recordcontainers/db/conditionProcess.js +++ b/entity/Activity_entity/recordcontainers/db/conditionProcess.js @@ -7,15 +7,17 @@ var cond = new SqlCondition(); if (vars.exists("$param.RowId_param") && vars.get("$param.RowId_param") && vars.exists("$param.ObjectId_param") && vars.get("$param.ObjectId_param")) { var rowId = vars.get("$param.RowId_param"); + var rowIds = [rowId]; var rowIdCond = null; if (vars.get("$param.ObjectId_param") == "Person") { - rowId = db.cell(SqlCondition.begin() - .andPrepare("CONTACT.CONTACTID", rowId) - .buildSql("select PERSON_ID from CONTACT", "1 = 2")) - rowIdCond = "# in (select CONTACTID from CONTACT where PERSON_ID = ?)"; + rowIds = db.array(db.COLUMN, SqlCondition.begin() + .andPrepare("CONTACT.CONTACTID", rowId) + .buildSql("select CONTACT.CONTACTID \n\ + from CONTACT \n\ + where CONTACT.PERSON_ID = (select CONTACT.PERSON_ID from CONTACT", null, ")")); } - var activityLinkCond = SqlCondition.begin().andPrepare("ACTIVITYLINK.OBJECT_ROWID", rowId, rowIdCond) + var activityLinkCond = SqlCondition.begin().and("ACTIVITYLINK.OBJECT_ROWID in ('" + rowIds.join(", ") + "')") .andPrepareVars("ACTIVITYLINK.OBJECT_TYPE", "$param.ObjectId_param"); // TODO: more performant way than IN. Maybe a join??