Parallel Process Model Entry

Hello,
First, using LabVIEW 2011 and TestStand 2010 SP1.
We have a custum GUI setup to use the sequential model.  At the heart of it, when we hit start, it accesses the Single Pass entry point and runs it with some modifications we've made.  Now, we'd like to have a setup that can test multiple DUTs and use the Parallel Process Model.  I'd like to have our GUI basically perform the same functions as the built in popup when running the TestUUTs entry point.  I've seen the PreUUT callback where you can disable the built in popup.  But what I can't seem to figure out is how to initiate a test socket test because it doesn't seem to line up with an entry point necessarily.
When they push the start button next to DUT 0, I want to start socket 0.  And if they hit the start button next to DUT 1, I want to start socket 1.  What entry point does the GUI use to make this happen?  Does the GUI need to start an entry point (IE Test UUTs) then send more information later to start a test?  if so, where does TestStand wait for that information within the parallel process model?
Thanks.

One way you could do it is as follows:
Still override PreUUT like in the example and add code which posts a UIMessage synchronously to the UI and then waits for a persocket notification (e.g. you can use the socket index as part of the name to make a per socket notification). Then in your UI, handle the UIMessageEvent on the ApplicationMgr. When you get the UIMessage from your PreUUT you will know it's ready and you can then update your UI to enable the start button, and when the user presses it, you can then Set() the notification to tell the testsocket thread to continue.
for example, in preuut:
Create Notification "MyUIStartNotification Socket 1"
Thread.PostUIMessage(UIMsg_UserMessageBase + 1, RunState.TestSockets.MyIndex, "MyUIStartNotification Socket 1", null, true)
Wait on Notification "MyUIStartNotification Socket 1"
In your UI
Handle UIMsg_UserMessageBase + 1
Enable Start Button
When start button pushed, Set Notification that corresponds to that socket. Pass any data needed with the notification, for example, create a container that contains a serialnumber property and a continuetesting property and pass that with the Set operation. In your PreUUT code get that data from the notification and update your parameters.
Not simple, but doable.
-Doug

Similar Messages

  • Parallel Process Model vs Asynchrono​us Sequence

    I've been studying the features of TestStand, and learning how to use it for about a month, so still very new to the environment (although I have been using Labview and Veristand pretty heavily for about a year).  I wanted to get a little clarification on the use of the different process models, because I think I may be misunderstanding some of the terminology.  
    Here is a little background of my project:
    I have a Labview VI that I created to interface with a remote target (emulator).  I previously used the VI to run tests manually, and would like to use it as a code module in TestStand so that I can run automated tests.  I intend to use the same VI repeatedly throughout the test sequence.  The functionality of the system is dependent on maintaining constant communication with the emulator, so I can't be opening and closing the code module repeatedly.  Once it is open, it has to stay open and continually communicate  (I'm hoping I will not have to create "wrapper" code modules to be the go-between with my current VI).  Breaking communication would cause most of the test results to become invalid.  For these reasons, I had chosen to call the VI as a code module in a sub sequence so that it can be run asynchronously, outside of the main sequence.
    Now, as I learn more about the details of TestStand, I am introduced to the concept of "Process Models".  I had initially been using the default Sequential Process model, but would like to know if I should switch to the Parallel Process model.  From what I can tell, the parallel process model is used when testing multiple UUTs, or running tests in parallel.  Is this correct?  To clarify my situation, I will only be testing 1 UUT, I will only be using 1 code module, and I will be running several test steps with that 1 code module.  I will need to continually pass data back and forth with the code module as it runs in parallel to the main sequence, and there will likely be several sub sequences called during the process, so that I can maintain modularity with my testing.
    So the question is, do I switch to the Parallel Process Model, or should I continue with the Sequential Process Model and the asynchronous sequence to run my code module in parallel?  Thanks much.
    GSinMN          
    Solved!
    Go to Solution.

    Hey GSinMN,
    Are you wanting to run your test steps in parallel with each other, or will that need to be a sequential process? The Parallel model is probably not the right choice for this application. The purpose of the Parallel model is to run the same test program on multiple UUT's at once, as you mentioned. Since you are just testing with a single UUT, the best approach would be to run the emulator communication module asynchronously, as you mentioned. You can easily pass data to this code module using a TestStand queue or a similar synchronization object.
    Daniel E.
    TestStand Product Support Engineer
    National Instruments

  • How do I automate parallel process model?

    Hello,
    I need to modify parallel process model so it runs in automated mode. The serial number will come from a serial bar code reader and the operator does not have to press OK on the operator screen. How can I do it?
    Thanks
    CT.

    Either you can write your own preUUT callback sequence or you can modify modelsupport2.dll which provides the standard serialnumber input panel. You can find the source code for modelsupport2.dll in <teststand directory>/Components\Models\TestStandModels.

  • Some Executions Are Not Terminated by Using Terminate All in Parallel Process Model

    Hi,
    This issue confued me recently, I'd like to use a parallel model process, and to terminate all execution at once.
    If there's some action steps in the sequence, it seemed all execution will be terminated.
    However, I put a wait function instead of action steps, there are some executions not terminated while I pressed the Terminate All button in the toolbar.
    Hope someone can give me some help. Thanks a lot.
    ps. the number of testsockets is set to 9 in my teststand.
    Solved!
    Go to Solution.
    Attachments:
    Terminate_Test.seq ‏7 KB

    Hi, Ting,
    Thanks for your help.
    I'd like to add some additional remarks,
    What I'd like to know is what cause the termination unstable in such a situation.
    The timing seemed to play an important role, but it is not my orignal concern.
    I used the testsocket of the last one to send the TerminateAll() command, but the choise is an accident...
    Originally I take the first testsocket to send TerminateAll() command, it works "well".
    I've notice the terminating action is always done in the reverse order of the testsocket(i,e, from the last testsocket to the first one),
    it seemed to make each testsocket go to cleanup and then not allow the testsocket continue.
    If we trace the executions more detailedly, it can be found the executions not terminated are actually received the command of the TerminateAll().
    They went to cleanup, and waited for the following "not continue" procedure, but somehow it missed so that they survived to repeat the execution.
    This consquence is a little like the termination is terminated...(not tongue twister...XD)
    If my postulation is true, it is safe to put the TerminateAll() command to the first testsocket so that the latter executions will be terminated before the first one terminated.
    If I put it to the latter testsocket or the last one, the termination will be terminated and some executions will revive.
    If I skip the wait function in the cleanup, the situation is not optimistic as my thought, the last testsocket will revive itself and back to the terminate command to send it again so that it makes me feel that it is better if I skipped the wait function.
    The above is my unconfirmed idea, maybe it totally wrong, if someone can correct my understanding I would be greatly appreciated.
    BTW, it is really special case, so we can take it easy, hope this will not add your loading and we can discuss freely as an amateur

  • Getdescrip​tionex not working in parallel proces model

    Hi All,
              In parallel process model, I would like to get the description of the called step. So I make use of the function Runstate.CallingStep.GetDescriptionEx(0) in the ProcessModelPostStep sequence. TestStand is getting hanged once the control reaches that particular step. I used the same function in the Sequential Process model I didn't face any problem over there.
    How shall I get the description of the client sequence Step? Is there any alternative way..?
    Thanks
    Arun Prasath E G

    Hi Arun,
    When you modify the ProcessModelPostStep (or any other ProcessModel... callback), it only affects the particular Process Model that you modify the callback on.
    Did you add the custom step to the callbacks of both the ParallelModel.seq and the SequentialModel.seq files? You might have just modified the Sequential Model and not the Parallel Model.
    Also, another option you might want to persue (based on what you are trying to accomplish) would be to simply use the Sequence File callback, SequenceFilePostStep. This will affect all the process models, but only for a single sequence file.
    Here is an article that discusses the differences:
    KnowledgeBase 2LT9BI6E: What is the Difference Between Using a "SequenceFile..." callback and a "Pro...
    Jervin Justin
    NI TestStand Product Manager

  • How to model a parallel process in BPML

    I've just started using BPML to model a process for CAF. In the process, there will be a block of steps that will have to be repeated for a list of employees, in parallel.
    I want to model the parallel process in a BPML diagram; I've had a look through some introductory texts, but cannot see a way that I can represent a parallel process. Also, the exact number and identity of the employees is unknown at run time.
    Can anybody help with this?

    Hello Arun,
    I am using Microsoft Visio with a BPMN stencil:
    http://www.workflow-research.de/Downloads/BPMN/Frapu-BPMN_Template(v1.1).zip
    I am using it in accordance with the SAP white paper "Guidelines for Specifying Composite Applications.pdf"
    Tony.

  • How do I make a process model sequence (not entry point) available to the test sequence?

    I have sequences that update process model data in the process model sequence that I would like to make public so that I can call this sequence from the test sequence.
    I am using TS2.
    I know that I could insert a sequence call and when specifying the module simply select the process model sequence file. Is there a more direct way of specifying the process model sequence file? Can I hide sequences in the process model so that they can't be called by the test sequence?Message Edited by Francey on 05-19-2005 06:38 AM

    When creating a custom step type, you can check "Designate an adapter", and use the Sequence Call adapter. If you would like to make the user unable to change this property, you can disable the "Can Specify Module" property on the "Disable Properties" page.
    Warning: If you ever want to change the parameters or the sequence call you are making for all steps, you must load ALL of the sequences that use this step, check the "apply changes in this dialog to all loaded steps of this type" box when you make the changes. This means that you should be very careful to make sure you have your step type designed properly before you begin using instances of it. The reason this is the case, is that the module is a property for each instance of the step, rather than the step type. We are simply giving a default value. By disabling the specify module dialog, we are preventing the user from being able to change from the default.
    Allen P
    NI

  • Performance in Parallel Processing

    Hi,
    My program model is as follows:
    I have a RFC FM(ZRFC_BACKGROUND) that will be called in BACKGROUND TASK and
    This FM in turn will call a child process(another RFC FM(ZRFC_CHILD)) in parallel for packages that are created in ZRFC_BACKGROUND
    We can use around 10 work processes that belongs to one server group, for parallel processing
    Facts regarding Packaging:
    One Package has 4 retry attempts due to locking issues.if there is an error in child process, the package is held back in FM : ZRFC_BACKGROUND and re triggered after sometime
    Locking issues are frequent.
    Data in DB tables on which I will put SELECT query:
    Header        Table LIKP (With approximately 1 Million Entries) (My select query will fetch around    800 entries)
    Item             Table LIPS (With approximately 6 Million Entries) (My select query will fetch around 10000 entries)
    Partner        Table VBPA (With around 3 Million Entries) (My select query will fetch around 3000 entries)
    Reference   Table LIPSRF (With around 74 million entries) (My select query will fetch around 10000 entries)
    My QUESTION is which of the following approach is better:
         To put LIKP select query in the first background FM ZRFC_BACKGROUND and pass it to ZRFC_CHILD and do remaining query in ZRFC_CHILD
         OR to put all the select query in ZRFC_BACKGROUND
    Please keep following things in mind :
    As we know it is not recommended to pass huge tables in RFC as it may increase the network load (In case of select query in ZRFC_BACKGROUND, network load will be more)
    But it is also not recommended to do DB select several times (In case of select query in ZRFC_CHILD, db read time will be more )
    On the basis of aove facts, please suggest which is the better approach.
    Regards
    Rocky

    Hi Rocky,
    Why do you have locking issues? In the worst case, parallel processing will not help at all or even slow down the process if there are too many locks. Ideally, parallel tasks should not collide with each other. Which tables do you update / insert?
    How big are your packages? How long do they take to process?
    From the database point of view, it will not make a big difference whether you select 1 x 10000 entries or 100 x 100 entries. On the other side, if your second approach leads to additional database accesses as compared to the first one, this of course could slow down the process.
    Best Regards, Randolf

  • Best way to modify Sequential Process Model for report generation.

    I am using the Sequential Process Model in my application and the TestStand Reference Manual, (Figure A-1), clearly shows the following processing sequence:
    ...<part removed>
        Call the Test Sequence
        Display the UUT results
        Generate a Report
        Log Result to a Database
    ...<more removed>
    I want to generate the report BEFORE displaying the results to the operator, or at a minimum, I want to generate the report in parallel with displaying the results to the operator.  Currently, the problem I have is that when the test is done I have some automated scripts that take the data file and do some statistical processing on it, but the way the Sequential Process Model is set up, the test might finish but until the operator acknowledges the PASS/FAIL results display, the resulting file is never created.  It could be overnight, over the weekend, or several days before an operator comes back and says, "Oh that last test finished, I guess I can press the OK button!", but until they do, I get no data.  So I want the report generated no matter what, and right after the test finishes.
    Any ideas as to how that might be best accomplished?
    Thanks a billion -  Ski (noob)

    Ray,
    Is that new in 4.2 that the engine won't call a callback with nothing in it?  I just did it and it seemed to work fine.  I'm using 4.1.1 though.
    Ski,
    Maybe there is a better solution for what you want.  Are you using the SequentialModel?  What version of TS do you use?  Why does the report have to be written before the pass/fail banner displays?  The pass/fail banner gets displayed in the PostUUT callback.  Like Ray said if you just put that in your client sequence you won't see the banners.  However, I'm assuming there is more to this than just that.  I'm assuming you want to see the report because of your external analyzer that is gathering the statistical data.  And then based on that data you want to allow the user other options.  Is this correct? 
    If so then I would override the PostUUT callback and then use a different callback (possible the ProcessCleanup callback) to displaly the banners.  You could even do this without modifying the process model (which I always try to avoid).  Just override both the PostUUT and ProcessCleanup callbacks.  And then put code in the ProcessCleanup to behave like you need.
    Or if you want you can modify the process model and create a new callback lower in the process model.  Then have that new one do the post report analysis.
    Just some thoughts.
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Parallel processing using ABAP objects

    Hello friends,
                        I had posted in the performance tuning forum , regarding a performance issue problem , I am reposting it as it involves OO concept .
    the link for the previous posting
    Link: [Independent processing of elements inside internal table;
    Here is the scenario,
    I have a internal table with 10 records(indepentent) , and i need to process them .The processing of one record doesnt have any influence on the another . When we go for loop , the performance issue is that , the 10 th record has to wait until the 9 records get processed even though there is no dependency on the output.
    Could some one tell a way out to improve the performance..
    If i am not clear with the question , i would explain it still clearer...
    A internal table has 5 numbers , say( 1,3,4,6,7)
    we are trying to find square of each number ,,,
    If it is a loop the finding of suare of 7 has to wait until 6 is getting completed and it is waste of time ...
    This is related to parallel processing , I have refered to parallel processing documents,But I want to do this conceptually ..
    I am not using conventional procedural paradigm but Object orientedness...I am having a method which is performing this action .What am I supposed to do in that regard.
    Comradely ,
    K.Sibi

    Hi,
    As examplified by Edward, there is no RFC/asynchronous support for Methods of ABAP Objects as such. You would indeed need to "wrap" your method or ABAP Object in a Function Module, that you can then call with the addition "STARTING NEW TASK". Optionally, you can define a Method that will process the results of the Function Module that is executed asynchronously, as demonstrated as well in Edward's program.
    You do need some additional code to avoid the situation where your program takes all the available resources on the Application Server. Theoretically, you cannot bring the server or system down, as there is a system profile parameter that determines the maximum number of asynchronous tasks that the system will allow. However, in a productive environment, it would be a good idea to limit the number of asynchronous tasks started from your program so that other programs can use some as well.
    Function Group SPBT contains a set of Function Modules to manage parallel processing. In particular, FM SPBT_INITIALIZE will "initialize" a Server Group and return the maximum number of Parallel Tasks, as well as the number of free ones at the time of the initialization. The other FM of interest is SPBT_GET_CURR_RESOURCE_INFO, that can be called after the Server Group has been initialized, whenever you want to "fork" a new asynchronous task. This FM will give you the number of free tasks available for Parallel Processing at the time of calling the Function Module.
    Below is a code snippet showing how these Function Modules could be used, so that your program always leaves a minimum of 2 tasks for Parallel Processing, that will be available for other programs in the system.
          IF md_parallel IS NOT INITIAL.
            IF md_parallel_init IS INITIAL.
    *----- Server Group not initialized yet => Initialize it, and get the number of tasks available
              CALL FUNCTION 'SPBT_INITIALIZE'
              EXPORTING
                GROUP_NAME                           = ' '
                IMPORTING
                  max_pbt_wps                          = ld_max_tasks
                  free_pbt_wps                         = ld_free_tasks
                EXCEPTIONS
                  invalid_group_name                   = 1
                  internal_error                       = 2
                  pbt_env_already_initialized          = 3
                  currently_no_resources_avail         = 4
                  no_pbt_resources_found               = 5
                  cant_init_different_pbt_groups       = 6
                  OTHERS                               = 7.
              md_parallel_init = 'X'.
            ELSE.
    *----- Server Group initialized => check how many free tasks are available in the Server Group
          for parallel processing
              CALL FUNCTION 'SPBT_GET_CURR_RESOURCE_INFO'
                IMPORTING
                  max_pbt_wps                 = ld_max_tasks
                  free_pbt_wps                = ld_free_tasks
                EXCEPTIONS
                  internal_error              = 1
                  pbt_env_not_initialized_yet = 2
                  OTHERS                      = 3.
            ENDIF.
            IF ld_free_tasks GE 2.
    *----- We have at leasr 2 remaining available tasks => reserve one
              ld_taskid = ld_taskid + 1.
            ENDIF.
        ENDIF.
    You may also need to program a WAIT statement, to wait until all asynchronous tasks "forked" from your program have completed their processing. Otherwise, you might find yourself in the situation where your main program has finished its processing, but some of the asynchronous tasks that it started are still running. If you do not need to report on the results of these asynchronous tasks, then that is not an issue. But, if you need to report on the success/failure of the processing performed by the asynchronous tasks, you would most likely report incomplete results in your program.
    In the example where you have 10 entries to process asynchronously in an internal table, if you do not WAIT until all asynchronous tasks have completed, your program might report success/failure for only 8 of the 10 entries, because your program has completed before the asynchronous tasks for entries 9 and 10 in your internal table.
    Given the complexity of Parallel Processing, you would only consider it in a customer program for situations where you have many (ie, thousands, if not tens of thousands) records to process, that the processing for each record tends to take a long time (like creating a Sales Order or Material via BAPI calls), and that you have a limited time window to process all of these records.
    Well, whatever your decision is, good luck.

  • Using ARIS process models as the foundation for Business Process Monitoring

    Hello,
    Do anyone know if you can use IDS Scheer ARIS process models and the integration between IDS Scheer ARIS and SAP Solution Manager as the starting point for end-to-end Business Process Monitoring (BPM) so that you get the process description/model automatically in Solution Manager BPM and just need to configure the monitoring (more or less that you monitor against the modelled process in ARIS)?
    Is there an API for SAP Solution Manager BPM so that non-SAP solutions/systems can be part of the end-to-end process monitoring?
    If not, how do you usually integrate non-SAP solutions that are part of an end-to-end process that you want to monitor into SAP Solution Manager BPM, or do you not use Solution Manager BPM for this?
    What is the roadmap for SAP around SAP Solution Manager BPM when it comes to non-SAP systems/applications/solutions and the new SAP NetWeaver BPM functionality?
    Regards,
    Markus Johansson

    Hello Markus,
    I just paste my answer form the other forum entry Re: Business process management strategy in SAP?
    in a nutshell BPM Netweaver is focussing on so called edge-processes (usually
    SOA-based and often workflow related). These edge-processes a thought to enhance exisitng core business processes and should provide the fast competitive edge versus competitors. Examples would be also xApps. For this Netweaver provides process modelling tools, where you can get exectuable code through the integration between CE and PI. The monitoring part for these processes is mainly targeting business end-users and business manager.
    Business Process Monitoring with Solution Manager focusses on core business processes which are realized with the "conventional", "old" SAP Architecture, e.g. Order-to-Cash or Procure-to-Pay. You get a combination of technical monitors (average response times of transactions, background job runtimes, monitors for IDOC or qRFC processing) and application related monitors (you get more than 200 pre-configured application monitors out-of-the-box like number of overdue customer orders or outbound deliveries or number of deliveries with goods issue posted but no invoice). The target group here is the support organization of the customer, from Basis-Support over application support on IT side to process owner on business department side.
    Overview presentations can be found under
    https://service.sap.com/bpm --> Media Library --> Customer Information -->
    "Business Process Monitoring - Part 1 & 2".
    Or look under https://www.sdn.sap.com/irj/sdn/nw-processmonitoring
    In the end BPM Netweaver and BPMon SolMan are complementary for different purposes and different target groups.
    Best Regards
    Volker

  • Parallel processing in the same work center

    Dear Guys,
    There is a routing sequence in which some 2-3 operations will occur parallely & those operations will belong to a same work center,How to map those operations in the routing,do i need to maintain parallel processing ,if so then how to go about

    Parallel Sequence
    Definition
    A linear sequence of operations that is parallel to a sequence of operations in the standard sequence.
    Use
    A parallel sequence enables you to process several operations at the same time. A parallel sequence is carried out at the same time as the corresponding section in the standard sequence. It is a special form of overlapping operations.
    Integration
    You can create parallel sequences in routings and rate routings. You cannot create them in reference operation sets or reference rate routings.             Creating a Parallel Sequence
    Call up the sequence overview.
    Choose Edit ® New entries.
    The Choose Sequence Category dialog box appears.
    Select Parallel sequence and press Continue.
    The Sequence Details screen is displayed.
    Enter the necessary data.
    Select Operation overview to create operations for the parallel sequence.
    so particularly in your case
    WORK CENTRE OF 10, 20, 30 ,40, 50  ASSUME TO THERE
    OPERATION OF THE SEQU : 1,2,3,4,5
    SUPPOSE 3,4 ARE PARALLEL SEQUN AND THE WORK CENTRE 30,40 ARE SAME TYPRE TO OPR SAME
    YOU MAY DESIGN AS
                                                           WC-30
                                                            (OPN3)
                     W.C 10          WC 20                                WC50
                      (OPN1)          (OPN2)                               (OPN5)     
                                                           WC 40
                                                           (OPN4)
    OR
                                                           WC-30
                                                            (OPN4)
                     W.C 10          WC 20                                WC50
                      (OPN1)          (OPN2)                               (OPN5)     
                                                           WC 40
                                                           (OPN3)

  • How to add process model results to the sequence file results?

    After my sequence file runs, I would like to add some additional results using the process model. I need to log my equipment list which is obtained by the process model. Alternatively, I could add a sub-sequence to the end of each of my sequence files for doing this, but that would create maintenance problems if I ever needed to change the way equipment is logged. Does anyone know a way to (1) append process model results to the sequence file results or (2) force each client sequence file to call a sub-sequence before returning to the process model.

    Mark -
    The report and database process model routines expect a single subsequence step result that invoked MainSequence. This result contains the results from the sequence call.
    In TestStand after the process model root sequence call to MainSequence is performed, the property Locals.ResultList[0] is the MainSequence result. The subproperty Locals.ResultList[0].TS.SequenceCall.ResultList contains the results from the steps in MainSequence.
    One option is to create a subsequence call in the process model that logs the equipment info in the results for its steps. The call to the subsequence should not be checked to record results.
    This subsequence would have a parameter called ResultList. The Result type does not exist in the Insert menu, so you can only create the parameter by copying the empty Locals.ResultList and pasting it in the parameters. Then change its type from By Value to By Reference.
    In the setup of the subsequence, add the following steps which do not record results. These steps rename the Locals.ResultList parameter to ResultListOrig, and then create a new Locals.ResultList alias property that really references Parameters.ResultList. This way any additions to the Locals.ResultList really append to the Parameter.ResultList.
    Setup
    Step: "Rename Locals.ResultList"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Set PropertyObject.Name = "ResultListORIG"
    Record Results: False
    Step: "Create Alias in Locals"
    StepType, Adapter: Actioin, Active-X
    Description:
    Action, Call PropertyObject.SetPropertyObject ("ResultList",
    0x201 ' Not Owning and Create, Parameters.ResultList)
    Record Results: False
    In the Main steps, you add your equipment info steps which record results.
    In the Cleanup steps you undo the steps performed in Setup.
    Cleanup
    Step: "Delete Alias in Locals"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Call PropertyObject.DeleteSubProperty ("ResultList",
    0x400 ' Refer to Alias)
    Record Results: False
    Step: "Rename Locals.ResultListORIG"
    StepType, Adapter: Action, Active-X
    Description:
    Action, Set PropertyObject.Name = "ResultList"
    Record Results: False
    I have attached a TS 2.0 version of SequentialModel.Seq that has a AppendResults subsequence in it and this is invoked after MainSequence in Single Pass entry point.
    Hope this helps...
    Scott Richardson (NI)
    Scott Richardson
    National Instruments
    Attachments:
    SequentialModel.Seq ‏174 KB

  • Problem in Dynamic Parallel processing using Blocks

    Hi All,
    My requirement is to have parallel approvals so I am trying to use the dynamic parallel processing through Blocks. I cant use Forks since the agents are being determined at runtime.
    I am using the ParForEach block. I am sending the &agents& as a multiline container in 'Parallel Processing' tab. I have user decision in the block. Right now i am hardcoding 2 agents in the 'agents' multiline element. It is working fine..but i am getting 2 instances of the block.I understand that is because I am sending &AGENTS& in the parallel processing tab.. I just need one instance of the block going to all the users in the &AGENTS& multiline element.
    Please let me  know how to achieve the same. I have already searched the forum but i couldnt find anything that suits my req.
    Pls help!
    Regards,
    Soumya

    Yes that's true when ever you try to use  ParForEach block then for each value entry in the table a separate workitem ID is created, i.e. a separate instance is created that paralle processing is not possible like that
    Instead of that what you can do is create a fork with 3 branches and define a End Condition such that until all 3 branches are executed .
    Before to the fork step determine all the agents and store them in a internal table , you can access the one internal table entry by using the index value check this [wiki|https://www.sdn.sap.com/irj/scn/wiki?path=/display/abap/accessingSingleEntryfromMulti-line+Element] to access single entry from a internal table.
    For each task in the fork assgin a agent
    So, as we have defined the condition that until all the three branches are executed you don't want to come out of the fork step so, it will wait until all the stpes are completed.

  • Parallel processing using BLOCK step..

    Hi,
    I have used parallel processing with a BLOCK step. I have put a multiline container element. In the BLOCK step, I have visibily to another container element generated because of the block step (multilne container_LINE). Thus the number of parallel processes are getting created as in the requirement, but the problem is the value in multilne container_LINE is not getting passed to the send mail step. I have checked the binding, everything is ok. Please
    Sukumar.

    Hi
    When I am sure that I am doing properly a binding but it doesn't work then:
    1. I activate workflow template definition (take a joke).
    2. I write the magic word
    /$sync
    in the command line, to refresh buffers.
    3. I delete the strange binding defined with drag&drop and define it one more time using old method from former binding editors in R/3 4.6c systems. I take container elements from the lists of possible entries or I write their name directly. I don't use drag&drop.
    Regards
    Mikolaj
    There are no problems, just "issues" and "improvement opportunities".

Maybe you are looking for

  • Ipod not being detected by Windows

    Hey! I've asked this question before, but no one has given me anything yet. Not being selfish or anything. But when I put in my ipod my computer tells me: One of the USB devices attached to this computer has malfunctioned, and Windows does not recogn

  • Virtualize IE6 including Internet Explorer Developer Toolbar

    I tried to follow this thread http://forums.novell.com/novell-prod...h-plugins.html to virtualize IE6 including Internet Explorer Developer Toolbar As a result IE6 contains Internet Explorer Developer Toolbar button but it's not work on Win 7 machine

  • Garageband saying songs I am trying to import aren't audio files

    Every time I try to move one of my songs over from iTunes into GarageBand on my Macbook Pro it says it is not an audio file. However all of my songs are mp3. I have searched for how to fix it all over Garageband and tried to find help online. Please

  • Processchain log picture with prcesses, load timings and number of records

    Hello Friends, I have seen a one shot screen with picture(don't know if output of a table or transaction) which shows the individual nodes of a process chain in log view with the individual load timings and the records loaded. Any idea how to get thi

  • HT2731 how do i retrieve original answers to my security questions?

    I loaded a $10 gift card and wanted to shop on Apps store but was asked to verify my ID which i did but could not still shop because i needed to verify my security questions and i tried as much as i could to remember the answers but failed. What do i