Synchronous and asynchronous processes communication in WLI 8.1

Hi all,
I'm using workshop with WL 8.1 to design by business processes.
I have created one process which is invoked synchronously via a client request
with return.
Than I call this process in web flow. The process publishes message in the MB,
which creates
another process asynchronously. My question is how can I communicate
from the first process with the second one ? e.g. In some cases I need to wait
when the second
process riches some state, or e.g. how to check if the everything’s went ok in
the second one ?
I tried to manage it by another MB channel, but when I add the proper controls
to first process
it becomes asynchronous and I can not use such process in the flow (there is no
way to handle
callback methods in the flow) and I need to have return somehow.
Do you have any suggestion how to design (or redesign) my workflow ?
Best regards
Jan

"Jan Mrzyglod" <[email protected]> wrote in message
news:[email protected]...
>
Hi all,
I'm using workshop with WL 8.1 to design by business processes.
I have created one process which is invoked synchronously via a clientrequest
with return.That's fine so far.
Than I call this process in web flow. The process publishes message in theMB,
which creates
another process asynchronously. My question is how can I communicate
from the first process with the second one ? e.g. In some cases I need towait
when the second
process riches some state, or e.g. how to check if the everything's wentok in
the second one ?Communicating between JPD processes is preferably done with Process Controls
(Add Control / Integration Control / Process). A Process control needs a jcx
file belonging to a process. To generate a Process Control jcx file to a
process, click right on the JPD file in the project tree, and select
Generate Process Control.
If the page-flow calling on the first process also has to wait for the
second process to reach some state, then you need to have
synchronous invocation between the first and the second process.
That can be done only with adding a message path to the start node of the
second process (the circle), and putting a Client Request with Return in it.
Everything in the Client Request with Return node is invoked synchronously,
meaning that the first process will wait for the return, and gets the return
value, and receives any exceptions thrown and everything takes place in the
same transaction. However this way you have no modelling information on
where the process flow currently is, so you have to keep track of that in a
variable in the JPD, if you need to know that.
You also have to put at least one stateful (waiting) node to the normal
process flow, so that the process does not terminate right after starting
(Workshop warns about this as well).
Now regenerate the process control jcx for the second process, and you will
see a method on it belonging to the message path Client Request with Return.
This can be invoked synchronously on the process control in the first
process.
I presume however, that you are aware of the fact, that the HTTP request can
time out, and in that case I am not sure, whether additional steps in the
page flow are evaluated or not. Possibly not. Typically I would expect, that
forwards and includes do not.
Regards,
Robert Varga

Similar Messages

  • Re : what is diffrent Between  Synchronies and   Asynchronies  process

    Hi ,
          what is diffrent between Synchronies and   Asynchronies  process in  session Method and call Transcation method  pls give one Example...
    Thanks
    Arief .S

    Synchronus data processing is that in which the program calling the update task waits for the update work process to finish the update before it continues processing.
    In Asynchronus update the callng program does not wait for update work process to finish the update and continues as normal.
    A BDC done with sessions is always synchronus.
    A BDC with call transaction is by default asynchronus
    unless you define it explicitly as
    call transaction 'XXXX' ...... update 'S'.
    ( If you donot define update option it is defaulted to "A" ).
    The update method is of importance when one transaction locks data which may be required by a subsequent transaction . The subsequent transaction will fail if data is locked from previous one. An example would be you are creating sales order for same material in succession ( with asynchronus update ). Quite likely that some of transactions would fail due to material locked.
    For large volume of data Call Transaction will be faster but you have no restart capability here. Suppose from 1000 transactions 100 fails . You will have to run the BDC program again exclusing the ones which wrere successful. However with session method you have the option to process the error transactions again in SM35 . So if you are sure that errors will not occur use call transaction else use session method.

  • Call mode types: Synchronous and Asynchronous in ABAP process for a chain

    Hello,
    I have a doubt about the call mode type for a abap type process in a process chain. It has two options:
    1.Synchronous
    2.Asynchronous
    Would like to know the diferences between these two; advantages and disadvantages of using them.
    Thanks in advance for your help...
    Regards,
    Anuj

    hi anuj,
    pls refer the following link.
    http://help.sap.com/saphelp_nw70ehp1/helpdata/en/c5/eed63b54e56276e10000000a11402f/content.htm
    hope it will help u to understand well the synchronous and asynchronous process chains call mode.
    thanks

  • User exits-- also ---synchronous and asynchronous struc..

    dear all
    pls. let me know the basics of user exits. i have gone thro williams iam unable to follow. does it require abap knowledge. i sincerely request one and all (experts) to let me know about user exits. it seems very imp as per interviews.
    also what is synchronous and asynchronous structures whats the difference. can anybody share knowledge on this.
    thanks in advance
    regards

    Dear Sekhar,
    Please find the info regarding User-Exit's in the following links:
    http://help.sap.com/saphelp_nw04/helpdata/en/bf/ec07a25db911d295ae0000e82de14a/frameset.htm
    http://www.sap-img.com/abap/a-short-tutorial-on-user-exits.htm
    Re: doubt on user exits
    user exits and Badis
    User exits is the enhancements provided by SAP
    You can use them in transactions. Each transaction will have user exits.
    If you want to use your own requirements by making your coding while the transaction is run you can use user exits.
    For example if you want to run the MRP in MD02 specific to MRP controller you can user exit.
    Please also refer the document below.
    USEREXIT
    Userxits allow us to add our own functionality to SAP standard program
    without modifying it . These are implemented in the form of subroutines and hence are also known as FORM EXITs. The userexits are generally collected in includes and attached to the standard program by the SAP.
    All Userexits start with the word USEREXIT_...
    FORM USEREXIT_..
    z..
    ENDFORM.
    The problem lies in finding the correct userexit and how to find it if one exists for the purpose. Once the correct userexit is found the necessary customer code is inserted in the customer include starting with the z.. in the form routine.
    e.g. USEREXIT_SAVE_DOCUMENT_PREPARE
    Certain application like SD still provide this form of enhancement using userexit but this practice is no longer being followed for newer extensions instead they are using EXITs which come bundeled in enhancement packages . Neverthiless existing USEREXITS will be supported by SAP an all the newer versions of SAP.
    HOW TO FIND USEREXITS
    Userexits can be found in number of ways:
    1) To find userexits in SD module , goto object navigator(SE80) and select
    development class from the list and enter VMOD in it. All of the userexits in SD are contained in the development class VMOD. Press enter and you will find all the includes which contain userexits in SD for different functions like PRICING, ORDER PROCESSING etc. Select the userexit according to the requirement and read the comment inserted in it and start coding .
    Some examples of userexits in SD(SALES & DISTRIBUTION ) are:
    1)ADDING OF NEW FIELDS IN PRICING
    In Pricing in SD the fields on the basis of which pricing is done are derived from the FIELD CATALOG which is a structure KOMG .This structure is used to transfer transaction data to the pricing procedure in SD and is also known as communication structure.This structure KOMG consists of two tables KOMK for Header related fields and KOMP for item related fields. The fields which are not in either of the two tables KOMK and KOMP cannot be used in pricing .Sometimes a need arises when the pricing is to be based on some other criteria which is not present in the form of fields in either of the two tables. This problem can be solved by using USEREXITS which are provided for pricing in SD. Pricing takes place both when the SALES ORDER ( Transaction VA01) is created as well as when INVOICING ( Transaction VF01) is done.Hence SAP provides 2 userexits ,one for sales order processing which is
    USEREXIT_PRICING_PREPARE_TKOMP or
    USEREXIT_PRICING_PREPARE_TKOMK
    Depending upon which table (KOMK or KOMP) the new fields were inserted we use either of the above two userexits.These userexits are found in include MV45AFZZ of the standard SAP sales order creation program SAPMV45A.
    In the case of userexit which will be called when invoicing is done ,these
    are provided in the include RY60AFZZ which is in the standard SAP program SAPMV45A. The name of the userexits are same. i.e
    USEREXIT_PRICING_PREPARE_TKOMP or
    USEREXIT_PRICING_PREPARE_TKOMK
    These userexits are used for passing the data from the communication structure to the pricing procedure, for this we have to fill the newely created field in the communication structure KOMG for this we fill the code in the above userexit using the MOVE statement after the data that has to be passed is taken from the database table by using the SELECT statement. The actual structure which is visible in these userexits and which is to be filled for that particular field is TKOMP or TKOMK.
    Before the coding for these userexits is done ,it is necessary to create a new field in either of the two tables KOMK or KOMP .For this purpose includes are provided in each of them .
    To create the field in header data(KOMK) the include provided is KOMKAZ
    and to create the field in item data(KOMP) the include provided is KOMPAZ.
    One possible example for the need of creating new fields can be e.g. Frieght to be based upon transportation zone ,for this no field is available in field catalog and hence it can be created in KOMK and then above userexits can be used to fill the transportation data to it.
    2)The other method of finding userexit is to find the word USEREXIT in the
    associated program of the transaction for which we want to determine userexit using SE38.
    3)The other method of finding userexits is to find the include in case of SD/MM applications where the userexits are located ,this can be found in the SAP reference IMG generally in the subfolder under SYSTEM MODIFICATION.
    Some other examples of userexits in SD are:
    USEREXIT_NUMBER_RANGE
    This userexit is used to assign a different internal document number to the
    sales order(VA01) when it is created depending on some criteria like a different SALES ORGANIZAION(VKORG) .
    USEREXIT_SAVE_DOCUMENT_PREPARE
    This userexit is used to insert the ABAP code which will be called when
    the document (sales order VA01) is just about to be saved.This userexit is used generally for custom checks on different fields , to display some information before the order will be saved or for making changes to certain fields before the sales order will be saved.
    Exits & Enhancements
    There are mainly six types of EXITs in sap which have been collected in the form of enhancement packages and attached to standard code in SAP.
    These are different from USEREXIT in the way that they are implemented
    in the form of FUNCTIONs while in USEREXITS we use form routines for their implementation. These are also sometimes known as function exits .
    These start from the word EXIT_ followed by the program name and then followed by a three digit number.
    e.g. EXIT_SAPMV45A_002
    This exit is found in SD in enhancement V45A0002.
    TYPES OF EXITS
    1)MENU EXITS
    2)FUNCTION EXITS
    3)TABLE EXITS
    4)SCREEN EXITS
    5)KEYWORD EXITS
    6)FIELD EXITS
    We use SAP transactions CMOD and SMOD to manage exits. Before implementing an exit , it is required to create the project by using CMOD
    selecting the enhancement e.g. V45A0002 and selecting the component
    (one which fulfills our need) i.e the exit which will be implemented in SMOD and after coding has been done the project has to be activated.
    An exit can be coded only once.
    FUNCTION EXITS
    These are used to add functionality through ABAP code . These start from the word EXIT_programname_NNN ending in a 3 digit number. No access code is required to implement any tupe of exit including function exits.
    The function exits are called from the standard SAP program in the form
    of ABAP statement
    CALL CUSTOMER-FUNCTION 'NNN'
    This is in contrast to USEREXITs where PERFORM statement is used to call
    the required userexit.
    To implement the FUNCTION EXITs first of all the project is created and a suitable enhancement package is selected and from its compnents the function exit to be implemented is selected and on double clicking it the exit code will appear in ABAP EDITOR(se38) where a Z include will be found and the customer code should be entered in this include.
    e.g.
    ADDING A DEFAULT SOLD-TO-PARTY in Sales Order Creation
    To show a default sold-to-party in this field when the user creates a sales order (VA01) we can use a function exit .This function exit is located in enhancement no V45A0002 . Before we can choose the exit we have to create a project in CMOD after that enter V45A0002 in the enhancement field and click on the components . In the components you will see the exit EXIT_SAPMV45A_002 . This exit is used for our purpose.
    Double clicking on this exit will takes us to function builder (SE37) . This
    function exit has one exporting parameters and two importing parameters, we are interested in exporting parameter which is E_KUNNR of type KNA1-KUNNR i.e if we move the desired customer name to this structure(E_KUNNR) it will be shown in the field as the default value when we create the sales order. This function also contains a customer include ZXVVA04 . This include will be used to write our custom code .
    Double clicking on this include and it will prompt us that this include does not exists do you want to create this object ,select yes and the include will be created .In this include we can write our own code that will fill the field E_KUNNR.
    e.g. E_KUNNR = 301.
    Activate the include and Activate the project. Now when ever the SALES ORDER will be created , sold-to-party field will come up with a predefined customer .
    FIELD EXITS
    The field exits are managed,created,activated through program RSMODPRF. The field exit is associated with a data element existing in ABAP dictionary and hence to the screen field using that data element.
    The format of field exit is :
    FIELD_EXIT_dataelement_A-Z or 0-9
    If a particular screen and program name is not specified than the field exit will effect all the screens containing that data element.
    The function module associated with field exit shows two parameters
    INPUT and OUTPUT. Input parameter contains the data passed to the field exit when the field exit was invoked by the R/3 , We can write our own code to change the output parameter depending upon our requirements.
    Before the field exit can have any effect the system profile parameter
    ABAP/FIELDEXIT in all the application servers should be set to YES
    ABAP/FIELDEXIT = YES.
    Regards
    Naveen.

  • Difn Betn synchronous and asynchronous procsesing an update

    Hi gurus.
    Can any body tell me Difn Betn synchronous and asynchronous procsesing an update .
    Regards ,
    Mahesh

    hi,
    For Update you have
    A - asynchronus - does not wait for next update in the queue
    S - Synchronus - waits until the previous update is completed before a new request is considered
    L - Local update - Uses a different work process to trigger call function in update task.
    In synchronus method until one record process takes place into database next record will not be processed.
    In asynchronus immedate updation of data into database table.
    Check this link for more detailed information:
    http://fuller.mit.edu/tech/sync_asynchronous.html
    'A', 'S' and 'L' are the update modes in CALL transaction method.
    I will give you a simple example to explain this.
    Suppose that there are 30 records in total and an error has occured in the 5th record.
    In asynchronous, update is done for every 30 records while in synchronous one,
    update is done only upto the 4th record.
    So only after the record in the fifth one is eliminated, remaining others are processed.
    Have a look at this URL from SAP Help:
    http://help.sap.com/saphelp_46c/helpdata/en/41/7af4cba79e11d1950f0000e82de14a/frameset.htm
    Regards
    Anversha

  • Synchronous and asynchronous

    hello gurus....
    can u give the definitions for synchronous and asynchronous updates.....
    i mean how u have to answer the definition when asked in an interview...
    Thnaks
    Pavan

    Hi Pavan,
    Asynchronous Update – The program does not wait for the work process to finish the update. Commit Work.
    Synchronous Update – The program wait for the work process to finish the update. Commit Work and Wait.
    Asynchronous updating. In this mode, the called transaction does not wait for any updates it produces to be completed. It simply passes the updates to the SAP update service. Asynchronous processing therefore usually results in faster execution of your data transfer program.
    Asynchronous processing is NOT recommended for processing any larger amount of data. This is because the called transaction receives no completion message from the update module in asynchronous updating. The calling data transfer program, in turn, cannot determine whether a called transaction ended with a successful update of the database or not.
    If you use asynchronous updating, then you will need to use the update management facility (Transaction SM12) to check whether updates have been terminated abnormally during session processing. Error analysis and recovery is less convenient than with synchronous updating.
    Synchronous updating. In this mode, the called transaction waits for any updates that it produces to be completed. Execution is slower than with asynchronous updating because called transactions wait for updating to be completed. However, the called transaction is able to return any update error message that occurs to your program. It is much easier for you to analyze and recover from errors.
    DataBase Commit:
    This statement will apply any outstanding database updates and wait until they have actually been put on the database before proceeding to the next statement.
    An ordinary commit work will initiate the process to update the databases in a separate task and will press on in your abap.
    COMMIT WORK: ( Asynchronous)
    Your program does not wait for any acknowledgement. it just start executing the next statment after COMMIT WORK.
    Reward if useful.
    Thanks
    Aneesh.

  • Synchronous and asynchronous mode

    Hi all,
          when to use synchronous and asynchronous mode in BDC
    cheers

    Hi Kumar,
    Synchronus data processing is that in which the program calling the update task waits for the update work process to finish the update before it continues processing.
    In Asynchronus update the callng program does not wait for update work process to finish the update and continues as normal.
    A BDC done with sessions is always synchronus.
    A BDC with call transaction is by default asynchronus
    unless you define it explicitly as
    call transaction 'XXXX' ...... update 'S'.
    ( If you donot define update option it is defaulted to "A" ).
    The update method is of importance when one transaction locks data which may be required by a subsequent transaction . The subsequent transaction will fail if data is locked from previous one. An example would be you are creating sales order for same material in succession ( with asynchronus update ). Quite likely that some of transactions would fail due to material locked.
    For large volume of data Call Transaction will be faster but you have no restart capability here. Suppose from 1000 transactions 100 fails . You will have to run the BDC program again exclusing the ones which wrere successful. However with session method you have the option to process the error transactions again in SM35 . So if you are sure that errors will not occur use call transaction else use session method.
    Please also check this link for differences between call transaction and batch input method
    http://help.sap.com/saphelp_47x200/helpdata/en/fa/097015543b11d1898e0000e8322d00/frameset.htm
    Hope this will help.
    Regards,
    Ferry Lianto
    Please reward points if helpful.

  • What is a gateway proxy?? what are synchronous and asynchronous calls?

    bapis are rfc enabled. but are there any other rfc's  available in sap? what is a gateway proxy?? what are synchronous and asynchronous calls?

    Hello:
    Lets st art at the beginning.
    There are NO documented viruses that affect a Mac running OS X - none (there are instances of Malware).
    Gateway GEO-IP/BOTNET Alert
    This is a Youtube video that explains what you have (I assume you installed it somehow) on your computer:
    http://www.youtube.com/watch?v=JwRi2me2hSk
    For openers, I would uninstall any A/V software you have put on your system.  It is certainly possible that that junk has put some other stuff on your computer.
    I'm also afraid my computer might have been hacked?
    Highly unlikely.
    Barry

  • Whats the meaning of   Synchronous and Asynchronous Retrieval ?

    whats the meaning of Synchronous and Asynchronous Retrieval ?
    can you provide any example ?

    // async
    consumer.setMessageListener( someMessageListenerObject );
    // asynchronously someMessageListenerObject will be notified as messages arrive
    // sync
    Message message = consumer.receive();
    // now do something with message
    James
    http://logicblaze.com/

  • What is synchronous and asynchronous FM calls

    Hi All,
       Can you tell me that what is synchronous and asynchronous FM calls?
       Full points will be rewarded for the answer of this simple question !!
    Best Regards,
    Chandan Dubey

    Hi Chandan,
         You can refer the below document for a good explanation.
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/f078394a-4469-2910-c4bf-853c75674694
    Thnaks,
    Siva.

  • Meaning of synchronous and Asynchronous in BDC

    Hi Guys,
    1) What is a maning of synchronous and Asynchronous in BDC, what is a diffrence betwwen both?
    2) Can you please provide  ABAP OOPS real time question and answer?
    Thanks
    Jigar

    in simple,
    Synchronous:
    - COMMIT WORK AND WAIT:
    -System waits until the database updation is completed.....then, system continues to execute after the piece.....if some thing wrong in updation, then, the rest piece do not executes!!
    -here, we get sy-subrc return value, so, some times, we can write rest prog. based on this retun value, either sucess or failure, like in some scenarios, we write CALL TRANSACTION with 'S', other wise its normally, Asynchronous!!
    - takes more time
    -mostly, batch input
    -example, say, there is Materail doc posting and associated accouting doc posting.....so, if material doc is successful, then only acc. doc will be get posted
    Asynchronous:
    -COMMIT WORK
    -does not depend on the updation
    -quick relatively
    -mostly CALL TRANSACTION
    - no return code
    for further, pls. go thru SDN
    thanq

  • Difference between synchronous and asynchronous

    Hi, i´m doing a t01 syncbo... what is the difference between synchronous and asynchronous?
    What is better for syncbo t01, and for syncbo s01?
    Thanks,

    Hi
    There are two options available:
    Synchronus in which the data is exchanged while the mobile is online. The mobile sends the messages to the middleware and gets the response there and then, while it is online.
    ASynchronus in which the mobile sends the messages to the middleware and goes offline. The responses are calculated and stored in the outbox. When the mobile again comes online and syncs, it gets the response messages.
    The choice depends actually on the type of the syncBO, like if there is an Order being created on the mobile and its approval (which will come from the backend) is needed, most of the time immediately. This SyncBO must be Synchronus.
    The other data, to which response is not immediately needed can be made as Syncronus.
    The choice has serious performance considerations, So it should be made wisely.
    Please ask if you need more information.
    Thanks
    Ankur
    (Award Points if the info is useful)

  • Synchronous and asynchronous transformations in SSIS

    Hi Can someone pls tell, when and in what scenarios it is better to use synchronous and asynchronous transformations in SSIS. And what are the pros and cons of using transformations that falls under above mentioned category.

    A good and well documented resource is available at Technet Library which will determine better about your concern. Please check this :
    http://technet.microsoft.com/en-us/library/aa337074.aspx

  • Synchronous and asynchronous bridges in bpm

    hi
    please tell me any one in whitch situation we r using synchronous and asynchronous communiction?
    please give me some example.
    thank u
    Swari

    Hi Swari
    Already VJ has explained you
    Example
    Demonstrating Use of Synchronous-Asynchronous Bridge to Integrate Synchronous and Asynchronous systems using ccBPM in SAP Xi
    To check other patterns in BPM Check
    BPM with Patterns explained Part-1
    BPM with Patterns explained Part-2
    Thanks
    Gaurav

  • Synchronous and asynchronous IO on the same file descriptor

    Hi does any body knows about problems in combining synchronous and asynchronous IO on the same file descriptor? It appears that I may miss SIGIOs in that case.

    I don't think there is any real easy way to do an insert. If writing to a file, I would use a FileWriter, a FileOutputStream, or a RandomAccessFile class. I don't know of any class that will automatically do an insert so you might have to write your own method that does this. This is pretty easy: use RandomAccessFile might be the best for most situations for doing this (ie, if you are inserting many times at different locations in the file). Just copy all the bytes from the point in the file you want to insert to the end of the file, and then write your bit, and then rewrite all the read bytes to the file again. Depending on how many times you are writing to the file and how big the file is, you may want to keep the file in memory at all times because writing to disk is extremely slowwww. If the file is huge, and you are inserting seldomly, then do what I said above. If the point of insertion is closer to the start of the file, then it might be a good idea to do the above but instead of copying the bytes from the point of insertion to the end of the file, copy the bytes from the start of the file to the point of insertion.

Maybe you are looking for

  • Photoshop not opening files

    Photoshop CS5 will not open files. Occasionally if i try to open a .psd file that has already been created by double clicking on it in its folder, it will open but I will hardly be able to edit it. For example, the brush tool does not work, crop tool

  • Re-assigning link to a Document attachment across platforms?

    Hello Everyone, I would like your advise on the following solution I am trying to design.  Currently we have a central content server and several different SAP back end systems, lets call them SAP system A and B for this discussion.  I would like to

  • AccessControlException:  What am I doing wrong?

    Hey guys. I am trying to read an write files on the web server that the applet is on but I keep getting an AccessControlException error. Here is the method that is getting the error: public void saveFile()         File dayFile = new File( fileName );

  • Inventory Cycle Count

    Hi All, I'm tryin to create cycle recommendations. If i update the old item groups with the newly created cycles, and when i run the cycle count recommendation, it shows an error, " No matching records found ITW1." But when i create a new item group

  • Cannot execute action within region..

    Hi all, I have a region called "placements.jspx" embedded inside a page called "index.jspx". I have the following code inside the region: <af:iterator id="PlacementTable" var="placement"                  value="#{PlacementCollectionModel}"