How to Insert all Records together using JDBC Receiver Adapter.
Hi,
Suppose, I have to send 5 records and from R/3
(using client Proxy) using XI and insert/update all these records in a database.
In case I want to update all the 5 records else mark it as fail and return the response synchronously to R/3, what should be my approach?
Can we do it using native sql querries, if yes could you plese tell me how to do so.
I have never used native sql queries.
Thanks in advance.
Regards
Pushkar
hi,
>>>>Can we do it using native sql querries, if yes could you plese tell me how to do so.
why don't use use standard jdbc adapter and standard jdbc document formats?
the sync jdbc call will return the number of affected /deleted rows
Regards,
michal
Similar Messages
-
Inserting into two tables using JDBC Receiver Adapter
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,
-HareshIt 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 -
How many messsages can we insert using JDBC receiver adapter in to DB
Hi Friends,
We are having 30 JDBC receiver interfaces in my current implementation project; load of JDBC receiver interfaces was 50 k messages per day and Performing only INSERT operation on data base.
We have created individual communication channel for every JDBC receiver interface and max concurrency value set in CC was 5.
Now we are testing all interfaces in quality with all possible cases, but we found that JDBC receiver adapter unable to process 50 k messages per day, we are on PI 7.1 EHP1 SP7.
Please share your experiences with JDBC adapter receiver like per day how many messages we can transfer.
Thanks a Ton,
RajRaja Sekhar Reddy T wrote:
we are processing 50 k individual messages.
>
> I have increased max threads for JDBC receiver to 20 but no luck same rate only . My questions here is how many messages we can trasfer using JDBC receiver adapter?
>
> Regards,
> Raj
Hi raj,
I have seen some interfaces that deal with upload of 5000 rows at a rime.. I don't there will be a restriction in the no of messages that can be transferred using the JDBC adapter as such unless until the requirement is so para-normal and in your case it is not
Kind regards
XA -
Error while updating database using jdbc receiver adapter
Hi All,
I am trying to update a single record using jdbc receiver adapter.
This is my the message that is getting created..
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:Data xmlns:ns0="urn:Test">
- <STATEMENT>
- <TABLENAME ACTION="UPDATE_INSERT">
<TABLE>ORDERS</TABLE>
- <ACCESS>
<OrderID>99999</OrderID>
<CustomerID>VICTE</CustomerID>
<EmployeeID>3</EmployeeID>
<ShipAddress>VICTE</ShipAddress>
</ACCESS>
- <KEY>
<OrderID compareOperation="EQ">99999</OrderID>
<ShipAddress compareOperation="EQ">VICTE</ShipAddress>
</KEY>
</TABLENAME>
</STATEMENT>
</ns0:Data>
But in Adapter Monitoring i am getting the following error..
<i>Error while parsing or executing XML-SQL document: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ORDERS' (structure 'STATEMENT'): java.sql.SQLException: [Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near 'VICTE'.</i>
Regards,
RahulRahul,
> In this case i believe the interface has to be synch.
> So what will the response message type be like..
Not necessary. UPDATE can be asynch as well.
Can you turn the trace on like pointed by Michal and then you can see the Query in the Audit Log of the adapter montioring. Try to execute the same query from your DB Client like TOAD and see what is the Syntax error you are getiing.!
The problem looks like some field has some dataype / column name mismatch.
Regards
Bhavesh -
How to modify oracle stored procedure for JDBC Receiver Adapter?
Hi all.
This is Urgent.
Scenario is
SELECT a TABLE with procedure and update column with it,
then send data to SAP System with RFC Adapter.
When I executed a sync bpm, scenario was finished internal error.
Pls, let me know how to correct procedure using JDBC Receiver Adapter?
Regrds all.
Procedure Code -
SET SERVEROUTPUT ON
CREATE OR REPLACE PROCEDURE zwtn2
IS
v_seller_company wtnivhd.seller_company%TYPE;
v_invoice_no wtnivhd.invoice_no%TYPE;
v_report_date wtnivhd.report_date%TYPE;
v_customs_date wtnivhd.customs_date%TYPE;
v_ap_post_date wtnivhd.ap_post_date%TYPE;
v_gr_date wtnivhd.gr_date%TYPE;
CURSOR l_cursor IS
SELECT seller_company,
invoice_no,
report_date,
customs_date,
ap_post_date,
gr_date
FROM wtnivhd
WHERE wtn_send_flag = 'N'
AND rownum < 31
FOR UPDATE;
BEGIN
OPEN l_cursor;
LOOP
FETCH l_cursor
INTO v_seller_company,
v_invoice_no,
v_report_date,
v_customs_date,
v_ap_post_date,
v_gr_date;
EXIT WHEN l_cursor%NOTFOUND;
UPDATE wtnivhd
SET wtn_send_flag = 'Y'
WHERE CURRENT OF l_cursor;
END LOOP;
CLOSE l_cursor;
END zwtn2;Hi Alex,
plz have a look to Runtime Workbench / Adapter Monitoring to find an error message.
Regards,
Udo -
Executing Select query using JDBC Receiver Adapter
I created couple types in Oracle and also new function instead of procedure
Can I execute the above query using JDBC Receiver Adapter.
select *
from the ( select cast( apr.get_distribut('', '', '', 'hdfcgd', 'CAN') as dsrTable )
from dual );
If possible how my message structure should look like...Hi vikram,
If you use JDBC as Receiver Adapter you can only post the data to the data base I do no think so we can select the records from the data base.
If you use JDBC as Sender hope,we can the select query in the sender communication channel.
Hope I am clear.
Thanks and Regardds,
Chandu. -
Error while using Jdbc receiver adapter
Hi,
Iam using a receiver jdbc adapter to update a table in my database.Here iam using 'UPDATE' as my action in the mapping.It is giving the foowing error....
Error while parsing or executing XML-SQL document: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)
Can Please anybody tell me what may be the problem with my scenario...
Thanks & Regards,
Radhika.Hi ,
action type should be attribute . Please go through the following structure for update .
<b>
<?xml version="1.0" encoding="UTF-8"?>
<ns1:MT_RESPONSE xmlns:ns1="http://com/Test">
<STATEMENT_NAME>
<TABLENAME action="UPDATE">
<TABLE>Utility</TABLE>
<access>
<Updated_On/>
</access>
<key>
<TrnHisID/>
</key>
</TABLENAME>
</STATEMENT_NAME>
</ns1:MT_RESPONSE></b>
query for above we may say as
<b>UPDATE Utility set Updated_On='' where TrnHisID =''</b>
Hope it helps
Regards.,
V.Rangarajan -
Junk character being sent by Jdbc Receiver adapter
Hi all,
I am using jdbc receiver adapter it s working fine .However for costumer name it is sending some junk character in last like " SMAN-Abdulrahman Osman¿ " the thing is that all other field is getting populated properly. when I am viewing the data in sxmb_monni .I am finding the data is prpoer but when it is getting posted to staging table then junk character is coming .I am coused whether it is mistake of JDBC adapter or something wrong in the staging table.
Regards,
SaurabhHi Vijay
But for JDBC adapter where I will use the encoding...It is IDoc to Jdbc scenario.So I haave already used the encoding option in RFC destination.Now where to define the encoding in jdbc adapter I am not sure.
One more thing I had used the encoding in RFC to read arabic charachter now its reading arabic charchter currectly but when the name is coming in english then it is getting appended by ¿. for example SMAN Saleh Ahmed Mustafa¿
surprisengly in other column if value is coming in english also it is coming properly. could it be a problem in staging table itself. i am pitting one row below.
Nural.L.L.C¿ Yerevan-Armenia 99999 Yerevan Community -
Storedprocedure trigger using JDBC sender adapter.
Hi All,
How can i execute the storedprocedure using JDBC sender adapter. I need to trigger the storedprocedure once in every hour. so i would like to use the JDBC sender adapter. My question is what is the SQL i need use in the SQLstatement parameter..?? I don't want to send parameters and not expecting any return values. It should just trigger the procedure.
Thanks in adv.
Regards,Hi Murali,
it is possible to execute a stored porcedure using a sender JDBC adapter.
Just Specify an SQL EXECUTE statement to execute a stored procedure, which contains exactly one SELECT statement.
This will have to be done for your SELECT statement in JDBC adapter. ALso, make the UPDATE as either TEST, if you dont want any updations or give an UPDATE statement for the UPDATE query.
Set the polling interval of your JDBC adapter to 1 hour and it will work like u want.
http://help.sap.com/saphelp_nw04/helpdata/en/7e/5df96381ec72468a00815dd80f8b63/content.htm
Regards,
Bhavesh -
Hi
I am trying insert rows in Oracle database using JDBC receiver adapter setup in PI 7.1. However this receiver adapter is throwing following exception.
Delivering the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'PRADEEP_OTC_ORDERS' (structure 'statement'): java.sql.SQLException: ORA-00904: "BATCH_ID": invalid identifier .
<?xml version="1.0" encoding="UTF-8" ?>
<ns0:mt_sql_writer xmlns:ns0="http://rdbms_poc">
<statement>
<dbtablename action="INSERT">
<table>PRADEEP_OTC_ORDERS</table>
<access>
<order_id>19126</order_id>
<version>1</version>
<batch_id>132</batch_id>
</access>
</dbtablename>
</statement>
</ns0:mt_sql_writer>
PRADEEP_OTC_ORDERS table has just 3 columns as specified the access segment. However I stil get this ORA-00904 error message.
Any idea on what could be wrong.?
Thanks
-PradeepHi All,
Thanks a lot for responding...
I verified the table structure, table just contains those 3 coulms all varchar type.
I modified the column name as well, But was still getting ORA-00904. Then I went directly to the the database and executed below insert statement,
insert into PRADEEP_OTC_ORDERS (mps_order_id, mps_version,mps_batch_id) Values(1,2,3)
I got exact SQL Error: ORA-00904: "MPS_BATCH_ID": invalid identifier.
So ISAP JDBC adapter is not enclosing the string values in quotes.
SAP documentation says it puts quotes for values and treats everything as string(text).
Anybody has any idea, why JDBC receiver adapter not enclosing the values in quotes?
Thanks
-Pradeep -
Alerts for JDBC Receiver Adapter
Hi ,
I am using JDBC receiver adapter. I have configured the alert category and Alert rules. Alerts are getting for Mapping etc.
When ever error occured in the SQL server whether its firewall issue or some other issue. The alerts are not created. Instead I can see the error message in RWB Message monitoring and communicaton channel monitoring.
Please let me know How can raise alerts if the error occured at the JDBC receiver side.
Thanks in advance,
KevinHi Kevin,
Probabaly the alert rule did not capture the error in the adapter engine.
The filter for sender and receiver interface details in the alert rule can cause this issue depending on when and how the error occured. Can you create an alert rule with * for all entries, for adapter engine and check?
Also do NOT check the option "suppress multiple alerts from this rule" because it will prevent subsequent alerts from this rule, if there is already one and not yet confirmed.
Further please check the alerts in SALRT table in se16 if its created properly or via transaction ALRTDISP.
Please use the report SXMSALERT_LOGREADER for troubleshooting and checking the alert logs.
Hope this helps.
Regards,
Francis -
Hi All,
I am executing SP by using JDBC Receiver Adapter.
My strcture is follows
<STATEMENT2>
<SP_CREATE_T_BATCH action="EXECUTE">
<spName type="VARCHAR">SP_CREATE_T_BATCH</spName>
<IN_Control_Recipe hasQuot="No" type="Integer">100000000001723850</IN_Control_Recipe>
</SP_CREATE_T_BATCH>
</STATEMENT2>
The below error I am getting
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'SP_CREATE_T_BATCH' (structure 'STATEMENT2'): java.lang.NumberFormatException: For input string: "100000000001723850"
Any help on thisHi Ram,
Since you mentioned that your SP has one input parameter and one output parameter, the structure of the XML message at the JDBC receiver side should be:
<STATEMENT2>
<SP_CREATE_T_BATCH action="EXECUTE">
<IN_Control_Recipe isInput="true" hasQuot="No" type="BIGINT">100000000001723850</IN_Control_Recipe>
<Output_Parameter isOutput="true" type="SQLDataType"></Output_Parameter>
</SP_CREATE_T_BATCH>
</STATEMENT2>
Here, i have assumed the following:
SP_CREATE_T_BATCH - The name of the Stored Procedure to be executed
IN_Control_Recipe - Input parameter of the SP and its SQLDataType is BIGINT as suggested by Stefan.
Output_Parameter - Output parameter of the SP. You may enter the SQL data type as per the output of your Stored Procedure.
The following SQL data types are supported:
INTEGER, BIT, TINYINT, SMALLINT, BIGINT, FLOAT, REAL, DOUBLE, NUMERIC, DECIMAL, CHAR, VARCHAR, STRING, LONGVARCHAR, DATE, TIME, TIMESTAMP, BINARY, VARBINARY, LONGVARBINARY, BLOB (input and output),CLOB (input and output), CURSOR (output; only in conjunction with the Oracle JDBC driver).
Hope this will surely solve your problem.
Regards, Gaurav. -
Store procedure in JDBC Receiver adapter
Hi,
I am calling stored procedure using jdbc reeciver adapter . showing below error. In oracle database it is under functions not in the procedure. functions and stored procedure are same? is it should be create under procedure?
error message:
Message processing failed. Cause: com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'GET_ALL_SALESREPINFO' (structure 'statement'): java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00221: 'GET_ALL_SALESREPINFO' is not a procedure or is undefined ORA-06550: line 1, column 7: PL/SQL: Statement ignored
Sql query:
<?xml version="1.0" encoding="UTF-8"?>
<ns1:TerritoriesAndSalesRepsRequest xmlns:ns1="http://allergan.com/TerritoriesAndSalesRepsServiceList/1.0">
<statement><GET_ALL_SALESREPINFO action="EXECUTE">
<P_REP_LOGIN isInput="1" type="VARCHAR">sdfsfd</P_REP_LOGIN>
</GET_ALL_SALESREPINFO>
</statement></ns1:TerritoriesAndSalesRepsRequest>
oracle function
DECLARE
RETURN_VALUE BEACONDM_ETL.ACCT_TABLE_TYPE;
P_ZIP_CODE VARCHAR2(2000) := '-';
BEGIN
RETURN_VALUE := BEACONDM_ETL.GET_ACCT_INFO(P_ZIP_CODE);
--DBMS_OUTPUT.PUT('RETURN_VALUE: ');
--DBMS_OUTPUT.PUT_LINE(RETURN_VALUE);
DBMS_OUTPUT.PUT('P_ZIP_CODE: ');
DBMS_OUTPUT.PUT_LINE(P_ZIP_CODE);
END;
GO
DECLARE
RETURN_VALUE BEACONDM_ETL.SALESREP_TABLE_TYPE;
P_REP_LOGIN VARCHAR2(2000) := '-';
BEGIN
RETURN_VALUE := BEACONDM_ETL.GET_ALL_SALESREPINFO(P_REP_LOGIN);
--DBMS_OUTPUT.PUT('RETURN_VALUE: ');
--DBMS_OUTPUT.PUT_LINE(RETURN_VALUE);
DBMS_OUTPUT.PUT('P_REP_LOGIN: ');
DBMS_OUTPUT.PUT_LINE(P_REP_LOGIN);
END;
GO
Please send me if you have any blogs for calling stored procedure using jdbc receiver adapter.Hi Madhu,
>>>I am calling stored procedure using jdbc reeciver adapter . showing below error. In oracle database it is under functions not in the procedure. functions and stored procedure are same? is it should be create under procedure?
Of course there is difference between Oracle functions & Stored procedures:
Re: Populating DropdownByKey by accessing backend
As far as i know and have configured and used Stored procedures with the JDBC adapter, it can be used with Oracle stored procedures (leave it to the experts to comment on the Oracle functions part). So if you change it to stored procedure then it should work fine.
You may then define your Message structure as follows:
http://help.sap.com/saphelp_nw73/helpdata/en/44/7b72b2fde93673e10000000a114a6b/content.htm
And you may also like to refer the following blog on stored procedures:
PI JDBC Stored Procedure test scenario
Hope this helps. Regards, Gaurav -
How to update and insert the records without using Table_comparison and Map_operation?
Use either join or MERGE see this Inserting, Updating, and Deleting Data by Using MERGE
-
How to insert null record (some col) in table using loop
Hi,
How to insert null record (for some columns) in table using loop.
sample data of x_tab
order_id order_name
231 xxx
123
345
111 vvvv
Thanks,
Lakshman
Edited by: kolipaka on Jul 5, 2012 1:37 PMYou have a table
CREATE TABLE tab (
col1 NUMBER,
col2 NUMBER,
col3 NUMBER,
col4 NUMBER
col5 NUMBER)Now you insert:
INSERT INTO tab (col2, col4) VALUES (5, 7);col1, col3 and col5 are NULL by default (there is no DEFAULT clause for these columns so they are NULL).
Maybe you are looking for
-
Can not connect outside of Lan to with rtsp PVC2300
I have the following cameras set up at my office 1 - PVC2300 2 - WVC54GC 3 - AXIS 225FD I have a BEFSR81 Router I have a computer on Windows XP running the surv software to record. Everything with that is good. I also have 2 desktops. I have been pl
-
Additional Account Assignment not working
Dear all, I implemented Functional Area as additional account assignment. Then I entered Functional area in asset master record. When I post depreciation using AFAB, I can NOT see functional area. What would be the reason? Best regards, Onur
-
Add a dollar sign in the output of a field.
How do I add a dollar sign to a dynamic money field? I am not allowed to leave a space between the dollar sign and the money amount. My data contains 200.00 or 1000.00 and I need a dollar sign in front of any amount.
-
Help: analyze microsoft word docs
I'm trying to write a program to run linguistic analysis on Microsoft Word documents. I understand how to do i/o with plain text files. But for a Word document, how do I deal with those extra formatting? Can any of you Java gurus out there give me so
-
PS CS4 will not open after carbon copying drive to new SSD on MacPro
PS CS4 will not open after carbon copying drive to new SSD on MacPro. Pop-up windows inform me that the scratch disk is not available. I would appreciate any advice on how to rectify this problem. Thanks marco