A configurable workflow management method

By customizing the workflow practice architecture and JSON message interaction format, the problem of high difficulty in using traditional workflow management systems has been solved, achieving efficient and flexible workflow management and reducing learning and integration costs.

CN118840078BActive Publication Date: 2026-04-17HANGZHOU LEISHU TECH CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Patents(China)
Current Assignee / Owner
HANGZHOU LEISHU TECH CO LTD
Filing Date
2024-08-12
Publication Date
2026-04-17

AI Technical Summary

Technical Problem

Traditional workflow management systems are difficult to use, have unfriendly user interaction and developer integration, and are difficult to efficiently meet diverse needs.

Method used

It adopts a configurable workflow management approach, customizes the workflow practice architecture, introduces a workflow parser, a store, and an executor, defines a brand-new message interaction format based on JSON, and realizes workflow data assembly and execution through the parser, store, and executor.

Benefits of technology

It significantly lowers the barrier to entry for workflow engines, improves R&D efficiency, supports flexible workflow configuration and expansion, and is suitable for diverse workflow scenarios.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN118840078B_ABST
    Figure CN118840078B_ABST
Patent Text Reader

Abstract

The application discloses a configurable workflow management method, establishes an architecture different from traditional workflow management, and defines a unique and brand-new message interaction mode. The use threshold of a workflow engine is greatly reduced, and the research and development efficiency of workflow application is greatly improved; thus, workflow management is efficiently realized, and diversified requirements based on workflow management are met. According to the system architecture and data transmission specification designed according to the application, the definition, updating, maintenance and the like of workflow data can be completed, the workflow configuration requirements in different occasions and under different backgrounds are coped with, the complex principle of the workflow is shielded, the learning threshold of the workflow is avoided, and the work and cost brought by the connection of different kinds of workflows are avoided. A user only needs to learn the transmission specification defined by the method, and then complete workflow management, is suitable for most workflow scenes, and supports very flexible expansion.
Need to check novelty before this filing date? Find Prior Art

Description

Technical Field

[0001] This invention belongs to the field of next-generation information technology, specifically a configurable workflow management method. Background Technology

[0002] In today's era of rapid internet development, enterprise informatization and the informatization of traditional industries are undergoing an inevitable revolution.

[0003] In a computer network environment, this flow manifests as the transmission of information and data between multiple individuals. According to the Workflow Management Coalition (WFMC), a workflow is "a type of business process that can be fully or partially automated, which is transmitted and executed among different executors based on a set of process rules, documents, information, or tasks." From the definition of workflow, it can be seen that a workflow is a computerized implementation of a business process, while a workflow management system is the software environment for this implementation. Workflow technology provides a foundational platform for workflow automation and the construction of process applications, achieving the separation of process logic and business logic, supporting the analysis and standardized definition of business processes, and the automatic assembly of business units. This reduces the development difficulty of complex process applications and improves the management efficiency of application systems. A workflow engine refers to the workflow as part of an application system, providing core solutions that play a decisive role in determining information transmission routes and content levels based on roles, divisions of labor, and conditions. Workflow engines include important functions such as process node management, flow management, and process example management.

[0004] Traditional workflow engines, whether free / open-source or commercially available, are generally difficult to use. Furthermore, they are quite unfriendly from the perspectives of user interaction and developer integration. However, workflow approval is an essential function for countless internet applications.

[0005] How to efficiently implement workflow management, and how to address the diverse needs of workflow management, are the problems that this method urgently needs to solve. Summary of the Invention

[0006] To address the shortcomings and deficiencies of the existing technologies, this invention provides an architecture that differs from traditional workflow management and defines a unique and entirely new message interaction method. This significantly lowers the barrier to entry for workflow engines and greatly improves the development efficiency of workflow applications; thus, it efficiently realizes workflow management and provides a configurable workflow management method that meets diverse needs based on workflow management.

[0007] The technical solution adopted by this invention to solve its technical problem is: a configurable workflow management method.

[0008] A completely new workflow practice architecture has been customized, and new workflow components have been introduced. In terms of process, necessary steps and components have been added. Unlike the traditional workflow architecture, a workflow parser, workflow storage, workflow executor, and workflow engine components have been introduced.

[0009] Based on the custom workflow practice architecture, a brand-new workflow interaction message format was further customized. The message format is based on JSON definition, and the syntax fields are common terms in the workflow field.

[0010] To create or maintain a workflow, simply assemble the data according to the message format defined in this method, and then send the message to the workflow parser. The parser parses and reconstructs the message, assembling it into two-dimensional data: one sent to the workflow executor and the other to the workflow storage. The workflow storage persists the data for each operation, while the workflow executor assembles instructions that the workflow engine can understand based on the data and forwards them to the workflow engine for execution.

[0011] A configurable workflow management method is described below:

[0012] You need to write a standard workflow message and submit it to the workflow parser via an HTTP request.

[0013] The message will enter the parser, which will check whether the message is grammatically correct.

[0014] The parser optimizes and parses the message, reconstructs it into a standard message, and builds a parse tree, based on which structured data is constructed.

[0015] The structured data constructed from the parse tree will enter the workflow store and be stored in a relational database.

[0016] Once the standard message is reconstructed, it will enter the workflow executor. The executor will assemble instructions that the workflow engine can recognize based on the content and forward them to the workflow engine.

[0017] Finally, the execution instructions are transmitted to the workflow engine, which executes the instructions and retrieves the return results.

[0018] This completes workflow management.

[0019] Preferably, the workflow parser is used to receive data packets and perform reasonable and legality checks on the data packets. Messages that pass the checks will enter the parsing logic, reconstruct a syntax parse tree based on the message content, and rebuild a new set of messages based on the syntax parse tree. This new set of messages will enter the workflow memory, while the original reconstructed messages will enter the workflow executor.

[0020] Preferably, the workflow storage is used to parse the feature data constructed by the parser, generate object entities in memory, and interface with a relational database. The structured data is stored through an ORM framework, thereby achieving the purpose of leaving a trace.

[0021] Preferably, the workflow executor is used to reconstruct messages, parse the target workflow engine, identify the syntax to be generated, create different workflow instructions according to different target workflow engines, and then forward them to the workflow engine.

[0022] Preferably, the workflow engine is used to interface with commonly used open-source and commercial workflow engines in the industry to ultimately complete the execution of workflow logic.

[0023] Preferably, based on the JSON format and the necessary elements specified within the method, the definition example of the structured data message received by the workflow storage is as follows:

[0024] {

[0025] "Process nodes (multiple)": [{

[0026] "Person in Charge": 100767

[0027] "Name of Person in Charge": "Person in Charge A",

[0028] "Business Type": "StartNoneEvent (Start Event)"

[0029] Unique Identifier: 5409

[0030] "Node Name": "Message Registration",

[0031] "Unique Node Identifier": "29a4ffba-2ab5-4690-bce8-f21d6e9f5efa",

[0032] "Sort value": "0",

[0033] Organization ID: 55,

[0034] "Name of Organization": "Organizing Organization",

[0035] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0036] Type: "node"

[0037] }, {

[0038] Approval time: 1594284703000

[0039] Approval Result: "APPROVED"

[0040] "Person in Charge": 99883

[0041] "Name of Person in Charge": "Person in Charge B",

[0042] "Business Type": "UserTask"

[0043] Comment: This

[0044] "Associated file identifier": 18629,

[0045] "Unique Identifier": 5410,

[0046] "Node Name": "Leadership Approval",

[0047] "Unique Node Identifier": "aa8a1cf8-fede-4bad-adc9-26bb8147a6f5",

[0048] "Sort value": "0",

[0049] Organization ID: 55,

[0050] "Name of Organization": "Organizing Organization",

[0051] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0052] "Signature URL": "https: / / td-dev-public.oss-cn-hangzhou.aliyuncs.com / assist-poverty / 1594284702964160277.png",

[0053] Type: "node"

[0054] "Unique signature key": "2b2482c1"

[0055] }, {

[0056] Approval time: 1594284747000

[0057] Approval Result: "APPROVED"

[0058] "Person in Charge": 99461

[0059] "Name of Person in Charge": "Person in Charge B",

[0060] "Business Type": "UserTask"

[0061] "Comment": "",

[0062] "Associated file identifier": 18630,

[0063] "Unique Identifier": 5411,

[0064] "Node Name": "Employee Approval",

[0065] "Unique Node Identifier": "0fe32ac0-0323-4f4d-a936-59eec52c5549",

[0066] "Sort value": "0",

[0067] Organization ID: 55,

[0068] "Name of Organization": "Organizing Organization",

[0069] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0070] Signature URL:

[0071] Type: "delegateNode (proxy node)"

[0072] "Unique signature key": "21928aa6"

[0073] }, {

[0074] "Person in Charge": 100767

[0075] "Name of Person in Charge": "Person in Charge A",

[0076] "Business Type": "UserTask"

[0077] "Unique Identifier": 5412,

[0078] "Node Name": "Initiator Approval",

[0079] "Unique Node Identifier": "671e2ecc-f37a-40df-8888-d09ae2fe82a4",

[0080] "Sort value": "0",

[0081] Organization ID: 55,

[0082] "Name of Organization": "Organizing Organization",

[0083] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0084] Type: "node"

[0085] }, {

[0086] "Business Type": "EndNoneEvent (End Event)"

[0087] "Unique Identifier": 5413,

[0088] "Node Name": "Completed",

[0089] "Unique Node Identifier": "a6341d6e-4d38-4948-ab7f-c9f08c6aa17b",

[0090] "Sort value": "0",

[0091] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0092] Type: "node"

[0093] }, {

[0094] "Business Type": "SequenceFlow (Segment Flow)"

[0095] "Starting node": "29a4ffba-2ab5-4690-bce8-f21d6e9f5efa",

[0096] "Unique Node Identifier": "8f19be92-991e-49d6-8639-3494f7ab10ab",

[0097] "Target Node": "aa8a1cf8-fede-4bad-adc9-26bb8147a6f5",

[0098] Type: "sequence (line segment)"

[0099] }, {

[0100] "Business Type": "SequenceFlow (Segment Flow)"

[0101] "Starting node": "aa8a1cf8-fede-4bad-adc9-26bb8147a6f5",

[0102] "Unique Node Identifier": "83b8b195-6304-4025-9f91-7df41c5ce557",

[0103] "Target Node": "0fe32ac0-0323-4f4d-a936-59eec52c5549",

[0104] Type: "sequence (line segment)"

[0105] }, {

[0106] "Business Type": "SequenceFlow (Segment Flow)"

[0107] "Starting node": "0fe32ac0-0323-4f4d-a936-59eec52c5549",

[0108] "Unique Node Identifier": "0e7966d3-3cd9-46ec-849e-96ebf85026f3",

[0109] "Target Node": "671e2ecc-f37a-40df-8888-d09ae2fe82a4",

[0110] Type: "sequence (line segment)"

[0111] }, {

[0112] "Business Type": "SequenceFlow (Segment Flow)"

[0113] "Starting node": "671e2ecc-f37a-40df-8888-d09ae2fe82a4",

[0114] "Unique Node Identifier": "4918fa69-7e8e-48ed-aa6e-b5872e6a873f",

[0115] "Target Node": "a6341d6e-4d38-4948-ab7f-c9f08c6aa17b",

[0116] Type: "sequence (line segment)"

[0117] }]

[0118] }

[0119] Preferably, based on the JSON format and the necessary elements specified within the method, a specific example of the definition of a standard data message is as follows:

[0120] {

[0121] "resourceId": "e6b35a5b-ede4-42d2-a0a9-1349a72c42b6", / / Randomly generated, unique identifier

[0122] "properties": {

[0123] "name": "General Approval Process", / / Name

[0124] "documentation": "**Department Approval Process",

[0125] "processType": 1, / / Process type

[0126] "cc": [ / / CC recipients

[0127] "1", "99453" ]

[0129] },

[0130] "childShapes": [ / / Flowchart node information]

[0131] {

[0132] "resourceId": "1", / / Node ID

[0133] "properties": { / / Properties contained within the node

[0134] "name": "Start Node",

[0135] "assignment": "1" / / The initiator of the starting node, optional.

[0136] },

[0137] "bounds": { / / Node position and style information, optional

[0138] },

[0139] "stencil_id": "StartNoneEvent", / / Represents the starting node

[0140] "type": "node" / / Node

[0141] },

[0142] {

[0143] "resourceId": "2", / / Node ID

[0144] "properties": { / / Properties contained within the node

[0145] "name": "Approver Node",

[0146] "assignment": "1" / / Approver's user ID

[0147] },

[0148] "bounds": { / / Node position and style information, optional

[0149] },

[0150] "stencil_id": "UserTask", / / Represents the user node

[0151] "type": "node" / / Node

[0152] },

[0153] {

[0154] "resourceId": "3", / / Node ID

[0155] "properties": { / / Properties contained within the node

[0156] "name": "Approver Node",

[0157] "assignment": "2" / / Approver's user ID

[0158] },

[0159] "bounds": { / / Node position and style information, optional.}

[0160] },

[0161] "stencil_id": "UserTask", / / User node

[0162] "type": "node" / / Node

[0163] },

[0164] {

[0165] "resourceId": "4", / / Node ID

[0166] "properties": { / / Properties contained within the node

[0167] "name": "Exclusive Gateway" / / J node name

[0168] },

[0169] "bounds": { / / Node position and style information, optional.}

[0170] },

[0171] "stencil_id": "ExclusiveGateway", / / Exclusive gateway

[0172] "type": "node" / / Node

[0173] },

[0174] {

[0175] "resourceId": "5", / / Node ID

[0176] "properties": { / / Properties contained within the node

[0177] "name": "Exclusive 1" / / Node name

[0178] },

[0179] "bounds": { / / Node position and style information, optional.}

[0180] },

[0181] "stencil_id": "UserTask", / / Element attribute, here it represents the user task.

[0182] "type": "node" / / Node

[0183] },

[0184] {

[0185] "resourceId": "6", / / Node ID

[0186] "properties": {

[0187] "name": "Exclusive 2" / / Node name

[0188] },

[0189] "bounds": { / / Node position and style information, optional.}

[0190] },

[0191] "stencil_id": "UserTask", / / Element attribute, here it represents the user task.

[0192] "type": "node" / / Type, node

[0193] },

[0194] {

[0195] "resourceId": "7", / / Node ID

[0196] "properties": { / / Properties contained within the node

[0197] "name": "Final Approval" / / Node Name

[0198] },

[0199] "bounds": { / / Node position and style information, optional.}

[0200] },

[0201] "stencil_id": "UserTask", / / Element attribute, user task

[0202] "type": "node" / / Type, node

[0203] },

[0204] {

[0205] "resourceId": "8", / / Node ID

[0206] "properties": { / / Properties contained within the node

[0207] "name": "End Node", / / Node Name

[0208] "assignment": "" / / assignee

[0209] },

[0210] "bounds": { / / Node position and style information, optional.}

[0211] },

[0212] "stencil_id": "EndNoneEvent", / / Element type, end node

[0213] "type": "node" / / Type, node

[0214] },

[0215] This invention establishes an architecture different from traditional workflow management and defines a unique and entirely new message interaction method. This significantly lowers the barrier to entry for workflow engines and greatly improves the development efficiency of workflow applications, thereby efficiently achieving workflow management and meeting diverse needs based on workflow management. The system architecture and data transmission specifications designed according to this invention can complete the definition, updating, and maintenance of workflow data, addressing workflow configuration requirements in different scenarios and backgrounds. It shields the complex principles of workflow, avoids the learning curve of workflow, and eliminates the work and costs associated with connecting different types of workflows. Users only need to learn the transmission specifications defined in this method to achieve complete workflow management, applicable to the vast majority of workflow scenarios, and also supports highly flexible expansion. Attached Figure Description

[0216] Figure 1 This is a schematic diagram illustrating the working principle of the present invention. Detailed Implementation

[0217] The technical solutions of the embodiments of the present invention will be clearly and completely described below with reference to the accompanying drawings. Obviously, the described embodiments are only some embodiments of the present invention, and not all embodiments. Based on the embodiments of the present invention, all other embodiments obtained by those skilled in the art without creative effort are within the scope of protection of the present invention.

[0218] Example 1

[0219] A configurable workflow management approach that defines a completely new workflow practice architecture (such as...) Figure 1 As shown), new workflow components are introduced. In terms of process, necessary steps and components are added. Unlike the traditional workflow architecture, a workflow parser, workflow storage, workflow executor, and workflow engine components are introduced.

[0220] Based on the custom workflow practice architecture, a brand-new workflow interaction message format was further customized. The message format is based on JSON definition, and the syntax fields are common terms in the workflow field.

[0221] To create or maintain a workflow, simply assemble the data according to the message format defined in this method, and then send the message to the workflow parser. The parser parses and reconstructs the message, assembling it into two-dimensional data, one of which is sent to the workflow executor and the other to the workflow storage. The workflow storage will persist the data for each operation record, while the workflow executor will assemble instructions that the workflow engine can understand based on the data and forward them to the workflow engine for execution.

[0222] The workflow parser is used to receive data packets and perform reasonable and legal checks on the data packets. Messages that pass the checks will enter the parsing logic, reconstruct a syntax parse tree based on the message content, and rebuild a new set of messages based on the syntax parse tree. This new set of messages will enter the workflow memory, while the original reconstructed messages will enter the workflow executor.

[0223] The workflow storage is used to parse the feature data constructed by the parser, generate object entities in memory, and interface with the relational database. The structured data is stored through the ORM framework, thereby achieving the purpose of leaving a trace.

[0224] The workflow executor is used to reconstruct messages, parse the target workflow engine, identify the syntax to be generated, create different workflow instructions according to different target workflow engines, and then forward them to the workflow engine.

[0225] The workflow engine is used to interface with commonly used open-source and commercial workflow engines in the industry to ultimately execute workflow logic. Example 2

[0226] A configurable, general workflow management method. The specific method is as follows:

[0227] A standard workflow message needs to be written and submitted to the workflow parser via an HTTP request.

[0228] The message will enter the parser, which will check whether the message is grammatically correct.

[0229] The parser optimizes and parses the message, reconstructs it into a standard message (supplementing default values, etc.), and builds a parse tree, based on which structured data is constructed.

[0230] The structured data constructed from the parse tree will enter the workflow store and be stored in a relational database.

[0231] The reconstructed standard message then enters the workflow executor. The executor assembles instructions that the workflow engine can recognize based on the content and forwards them to the workflow engine.

[0232] Finally, the execution instructions are transmitted to the workflow engine, which executes the instructions and retrieves the return results.

[0233] This completes workflow management. Example 3

[0234] Based on the JSON format and the necessary elements specified within the method, the following is a specific example of the definition of the structured data message received by the workflow store:

[0235] {

[0236] "Process nodes (multiple)": [{

[0237] "Person in Charge": 100767

[0238] "Name of Person in Charge": "Person in Charge A",

[0239] "Business Type": "StartNoneEvent (Start Event)"

[0240] Unique Identifier: 5409

[0241] "Node Name": "Message Registration",

[0242] "Unique Node Identifier": "29a4ffba-2ab5-4690-bce8-f21d6e9f5efa",

[0243] "Sort value": "0",

[0244] Organization ID: 55,

[0245] "Name of Organization": "Organizing Organization",

[0246] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0247] Type: "node"

[0248] }, {

[0249] Approval time: 1594284703000

[0250] Approval Result: "APPROVED"

[0251] "Person in Charge": 99883

[0252] "Name of Person in Charge": "Person in Charge B",

[0253] "Business Type": "UserTask"

[0254] Comment: This

[0255] "Associated file identifier": 18629,

[0256] "Unique Identifier": 5410,

[0257] "Node Name": "Leadership Approval",

[0258] "Unique Node Identifier": "aa8a1cf8-fede-4bad-adc9-26bb8147a6f5",

[0259] "Sort value": "0",

[0260] Organization ID: 55,

[0261] "Name of Organization": "Organizing Organization",

[0262] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0263] "Signature URL": "https: / / td-dev-public.oss-cn-hangzhou.aliyuncs.com / assist-poverty / 1594284702964160277.png",

[0264] Type: "node"

[0265] "Unique signature key": "2b2482c1"

[0266] }, {

[0267] Approval time: 1594284747000

[0268] Approval Result: "APPROVED"

[0269] "Person in Charge": 99461

[0270] "Name of Person in Charge": "Person in Charge B",

[0271] "Business Type": "UserTask"

[0272] "Comment": "",

[0273] "Associated file identifier": 18630,

[0274] "Unique Identifier": 5411,

[0275] "Node Name": "Employee Approval",

[0276] "Unique Node Identifier": "0fe32ac0-0323-4f4d-a936-59eec52c5549",

[0277] "Sort value": "0",

[0278] Organization ID: 55,

[0279] "Name of Organization": "Organizing Organization",

[0280] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0281] Signature URL:

[0282] Type: "delegateNode (proxy node)"

[0283] "Unique signature key": "21928aa6"

[0284] }, {

[0285] "Person in Charge": 100767

[0286] "Name of Person in Charge": "Person in Charge A",

[0287] "Business Type": "UserTask"

[0288] "Unique Identifier": 5412,

[0289] "Node Name": "Initiator Approval",

[0290] "Unique Node Identifier": "671e2ecc-f37a-40df-8888-d09ae2fe82a4",

[0291] "Sort value": "0",

[0292] Organization ID: 55,

[0293] "Name of Organization": "Organizing Organization",

[0294] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0295] Type: "node"

[0296] }, {

[0297] "Business Type": "EndNoneEvent (End Event)"

[0298] "Unique Identifier": 5413,

[0299] "Node Name": "Completed",

[0300] "Unique Node Identifier": "a6341d6e-4d38-4948-ab7f-c9f08c6aa17b",

[0301] "Sort value": "0",

[0302] "Process Model Identifier": "a-821b8f29-89ad-4bb7-939e-9c6ba8a362d7",

[0303] Type: "node"

[0304] }, {

[0305] "Business Type": "SequenceFlow (Segment Flow)"

[0306] "Starting node": "29a4ffba-2ab5-4690-bce8-f21d6e9f5efa",

[0307] "Unique Node Identifier": "8f19be92-991e-49d6-8639-3494f7ab10ab",

[0308] "Target Node": "aa8a1cf8-fede-4bad-adc9-26bb8147a6f5",

[0309] Type: "sequence (line segment)"

[0310] }, {

[0311] "Business Type": "SequenceFlow (Segment Flow)"

[0312] "Starting node": "aa8a1cf8-fede-4bad-adc9-26bb8147a6f5",

[0313] "Unique Node Identifier": "83b8b195-6304-4025-9f91-7df41c5ce557",

[0314] "Target Node": "0fe32ac0-0323-4f4d-a936-59eec52c5549",

[0315] Type: "sequence (line segment)"

[0316] }, {

[0317] "Business Type": "SequenceFlow (Segment Flow)"

[0318] "Starting node": "0fe32ac0-0323-4f4d-a936-59eec52c5549",

[0319] "Unique Node Identifier": "0e7966d3-3cd9-46ec-849e-96ebf85026f3",

[0320] "Target Node": "671e2ecc-f37a-40df-8888-d09ae2fe82a4",

[0321] Type: "sequence (line segment)"

[0322] }, {

[0323] "Business Type": "SequenceFlow (Segment Flow)"

[0324] "Starting node": "671e2ecc-f37a-40df-8888-d09ae2fe82a4",

[0325] "Unique Node Identifier": "4918fa69-7e8e-48ed-aa6e-b5872e6a873f",

[0326] "Target Node": "a6341d6e-4d38-4948-ab7f-c9f08c6aa17b",

[0327] Type: "sequence (line segment)"

[0328] }]

[0329] } Example 4

[0330] Based on the JSON format and the necessary elements specified within the method, a specific example of the standard data message definition is as follows:

[0331] {

[0332] "resourceId": "e6b35a5b-ede4-42d2-a0a9-1349a72c42b6", / / Randomly generated, unique identifier

[0333] "properties": {

[0334] "name": "General Approval Process", / / Name

[0335] "documentation": "**Department Approval Process",

[0336] "processType": 1, / / Process type

[0337] "cc": [ / / CC recipients

[0338] "1", "99453" ]

[0340] },

[0341] "childShapes": [ / / Flowchart node information]

[0342] {

[0343] "resourceId": "1", / / Node ID

[0344] "properties": { / / Properties contained within the node

[0345] "name": "Start Node",

[0346] "assignment": "1" / / The initiator of the starting node, optional.

[0347] },

[0348] "bounds": { / / Node position and style information, optional

[0349] },

[0350] "stencil_id": "StartNoneEvent", / / Represents the starting node

[0351] "type": "node" / / Node

[0352] },

[0353] {

[0354] "resourceId": "2", / / Node ID

[0355] "properties": { / / Properties contained within the node

[0356] "name": "Approver Node",

[0357] "assignment": "1" / / Approver's user ID

[0358] },

[0359] "bounds": { / / Node position and style information, optional

[0360] },

[0361] "stencil_id": "UserTask", / / Represents the user node

[0362] "type": "node" / / Node

[0363] },

[0364] {

[0365] "resourceId": "3", / / Node ID

[0366] "properties": { / / Properties contained within the node

[0367] "name": "Approver Node",

[0368] "assignment": "2" / / Approver's user ID

[0369] },

[0370] "bounds": { / / Node position and style information, optional.}

[0371] },

[0372] "stencil_id": "UserTask", / / User node

[0373] "type": "node" / / Node

[0374] },

[0375] {

[0376] "resourceId": "4", / / Node ID

[0377] "properties": { / / Properties contained within the node

[0378] "name": "Exclusive Gateway" / / J node name

[0379] },

[0380] "bounds": { / / Node position and style information, optional.}

[0381] },

[0382] "stencil_id": "ExclusiveGateway", / / Exclusive gateway

[0383] "type": "node" / / Node

[0384] },

[0385] {

[0386] "resourceId": "5", / / Node ID

[0387] "properties": { / / Properties contained within the node

[0388] "name": "Exclusive 1" / / Node name

[0389] },

[0390] "bounds": { / / Node position and style information, optional.}

[0391] },

[0392] "stencil_id": "UserTask", / / Element attribute, here it represents the user task.

[0393] "type": "node" / / Node

[0394] },

[0395] {

[0396] "resourceId": "6", / / Node ID

[0397] "properties": {

[0398] "name": "Exclusive 2" / / Node name

[0399] },

[0400] "bounds": { / / Node position and style information, optional.}

[0401] },

[0402] "stencil_id": "UserTask", / / Element attribute, here it represents the user task.

[0403] "type": "node" / / Type, node

[0404] },

[0405] {

[0406] "resourceId": "7", / / Node ID

[0407] "properties": { / / Properties contained within the node

[0408] "name": "Final Approval" / / Node Name

[0409] },

[0410] "bounds": { / / Node position and style information, optional.}

[0411] },

[0412] "stencil_id": "UserTask", / / Element attribute, user task

[0413] "type": "node" / / Type, node

[0414] },

[0415] {

[0416] "resourceId": "8", / / Node ID

[0417] "properties": { / / Properties contained within the node

[0418] "name": "End Node", / / Node Name

[0419] "assignment": "" / / assignee

[0420] },

[0421] "bounds": { / / Node position and style information, optional.}

[0422] },

[0423] "stencil_id": "EndNoneEvent", / / Element type, end node

[0424] "type": "node" / / Type, node

[0425] },

[0426] Although specific embodiments of the invention have been shown and described, it will be understood by those skilled in the art that various changes, modifications, substitutions and alterations can be made to these specific embodiments without departing from the principles and spirit, the scope of which is defined by the appended claims and their equivalents.

Claims

1. A configurable workflow management method, characterized in that: Customize the workflow practice architecture, introduce workflow components, add necessary steps and components to the process, and introduce workflow parser, workflow storage, workflow executor and workflow engine components; Based on a custom workflow practice architecture, further customize the workflow interaction message format, which is based on JSON definition; To create or maintain a workflow, simply assemble the data according to the message format defined in this method, and then send the message to the workflow parser. The parser parses and reconstructs the message, assembling it into two-dimensional data, one of which is sent to the workflow executor and the other to the workflow storage. The workflow storage will persist the data for each operation record, while the workflow executor will assemble instructions that the workflow engine can understand based on the data and forward them to the workflow engine for execution. The specific methods for this workflow management approach are as follows: You need to write a standard workflow message and submit it to the workflow parser via an HTTP request. The message will enter the parser, which will check whether the message is grammatically correct. The parser optimizes and parses the message, reconstructs it into a standard message, and builds a parse tree, based on which structured data is constructed. The structured data constructed from the parse tree will enter the workflow store and be stored in a relational database. Once the standard message is reconstructed, it will enter the workflow executor. The executor will assemble instructions that the workflow engine can recognize based on the content and forward them to the workflow engine. Finally, the execution instructions are transmitted to the workflow engine, which executes the instructions and retrieves the return results. This completes workflow management; The workflow storage is used to parse the feature data constructed by the parser, generate object entities in memory, and interface with the relational database. The structured data is stored through the ORM framework to achieve the purpose of leaving a trace. The workflow executor is used to reconstruct messages, parse the target workflow engine, identify the syntax to be generated, create different workflow instructions according to different target workflow engines, and then forward them to the workflow engine.

2. The configurable workflow management method according to claim 1, characterized in that: The workflow parser is used to receive data packets and perform reasonable and legal checks on the data packets. Messages that pass the checks will enter the parsing logic, reconstruct a syntax parse tree based on the message content, and rebuild a new set of messages based on the syntax parse tree. This new set of messages will enter the workflow memory, while the original reconstructed messages will enter the workflow executor.

3. The configurable workflow management method according to claim 1, characterized in that: The workflow engine is used to interface with commonly used open-source and commercial workflow engines in the industry to ultimately execute workflow logic.

Citation Information

Patent Citations

  • Establishment method and system supporting adaptation of workflow client and workflow engine

    CN112101895A