Author |
Message
|
lzn9b8bpm |
Posted: Tue Jul 01, 2003 5:37 am Post subject: Defining Expressions in MQ Workflow |
|
|
 Newbie
Joined: 23 May 2003 Posts: 6 Location: Dallas, Texas
|
Is it possible to use a datamember of type Date to define an expression in workflow? For example, one of the datamember fields is CustomerOrderDate. I want to create an expression that will evaluation this datamember. So, CustomerOrderDate < 22days.
Is this possible? Thanks for the help.
Joe |
|
Back to top |
|
 |
Ratan |
Posted: Tue Jul 01, 2003 6:31 am Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
There is no direct expression in WF to do that, but you can always have an activity that evalutes that and routes your process flow. _________________ -Ratan |
|
Back to top |
|
 |
lzn9b8bpm |
Posted: Tue Jul 01, 2003 6:49 am Post subject: |
|
|
 Newbie
Joined: 23 May 2003 Posts: 6 Location: Dallas, Texas
|
You mean use an UPES to evaluate the expression right? What kind of overhead would this be on the process?
The requirement is that if the process is equal to 22days old then something has to been done, either a notification is sent or a process instance is created. The problem is having this expression evaluated continuously until either the HL process is complete or the process age equals 22days. The client is worried that having a UPES running throughout the process will cause too much overhead. Thanks for the help.
Joe |
|
Back to top |
|
 |
jmac |
Posted: Tue Jul 01, 2003 8:03 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
If I understand your problem correctly, you do not need a UPES, you simply need a "batch" program that runs nightly retrieves all instances created from the particular template, and then you simply test each one. This would be extremely low overhead, and could be run off peak.
But then again, perhaps I don't understand your problem _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
Ratan |
Posted: Tue Jul 01, 2003 8:05 am Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
I thought you wanted to evaluate the Date for a transition condition. For your needs John, solution is right.
Also you can use Workflow Notifications depending on your requirements. _________________ -Ratan |
|
Back to top |
|
 |
lzn9b8bpm |
Posted: Tue Jul 01, 2003 10:33 am Post subject: Expressions |
|
|
 Newbie
Joined: 23 May 2003 Posts: 6 Location: Dallas, Texas
|
Here are the requirements:
There are three time constraints: All based on a data member (date_received)
first time: date_received => date_received + 22days
second time: date_received => date_received + 55 days
third time: date_received => date_received + n days (n days is depended on the process, some have 5 days and others 10 days, but this value will not change for each process)
The client first tried dealing with this req using the Monitor and defining these as Business measures. This was a problem and did not provide the desired results.
The process should not go beyond any of these time frames. If the process ends before the time frames then it needs to finish. These times can be Notifications, they can be work items or even seperate Process instances. As long as the client gets the desired results it doesn't matter.
To give you an example, there are over 150 processes that will use the same notifications, all 150 can be running concurrently, with multiple instances running of each.
Thanks for all the advise so far...
Joe |
|
Back to top |
|
 |
jmac |
Posted: Tue Jul 01, 2003 10:40 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
Joe:
So then, unless there is something I am missing, you should be able to do exactly what I suggest. You just need to write a little code.
GOOD LUCK _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
Ratan |
Posted: Tue Jul 01, 2003 11:10 am Post subject: |
|
|
 Grand Master
Joined: 18 Jul 2002 Posts: 1245
|
John's solutions is the simplest from what I understand. You just have to write a simple program (sould not be more than a few lines), and check the Process Instances timestamp. _________________ -Ratan |
|
Back to top |
|
 |
lzn9b8bpm |
Posted: Tue Jul 01, 2003 11:46 am Post subject: |
|
|
 Newbie
Joined: 23 May 2003 Posts: 6 Location: Dallas, Texas
|
Okay,
I see where your going but don't I still need a UPES? The process timestamp needs to be evaluated against the Date_Received data member that can be 5 to 10 days old before it reaches workflow.
So if you have an activity in the begining of the process that fires a message off to a queue, then have a program that runs nightly that will read all the messages looking for past due dates. If a past due date is found, then the program can create a process instance depending on the type of past due event.
This is the way I understand it working unless there is a way get a data member from the process without using the UPES.
Just to let you know, I usually don't get involved in the programming side of the equation. I typically do the process re-engineering, analysis, design of the models and then work with the developers to hammer through the code.
I really appreciate the support.
Joe |
|
Back to top |
|
 |
jmac |
Posted: Tue Jul 01, 2003 11:57 am Post subject: |
|
|
 Jedi Knight
Joined: 27 Jun 2001 Posts: 3081 Location: EmeriCon, LLC
|
lzn9b8bpm wrote: |
This is the way I understand it working unless there is a way get a data member from the process without using the UPES. |
NAH, what you want to do is to write a program that:
Logs on
Accesses the ProcessInstances created from the appropriate template
Get the ProcessInstance::createTime()
Go into a loop and validate each instance against your criteria by accessing the appropriate data member from the Instance Input container and
do the appropriate action if this instance is delayed
do nothing if the instance is not delayed Logoff _________________ John McDonald
RETIRED |
|
Back to top |
|
 |
|