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 0000000000000000000000000000000000000000..6a4ca39ed954e7a07c72dfc557dcb99766cf1185 --- /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 0000000000000000000000000000000000000000..52c2aaf4f075bbe74b075f45789949a4cf0ea1b2 --- /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 Binary files /dev/null and b/.liquibase/Data_alias/basic/workflows/blob/rejectEmailCommunication.png differ 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 0000000000000000000000000000000000000000..047d8bf45f2e5b7dc736e6d6c43e2eb913d6b092 --- /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/blob/unsubscribeInterest.png b/.liquibase/Data_alias/basic/workflows/blob/unsubscribeInterest.png new file mode 100644 index 0000000000000000000000000000000000000000..98a5d517c16d44b15fd89c9ab29cc85954e47264 Binary files /dev/null and b/.liquibase/Data_alias/basic/workflows/blob/unsubscribeInterest.png differ diff --git a/.liquibase/Data_alias/basic/workflows/blob/unsubscribeInterest.xml b/.liquibase/Data_alias/basic/workflows/blob/unsubscribeInterest.xml new file mode 100644 index 0000000000000000000000000000000000000000..8dc3661838293bf6a3dcbd7c56762896bc6da182 --- /dev/null +++ b/.liquibase/Data_alias/basic/workflows/blob/unsubscribeInterest.xml @@ -0,0 +1,37 @@ +<?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="unsubscribeInterest" name="Unsubscribe Interest" isExecutable="true"> + <startEvent id="startEvent1" flowable:formFieldValidation="true"></startEvent> + <serviceTask id="sid-82168C15-ACC8-4369-A92F-A4F8A82EDDD7" name="Change interest link" flowable:class="de.adito.aditoweb.server.neon.workflow.WorkflowServiceTask"> + <extensionElements> + <flowable:field name="jditoProcess"> + <flowable:string><![CDATA[SetInterestLink_workflowService]]></flowable:string> + </flowable:field> + </extensionElements> + </serviceTask> + <sequenceFlow id="sid-7C8AD2EA-BD4C-4251-B369-DC80DA765953" sourceRef="startEvent1" targetRef="sid-82168C15-ACC8-4369-A92F-A4F8A82EDDD7"></sequenceFlow> + <endEvent id="sid-7C072C86-5A44-4054-833B-F7B39838C118"></endEvent> + <sequenceFlow id="sid-692F5534-B5CD-45AA-84DE-4BD5B0AC18BD" sourceRef="sid-82168C15-ACC8-4369-A92F-A4F8A82EDDD7" targetRef="sid-7C072C86-5A44-4054-833B-F7B39838C118"></sequenceFlow> + </process> + <bpmndi:BPMNDiagram id="BPMNDiagram_unsubscribeInterest"> + <bpmndi:BPMNPlane bpmnElement="unsubscribeInterest" id="BPMNPlane_unsubscribeInterest"> + <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-82168C15-ACC8-4369-A92F-A4F8A82EDDD7" id="BPMNShape_sid-82168C15-ACC8-4369-A92F-A4F8A82EDDD7"> + <omgdc:Bounds height="80.0" width="100.0" x="175.0" y="138.0"></omgdc:Bounds> + </bpmndi:BPMNShape> + <bpmndi:BPMNShape bpmnElement="sid-7C072C86-5A44-4054-833B-F7B39838C118" id="BPMNShape_sid-7C072C86-5A44-4054-833B-F7B39838C118"> + <omgdc:Bounds height="28.0" width="28.0" x="332.5" y="164.0"></omgdc:Bounds> + </bpmndi:BPMNShape> + <bpmndi:BPMNEdge bpmnElement="sid-7C8AD2EA-BD4C-4251-B369-DC80DA765953" id="BPMNEdge_sid-7C8AD2EA-BD4C-4251-B369-DC80DA765953"> + <omgdi:waypoint x="129.9499984899576" y="178.0"></omgdi:waypoint> + <omgdi:waypoint x="174.9999999999917" y="178.0"></omgdi:waypoint> + </bpmndi:BPMNEdge> + <bpmndi:BPMNEdge bpmnElement="sid-692F5534-B5CD-45AA-84DE-4BD5B0AC18BD" id="BPMNEdge_sid-692F5534-B5CD-45AA-84DE-4BD5B0AC18BD"> + <omgdi:waypoint x="274.94999999998043" y="178.0"></omgdi:waypoint> + <omgdi:waypoint x="332.5" 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 0000000000000000000000000000000000000000..e1aef03f97be040168ce8e1bc271239e4843b494 --- /dev/null +++ b/.liquibase/Data_alias/basic/workflows/changelog.xml @@ -0,0 +1,7 @@ +<?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"/> + <include relativeToChangelogFile="true" file="insert_unsubscribeInterest.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 0000000000000000000000000000000000000000..792553fc3d08ec14befc3f38dae31671fd0825d2 --- /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="PROCESSKEY" 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/basic/workflows/insert_unsubscribeInterest.xml b/.liquibase/Data_alias/basic/workflows/insert_unsubscribeInterest.xml new file mode 100644 index 0000000000000000000000000000000000000000..4d90b4695239d75cb26cdc9792aae20dd43a13ee --- /dev/null +++ b/.liquibase/Data_alias/basic/workflows/insert_unsubscribeInterest.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="608978ed-2471-4c46-85cf-eeab044025b1"> + <insert tableName="STANDARD_WORKFLOW"> + <column name="STANDARD_WORKFLOWID" value="b14f9d59-b896-433c-a515-c6f209924efd"/> + <column name="PROCESSKEY" value="unsubscribeInterest"/> + <column name="NAME" value="Unsubscribe Interest"/> + <column name="DESCRIPTION" value="Sets an interest link with the status 'unsubscribed'"/> + <column name="PROCESSXML" valueBlobFile="blob/unsubscribeInterest.xml"/> + <column name="DIAGRAM" valueBlobFile="blob/unsubscribeInterest.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 14683de8f2de11bbaf154a98026277bc9c4427fa..c857106827be227c327378abc66645907d7c6338 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 c060b095c1afc4d05ebefab0d008313fb1d88de7..2bcf26f4db296abc3830361ce47750e3dc7584eb 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 0000000000000000000000000000000000000000..d83e0534b8952944bbe86b276c8af247a963d8e6 --- /dev/null +++ b/entity/StandardWorkflow_entity/StandardWorkflow_entity.aod @@ -0,0 +1,83 @@ +<?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.21" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.21"> + <name>StandardWorkflow_entity</name> + <title>Standard workflow</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/StandardWorkflow_entity/documentation.adoc</documentation> + <grantCreate v="false" /> + <grantUpdate v="false" /> + <grantDelete v="false" /> + <titlePlural>Standard workflows</titlePlural> + <recordContainer>db</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </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/documentation.adoc b/entity/StandardWorkflow_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..82672b0e0b08393b5453fb619d5a242e27a2a1aa --- /dev/null +++ b/entity/StandardWorkflow_entity/documentation.adoc @@ -0,0 +1,3 @@ += StandardWorkflow_entity + +Standard workflows are stored in the table STANDARD_WORKFLOW. The table is filled exclusively by liquibase scripts, this entity is read-only. diff --git a/entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js b/entity/StandardWorkflow_entity/recordcontainers/db/conditionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..9e683c7e4dcd25c8dce2af1f6c84cbdfd2b43cac --- /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 0000000000000000000000000000000000000000..c5b314b15944ca13faa9f35b0ff3495c3c7438ca --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/WorkflowDefinitionStore_entity.aod @@ -0,0 +1,67 @@ +<?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.21" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.21"> + <name>WorkflowDefinitionStore_entity</name> + <title>Workflow definitions</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <documentation>%aditoprj%/entity/WorkflowDefinitionStore_entity/documentation.adoc</documentation> + <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 workflow</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> + <entityActionField> + <name>downloadSelectedWorkflow</name> + <title>Download selected workflow</title> + <onActionProcess>%aditoprj%/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/onActionProcess.js</onActionProcess> + <iconId>VAADIN:DOWNLOAD</iconId> + <stateProcess>%aditoprj%/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/stateProcess.js</stateProcess> + </entityActionField> + </entityFields> + <recordContainers> + <datalessRecordContainer> + <name>dataless</name> + <alias>Data_alias</alias> + </datalessRecordContainer> + </recordContainers> +</entity> diff --git a/entity/WorkflowDefinitionStore_entity/documentation.adoc b/entity/WorkflowDefinitionStore_entity/documentation.adoc new file mode 100644 index 0000000000000000000000000000000000000000..608df1a5bed24a00633b573fdb23c5fcc9edc960 --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/documentation.adoc @@ -0,0 +1,9 @@ += WorkflowDefinitionStore_entity + +The purpose of this entity is to display all the standard workflow definitions that can be imported into the system. It provides an overlay +where the workflows can be selected and deployed with the actions of this entity. + +Standard workflows are handled this way because the workflow engine is running inside its own service with an own database. That's why these workflows +cannot be inserted directly with liquibase. Instead, the standard workflows are stored in a database table on the ADITO side, and can be transferred +to the workflow service using this entity. An additional advantage of this solution is better flexibility, as it makes using the standard workflows +optional, the admin can choose in the client what workflow definitions to deploy. \ No newline at end of file diff --git a/entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/deployallworkflows/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..880fea03eb11fc77dc47c8abac8c80b4cd409a0a --- /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 0000000000000000000000000000000000000000..185311ec1d7c36acba219f2882935845e3339a77 --- /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 0000000000000000000000000000000000000000..a0cbee140b30c3f499f7b5d86f1dbcbfcc4172e4 --- /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/downloadselectedworkflow/onActionProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/onActionProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..94d54bfc7c37cf8dba90c930ab85a7585aae19df --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/onActionProcess.js @@ -0,0 +1,13 @@ +import("system.neon"); +import("system.util"); +import("system.workflow"); +import("Sql_lib"); +import("system.vars"); + +var workflowId = vars.get("$field.selectedWorkflows"); +var [name, processXml] = newSelect(["NAME", "PROCESSXML"]) + .from("STANDARD_WORKFLOW") + .where("STANDARD_WORKFLOW.STANDARD_WORKFLOWID", workflowId) + .arrayRow(); + +neon.download(processXml, name + ".xml"); \ No newline at end of file diff --git a/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/stateProcess.js b/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/stateProcess.js new file mode 100644 index 0000000000000000000000000000000000000000..a0cbee140b30c3f499f7b5d86f1dbcbfcc4172e4 --- /dev/null +++ b/entity/WorkflowDefinitionStore_entity/entityfields/downloadselectedworkflow/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 0000000000000000000000000000000000000000..60469fabc553bfe606d029a532264f4aec07c9a8 --- /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 08115b312500a58c33195f133111759cdac42ab6..eae978b187ac5bf1a41def9a0639c7cc7da41577 100644 --- a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod +++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod @@ -212,6 +212,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 0000000000000000000000000000000000000000..dec35f2444423141abf1d9fcef1829bc1d4489ae --- /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/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod index b94ce935a384816581e7aa2ff6347e019fd97d2b..83e6860df33fc3c37eacb6fc9b857c909b5ae4fe 100644 --- a/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod +++ b/language/_____LANGUAGE_EXTRA/_____LANGUAGE_EXTRA.aod @@ -8632,6 +8632,63 @@ <entry> <key>Global Cases </key> </entry> + <entry> + <key>Attributes of attribute group \"%0\" have to be used at least %1.</key> + </entry> + <entry> + <key>Attributes of attribute group \"%0\" can't be used more than %1.</key> + </entry> + <entry> + <key>Add selected workflow</key> + </entry> + <entry> + <key>Profiling</key> + </entry> + <entry> + <key>Add all</key> + </entry> + <entry> + <key>Standard workflow</key> + </entry> + <entry> + <key>Standard workflows</key> + </entry> + <entry> + <key>Global</key> + </entry> + <entry> + <key>Bounce (Soft)</key> + </entry> + <entry> + <key>Test1</key> + </entry> + <entry> + <key>Bounce (Hard)</key> + </entry> + <entry> + <key>Smart TV</key> + </entry> + <entry> + <key>Desktop</key> + </entry> + <entry> + <key>Download selected workflow</key> + </entry> + <entry> + <key>Send workflow signal</key> + </entry> + <entry> + <key>Tablet</key> + </entry> + <entry> + <key>Blacklist</key> + </entry> + <entry> + <key>SubTest1</key> + </entry> + <entry> + <key>Exclude existing workflows</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> <sqlModels> diff --git a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod index 3226194b7c748c60ff7b268cef748a56d8abdf4e..b53cdc8b99d0ff66bfe27910dce5fe4346dea4ad 100644 --- a/language/_____LANGUAGE_de/_____LANGUAGE_de.aod +++ b/language/_____LANGUAGE_de/_____LANGUAGE_de.aod @@ -11347,6 +11347,63 @@ Bitte Datumseingabe prüfen</value> <entry> <key>Global Cases </key> </entry> + <entry> + <key>Add selected workflow</key> + <value>Ausgewählten Workflow hinzufügen</value> + </entry> + <entry> + <key>Profiling</key> + </entry> + <entry> + <key>Add all</key> + <value>Alle hinzufügen</value> + </entry> + <entry> + <key>Standard workflow</key> + <value>Standard Workflow</value> + </entry> + <entry> + <key>Standard workflows</key> + <value>Standard Workflows</value> + </entry> + <entry> + <key>Global</key> + </entry> + <entry> + <key>Bounce (Soft)</key> + </entry> + <entry> + <key>Test1</key> + </entry> + <entry> + <key>Bounce (Hard)</key> + </entry> + <entry> + <key>Smart TV</key> + </entry> + <entry> + <key>Desktop</key> + </entry> + <entry> + <key>Download selected workflow</key> + <value>Ausgewählten Workflow herunterladen</value> + </entry> + <entry> + <key>Send workflow signal</key> + </entry> + <entry> + <key>Tablet</key> + </entry> + <entry> + <key>Blacklist</key> + </entry> + <entry> + <key>SubTest1</key> + </entry> + <entry> + <key>Exclude existing workflows</key> + <value>Nur nicht vorhandene Workflows</value> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod index 1464a7d2e294dcbe1771ba44c0e878a2cc23415f..3cb99dc83ef73a8a6e7cf68a36f90142779ed29c 100644 --- a/language/_____LANGUAGE_en/_____LANGUAGE_en.aod +++ b/language/_____LANGUAGE_en/_____LANGUAGE_en.aod @@ -8717,6 +8717,63 @@ <entry> <key>Global Cases </key> </entry> + <entry> + <key>Attributes of attribute group \"%0\" have to be used at least %1.</key> + </entry> + <entry> + <key>Attributes of attribute group \"%0\" can't be used more than %1.</key> + </entry> + <entry> + <key>Add selected workflow</key> + </entry> + <entry> + <key>Profiling</key> + </entry> + <entry> + <key>Add all</key> + </entry> + <entry> + <key>Standard workflow</key> + </entry> + <entry> + <key>Standard workflows</key> + </entry> + <entry> + <key>Global</key> + </entry> + <entry> + <key>Bounce (Soft)</key> + </entry> + <entry> + <key>Test1</key> + </entry> + <entry> + <key>Bounce (Hard)</key> + </entry> + <entry> + <key>Smart TV</key> + </entry> + <entry> + <key>Desktop</key> + </entry> + <entry> + <key>Download selected workflow</key> + </entry> + <entry> + <key>Send workflow signal</key> + </entry> + <entry> + <key>Tablet</key> + </entry> + <entry> + <key>Blacklist</key> + </entry> + <entry> + <key>SubTest1</key> + </entry> + <entry> + <key>Exclude existing workflows</key> + </entry> </keyValueMap> <font name="Dialog" style="0" size="11" /> </language> diff --git a/neonContext/StandardWorkflow/StandardWorkflow.aod b/neonContext/StandardWorkflow/StandardWorkflow.aod new file mode 100644 index 0000000000000000000000000000000000000000..a59793aafb3cd0b2bb6245527ea24996281e76c3 --- /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 0000000000000000000000000000000000000000..83c77e78145347fcbd904dd64745ab7591b406d8 --- /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 0000000000000000000000000000000000000000..7104b53b647f57c84e47a10b4877a9a9b3675b6a --- /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 0000000000000000000000000000000000000000..6e10496aa1c6398931a86e0e06489a88f6776e8a --- /dev/null +++ b/neonView/WorkflowDefinitionStore_view/WorkflowDefinitionStore_view.aod @@ -0,0 +1,39 @@ +<?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>downloadSelectedWorkflow</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> diff --git a/process/SetInterestLink_workflowService/process.js b/process/SetInterestLink_workflowService/process.js index 5a6447a1a3ecfafc87bf0ab271a52683c138bf81..b66a48e570ae73bc4fc57e2bd4a01744826ad76f 100644 --- a/process/SetInterestLink_workflowService/process.js +++ b/process/SetInterestLink_workflowService/process.js @@ -6,6 +6,14 @@ import("Sql_lib"); var variables = JSON.parse(vars.get("$local.value")); var contactId = variables.contactId || variables.targetId; var interestId = variables.interestId; +if (!interestId && variables.mailLogId) +{ + interestId = newSelect("MAIL_RUN.INTERESTID") + .from("MAIL_LOG") + .join("MAIL_RUN", "MAIL_LOG.MAIL_RUN_ID = MAIL_RUN.MAIL_RUNID") + .where("MAIL_LOG.MAIL_LOGID", variables.mailLogId) + .cell(); +} var status = variables.status || $KeywordRegistry.interestLinkStatus$notSubscribed(); var interestLinkId = new SqlBuilder()