jsharmony-workflow 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (37) hide show
  1. package/.eslintrc.js +47 -0
  2. package/.eslintrc_models.js +64 -0
  3. package/LICENSE +165 -0
  4. package/README.md +29 -0
  5. package/index.js +20 -0
  6. package/jsHarmonyWorkflow.js +55 -0
  7. package/jsHarmonyWorkflowConfig.js +43 -0
  8. package/jsHarmonyWorkflowProcessor.js +517 -0
  9. package/jsHarmonyWorkflowTransform.Classic.js +83 -0
  10. package/jsHarmonyWorkflowTransform.js +80 -0
  11. package/lint.cmd +2 -0
  12. package/models/Admin/TaskDef.json +26 -0
  13. package/models/Admin/TaskDef_Func.json +21 -0
  14. package/models/Admin/TaskDef_Listing.json +28 -0
  15. package/models/Admin/TaskDef_Tabs.json +19 -0
  16. package/models/Admin/WkflowDef.json +25 -0
  17. package/models/Admin/WkflowDef_Listing.json +26 -0
  18. package/models/Admin/WkflowDef_State.json +26 -0
  19. package/models/Admin/WkflowDef_State_Action.json +25 -0
  20. package/models/Admin/WkflowDef_State_Action_Listing.json +25 -0
  21. package/models/Admin/WkflowDef_State_Listing.json +45 -0
  22. package/models/Admin/WkflowDef_State_Tabs.json +20 -0
  23. package/models/Admin/WkflowDef_State_Tran.json +28 -0
  24. package/models/Admin/WkflowDef_State_Tran_Listing.json +27 -0
  25. package/models/Admin/WkflowDef_Tabs.json +20 -0
  26. package/models/Admin/WkflowDef_Tran_Start.json +28 -0
  27. package/models/Admin/WkflowDef_Tran_Start_Listing.json +34 -0
  28. package/models/Wkflow/Task.json +27 -0
  29. package/models/Wkflow/Task_Listing.json +45 -0
  30. package/models/Wkflow/Task_Tabs.json +18 -0
  31. package/models/Wkflow/Wkflow.json +31 -0
  32. package/models/Wkflow/Wkflow_Listing.json +38 -0
  33. package/models/Wkflow/Wkflow_Tabs.json +18 -0
  34. package/models/_config.json +48 -0
  35. package/models/sql/objects/task.json +152 -0
  36. package/models/sql/objects/wkflow.json +383 -0
  37. package/package.json +21 -0
@@ -0,0 +1,38 @@
1
+ {
2
+ "Wkflow_Listing":{
3
+ "layout": "grid",
4
+ "title": "Workflows",
5
+ "table": "wkflow",
6
+ "menu": "Wkflow/Wkflow_Listing",
7
+ "caption": ["","Workflow","Workflows"],
8
+ "actions": "B",
9
+ "sort": ["vwkflow_id"],
10
+ "buttons":[
11
+ { "name":"addWkflow", "link":"insert:Wkflow","icon":"add","text":"Add Workflow" },
12
+ ],
13
+ "fields": [
14
+ {"name":"wkflow_id", "caption":"ID"},
15
+ {"name":"wkflow_sts", "caption":"Status", "lov": { "{{code_sys}}": "wkflow_sts" }},
16
+ {"name":"wkflow_def_name", "caption":"Workflow", "link": "update:Wkflow_Tabs", "sqlselect": "(select wkflow_def_name from {schema}.wkflow_def where wkflow_def.wkflow_def_id = wkflow.wkflow_def_id)"},
17
+ {"name":"wkflow_def_state_name", "caption":"State", "link": "update:Wkflow_Tabs", "sqlselect": "(select wkflow_def_state_name from {schema}.wkflow_def_state where wkflow_def_state.wkflow_def_state_id = wkflow.wkflow_def_state_id)"},
18
+
19
+ {"name":"wkflow_etstmp", "caption":"Entered", "format":["date","MM/DD/YYYY h:mm A"]},
20
+ {"name":"wkflow_euser", "caption":"Entered By", "sqlselect": "jsharmony.my_db_user_fmt(wkflow_euser)"},
21
+ {"name":"wkflow_mtstmp", "caption":"Modified", "format":["date","MM/DD/YYYY h:mm A"]},
22
+ {"name":"wkflow_muser", "caption":"Modified By", "sqlselect": "jsharmony.my_db_user_fmt(wkflow_muser)"},
23
+ {"name":"wkflow_snotes", "caption":"System Notes"},
24
+ ]
25
+ },
26
+ "Wkflow_Listing_Active": {
27
+ "inherits": "Wkflow_Listing",
28
+ "title": "Active Workflows",
29
+ "menu": "Wkflow/Wkflow_Listing_Active",
30
+ "sqlwhere": "wkflow_sts = 'ACTIVE'",
31
+ },
32
+ "Wkflow_Listing_History": {
33
+ "inherits": "Wkflow_Listing",
34
+ "title": "Workflow History",
35
+ "menu": "Wkflow/Wkflow_Listing_History",
36
+ "sqlwhere": "wkflow_sts <> 'ACTIVE'",
37
+ },
38
+ }
@@ -0,0 +1,18 @@
1
+ {
2
+ "Wkflow_Tabs":{
3
+ "layout": "form",
4
+ "title": "Workflow: <#=data.wkflow_def_name#>",
5
+ "table": "wkflow",
6
+ "actions": "B",
7
+ "caption": [ 0, "Workflow", "Workflows" ],
8
+ "tabpos":"bottom",
9
+ "tabs":[
10
+ {"name":"General","target":"Wkflow"},
11
+ ],
12
+ "popup":[1300,700],
13
+ "fields":[
14
+ {"name":"wkflow_id","type":"bigint","key":true,"control":"hidden"},
15
+ {"name":"wkflow_def_name","control":"hidden","sqlselect":"(select wkflow_def_name from {schema}.wkflow_def where wkflow_def.wkflow_def_id = wkflow.wkflow_def_id)"},
16
+ ]
17
+ },
18
+ }
@@ -0,0 +1,48 @@
1
+ {
2
+ "modules": {
3
+ "jsHarmonyFactory": {
4
+ "static_menu": {
5
+ "main_menu": [
6
+ { "menu_name": "Wkflow", "menu_desc": "Workflow", "menu_cmd": "{namespace}Wkflow/Wkflow_Listing_Active", "menu_subcmd": null, "menu_seq": 20000, "menu_id": 200, "roles": { "main": [ "SYSADMIN", "DEV" ] } }
7
+ ],
8
+ "sub_menu": [
9
+ { "menu_name": "Wkflow/Wkflow_Listing_Active", "menu_desc": "Active Workflows", "menu_cmd": "{namespace}Wkflow/Wkflow_Listing_Active", "menu_subcmd": null, "menu_seq": 20001, "menu_id": 20001, "menu_parent_name": "Wkflow", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
10
+ { "menu_name": "Wkflow/Wkflow_Listing_History", "menu_desc": "Workflow History", "menu_cmd": "{namespace}Wkflow/Wkflow_Listing_History", "menu_subcmd": null, "menu_seq": 20002, "menu_id": 20002, "menu_parent_name": "Wkflow", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
11
+ { "menu_name": "Wkflow/Task_Listing_MyCurrent", "menu_desc": "My Current Tasks", "menu_cmd": "{namespace}Wkflow/Task_Listing_MyCurrent", "menu_subcmd": null, "menu_seq": 20003, "menu_id": 20003, "menu_parent_name": "Wkflow", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
12
+ { "menu_name": "Wkflow/Task_Listing_MyHistory", "menu_desc": "Task History", "menu_cmd": "{namespace}Wkflow/Task_Listing_MyHistory", "menu_subcmd": null, "menu_seq": 20004, "menu_id": 20004, "menu_parent_name": "Wkflow", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
13
+ { "menu_name": "Wkflow/Task_Listing_AllUsers", "menu_desc": "All User Tasks", "menu_cmd": "{namespace}Wkflow/Task_Listing_AllUsers", "menu_subcmd": null, "menu_seq": 20004, "menu_id": 20005, "menu_parent_name": "Wkflow", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
14
+
15
+ { "menu_name": "Admin/WkflowDef_Listing", "menu_desc": "Workflow Definitions", "menu_cmd": "{namespace}Admin/WkflowDef_Listing", "menu_subcmd": null, "menu_seq": 80071, "menu_id": 80071, "menu_parent_name": "Admin", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
16
+ { "menu_name": "Admin/TaskDef_Listing", "menu_desc": "Task Definitions", "menu_cmd": "{namespace}Admin/TaskDef_Listing", "menu_subcmd": null, "menu_seq": 80072, "menu_id": 80072, "menu_parent_name": "Admin", "roles": { "main": [ "SYSADMIN", "DEV" ] } },
17
+ ],
18
+ }
19
+ },
20
+ },
21
+ "field_mapping": {
22
+ "{{code_val}}": "code_val",
23
+ "{{code_val1}}": "code_val1",
24
+ "{{code_val2}}": "code_val2",
25
+ "{{code_txt}}": "code_txt",
26
+ "{{code_seq}}": "code_seq",
27
+ "{{code_parent}}": "code_parent",
28
+ "code_end_date": "code_end_dt",
29
+ "timestamp": "get_tstmp",
30
+ "current_user": "context_user",
31
+ "{{code_sys}}": "code_sys_prefix",
32
+ "{{code_app}}": "code_app_prefix",
33
+ "{{code2_sys}}": "code2_sys_prefix",
34
+ "{{code2_app}}": "code2_app_prefix",
35
+ "code": "code_prefix",
36
+ "code2": "code2_prefix",
37
+ },
38
+ "ui_field_mapping": {
39
+ "{{code_val}}": "code_val",
40
+ "{{code_txt}}": "code_txt",
41
+ "{{code_parent_id}}": "code_parent_id",
42
+ "{{code_icon}}": "code_icon",
43
+ "{{code_id}}": "code_id",
44
+ "{{code_parent}}": "code_parent",
45
+ "{{code_seq}}": "code_seq",
46
+ "{{code_type}}": "code_type"
47
+ },
48
+ }
@@ -0,0 +1,152 @@
1
+ {
2
+ "code_task_def_sts": {
3
+ "type": "code",
4
+ "caption": "Task Definition Status",
5
+ "init_data": [
6
+ {"code_seq":1, "code_val":"ACTIVE", "code_txt":"Active"},
7
+ {"code_seq":2, "code_val":"HOLD", "code_txt":"Hold"},
8
+ {"code_seq":3, "code_val":"CLOSED", "code_txt":"Closed"},
9
+ ]
10
+ },
11
+
12
+ "code_task_def_dur_type": {
13
+ "type": "code",
14
+ "caption": "Task Definition Status",
15
+ "init_data": [
16
+ {"code_seq":1, "code_val":"CALDAYS", "code_txt":"Calendar Days"},
17
+ {"code_seq":2, "code_val":"BUSDAYS", "code_txt":"Business Days"},
18
+ ]
19
+ },
20
+
21
+ "code_task_sts": {
22
+ "type": "code",
23
+ "caption": "Task Status",
24
+ "init_data": [
25
+ {"code_seq":1, "code_val":"ACTIVE", "code_txt":"Active"},
26
+ {"code_seq":2, "code_val":"HOLD", "code_txt":"Hold"},
27
+ {"code_seq":3, "code_val":"COMPLETE", "code_txt":"Complete"},
28
+ {"code_seq":4, "code_val":"CANCELED", "code_txt":"Canceled"},
29
+ ]
30
+ },
31
+
32
+ "task_def": {
33
+ "type": "table",
34
+ "caption": "task_def",
35
+ "table": "task_def",
36
+ "columns": [
37
+ {"name":"task_def_id", "type":"bigint", "key":true, "identity": true, "null":false},
38
+ {"name":"task_def_sts", "type":"varchar", "length":32, "foreignkey":{"code_task_def_sts":"code_val"}, "null":false, "default": "ACTIVE"},
39
+ {"name":"task_def_code", "type":"varchar", "length":32, "null":false},
40
+ {"name":"task_def_name", "type":"varchar", "length":64, "null":false},
41
+ {"name":"task_def_desc", "type":"varchar", "length":1024},
42
+ {"name":"task_def_dur", "type":"int"},
43
+ {"name":"task_def_dur_type", "type":"varchar", "length":32, "foreignkey":{"code_task_def_dur_type":"code_val"}},
44
+ {"name":"task_def_euser", "type":"varchar", "length":20, "default": { "sql": "%%%%%%jsh.map.current_user%%%%%%" }},
45
+ {"name":"task_def_etstmp", "type":"datetime", "precision":7, "default": { "sql": "%%%%%%jsh.map.timestamp%%%%%%" }},
46
+ {"name":"task_def_muser", "type":"varchar", "length":20},
47
+ {"name":"task_def_mtstmp", "type":"datetime", "precision":7},
48
+ {"name":"task_def_snotes", "type":"varchar", "length":1024}
49
+ ],
50
+ "index": [
51
+ { "columns": ["task_def_sts"] },
52
+ { "columns": ["task_def_code"] },
53
+ ],
54
+ "triggers": [
55
+ { "on": ["update", "insert"], "exec": [
56
+ "set(task_def_mtstmp,%%%%%%jsh.map.timestamp%%%%%%);",
57
+ "set(task_def_muser,%%%%%%jsh.map.current_user%%%%%%);",
58
+ ]
59
+ },
60
+ { "on": ["insert"], "exec": [
61
+ "jsharmony.log_audit_insert('task_def',inserted(task_def_id),task_def_id)",
62
+ ]
63
+ },
64
+ { "on": ["update"], "exec": [
65
+ "jsharmony.log_audit_update_mult('task_def',deleted(task_def_id),[\"task_def_sts\",\"task_def_code\",\"task_def_name\",\"task_def_desc\",\"task_def_dur\",\"task_def_dur_type\"])",
66
+ ]
67
+ },
68
+ { "on": ["delete"], "exec": [
69
+ "jsharmony.log_audit_delete_mult('task_def',deleted(task_def_id),[\"task_def_sts\",\"task_def_code\",\"task_def_name\",\"task_def_desc\",\"task_def_dur\",\"task_def_dur_type\"])",
70
+ ]
71
+ }
72
+ ],
73
+ },
74
+
75
+ "task": {
76
+ "type": "table",
77
+ "caption": "task",
78
+ "table": "task",
79
+ "columns": [
80
+ {"name":"task_id", "type":"bigint", "key":true, "identity": true, "null":false},
81
+ {"name":"task_sts", "type":"varchar", "length":32, "foreignkey":{"code_task_sts":"code_val"}, "null":false, "default": "ACTIVE"},
82
+ {"name":"task_sts_user", "type":"varchar", "length":20, "default": { "sql": "%%%%%%jsh.map.current_user%%%%%%" }},
83
+ {"name":"task_sts_tstmp", "type":"datetime", "precision":7, "default": { "sql": "%%%%%%jsh.map.timestamp%%%%%%" }},
84
+ {"name":"wkflow_id", "type":"bigint", "foreignkey":{"wkflow":"wkflow_id"}},
85
+ {"name":"task_def_id", "type":"bigint", "foreignkey":{"task_def":"task_def_id"}, "null":false},
86
+ {"name":"task_due", "type":"datetime", "precision":7},
87
+ {"name":"task_unotes", "type":"varchar", "length": "4000"},
88
+ {"name":"task_euser", "type":"varchar", "length":20, "default": { "sql": "%%%%%%jsh.map.current_user%%%%%%" }},
89
+ {"name":"task_etstmp", "type":"datetime", "precision":7, "default": { "sql": "%%%%%%jsh.map.timestamp%%%%%%" }},
90
+ {"name":"task_muser", "type":"varchar", "length":20},
91
+ {"name":"task_mtstmp", "type":"datetime", "precision":7},
92
+ {"name":"task_snotes", "type":"varchar", "length":1024}
93
+ ],
94
+ "index": [
95
+ { "columns": ["task_sts"] },
96
+ { "columns": ["wkflow_id"] },
97
+ { "columns": ["task_def_id"] },
98
+ { "columns": ["task_due"] },
99
+ ],
100
+ "triggers": [
101
+ { "on": ["update", "insert"], "exec": [
102
+ "set(task_mtstmp,%%%%%%jsh.map.timestamp%%%%%%);",
103
+ "set(task_muser,%%%%%%jsh.map.current_user%%%%%%);",
104
+ "setif(update(task_sts),task_sts_tstmp,%%%%%%jsh.map.timestamp%%%%%%);",
105
+ "setif(update(task_sts),task_sts_user,%%%%%%jsh.map.current_user%%%%%%);",
106
+ ]
107
+ },
108
+ { "on": ["insert"], "exec": [
109
+ "jsharmony.log_audit_insert('task',inserted(task_id),task_id)",
110
+ ]
111
+ },
112
+ { "on": ["update"], "exec": [
113
+ "jsharmony.log_audit_update_mult('task',deleted(task_id),[\"task_sts\",\"wkflow_id\",\"task_def_id\",\"task_due\",\"task_unotes\"])",
114
+ ]
115
+ },
116
+ { "on": ["delete"], "exec": [
117
+ "jsharmony.log_audit_delete_mult('task',deleted(task_id),[\"task_sts\",\"wkflow_id\",\"task_def_id\",\"task_due\",\"task_unotes\"])",
118
+ ]
119
+ }
120
+ ],
121
+ },
122
+
123
+ "task_def_sys_func": {
124
+ "type": "table",
125
+ "caption": "task",
126
+ "table": "task",
127
+ "columns": [
128
+ {"name":"task_def_sys_func_id", "type":"bigint", "key":true, "identity": true, "null":false},
129
+ {"name":"task_def_id", "type":"bigint", "foreignkey":{"task_def":"task_def_id"}, "null":false},
130
+ {"name":"sys_func_name", "type":"varchar", "length":16, "foreignkey":{"jsharmony.sys_func":"sys_func_name"}, "null":false},
131
+ {"name":"task_def_sys_func_snotes", "type":"varchar", "length":1024},
132
+ ],
133
+ "index": [
134
+ { "columns": ["task_def_id"] },
135
+ { "columns": ["wkflow_id"] },
136
+ ],
137
+ "triggers": [
138
+ { "on": ["insert"], "exec": [
139
+ "jsharmony.log_audit_insert('task_def_sys_func',inserted(task_def_sys_func_id),task_def_sys_func_id)",
140
+ ]
141
+ },
142
+ { "on": ["update"], "exec": [
143
+ "jsharmony.log_audit_update_mult('task_def_sys_func',deleted(task_def_sys_func_id),[\"task_def_id\",\"sys_func_name\"])",
144
+ ]
145
+ },
146
+ { "on": ["delete"], "exec": [
147
+ "jsharmony.log_audit_delete_mult('task_def_sys_func',deleted(task_def_sys_func_id),[\"task_def_id\",\"sys_func_name\"])",
148
+ ]
149
+ }
150
+ ],
151
+ }
152
+ }