How to use BPM itegrate different system aysnchronously

for example, 3 enterprise applications need to be integrated together with BPM, which are Bid system, ERP system, Finance system,
and erery business document should be approved  by persons one by one in the 3 different application system with its workflow respectively, we can't change the workflow in the
different system, and only when the document is finished approved in the BID system asynchronously, it can enter the ERP system, an so on .
after the business document is approved in the Bid system, it should be returned in the BPM contexts,and the BPM user will dicide whether it will be enter the next system.
so how to integrate the 3 application system?
I draw a[ BPM process|http://www3.picturepush.com/photo/a/2586651/640/Picture-Box/aaa.jpg], but in this process,  the "ERP human activity" activity, this activity how to get data from the "BID system asyn workflow" which is an asynchronized
wrokflow?

Gavin,
For asynchronous cases, you should adopt the "wait and trigger" principle.  In BPM, you can acheive it by using a timer and an automated activity. Set the timer repeat time to say 15 mins (you should change it as per your business scenario), and then execute / trigger an automated activity, which will call your Bid system to check the state (whether the data entry / specific workflow is over). If the state is completed, (you may check using exclusive choice), move to next step. Else, pass back the control to timer which will again make the process wait. This way the objective could be attained.
Hope this helps.
Br,
Bala

Similar Messages

  • How to use a portal jdbc system to delete or insert by IExecution.execute

    hi everyone:
    I create a jdbc system in portal. Then I use following codes to query a table
    IQuery query = client.newQuery();
    query.execute("SELECT * FROM [Categories]");
    It is fine.
    Now, I wanna do insert or delete operation. I can't use the IQuery object. I think it is only for query and it is Deprecated. I find there is a method: IExecution.execute(IOperation). But I don't know how to use that method. Can I insert/delete records using that method? The last question is how to control the sql transaction by that IExecution object.
    thanks
    elliot

    Hi,
    I followed the interface framework to complete a query.
    The code is shown under
    How to Modify DB Records Using JDBC Connector FrameWork
    But I got this exception and I don't know how to go further:
    com.sapportals.connector.execution.ExecutionException: Exception during execution of SQL statement at com.sapportals.jdbcconnector.execution.objects.JDBCExecution.execute(JDBCExecution.java:118) at iview.Simple.doContent(Simple.java:43) at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209) at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114) at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328) at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136) at

  • How to use AET in a system without any masterdata?

    Hello,
    we know how to use the AET in general.
    But we have a developmentsystem where it is not allowed to create masterdata or documents.
    Therefore it is not possible in this system to open for example an existing customer in WebU and enhance a new field to BP_HEAD\details for example.
    Is there a way to use the AET without having master data available in the dev-system?
    Thank you.
    Kind regards
    Manfred

    Hi,
    thank you for this very helpfull answer.
    This works for the most components like BP_HEAD.
    It does for some reason not work for component ERP_H.
    "Exception during toolbar processing".
    The component is displayed but without buttons - also no configuration button for AET.
    Any ideas.
    Kind regards
    Manfred

  • HT3819 How to use homesharing between different user accounts on the same iMac?

    I find plenty of articles about homesharing on iTunes between computers, but not between two different user accounts on the same iMac.  Any advice or direction to an existing artical is greatly appreciated.  I'm knew to the Mac and still have Windows on the brain.
    I am trying to share iTunes music and movie purchases between my user login and my wife's.
    Thanks

    Hello careymp1017,
    This can be achieved, but will not utilize HomeSharing. Further information and steps can be found in the following article.
    iTunes: How to share music between different accounts on a single computer
    http://support.apple.com/kb/HT1203
    Cheers,
    Allen

  • How to use BPM in PI7.3 which is ABAP Stack

    Hi Experts,
    Come to know that PI7.3 have only one stack (JAVA), then how to do BPM's which are ABAP Stack, in PI7.3?
    Thaks & Regards
    Anil

    hi,
    refer below links: :
    Regarding PI7.3 version
    http://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/4096a6b3-3dc3-2d10-bf87-f63d5340a916?QuickLink=index&overridelayout=true
    thanks,

  • How to use BPM?

    Hello,
    1.Could some one provide me the Step by Step procedure for using BPM.
    2.whati si the use of BPM
    Regards,
    Swaroop

    Hi,
    1.Could some one provide me the Step by Step procedure for using BPM.
    [Step By Step file to webService Using BPM|https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/10c73036-f019-2b10-20bc-f15a25be9588]
    2.whati si the use of BPM
    Use Of BPM
    BPM in SAP XI is generally used for stateful message processing. Having said that if you want two messages to be processed depending on certain criteria you will have to use BPM.
    The places where we generally use BPM is:
    1. Error handling.
    2. Handling messages from multiple senders
    3. Collecting of messages
    4. Splitting of messages
    5. Processing message based on certain criteria
    6. If the receiver structure is created based on certain criteria.
    These are just some of the examples. If you hace SAP XI installed, then you can go to SWCV SAP BASIS and you will find examples out there.
    Also, you can find examples in here
    http://help.sap.com/saphelp_nw04/helpdata/en/de/766840bf0cbf49e10000000a1550b0/content.htm and
    http://help.sap.com/saphelp_nw04/helpdata/en/69/4ad13fa69a4921e10000000a1550b0/content.htm
    BPM is one way to raise your alerts in an excetion step. This does not mean BPM is mandatory for raising alerts
    Hope this gies you some clarity.
    Thanks.

  • How to use BPM's in File 2 File Scenerio

    Hi All,
    Please do let me know when do we use BPM's in File2File scenerio and also let me know the example for the same.
    Thanks
    Sudharshan

    Hey,
       BPM generally is not required in a file to file scenario.
       And as far as possible avoid the use of BPM.
    In most of the file to file scenario BPM is not required.
    But in certain scenario(file to file) it is required.
    for example N:1 mapping.
    that is when you have two sender and one reciever.
    in this case it is mandatory to use bpm.
    because during configuration it is not possible to give two senders in your interface determination.
    hence if you use a BPM  interface mapping will be referred in your BPM and there is no need for maaping to be reffered in Interface determination.
    In order to design a BPM for this scenario
    steps.
    1) create a data tyoe and message type for sender and reciver file structure.
    2) do the required mapping.
    3) create abstract asynch interface for the two message types.(as bpm requires abstract type)
    4) create a BPM.
    5) create two container type variables fr the two abstract interface(you cannot refer to the abstract interface directly)
    6) assign a recieve step of type async a in this step select the container variable created corresponding to the sender abstract interface .
    7) assign a transformation step and refer to the interface mapping in it.
    8) assign a send step and  select the container variable created corresponding to the reciever  abstract interface .
    your BPM is configured.
    reward points if useful.
    regards,
           Milan

  • How to use BAPI get out system language as Chinese?

    hi, expert,
    i use BAPI get R3 sytem data,but BAPI get data as English,i want get R3 system Chinese data.i set language property value ZH in Model porpery,but BAPI always get english data.
    how to solve this problem?
    thanks

    Hi Jun,
    has you read the following wiki entries:
    <a href="https://wiki.sdn.sap.com/wiki/display/VC/WrongLanguage">https://wiki.sdn.sap.com/wiki/display/VC/WrongLanguage</a>
    <a href="https://wiki.sdn.sap.com/wiki/display/VC/LanguageMapping">https://wiki.sdn.sap.com/wiki/display/VC/LanguageMapping</a>
    Best Regards,
    Marcel

  • How to identificate documents in different systems?

    I have several scenarios:
    one is: we create document in system A, send message to BPM, BPM sends it to system B and C, as a result some documents are created in system A, B and C.
    now in secon scenario we want to get details of this document. we make request in system A, how we can get data about this document from B and C?
    P. S.
    A, B, C can be SAP and non-SAP systems.

    in ur context what are u refering to <b>Document</b> as?
    Is it a transactional data or a file?

  • How to use classes from different user defined Packages

    well i made 2 packages... one containing employee class and realted matter and other contaning bankaccounts and bank related work... now how can i use them in an another.. i know about the import statement but still couldn't make it work.... now suppose iam makin a obejct of employee class and passing in name and salary and all in the constructor... now i want that when i create the bankaccount class then the name of the employee should be passed to the bankaccount class so that it can assigen a account no. .. now how do i do this as when i create a object of employee class its made at runtime.. and if i create a object of bankaccount.. how wil it take that name as before goin to bank account i should already have a list of emplyees and then this list should be worked upon by the backaccount class to assign the accountno.s
    Hope my question was clear... would appriciate a explanation and guidance!!!

    Thank you so much ... i was able to solve the problem... i passed the object in the constructor of the accounts class and it all worked out the way i wanned... thank you so much... it wasn't that difficult but the idea was just not clicking...this place is wonderful... everyone rocks!!! and so greatful about all the help.. please keep up the good work and even i will try to contribute as much as possible!!

  • How to use EVS with different data in each row, in a Java Web Dynpro table?

    Hi all,
    I am using EVS in a column of java web dynpro table.
    Let's say the name, and context attribute, of this column is column1.
    It's filled dynamically using an RFC, that uses as input parameter the value of another column, and related context attribute, from the same table (Let's call it column2).  Obviously, from the same row. So, in other words: the values of the EVS in column1 of row1, are dependent of the value of column2 of row1. And the values of the EVS in column1 of row2, are dependent of the value of column2 of row2. And so on... Hope i could explain myself ok.
    The code I'm using works great for filling the EVS dynamically:
    IWDAttributeInfo attrInfo = wdContext.nodeDetail().getNodeInfo().getAttribute(nodeElement.COLUMN1);
    ISimpleTypeModifiable siType = attrInfo.getModifiableSimpleType();
    IModifiableSimpleValueSet<String> value = siType.getSVServices().getModifiableSimpleValueSet();
    value.clear();
    if(this.initRFC_Input(nodeElement.getColumn2())){
         for (int i = 0; i < wdContext.nodeRFCresult().size(); i++){
              value.put(wdContext.nodeRFCresult().getRFCresultElementAt(i).getLgort()
                 , wdContext.nodeRFCresult().getRFCresultElementAt(i).getLgobe());
    In this code, nodeElement is the context row of the table that is passed dynamically to the method when the value of colum2 is changed.
    HOWEVER, the problem I'm having is that after executing this code, EACH NEW ROW that is added to the table has by default the same values as the first row, in the column1 EVS. And, for example, if I refresh the values of the column1 EVS in row 2, all EVS values in the other rows are also refreshed with the same values as the ones of EVS in row 2.
    How can I make sure each row EVS has its own set of independent values, so they don't mess with each other?
    Hope you guys can help me. And please, let me know if I didn't explain myself correctly!
    Thanks!

    I just did as you said (I think), but it's still having the same behaviour as before (same data for all EVS in the table).
    Here´s what I did:
    I
    In node "Detail" (cardinality 0...n, singleton set to true), which is binded to the table, I created a child node named "Column1Values" wth cardinality 1...1 and singleton set to false.
    "Column1Values" node has an attribute called "column1", of type String.
    I did the binding between attribute "column1" and the column1 inputfield celleditor in the table.
    I created an event called Column2Changed and binded it to the column2 celleditor of the table. I added a parameter called nodeElement of type IPrivateCompView.IDetailElement to this event, and mapped it to the column2 editor in the table so that I can dynamically get the nodeElement that is being affected.
    I added the following code to the onActionColumn2Changed(wdEvent, nodeElement) method that gets created in the view:
    IWDAttributeInfo attrInfo = nodeElement.nodeColumn1Values().getNodeInfo().getAttribute("column1");
    ISimpleTypeModifiable siType = attrInfo.getModifiableSimpleType();
    IModifiableSimpleValueSet<String> value = siType.getSVServices().getModifiableSimpleValueSet();
    if(this.initRFC_Input(nodeElement.getColumn2())){
         for(int i =0; i < wdContext.nodeRFCresults().size(); i++){
              value.put(wdContext.nodeRFCresults().getRFCresultsElementAt(i).getId(),
                                  wdContext.nodeRFCresults().getRFCresultsElementAt(i).getDesc());
    And with this, I still get the original problem... When the EVS of one row is updated, ALL other EVS of the table get also updated with the same values.
    What am I missing? Sorry Govardan, I bet I'm not seeing something really obvious... hopefully you can point me in the right direction.
    Thanks!

  • How to use JMF in p2p system ??

    I want to develop a system about p2p stream,and I use the jmf as the client.
    could you guys suggest me ?? and provid some material to me ??
    PLEASE !!!!

    Find on the net AVReceive2, AVTransmit2, AVReceive3, AVTransmit3 and RTPSocketAdapter Java source files. Just search in google or yahoo, for instance, they are available everywhere. These are the the most used when beginning to work with JMF. Number "3s" are actually the ones you might be looking for. Something like p2p video/audio streaming.
    Hope that helps

  • HOW to use class in different file???

    hi
    I want to use other class
    and write them separately in different .java file
    but when i compile the one who call the class
    it says it cannot resolve the symbol, which is the class name I call
    Can anyone help me

    it says it cannot resolve the symbol, which is the
    class name I callYep. This is a "classpath" problem. You have to tell Java where all the class files are that you'll be using. The simplest way to do this when you're starting out is to make sure all your files are in the same directory and compile using the following command:
    javac -classpath . *.javaTake careful note of the spaces and "." after the "-classpath". This tells Java to look in the current directory for your class files (naturally, you'll need to be in the same directory as your *.java files when you run that command).
    You may also want to check out the beginner tutorials available on this site. They'll help out a bunch!
    Good luck!

  • How to use get im different class?

    Hello, I am new to this java. I need your help, please
    I have Rental class that I use for my RentalApplication to run my Number of items rented & Total of Sale.
    However it gives me 0 instead of the number. Where did I write wrong code?
    public class Rental {
         //Declare variables
         public static final double COST_OF_NEW_RELEASES = 2.25;
         public static final double COST_OF_REGULAR_VIDEO = 1.00;
         public static final double COST_OF_DVDS = 2.98;
         public static final double COST_OF_GAMES = 4.50;
         private int NewReleases;
         private int RegularVideo;
         private int Dvds;
         private int Games;
         private Date timeOfSale;
         private int customerNumber;
         private String customerRental;
         //Constructor method
         public Rental(int theCustomerNumber) {
              timeOfSale = new Date();
              customerNumber = theCustomerNumber;
              NewReleases = 0;
              RegularVideo = 0;
              Dvds = 0;
              Games = 0;
              System.out.println(customerRental = "\nCustomer Number " + customerNumber);
         public Rental(
              int theNumberOfNewReleases,
              int theNumberOfRegularVideo,
              int theNumberOfDvds,
              int theNumberOfGames) {
              this.NewReleases = theNumberOfNewReleases;
              this.RegularVideo = theNumberOfRegularVideo;
              this.Dvds = theNumberOfDvds;
              this.Games = theNumberOfGames;
              this.timeOfSale = new Date();
         //Getters
         public int getNumberOfNewReleases() {
              return NewReleases;
         public int getNumberOfRegularVideo() {
              return RegularVideo;
         public int getNumberOfDvds() {
              return Dvds;
         public int getNumberOfGames() {
              return Games;
         //Other Methods
         public double rentalCost() {
              * Rental Cost()
              * creation date ("2/5/03" 1:30PM)
              return NewReleases * COST_OF_NEW_RELEASES
                   + RegularVideo * COST_OF_REGULAR_VIDEO
                   + Dvds * COST_OF_DVDS
                   + Games * COST_OF_GAMES;
         public String getCustomerRental() {
              return customerRental;
         public int totalAmountRented() {
              return NewReleases + RegularVideo + Dvds + Games;
         public Date getTimeOfSale() {
              return timeOfSale;
         public String getFormatteddatetimeOfSale() {
              DateFormat dateFormat = DateFormat.getDateInstance();
              return dateFormat.format(timeOfSale);
         public String getFormattedRentalCost() {
              * rentalCost()
              * creation date ("1/30/03" 1:30PM)
              NumberFormat dollarFormat = NumberFormat.getCurrencyInstance();
              return dollarFormat.format(rentalCost());
         public String toString() {
              String classDescription = "Thank You for renting";
              classDescription += " ";
              classDescription += "\nRental" + "[";
              classDescription += "New Releases = ";
              classDescription += NewReleases;
              classDescription += ", Number of Regular Video = ";
              classDescription += RegularVideo;
              classDescription += ", Number of DVDs = ";
              classDescription += Dvds;
              classDescription += ", Number of Games = ";
              classDescription += Games;
              classDescription += "]" + ", \n[" + "Time of Sale = ";
              classDescription += getFormatteddatetimeOfSale();
              classDescription += ", Rental Cost = ";
              classDescription += getFormattedRentalCost();
              classDescription += "]";
              return classDescription;
         public static void main(String[] args) {
              Rental theRental;
              theRental = new Rental(3, 1, 3, 1);
              System.out.println(theRental.toString());
         * Method findRentalItems.
         * @param thevideoId
         * @return RentalItems
         public static RentalItems findRentalItems(String thevideoId) {
              return null;
    This is my RentalApplication
    public class RentalApplication
         public static void main(String[] args)
              Rental theRental;
              RentalItems theRentalItems;
              VideoStore theVideoStore = new VideoStore();
              int customerNumber = 1;
              boolean newCustomer = true;
              boolean moreLookUps = true;
              String thevideoId;
              NumberFormat numberFormat = NumberFormat.getCurrencyInstance();
              DateFormat dateFormat = DateFormat.getDateTimeInstance();
              while (newCustomer)
                   theRental = new Rental(customerNumber);
                   while (moreLookUps)
                        thevideoId = JOptionPane.showInputDialog("Enter Video Id's");
                        theRentalItems = RentalItems.findRentalItems(thevideoId);
                        System.out.println(theRentalItems.displayRentalItems());
                        moreLookUps = getOption("Another Videos?");
                   theVideoStore.addRental(theRental);
                   System.out.println("Time of sale: "+ dateFormat.format(theRental.getTimeOfSale())
                                       + "\tNumber of items rented "
                                       + (theRental.totalAmountRented())
                                       + "\tTotal of Sale: "
                                       + numberFormat.format(
                                            theRental.rentalCost()));
                   newCustomer = getOption("Another Customer");
                   moreLookUps = true;
                   customerNumber++;
              System.out.println(theVideoStore.displayVideoStore());
              System.exit(0);
         public static int readInt(String prompt) {
              return Integer.parseInt(JOptionPane.showInputDialog(prompt));
         public static boolean getOption(String prompt) {
              int theNum;
              theNum = JOptionPane.showConfirmDialog(null, prompt);
              return (theNum == 0);

    In your RentalApplication main() method, you do the following:
    theRental = new Rental(customerNumber);which calls the
    public Rental(int theCustomerNumber)constructor.
    In that constructor, you initialize
    NewReleases = 0;
    RegularVideo = 0;
    Dvds = 0;
    Games = 0;But nowhere do you ever adjust those values. So the reason you're getting 0 back, I believe, is because that's what you set them to.

  • How to changes Object in different system

    Hi All,
    All BW objects are owned by BWQ i want to make all the object are owned to BWD(Bcoz this is copied system). Is there any transaction i have to use.. please help me guyz.
    Thanks
    DST

    Go to SE03, specify the object and change its directory entry (original system) to BWD and then it should be ok.

Maybe you are looking for

  • HP4630 problems with Word and Adobe reader

    Hi,        I have recently setup a new computer at Home, Win 7 64Bit, and I cannot get the HP4360 Printer to work correctly. Tests completed Print from Computer 1, via USB  win 7 64Bit all OK, and has been for months Print From computer 2 Via wireles

  • VB prompts Automation Error when connecting to SAP

    Can someone please help me. I've been on it for days. I'm a beginner in interfacing VB6 with SAP 6.20. The problem is I always get an "Automation Error: The Specified module could not be found" everytime it passes this statement "Set myVar = createob

  • JPublisher Properties/Property File

    Nice People out there... I'm generating java source(s) using JPublisher based on object types which I created in 8i dbase. During the process I tried to use the property/properties file within JPublisher to set default values for certain attributes w

  • Using General Polynomial Fit VI with waveform graph

    Hello gurus , I would like to ask how to use General Polynomial Fit VI with waveform graph not GraphXY . Waveform graph is giving me an array of values not X , Y i think , what should i do ? Thanks in advance Solved! Go to Solution.

  • ZEN album/TAG search F

    Hi, i have a problem with the way my Zen let's me organize my music, i've been using portable mp3 players for years so i can say that this is a flaw!! let me explain with an example.... I've got 0 folders, 8 of them have all the files tagged to the b