on 03-08-2006 12:23 PM
Hi All,
I would like to pros and cons of BPM.
Performance point of view,
and Maintenance point of view.
Please give me suggestion, <u>when should i use/avoid BPM?</u>
Thanking you in advance.
Regards
Piyush
Hi Piyush,
Simple message processing on the Integration Server is stateless. This means that the Integration Server does not know of any connections between various messages.
BPM, on the other hand, describe related processes, which can use the knowledge about messages that have already been processed to further control the process.
As for performance is concerned with BPM, it is a very important issue to be taken into account. BPM is proccessor intensive and I have heard that it can lead to various problems like queue and cache.
Hope this info helps,
Regards,
Bhavesh
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bhavesh
Thanks for your prompt reply.
You want to say that use BPM when you need statefule message processing.
In my view if we have to implement sequence of process we should go for BPM. This can be implemented individually also. But we can change the functional flow(Enhancement) easily in BPM.
What is your opinoin?
Regards
Piyush
Message was edited by: Piyush Gangwal
Hi Piyush,
By Stateful Message processing , what is meant is that having some connection between 2 messages which would normally not happen.
Without a BPM, every message that is sent to your Integration Engine / XI is treated to be stateless as it cannot be related to anyother message.
But like u told, a BPM can help you in using multiple mesages together from different systems in a sequence of procceses.
This info on Stateful messages is available on this link,
http://help.sap.com/saphelp_nw04/helpdata/en/14/80243b4a66ae0ce10000000a11402f/frameset.htm
Regards,
Bahvesh
type third party
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Bhavesh and sravya,
In last week i am busy with Htp to Jdbc scenario.
I likes the Bhavesh proposal for not using BPM.
I am very thankful to you.
But in siva's blog, he has mentioned the storing variables in global container.
And one more thing, i want to know that where is staging table maintained.
Regards
Piyush
Hi Piyush,
Just use Siva's blog as a template. If your DB look up is returning multiple values, then you can use an advanced user defined function, or like he mentions in his blog, use global variables to store the result, so on and so forth.
/people/sap.user72/blog/2005/10/01/xi-new-features-in-sp14 this blog for Global Variables in SP14.
Regards,
Bhavesh
/people/saravanakumar.kuppusamy2/blog/2005/01/19/rdbms-system-integration-using-xi-30-jdbc-senderreceiver-adapter
good one and i guess it gives you a good design decisions.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Are you talking abt JDBC lookup or RFC lookup?Can you elobrate or amil me at sravya.talanki@wipro.com for understanding better.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I want to pull the data from DB at particular time.
And i have to push the data into R-3 using RFC.
DB -
> XI -
> R-3.
I am planning to send the whole set of records in one shot. Can i do this?
If not then I have to use RFC lookup as Bhavesh suggested.
I have dropped a mail to sravya in the same regard.
Let me know if you don't get a mail.
Thanking you in advance.
Regards
Piyush
Hi Piysuh,
Just to summarize what I have ubndertood of your scenario.
You do not want the JDBC adapter to be connected to your Database always and so , you will be using a DUMMY file, and when the file is picked up, you want to perfrom your DB look up and then perfrom an RFC call.
This can be implemented as follows without a BPM.
1. File Adapter to Receive File.
2. A mapping such that the DB lookup is perfromed in the mapping program ( user defined function or java mapping ), there is a <a href="/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler">Blog</a> available on how to perfrom DB lookup in your mapping on SDN.
3. map the data picked from your datbase to your RFC request message and use an RFC receiver adapter.
Think this might help. Do let us know if you need any further help.
Regards,
Bhavesh
Piyush,
I donot reccomend to go for the BPM.
Follow the solution that I proposed and get back to me at sravya.talanki@wipro.com if you need further clarifications.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Piyush,
You can perform your RFC lookup even withing your mapping program. Sravya's blog deals with one such scenario where she is calling an RFC inside her java mapping. What I meant was, if you are going to call an RFC repeatedly inside a loop in a BPM, it can cause performance issues and so, just explore the probability of making those RFC calls in your Java Mapping.
Regards,
Bhavesh
You do not require any BPM for your case.
Donot write user-defined functions as they are hard to mantain and that may not be accessible in different mapping programs.
Instead write a java program for doing JDBC lookup which takes the input parameters from userdefined function.
In doing this you acheive re-usbaility from any mapping program for performing JDBC lookups..
Ex:
java program
myJDBC.jar
Class myJdbc
{
int p1;
int p2[];
//logic for JDBC look up
}
import the archive in the SWCV.
userdefined function
import myJDBC.jar;
myJdbc JDBC;
JDBC.p1=A;
RESULT.ADDVALUE(P[]);
I have given just algo..use java syntax and build the same and you find it useful..
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Piyush,
you can use BPM for many reasons. Usually you control your message flow with BPM. If you have special requirement, like this message should go only with that condition and so on. Its a very powerful tool.
Unfortunately i had (obvisiosly not only me) some bad experience with BPM performance. For expecting a lot traffic i wouldn't recommend BPM if you have alternatives.
Regards,
Udo
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Piyush,
difficult to say. Of course no SAP infomartions about that. 20 messages per minute shouldn't be a problem. It is depending on message size, mapping programs, complexity of your processes and of course on the hardware. I would recommend to setup test system (q-system) quite similar to p-system (same running system!, same release). Avoid nested loops! BPM runs in ABAP stack, mappings are executed in Java stack. For connection is destination 'AI_RUNTIME_JCOSERVER' used, which (sometimes) temporary break down because of less memory. The corresponding configuration in not easy to handle (Profile Parameter, Dialog Work Processes).
Regards,
Udo
Hi Udo & Bhavesh
Thanks for your inputs.
I have one doubt that user is going to give some inputs.
These inputs are going to be updated to DB.
Depending on the inputs we have to trigger some scenarios.
This thing i can do independently. I want to say that i can use JDBC sender and get the data and depending on the data i can decide which receiver service should be triggered(Receiver determination).
And one option is i can do it in BPM also.
What is your opinion what should i prefer?
All independent scenarios or single BPM.
Regards
Piyush
Hi Piyush,
Just to add to what Udo has told.
A JDBC sender adapter will pick up tghe rows in your table and on the basis of the input of your rows, you want to send it to another system.
I think this is possible using CONDITIONAL RECEIVER DETERMINATION. While doing your Receiver Determination, you have an option of entering multiple receivers and also specifying the condition on which the receivers are to be choosen.
Also, the condition has to be only on the incoming source payload as Receiver Determiantion occurs before Interface Mapping.
Regards,
Bhavesh
Hi Bhavesh and Udo,
You both are right that if i have to route the message depending on the input payload then conditional recievers will serve the purpose.
But in the scenario i am facing, i don't have condition in input content.
I will explain my scenario once again.
dummy file ---> JDBC lookup with the help of "BPM" or "user defined function" -
> RFC.
Whenever the dummy file is there perform the operation.dummy file is <b>"delete mode"</b>
In this case dummy input has dummy payload.
So we will get important data after JDBC look up.
Now its clear or not?
Regards
Piyush
Hi Piyush,
If you want to use the JDBC adapter only after that DUMMY FILE is picked up, then you will have to go for a BPM.
But, I would sugggest that instead of looking into a solution with a Dummy File, You can use your JDBC Sender adapter Directly. <b>Just make sure that the SELECT query is such that the ROWS are selected only when you want them to de selected.</b> and you use you UPDATE statement to update the rows of your table.
You might also have to add an additional field like FLAG in your Database, but it would be better solution to look at than the one using a DUMMY FILE and a BPM.
The addition of a FLAG field can help you avoid complexities of a BPM and have a simple JDBC -RFC scenario.
Hope this helps,
Regards,
Bhavesh
Hi Bhavesh,
The main requirement is pull the data from JDBC on particular time.
I.e. scheduling an adapter. But right now we don't have such arrangement.
We can do it with the help of Poll Interval but it is not the better option.
One more criterion is, we can't change DB table.
So no way of flag.
And importantly we have to set the connection with DB for minimum times.
Regards
Piyush
Hi Piyush,
In your case, I guess BPM is the only soultion :-).
I have one question for you to ponder over here piyush.
Will you make the call to an RFC withing a loop for every row that is returned by your JDBC adapter??
If yes, then I think performance can be a major issue here as loops are to be avoided as much possible in your BPM.
one more solution would be to perform your RFC lookups in Java Mapping. I think there is a<a href="/people/sravya.talanki2/blog/2005/12/21/use-this-crazy-piece-for-any-rfc-mapping-lookups written by Sravya that can be helpful for the same.
Regards,
Bhavesh
User | Count |
---|---|
85 | |
10 | |
10 | |
10 | |
7 | |
6 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.