Receiver jdbc adapter:how to implement the insert or update action in a sql
Hi,gurus:
I'm using receiver jdbc adapter now.
You know, we have to gave the action the value 'update' or 'insert',but in our case,the action is variant--update or insert.It decides whether the record exists in the outer database.
Can stored procedure do this?If I use stored procedure,then must I create a stored procedure in the outer database?
Or some other ways to solute my issue?
THanks in advance.
Hi
Use Action UPDATE_INSERT .
This action check if a record exist with same key value then update that record. In case no record with key value found in database then record inserted to database.
look receiver structure
http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
Similar Messages
-
Structure for Receiver Jdbc adapter for multiple tables
Hi,
For Receiver JDBC adapter,Standard structure
structure as
Statement
Tablename(TABLE1)
Action
Access
Can i make a structure like
Statement
Tablename(TABLE1)
Action
Access
fields....
Tablename(TABLE2)
Action
Access
fields......
As i am using tables and I want to insert or update both of them or one based on some conditions.
Will Insert be possible in single Statement or I have to create separate statements for each table. Can you please help me on this?
Thanks in advance
Best Regards,
Harleen Kaur ChadhaHi Harleen,
As already said by Dharanveer, all that you need to do is replicate the Statement level, so, istead of using this structure:
Statement
Tablename(TABLE1)
Action
Access
fields....
Tablename(TABLE2)
Action
Access
fields......
You will construct something like this:
Statement1
Tablename(TABLE1)
Action
Access
fields....
Statement2
Tablename(TABLE2)
Action
Access
fields......
And this structure will be created in a single Data Type, that will be used to create a single Message Type, that you will use in your Message Mapping, and, the 2(or more tables that you need to manipulate) will be inserted/updated without problems using this approach.
Thank you, and best regards,
Wilson -
How to handle BLOB field in receiver JDBC adapter into ABAP table
Dear Experts,
I am working in a synchronous scenario with Sender ABAP Proxy to Oracle Database as receiver via SAP PO 7.4.I will be calling a stored procedure view with fields ID, NAME,Age,*** and BLOB (Image binary).
1. The response from Oracle Database field BLOB is to be stored in ABAP table.Would I have to write any JAVA program to read the BLOB or the receiver JDBC adapter will handle it and store in a table by using ABAP proxy once it reaches ECC.
2. If yes, would the JAVA program have to deal with other 4 fields.
3. Can I use a UDF mapping to this BLOB field.
Regards
Rebecca...Dear Praveen,
Thanks for your response...
Please correct me if I am wrong.
1. For 1-1 response mapping for BLOB field, I will use just use the below UDF code.
public static byte[] hexStringToByteArray(String s) {
int len = s.length();
byte[] data = new byte[len / 2];
for (int i = 0; i < len; i += 2) {
data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4)
+ Character.digit(s.charAt(i+1), 16));
return data;
2. ===Using the byte data, create binary attachment in mapping for abap proxy response===
Could you please share how to create the binary attachment.. I am not clear
Regards... -
Multiple table insert using receiver jdbc adapter
Hi,
I am trying to insert data in to two tables in a single structure using receiver jdbc adapter. I am not using any stored procedure to insert data instead directly inserting the data using PI. Please see the structure I am using.
SOURCE side:
DT_ABC_SENDER
--IT_HEADER_TEXT
-- EBELN
-- LINENO
--TDTEXT
--IT_ITEM_TEXT
-- EBELN
-- LINENO
--TDLINE
TARGET side:
DT_ABC_RECEIVER
--InsertStatement
--HEADER_TEXT
-- action (insert)
-- Table (Table 1)
--access
-- IDS_ENQ_NO
-- IDS_DESC
-- IDS_TEXT
--ITEM_TEXT
-- action (insert)
-- Table (Table 2)
--access
-- IIS_ENQ_NO
-- IIS_DESC
-- IIS_TEXT
Using the above structure I am able to successfully insert the data in Table 1 but data is not getting inserted in Table 2.
In sxmb_moni it is saying message successfully delivered but I but there is data insertion took place in Table 2.
Please help me urgently.
Thanks in advance.
NeeerajHi Neeraj,
Add --InsertStatement statement for the second table structure in the same level of first InsertStatement.
Target structure like this:
DT_ABC_RECEIVER
--InsertStatement
--HEADER_TEXT
-- action (insert)
-- Table (Table 1)
--access
-- IDS_ENQ_NO
-- IDS_DESC
-- IDS_TEXT
--InsertStatement
--ITEM_TEXT
-- action (insert)
-- Table (Table 2)
--access
-- IIS_ENQ_NO
-- IIS_DESC
-- IIS_TEXT -
QUESTION abt "SQL_DML" of the Receiver JDBC Adapter
HI ALL,
i hav a doubt abt "SQL_DML" of the Receiver JDBC Adapter.
i wanna use two SQL Statements in the "SQL_DML" structure to manipulate two tables.
i.e.
<root>
<stmt>
<Customers action="SQL_DML">
<access>
INSERT INTO Customers VALUES (u2019$NAME$u2019, u2019$ADDRESS$', '$KEYFIELD$u2019);
INSERT INTO Companys VALUES('$NAME$')
</access>
<key>
<NAME>Company</NAME>
<ADDRESS>Street 3 </ADDRESS>
<KEYFIELD>CO</KEYFIELD>
</key>
</Customers>
</stmt>
</root>
BUT i cant ascertain if it permit like this writting above ??
Requset help in this regards.
Thx in advance.
brianHi,
You need to have two different statements. Each for one insert query. Your query will come under access tag and palceholders under kay tag. Action will remain same as you have given, but under both statements.
Ex:
<root>
<stmt1>
<Customers action="SQL_DML">
<access>
INSERT INTO Customers VALUES (u2019$NAME$u2019, u2019$ADDRESS$', '$KEYFIELD$u2019);
</access>
<key>
<NAME>Company</NAME>
<ADDRESS>Street 3 </ADDRESS>
<KEYFIELD>CO</KEYFIELD>
</key>
</Customers>
</stmt1>
<stmt2>
<Customers action="SQL_DML">
<access>
INSERT INTO Companys VALUES('$NAME$')
</access>
<key>
<NAME>Company</NAME>
</key>
</Customers>
</stmt2>
</root>
Hope this helps.
Regards,
Siddhesh S.Tawate
Edited by: siddhesh tawate on Apr 24, 2009 8:10 AM -
How does JDBC adapter reads or writes the data to DB
Hi All,
How does JDBC adapter read the data from a db, is it that it collects all the data in one go and sends to XI, or is it record by record. And what if it writes to a db?
XierHi,
It collects all record at one time and while writing to DB you can push all data at one go...
We are using receiver JDBC adapter to push data to DB and its one go..
Nilesh -
How to implement the schema validation with XSD in adapter module
Dear All,
I am trying to develop a EJB as the file adapter mudule.
Please guide me how to implement the schema validation of the source message with XSD.
Or provide me the relative resources about this task.
Thanks & Regards,
Red
Edited by: Grace Chien on Nov 19, 2008 8:23 AMHi Grace,
You can do the xml scema validation in PI7.1 version directly.
To develop the adapter module for xml schema validation
Validating messages in XI using XML Schema
Schema Validation of Incoming Message
Regards
Goli Sridhar -
What are the Batch mode parameters for Receiver JDBC Adapter
Hi All,
Could some pls tell me how to set bacth mode in receiver JDBC adapter and what are its parameters and how to configure them. i beleive there is something like max count parameters etc..
Regards,
XierHi,
Check this for more info
http://help.sap.com/saphelp_nw04s/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
Regards
Seshagiri -
Joins implementation receiver Jdbc Adapter
Hi All
I need some suggestions on the following scenario
Updation of a flag in a table where the column names in the WHERE clause are from two different tables in the same database.
i.e
UPDATE T1
Set T1.flag =1
where T1.columnA=value1 and T2.columnB=value2
where T1 and T2 are two different tables in the same database,
I want to accomplish this directly using UPDATE in JDBC receiver by using JOIN query in the structure.
kindly reply
thanks
sdHi Sd,
You can execute an SQL statement directly in your Receiver JDBC adapter.
Check this link for that,
http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
Check the part for STATEMENTNAME6 and also the example for that in the same link,
Regards,
Bhavesh -
Dear all,
By putting action=Insert in the Receiver Structure ,I could able to insert the data.
When I am Trying Delete or Update in the Same way I could not see the data modified in the table.
Please Let me know how to achieve the same.
Thanks,
SrinivasHi,
go thru these links:
http://help.sap.com/saphelp_nw2004s/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
/people/alessandro.berta/blog/2005/10/04/save-time-with-generalized-jdbc-datatypes
http://help.sap.com/saphelp_nw2004s/helpdata/en/4d/8c103e05df2e4b95cbcc68fed61705/frameset.htm
Also have alook at this
Receiver JDBC
/people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
/people/ajay.kumar/blog/2005/03/24/writing-bsp-for-sap-r3-version-46
/people/sugree.phatanapherom/blog/2005/08/14/configuring-sld-in-sneak-preview-sap-netweaver-04-sneak
/people/sanyam.kapur/blog/2005/04/30/custom-fields-and-bw-extractors-making-a-mixed-marriage-work-part-ii
Regards,
Akshay Jamgaonkar.
Reward points if find useful.
Message was edited by:
Akshay Jamgaonkar -
High volumes on receiver JDBC adapter
Hi,
We have a RFC ->JDBC scenario where the RFC pulls huge amounts of data from R/3 and sends to XI.
XI needs to upload this data into 5 different Db tables.Each table contains 3000-8000 records with each record containing 10-15 fields.
When we try to run this scenario, due to high volumes of data the JBDC adapter hangs and msgs were in 'holding/delivering' status for long time.
Please advice on possibilities of handling this within XI.Hi,
We changed the design and now we have only 'INSERT' and we don't have concerns with table refresh now.
I am splitting the records in XI mapping as bunches on 1000 each. But I found one of the tables have more that 1lakh records.
The data volume that we received in RFC is 150000 records(45MB). It took 7.5 mins to process this msg in Integration Engine.
But the messages delivery into Db tables (receiver JDBC adapter processing) is very slow.At maximum it can process 250 records in minute.
Please provide your inputs on this design. Is it Ok to accept 45MB message into XI at one shot? Even though the message got processed(splitted) in IE, they are processing in AE for long time. I believe this will have impact on other interfaces that use JDBC adapter.
Please provide your suggestions on how to improve the design/performance of this interface.
Thanks! -
Hi All,
I was trying to make a synchronous call to a receiver jdbc adapter with the help of
https://www.sdn.sap.com/irj/sdn/weblogs?blog=/pub/wlg/3928. [original link is broken] [original link is broken] [original link is broken] [original link is broken]
I am getting the following error in jdbc adapter.
<i>com.sap.aii.af.ra.ms.api.DeliveryException: ERROR:Processing request: Error when executing statement for table/stored proc. 'MISDetails': java.sql.SQLException: FATAL ERROR document format: structure 'STATEMENT', key element 'FiscalYear' contains no values</i>
My Source message is
<i><?xml version="1.0" encoding="UTF-8"?>
<ns:MT_FILE_OUT xmlns:ns="urn:ters">
<REQUEST>
<FISCALYEAR>2007</FISCALYEAR>
<YEARMONTH>1</YEARMONTH>
<OPERATION>EQ</OPERATION>
</REQUEST>
</ns:MT_FILE_OUT></i>
And JDBC request message is ..
<i><?xml version="1.0" encoding="UTF-8"?>
<ns:MT_JDBC_REQ xmlns:ns="urn:ters">
<STATEMENT>
<TABLENAMEACTION="SELECT">
<TABLE>MISDetails</TABLE>
</TABLENAME>
<ACCESS>
<FiscalYear> </FiscalYear>
<YearMonth> </YearMonth><ProductCode> </ProductCode><TargetVolume> </TargetVolume>
</ACCESS>
<KEY>
<FiscalYear compareOperation="EQ">2007</FiscalYear>
</KEY>
</STATEMENT>
</ns:MT_JDBC_REQ></i>
Regards,
SumitSumit, the problem is that </TABLENAME> is closed ealier than necessary.
This is how the JDBC datatype should be,
<?xml version="1.0" encoding="UTF-8"?>
<ns:MT_JDBC_REQ xmlns:ns="urn:ters">
<STATEMENT>
<TABLENAME ACTION="SELECT">
<TABLE>MISDetails</TABLE>
<ACCESS>
<FiscalYear> </FiscalYear>
<YearMonth> </YearMonth>
<ProductCode> </ProductCode>
<TargetVolume> </TargetVolume>
</ACCESS>
<KEY>
<FiscalYear compareOperation="EQ">2007</FiscalYear>
</KEY>
<b></TABLENAME></b>
</STATEMENT>
</ns:MT_JDBC_REQ>
The TABLE, ACCESS and KEY come under the TABLENAME tag.
Regards,
Bhavesh -
Messages are in hold state due to one message at receiver JDBC adapter
Hello,
I am using a receiver JDBC adapter and trying to send an XML file which has an insert query to insert some data into the database i.e., Oracle 9i.
Here at the receiver side due to one message ( which is in to be delivered state) all other messages are got hold and waiting for long time.
I am getting the exceptions as this,
JDBC Adapter processing failed with Error processing request in sax parser: Error when executing statement for table/stored proc. 'FSASMGR.XTBL_KL06_IINQUIRY' (structure 'REC01'): java.sql.SQLException: ORA-12899: value too large for column "FSASMGR"."XTBL_KL06_IINQUIRY"."CASE_TITLE" (actual: 81, maximum: 80)
Exception caught when executing statement for table/stored proc. 'FSASMGR.XTBL_KL01_ISTAFF_MST' (structure 'REC1'):
java.sql.SQLException: ORA-00001: unique constraint (FSASMGR.XTBL_KL01_ISTAFF_MST) violated
Can anyone help me out in solving this issue.
THanks,
Sooryahi surya,
jdbc channel tries a request for n number of times(no of rettries),if that request fails it will take up the following requests,its not like it will process a request forever.
to be delivered will be resulting if reciever is down or network between XI and database server is bad.
try to ping databse server from XI host system.
if everything is fine then look at the channel configuration->advanced->no of retries of database transaction on sql server.
just redue the count to 1 and recheck.
Regards,
rama Krishna -
Using Stored procedure in sender or receiver jdbc adapter
Hi All,
Please let me know simple blogs for Stored procedure used in sender or receiver jdbc adapter to get data from 2-3 tables
ThanksHi
To work with Store proceudres (SP) you have to create the SP's in database like Oracle, Mssql or Msaccess.
Ususally the SP creations are done by database experts. For more info about "SP" try Googling!
The below blog is about SP but not the one you expect!
/people/itisha.alok/blog/2009/03/23/jdbc-stored-procedure-returning-multiple-resultsets
Executing an Oracle Stored Procedure from Sender JDBC adapter
Sender Adapter - -
SP will contain the select Query alone or with it will contain insert, delete statement too.
Receiver:
SP will have insert or delete satement.
Adapter
http://help.sap.com/saphelp_nw04/helpdata/en/2c/181077dd7d6b4ea6a8029b20bf7e55/frameset.htm
The below details are required to configure the adapters
Driver details
database name
Procedure name
user name
password,
Regards
Ramg -
Problem in Receiver JDBC Adapter
Hello Gurus,
I am trying SAP -> Oracle Database Scenario.
Where i am passing Id and Email address into the Oracle.
In Runtime workbench, Receiver JDBC adapter Channel, i am able to see that message is in Success.
But if i am going into the Database and looking for that Record, it is not updating that record.
I am not able to understand what is happening.
Please help me out in this issue.
Thanks,
AkhilHI Akhil,
I know you might have verified alll datat hat will be passing to JDBC...but may I kindly request you to confirm about the table name that was passed in the Mapping once again.
While inserting or Updating are you using all the Key fields..that will allow you to create the unique entry..as if in case if the record is already exists then there may be problem of Indexing...of adding duplicate entry...and due to partial key fields Update statement will not work properly..
Also verify the ORACLE Database log...to get anymore details.
Thanks
Swarup
Maybe you are looking for
-
I had booted the system many times., tried option command P R buttons at the same time. No luck. If the Imac is connected to internet by ethernet port, sometimes the screen is just black and blank to which i had to remove internet port after which if
-
IChat webcam with non webcam user
I want to set up iChat video conference with my family back in Georgia. They all have Google Talk log ons and I have successfully text chatted with them but I never see where I can invite them to video chat with me. They don't have web cams but I wan
-
Developing Z report of Workflow : Data retrieve for work id
HI all, Iam developing a workflow report for account payables and receivable , I have got the linkage between the work id and the document . Now i want 1. Reason for which the document was parked 2. Reason for which the document was Rejected 3 Addit
-
Why does it say "waiting" for every app I try to download via app store on iphone 4s?
When I try to buy apps they no longer download - they are greyed out on my homee sceen and just say "waiting"....what do I do?
-
Activate windows using powershell
I am after a PowerShell script which can check for OS ,check channel for example if it is on MAK then replace it with a KMS channel and then update windows with a generic KMS key and then activate windows . From command prompt I achieve it using slmg