From 1f192ec4f671b165e041e8e220c0e11236229056 Mon Sep 17 00:00:00 2001 From: "S.Listl" <S.Listl@SLISTL.aditosoftware.local> Date: Tue, 24 Sep 2019 08:28:31 +0200 Subject: [PATCH] Entities created --- .../_____SYSTEM_APPLICATION_NEON.aod | 5 ++ .../WorkflowDefinition_entity.aod | 84 +++++++++++++++++++ .../recordcontainers/jdito/contentProcess.js | 21 +++++ .../recordcontainers/jdito/onInsert.js | 9 ++ .../WorkflowInstance_entity.aod | 37 ++++++++ .../WorkflowTask_entity.aod | 30 +++++++ .../WorkflowDefinition/WorkflowDefinition.aod | 29 +++++++ .../WorkflowInstance/WorkflowInstance.aod | 6 ++ neonContext/WorkflowTask/WorkflowTask.aod | 12 +++ .../WorkflowDefinitionEdit_view.aod | 23 +++++ .../WorkflowDefinitionFilter_view.aod | 34 ++++++++ .../WorkflowDefinitionMain_view.aod | 18 ++++ .../WorkflowDefinitionPreview_view.aod | 17 ++++ .../WorkflowTaskForm_view.aod | 18 ++++ process/Workflow_lib/Workflow_lib.aod | 9 ++ process/Workflow_lib/process.js | 30 +++++++ 16 files changed, 382 insertions(+) create mode 100644 entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod create mode 100644 entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js create mode 100644 entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js create mode 100644 entity/WorkflowInstance_entity/WorkflowInstance_entity.aod create mode 100644 entity/WorkflowTask_entity/WorkflowTask_entity.aod create mode 100644 neonContext/WorkflowDefinition/WorkflowDefinition.aod create mode 100644 neonContext/WorkflowInstance/WorkflowInstance.aod create mode 100644 neonContext/WorkflowTask/WorkflowTask.aod create mode 100644 neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod create mode 100644 neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod create mode 100644 neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod create mode 100644 neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod create mode 100644 neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod create mode 100644 process/Workflow_lib/Workflow_lib.aod create mode 100644 process/Workflow_lib/process.js diff --git a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod index 410fe391ef7..bbf569e2e67 100644 --- a/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod +++ b/application/_____SYSTEM_APPLICATION_NEON/_____SYSTEM_APPLICATION_NEON.aod @@ -231,6 +231,11 @@ <name>Salutation</name> <kind v="10077" /> </entityNode> + <entityNode> + <name>WorkflowDefinition</name> + <kind v="10077" /> + <title></title> + </entityNode> <entityNode> <name>DuplicateScan</name> <kind v="10077" /> diff --git a/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod new file mode 100644 index 00000000000..0c35d7ee8ef --- /dev/null +++ b/entity/WorkflowDefinition_entity/WorkflowDefinition_entity.aod @@ -0,0 +1,84 @@ +<?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.11" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.11"> + <name>WorkflowDefinition_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>Workflow definition</title> + <iconId>VAADIN:DROP</iconId> + <titlePlural>Workflow definitions</titlePlural> + <recordContainer>jdito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>UID</name> + </entityField> + <entityActionGroup> + <name>tableActions</name> + <children> + <entityActionField> + <name>importWorkflow</name> + </entityActionField> + </children> + </entityActionGroup> + <entityField> + <name>CATEGORY</name> + <title>Category</title> + </entityField> + <entityField> + <name>ISACTIVE</name> + <title>Active</title> + <contentType>BOOLEAN</contentType> + </entityField> + <entityField> + <name>FILEUPLOAD</name> + <contentType>FILE</contentType> + </entityField> + <entityConsumer> + <name>Instances</name> + <dependency> + <name>dependency</name> + <entityName>WorkflowInstance_entity</entityName> + <fieldName>InstancesOfWorkflow</fieldName> + </dependency> + </entityConsumer> + <entityField> + <name>KEY</name> + </entityField> + <entityField> + <name>VERSION</name> + <title>Version</title> + </entityField> + <entityField> + <name>NAME</name> + <title>Name</title> + </entityField> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jdito</name> + <contentProcess>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js</contentProcess> + <onInsert>%aditoprj%/entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js</onInsert> + <recordFieldMappings> + <jDitoRecordFieldMapping> + <name>UID.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>NAME.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>CATEGORY.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>KEY.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>VERSION.value</name> + </jDitoRecordFieldMapping> + <jDitoRecordFieldMapping> + <name>ISACTIVE.value</name> + </jDitoRecordFieldMapping> + </recordFieldMappings> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js new file mode 100644 index 00000000000..f858d71640f --- /dev/null +++ b/entity/WorkflowDefinition_entity/recordcontainers/jdito/contentProcess.js @@ -0,0 +1,21 @@ +import("system.result"); +import("Workflow_lib"); +import("system.workflow"); + + +var workflowDefObj = WorkflowDefinitionUtils.getDeployedDefinitions(); +var workflowDefs = []; +for (let i = 0, l = workflowDefObj.length; i < l; i++) +{ + let currentDef = workflowDefObj[i]; + workflowDefs.push([ + currentDef.id, + currentDef.name, + currentDef.category, + currentDef.key, + currentDef.version, + currentDef.active + ]); +} + +result.object(workflowDefs); \ No newline at end of file diff --git a/entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js b/entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js new file mode 100644 index 00000000000..5e7001c9f12 --- /dev/null +++ b/entity/WorkflowDefinition_entity/recordcontainers/jdito/onInsert.js @@ -0,0 +1,9 @@ +import("system.vars"); +import("system.util"); +import("Document_lib"); +import("system.workflow"); + +var upload = new FileUpload(vars.get("$field.FILEUPLOAD")); + +var xml = util.decodeBase64String(upload.bindata); +workflow.deployProcess("yeet", xml); \ No newline at end of file diff --git a/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod new file mode 100644 index 00000000000..71db007610e --- /dev/null +++ b/entity/WorkflowInstance_entity/WorkflowInstance_entity.aod @@ -0,0 +1,37 @@ +<?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.11" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.11"> + <name>WorkflowInstance_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <title>Workflow instance</title> + <titlePlural>Workflow instances</titlePlural> + <recordContainer>jdito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>UID</name> + </entityField> + <entityProvider> + <name>InstancesOfWorkflow</name> + <dependencies> + <entityDependency> + <name>96f047cf-7f3b-417e-ac08-9dc231c5d0ac</name> + <entityName>WorkflowDefinition_entity</entityName> + <fieldName>Instances</fieldName> + <isConsumer v="false" /> + </entityDependency> + </dependencies> + </entityProvider> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jdito</name> + <recordFieldMappings> + <jDitoRecordFieldMapping> + <name>UID.value</name> + </jDitoRecordFieldMapping> + </recordFieldMappings> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/entity/WorkflowTask_entity/WorkflowTask_entity.aod b/entity/WorkflowTask_entity/WorkflowTask_entity.aod new file mode 100644 index 00000000000..1ac9b2b119e --- /dev/null +++ b/entity/WorkflowTask_entity/WorkflowTask_entity.aod @@ -0,0 +1,30 @@ +<?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.11" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/entity/1.3.11"> + <name>WorkflowTask_entity</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <recordContainer>jdito</recordContainer> + <entityFields> + <entityProvider> + <name>#PROVIDER</name> + </entityProvider> + <entityField> + <name>UID</name> + </entityField> + <entityField> + <name>FORMDEFINITION</name> + </entityField> + <entityField> + <name>FORMRESULT</name> + </entityField> + </entityFields> + <recordContainers> + <jDitoRecordContainer> + <name>jdito</name> + <recordFieldMappings> + <jDitoRecordFieldMapping> + <name>UID.value</name> + </jDitoRecordFieldMapping> + </recordFieldMappings> + </jDitoRecordContainer> + </recordContainers> +</entity> diff --git a/neonContext/WorkflowDefinition/WorkflowDefinition.aod b/neonContext/WorkflowDefinition/WorkflowDefinition.aod new file mode 100644 index 00000000000..1d0fcb58176 --- /dev/null +++ b/neonContext/WorkflowDefinition/WorkflowDefinition.aod @@ -0,0 +1,29 @@ +<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>WorkflowDefinition</name> + <title>Workflow definition</title> + <majorModelMode>DISTRIBUTED</majorModelMode> + <mainview>WorkflowDefinitionMain_view</mainview> + <filterview>WorkflowDefinitionFilter_view</filterview> + <editview>WorkflowDefinitionEdit_view</editview> + <preview>WorkflowDefinitionPreview_view</preview> + <entity>WorkflowDefinition_entity</entity> + <references> + <neonViewReference> + <name>ba66c90f-51db-41f9-84de-313553f39bc0</name> + <view>WorkflowDefinitionFilter_view</view> + </neonViewReference> + <neonViewReference> + <name>29756ea3-78f4-41ac-bc16-58ae8dcedcac</name> + <view>WorkflowDefinitionEdit_view</view> + </neonViewReference> + <neonViewReference> + <name>190b78e3-c28a-4e24-a54d-0aa1680cd459</name> + <view>WorkflowDefinitionMain_view</view> + </neonViewReference> + <neonViewReference> + <name>c3f4a104-c72f-40c2-a7a3-e2dcb3df35d1</name> + <view>WorkflowDefinitionPreview_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonContext/WorkflowInstance/WorkflowInstance.aod b/neonContext/WorkflowInstance/WorkflowInstance.aod new file mode 100644 index 00000000000..8a865caa694 --- /dev/null +++ b/neonContext/WorkflowInstance/WorkflowInstance.aod @@ -0,0 +1,6 @@ +<?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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>WorkflowInstance</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>WorkflowInstance_entity</entity> +</neonContext> diff --git a/neonContext/WorkflowTask/WorkflowTask.aod b/neonContext/WorkflowTask/WorkflowTask.aod new file mode 100644 index 00000000000..7209d8da198 --- /dev/null +++ b/neonContext/WorkflowTask/WorkflowTask.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.0" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonContext/1.1.0"> + <name>WorkflowTask</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <entity>WorkflowTask_entity</entity> + <references> + <neonViewReference> + <name>4028fff5-9607-4c47-b59c-3f16d4fd5512</name> + <view>WorkflowTaskForm_view</view> + </neonViewReference> + </references> +</neonContext> diff --git a/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod b/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod new file mode 100644 index 00000000000..e1ad6ff7bd2 --- /dev/null +++ b/neonView/WorkflowDefinitionEdit_view/WorkflowDefinitionEdit_view.aod @@ -0,0 +1,23 @@ +<?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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowDefinitionEdit_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <genericViewTemplate> + <name>Generic</name> + <editMode v="true" /> + <entityField>#ENTITY</entityField> + <fields> + <entityFieldLink> + <name>bfec3b64-2cc5-4e51-b321-6d898ddaca9e</name> + <entityField>FILEUPLOAD</entityField> + </entityFieldLink> + </fields> + </genericViewTemplate> + </children> +</neonView> diff --git a/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod new file mode 100644 index 00000000000..745c817d7ff --- /dev/null +++ b/neonView/WorkflowDefinitionFilter_view/WorkflowDefinitionFilter_view.aod @@ -0,0 +1,34 @@ +<?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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowDefinitionFilter_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <tableViewTemplate> + <name>Table</name> + <entityField>#ENTITY</entityField> + <columns> + <neonTableColumn> + <name>6a40b78d-422e-4b3f-9d94-c330cf51996d</name> + <entityField>NAME</entityField> + </neonTableColumn> + <neonTableColumn> + <name>5d90aabb-74a9-40f2-bb57-6bf9e5302ed3</name> + <entityField>CATEGORY</entityField> + </neonTableColumn> + <neonTableColumn> + <name>faf08eb7-7076-4872-975d-c38a399a1b98</name> + <entityField>VERSION</entityField> + </neonTableColumn> + <neonTableColumn> + <name>1e1ed75f-a1de-4abb-b81e-6033de520f32</name> + <entityField>ISACTIVE</entityField> + </neonTableColumn> + </columns> + </tableViewTemplate> + </children> +</neonView> diff --git a/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod b/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod new file mode 100644 index 00000000000..083dda24d5c --- /dev/null +++ b/neonView/WorkflowDefinitionMain_view/WorkflowDefinitionMain_view.aod @@ -0,0 +1,18 @@ +<?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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowDefinitionMain_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <masterSlaveLayout> + <name>layout</name> + <master>38e72066-9638-49fc-9757-e7cb0feca3df</master> + </masterSlaveLayout> + </layout> + <children> + <neonViewReference> + <name>38e72066-9638-49fc-9757-e7cb0feca3df</name> + <entityField>#ENTITY</entityField> + <view>WorkflowDefinitionPreview_view</view> + </neonViewReference> + </children> +</neonView> diff --git a/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod b/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod new file mode 100644 index 00000000000..0e301c9834b --- /dev/null +++ b/neonView/WorkflowDefinitionPreview_view/WorkflowDefinitionPreview_view.aod @@ -0,0 +1,17 @@ +<?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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowDefinitionPreview_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <headerFooterLayout> + <name>layout</name> + </headerFooterLayout> + </layout> + <children> + <cardViewTemplate> + <name>Card</name> + <titleField>NAME</titleField> + <entityField>#ENTITY</entityField> + </cardViewTemplate> + </children> +</neonView> diff --git a/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod b/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod new file mode 100644 index 00000000000..b64eee0f318 --- /dev/null +++ b/neonView/WorkflowTaskForm_view/WorkflowTaskForm_view.aod @@ -0,0 +1,18 @@ +<?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.2" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/neonView/1.1.2"> + <name>WorkflowTaskForm_view</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <layout> + <boxLayout> + <name>layout</name> + </boxLayout> + </layout> + <children> + <dynamicFormViewTemplate> + <name>DynamicForm</name> + <formDefinition>FORMDEFINITION</formDefinition> + <formResult>FORMRESULT</formResult> + <entityField>#ENTITY</entityField> + </dynamicFormViewTemplate> + </children> +</neonView> diff --git a/process/Workflow_lib/Workflow_lib.aod b/process/Workflow_lib/Workflow_lib.aod new file mode 100644 index 00000000000..a6dfdceabc2 --- /dev/null +++ b/process/Workflow_lib/Workflow_lib.aod @@ -0,0 +1,9 @@ +<?xml version="1.0" encoding="UTF-8"?> +<process xmlns="http://www.adito.de/2018/ao/Model" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" VERSION="1.2.1" xsi:schemaLocation="http://www.adito.de/2018/ao/Model adito://models/xsd/process/1.2.1"> + <name>Workflow_lib</name> + <majorModelMode>DISTRIBUTED</majorModelMode> + <process>%aditoprj%/process/Workflow_lib/process.js</process> + <variants> + <element>LIBRARY</element> + </variants> +</process> diff --git a/process/Workflow_lib/process.js b/process/Workflow_lib/process.js new file mode 100644 index 00000000000..2d1fcbf93d2 --- /dev/null +++ b/process/Workflow_lib/process.js @@ -0,0 +1,30 @@ +import("system.workflow"); + + +function WorkflowDefinitionUtils () {} + +WorkflowDefinitionUtils.getDeployedDefinitions = function (pCategory, pActive) +{ + if (pActive === undefined) + pActive = true; + var loadConfig = workflow.createConfigForLoadingProcessDefinitions() + .active(pActive); + if (pCategory) + loadConfig.category(pCategory); + var workflowDefs = workflow.getProcessDefinitions(loadConfig); + workflowDefs = JSON.parse(workflowDefs); + + return workflowDefs; +} + +function WorkflowInstanceUtils () {} + +WorkflowInstanceUtils.getInstancesForDefinition = function (pDefinitionId) +{ + var loadConfig = workflow.createConfigForLoadingProcessInstances() + .processDefinitionId(pDefinitionId); + var instances = workflow.getProcessInstances(loadConfig); + instances = JSON.parse(instances); + + return instances; +} \ No newline at end of file -- GitLab