ASG
IBM
Zystems
Cressida
Icon
Netflexity
 
  MQSeries.net
Search  Search       Tech Exchange      Education      Certifications      Library      Info Center      SupportPacs      LinkedIn  Search  Search                                                                   FAQ  FAQ   Usergroups  Usergroups
 
Register  ::  Log in Log in to check your private messages
 
RSS Feed - WebSphere MQ Support RSS Feed - Message Broker Support

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » Looping in Holosofx --> MQWF How to?

Post new topic  Reply to topic
 Looping in Holosofx --> MQWF How to? « View previous topic :: View next topic » 
Author Message
CDougherty
PostPosted: Tue Mar 04, 2003 12:43 pm    Post subject: Looping in Holosofx --> MQWF How to? Reply with quote

Newbie

Joined: 30 Oct 2002
Posts: 5

Hi,

I'm looking to repeat a process until a claim is 'complete'. I'm trying to use Holosofx BPM to model this and it works fine there. The FDL that comes out of the tool for MQWF doesn't represent the loop.

Can someone give me the benefit of experience, the documentation says it is possible -- but the FDL sure looks plain to me.

Thanks,
--Charles
_________________
Thanks,
Charles D.
Back to top
View user's profile Send private message Send e-mail AIM Address
yaakovd
PostPosted: Tue Mar 04, 2003 1:03 pm    Post subject: Reply with quote

Partisan

Joined: 20 Jan 2003
Posts: 319
Location: Israel

Two ways to create loop on process:
1. using Block
Code:
STRUCTURE 'myDT'
  DESCRIPTION ""
  'condit': STRING;
END 'myDT'
/*
 *  PROGRAMs
 */
PROGRAM 'Dummy Unattended'
  STRUCTURES_FROM_ACTIVITY
  UNATTENDED
  WINNT EXE PATH_AND_FILENAME "dummy.bat"
    INHERIT ENVIRONMENT
    STYLE VISIBLE
    START FOREGROUND
END 'Dummy Unattended'

PROCESS 'Loop' ( 'myDT', 'myDT' )
  DO NOT PROMPT_AT_PROCESS_START
  WINDOW VIEW_REFERENCE_POINT XPOS -1 YPOS 612
  WINDOW SHOW ALL CONNECTORS
  WINDOW SHOW NO CONDITIONS
  SOURCE 1 XPOS -800 YPOS 1300
  SINK 1 XPOS -800 YPOS 500
  BLOCK 'Block' ( 'myDT', 'myDT' )
    START WHEN AT_LEAST_ONE CONNECTOR TRUE
    EXIT WHEN "condit=""EXIT""" XPOS -800 YPOS 750
    LAYOUT XPOS -800 YPOS 900
    NAME_POSITION XPOS -800 YPOS 825
    WINDOW VIEW_REFERENCE_POINT XPOS -1 YPOS 28
    WINDOW SHOW ALL CONNECTORS
    WINDOW SHOW NO CONDITIONS
    SOURCE 1 XPOS -700 YPOS 700
    SINK 1 XPOS -700 YPOS 0
    PROGRAM_ACTIVITY 'Program' ( 'myDT', 'myDT' )
      START MANUAL WHEN AT_LEAST_ONE CONNECTOR TRUE
      EXIT AUTOMATIC
      LAYOUT XPOS -700 YPOS 400
      NAME_POSITION XPOS -700 YPOS 325
      PRIORITY DEFINED_IN INPUT_CONTAINER
      PROGRAM 'Dummy Unattended'
      SYNCHRONIZATION NESTED
    END 'Program'
    DATA
      FROM SOURCE 1 TO 'Program'
      MAP '_STRUCT' TO '_STRUCT'
    DATA
      FROM 'Program' TO SINK 1
      MAP '_STRUCT' TO '_STRUCT'
  END 'Block'
  DATA
    FROM SOURCE 1 TO 'Block'
    MAP '_STRUCT' TO '_STRUCT'
  DATA
    FROM 'Block' TO SINK 1
    MAP '_STRUCT' TO '_STRUCT'
  DATA
    LOOP 'Block'
    MAP '_STRUCT' TO '_STRUCT'
    LAYOUT
      XPOS -900 YPOS 1100
      XPOS -700 YPOS 1100
END 'Loop'


2. Using SubProcess:

Code:
/*
 *  PROCESSes
 */
/*
 *  PROCESS Sub1
 */
PROCESS 'Sub1' ( 'myDT', 'myDT' )
  DO NOT PROMPT_AT_PROCESS_START
  WINDOW VIEW_REFERENCE_POINT XPOS -1 YPOS 27
  WINDOW SHOW ALL CONNECTORS
  WINDOW SHOW NO CONDITIONS
  SOURCE 1 XPOS -800 YPOS 700
  SINK 1 XPOS -800 YPOS 0
  PROGRAM_ACTIVITY 'Program' ( 'myDT', 'myDT' )
    START MANUAL WHEN AT_LEAST_ONE CONNECTOR TRUE
    EXIT AUTOMATIC
    LAYOUT XPOS -800 YPOS 400
    NAME_POSITION XPOS -800 YPOS 325
    PRIORITY DEFINED_IN INPUT_CONTAINER
    PROGRAM 'Dummy Unattended'
    SYNCHRONIZATION NESTED
  END 'Program'
  DATA
    FROM SOURCE 1 TO 'Program'
    MAP '_STRUCT' TO '_STRUCT'
  DATA
    FROM 'Program' TO SINK 1
    MAP '_STRUCT' TO '_STRUCT'
END 'Sub1'

/*
 *  PROCESS Loop1
 */
PROCESS 'Loop1' ( 'myDT', 'myDT' )
  DO NOT PROMPT_AT_PROCESS_START
  WINDOW VIEW_REFERENCE_POINT XPOS -1 YPOS 28
  WINDOW SHOW ALL CONNECTORS
  WINDOW SHOW NO CONDITIONS
  SOURCE 1 XPOS -700 YPOS 700
  SINK 1 XPOS -700 YPOS -100
  PROCESS_ACTIVITY 'Process' ( 'myDT', 'myDT' )
    START AUTOMATIC WHEN AT_LEAST_ONE CONNECTOR TRUE
    EXIT AUTOMATIC WHEN "condit=""EXIT""" XPOS -700 YPOS 150
    LAYOUT XPOS -700 YPOS 300
    NAME_POSITION XPOS -700 YPOS 225
    PRIORITY DEFINED_IN INPUT_CONTAINER
    PROCESS 'Sub1'
  END 'Process'
  DATA
    FROM SOURCE 1 TO 'Process'
    MAP '_STRUCT' TO '_STRUCT'
  DATA
    FROM 'Process' TO SINK 1
    MAP '_STRUCT' TO '_STRUCT'
  DATA
    LOOP 'Process'
    MAP '_STRUCT' TO '_STRUCT'
    LAYOUT
      XPOS -800 YPOS 500
      XPOS -600 YPOS 500
END 'Loop1'

_________________
Best regards.
Yaakov
SWG, IBM Commerce, Israel
Back to top
View user's profile Send private message Send e-mail
CDougherty
PostPosted: Thu Mar 06, 2003 5:16 am    Post subject: Reply with quote

Newbie

Joined: 30 Oct 2002
Posts: 5

Thanks, are you saying that looping must be coded in the FDL and that I shouldn't rely on the modeller?
_________________
Thanks,
Charles D.
Back to top
View user's profile Send private message Send e-mail AIM Address
jmac
PostPosted: Thu Mar 06, 2003 6:53 am    Post subject: Reply with quote

Jedi Knight

Joined: 27 Jun 2001
Posts: 3081
Location: EmeriCon, LLC

Charles:

NO, the loop can definitely be coded in BPM. What you need to do is to make the activities that you want to repeat into a block. Then you have the block fail its exit condition when you want the loop to repeat.
_________________
John McDonald
RETIRED
Back to top
View user's profile Send private message Send e-mail Visit poster's website AIM Address Yahoo Messenger MSN Messenger
Maria
PostPosted: Thu Mar 06, 2003 8:15 am    Post subject: Reply with quote

Newbie

Joined: 03 Mar 2003
Posts: 2

What John is referring to is specifying the block itself. To me, this wasn't very intuitive since in BPM you must first define the block as a "Process". Then open the "Process" and select "Export Type" of block on the Fields tab of the Process Info dialog. Once you go to the top process, you'll see that there is the letter "B" (instead of "P"!) in the process object.

So, you have Open the process which you'd like to define as block.

Everything else (exit conditions, etc) is similar to the way you define it in MQWf.

Please try - I hope it works.

Maria
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic  Reply to topic Page 1 of 1

MQSeries.net Forum Index » Workflow Engines - IBM MQ Workflow & Business Process Choreographer » Looping in Holosofx --> MQWF How to?
Jump to:  



You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum
Protected by Anti-Spam ACP
 
 


Theme by Dustin Baccetti
Powered by phpBB © 2001, 2002 phpBB Group

Copyright © MQSeries.net. All rights reserved.