[Contents] [Prev] [Next] [Index] [Report an Error] [No Frames]


Fred Workflow

This example demonstrates one of the uses of the NOK output of a component. The goal is to produce a workflow to provision a high-speed Internet access service (such as DSL or cable modem) to a customer.

The workflow starts with two concurrent paths (Figure 58). The left path requests the installation of the customer premises equipment (CPE), such as a cable or DSL modem. It specifies the customer's home address for the installation and expects a MAC address to be returned, along with the option of IP address allocation. If the IPAddressingMode parameter is zero, a static IP address should be allocated. Otherwise, a dynamic method should be employed.

The right path requests the central office (CO) to do the wiring for the customer located at the specified address. It expects the ATM virtual circuit identifier (VCI) and the virtual path identifier (VPI) assigned for that customer to be returned in the response e-mail.

Both paths are joined by an AND, meaning that both must complete successfully. The Receive Email work item simply waits for the appropriate e-mail, and therefore always completes successfully.

The next component in the path, Token Value Checker, checks the e-mail content. It tests whether the IPAddressingMode parameter is zero, to determine whether an IP address should be allocated statically. If the parameter is zero, a proceed token is sent to the OK output, which leads to the left path. If the parameter is not zero, a proceed token is sent to the NOK output, which leads directly to the OR work item that joins the two paths. In the left path, a request for allocation of an IP address is made. The workflow uses an OR work item because the two paths are mutually exclusive, and therefore one of the paths must produce a not proceed token. The workflow is finished when the End State work item is reached.

In this example, the OK/NOK distinction was used to make a decision on the nature of the service. You can also use the distinction to handle errors if a work item fails in the same way. You can use a Token Value Checker work item to check for the existence of a parameter in the token or a special value, and then join the paths with an OR work item.


Figure 58: FredWorkflow to Incorporate Decisions in the Workflow

Table 71 describes the configuration for the Fredworkflow example.




Table 71: Configuration of Fredworkflow Components 
Work Item
Property
Contents

CPEInst

Subject

Please install CPE

BodyText

Please install CPE at %Address% and send back the MAC address. Also specify if the addressing mode will be static or dynamic, by assigning 0 or 1, respectively.

Input Parameters

Address

Output Parameters

MACAdd

IPAddressingMode

ReceiveCPE

Input Criteria

Address

Output Parameters

MACAdd

IPAddressingMode

COInst

Subject

Please wire me!!!

BodyText

Plug the wires for the person at this address: %Address%.

Input Parameters

Address

Output Parameters

VPI

VCI

ReceiveCO

Input Criteria

Address

Output Parameters

VPI

VCI

StaticOrDynamic

TokenAttributeValuePair

IPAddressingMode=0

StaticAddAlloc

Subject

IP Address allocate

BodyText

Please allocate a static IP address for VPI=%VPI% and VCI=%VCI%.

InputParameters

VPI

VCI

OutputParameters

RadiusFramedIP

ReceiveIP

InputCriteria

VPI

VCI

OutputParameters

RadiusFramedIP

The other properties are not shown because they depend on your environment.

NOTE: The token parameters—except for Address and RadiusFramedIP—are not present in the translation table and exist only inside the workflow. The important point is that the components must receive the expected information. For example, if the StaticAddAlloc component receives a token without the VPI and VCI parameters defined, the Send Email work item will not be able to send e-mail, because it will not be able to create the message. Because this is an unexpected result, it will cancel itself, causing the whole workflow to be cancelled.


The parameter list for this workflow contains only one input parameter, Address, and one output parameter, RadiusFramedIP (which stores the assigned IP address).


[Contents] [Prev] [Next] [Index] [Report an Error] [No Frames]