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.
Similar Messages
-
How to map expdp parallele process to output file
How to map expdp parallel process to its output file while running...
say i use expdp dumpfile=test_%U.dmp parallel=5 ..
Each parallele process writing to its related output file.. i want to know the mapping in run time...I'm not sure if this information is reported in the status command but it's worth a shot. You can get to the status command 2 ways:
if you are running a datapump job from a terminal window, then while it is running, type ctl-c and you will get the datapump prompt. Either IMPORT> or EXPORT>
IMPORT> status
If you type status, it will tell you a bunch of information about the job and then each process. It may have dumpfile information in there.
If you run it interactively, then you need to attach to the job. To do this, you need to know the job name. If you don't know, you can look at sys.dba_datapump_jobs if prived, or sys.user_datapump_jobs if not prived. You will see a job name and a schema name. Once you have that, you can:
expdp user/password attach=schema.job_name
This will bring you to the EXPORT>/iMPORT> prompt. Type status there.
Like I said, I'm not sure if file name information is specified, but it might be. If it is not there, then I don't know of any other way to get it.
Dean -
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.
-
How can I implement parallel processing feature in Oracle 9i?
I need to load (and transform) millions of data from Table1 to Table2. How can I speed the process using parallel processing. The server has 4 processors (running on Win2k Advanced server).
Can anyone guide me what are the exact steps required to enable parallel loading. I've already partitioned Table1 into 4 parts.insert /*+ PARALLEL(8) */ into table A select * from table B ;
or alter table A parallel 8 ;
or alter session enable parallel dml ;
Look for PARALLEL on http://tahiti.oracle.com for more infos.
Fred -
Process chain-parallel process
How do we do parallel processing in Process chain? Please answer.
This may mean 2 things.
1. If you load data to same target from same source, you can do this in parallel; that means you can split the data in multiple info packages and load.
2.Second is when you load multiple targets from multple sources.
To what extent you can run jobs in parallel depends on factors such as available memory, no of jobs, frequency of loads, and top it all, the business needs.
Ravi Thothadri -
CIF compare/reconcile -- Parallel process profile in R/3
Dear experts, I'm opening a complete new discussion with this topic...
does anybody have experience setting up parallel processing for CCR?
I did create 2 parallel profiles in customizing (1 for APO and 1 for R3) and I executed the report in background.
Most of the performance time that the report uses is spent on R3 side reading tables like VAPMA and VLPMA. In order to improve runtime performance I set up the 2 parallel process profiles as shown above (defiining server, number of processes and block size in customizing following SAP recommendations already).
In APO I am perfectly able to see how more than one process is being triggered and therefore parallelization works.
Nevertheless, I never see in R/3 the same thing happening. No matter how I define the parallel process profile for R/3, I always see one unique process in transations SM51 and SM66 on this system as shown below.
Is there a specific setting I need to maintain to achieve this process parallelization in R/3? Is it even possible to split processes in R3? and if not, what is the purpose of having Parallel Process profiles in R3?
Thanks for your support
SalvadorHi Rupesh,
indeed a good remark, but we already got this note in R3 upfront.
Regarding VBBE, we did ran CCR without it being selected. This has an equivalent effect to running report SDRQCR21 as it will also update index tables. It is recommented by SAP to schedule it on a regular basis and that's the direction we took.
These ones certainly improve performance significantly, but still we are wondering about parallel processing in R3.
If there is a profile for parallel process available in CCR, why are we not able to see parallel processes in R3 when executing the report? This should also help in improving even more performance if we could get it working properly...
Further information...
Is maybe someone aware of the following points?
- RFC call is using DIA processes. Are these suitable for parallellization in any case?
- what are the profile parameters that need to be set up (RZ10) and is there a direct link with parallel processing? For example, I notice that rdisp/rfc_pool_size is equal to zero in my R3 system but it is 10% in APO.
- are there other parameters like rdisp/rfc* that can really block me from getting parallel processes?
Thanks for your interventions
Salvador
Message was edited by: Salvador García -
Parallel processing using arfc.
Hi experts,
Does any have a presntation on how to proceed with parallel processing with ARFC?
Thanks in Advance.look at the piece of code ....
FORM start_onhand_extract_task .
DO.
IF g_num_running < g_avail_wps.
EXIT.
ENDIF.
WAIT UP TO 5 SECONDS.
ENDDO.
Creating the file name with task number
ADD 1 TO g_task_num.
CONCATENATE p_file1 g_task_num INTO g_task_name.
CONCATENATE g_filename g_task_name INTO task_tab-filename1.
CONDENSE task_tab-filename1 NO-GAPS.
task_tab-task_name = g_task_name.
APPEND task_tab.
CLEAR g_msg_text.
CALL FUNCTION 'ZMIO_GET_MARD_DATA'
STARTING NEW TASK g_task_name
DESTINATION IN GROUP p_grp
PERFORMING decrease_wp ON END OF TASK
EXPORTING
i_filename = task_tab-filename1
TABLES
i_matnr = r_matnr
i_werks = r_werks.
CASE sy-subrc.
WHEN 0.
ADD 1 TO g_num_running.
g_num_submitted = g_num_submitted + 1.
WHEN 1.
error_rec-task_name = g_task_name.
error_rec-filename1 = task_tab-filename1.
APPEND error_rec.
APPEND it_exp_t001w TO it_err_t001w.
ADD 1 TO g_num_err.
g_hold_num = g_num_running.
WAIT UNTIL g_num_running < g_hold_num OR
g_hold_num = 0
UP TO 5 SECONDS.
WHEN OTHERS.
error_rec-task_name = g_task_name.
error_rec-filename1 = task_tab-filename1..
error_rec-msg_text = g_msg_text.
APPEND error_rec.
APPEND it_exp_t001w TO it_err_t001w.
ADD 1 TO g_num_err.
ENDCASE.
ENDFORM. " start_onhand_extract_task -
Parallel processing for information broadcasting
Hi SDN,
How can we control parallel processing for information broadcasting in BI background management?
Early answer is appreciated.
Thanks in Advance.
NamrataHi,
agree with the above postings
you can find more details regarding this in below given link
http://help.sap.com/saphelp_nw70/helpdata/en/ef/4c0b40c6c01961e10000000a155106/frameset.htm
hope this helps
Regards,
rik -
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 -
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 -
How to do parallel processing with dynamic internal table
Hi All,
I need to implement parallel processing that involves dynamically created internal tables. I tried doing so using RFC function modules (using starting new task and other such methods) but didn't get success this requires RFC enabled function modules and at the same time RFC enabled function modules do not allow generic data type (STANDARD TABLE) which is needed for passing dynamic internal tables. My exact requirement is as follows:
1. I've large chunk of data in two internal tables, one of them is formed dynamically and hence it's structure is not known at the time of coding.
2. This data has to be processed together to generate another internal table, whose structure is pre-defined. But this data processing is taking very long time as the number of records are close to a million.
3. I need to divide the dynamic internal table into (say) 1000 records each and pass to a function module and submit it to run in another task. Many such tasks will be executed in parallel.
4. The function module running in parallel can insert the processed data into a database table and the main program can access it from there.
Unfortunately, due to the limitation of not allowing generic data types in RFC, I'm unable to do this. Does anyone has any idea how to implement parallel processing using dynamic internal tables in these type of conditions.
Any help will be highly appreciated.
Thanks and regards,
Ashintry the below code...
DATA: w_subrc TYPE sy-subrc.
DATA: w_infty(5) TYPE c.
data: w_string type string.
FIELD-SYMBOLS: <f1> TYPE table.
FIELD-SYMBOLS: <f1_wa> TYPE ANY.
DATA: ref_tab TYPE REF TO data.
CONCATENATE 'P' infty INTO w_infty.
CREATE DATA ref_tab TYPE STANDARD TABLE OF (w_infty).
ASSIGN ref_tab->* TO <f1>.
* Create dynamic work area
CREATE DATA ref_tab TYPE (w_infty).
ASSIGN ref_tab->* TO <f1_wa>.
IF begda IS INITIAL.
begda = '18000101'.
ENDIF.
IF endda IS INITIAL.
endda = '99991231'.
ENDIF.
CALL FUNCTION 'HR_READ_INFOTYPE'
EXPORTING
pernr = pernr
infty = infty
begda = '18000101'
endda = '99991231'
IMPORTING
subrc = w_subrc
TABLES
infty_tab = <f1>
EXCEPTIONS
infty_not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
subrc = w_subrc.
ELSE.
ENDIF. -
How to achieve parallel processing in a single request?
Hi all,
I have a method in a Session EJB that will perform some business logic before it returns an answer to the client. The logic it will perform is to collect data from the applications database and two external systems, before sending all data to a third external system to get a response and send it back to the client. Each external system is quite slow so I would like to do all the collecting of data concurrent, parallel processing. How should I handle this? I'm not allowed to create my own threads in EJB's. Can I use MDB in some way? To the calling client this should be a synchronous call...
Greatfull for any suggestions
Cheers
Anders =)Usually, the request is received by a component located in the web container, such as by an HTTP request (including Web Services). This component is able to start threads to allow parallel processing. Now, if for some reason the request arrives directly at EJB level and that you cannot move its receiver to web component, I think JMS is not a viable solution because you will switch to asynchronous processing and you have no way to make your EJB wait for the responses while preserving the client request (waiting implies programmatic life cycle management, which is forbidden in EJB container). Maybe a resource adapter (JCA) can bring a solution. A resource adapter acts as a datasource (a datasource is a specialization of a resource adapter) and thus it is a logical way to implement an adapter to an external, eventually non-J2EE, resource, as the name implies :) But I don't have enough knowledge in JCA to be sure of this.
Hope it helps.
Bruno Collet
http://www.practicalsoftwarearchitect.com -
How to define "leading" random number in Infoset fpr parallel processing
Hello,
in Bankanalyzer we use an Infoset which consists of a selection across 4 ODS tables to gather data.
No matter which PACKNO fields we check or uncheck in the infoset definition screen (TA RSISET), the parallel frameworks always selects the same PACKNO field from one ODS table.
Unfortunately, the table that is selected by the framework is not suitable, because our
"leading" ODS table which holds most of our selection criteria is another one.
How to "convince" the parallel framework to select our leading table for the specification
of the PACKNO in addition (this would be times 20 faster due to better select options).
We even tried to assign "alternate characteristics" to the packnos we do not liek to use,
but it seems that note 999101 just fixes this for non-system-fields.
But for the random number a diffrent form routine is used in /BA1/LF3_OBJ_INDEX_READF01
fill_range_random instead of fill_range.
Has anyone managed to assign the PACKNO of his choice to the infoset selection?
How?
Thanks in advance
VolkerWell, it is a bit more complicated
ODS one, that the parallel framework selects for being the one to deliver the PACKNO
is about equal in size (~120GB each) to ODS two which has two significant field which cuts down the
amount of data to be retreived.
Currently we execute the generated SQL in the best possible manner (by faking some stats )
The problem is, that I'd like to have a Statement that has the PACKNO in the very same table.
PACKNO is a generated random number esp. to be used for parallel processing.
The job starts about 100 slaves
Each slave gets a packet to be processed from the framework, which is internaly represented
by a BETWEEN clause on this PACKNO. This is joined against ODS2 and then the selective fields
can be compared resultin in 90% of the already fetched rowes can be discarded.
Basicly it goes like
select ...
from
ods1 T_00,
ods2 T_01,
ods3 T_02,
ods4 T_03
where
... some key equivalence join-conditions ...
AND T_00.PACKNO BETWEEN '000000' and '000050' -- very selective on T_00
AND T_01.TYPE = '202' -- selective Value 10% on second table
I'd trying to change this to
AND T_01.PACKNO BETWEEN '000000' and '000050'
AND T_01.TYPE = '202' -- selective Value 10%
so I can use a combined Index on T_01 (TYPE;PACKNO)
This would be times 10 more selective on the driving table and due to the fact,
that T_00 would be joined for just the rows I need, about a calculated time 20-30 faster.
It really boosts when I do this in sqlplus
Hope this clearyfies a bit.
Problem is, that I can not change the code either for doing the
build of the packets or the one that executes the application.
I need to change the Inofset, so that the framework decides to build
proper SQL with T_01.PACKNO instead of T_00.PACKNO.
Thanks a lot
Volker -
How to enable an monitor parallel processing in Oracle
Hi All,
I have 2 short questions:
1. When we want parallel processing, we can either use a parallel hint in the query, or alter a table to be parrallel. My question is what is the difference in the following 2 syntax:
a. ALTER TABLE myTable PARALLEL (DEGREE 3);
b. ALTER TABLE myTable PARALLEL 3;
Does the "DEGREE" keywor make any difference? or they both are same statements?
2. When we enable parallel processing, how can we monitor oracle processes, to confirm that a certain table is being actually processed by multiple threads of a singe user process?
An early response would be highly appreciated. Thanks.1)The parallel clause lets you change the default degree of parallelism for queries and DML on the table.
2) PARALLEL DEGREE specifies the number of query server processes that can scan the table in parallel. Either specify a positive integer or DEFAULT which signifies to use the initialization parameter
check further http://mywebsys.com/oracle/syntax/view_syntax.php?id=23
Thanks -
How to get BI background jobs to utilize parallel processing
Each step in our BI process chains creates exactly 1 active batch job (SM37) with in turn utilizes only 1 background process (SM50).
How do we get the active BI batch job to use more than 1 background process similar to parallel processing (RZ20) in an ERP system?Hi there,
Have you checked the number of background and parallel processes. Take a look in SAP Note 621400 - Number of required BTC processes for process chains. This may be helpful ...
Minimum (with this setting, the chain runs more or less serially):
Number of parallel SubChains at the widest part of the chains + 1.
Recommended:
Number of parallel processes at the widest part of the chain + 1.
Optimal:
Number of parallel processes at the widest part of the chain + number of
parallel SubChains at the widest part + 1.
The optimal settings just avoids a delay if several SubChains are
started in parallel at the same time. In case of such a Process Chain
implementation and using the recommended number of background processes
there can be a short delay at the start of each SubChain (depends on the
frequency of the background scheduler, in general ~1 minute only).
Attention: Note that a higher degree of parallel processing and
therefore more batch processes only make sense if the system has
sufficient hardware capacity.
I hope this helps or it may lead you to further checks to make .
Cheers,
Karen
Maybe you are looking for
-
I have an Retina display MacBook Pro with HMDI out port. I also have an HDMI to Component cable with Audio Plugs. How can I get HDMI out to work with this cable when plugged into the MacBook Pro and connected to the TVs Component and Audio in ports.
-
How can I create a mobile account in Mountain Lion?
Dear All, I have a problem creating a mobile account while joining an Active Directory domain controller (DC). ** Case one: While joining the DC, if these options are selected (Create mobile account at login) & (Force local home directory on startup
-
What is iConcertCal and why is it asking me the same question?
Within the last month, every time I start up iTunes I get a window with the following at the top - "iConcertCal could not locate the file 'iTunes Music Library.xml', please locate it now." The first three times I located the file for it but it keeps
-
Problem transfering Music to N73
Hi, I have bought the N73 phone three days back. I am trying to transfer music to the phone through the Music Manager program via the cable. However, i get an error message each time i try to transfer an MP3 type files. I don't know why !!! The error
-
Bridge or extend network using Apple TC & Extreme?
I have the following setup: Uverse router (wifi off) -> Apple Time Capsule (creating wireless) -> Imac through ethernet From the TC, there is a powerline adapter, which on the other end connects to a 4 port hub and other ethernet devices. Accessing a