diff --git a/package.json b/package.json
index ea7c34ca..89f1319b 100644
--- a/package.json
+++ b/package.json
@@ -66,6 +66,7 @@
"vue-shortkey": "^3.1.7",
"vue-split-panel": "^1.0.4",
"vue-splitpane": "1.0.6",
+ "vue-workflow-chart": "^0.4.5",
"vuedraggable": "2.24.3",
"vuex": "3.6.2",
"xlsx": "0.16.9"
diff --git a/src/api/ADempiere/form/workflow-activity.js b/src/api/ADempiere/form/workflow-activity.js
new file mode 100644
index 00000000..4673e434
--- /dev/null
+++ b/src/api/ADempiere/form/workflow-activity.js
@@ -0,0 +1,56 @@
+// ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution
+// Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A.
+// Contributor(s): Yamel Senih ysenih@erpya.com www.erpya.com
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+// Get Instance for connectionimport {
+import { request } from '@/utils/ADempiere/request'
+
+// List Activity
+export function listActivity({
+ formUuid
+}) {
+ return request({
+ url: '/form/addons/activitys',
+ method: 'get',
+ params: {
+ form_uuid: formUuid
+ }
+ })
+ .then(listActivityResponse => {
+ return listActivityResponse
+ })
+}
+
+// Send Activity
+export function sendActivity({
+ formUuid,
+ activity,
+ message,
+ forward
+}) {
+ return request({
+ url: '/form/addons/send-activity',
+ method: 'post',
+ data: {
+ form_uuid: formUuid,
+ activity,
+ message,
+ forward
+ }
+ })
+ .then(listActivityResponse => {
+ return listActivityResponse
+ })
+}
diff --git a/src/api/ADempiere/workflow.js b/src/api/ADempiere/workflow.js
index 96b12549..52241e95 100644
--- a/src/api/ADempiere/workflow.js
+++ b/src/api/ADempiere/workflow.js
@@ -92,3 +92,28 @@ export function requestListDocumentActions({
}
})
}
+
+// Request a list of Activities from the user's Workflows
+export function workflowActivities({
+ userUuid,
+ pageSize,
+ pageToken
+}) {
+ return request({
+ url: '/workflow/workflow-activities',
+ method: 'get',
+ params: {
+ user_uuid: userUuid,
+ // Page Data
+ pageToken,
+ pageSize
+ }
+ })
+ .then(listWorkflowActivities => {
+ return {
+ nextPageToken: listWorkflowActivities.next_page_token,
+ recordCount: listWorkflowActivities.record_count,
+ listWorkflowActivities: listWorkflowActivities.records
+ }
+ })
+}
diff --git a/src/components/ADempiere/Form/WorkflowActivity/fieldsList.js b/src/components/ADempiere/Form/WorkflowActivity/fieldsList.js
new file mode 100644
index 00000000..07fff51c
--- /dev/null
+++ b/src/components/ADempiere/Form/WorkflowActivity/fieldsList.js
@@ -0,0 +1,76 @@
+// ADempiere-Vue (Frontend) for ADempiere ERP & CRM Smart Business Solution
+// Copyright (C) 2017-Present E.R.P. Consultores y Asociados, C.A.
+// Contributor(s): Elsio Sanchez elsiosanches@gmail.com www.erpya.com
+// This program is free software: you can redistribute it and/or modify
+// it under the terms of the GNU General Public License as published by
+// the Free Software Foundation, either version 3 of the License, or
+// (at your option) any later version.
+
+// This program is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+// GNU General Public License for more details.
+
+// You should have received a copy of the GNU General Public License
+// along with this program. If not, see .
+
+// List of fields to send in search
+// import language from '@/lang'
+import language from '@/lang'
+
+export default [
+ // History
+ {
+ elementColumnName: 'History',
+ isFromDictionary: true,
+ overwriteDefinition: {
+ handleFocusGained: true,
+ handleFocusLost: true,
+ handleKeyPressed: true,
+ handleKeyReleased: true,
+ handleActionKeyPerformed: true,
+ handleActionPerformed: true,
+ name: language.t('form.activity.filtersSearch.history'),
+ componentPath: 'FieldText',
+ size: 24,
+ sequence: 4,
+ isActiveLogics: true,
+ isMandatory: true,
+ isReadOnly: true
+ }
+ },
+ // Messages
+ {
+ elementColumnName: 'TextMsg',
+ isFromDictionary: true,
+ overwriteDefinition: {
+ handleFocusGained: true,
+ handleFocusLost: true,
+ handleKeyPressed: true,
+ handleKeyReleased: true,
+ handleActionKeyPerformed: true,
+ handleActionPerformed: true,
+ size: 24,
+ sequence: 5,
+ isActiveLogics: true,
+ isMandatory: true
+ }
+ },
+ // Forward
+ {
+ elementColumnName: 'Forward',
+ isFromDictionary: true,
+ overwriteDefinition: {
+ size: 24,
+ sequence: 6,
+ name: language.t('form.activity.filtersSearch.forward'),
+ handleFocusGained: true,
+ handleFocusLost: true,
+ handleKeyPressed: true,
+ handleKeyReleased: true,
+ handleActionKeyPerformed: true,
+ handleActionPerformed: true,
+ componentPath: 'FieldSelect'
+ }
+ }
+]
diff --git a/src/components/ADempiere/Form/WorkflowActivity/index.vue b/src/components/ADempiere/Form/WorkflowActivity/index.vue
new file mode 100644
index 00000000..7ce1ad16
--- /dev/null
+++ b/src/components/ADempiere/Form/WorkflowActivity/index.vue
@@ -0,0 +1,384 @@
+
+
+
+
+
+