PRD-approval flow BPM (combined with enterprise and micro approval engine and combined with flowable solution selection)

foreword

Process design has always been a relatively cumbersome matter. Since the company urgently needs to launch a process-oriented platform, the internal system urgently needs to be upgraded. In the absence of a product manager, I face the difficulties, as said in "Everyone is a Product Manager" " Not everyone can be a product manager, but in my opinion, product managers are a kind of people. Their thinking and methods of doing things can solve many practical life problems. As long as you can find the problem and describe it clearly, it can be transformed
into A requirement, and then transformed into a task, win support, mobilize a group of people, complete this task, and continue to track and maintain this product with the attitude of the master. Then, you are the product manager. At least, you are already
yourself product manager. This is the true meaning of "everyone is a product manager.
"

The first time I did demand analysis and design, I took a lot of detours. At first I thought that using the enterprise micro approval engine could save resources, but I actually found that it would waste more resources and the scalability was not strong. I also researched mature workflows like diboot, but I was stuck on charging, so I didn’t look for other open source alternatives. I was stuck in the enterprise micro process engine and couldn’t extricate myself, wasting some resources and time. Stay vigilant, you must think well, and only after doing research can you start doing it.

1. Understand the approval process

1.1. Understand the approval flow

Approval flow is a kind of workflow, which is common in middle and back office systems, and its essence is the flow mode and decision-making process of pending information.
That is, the applicant (person or system) provides the information to be reviewed, which is passed on to the relevant approver for transmission and processing. During this period, each approver will check the pending information based on his job responsibilities and authority division (check/confirm...), Judgment (approval/rejection/transfer/suspend...) and negotiation (feedback...) until it reaches the highest decision-making level to make a choice.
image.png

1.2. Why create an approval flow

Compliance: Help managers standardize the team's operating process and prevent decision-making mistakes; guide applicants to follow the correct process specifications and avoid illegal operations.

1.3. Components of approval process

image.png

  • Who initiates the approval (applicant): not only a user, but also a system or a third-party service provider.
  • Who will approve (approver): It may be an approval group or a specific approver, subject to authority and division of labor.
  • Approval by what rules (approval rules): Approvers with different authority and division of labor conduct approval according to one or more approval conditions.
  • What to approve (information to be reviewed): the information that the applicant provides as required based on different application items.
  • What each role can do (operation action): It can be an approval operation (pass, reject...), or a process operation (transfer, withdraw...).
  • How to tell each role (notification method): that is, the channels for notifying applicants and approvers (SMS, phone, email, platform message reminder...).

1.4. What conditions should a good approval process meet?

image.png

  • Accurate information communication: Can effectively and accurately communicate the relevant information of the approval process.
  • Efficient process operation: It can improve the operational efficiency within the organization.
  • Predictable nodes: It can help each role understand the approval process in advance.
  • History can be traced back: the completed approval documents can be traced back at any time.

2. Inventory approval process

image.png

2.1. Inductive role types

user role role description
applicant Company employees (including middle-level and grassroots, project managers, procurement, R&D, etc.)
Approver Professional team leader approval Employees in the professional group leader position and their approval chain
project manager approval Employees in the project manager position and their approval chain
department head approval Department head employees and their approval chains
Supply Chain Approval Supply chain post employees and their approval chain
Treasury management approval Employees in warehouse management positions and their approval chains

2.2. Clarify the task process

Role Scene Task Swimming Lane Diagram.jpg

2.3. Mining product function points

2.3.1. User Journey Map

User Journey Map.jpg

2.3.2. List of product functions

main function Subfunction Subfunction
Approval management Initiate an application Initiate a review
My application approval list
I approved Pending Approval List
Processed Approval List
Approval settings reminder settings
template settings
project list release approval release approval
task list initiate approval initiate approval
task details initiate approval initiate approval
Approval record Approval record
Purchase storage initiate approval initiate approval
Purchase out of warehouse initiate approval initiate approval
Other storage initiate approval initiate approval
Other outbound initiate approval initiate approval

3. Approval flow page design

3.1. Build information architecture

information architecture derivation brain map

List of role permissions
insert image description here

4. Link message notification

From the initiation of approval to the corresponding node, there will be a notification from Qiwei

5. Prototyping

5.1 Why should we combine with Qiwei

1. Based on the current scenario, it would be a big project to redesign BPM. Qiwei has ready-made product solutions, and our system can be integrated. 2. Qiwei’s ecology is relatively mature, and it can seamlessly connect contacts
and approvals. Seamlessly connect the webpage and the APP side
, and can easily
approve related tasks in the enterprise micro.
0.png
image.png

Qiwei related development interface: Approval process engine

6. Development steps of self-built applications

6.1. Create an enterprise

A mobile phone number can create multiple test companies for testing

6.2. Create a self-built application

image.png

6.3. Application settings

Configure trusted domain names, etc.:
image.png

6.4. Obtain application accessToken

image.png

6.5. Relevant interface of enterprise micro approval engine

https://developer.work.weixin.qq.com/document/path/97437
image.png

6.6. Overall thinking

overall process

insert image description here

image.png
Creating a template is the same form control. The only difference is the template name and template id. After creating the template in the management background, you need to go to Qiwei to modify the process configuration and jump

{
    
    
    "template_name": [
        {
    
    
            "text": "我的api测试模版2",
            "lang": "zh_CN"
        }
    ],
    "template_content": {
    
    
        "controls": [
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-01",
                    "title": [
                        {
    
    
                            "text": "单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {
    
    }
            },
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-02",
                    "title": [
                        {
    
    
                            "text": "单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {
    
    }
            },
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-03",
                    "title": [
                        {
    
    
                            "text": "单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {
    
    }
            },
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-04",
                    "title": [
                        {
    
    
                            "text": "备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 0,
                    "un_print": 0
                },
                "config": {
    
    }
            }
        ]
    }
}

image.png
image.png

image.png

If there is any modification to the template, you need to call the modification template interface, but the control is not modified, the interface only modifies the name, and the rest of the parameters are consistent with the new one. The process modification still needs to go to Qiwei, and the corresponding preview screenshot needs to be updated after modification
image.png

image.png
Pass parameters can be as follows:
image.png

{
    
    
    "template_id": "C4RdAwFWww7vv3oFEPoX1o4B3Mr9VHjzwbjw1Atwh",
    "template_name": [
        {
    
    
            "text": "我的api测试模版3",
            "lang": "zh_CN"
        }
    ],
    "template_content": {
    
    
        "controls": [
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-01",
                    "title": [
                        {
    
    
                            "text": "单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入单据类型",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {
    
    }
            },
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-02",
                    "title": [
                        {
    
    
                            "text": "单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入单据名称",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {
    
    }
            },
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-03",
                    "title": [
                        {
    
    
                            "text": "单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入单据详情",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 1,
                    "un_print": 0
                },
                "config": {
    
    }
            },
            {
    
    
                "property": {
    
    
                    "control": "Text",
                    "id": "Text-04",
                    "title": [
                        {
    
    
                            "text": "备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "placeholder": [
                        {
    
    
                            "text": "请输入备注",
                            "lang": "zh_CN"
                        }
                    ],
                    "require": 0,
                    "un_print": 0
                },
                "config": {
    
    }
            }
        ]
    }
}

2. Bind the template to the document
image.png
image.png

3. Initiate approval
3.1. Obtain template details according to the template id
image.png

3.2. Initiate approval

{
    
    
    "creator_userid": "CangHe",
    "template_id": "C4RdAwDkjzZaWDQn9fAoKogTZEAvaMoX42Lo9qgy6",
    "use_template_approver": 1,
    "apply_data": {
    
    
        "contents": [
            {
    
    
                "control": "Text",
                "id": "Text-1675996804140",
                "value": {
    
    
                    "text": "这是自动抓取的单据类型"
                }
            },
            {
    
    
                "control": "Text",
                "id": "Text-1675997969505",
                "value": {
    
    
                    "text": "这是自动抓取的单据编码"
                }
            },
            {
    
    
                "control": "Text",
                "id": "Text-1675998042838",
                "value": {
    
    
                    "text": "这是自动抓取的单据详情"
                }
            }
        ]
    },
    "summary_list": [
        {
    
    
            "summary_info": [
                {
    
    
                    "text": "单据名称:xxxx",
                    "lang": "zh_CN"
                }
            ]
        },
        {
    
    
            "summary_info": [
                {
    
    
                    "text": "单据类型:xxxx",
                    "lang": "zh_CN"
                }
            ]
        }
    ]
}

image.png
After the interface is called successfully, save the document number

3.3. Update approval progress
Can be updated according to the callback document number, click manual refresh to call the interface for obtaining document details

7. Combining open source flowable self-developed engine

After research, it is found that both the enterprise micro approval interface and the approval engine have certain disadvantages, which cannot actually meet our needs. The following will first explain the disadvantages of the two situations. The enterprise
micro approval interface disadvantages:
1. It must be a self-built application
2. Form template Adding a hyperlink cannot be opened with a normal browser. It is required to be able to open the internal system link.
3. To create a template, it needs to be operated on Qiwei. 4.
It cannot be approved in its own internal system.
Available, the interface for obtaining approval details internally is not factual
6. The development cost is also high, and other internal systems cannot be reused, and the scalability is not strong

Qiwei Approval Engine:
1. Compared with the approval interface, the engine is mainly provided for third-party applications, but it can only be opened by JS-SDK in Qiwei’s internal self-built applications. The scalability is not strong. 2. The development cost is high.
3.
Reuse Not strong
4. The internal system cannot directly approve. When there are too many approval flows, it takes a long time to find the approver, and it cannot be processed like the internal interface.
5. The user experience is not good

Based on the above research, it is imminent for the company to develop a set of approval engines.
We have researched many open source engines and found that most of them are developed based on the flowable engine, including:
1. https://www.diboot.com/
Workflow as a whole will The form and process are perfectly integrated, but unfortunately this part is not open source
image.png
2. http://106.52.168.121:1024/work/create
is based on ruoyi and flowable, and open source, which is more friendly to us
image.png

7.1. My affairs and process management

In the first phase, integrate plus into our system, my business and process management will not be changed for the time being, just adjust the corresponding interaction
image.png

7.2. Task approval

Add Task Settings - Approval Settings
image.png
image.png
Select an approval process for a task

New Task - Configuration Approval
image.png

Guess you like

Origin blog.csdn.net/qq_43270074/article/details/129361219