From b64b21054e73abdc4e51dff7477956051336f134 Mon Sep 17 00:00:00 2001 From: Usama Ahmad <96994784+usama9500@users.noreply.github.com> Date: Wed, 8 May 2024 02:23:04 +0500 Subject: [PATCH] Documentation on Lanes/Pools and FAQ (#1473) * Documentation on Lanes/Pools and FAQ * Updates * Remove Get_Current_User --- .../images/lanes_pools_example_1.png | Bin 0 -> 11886 bytes .../images/lanes_pools_example_2.png | Bin 0 -> 28867 bytes .../images/lanes_pools_example_3.png | Bin 0 -> 22738 bytes .../images/lanes_pools_example_4.png | Bin 0 -> 7617 bytes docs/Building_Diagrams/pools_and_lanes.md | 39 ++++++++ docs/Support/FAQ.md | 84 ++++++++++++++++++ 6 files changed, 123 insertions(+) create mode 100644 docs/Building_Diagrams/images/lanes_pools_example_1.png create mode 100644 docs/Building_Diagrams/images/lanes_pools_example_2.png create mode 100644 docs/Building_Diagrams/images/lanes_pools_example_3.png create mode 100644 docs/Building_Diagrams/images/lanes_pools_example_4.png diff --git a/docs/Building_Diagrams/images/lanes_pools_example_1.png b/docs/Building_Diagrams/images/lanes_pools_example_1.png new file mode 100644 index 0000000000000000000000000000000000000000..b72507dca0594155b1496e2e3e3f15475bdf8d23 GIT binary patch literal 11886 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 literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/images/lanes_pools_example_2.png b/docs/Building_Diagrams/images/lanes_pools_example_2.png new file mode 100644 index 0000000000000000000000000000000000000000..d5b720dcff2b424d1ed712633c3c9cb61f1fcc32 GIT binary patch literal 28867 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 literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/images/lanes_pools_example_4.png b/docs/Building_Diagrams/images/lanes_pools_example_4.png new file mode 100644 index 0000000000000000000000000000000000000000..8802a1a97c51667c909c8afcba6cfd8fac3ece72 GIT binary patch literal 7617 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 OnA|ous=oCg_CEl&&Te!7 literal 0 HcmV?d00001 diff --git a/docs/Building_Diagrams/pools_and_lanes.md b/docs/Building_Diagrams/pools_and_lanes.md index 3c4a1be04..2a938070a 100644 --- a/docs/Building_Diagrams/pools_and_lanes.md +++ b/docs/Building_Diagrams/pools_and_lanes.md @@ -70,3 +70,42 @@ Remember that each pool requires Lane configuration, even if it contains just a | --- | --- | --- | | ![participant_sales](images/participant_lane_1.png) | **Name:** Manager | A concise and descriptive label that accurately represents the owner and role of the Lane. | | ![data_object_pools](images/data_object_pools_1.png) | **ID:** lane_manager | A distinct ID to differentiate each Lane, especially when there are multiple. | + +### Example: Using Lanes and Pools for Petty Cash Request Process +This example demonstrates the application of Lanes and pools in a BPMN diagram, specifically designed to handle a petty cash request process within an organization. + +The process is structured around different tasks allocated to lane and pools, emphasizing role-based access and task execution. + + +#### BPMN Diagram +![Lanes and Pools Example](images/lanes_pools_example_1.png) + +**Process Flow:** + +1. **Start Event**: The workflow kicks off with a start event signaling the initiation of a petty cash request. + +2. **User Task: Petty Cash Request**: This task uses a form to collect petty cash requests, including the requested amount and the reason for the request. + + ![Lanes and Pools Example](images/lanes_pools_example_2.png) + +The process transitions from the Requester Lane to the Cashier Lane within the Cashier Pool for approval. + +3. **User Task: Approve Petty Cash**: In this task, cashiers review and approve the petty cash request, recording the approver’s name for accountability. + + ![Lanes and Pools Example](images/lanes_pools_example_3.png) + +After approval, the workflow returns to the Requester Lane for final confirmation and display of the approval outcome. + +4. **Manual Task: Display Output**: + +**Display Message**: + +```markdown +Your petty cash request for {{amount}} has been approved by {{approved_by}} +``` +This message informs the requester of the approval status, including the approved amount and the name of the approver. After manual task, marks the end of the process. + +![Lanes and Pools Example](images/lanes_pools_example_4.png) + + +This BPMN diagram effectively uses Lanes and pools to structure a petty cash request process, ensuring that responsibilities are clearly assigned and the workflow is logically organized. \ No newline at end of file diff --git a/docs/Support/FAQ.md b/docs/Support/FAQ.md index 20b39228b..09ffc504a 100644 --- a/docs/Support/FAQ.md +++ b/docs/Support/FAQ.md @@ -375,6 +375,26 @@ can I resolve this? 5. **Custom Code Integration:** If you observe different behaviors between the Spiff CLI environment and your platform, it's important to ensure that the scripting environment and return values are consistently implemented across both. Differences in the scripting environment or the way the `execute` method is defined can lead to varying task states. +**Q**: Can SpiffWorkflow be used to integrate with external systems, such as a CRM? + +**Answer:** + +Yes, SpiffWorkflow is well-suited for integrating with external systems, including CRM platforms. SpiffWorkflow can interact with these systems through various mechanisms to enhance your workflow capabilities. + +**Key Integration Features:** + +1. **Service Tasks for External Communication**: + - SpiffWorkflow supports the use of Service Tasks to connect to external applications like a CRM. These tasks can perform operations such as showing user dialogs, creating, reading, updating, and deleting (CRUD) objects within the CRM. + +2. **Control and Automation**: + - You can control your CRM directly from the workflow engine, allowing for dynamic interactions based on workflow conditions. This includes automating data exchange between SpiffWorkflow and the CRM to streamline processes and reduce manual intervention. + +3. **API Triggers**: + - Workflows in SpiffWorkflow can be triggered from an external CRM via API endpoints. This capability enables you to start workflows in response to specific events or conditions within the CRM, creating a responsive and interconnected system environment. + +**Example and Resources**: + +For practical implementation, refer to examples and guides available on SpiffWorkflow’s documentation site, such as the [external services integration example](https://spiffdemo.org/process-groups/examples:2-in-depth:2-2-external-services). This resource provides detailed steps on how to set up and utilize Service Tasks for calling external APIs. By adjusting the return value of your script task's `execute` method and understanding the underlying mechanics of task state management in SpiffWorkflow, you can effectively control the flow of your workflow processes. ### **40: Event Design in SpiffWorkflow** @@ -386,3 +406,67 @@ By adjusting the return value of your script task's `execute` method and underst - **External Event Management:** For real external events, SpiffWorkflow allows the creation of an event object and passing it to the `send_event` function. This approach is used for events that need to be handled outside the workflow system. - **Event Translation and Messaging:** External systems should translate their events into SpiffWorkflow's format and call `send_events` to trigger the workflow. SpiffWorkflow collects all unhandled events, which the workflow system should periodically check using `get_events`. This process allows for the translation and sending of these events to external systems. - **Practical Application:** In real-world applications, tasks like UserTasks can be mapped to ApprovalTasks or FormTasks, and ServiceTasks can be mapped to API calls to external systems. The approach to handling events or messages, such as using RabbitMQ for pub/sub events or direct messaging via email or SMS, depends on the specific requirements and design of the workflow system. + + +### **41: SpiffWorkflow Backend Support** + +**Q:** How does the SpiffWorkflow backend support different worker types and modular integrations? + +**A:** +The SpiffWorkflow backend is highly modular, supporting various worker types through well-defined mechanisms: +- **External APIs and Service Tasks:** We utilize Service Tasks and a Connector Proxy to facilitate connections to external APIs. This setup allows for parameters of service calls to be directly accessible under the Service Task properties in the BPMN diagram, enabling custom task configurations. +- **Custom Tasks and Workflow Nesting:** SpiffWorkflow allows the nesting of workflows and the creation of custom tasks through service tasks, scripts, and Decision Model and Notation (DMN). + + +**Q:** Do multiple instances of the SpiffWorkflow backend require a shared filesystem for storing process models? + +**A** +No, multiple instances of the SpiffWorkflow backend do not require a shared filesystem. Each backend instance can write to a local directory, and configurations can be extended to commit process models to a Git repository. This allows each instance to maintain an independent set of models while ensuring access to updated versions through Git synchronization. + +**Q:** What steps should I take if I encounter errors related to environment variable settings during backend configuration? + +**A** +If you encounter errors, first verify the current settings of your environment variables. This can often be done by accessing the backend container and running diagnostic commands, such as: +```bash +from flask import current_app +print(current_app.config['SPIFFWORKFLOW_BACKEND_URL_FOR_FRONTEND']) +``` +If issues persist, consider deploying an updated version of your backend from the main branch, which might include improved error messages that can help diagnose the problem. + +### **42: Managing Service Task Connectors** + +**Q:** Is it possible to manage service-task connectors via the API instead of including them in the main deployment? + +**A:** +Service-task connectors in SpiffWorkflow are typically included in the deployment of a connector proxy rather than the main backend deployment. This setup allows for more flexibility in managing connectors separately from the core workflow engine. + +For a detailed guide on setting up and managing a connector proxy in just five minutes, refer to the [Connector Proxy Quick Start Guide](https://github.com/sartography/spiff-arena/wiki/Connector-Proxy-in-5-mins). + +### **43: Implementing and Troubleshooting Service Tasks in SpiffWorkflow** + +**Q:** How can I create a process that retrieves data from a REST endpoint using a service task in SpiffWorkflow? + +**A:** +To retrieve data from a REST endpoint using a service task (`serviceTaskOperator: "http/GetRequest"`), you need to define a connector. When running SpiffWorkflow as a library, service tasks act as placeholders and require a custom script engine or connector proxy to execute the tasks. Ensure your service task is correctly configured with parameters such as URL, headers, and authentication details. The URL must be properly quoted in the configuration to avoid syntax errors. + +**Example Configuration:** +```xml + + + + + + + + + + + + + +``` + +**Q:** Why do I receive different behaviors when running the same service task in SpiffWorkflow library vs. SpiffArena? + +**A:** +In SpiffWorkflow library, service tasks do not have built-in functionality and are essentially placeholders that require external implementations to function. In contrast, SpiffArena requires connectors to be set up for service tasks to function, which might lead to errors if the connectors or their configurations are incorrect. Errors such as "invalid syntax" typically occur when expressions (like URLs) are not properly formatted. \ No newline at end of file