Messy Workflows

Have you ever come across a Workflow process that looks something like this:

There seems to be a popular misconception amongst some developers that Siebel Workflow can only have a single ‘End’ instance. Similarly, some developers believe that they can only have one instance of their ‘Error Logging’ Business Service step. The result is that every end point and every exception branch criss cross their way across the screen. A small but dedicated group of developers don’t even believe that steps and branches, especially condition branches, need to have meaningful or relevant names… The result can be a Workflow process that is very difficult to maintain and understand.

So remember: you can have as many ‘End’ or ‘Stop’ steps as you wish. You can invoke your Business Services from as many steps as you want – you don’t have to use a single step. Make good use of connector and step naming and use the ‘Text Forward’ and ‘Text Backwards’ shortcuts (CTRL + f and CTRL + b respectively) to move branch labels to a sensible place:

A well structured Workflow is much easier to understand and maintain.

 

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Siebel MSMQ Component Configuration

Today, we’ll set up the Siebel components necessary for inbound and outbound communication between Siebel and our new MSMQ queues.

There are a number of steps that we need to complete:

  1. Create a Message Queue profile – this will tell our ‘listener’ component where the inbound queue is. This will contain reference to the MSMQ host name and the name of the inbound queue
  2. Create a Data Handler profile – this will tell our ‘listener’ component what to do with a message when it receives one. In this example, we’ll configure the system to call a Workflow Process that will handle the message
  3. Create an EAI Component Definition – this will be our ‘listener’ component and will use the profile definitions above to monitor the queue and process any new messages that it finds

Create a Message Queue profile

  1. Navigate to Site Map > Administration – Server Configuration > Enterprises > Profile Configuration
  2. Create a new Connection profile:
  3. ProfileAliasTypeDescription
    OLIMQInboundOLIMQInboundMSMQSubsysInbound MQ Profile
  4. Configure using the following parameters:
  5. NameAliasValue
    MSMQ Physical Queue NameMsmqPhysicalQueueNameNAME OF YOUR HOST
    MSMQ Physical Queue Machine NameMsmqQueueMachineName$private\siebelinbound

Create a Data Handler profile:

  1. Navigate to Site Map > Administration – Server Configuration > Enterprises > Profile Configuration
  2. Create a new Data Handler profile:
  3. ProfileAliasTypeDescription
    OLIMQInboundDHOLIMQInboundEAITransportDataHandlingSubsysInbound MQ Data Handling Profile
  4. Configure using the following parameters:
NameAliasValue
Workflow Process to ExecuteDispatchWorkflowProcessOLI - MSMQ Inbound
Service to ExecuteDispatchServiceWorkflow Process Manager
Service Method to ExecuteDispatchMethodRunProcess

Create a new listener Component Definition

  1. Navigate to Site Map > Administration – Server Configuration > Enterprises > Component Definitions
  2. Create a new Component Definition:
  3. ComponentAliasComponent TypeComponent GroupDescription
    OLI - MSMQ InboundOLIMSMQInboundEnterprise Application Integration ReceiverEnterprise Application IntegrationComponent to process inbound MSMQ messages
  4. Configure using the following parameters:
  5. NameValue
    Receiver Connection SubsystemOLIMQInbound
    Receiver Data Handling SubsystOLIMQInboundDH
    Receiver Service NameEAI MSMQ Transport
    Receiver Method NameReceiveDispatch
    Default Tasks1
    Application Repository Filesiebel_sia.srf
  6. Click ‘Activate’ to enable the new definition

Restart your Siebel Server and you should be good to go – we’ll look at the Workflow Process that we identified in one of the steps above in the next article.

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

MSMQ – Private Queues

The next steps involved in setting up MSMQ with Siebel is to create a couple of private queues – one for inbound, one for outbound. We can then use Siebel EAI to put messages onto the outbound queue for collection by a third party application and use the MSMQ component and profile to pull messages off the inbound queue and process within Siebel. Setting up a queue is pure dead simple:

Windows 7

  1. From the desktop, right click ‘Computer’ and select ‘Manage’
  2. Expand ‘Services and Applications > Message Queueing’
  3. Right click ‘Private Queues’ and select ‘New > Private Queue’
  4. Enter ‘siebeloutbound’ and check the ‘Transactional’ box
  5. Click okay
  6. Do the same for ‘siebelinbound’

Windows Server 2008

  1. From the desktop, right click ‘Computer’ and select ‘Manage’
  2. Expand ‘Features > Message Queueing > Private Queues’
  3. Right click ‘Private Queues’ and select ‘New > Private Queue’
  4. Enter ‘siebeloutbound’ and check the ‘Transactional’ box
  5. Click okay
  6. Right click the new queue and select ‘Properties’ then ‘Security’
  7. Give the user that’s running the Siebel Server full privileges
  8. Do the same for ‘siebelinbound’

Your MSMQ configuration is now complete – next, we’ll take a look at setting up the Siebel Server components. Make sure you have the ‘Enterprise Application Integration’ Component Group enabled and assigned to a Siebel Server and I’ll see you next time!

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Working with Microsoft Message Queuing – MSMQ

I’ve been working a lot with MSQM recently, as part of an integration framework allowing communication between a Siebel 8.1 system and a number of external data providers. I thought I’d share my thoughts and experiences of working with MSMQ in a Siebel environment.

First up, installing MSMQ on a local machine is very easy and means you can get started right away on experimenting with the MQMS components and Business Services that Siebel provides. Here’s a very short guide on how to enable MSMQ on a Window 7 machine as well as on Windows 2008 Server:

Windows 7

  1. Click Start > Control Panel > Programs > Turn Windows features on and off
  2. Expand the ‘Microsoft Message Queue (MSMQ) Server’ option
  3. Check the ‘Microsoft Message Queue (MSMQ) Server Core’ option
  4. Click ‘OK’

Windows Server 2008

  1. Right click ‘Computer’ and select ‘Manage’
  2. Click ‘Features’ then ‘Add Features’
  3. Expand ‘Message Queuing’ and check ‘Message Queuing Services’
  4. Click ‘Next’ then ‘Install’

Over the next couple of weeks, I’ll be looking into the additional steps required to use MSMQ in your Siebel integration set up:

  • Enabling MSMQ components in Siebel
  • Creating private queues in MSMQ and corresponding Data Handler and Queue Handler profiles in Siebel
  • Using Siebel EAI create and drop XML messages on to a queue
  • Using SIebel EAI to pick up and process an XML message from a queue

More to follow shortly.

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)

Decision, decisions…

Another odd piece of configuration cropped up the other day:

I can see the developers thinking but the decision step is not limited to two branches. A far neater solution would be:

Siebel Workflow can be really powerful but Workflow Processes can become cumbersome and complex very quickly if developers don’t put some effort into streamlining.

VN:F [1.9.17_1161]
Rating: 0.0/10 (0 votes cast)