From addb1a5f445d89fb12b019b2e991ca0335104037 Mon Sep 17 00:00:00 2001 From: Sebastian Listl <s.listl@adito.de> Date: Mon, 17 May 2021 10:31:56 +0200 Subject: [PATCH] 1080981 Standard workflows --- .../Data_alias/basic/2021.1.0/changelog.xml | 6 + .../2021.1.0/create_standardWorkflow.xml | 25 +++++ .../blob/rejectEmailCommunication.png | Bin 0 -> 4066 bytes .../blob/rejectEmailCommunication.xml | 40 +++++++ .../Data_alias/basic/workflows/changelog.xml | 6 + .../insert_rejectEmailCommunication.xml | 15 +++ .liquibase/Data_alias/changelog.xml | 2 + aliasDefinition/Data_alias/Data_alias.aod | 104 ++++++++++++++++++ .../StandardWorkflow_entity.aod | 90 +++++++++++++++ .../recordcontainers/db/conditionProcess.js | 17 +++ .../WorkflowDefinitionStore_entity.aod | 59 ++++++++++ .../deployallworkflows/onActionProcess.js | 27 +++++ .../deployselectedworkflow/onActionProcess.js | 16 +++ .../deployselectedworkflow/stateProcess.js | 10 ++ .../excludeexisting_param/valueProcess.js | 4 + .../WorkflowDefinition_entity.aod | 7 ++ .../children/openstore/onActionProcess.js | 3 + .../StandardWorkflow/StandardWorkflow.aod | 14 +++ .../WorkflowDefinitionStore.aod | 12 ++ .../StandardWorkflowFilter_view.aod | 21 ++++ .../WorkflowDefinitionStore_view.aod | 38 +++++++ 21 files changed, 516 insertions(+) create mode 100644 .liquibase/Data_alias/basic/2021.1.0/changelog.xml create mode 100644 .liquibase/Data_alias/basic/2021.1.0/create_standardWorkflow.xml create mode 100644 .liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.png create mode 100644 .liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.xml create mode 100644 .liquibase/Data_alias/basic/workflows/changelog.xml create mode 100644 .liquibase/Data_alias/basic/workflows/insert_rejectEmailCommunication.xml create mode 100644 entity/StandardWorkflow_entity/StandardWorkflow_entity.aod create mode 100644 entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js create mode 100644 entity/WorkflowDefinitionStore_entity/WorkflowDefinitionStore_entity.aod create mode 100644 entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js create mode 100644 entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/onActionProcess.js create mode 100644 entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/stateProcess.js create mode 100644 entity/WorkflowDefinitionStore_entity/entityfields/standardworkflows/children/excludeexisting_param/valueProcess.js create mode 100644 entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js create mode 100644 neonContext/StandardWorkflow/StandardWorkflow.aod create mode 100644 neonContext/WorkflowDefinitionStore/WorkflowDefinitionStore.aod create mode 100644 neonView/StandardWorkflowFilter_view/StandardWorkflowFilter_view.aod create mode 100644 neonView/WorkflowDefinitionStore_view/WorkflowDefinitionStore_view.aod diff --git a/.liquibase/Data_alias/basic/2021.1.0/changelog.xml b/.liquibase/Data_alias/basic/2021.1.0/changelog.xml new file mode 100644 index 0000000000..6a4ca39ed9 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.0/changelog.xml @@ -0,0 +1,6 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="create_standardWorkflow.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/2021.1.0/create_standardWorkflow.xml b/.liquibase/Data_alias/basic/2021.1.0/create_standardWorkflow.xml new file mode 100644 index 0000000000..52c2aaf4f0 --- /dev/null +++ b/.liquibase/Data_alias/basic/2021.1.0/create_standardWorkflow.xml @@ -0,0 +1,25 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.listl" id="f732bc4a-3fc1-46e5-b2c5-ff3b7041b13a"> + <createTable tableName="STANDARD_WORKFLOW"> + <column name="STANDARD_WORKFLOWID" type="CHAR(36)"> + <constraints nullable="false" primaryKey="true" primaryKeyName="PK_STANDARD_WORKFLOWID"/> + </column> + <column name="PROCESSKEY" type="NVARCHAR(255)"> + <constraints nullable="false"/> + </column> + <column name="NAME" type="NVARCHAR(255)"> + <constraints nullable="false"/> + </column> + <column name="DESCRIPTION" type="NVARCHAR(4000)"/> + <column name="PROCESSXML" type="BLOB"> + <constraints nullable="false"/> + </column> + <column name="DIAGRAM" type="BLOB"> + <constraints nullable="false"/> + </column> + </createTable> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.png b/.liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.png new file mode 100644 index 0000000000000000000000000000000000000000..1a57cd6ad72356a822ba9c1f4240ba38a474d12d GIT binary patch literal 4066 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 S^kahOxMyN{yXKaA%s&97n76P1 literal 0 HcmV?d00001 diff --git a/.liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.xml b/.liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.xml new file mode 100644 index 0000000000..047d8bf45f --- /dev/null +++ b/.liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.xml @@ -0,0 +1,40 @@ +<?xml version="1.0" encoding="UTF-8"?> +<definitions xmlns="http://www.omg.org/spec/BPMN/20100524/MODEL" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:flowable="http://flowable.org/bpmn" xmlns:bpmndi="http://www.omg.org/spec/BPMN/20100524/DI" xmlns:omgdc="http://www.omg.org/spec/DD/20100524/DC" xmlns:omgdi="http://www.omg.org/spec/DD/20100524/DI" typeLanguage="http://www.w3.org/2001/XMLSchema" expressionLanguage="http://www.w3.org/1999/XPath" targetNamespace="http://www.flowable.org/processdef"> + <process id="rejectEmailCommunication" name="Reject email communication" isExecutable="true"> + <startEvent id="startEvent1" flowable:formFieldValidation="true"></startEvent> + <serviceTask id="sid-267CEC4E-48FD-4844-B14C-F1B01D5BD16E" name="Set communication setting" flowable:class="de.adito.aditoweb.server.neon.workflow.WorkflowServiceTask"> + <extensionElements> + <flowable:field name="jditoProcess"> + <flowable:string><![CDATA[SetCommunicationSetting_workflowService]]></flowable:string> + </flowable:field> + <flowable:field name="taskVariables"> + <flowable:string><![CDATA[{"channelType":{"value":"COMMUNICATIONCHANNEL_COMMUNICATION"},"medium":{"value":"CAMPAIGNEMAIL"},"status":{"value":"COMMUNICATION_REJECTED"}}]]></flowable:string> + </flowable:field> + </extensionElements> + </serviceTask> + <sequenceFlow id="sid-649F5C57-5FAB-43A7-9019-944DC4D56FDD" sourceRef="startEvent1" targetRef="sid-267CEC4E-48FD-4844-B14C-F1B01D5BD16E"></sequenceFlow> + <endEvent id="sid-E6C948F0-8E59-400F-A308-22C66076A405"></endEvent> + <sequenceFlow id="sid-1F8F23D4-9CDB-49A6-A04B-980EC0A51233" sourceRef="sid-267CEC4E-48FD-4844-B14C-F1B01D5BD16E" targetRef="sid-E6C948F0-8E59-400F-A308-22C66076A405"></sequenceFlow> + </process> + <bpmndi:BPMNDiagram id="BPMNDiagram_rejectEmailCommunication"> + <bpmndi:BPMNPlane bpmnElement="rejectEmailCommunication" id="BPMNPlane_rejectEmailCommunication"> + <bpmndi:BPMNShape bpmnElement="startEvent1" id="BPMNShape_startEvent1"> + <omgdc:Bounds height="30.0" width="30.0" x="100.0" y="163.0"></omgdc:Bounds> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape bpmnElement="sid-267CEC4E-48FD-4844-B14C-F1B01D5BD16E" id="BPMNShape_sid-267CEC4E-48FD-4844-B14C-F1B01D5BD16E"> + <omgdc:Bounds height="80.0" width="100.0" x="175.0" y="138.0"></omgdc:Bounds> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape bpmnElement="sid-E6C948F0-8E59-400F-A308-22C66076A405" id="BPMNShape_sid-E6C948F0-8E59-400F-A308-22C66076A405"> + <omgdc:Bounds height="28.0" width="28.0" x="320.0" y="164.0"></omgdc:Bounds> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge bpmnElement="sid-1F8F23D4-9CDB-49A6-A04B-980EC0A51233" id="BPMNEdge_sid-1F8F23D4-9CDB-49A6-A04B-980EC0A51233"> + <omgdi:waypoint x="274.95000000000005" y="178.0"></omgdi:waypoint> + <omgdi:waypoint x="320.0" y="178.0"></omgdi:waypoint> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge bpmnElement="sid-649F5C57-5FAB-43A7-9019-944DC4D56FDD" id="BPMNEdge_sid-649F5C57-5FAB-43A7-9019-944DC4D56FDD"> + <omgdi:waypoint x="129.9499984899576" y="178.0"></omgdi:waypoint> + <omgdi:waypoint x="174.9999999999917" y="178.0"></omgdi:waypoint> + </bpmndi:BPMNEdge> + </bpmndi:BPMNPlane> + </bpmndi:BPMNDiagram> +</definitions> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/workflows/changelog.xml b/.liquibase/Data_alias/basic/workflows/changelog.xml new file mode 100644 index 0000000000..d8435c8e0a --- /dev/null +++ b/.liquibase/Data_alias/basic/workflows/changelog.xml @@ -0,0 +1,6 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <include relativeToChangelogFile="true" file="insert_rejectEmailCommunication.xml"/> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/basic/workflows/insert_rejectEmailCommunication.xml b/.liquibase/Data_alias/basic/workflows/insert_rejectEmailCommunication.xml new file mode 100644 index 0000000000..f36307a0da --- /dev/null +++ b/.liquibase/Data_alias/basic/workflows/insert_rejectEmailCommunication.xml @@ -0,0 +1,15 @@ +<?xml version="1.1" encoding="UTF-8" standalone="no"?> +<databaseChangeLog xmlns="http://www.liquibase.org/xml/ns/dbchangelog" + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://www.liquibase.org/xml/ns/dbchangelog http://www.liquibase.org/xml/ns/dbchangelog/dbchangelog-3.6.xsd"> + <changeSet author="s.listl" id="e9e5f42b-5df9-430b-aaad-52ded69db85d"> + <insert tableName="STANDARD_WORKFLOW"> + <column name="STANDARD_WORKFLOWID" value="59d620ab-6dfc-4da7-b0ad-226fa78949e4"/> + <column name="KEY" value="rejectEmailCommunication"/> + <column name="NAME" value="Reject email communication"/> + <column name="DESCRIPTION" value="Sets a communication setting to reject emails"/> + <column name="PROCESSXML" valueBlobFile="blob/rejectEmailCommunication.xml"/> + <column name="DIAGRAM" valueBlobFile="blob/rejectEmailCommunication.png"/> + </insert> + </changeSet> +</databaseChangeLog> \ No newline at end of file diff --git a/.liquibase/Data_alias/changelog.xml b/.liquibase/Data_alias/changelog.xml index 14683de8f2..c857106827 100644 --- a/.liquibase/Data_alias/changelog.xml +++ b/.liquibase/Data_alias/changelog.xml @@ -23,7 +23,9 @@ <include relativeToChangelogFile="true" file="basic/2021.0.1/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2021.0.2/changelog.xml"/> <include relativeToChangelogFile="true" file="basic/2021.0.3/changelog.xml"/> + <include relativeToChangelogFile="true" file="basic/2021.1.0/changelog.xml"/> + <include relativeToChangelogFile="true" file="basic/workflows/changelog.xml" context="workflow"/> <!--enable this only when you definetly want to overwrite the existing data with demo records:--> <!--<include relativeToChangelogFile="true" file="basic/_demoData/changelog.xml" context="example"/>--> </databaseChangeLog> \ No newline at end of file diff --git a/aliasDefinition/Data_alias/Data_alias.aod b/aliasDefinition/Data_alias/Data_alias.aod index c060b095c1..2bcf26f4db 100644 --- a/aliasDefinition/Data_alias/Data_alias.aod +++ b/aliasDefinition/Data_alias/Data_alias.aod @@ -20140,6 +20140,110 @@ </entityFieldDb> </entityFields> </entityDb> + <entityDb> + <name>STANDARD_WORKFLOW</name> + <dbName></dbName> + <idColumn>STANDARD_WORKFLOWID</idColumn> + <idGeneratorType v="0" /> + <idGeneratorInterval v="1" /> + <documentation></documentation> + <title></title> + <description></description> + <auditSyncConfig> + <name>auditSyncConfig</name> + <auditMode v="0" /> + <syncActive v="false" /> + <syncComplete v="true" /> + <syncDirection v="1" /> + <syncIds></syncIds> + </auditSyncConfig> + <entityFields> + <entityFieldDb> + <name>STANDARD_WORKFLOWID</name> + <dbName></dbName> + <primaryKey v="true" /> + <columnType v="1" /> + <size v="36" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="true" /> + <index v="true" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DESCRIPTION</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="4000" /> + <scale v="0" /> + <notNull v="false" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROCESSXML</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="65535" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>DIAGRAM</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="2004" /> + <size v="65535" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>PROCESSKEY</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + <entityFieldDb> + <name>NAME</name> + <dbName></dbName> + <primaryKey v="false" /> + <columnType v="12" /> + <size v="255" /> + <scale v="0" /> + <notNull v="true" /> + <isUnique v="false" /> + <index v="false" /> + <documentation></documentation> + <title></title> + <description></description> + </entityFieldDb> + </entityFields> + </entityDb> </entities> </entityGroup> </aliasDefDb> diff --git a/entity/StandardWorkflow_entity/StandardWorkflow_entity.aod b/entity/StandardWorkflow_entity/StandardWorkflow_entity.aod new file mode 100644 index 0000000000..be65ad093d --- /dev/null +++ b/entity/StandardWorkflow_entity/StandardWorkflow_entity.aod @@ -0,0 +1,90 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18"> + <name>StandardWorkflow_entity</name> + <title>Standard workflow</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <grantCreate v="false" /> + <grantUpdate v="false" /> + <grantDelete v="false" /> + <titlePlural>Standard workflows</titlePlural> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + <dependencies> + <entityDependency> + <name>38e423c3-f0b2-48d6-a035-5b19c79591ac</name> + <entityName>WorkflowDefinitionStore_entity</entityName> + <fieldName>StandardWorkflows</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + <entityProvider> + <name>#PROVIDER_AGGREGATES</name> + <useAggregates v="true" /> + </entityProvider> + <entityField> + <name>STANDARD_WORKFLOWID</name> + </entityField> + <entityField> + <name>DIAGRAM</name> + <contentType>IMAGE</contentType> + </entityField> + <entityField> + <name>PROCESSKEY</name> + <title>Key</title> + </entityField> + <entityField> + <name>DESCRIPTION</name> + <title>Description</title> + </entityField> + <entityField> + <name>NAME</name> + <title>Name</title> + </entityField> + <entityParameter> + <name>ExcludeExisting_param</name> + <expose v="true" /> + </entityParameter> + </entityFields> + <recordContainers> + <dbRecordContainer> + <name>db</name> + <isReadOnly v="true" /> + <conditionProcess>%aditoprj%/entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js</conditionProcess> + <alias>Data_alias</alias> + <recordFieldMappings> + <dbRecordFieldMapping> + <name>DESCRIPTION.value</name> + <recordfield>STANDARD_WORKFLOW.DESCRIPTION</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>DIAGRAM.value</name> + <recordfield>STANDARD_WORKFLOW.DIAGRAM</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>PROCESSKEY.value</name> + <recordfield>STANDARD_WORKFLOW.PROCESSKEY</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>NAME.value</name> + <recordfield>STANDARD_WORKFLOW.NAME</recordfield> + </dbRecordFieldMapping> + <dbRecordFieldMapping> + <name>STANDARD_WORKFLOWID.value</name> + <recordfield>STANDARD_WORKFLOW.STANDARD_WORKFLOWID</recordfield> + </dbRecordFieldMapping> + </recordFieldMappings> + <linkInformation> + <linkInformation> + <name>f0c5e67d-3851-488b-833c-7721678c599a</name> + <tableName>STANDARD_WORKFLOW</tableName> + <primaryKey>STANDARD_WORKFLOWID</primaryKey> + <isUIDTable v="true" /> + <readonly v="false" /> + </linkInformation> + </linkInformation> + </dbRecordContainer> + </recordContainers> +</entity> diff --git a/entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js b/entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000..9e683c7e4d --- /dev/null +++ b/entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js @@ -0,0 +1,17 @@ +import("system.result"); +import("Sql_lib"); +import("system.workflow"); +import("system.vars"); +import("Util_lib"); + +var isExcludeExisting = Utils.toBoolean(vars.get("$param.ExcludeExisting_param")); +if (isExcludeExisting) +{ + var existingWorkflows = JSON.parse(workflow.getProcessDefinitions(workflow.createConfigForLoadingProcessDefinitions())); + var existingKeys = existingWorkflows.map(function (workflowDefinition) + { + return workflowDefinition.key; + }); + var condition = newWhereIfSet("STANDARD_WORKFLOW.PROCESSKEY", existingKeys, SqlBuilder.NOT_IN()); + result.string(condition.toString()); +} \ No newline at end of file diff --git a/entity/WorkflowDefinitionStore_entity/WorkflowDefinitionStore_entity.aod b/entity/WorkflowDefinitionStore_entity/WorkflowDefinitionStore_entity.aod new file mode 100644 index 0000000000..21a60f403d --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/WorkflowDefinitionStore_entity.aod @@ -0,0 +1,59 @@ +<?xml version="1.0" encoding="UTF-8"?> +<entity xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.3.18" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.18"> + <name>WorkflowDefinitionStore_entity</name> + <title>Workflow definitions</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <recordContainer>dataless</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityProvider> + <name>#PROVIDER_AGGREGATES</name> + <useAggregates v="true" /> + </entityProvider> + <entityField> + <name>selectedWorkflows</name> + <consumer>StandardWorkflows</consumer> + </entityField> + <entityConsumer> + <name>StandardWorkflows</name> + <dependency> + <name>dependency</name> + <entityName>StandardWorkflow_entity</entityName> + <fieldName>#PROVIDER</fieldName> + </dependency> + <children> + <entityParameter> + <name>ExcludeExisting_param</name> + <valueProcess>%aditoprj%/entity/WorkflowDefinitionStore_entity/entityfields/standardworkflows/children/excludeexisting_param/valueProcess.js</valueProcess> + </entityParameter> + </children> + </entityConsumer> + <entityActionField> + <name>deploySelectedWorkflow</name> + <title>Add selected</title> + <onActionProcess>%aditoprj%/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/onActionProcess.js</onActionProcess> + <iconId>VAADIN:PLUS</iconId> + <stateProcess>%aditoprj%/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/stateProcess.js</stateProcess> + </entityActionField> + <entityActionField> + <name>deployAllWorkflows</name> + <title>Add all</title> + <onActionProcess>%aditoprj%/entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js</onActionProcess> + <iconId>VAADIN:PLUS_CIRCLE</iconId> + </entityActionField> + <entityField> + <name>excludeExisting</name> + <title>Exclude existing workflows</title> + <contentType>BOOLEAN</contentType> + <state>EDITABLE</state> + </entityField> + </entityFields> + <recordContainers> + <datalessRecordContainer> + <name>dataless</name> + <alias>Data_alias</alias> + </datalessRecordContainer> + </recordContainers> +</entity> diff --git a/entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js new file mode 100644 index 0000000000..880fea03eb --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js @@ -0,0 +1,27 @@ +import("Util_lib"); +import("system.neon"); +import("system.util"); +import("system.workflow"); +import("Sql_lib"); +import("system.vars"); + +var workflowSql = newSelect(["PROCESSKEY", "PROCESSXML"]).from("STANDARD_WORKFLOW"); + +var isExcludeExisting = Utils.toBoolean(vars.get("$field.excludeExisting")); +if (isExcludeExisting) +{ + var existingWorkflows = JSON.parse(workflow.getProcessDefinitions(workflow.createConfigForLoadingProcessDefinitions())); + var existingKeys = existingWorkflows.map(function (workflowDefinition) + { + return workflowDefinition.key; + }); + workflowSql.whereIfSet("STANDARD_WORKFLOW.PROCESSKEY", existingKeys, SqlBuilder.NOT_IN()); +} + +workflowSql.table().forEach(function ([key, processXml]) +{ + processXml = util.decodeBase64String(processXml); + workflow.deployProcess(key, processXml); +}); + +neon.refreshAll(); \ No newline at end of file diff --git a/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/onActionProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/onActionProcess.js new file mode 100644 index 0000000000..185311ec1d --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/onActionProcess.js @@ -0,0 +1,16 @@ +import("system.neon"); +import("system.util"); +import("system.workflow"); +import("Sql_lib"); +import("system.vars"); + +var workflowId = vars.get("$field.selectedWorkflows"); +var [key, processXml] = newSelect(["PROCESSKEY", "PROCESSXML"]) + .from("STANDARD_WORKFLOW") + .where("STANDARD_WORKFLOW.STANDARD_WORKFLOWID", workflowId) + .arrayRow(); + +processXml = util.decodeBase64String(processXml); +workflow.deployProcess(key, processXml); + +neon.refreshAll(); \ No newline at end of file diff --git a/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/stateProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/stateProcess.js new file mode 100644 index 0000000000..a0cbee140b --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/entityfields/deployselectedworkflow/stateProcess.js @@ -0,0 +1,10 @@ +import("system.result"); +import("system.vars"); +import("system.neon"); + +var state = neon.COMPONENTSTATE_DISABLED; +if (vars.get("$field.selectedWorkflows")) +{ + state = neon.COMPONENTSTATE_EDITABLE; +} +result.string(state); \ No newline at end of file diff --git a/entity/WorkflowDefinitionStore_entity/entityfields/standardworkflows/children/excludeexisting_param/valueProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/standardworkflows/children/excludeexisting_param/valueProcess.js new file mode 100644 index 0000000000..60469fabc5 --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/entityfields/standardworkflows/children/excludeexisting_param/valueProcess.js @@ -0,0 +1,4 @@ +import("system.vars"); +import("system.result"); + +result.string(vars.get("$field.excludeExisting")); \ No newline at end of file diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod index 97fcd7f503..d049a24df4 100644 --- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod +++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod @@ -232,6 +232,13 @@ <isObjectAction v="false" /> <iconId>NEON:PLUS</iconId> </entityActionField> + <entityActionField> + <name>openStore</name> + <title>Standard workflows</title> + <onActionProcess>%aditoprj%/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js</onActionProcess> + <isObjectAction v="false" /> + <iconId>VAADIN:PACKAGE</iconId> + </entityActionField> </children> </entityActionGroup> <entityActionField> diff --git a/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js b/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js new file mode 100644 index 0000000000..dec35f2444 --- /dev/null +++ b/entity/WorkflowDefinition_entity/entityfields/tableactions/children/openstore/onActionProcess.js @@ -0,0 +1,3 @@ +import("system.neon"); + +neon.openContext("WorkflowDefinitionStore", "WorkflowDefinitionStore_view", null, neon.OPERATINGSTATE_VIEW, {}); \ No newline at end of file diff --git a/neonContext/StandardWorkflow/StandardWorkflow.aod b/neonContext/StandardWorkflow/StandardWorkflow.aod new file mode 100644 index 0000000000..a59793aafb --- /dev/null +++ b/neonContext/StandardWorkflow/StandardWorkflow.aod @@ -0,0 +1,14 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>StandardWorkflow</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <filterView>StandardWorkflowFilter_view</filterView> + <lookupView>StandardWorkflowFilter_view</lookupView> + <entity>StandardWorkflow_entity</entity> + <references> + <neonViewReference> + <name>a30bfbf9-5e2a-4f9e-85b4-23763c228cb7</name> + <view>StandardWorkflowFilter_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/WorkflowDefinitionStore/WorkflowDefinitionStore.aod b/neonContext/WorkflowDefinitionStore/WorkflowDefinitionStore.aod new file mode 100644 index 0000000000..83c77e7814 --- /dev/null +++ b/neonContext/WorkflowDefinitionStore/WorkflowDefinitionStore.aod @@ -0,0 +1,12 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonContext xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.1"> + <name>WorkflowDefinitionStore</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>WorkflowDefinitionStore_entity</entity> + <references> + <neonViewReference> + <name>3a038eee-9187-4d47-bd63-f6396c915627</name> + <view>WorkflowDefinitionStore_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonView/StandardWorkflowFilter_view/StandardWorkflowFilter_view.aod b/neonView/StandardWorkflowFilter_view/StandardWorkflowFilter_view.aod new file mode 100644 index 0000000000..7104b53b64 --- /dev/null +++ b/neonView/StandardWorkflowFilter_view/StandardWorkflowFilter_view.aod @@ -0,0 +1,21 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>StandardWorkflowFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tilesViewTemplate> + <name>Tiles</name> + <iconField>DIAGRAM</iconField> + <titleField>NAME</titleField> + <subtitleField>PROCESSKEY</subtitleField> + <descriptionField>DESCRIPTION</descriptionField> + <isDeletable v="false" /> + <isEditable v="false" /> + </tilesViewTemplate> + </children> +</neonView> diff --git a/neonView/WorkflowDefinitionStore_view/WorkflowDefinitionStore_view.aod b/neonView/WorkflowDefinitionStore_view/WorkflowDefinitionStore_view.aod new file mode 100644 index 0000000000..1b580e9074 --- /dev/null +++ b/neonView/WorkflowDefinitionStore_view/WorkflowDefinitionStore_view.aod @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<neonView xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.1.8" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.8"> + <name>WorkflowDefinitionStore_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <size>SMALL</size> + <isOverlay v="true" /> + <layout> + <headerFooterLayout> + <name>layout</name> + <header>Options</header> + <footer>Actions</footer> + </headerFooterLayout> + </layout> + <children> + <lookupViewTemplate> + <name>WorkflowLookup</name> + <consumerField>selectedWorkflows</consumerField> + <consumerPresentationMode>EMBEDDED</consumerPresentationMode> + </lookupViewTemplate> + <actionsViewTemplate> + <name>Actions</name> + <actions> + <element>deploySelectedWorkflow</element> + <element>deployAllWorkflows</element> + </actions> + </actionsViewTemplate> + <genericViewTemplate> + <name>Options</name> + <editMode v="true" /> + <fields> + <entityFieldLink> + <name>6f24b365-e339-4c32-9cf6-1cb7cbef1571</name> + <entityField>excludeExisting</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> -- GitLab