diff --git a/entity/Activity_entity/Activity_entity.aod b/entity/Activity_entity/Activity_entity.aod index ed7f41f79ce2b5ec3267c56e0da9d45cee271ecc..7b9eabc8dbd1755143c0ad44d6f13bcbe0a36721 100644 --- a/entity/Activity_entity/Activity_entity.aod +++ b/entity/Activity_entity/Activity_entity.aod @@ -231,6 +231,18 @@ <fieldName>Activities</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>9b416661-628d-4f8d-b8dc-9543cf5bbb1c</name> + <entityName>Campaign_entity</entityName> + <fieldName>Activities</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>4869a849-8717-48ec-9dbd-73df96992042</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>Activities</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/entity/CampaignStep_entity/CampaignStep_entity.aod b/entity/CampaignStep_entity/CampaignStep_entity.aod index e26c5f83d6da803c7737f361b6e46536217fa0d6..1ad56f5df2a56013327f69b2f47d9aacb7ef9438 100644 --- a/entity/CampaignStep_entity/CampaignStep_entity.aod +++ b/entity/CampaignStep_entity/CampaignStep_entity.aod @@ -9,6 +9,14 @@ <entityFields> <entityProvider> <name>#PROVIDER</name> + <dependencies> + <entityDependency> + <name>13f82959-7e04-449f-a657-c34f6b97f3be</name> + <entityName>Object_entity</entityName> + <fieldName>CampaignSteps</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> </entityProvider> <entityField> <name>CAMPAIGNSTEPID</name> @@ -237,6 +245,63 @@ <fieldName>CampaignProvider</fieldName> </dependency> </entityConsumer> + <entityConsumer> + <name>Activities</name> + <title>Activities</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Activity_entity</entityName> + <fieldName>LinkedObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>RowId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>Tasks</name> + <title>Tasks</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <stateProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js</stateProcess> + <dependency> + <name>dependency</name> + <entityName>Task_entity</entityName> + <fieldName>LinkedObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>RowId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>ObjectId_param</name> + <valueProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityActionField> + <name>newActivity</name> + <fieldType>ACTION</fieldType> + <title>New activity</title> + <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> + <iconId>NEON:HISTORY</iconId> + <tooltip>New activity</tooltip> + <tooltipProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>newTask</name> + <fieldType>ACTION</fieldType> + <title>New task</title> + <onActionProcess>%aditoprj%/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js</onActionProcess> + <iconId>VAADIN:TASKS</iconId> + </entityActionField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..008915f61deac19ccdd40fff81701de63eb3b6a2 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/activities/children/objectid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..73512b5ba01cbb1eb0c5c71d8b3bb16712f8f7bc --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/activities/children/rowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js b/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..59a786db9b15cca4809d11586ba9adc7b70fea37 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/newactivity/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("ActivityTask_lib"); + +ActivityUtils.createNewActivity(vars.getString("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js b/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/newactivity/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("New activity")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js b/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c674a6a4942409c114993fc541519e0b3c23a236 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/newtask/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("ActivityTask_lib"); + +TaskUtils.createNewTask(vars.get("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..008915f61deac19ccdd40fff81701de63eb3b6a2 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/tasks/children/objectid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js b/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..73512b5ba01cbb1eb0c5c71d8b3bb16712f8f7bc --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/tasks/children/rowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGNSTEPID")); \ No newline at end of file diff --git a/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js b/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..527624728ab45db1d1e548022197a2e509eee432 --- /dev/null +++ b/entity/CampaignStep_entity/entityfields/tasks/stateProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); +import("Context_lib"); + +if (TaskUtils.hasTasks(vars.get("$field.CAMPAIGNSTEPID"), ContextUtils.getCurrentContextId())) + result.string(neon.COMPONENTSTATE_EDITABLE); +else + result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/Campaign_entity/Campaign_entity.aod b/entity/Campaign_entity/Campaign_entity.aod index 1b94e9210769af76e7e2c9bba236bdac858268c4..d3fedb96ae942e45c3b515c244bcfb15e6a3af61 100644 --- a/entity/Campaign_entity/Campaign_entity.aod +++ b/entity/Campaign_entity/Campaign_entity.aod @@ -9,6 +9,14 @@ <entityFields> <entityProvider> <name>#PROVIDER</name> + <dependencies> + <entityDependency> + <name>8db36fa6-e799-488c-882f-1141f781c9dc</name> + <entityName>Object_entity</entityName> + <fieldName>Campaigns</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> </entityProvider> <entityField> <name>CAMPAIGNID</name> @@ -228,6 +236,63 @@ <title>Participants</title> <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/participantcount/valueProcess.js</valueProcess> </entityField> + <entityConsumer> + <name>Activities</name> + <title>Activities</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Activity_entity</entityName> + <fieldName>LinkedObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>RowId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityConsumer> + <name>Tasks</name> + <title>Tasks</title> + <fieldType>DEPENDENCY_OUT</fieldType> + <stateProcess>%aditoprj%/entity/Campaign_entity/entityfields/tasks/stateProcess.js</stateProcess> + <dependency> + <name>dependency</name> + <entityName>Task_entity</entityName> + <fieldName>LinkedObjects</fieldName> + </dependency> + <children> + <entityParameter> + <name>ObjectId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js</valueProcess> + </entityParameter> + <entityParameter> + <name>RowId_param</name> + <valueProcess>%aditoprj%/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityActionField> + <name>newActivity</name> + <fieldType>ACTION</fieldType> + <title>New activity</title> + <onActionProcess>%aditoprj%/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js</onActionProcess> + <iconId>NEON:HISTORY</iconId> + <tooltip>New activity</tooltip> + <tooltipProcess>%aditoprj%/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js</tooltipProcess> + </entityActionField> + <entityActionField> + <name>newTask</name> + <fieldType>ACTION</fieldType> + <title>New task</title> + <onActionProcess>%aditoprj%/entity/Campaign_entity/entityfields/newtask/onActionProcess.js</onActionProcess> + <iconId>VAADIN:TASKS</iconId> + </entityActionField> </entityFields> <recordContainers> <dbRecordContainer> diff --git a/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js b/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..008915f61deac19ccdd40fff81701de63eb3b6a2 --- /dev/null +++ b/entity/Campaign_entity/entityfields/activities/children/objectid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js b/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3814648f507bd77edb266f38a807c1669e8c5f1e --- /dev/null +++ b/entity/Campaign_entity/entityfields/activities/children/rowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js b/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3cc8f6e5013e0a16d03444898c3a7f2cfa366552 --- /dev/null +++ b/entity/Campaign_entity/entityfields/newactivity/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("ActivityTask_lib"); + +ActivityUtils.createNewActivity(vars.getString("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js b/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..c71e677c22663c2295e524aa7f3ed3dd571724d7 --- /dev/null +++ b/entity/Campaign_entity/entityfields/newactivity/tooltipProcess.js @@ -0,0 +1,4 @@ +import("system.translate"); +import("system.result"); + +result.string(translate.text("New activity")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/newtask/onActionProcess.js b/entity/Campaign_entity/entityfields/newtask/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d870f4d21cebf7aeaf34d6b59f2157d03d8e82ff --- /dev/null +++ b/entity/Campaign_entity/entityfields/newtask/onActionProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("ActivityTask_lib"); + +TaskUtils.createNewTask(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js b/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..008915f61deac19ccdd40fff81701de63eb3b6a2 --- /dev/null +++ b/entity/Campaign_entity/entityfields/tasks/children/objectid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.result"); +import("Context_lib"); + +result.string(ContextUtils.getCurrentContextId()); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js b/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..3814648f507bd77edb266f38a807c1669e8c5f1e --- /dev/null +++ b/entity/Campaign_entity/entityfields/tasks/children/rowid_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.CAMPAIGNID")); \ No newline at end of file diff --git a/entity/Campaign_entity/entityfields/tasks/stateProcess.js b/entity/Campaign_entity/entityfields/tasks/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..d77c2eeb195571306ce7f9e977a5f9ad26b47079 --- /dev/null +++ b/entity/Campaign_entity/entityfields/tasks/stateProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.neon"); +import("system.vars"); +import("ActivityTask_lib"); +import("Context_lib"); + +if (TaskUtils.hasTasks(vars.get("$field.CAMPAIGNID"), ContextUtils.getCurrentContextId())) + result.string(neon.COMPONENTSTATE_EDITABLE); +else + result.string(neon.COMPONENTSTATE_INVISIBLE); \ No newline at end of file diff --git a/entity/Object_entity/Object_entity.aod b/entity/Object_entity/Object_entity.aod index 99ed95858065c06f5a57e982a8701195b1d412c1..e750519f4736d6a40d6e9d71616561f8a5577f48 100644 --- a/entity/Object_entity/Object_entity.aod +++ b/entity/Object_entity/Object_entity.aod @@ -154,6 +154,24 @@ </entityParameter> </children> </entityProvider> + <entityConsumer> + <name>Campaigns</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>Campaign_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> + <entityConsumer> + <name>CampaignSteps</name> + <fieldType>DEPENDENCY_OUT</fieldType> + <dependency> + <name>dependency</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + </entityConsumer> </entityFields> <recordContainers> <jDitoRecordContainer> diff --git a/entity/Task_entity/Task_entity.aod b/entity/Task_entity/Task_entity.aod index 32400b4e84b9d76db5d1f3f4a943cba2fade10f7..5705fe5b4aad43f3add818d789234d4dffabfea5 100644 --- a/entity/Task_entity/Task_entity.aod +++ b/entity/Task_entity/Task_entity.aod @@ -361,6 +361,18 @@ <fieldName>Tasks</fieldName> <isConsumer v="false" /> </entityDependency> + <entityDependency> + <name>335e31ad-ab67-4567-b4ea-3668f04922b2</name> + <entityName>Campaign_entity</entityName> + <fieldName>Tasks</fieldName> + <isConsumer v="false" /> + </entityDependency> + <entityDependency> + <name>fbaa2f6c-0ba1-4c93-acae-d7b636581679</name> + <entityName>CampaignStep_entity</entityName> + <fieldName>Tasks</fieldName> + <isConsumer v="false" /> + </entityDependency> </dependencies> <children> <entityParameter> diff --git a/neonView/CampaignMain_view/CampaignMain_view.aod b/neonView/CampaignMain_view/CampaignMain_view.aod index e35b2793103a62830da3077fb2619a2db03d079d..3d9df5dea94130c44f9e55024bf787ea0ed00f32 100644 --- a/neonView/CampaignMain_view/CampaignMain_view.aod +++ b/neonView/CampaignMain_view/CampaignMain_view.aod @@ -30,5 +30,15 @@ <entityField>#ENTITY</entityField> <view>CampaignCost_view</view> </neonViewReference> + <neonViewReference> + <name>90d3d016-63e6-4e8a-98ee-30033bef49fc</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>e28e5598-9366-4f5a-be8f-70dd3cc0399a</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/CampaignPreview_view/CampaignPreview_view.aod b/neonView/CampaignPreview_view/CampaignPreview_view.aod index a1d6b8859c18d6f830605335621dc7a623376ad4..6fd667be9fa00e172dbce25a23d4e3f5553ed8f8 100644 --- a/neonView/CampaignPreview_view/CampaignPreview_view.aod +++ b/neonView/CampaignPreview_view/CampaignPreview_view.aod @@ -17,6 +17,7 @@ <titleField>NAME</titleField> <subtitleField>STATE</subtitleField> <descriptionField>DESCRIPTION</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> <entityField>#ENTITY</entityField> <title></title> </cardViewTemplate> diff --git a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod index ba87160a9b109f44b7bcc99017b7c48ec0715d8d..0c083351809757f1e6c5e4a1395b279506d3a90e 100644 --- a/neonView/CampaignStepMain_view/CampaignStepMain_view.aod +++ b/neonView/CampaignStepMain_view/CampaignStepMain_view.aod @@ -29,5 +29,15 @@ <entityField>CampaignStepCosts</entityField> <view>CampaignCostExtendedFilter_view</view> </neonViewReference> + <neonViewReference> + <name>d99ab70c-2a08-408e-a665-1ef566c75650</name> + <entityField>Activities</entityField> + <view>ActivityFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>4fd5e3cc-0696-4fc4-877b-440c0b6c2472</name> + <entityField>Tasks</entityField> + <view>TaskFilter_view</view> + </neonViewReference> </children> </neonView> diff --git a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod index f3de7b97b364387b4ccc0e4782dcca1a011bf9c0..9cb3d9fa4e34b890559c090cd78ed3e218d2126b 100644 --- a/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod +++ b/neonView/CampaignStepPreview_view/CampaignStepPreview_view.aod @@ -15,6 +15,7 @@ <titleField>NAME</titleField> <subtitleField>STATE</subtitleField> <descriptionField>DESCRIPTION</descriptionField> + <favoriteAction1>newActivity</favoriteAction1> <entityField>#ENTITY</entityField> </cardViewTemplate> <genericViewTemplate> diff --git a/process/Context_lib/process.js b/process/Context_lib/process.js index 0890b12f0f1561015d6a9076f40f53cfd90e780d..deef3a856b16bbd1addfba01076ea05afc3b20d4 100644 --- a/process/Context_lib/process.js +++ b/process/Context_lib/process.js @@ -1,3 +1,4 @@ +import("system.logging"); import("system.translate"); import("system.project"); import("system.vars"); @@ -385,11 +386,12 @@ ContextUtils.getSelectMap = function() maskingUtils.cast("CAMPAIGNSTEP.NAME", SQLTYPES.VARCHAR, 10) ], "", false)) .setContactIdField("CAMPAIGNPARTICIPANT.CONTACT_ID") - .setJoinExpression("join CAMPAIGNPARTICIPANT on CAMPAIGNPARTICIPANT.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID " + - "join CAMPAIGNSTEP on CAMPAIGNSTEP.CAMPAIGNSTEPID = CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID") + .setJoinExpression("left join CAMPAIGNPARTICIPANT on CAMPAIGNPARTICIPANT.CAMPAIGN_ID = CAMPAIGN.CAMPAIGNID " + + "left join CAMPAIGNSTEP on CAMPAIGNSTEP.CAMPAIGNSTEPID = CAMPAIGNPARTICIPANT.CAMPAIGNSTEP_ID") .setCreationDateField("CAMPAIGNSTEP.DATE_START") .setStateField("CAMPAIGN.STATE") .setActiveStates(["e04c9c59-0590-463c-a10e-e25c583e9cf2", "42e1ee2b-0108-4ccf-ab43-29cbcb0377bf"]) + ,"CampaignStep" : ContextSelector.create("CAMPAIGNSTEP", "CAMPAIGNSTEPID", "NAME") } }