Designing Process Flows

A wide range of process flows may be designed to implement online tasks business users may need to perform. Refer to Understanding Process Flows for more information.

Below is a high-level summary of the steps required to design and configure various types of process flows.

Analyze The Task

The following provides a the high-level guidance in analyzing the necessary data and rules needed to support an implementation of a new type of process flow:

  • Identify the data and business rules that are needed to complete the entire task.
    • When possible, organize data into logical groups of details defined as data areas.

    • Design logic for the final processing script that accepts the entire data entered along with the user’s action to either complete or cancel the task.

    • If data needs to be initially prepared for a newly initiated process flow, design logic for a corresponding initial processing script.

    • Determine whether a summary panel may be useful for the user to review the outcome of a completed process.

  • Design the sequence of panels the user should follow to complete the task. Identify the initial and final panels.

  • Review each panel and determine the following:
    • Is it a single panel or a nested process flow (i.e. a panel set)?

    • What is the title of the panel and its label on the progress bar?

    • How should the layout be rendered? Use a data area that leverages UI Hints to describe the panel layout when possible. For more complex HTML requirements you may use a UI map fragment.

    • Should details on this panel be defaulted with some initial values when the user enters this panel? If so, design logic for a corresponding pre-processing script.

    • If data entered on this panel should be validated before the user exits the panel, design logic for a corresponding post-processing script.

  • Design the summary panel if needed.

  • Determine whether this type of process flow should be automatically saved by the system or solely rely on the user to control when data is saved.

  • Determine whether a record of a completed process flow should be retained for audit purposes or deleted upon completion.

  • Determine whether a user may delete in progress records of such process flow.

  • Determine whether process flows of this type are saved and stored in a dedicated table in the database or are saved in the generic table provided by the base product. The assumption is that introducing new designated storage maintenance objects is not common. Refer to your edge product documentation for additional maintenance objects that may have been provided to support specific types of process flows shipped with the product.

  • Determine the context in which a user can initiate, resume work on, and review process flows of that type.
    • The process flow may be launched from a menu or a favorite script etc.

    • Design the query portal a user would use to find and resume a saved off process flow of this type as well as review completed process flow records. Depending on the context of this task, the query may be associated with the same menu line that initiates the process flow.

Using UI Map Panels

Typically a map fragment is rendered as part of a complete UI map but when used as a process flow panel the system renders the panel assuming the fragment contains a complete map.

Therefore, such fragment should includes the following items:
  • The standard error message section used for reporting errors.

  • This line <xml style="display:none"></xml> at the end of the HTML content for proper binding of data to their HTML elements.

A UI map based panel allows for more control over some of the buttons available to the user. For example, the panel may prevent the user from proceeding to the next panel unless required information is entered. Refer to the explicit APIs listed in the process controller UI Map (F1-ProcessController) for more information.

Configure The Process Flow Type

The following describes the high-level steps needed to configure a new type of process flow:

  • Create the UI map for the process flow. Its schema should contain all the details needed to complete the task. Its HTML should only include the process controller UI map fragment.

  • Create a start processing service script if needed.

  • Create a final processing service script such that it applies all the rules needed to complete or cancel the task.

  • For each panel perform the following:
    • Create a UI map fragment for it unless it corresponds to a data area already included in the process flow schema. Make sure the XPath of each element references in the data area or UI map is the same XPath of that element in the process flow’s UI map schema.

    • Create a pre-processing service script if needed. Not applicable to the summary panel.

    • Create a post-processing service script if needed. Not applicable to the summary panel.

    • Set up a label and title MD fields if existing ones cannot be used.

  • Create a BPA script for the process flow.

  • Configure the process flow type record.

  • Set up a navigation option and reference the BPA script on it. Associate the navigation option with a menu or provide other means for the user to initiate the process flow.

  • Create a query portal for the specific type of process flow records. Add the new query portal to a menu or provide other means for the user to resume work on a process flow they have saved off or review completed records.

Control Visibility of Standard Buttons

You may leverage the following javaScript functions to control the visibility of standard process flow buttons:

  • Next: enableNext(), disableNext(), hideNext() , showNext()

    .
  • Finish: enableFinish(), disableFinish(), hideFinish() , showFinish()

    .
  • Save: enableSave(), disableSave(), hideSave() , showSave().