Top
Top
LibraryEASYProcess Training GuideChapter 3: Processes
Intro to Processes
Create New Process
Process Canvas
Developing a Process

Intro to Processes

What is a Process?

A Process is an execution flow of services and logic defined by the user. The flow is directed from Start to Terminate by connecting directional lines to services along with other process flow elements, such as a binary decision, which may cause the logic to branch off into a different flow based on some criteria. The end result looks like a flowchart and it visually represents the logic to be used in various scenarios.

There are different types of processes as well: (Note: The main difference of the types of processes are what triggers the process to occur and how they are used)

  • Stand alone process (What we will learn about in this chapter)
  • Can be called from another process by its Process Id
  • Can be scheduled as a window's task to run on a schedule.
  • Ex: Every day, run a process that sends the admin an email with details on who has completed a registration request and requires action for a user to be created for the site.
  • Button Process
  • Process is triggered when a button in a webpart is clicked
  • There are also processes that can be attached to other input fields such as a Drop Down List or Textbox.
  • Ex: A save button on a form would collect the user entered information and save it into the database.
  • Process Datasource
  • Process which defines data for a datasource (the source of all the data which displays in a webpart). This can be one node of the process mapped to one field or it can be many nodes mapped to a list section of fields.
  • Ex: This is the logic that could determine what text should show to the user in a drop down list. What values does each option in the drop down list have associated to it (different from the descriptive text the user sees)?
  • On-Load Process (Web part and section)
  • Triggered each time the Web part or section is loaded.
  • These types of processes are only recommended for use in a list section. This is because often the logic you need to accomplish could be done in a process data source to consolidate queries.
  • When used in list sections (which can display many times, once for each record to display in the list), be aware of the time it takes for the process to run. The onload process runs once for each record that displays in  the list section. Because of this, load times can build up quickly. For example, if the on-load process only takes one second, but there are ten records showing in the list section, the page will take 10 seconds to load.
  • List Section On-Load Example: If there were a grid (list section) which listed all the past orders the user has placed, an onload process could look at each order (list section record) and calculate the order total based on the items within the order. The process would run once for each order (record in the list).
  • On-Pre-Render Process (Web Part and section)
  • Same as On-Load but executed after On-Load
  • The use of these processes is not recommended
  • Although some may still appear in older webparts, this feature is deprecated.


Create a New Process

From the Application Home screen, go to 'Work with Processes'. Then select 'Design New Process'. In the 'Add New Process' window, specify:

  • Name: Training: Send an Email
  • Description: Training: Send an Email

Click Continue to go to the Process Canvas for this process.


Process Canvas

Processes are created/edited in the Process Canvas. This is the workspace of the developer while working on the selected process. Take a moment to familiarize yourself with the Process Canvas.

Left Panel

To your left, you will find a panel with tabs at the bottom:

Services: List of all available services. These are the tools you will use to build your process. Each service’s name should give you an idea of how the tool is used. For example, the “SendEmail” service is used to send emails. Services are also grouped in the panel by their Workshop. These are the categories that group related services. The “SendEmail” service exists within an “Email Services” workshop.

Input Data: This is where you specify the inputs to your process. If your process requires inputs, you can define them here. This can be useful for future developers to know what input the process requires when trying to use it. It can also be useful when testing a process while developing, because defined inputs can be given values that are used as default when ran for testing purposes within the Process Canvas.

Output Data: This is where the output is shown when you “Run” or “Run in Step”. These are options available to the developer to test either the full process or test a specific service or services. As a process runs, each service that runs as part of the process flow logic generates logs. All logs are shown in the output data.

Configuration Settings: These are application level variables that you may want to reference. They can be defined in EASYProcess in the Configuration Variables. Variables like this are useful when a value should always be used, and is used in many places, but that value may change in the future. For example, if all emails to customers should CC the customer service email, a configuration variable can be defined as “EmailToCustomerCC”. This variable would be placed in the SendEmail service’s CC parameter and when the service runs, it would pull the value. In the future, if the customer service email changes, it only needs to changed in the Configuration Variables, instead of in each SendEmail service.

Middle Area

Canvas

In the middle, you will find a toolbar and the actual canvas under it. This is the big area with a grid pattern over it. This is the place where you can implement logic like insert values into a database, call JDE business functions, etc. Any programming task could be implemented via this screen.

When a new process is created, this area will have a “Start” and a “Terminate” service already on the canvas. If these are accidentally deleted, they can be found in the “Services” list in the left panel under “Process Flow Elements”. Only one “Start” service can exist on a canvas, but there can be more than one “Terminate”

Toolbar

Here is a very brief explanation of what some of the non-obvious buttons do:

Build: This is like compiling the process.

Run: This is to execute the entire process, from beginning to end, utilizing the Input Data entered in the left panel.

Run in step: This is very useful while debugging a process. It executes the process one service at a time utilizing the Input Data in the left panel.

Reset: This clears the Output Data, any orphan connections between services etc.

Right Panel

To your right, you will find a panel with tabs at the bottom:

Document: You could view/modify the name and description of this process from here.

Properties: Properties of the selected node (or the Process if no service is selected) can be viewed here. Information like the EASYProcess EntityId are shown here. This screen will not be used, but will be useful/necessary for more complex uses of processes.


Developing a Process

Add a New Service - GetCurrentDateTime

On the left, in the Services tab, open up “Date and Time Services” and find the “GetCurrentDateTime” Service. Drag and drop this service into the canvas and connect the start node to the new Services as shown below.

Add a New Service - SendEmail

Now find the “SendEmail” service from “Email Services” workshop. Notice you can expand the SendEmail service also. This shows a pre-configured service based on the email profiles you have set up in the system (via Profile and Configuration). Drag and drop the "Default" profile (or whichever you've already configured) under the SendEmail service into the process canvas.

Drag it under the GetCurrentDateTime service and connect them as shown below. Also connect SendEmail service to Terminate.

Renaming Services

Selecting a service on canvas and hitting F2 allows you to rename it. This can also be accomplished by right-clicking and selecting “Rename”. Assigning meaningful names to services greatly improves the readability of a process.

The name of a service cannot contain spaces.

Service Canvas - SendEmail

Now double click on 'SendEmail' service to open up the Service Canvas for it. This is where we provide the parameters like To, Cc, and Bcc required to send out an email. Some of these parameters are pre filled based on the "Default" email profile you've selected.

Service Canvas

Take a moment to familiarize yourself with the Service Canvas. This is where you provide input parameters for the selected service.

Sections on this screen that were not covered in Process Canvas are briefed below.

To your left, you will find:

Configuration Settings: These are separated into different lists.

Configuration → Systems

These are Environment wide variables that can be set up for the system. It is useful for defining a variable used in the system that can easily be changed later. The values of these may change, but the structure of what variables can exist will likely not change.

Configuration → Applications

These are the same as the configuration variables for the system, except the structure can easily be changes as well as the values of those variables. If you were creating a process and were referencing a variable in lots of places, but that value could change in the future, you would add one of these configuration variables and reference it for an easy change in the future.

EPUser → Entity

This allows quick access to the current logged in user's EPUser entity properties.

 

The service designer section in the middle has two major parts:

Service Tree: The top half of the service designer lists parameters for the selected service that you need to specify so it could run properly. Some of the parameters may have default values filled in and some may not. Some parameters may be required. Some services could accept complex inputs and others could be very simple. Further documentation is available for specific services if it is not clear how it functions or what inputs are needed.

Value Box: The bottom half of the service is used to specify a value for the parameter selected above. Value can be typed in, or could be dragged and dropped from Configuration Settings on left or Recommended Values to the right.

To your right, you will find:

Recommended Values:

This area displays the projected output nodes from services preceding the selected one on the canvas. It also suggests other relevant values that may be applicable to the selected parameter. Sometimes, depending on the service, it may provide a list of accepted values for the parameter.

SendEmail Service

Back to our example, we will be configuring the SendEmail service in the Service Canvas we just reviewed. Select the “From” parameter from the Service Tree. Notice the default value from Configuration Settings in XSLT format. Although some parameters like SMTPServer, UserName, Password etc have been pre-filled for you; there are others like To, EmailSubject, EmailBody that you are required to enter.

 

Enter your email address for “To” parameter.

 

Now select the “EmailSubject” parameter.

For its value, let's use the output from a previous defined service. Remember there is a GetCurrentDateTime service prior to this email service? In the Recommended Values on the right, expand GetCurrentDateTime service to see the output returned by it. Pick a format you like and drag-drop it in the value box at the bottom.

Now highlight “EmailBody” parameter and type yourself a message and again drag-drop a date value next to your message.

An asterisk in the Service/Process canvas tab means that the work has not been saved. Save and Close. You will be directed back to Process Canvas.

Run Process in steps

Save canvas if necessary. Click on Reset. Make a habit of doing this every time as starting the process from the middle may not work since data available to each service is dependent on its preceding services.

Now “Run in Step” and notice the change in color:

Salmon signifies the service that would be executed next.  

Green denotes services that have been executed.

Run in Step until GetCurrentDateTime service turns green. Go to the Output Data tab on left and expand the output node to see the values returned by it.

Select the GetCurrentDateTime service again and Run in Step. See how the Output Data changes.

Continue with 'Run in step' until the SendEmail service turns green. See the output in Output Data section.

If you are connected to the internet, you should have received an email by now! Verify its Subject and Body.

Now go back into the SendEmailToMyself service and make more changes to it. Add another time field, perhaps.

Save. Close. Reset. Run in Step. Observe the changes in Output Data section.

Advanced Exercise: If you're familiar with HTML, you can bring in any HTML formatted text and use it in the “EmailBody” field. You can even drag and drop date fields into various parts of the HTML layout. Practice with cursor positioning for accurate placement. Create an email with HTML formatting. Get as creative as you can.


Powered by EASYProcess (© 2019 K-Rise Systems, Inc).