Oracle JDBC Receiver
Hi XI Guru,
I have problem in JDBC Receiver. My error is
" Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'ps_gl_active_acct_' (structure 'Statement'): java.sql.SQLException: ORA-01843: not a valid month "
Currently I am using TransformDate function in graphical mapping.
Source Format : yyyy-mm-dd Type xsd:date
Target format : dd/mm/yyyy. Type xsd:date
I have tried mm/dd/yyyy
Please give me some advise and tips to solve my problem.
Regards,
use this function
TO_DATE('<originalDate>','YYYY/MM/DD') : You have to form this string using the concate function in the graphical mapping.
Use the above function in graphical mapping to map the exact date in ORACLE.
You will have to use 'hasquot' attribute and set it to "NO" of the Date field. It will be solved then..
follow this link: /people/alessandro.berta/blog/2005/10/04/datetime-datatypes-and-oracle-database
Regards.
Jeet
Edited by: Jeet Jeswani on Feb 25, 2008 12:44 PM
Similar Messages
-
Hi,
I am trying to setup a file to Oracle JDBC receiver scenario. In this case I am trying to just insert a single line to Oracle. I get no error in SXMB_MONI, no error in the message mapping test, and no error in the Test configuration in the ID.
Here is the error I get in the RWB comm channel monitoring for my adapter:
<i>No "action" attribute found in XML document ("action" attribute missing or wrong XML structure)
MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)
Exception caught by adapter framework: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure)
Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: No 'action' attribute found in XML document (attribute "action" missing or wrong XML structure).</i>
Here is my structure for the oracle receiver:
DTOracleReceiver_INSERT
TEMP_DATA_XI 1
action (attribute) xsd:string
access
NCODE xsd:string 1
VNAME xsd:integer 1
DDATE xsd:date 1
NPRICE xsd:decimal 1
LSTATES xsd:string 1
TEMP_DATA_XI is my table name in Oracle
action is set to constant "INSERT" in the message mapping.
When I look at the payload in the OracleReceiver adapter, this is what shows up:
<?xml version="1.0" encoding="UTF-8" ?>
- <ns0:MTOracleReceiver_INSERT xmlns:ns0="http://test.com/jdbc">
- <TEMP_DATA_XI action="INSERT">
- <access>
<NCODE>200</NCODE>
<VNAME>Inserttest</VNAME>
<DDATE>2007-06-15 09:25:43.0</DDATE>
<NPRICE>20.00</NPRICE>
<LSTATES>test of JDBC receiver</LSTATES>
</access>
</TEMP_DATA_XI>
</ns0:MTOracleReceiver_INSERT>
Any thoughts or ideas on how to fix this error? Any help would be greatly appreciated.
Thanks,
JakeI now get a different error:
Unable to execute statement for table or stored procedure. 'TEMP_DATA_XI' (Structure 'STATEMENTNAME') due to java.sql.SQLException: ORA-00928: missing SELECT keyword
2007-06-19 10:03:54 Error MP: exception caught with cause com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'TEMP_DATA_XI' (structure 'STATEMENTNAME'): java.sql.SQLException: ORA-00928: missing SELECT keyword
2007-06-19 10:03:54 Error Exception caught by adapter framework: Error processing request in sax parser: Error when executing statement for table/stored proc. 'TEMP_DATA_XI' (structure 'STATEMENTNAME'): java.sql.SQLException: ORA-00928: missing SELECT keyword
2007-06-19 10:03:54 Error Delivery of the message to the application using connection JDBC_http://sap.com/xi/XI/System failed, due to: com.sap.aii.af.ra.ms.api.RecoverableException: Error processing request in sax parser: Error when executing statement for table/stored proc. 'TEMP_DATA_XI' (structure 'STATEMENTNAME'): java.sql.SQLException: ORA-00928: missing SELECT keyword.
My current datatype for the receiver is:
DTOracleReceiver_INSERT 1
STATEMENTNAME 1
TEMP_DATA_XI 1
action (attribute) xsd:string required
Table xsd:string 1
access 0:unbounded
NCODE xsd:string 1
VNAME xsd:integer 1
DDATE xsd:date 1
NPRICE xsd:decimal 1
LSTATES xsd:string 1
action is mapped to "INSERT"
Table is mapped to "TEMP_DATA_XI" -
Hello All,
We have SAP ECC (proxy sender) -> XPI 7.0 -> Oracle (jdbc receiver).
We are querying data in some oracle tables. This is the error we see in communiation channel monitoring for JDBC receiver adapter:
Message processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error when attempting to get processing resources: com.sap.aii.af.service.util.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@xxxxx.abc.def.com:1521:rdwT1': SQLException: ORA-28000: the account is locked
But, we were told that login credentials (user/password) are working fine and account (user name give in the communication channel) is not locked.
So, is there anything i need to check?
In XI's SXMB_MONI, we see the following error:
<SAP:Category>XIAdapterFramework</SAP:Category>
<SAP:Code area="MESSAGE">GENERAL</SAP:Code>
<SAP:P1 />
<SAP:P2 />
<SAP:P3 />
<SAP:P4 />
<SAP:AdditionalText>com.sap.aii.af.ra.ms.api.DeliveryException: Exception in method process.</SAP:AdditionalText>
Another question is, why is the error in communication channel monitoring not getting propogated to SXMB_MONI?
Anything obvious missing here?
Thanks,
ChandraMessage processing failed. Cause: com.sap.aii.af.ra.ms.api.RecoverableException: Error when attempting to get processing resources: com.sap.aii.af.service.util.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@xxxxx.abc.def.com:1521:rdwT1': SQLException: ORA-28000: the account is locked
Please check the following..
a) Test the above db connection string using TOAD or sQLplus and see how that works. The exception clearly shows account is locked. If you repeatedly use invalid credentials for three times using the jdbc channel there is a possibility that account gets locked.
b) Also check the port, hostname and database name are right and valid one. Also check with BASIS team whether one more time account is locked or not.
Since you configured the receiver channel as JDBC and you will see this error log only at Java Stack.. that is in the communication channel monitoring. This you wont see it in the Integration engine.
Hope that helps. -
JDBC Receiver Adapter to connect to oracle
Hi all,
We are configuring communication channel for receiver JDBC Adapter to connect to oracle dataabase. The status is red in the Adapter monitor and it says that
"Receiver Adapter v1027 for Party '', Service 'MQ':
Configured at 23:31:45 2006-12-12
Processing Error: Accessing database connection 'jdbc:odbc://172.20.36.170:1521;DatabaseName=RTPOC failed: java.sql.SQLException: [Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified
Addtional information: JDBC driver 'oracle.jdbc.driver.OracleDriver' loaded successfully, additional driver information:
Available JDBC drivers:
oracle.jdbc.driver.OracleDriver, 1.0 JDBC compliant
sun.jdbc.odbc.JdbcOdbcDriver, 2.1 JDBC compliant
I guess there is some error in the connection url....could someone give us the exact syntax of Connection url.
RegardsHi all,
someone please clarify me. I have a datasource called "OracleDSN" in system 172.20.36.239 which has oracle client(RTPOC) in it.
So i gave my connection url as
jdbc:odbc:OracleDSN:@172.20.36.239:1521:RTPOC.
it still says that datasource name is too long..
Please help us out.
Regards -
JDBC Receiver to ORACLE Stored Procedure
Hi Experts
I browed the forum and could not find a strait answer to my problem. Hence I am posting this thread.
I have a sync call using JDBC Receiver to ORACLE stored procedure.
The definition of the procedure is as follows:
CREATE OR REPLACE procedure TW.XI_TEST
(p_edi_extract_id varchar2, p_res out edi_extract%rowtype) is
t edi_extract%rowtype;
begin
select *
into p_res
from edi_extract e
where e.edi_extract_id = to_number(p_edi_extract_id);
exception
when no_data_found then
p_res := t;
end XI_TEST;
The request XML is as follows:
<?xml version="1.0" encoding="UTF-8" ?>
<ns0:MT_EDIExtractSelectionRequest xmlns:ns0="urn:zim.com:tests">
<STATEMENT>
<PROC_NAME ACTION="EXECUTE">
<TABLE>TW.XI_TEST</TABLE>
<EDI_EXTRACT_ID isInput="true" type="STRING">4223142</EDI_EXTRACT_ID>
</PROC_NAME>
</STATEMENT>
</ns0:MT_EDIExtractSelectionRequest>
The error I am getting is as follows:
com.sap.engine.interfaces.messaging.api.exception.MessagingException:
Error processing request in sax parser:
Error when executing statement for table/stored proc. 'TW.XI_TEST' (structure 'STATEMENT'):
java.sql.SQLException: ORA-06550: line 1, column 7: PLS-00306:
wrong number or types of arguments in call to 'XI_TEST' ORA-06550: line 1, column 7:
PL/SQL: Statement ignored
Any help would be appreciated.
Regards
Effi.>
Rajesh wrote:
> > Hi Rajesh
> >
> > The structure of my data type for the request query is as follows:
> >
> >
DT_EDIExtractSelectionRequest (Complex Type)
> > STATEMENT (Element)
> > PROC_NAME (Element)
> > ACTION (Attribute) _mapped to_: EXECUTE
> > TABLE (Element) _mapped to_: TW.XI_TEST
> > EDI_EXTRACT_ID (Element) _mapped to_: 123456
> > isInput (Attribute) _mapped to_: true
> > type (Attribute) _mapped to_: STRING
> > EDI_EXTRACT (Element)
> > isOutput (Attribute) _mapped to_: true
> > type (Attribute) _mapped to_: CURSOR
> >
> >
>
>
> Change the DT type to like below
>
> STATEMENT (Element)
> ACTION (Attribute) _mapped to_: EXECUTE
> TABLE (Element) _mapped to_: TW.XI_TEST
> EDI_EXTRACT_ID (Element) _mapped to_: 123456
> isInput (Attribute) _mapped to_: true
> type (Attribute) _mapped to_: STRING
> EDI_ETRACT (Element)
> isOutput (Attribute) _mapped to_: true
> type (Attribute) _mapped to_: CURSOR
>
> and try ...actually i dont remeber the exact strucuture..but i tolo faced the same pain of this
>
> HTH
> Rajesh
Hi Rajesh
Changing the DT per your suggestion result in the following error:
<SAP:AdditionalText>com.sap.engine.interfaces.messaging.api.exception.MessagingException: Error processing request in sax parser:
No 'action' attribute found in XML document
(attribute "action" missing or wrong XML structure)</SAP:AdditionalText>
Omitting the PROC_NAME element from the DT is not correct.
Also, I would also like to clarify that the variables of the DT I am using are:
EDI_EXTRACT_ID is defined as string
EDI_EXTRACT is defined as string
Because the variable p_res is mapped to nothing in the request payload it does not show.
I read in one of the posts that this is correct and the variable is used due to the fact the isOutput attribute is true.
Regards,
Effi.
Edited by: Effi Olivkovitch on Dec 6, 2009 9:11 AM
Edited by: Effi Olivkovitch on Dec 6, 2009 9:18 AM -
Receiving oracle.jdbc.driver error when trying to connect
Setup:
Windows 7 64bit
4GB ram
SQL Developer 3.2.20.09
Java platform 1.6.0_37
Oracle IDE 3.2.20.09.87
Hello, I'm going to start by saying I'm a rank amateur when it comes to using and understand SQL developer. My entire need for this program is to connect to a virt server at my office and test out my SQL queries against our tables. It's been working great for this purpose until yesterday when I received this error:
An error was encountered performing the requested operation:
oracle.jdbc.driver.T2CConnection.getLibraryVersionNumber()I
Vendor code 0
I did some searching and found a few references to this error but due to my inexperience I was unable to follow the resolutions and fix the error. This connection was working fine until yesterday afternoon which seemed odd. Based on my control panel, here is what I installed yesterday, I believe I installed both Java's after the error occurred seeing if they would alleviate the issue.
MySQL Administrator 1.1
Java SE Development Kit 6 Update 41 (64-bit)
MySQL Workbench 5.2 CE
Java 6 Update 41 (64-bit)
Could one of these be the root of the issue?
Thanks for the help and sorry for the lack of technical expertise, my need is very narrow and up until now this program has worked great for me.
-Brad
Edited by: 998110 on Apr 4, 2013 9:46 AM>
Could one of these be the root of the issue?
>
More likely to be that you are now using the wrong version of the oracle jdbc jar file.
Post the name and version of the JDBC jar file that you think you are using.
Search the pc for ALL such files.
Examine the environment variables (e.g. PATH) to see if they reference jdbc jars other than the ojdbc6 jar you should be using. -
Invoking oracle function thru JDBC Receiver.
Hi Crew,
I have a scenario in which JDBC receiver have to call a Oracle function. Can somebody help me deriving out JDBC sender Data type definition format?
Thanks in Advance
Karthik Kaveriselvan.Hi
/people/siva.maranani/blog/2005/09/16/xi-how-to-on-jdbc-receiver-response
/people/jegathees.waran/blog/2007/03/02/oracle-table-functions-and-jdbc-sender-adapter
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/frameset.htm
Thanks -
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 -
JDBC receiver adapter: Insert of CLOB into Oracle DB
Hi,
I've got a short question:
Is it possible to insert CLOB fields (larger than 4kB) into an Orcale database using the JDBC receiver adapter without using a stored procedure?
We are on XI 3.0 SP20.
I had someting in mind that this is only possible with a stored procedure but I am not sure on this.
Thanks and Regards,
HelmutHI,
Is it possible to insert CLOB fields (larger than 4kB) into an Orcale database using the JDBC receiver adapter without using a stored procedure?
yes, you can do it but it is not a best practise, but using Stored Procedure is .
Regards,
karna... -
JDBC Receiver does not convert empty string to NULL
Hello experts,
I am facing a problem with an INSERT statement to ORACLE DB where some of the fields are empty, for example:
- <STATEMENT_VLP_CONT_DETAILS>
- <TABLE_VLP_CONT_DETAILS ACTION="INSERT">
<TABLE>VLP_CONT_DETAILS</TABLE>
- <ACCESS>
<VLP_HDR_ID>43</VLP_HDR_ID>
<VLP_CONT_LINE_ID>1</VLP_CONT_LINE_ID>
<QUANTITY>1</QUANTITY>
<OWNER>CBHU</OWNER>
<SERIAL_NO>3372739</SERIAL_NO>
<CONT_ISO_CODE>2300</CONT_ISO_CODE>
<WEIGHT>6.44</WEIGHT>
<POL>ILASH</POL>
<POD>FRFOS</POD>
<FD>FRFOS</FD>
<OPER_CODE>COS</OPER_CODE>
<CUR_STOW_LOC>150102</CUR_STOW_LOC>
<PRV_STOW_LOC />
<HAZARDOUS>N</HAZARDOUS>
In the JDBC Receiver comm channel I selected: Interpretation of Empty String Values = NULL Value.
It seems the empty strings are not converted to NULL values as can be seen in the reflected SQL statement in RWB:
INSERT INTO VLP_CONT_DETAILS (VLP_HDR_ID, VLP_CONT_LINE_ID, QUANTITY, OWNER, SERIAL_NO, CONT_ISO_CODE, WEIGHT, POL, POD, FD, OPER_CODE, CUR_STOW_LOC, PRV_STOW_LOC, HAZARDOUS, EMPTY, REFER, OOG, HAZARD_IMDG, TEMP_SET, TEMP_MIN, TEMP_MAX, FRONT_OVL, REAR_OVL, RIGHT_OVW, LEFT_OVW, OVERHEIGHT, COMMODITY, BOOKING_REF, ALLOTMENT, YARD_LOC, LD_SEQ_CRANEID, LD_SEQ_NUMBER, LD_STATUS, STACKABLE, OPT_PORT_CODE1, OPT_PORT_CODE2, OPT_PORT_CODE3) VALUES (44, 1, 1, CBHU, 3372739 , 2300, 6.44, ILASH, FRFOS, FRFOS, COS, 150102, , N, N, N, N, , , , , , , , , , , , , , , 0, 64, N, , , )
So, I am getting the following error:
Could not execute statement for table/stored proc. "VLP_CONT_DETAILS" (structure "STATEMENT_VLP_CONT_DETAILS") due to java.sql.SQLException: ORA-00936: missing expression
Help would be appreciated.Hi Effi,
There is a mismatch in the field and thier value.
Here field id 37
VLP_HDR_ID, VLP_CONT_LINE_ID, QUANTITY, OWNER, SERIAL_NO, CONT_ISO_CODE, WEIGHT, POL, POD, FD, OPER_CODE, CUR_STOW_LOC, PRV_STOW_LOC, HAZARDOUS, EMPTY, REFER, OOG, HAZARD_IMDG, TEMP_SET, TEMP_MIN, TEMP_MAX, FRONT_OVL, REAR_OVL, RIGHT_OVW, LEFT_OVW, OVERHEIGHT, COMMODITY, BOOKING_REF, ALLOTMENT, YARD_LOC, LD_SEQ_CRANEID, LD_SEQ_NUMBER, LD_STATUS, STACKABLE, OPT_PORT_CODE1, OPT_PORT_CODE2, OPT_PORT_CODE3
And value is 35
44, 1, 1, CBHU, 3372739 , 2300, 6.44, ILASH, FRFOS, FRFOS, COS, 150102, , N, N, N, N, , , , , , , , , , , , , , , 0, 64, N, , ,
Give empty values for nuil fields so that they can be made NULL by jdbc adapter
Regards
Suraj -
How to get comparable Oracle JDBC performance using Java 1.4 vs 1.1.7?
Our application makes extensive use of JDBC to access an Oracle database. We wrote it a number of years ago using java 1.1.7 and we have been unable to move to new versions of java because of the performance degradation.
I traced the problem to JDBC calls. I can reproduce the problem using a simple program that simply connects to the database, executes a simple query and then reads the data. The same program running under java 1.4 is about 60% slower than under java 1.1.7. The query is about 80% slower and getting the data is about 150% slower!
The program is attached below. Note, I run the steps twice as the first time the times are much larger which I attribute to java doing some initializations. So the second set of values I think are more representative of the actual performance in our application where there are numerous accesses to the database. Specifically, I focus on step 4 which is the execute query command and step 5 which is the data retrieval step. The table being read has 4 columns with 170 tuples in it.
Here are the timings I get when I run this on a Sparc Ultra 5 running
SunOs 5.8 using an Oracle database running 8.1.7:
java 1.1.7 java 1.4
overall: 2.1s 3.5s
step 1: 30 200
step 2: 886 2009
step 3: 2 2
step 4: 9 17
step 5: 122 187
step 6: 1 1
step 1: 0 0
step 2: 203 161
step 3: 0 1
step 4: 8 15 <- 87% slower
step 5: 48 117 <- 143% slower
step 6: 1 2I find the same poor performance from java versions 1.2 and 1.3.
I tried using DataDirect's type 4 JDBC driver which gives a little better performance but overall it is still much slower than using java 1.1.7.
Why do the newer versions of java have such poor performance when using JDBC?
What can be done so that we can have performance similar to java 1.1.7
using java 1.4?
========================================================================
import java.util.*;
import java.io.*;
import java.sql.*;
public class test12 {
public static void main(String args[]) {
try {
long time1 = System.currentTimeMillis();
/* step 1 */ DriverManager.registerDriver(
new oracle.jdbc.driver.OracleDriver());
long time2 = System.currentTimeMillis();
/* step 2 */ Connection conn = DriverManager.getConnection (
"jdbc:oracle:thin:@dbserver1:1521:db1","user1","passwd1");
long time3 = System.currentTimeMillis();
/* step 3 */ Statement stmt = conn.createStatement();
long time4 = System.currentTimeMillis();
/* step 4 */ ResultSet rs = stmt.executeQuery("select * from table1");
long time5 = System.currentTimeMillis();
/* step 5 */ while( rs.next() ) {
int message_num = rs.getInt(1);
String message = rs.getString(2);
long time6 = System.currentTimeMillis();
/* step 6 */ rs.close(); stmt.close();
long time7 = System.currentTimeMillis();
System.out.println("step 1: " + (time2 - time1) );
System.out.println("step 2: " + (time3 - time2) );
System.out.println("step 3: " + (time4 - time3) );
System.out.println("step 4: " + (time5 - time4) );
System.out.println("step 5: " + (time6 - time5) );
System.out.println("step 6: " + (time7 - time6) );
System.out.flush();
} catch ( Exception e ) {
System.out.println( "got exception: " + e.getMessage() );
... repeat the same 6 steps again...
}If I run my sample program with the -server option, it
takes a lot longer (6.8s vs 3.5s).Which has to be expected, as the -server option optimizes for long running programs - so it shoudl go with my second suggestion, more below...
I am not certain what you mean by "just let the jvm
running". Our users issue a command (in Unix) which
invokes one of our java programs to access or update
data in a database. I think what you are suggesting
would require that I rewrite our application to have a
java program always running on the users workstation
and to also rewrite our
commands (over a hundred) to some how pass data and
receive data with this new server java program. That
does not seem a very reasonable just to move to a new
version of java. Or are you suggesting something
else?No I was just suggestion what you descript. But if this is not an option, then maybe you should merge your java-programs to C or another native language. Or you could try the IBM-JDK with the -faststart (or similar) option. If thew Unix you mention is AIX, then there would be the option of a resetable-vm. But I cannot say if this VM would solve your problem. Java is definitly not good for applications which only issue some unqiue commands because the hotspot-compiler can not be efficiently used there. You can only try to get 1.1.7 performance by experimenting with vm-parameters (execute java -X). -
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 -
My scenario is Idoc to jdbc..
I m able to successfully send the idoc from R3 and it is received in XI also.
However the message does not reach to database and am getting the following error in RWB of XI.
"Error when attempting to get processing resources: com.sap.aii.af.service.util.concurrent.ResourcePoolException: Unable to create new pooled resource: DriverManagerException: Cannot establish connection to URL 'jdbc:oracle:thin:@172.25.XX.XXX:1521:<SID>': SAPClassNotFoundException: oracle.jdbc.driver.OracleDriver"
Kindly tell me where the problem is.Hi,
refer the below link for step by step process:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/70ffd890-0201-0010-708f-d5dad2dfcf3a
Thnx
Chirag -
Hi,
I have configured JDBC Reciever Adapater and i have given the paramenter like following -
JDBC Drvier : com.microsoft.sqlserver.jdbc.SQLServerDriver
Connection : jdbc:sqlserver://<dbServer>:14330;databaseName=<dbName>
(Note - with the above details we have a sender channel which is perfectly working fine)
JDBC Receiver Channel in RWB is giving the following error in adapter channel monitoring -
Configuration error: com.sap.aii.af.service.util.configuration.MandatoryParameterMissingException: Value missing for mandatory configuration attribute tableEOColumnNameId
Please help me.
Thanks in Advance!!Check these threads:
Error while executing JDBC receiver and sender CC
Re: JDBC Adapter Conect to Oracle Database
and this:
http://help.sap.com/saphelp_nw70/helpdata/en/b0/676b3c255b1475e10000000a114084/frameset.htm
Regards,
ravi -
Updating in JDBC receiver adapter
Hi Friends,
I came across in the some sdn blogs, Like JDBC to JDBC scenarios i found that in the receiver JDBC adapter there is no place to write update statement or insert statement.Then how the records get updated in the DB.
My actual need is to update the oracle db from sap, which currently using the following statement
Loop at it_trn_ctl into WA_TRN_CTL.
UPDATE TableA SET SAP_UPDATE = 'Y'
WHERE PARENT_ID = :WA_TRN_CTL-PARENT_COIL .
end loop.
should replaced by XI, using the proxy to jdbc receiver. Where i can write the update statement and the where condition.
Kindly revert back for queries.
Thanks in advance
Karthikeyanhi
for updation no need to write any query,use update structure at reciever side
http://help.sap.com/saphelp_nw04/helpdata/en/2e/96fd3f2d14e869e10000000a155106/frameset.htm
this contains action:udate and then
key1: field that u want to update.
key2:pass old value of field for matching(where conditon matching field)
Edited by: Dharamveer Gaur on Sep 19, 2008 8:40 AM
Maybe you are looking for
-
Adblocking with /etc/hosts and connman
I'm using the hostsblock package to create a custom hosts file. Everything works fine with netctl+dnsmasq, but it doesn't with connman. It seems connman redirects all traffic to itself by writing "nameserver 127.0.0.1" in /etc/resolv.conf I can't pin
-
How to eleminate unused master data from Costing Run?
Dear We have some material codes that we do not use for material type HALB & FERT. But they keep appearing in MM60 . what can be done to remove them from MM60? These unused materials appear in the costing run ck40n. They create costing error/ discrep
-
My camera is having some serious image issues. For some reason, the screen/photos look really grainy and like static you get with bad reception on a tv. I tried both the front and back lens and they both have the same problem. have any of you had exp
-
I'm currently running 10.3.9 on a 1.8 GHz dual Power Mac. In a year and a half I have never needed Classic because all my OS 9 programs have been upgraded to OS X. Do I need to keep it on my hard drive? I'd like to trash it, but don't want to throw a
-
Strange menu when I select File Open, etc.
(ARGH! Can't get Skitch to work here) how do I post a screen shot??.... I have noticed recently that when in Photoshop (and InDesign), when I select File>Open, I get a strange screen that is not the normal menu... it looks like this: [url=http://ski