cancel
Showing results for 
Search instead for 
Did you mean: 

inserting into two tables using JDBC Receiver Adapter

former_member196023
Active Participant
0 Kudos

I've defined following type for Receiver JDBC to save data in two different tables


Name		Category	Type		Occurrence
ReceiverDB_DT	Complex Type		
STATEMENT	Element				1..unbounded
TABLE_NAME	Element				1
ACTION		Attribute	xsd:string	required
TABLE		Element		xsd:string	1
ACCESS		Element		Table1_DT	1
STATEMENT2	Element				1..unbounded
TABLE_NAME	Element				1
ACTION		Attribute	xsd:string	required
TABLE		Element		xsd:string	1
ACCESS		Element		Table2_DT	1

When I send data of two tables, it is showing data for both the two tables in MONI of PI System, but ultimately it shows only one table's data in message monitoring payload.

what could be the problem?

Thanks,

-Haresh

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Haresh,

I presume you are using Insert action.

Check for the message mapping. Test in IR the message mapping and see if both structures are getting populated or not.

Also, instead of having Statement node multiple times you could keep the access node multiple times. This does not concern the problem inquestion.

Revert with findings.

Regards,

Ankesh

former_member196023
Active Participant
0 Kudos

Hi Ankesh,

Thanks for paying attention for problem. I am performing INSERT only.

IR is fine, it's showing both the structure filled properly.

I am not sure how can I have multiple access as I would be mapping different tables before this access tag.

Let me know where should I change?

Thanks

-Haresh

former_member196023
Active Participant
0 Kudos

It solved!!!

by just changing Occurrence only as rightly pointed by Ankesh


Name		Category	Type		Occurrence
ReceiverDB_DT	Complex Type		
STATEMENT	Element				1..unbounded
TABLE_NAME	Element				1
ACTION		Attribute	xsd:string	required
TABLE		Element		xsd:string	1
ACCESS		Element		Table1_DT	1
STATEMENT2	Element				1..unbounded
TABLE_NAME	Element				1
ACTION		Attribute	xsd:string	required
TABLE		Element		xsd:string	1
ACCESS		Element		Table2_DT	1


Name		Category	Type		Occurrence
ReceiverDB_DT	Complex Type		
STATEMENT	Element				1
TABLE_NAME	Element				1
ACTION		Attribute	xsd:string	required
TABLE		Element		xsd:string	1
ACCESS		Element		Table1_DT	1..unbounded
STATEMENT2	Element				1
TABLE_NAME	Element				1
ACTION		Attribute	xsd:string	required
TABLE		Element		xsd:string	1
ACCESS		Element		Table2_DT	1..unbounded

Thanks a lot ankesh

Answers (1)

Answers (1)

justin_santhanam
Active Contributor
0 Kudos

, but ultimately it shows only one table's data in message monitoring payload.

What you mean by the above sentence? Can you please explain a bit more?

former_member196023
Active Participant
0 Kudos

>

>

> , but ultimately it shows only one table's data in message monitoring payload.

>

>

> What you mean by the above sentence? Can you please explain a bit more?

Raj,

when I go to message monitoring, message details, in message content tab payload shows XML having only one table's data.

justin_santhanam
Active Contributor
0 Kudos

Haresh,

Please correct me if I'm wrong

You are seeing the correct payload in SXMB_MONI , but not the correct payload in RWB - this is what you mean?

raj.

former_member196023
Active Participant
0 Kudos

>

> Haresh,

>

> Please correct me if I'm wrong

>

> You are seeing the correct payload in SXMB_MONI , but not the correct payload in RWB - this is what you mean?

>

> raj.

Exactly. this is what I mean.

justin_santhanam
Active Contributor
0 Kudos

Haresh,

This is really interesting - what ever you see in sxmb_moni should be the same in RWB as well.

If you don't mind can you paste the xml payload you are seeing in SXMB_MONI and RWB....

raj.

former_member196023
Active Participant
0 Kudos

xml payload from MONI


<?xml version="1.0" encoding="utf-8" ?> 
- <n0:Sender_DB_MT xmlns:n0="urn:test.com:SAPJDBC" xmlns:prx="urn:sap.com:proxy:ECD:/1SAI/TAS63F0C63EF256577CCC4E:701:2009/02/10">
- <Table1>
  <TableData TABLENAME="SAPPIReceiver_Table1" ACTION="INSERT" /> 
  <Table1 ID="A3" Salutation="Mr" LastName="Khandal" FirstName="Haresh" /> 
  </Table1>
- <Table1>
  <TableData TABLENAME="SAPPIReceiver_Table1" ACTION="INSERT" /> 
  <Table1 ID="A4" Salutation="Mr" LastName="Rhodes" FirstName="John" /> 
  </Table1>
- <Table2>
  <TableData TABLENAME="SAPPIReceiver_Table2" ACTION="INSERT" /> 
  <Table2 EntryId="3" ID="A3" AddressCode="A1" Address1="Adr1" /> 
  </Table2>
- <Table2>
  <TableData TABLENAME="SAPPIReceiver_Table2" ACTION="INSERT" /> 
  <Table2 EntryId="4" ID="A4" AddressCode="A2" Address1="Adr2" Address2="tt" City="Chicago" ProvinceCode="IL" PostalCode="60601" CountryCode="US" /> 
  </Table2>
  </n0:Sender_DB_MT>

from RWB


<?xml version="1.0" encoding="UTF-8" ?> 
- <ns0:ReceiverData_MT xmlns:ns0="urn:test.com:SAPJDBC">
- <STATEMENT>
- <TABLE_NAME ACTION="INSERT">
  <TABLE>SAPPIReceiver_Table1</TABLE> 
- <ACCESS>
  <ID>A3</ID> 
  <Salutation>Mr</Salutation> 
  <LastName>Khandal</LastName> 
  <FirstName>Haresh</FirstName> 
  </ACCESS>
  </TABLE_NAME>
  </STATEMENT>
- <STATEMENT>
- <TABLE_NAME ACTION="INSERT">
  <TABLE>SAPPIReceiver_Table1</TABLE> 
- <ACCESS>
  <ID>A4</ID> 
  <Salutation>Mr</Salutation> 
  <LastName>Rhodes</LastName> 
  <FirstName>John</FirstName> 
  </ACCESS>
  </TABLE_NAME>
  </STATEMENT>
  </ns0:ReceiverData_MT>

Thanks,

Former Member
0 Kudos

Hi Haresh,

Can you provide the xml payload after mapping has been done and of the receiver_MT structure from SXMB_MONI?

former_member200962
Active Contributor
0 Kudos

The First payload (SXMB_MONI) seems to be that of the Sender message and not the one which we get after mapping in SXMB_MONI

The Second payload is the one which is going into the DB....the one after the mapping is executed.

Where it would have gone wrong --> In-correct mapping program/ logic.

If you test the mapping in IR does it give you the required output?

Regards,

Abhishek.

former_member196023
Active Participant
0 Kudos

Ankesh n Abhishek,

I m not able to get the payload for Receiver Message Type.

But i've given test data in message mapping test in IR. and here is the result.


<?xml version="1.0" encoding="UTF-8" ?> 
<ns0:Receiver_DB_MT xmlns:ns0="urn:test.com:SAPJDBC">
<STATEMENT>
<TABLE_NAME ACTION="INSERT">
  <TABLE>SAPPIReceiver_Table1</TABLE> 
<ACCESS>
  <ID>A3</ID> 
  <Salutation>Mr</Salutation> 
  <LastName>Khandal</LastName> 
  <FirstName>Haresh</FirstName> 
  </ACCESS>
  </TABLE_NAME>
  </STATEMENT>
<STATEMENT>
<TABLE_NAME ACTION="INSERT">
  <TABLE>SAPPIReceiver_Table1</TABLE> 
<ACCESS>
  <ID>A4</ID> 
  <Salutation>Mr</Salutation> 
  <LastName>Rhodes</LastName> 
  <FirstName>John</FirstName> 
  </ACCESS>
  </TABLE_NAME>
  </STATEMENT>
<STATEMENT2>
<TABLE_NAME ACTION="INSERT">
  <TABLE>SAPPIReceiver_Table2</TABLE> 
<ACCESS>
  <EntryId>3</EntryId> 
  <ID>A3</ID> 
  <AddressCode>A1</AddressCode> 
  <Address1>Adr1</Address1> 
  </ACCESS>
  </TABLE_NAME>
  </STATEMENT2>
<STATEMENT2>
<TABLE_NAME ACTION="INSERT">
  <TABLE>SAPPIReceiver_Table2</TABLE> 
<ACCESS>
  <EntryId>4</EntryId> 
  <ID>A4</ID> 
  <AddressCode>A2</AddressCode> 
  <Address1>Adr2</Address1> 
  <Address2>tt</Address2> 
  <City>Chicago</City> 
  <ProvinceCode>IL</ProvinceCode> 
  <PostalCode>60601</PostalCode> 
  <CountryCode>US</CountryCode> 
  </ACCESS>
  </TABLE_NAME>
  </STATEMENT2>
  </ns0:Receiver_DB_MT>

former_member200962
Active Contributor
0 Kudos

Is it according to your requirement?

Why are you creating two different STATEMENT nodes for the same TABLE performing the same action.....why not create a single STATEMENT node for table1 and one for table2 with multiple occurences of ACCESS node within....at least is your data for table1 getting inserted into DB properly?

former_member196023
Active Participant
0 Kudos

>

> Is it according to your requirement?

> Why are you creating two different STATEMENT nodes for the same TABLE performing the same action.....why not create a single STATEMENT node for table1 and one for table2 with multiple occurences of ACCESS node within....at least is your data for table1 getting inserted into DB properly?

tables are not same those are different tables altogether.

from sender side, I am getting two different tables and each table having multiple records as well.

So how do I define receiver side data type having single statement with multiple occurrences of ACCESS node ?

I mean what type should ACCESS node be typed with?

-Haresh

justin_santhanam
Active Contributor
0 Kudos

Haresh,

You were not looking in the right place. In SXMB_MONI You can see set of pipelines correct? Inbound Message, Receiver Identification,Interface Determination, so on.

Please open Request Message Mapping and check for the payload there. It should match your RWB payload. Ok anyways it's different story.

The seems to be with Mapping - in order to confirm the same we would like to see the paylaod in Message Mapping step, which I described above. Can you paste it for us, please?

raj.

former_member200962
Active Contributor
0 Kudos

See you have SAPPIReceiver_Table1 and SAPPIReceiver_Table2.....so what i told was create (through ampping) one Statement for SAP PIReceiver_Table1 and one for SAPPIReceiver_Table2.....as of now you have to first get the mapping working....changing the structure can be taken care off later (if really required)

Regards,

Abhishek.

former_member196023
Active Participant
0 Kudos

I am bit confused...

when I've seen SXMB_MONI in Sender SAP System, it shows me


Green Flag	SENDER	PROXY	IENGINE
Checker Flag	SENDER	PROXY	IENGINE

and SXMB_MONI of PI System


Green Flag	CENTRAL	Inbound Message		Asynchronous	EO	IENGINE	AENGINE
Expand Icon	CENTRAL	Receiver Grouping	Asynchronous	EO	IENGINE	AENGINE
Checker Flag	CENTRAL	Response		Asynchronous	EO	IENGINE	AENGINE

is this ok?

former_member196023
Active Participant
0 Kudos

>

> See you have SAPPIReceiver_Table1 and SAPPIReceiver_Table2.....so what i told was create (through ampping) one Statement for SAP PIReceiver_Table1 and one for SAPPIReceiver_Table2.....as of now you have to first get the mapping working....changing the structure can be taken care off later (if really required)

>

> Regards,

> Abhishek.

I've already difined different statement (wiz statement, statement2) for different tables

former_member200962
Active Contributor
0 Kudos

one question still not answered....what do you see under the payload section of Request Message mapping in SXMB_MONI for this interface? Are you getting proper output in IR --> Mapping --> test if you use the same source payload from SXMB_MONI?

May be the payload itself is not able to satisfy mapping rules.

Regards,

Abhishek.

former_member196023
Active Participant
0 Kudos

>

> one question still not answered....what do you see under the payload section of Request Message mapping in SXMB_MONI for this interface? Are you getting proper output in IR --> Mapping --> test if you use the same source payload from SXMB_MONI?

>

> May be the payload itself is not able to satisfy mapping rules.

>

> Regards,

> Abhishek.

Yes, I am able to get the correct result in IR Mapping Test, you can see the same in my response on first page