cancel
Showing results for 
Search instead for 
Did you mean: 

BPM with 2 JDBC outbound interfaces and one inbound file interface

Former Member
0 Kudos

Hi,

I have a scenario where data is coming from different databases into XI and after processing the data it creates a file at the target side. Some calculations are to be done in the middleware and the result will be sent through a file.

My question is

1. BPM will be used in this scenario?

2. There will 2 outbound interfaces(one for each database access), 2 abstract interfaces and one inbound interface(file). Please correct me if I am wrong.

3. I have to multiply the value of field from one database to a particular value in another database and get the final result. For e.g exchange rate from one database is multiplied to Transaction currency in another database and get the group currency value in the output. Can anyone give the sequence of steps in the intergration process for this scenario as I am new to BPM.

Thanks,

Aparna

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

1. BPM will be used in this scenario?

Could be, could not be.

BPM for sure can be used in your case. But you can just use normal scenario, with JDBC sender to get data from DB1, and use JDBC lookup to get exchange rate from DB2

Regards

Liang

Answers (3)

Answers (3)

Former Member
0 Kudos

Thanks Abhishek. It was a stupid mistake.

Former Member
0 Kudos

Thanks a lot Liang and madhusudana for your responses.

Since I can use JDBC lookup for this in my nornal scenario I think no need for BPM.

I have created the advanced UDF for JDBC lookup code. Below is the code.

String Query = " ";

Channel channel = null;

DataBaseAccessor accessor = null;

DataBaseResult resultSet = null;

MappingTrace importanttrace;

importanttrace = container.getTrace();

// Build the Query String

Query = "Select home_cur_code FROM gltrxcp WHERE company_code = '" + a[0] + "' ";

try{

//Determine a channel, as created in the Configuration

channel = LookupService.getChannel("BS_JDBC_send","cc_JDBClookup_rec");

//Get a system accessor for the channel. As the call is being made to an DB, an DatabaseAccessor is obtained.

accessor = LookupService.getDataBaseAccessor(channel);

//Execute Query and get the values in resultset

resultSet = accessor.execute(Query);

importanttrace.addWarning("resultset" + resultSet );

for(Iterator rows = resultSet.getRows();rows.hasNext();){

Map rowMap = (Map)rows.next();

result.addValue((String)rowMap.get("HOME_CUR_CODE"));

importanttrace.addWarning("result" + result );

}

}

catch(Exception ex){

result.addValue(ex.getMessage());

}

finally{

try{

if (accessor!=null) accessor.close();

}

catch(Exception e){

result.addValue(e.getMessage());

}

}

But I am not getting the desired result. I am getting result as 'Null'.

Can you please help in resolving this issue. I have also used trace for find out where it is passing Null and found that 'result' is coming null. Do i also need to parse it before passing it to 'result'?

Can anyone send sample code for JDBC lookup.

former_member200962
Active Contributor
0 Kudos

I am not an expert in this field but will the case affect the processing?

+Query = "Select home_cur_code FROM gltrxcp WHERE company_code = '" + a[0] + "' "; +

result.addValue((String)rowMap.get("HOME_CUR_CODE"));

Regards,

Abhishek.

madhusudana_reddy2
Contributor
0 Kudos

Hi,

As your source payload is coming from 2 different databases BPM is must in this case. Please proceed below steps sequentially

2 outbound interfaces and 2 abstract interfaces

In BPM use Fork step with 2 branches and use 2 container varables of 2 abstract interfaces in 2 receive steps. after fork step there should be TRANSFORMATION step in which you are using 2 abstract interfaces at source side and one abstract interface(receiver file type structure) at target side. In this mapping you can multiple field of first database message and second database message. After this transformation step use SEND step(which is final message of receiver).

In ID:

2 sender agreements

2 receiver determination(for BPM)

2 interface determinations

1 receiver determination for actual receiver

1 interface determinatin for receiver

1 receiver agreement for receiver

Please start the interface developmetn then you can get the idea.

thanks,

madhu