Execute stored-prozedure in sql-statement in jdbc-adapter for sender
Hello,
in the sql-statement i call a stored procedure which makes following:
- doing a selcet
- update one field
- give a recordset back
In the update-field i write:
But in the adapter monitoring i become a sql-exception:
Error: SQLException during query 'EXECUTE st_enum_EAI_lokation': java.sql.SQLException: [SQLServer 2000 Driver for JDBC]No ResultSet set was produced.
I´m using sql-server.
So there is no resultset coming back...
The reason for the stored-procedure is that it is not allowed to make changes in a productive data-base directly by an update.
What´s the problem?
Thanks in advance,
Frank
Currently, the jdbc sender adapter cannot execute Oracle's stored procedure. Oracle's stored procedure cannot return a resultset, which is required by the jdbc sender adapter.
An adapter user-module is available for a sender adapter to execute Oracle's stored procedure.
If you are interested, I can send it to you.
Regards
Similar Messages
-
Where to see generated SQL statement from jdbc adapter?
Hi everybody,
where can I see the generated SQL statement from JDBC adapter?
Regards MarioYes and True lterally means the same, but alas XI does not understand literature..
Just checked the note as well, as you are correct!
Regards
Bhavesh -
Hi all,
how can I see the SQL Statement which is made by the JDBC Adapter.
I have createt the XML Structure, but I want to know how PI (7.11) transformed the XML to SQL.
How can I trace the JDBC Adapter? Which configuration is neccessary? Where can I find the trace?
Thanks very much for your help!
JürgenHi,
this is my Auditlog
Audit-Protokoll für Message: caded0e4-b287-1def-92a9-907432c01001
Zeitstempel Typ Beschreibung
2010-04-16 13:38:02 Information The message was successfully received by the messaging system. Protocol: XI URL: http://serv3709:52800/MessagingSystem/receive/AFW/XI Credential (User): PIISUSER
2010-04-16 13:38:02 Information Using connection JDBC_http://sap.com/xi/XI/System. Trying to put the message into the request queue.
2010-04-16 13:38:02 Information Message successfully put into the queue.
2010-04-16 13:38:02 Information The message was successfully retrieved from the request queue.
2010-04-16 13:38:02 Information The message status was set to DLNG.
2010-04-16 13:38:02 Information Delivering to channel: test_etl
2010-04-16 13:38:02 Information JDBC Adapter Receiver processing started, required QoS BestEffort
2010-04-16 13:38:02 Information JDBC Adapter Receiver Channel test_etl: processing started; party / service E_DWH.
2010-04-16 13:38:02 Information IS_RUN.MAP_SYS_LADELAUF_START.MAIN
2010-04-16 13:38:02 Information Database request processed successfully.
2010-04-16 13:38:02 Information The message was successfully delivered to the application using connection JDBC_http://sap.com/xi/XI/System.
2010-04-16 13:38:02 Information The message status was set to DLVD. -
ALDSP 3.0 -- schema owner for stored procedure or SQL Statement
Using ALDSP, I have a need to create a physical service based on a stored procedure or a SQL statement. I am wondering what will happen when I move to another deployment environment where the schema owner changes. In our QA and Prod environments, we have a different schema owner for all tables in the application (the DBAs believe this prevents unwanted updates to a prod environment). DSP elegantly supports this for normal table- and view-based physical services by mapping schemas through the DSP console after deployment. Will I get the same type of mapping capability for stored procedures and SQL statements? I noticed that I can add a SQL-based function to a physical service...is there a way to pass in the physical table name from that data service to the procedure or SQL statement?
Thanks,
JeffSchema name substitution should work for stored procedures just like it does for tables. If it doesn't - report a bug.
You don't get any help for sql-statement based data services - dsp doesn't parse the sql provided. One thing you could do is use the default schema (following the user of your connection pool), and not specify the schema in your sql-statement. -
Multiple SQL statements from JDBC
Dear All,
We are working on R/3- >XI->JDBC scenario. We have sender as Proxy which sends some data to XI which needs to be Updated in multiple database tables in oracle. We have few Insert,Update and Delete Query to beHi
yes this can be done by using the concept IDOC to JDBC
ALe settings for thi s are :
Steps for XI
Step 1)
Goto SM59.
Create new RFC destination of type 3(Abap connection).
Give a suitable name and description.
Give the Ip address of the R3 system.
Give the system number.
Give the gateway host name and gateway service (3300 + system number).
Go to the logon security tab.
Give the lang, client, username and password.
Test connection and remote logon.
Step 2)
Goto IDX1.
Create a new port.
Give the port name.
Give the client number for the R3 system.
Select the created Rfc Destination.
Step 3)
Goto IDX2
Create a new Meta data.
Give the Idoc type.
Select the created port.
Steps for R3.
Step 1)
Goto SM59.
Create new RFC destination of type 3(Abap connection).
Give a suitable name and description.
Give the Ip address of the XI system.
Give the system number.
Give the gateway host name and gateway service (3300 + system number).
Go to the logon security tab.
Give the lang, client, username and password.
Test connection and remote logon.
Step 2)
Goto WE21.
Create a port under transactional RFC.(R3->XI)
Designate the RFC destination created in prev step.
Step 3)
Goto SALE.
Basic settings->Logical Systems->Define logical system.
Create two logical systems(one for XI and the other for R3)
Basic settings->Logical Systems->Assign logical system.
Assign the R3 logical system to respective client.
Step 4)
Goto WE20.
Partner type LS.
Create two partner profile(one for XI the other for R3).
Give the outbound or inbound message type based on the direction.
Step 5)
Not mandatory.
Goto BD64.
Click on Create model view.
Add message type.
Step 6)
Goto WE19
Give the basic type and execute.
fill in the required fields.
Goto IDOC->edit control records.
Give the following values.(Receiver port,partner no.,part type and sender Partner no. and type)
Click outbound processing.
Step 7)
Go to SM58
if there are any messages then there is some error in execution.
Goto WE02.
Check the status of the IDOC.
Goto WE47.
TO decode the status code.
BD87 to check the status of IDOC.
In case if not authorized then go to the target system and check in SU53, see for the missing object
and assign it to the user.
for scenario reffer link
Configuring JDBC Connector Service To Perform Database Lookups
http://searchsap.techtarget.com/tip/0,289483,sid21_gci1246926,00.html
Configuration of JDBC Adapter for SQL Server
JDBC Driver = com.microsoft.jdbc.sqlserver.SQLServerDriver
Connection = jdbc:microsoft:sqlserver://hostname:<port>;DatabaseName=<DBName>
UserID and Password
Configuring the Receiver JDBC Adapter
http://help.sap.com/saphelp_nw2004s/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm
hope this helps you
Regard's
Chetan Ahuja -
Stored procedure : how to call SP in sender JDBC adapter for mysql
HI friends ,
we have JDBC---->XI--
>SAP scenario. For some business requirement, we have to call STORED PROCEDURE , please let me know how to call SP in sender JDBC adapter for mysql .
Thanks
mojibHi Mojib,
Please create a sample stored procedure like this which contains select statement and in communication channel give
wite stored procedure name only to sql query statment and in update statement write <test>.
I am executing this stored procedure successfully.
Create Proc GetResultX As
Begin
Select * From TESTX
End
Execute statement for stored procedure is :
Exec GetResultX
Regards
Laxmi Bhushan Jha
Rewards point if found usful
I have given same answer to one of the same thread -
DYnamic select statement in JDBC adapter?
Hi guys,
Is it possible so send dynamic select statement in jdbc adapter?
XIerAamir,
The poster did not specify whether this was sender or receiver channel, but it would only make sense that a "dynamic query" must be on the receiver communication channel since if it was on the sender channel, the channel would have to intelligently determine how to do dynamic queries.
Also, the poster asked if there was a way to "send a dynamic query" to the channel. This seems to imply that the channel is receiving information from somewhere to determine the query, which could only mean it is a receiver channel.
If you would like more information on the JDBC sender communication channel, please open a new thread. -
Error in XI Sender JDBC adapter for AS/400 DB2
We are trying to connect to AS/400 DB2 from XI's Sender JDBC Adapter. we got the driver from DataDirect (connectjdbc.jar) and configured it within XI .The configuration according to the manual for this jar file is
// Register the driver with the driver manager
Class.forName("com.ddtek.jdbc.db2.DB2Driver");
// Establish the Connection
String url = "jdbc:datadirect:db2://corpserver1:50000;LocationName=ACCTNG";
Connection con = DriverManager.getConnection(url, "test04", "test04");
In XI we configured this as:
Driver = com.ddtek.jdbc.db2.DB2Driver
Connection = jdbc:datadirect:db2://servername;LocationName=NBHAGWAT
and specified the user id and password
<b>Note</b>: The Port Number is optional
When this was done in XI, we got the below error in the Adapter Monitoring:
Sender Adapter v2108 for Party '', Service 'JDBCtoFile':
Configured at 2006-12-19 15:45:31 MST
History:
- 2006-12-19 15:45:31 MST: Retry interval started. Length: 10.000 s
- 2006-12-19 15:45:31 MST: Error: Accessing database connection 'jdbc:datadirect:db2://AS400a;LocationName=NBHAGWAT' failed: DriverManagerException: Cannot establish connection to URL 'jdbc:datadirect:db2://AS400a;LocationName=NBHAGWAT': SAPClassNotFoundException: com.ddtek.jdbc.db2.DB2Driver
- 2006-12-19 15:45:31 MST: Processing started
Is this because there is something wrong because the way the connection string is specified.
Anybody who has configured XI Sender JDBC adapter for AS/400 DB2, please send us some information on this.
Thank you,
Regards,
Balaji> SAPClassNotFoundException:
> com.ddtek.jdbc.db2.DB2Driver
It looks like your JDBC driver is not found. Have you deployed the driver to XI?
<a href="https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10">https://www.sdn.sap.comhttp://www.sdn.sap.comhttp://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/3867a582-0401-0010-6cbf-9644e49f1a10</a> -
How to use Native SQL statement in JDBC receiver interface
Dear All,
Can any one please help us in using Native SQL statement in a JDBC receiver channel. The reason why I need to use Native SQL statement instead of standard XML structure is that I need to execute a dynamic SQL query in third party database system lke:-
Select Field1 Field2 from TABLE Where Field3 like "%Name'
I expect the the response in the form of XML file which I can pick up using synchornous interface as mentioned on help.sap.com:-
http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
The value for %Name can change dynamically according to the transaction and hence cannot be inluded as a KEY element in standard XLM structure,
Hence I need to know:-
1. What message mapping I should use in case if I have to use Native SQL statement.
2.What operation mapping I should use in case if I have to use Native SQL statement.
If guess correclty I may have to use Java mapping to do the above activities. Hence I want to know
3 .How do to go about it to do the Java mapping.
Thanks
Ameet>
Ameet Deshpande wrote:
> Dear All,
>
> Can any one please help us in using Native SQL statement in a JDBC receiver channel. The reason why I need to use Native SQL statement instead of standard XML structure is that I need to execute a dynamic SQL query in third party database system lke:-
>
> "
> Select Field1 Field2 from TABLE Where Field3 like "%Name'
> "
> I expect the the response in the form of XML file which I can pick up using synchornous interface as mentioned on help.sap.com:-
>
> http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
> http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
>
> The value for %Name can change dynamically according to the transaction and hence cannot be inluded as a KEY element in standard XLM structure,
>
> Hence I need to know:-
>
> 1. What message mapping I should use in case if I have to use Native SQL statement.
> 2.What operation mapping I should use in case if I have to use Native SQL statement.
> If guess correclty I may have to use Java mapping to do the above activities. Hence I want to know
> 3 .How do to go about it to do the Java mapping.
>
> Thanks
> Ameet
You can use a stored procedure, and call it from jdbc receiver adapter.
I also solve this issue, with a DBLookup in message mapping. You can refer to my blog, and this usefull 3d:
http://simonlesflex.wordpress.com/2010/12/07/pi-oracle-dblookup/
/people/alessandro.guarneri/blog/2006/03/27/sap-xi-lookup-api-the-killer
/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler -
Executing xml sql using jdbc adapter for date conversion
Hi experts,
I am following the fllowing blog for date format conversion for a jdbc receiver.
/people/alessandro.berta/blog/2005/10/04/datetime-datatypes-and-oracle-database
I constructed my graphical mapping to generate the following query
DateField in receiver structure = TO_DATE('2008-03-24','DD-MON-YY')
attribute hasQuot = No
The result that i want is 24-MAR-08
I am getting the error in communication channel monitoring as does not match string format.
The database gets successfully updated without this date conversion. But when i try to use this, it give the above error.
Is there any other configuration to be done to make the adapter execute this statement?
Regards,
ShamlyThe issue is solved.
The SQL statement was wrong.
The correct version is,( as was specified in the blog ) :-
DateField in receiver structure = TO_DATE('2008-03-24','YYYY-MM-DD')
Automatically in the database it is converted to 24-MAR-2008
Edited by: Shamly MM on Mar 27, 2008 8:01 AM -
Update SQL statement in JDBC sender (system fields)
All,
Is it possible to update more than 1 field via the update sql statement ?
Also, is it possible to use system fields ?
Something like this
UPDATE database.table SET processed='Y', date = sy-datum
Regards, MichelHi
use sysdate as suggested above
Check your generated SQL query format is correct
At runtime you can find the genereated sql statements by doing configuraitons in Receiver JDBC adapter.
In the JDBC Receiver adapter you have the Advanced Properties .
Over there enter the following
left column logSQLStatement
right column true
To see the query created ..
Login to adapter monitoring ..select the relevant jdbc adapter.
Now when any message is processed by the jdbc adapter in adapter monitoring at that time you will see a message link. When you click on that link a new window will open. In that window if you click on page down you will get to see the sql statement generated by the jdbc adapter. -
Buffer size for SQL statement using JDBC calls
I need to find out the buffer size for SQL statements in jave/JDBC because I need to insert or update a field that could be up to 4KB in size.
I'm not sure that I follow the question; I'm not sure which buffer size you're referring to.
If you have a field that can store up to 4k worth of data, you would create a VARCHAR2(4000) column in the Oracle database (assuming it is character data) or a BLOB column (if the data is binary). Either of those two fields can be populated from JDBC.
Justin
Distributed Database Consulting, Inc.
http://www.ddbcinc.com/askDDBC -
Execute just that one SQL statement ....
Would like to request to add running just that one sql statement in the statment worksheet which has your cursor in it without having to select the entire statement.
Updating any part of a statement deselects it ..... reselecting a larger statement is cumbersome and time consuming
Regards
RonaldThere are some problems with the statement selection (as per the other reply) but you can run just the current statement that the cursor is in, with the F9 or the Run Statement button on the SQL Worksheet.
If you are used to using TOAD where blank lines are seperators, remember that Raptor expects you to terminate your SQL statements with a ; and your PL/SQL statements with a / (on a new line). -
Providing Query statement in JDBC adapter
HI experts,
Everybody knows we can provide Query to JDBC adapter by two ways...
1st way is by constructing query as XML structure..
2nd way is by giving exact query (Select * from tablename )by SQL_query in access ...
I like to know the performance of these two ways...
Regards,
SasitharanIn XI version 3.0 there is only one way to do lookups - manually in the form of an exit in the mapping process. A user exits must be written in Java.
There are a couple of considerations about performance that must be kept in mind besides just the question of SQL Statement while implementing a database lookup using a JDBC adapter:
1. The mechanism for database lookup
There are 2 approaches Direct, Indirect
In Direct approach you poll the external table hence this may lock database for access to other users, also it is an intrusive approach. In indirect approach database table is replicated and the replicated table is accessed. The second approach is recommended for performance reasons.
2. Does the data to be looked up change frequently
If data does not change frequently than pull in data and keep a copy locally as this will improve performance
2. It is possible to access an external database from within the mapping step of XI utilizing
A. regular JDBC constructs
B. utilization of J2EE JDBC Connector
Approach 2 is recommended as it is more efficient because of Connection pools.
There is no concept or need to XML code here. The Java code that executes the lookup, would call the sql statement, this java code can be referenced from within a user-defined function in the graphical mapper or from within XSLT.
Hence you need SQL statement in J2ee JDBC Connector to get the best performance.
Refer to URL
http://searchsap.techtarget.com/tip/0,289483,sid21_gci1246926,00.html#
to understadn how to configure the JDBC Connector Service to perform database lookups
Let me know if this helps. -
Sql Server logSQLStatement - JDBC Adapter
Hi
I try to show sql statements in RWB using additional parameter logSQLStatement = true in JDBC Adapter.
It works fine in Oracle database, but i try in SQL Server 2005 and not show in RWB.
any help ?
tks
MarcoMaybe you need to setup something on sqlserver 2005.
Maybe you are looking for
-
My iphone camera app is no longer on the screne
The Camera App on my Iphone 4S is no longer on the screne? How can I replace it?
-
Computer randomly shuts down/Very unstable since upgrade to yosemite
Since upgrading to yosemite my computer has become very unstable. For anyone that can help with what may be causing this issue I would really appreciate it. As for "Adobe" being a possible cause, how can I determine which Adobe program and related fi
-
My iPhone won't rotate how do I fix this
I Updated my iPhone 5 and now the pictures won't rotate, how do I fix this?
-
HELP !!! I need a Premises Access License !!!
Greetings, I live in Covina, CA 91723 and I need to find somewhere a Premises Access License (PAL) and i can not find it anywhere on the Verizon Website!! HELP!! and thanks in advance!!
-
In Pages, I have a file that I want to save as a low-quality PDF, since its current file size exceeds the maximum of what I want. What I'm doing now is going to File -> Print and then choosing Save as PDF. Is there anyway to do this another way so I