Message structure for JDBC receiver adaptor
Hi experts,
IN JDBC reciever adaptor i want to insert 3 fields in table.....!
the structure i have created is as follows:
TestReceiver
StatementName
Test
Action (attribute)
TABLE
access(1-unbound)
FirstName
MiddName
LastName
and source is
testSender
Row(1-unbound)
FirstName
MiddleName
LastName
I am getting error ="MAPPING">EXCEPTION_DURING_EXECUTE
can somebody plz tell me what is wrong?
Thanks
Rohan
<?xml version="1.0" encoding="utf-8"?>
<ns:TestSender xmlns:ns="http://test.com/EmpData">
<Recordset>
<Row>
<FirstName>Aaa</FirstName>
<MiddleName>Bbbbb</MiddleName>
<LastName>Ccccc</LastName>
</Row>
</Recordset>
</ns:TestSender>
Similar Messages
-
Message Protocol for JDBC receiver adpater used in mapping lookup
hi mates,
I'm trying out the scenario explained in this blog <a href="/people/siva.maranani/blog/2005/08/23/lookup146s-in-xi-made-simpler">Lookups in XI made simpler</a>. Since we are building a query string in the UDF and executing it, shouldn't the message protocol in adapter be 'Native SQL String' against that is given in blog 'XML SQL Format' (which is used if MT is created as per the 'Statement' structure)?
I'm yet to execute my scenario..figuring out JDBC params...will try with both protocols once I get the info..meanwhile was wondering how 'XML SQL' would work in this.
I appreciate your inputs.
praveenI got the answer...the message protocol doesnt matter in case of lookups..coz all we are doing is getting an accessor to the channel but not passing any payload...
the message protocol is for payload...
XML SQL if it contains 'Statement'
Native SQL if it contains native SQL string.. -
Handling Fault Messages for JDBC Receiver (Syn Inbound)
Dear Freinds,
Can we handle fault messages for JDBC Receiver which is synchronous.
OB Proxy Syn <> IB JDBC Syn
1. How to handle the same ? Please give some examples.
2. Should we use Stored Procedures at Oracle side to handle the fault messages and send back as response to the Proxy Response. Will it work.
Thanks & Regards
K.RameshDear Friend,
I have 2 interfaces where Proxy is OB & JDBC is IB. In the first interface both sender and Receiver are synchronous and in the second one it is Async.
In the first interface i have to send one field from R/3 table along with Native SQL query string to XI and the response of the SELECT query is sent back to the sender.
Assume if no fields are selected based on the field sent then proper error message has to be sent instead of the response message.
In the second interface i will be using UPDATE query at Asyn JDBC receiver.
How to do this if you are having JDBC Receiver.
I saw in many blogs where they had mentioned that we cannot handle fault messages in the Receiver JDBC.
KIindly explain.
Thanks
K.Ramesh -
Question about Sender and Receiver Structure for JDBC
Dear All,
I want to know why there is a fixed format for sender and receiver structure for JDBC. why cant we use the structure like what we want? explain me in detail.
ThanksGood Question:
We have to create our data structure based on the existing database table structure. While reading or writing , JDBC adapter convert our data type structure in to SQL Query Statements that matches Table structure. -
Multiple STATEMENT nodes in target structure for JDBC adapter
Hi All,
I have a file to JDBC scenario . At the receiver side we need to update two tables simultaneously .
So in the target structure for JDBC , is it possible to have two STATEMENT nodes , so that 2 tables can be updated simultaneously.
Please help.
Thanks & Regards,
Loveena.Hi,
U can do tht..please see below link..
http://help.sap.com/saphelp_nw04/Helpdata/EN/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm
Regards,
Manisha -
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 -
Multi Mapping for JDBC Receiver JDBC Adapter
Hi All,
I'm trying an IDoc to JDBC (canonical XML) scenario using multi mapping (single IDoc as source and two different JDBC messages in receiver end). But, this is failing in RWB with some parser error. So, am not sure whether multi mapping is allowed for JDBC Canonical XML format. Please clarify.
Thanks,
Hussain.Hi ,
JDBC Adapter supports multi mapping,so you can implement the same,but what do you mean by Canonical XML format??
Regards,
Raj -
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 -
INVOIC02 message structure for B2B integration.
Is there any way to export INVOIC02 IDoc message structure in XML format?
I have tried WE60 (Documentation) transaction, but it only allows to export the structure in xsd format.
Edited by: Nicky Ben on Sep 14, 2009 11:57 AM
Edited by: Nicky Ben on Sep 14, 2009 11:59 AMHi Sarat,
1. Oracle B2B requires Oracle Application Server - Infrastructure and Middletier. You need to use Oracle Application Server 10.1.2 as it provides both these components. Oracle Application Server 10.1.3 doesn't contain all the Infra & Middle Tier components -
it only contains :-
* Oracle HTTP Server
* Oracle Application Server Containers for J2EE (OC4J)
* Oracle Enterprise Manager 10g Application Server Control
* Oracle Business Rules
* Oracle TopLink
2. You can download Application Server Integration(10.1.2.0.2) that contains Oracle Integration B2B. You can get more information about the other components at the download page for Oracle Application Server 10.1.2.
3. You can get information about Oracle B2B at the link :-
http://www.oracle.com/technology/products/integration/b2b/index.html
4. The Quick Start Document at this link should give you a summary about B2B - features, installation, configuration ,etc...:-
http://www.oracle.com/technology/products/integration/b2b/pdf/B2B_TN_001_Installation_Quickstart.pdf
Regards,
Sandeep -
Exception in Message mapping for JDBC - XI- file
Hi,
In the above scenario, Sender JDBC adapter has processed the message but when i checked the processed XML messages, its giving an error message with details
<i>During the application mapping
com/sap/xi/tf/_MM_XXXX_a
com.sap.aii.utilxi.misc.api.BaseRuntimeException
was thrown: RuntimeException in Message-Mapping
transformatio~</i>
how to make the source structure so that it gets correctly populated with the result set of sender JDBC adapter? Are there any constraints while making the Data type for the source structure?
Regards,
Nitin Aggarwal.Hi,
The problem is solved...
Actually, the runtime system was not able to map the result set generated by the Sender JDBC adapter to the source structure of message mapping. This was because the result set has a particular structure and its like
<resultset>
<row>
<column1>value1</column1>
<column2>value2<column2>
</row>
</resultset>
To map this kind of structure to the source structure, a <b>row</b> element should always be there below the root node and the structure fields should be placed as sub elements to row. One more thing the root node of the source structure should be same as the document name specified in the sender JDBC adapter config.
Anyways, Thanks to all for the valuable efforts.
Regards,
Nitin. -
Error while testing in message mapping for JDBC lookup
The error is as follows.
Exception during processing the payload.Problem when calling an adapter by using communication channel JLU_chan (Party: , Service: JLU_BUSS, Object ID: 0519f96e59c534829ebdcdea837dacb7) XI AF API call failed. Module exception: (No information available). Cause Exception: 'Error processing request in sax parser: Error when executing statement for table/stored proc. 'table' (structure 'statement'): java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Missing ), ], or Item in query expression 'username = [Ljava.lang.String;@d7f610 and password = [Ljava.lang.String;@5b96eb'.'.
com.sap.aii.mapping.lookup.LookupException: Problem when calling an adapter by using communication channel JLU_chan (Party: , Service: JLU_BUSS, Object ID: 0519f96e59c534829ebdcdea837dacb7) XI AF API call failed. Module exception: (No information available). Cause Exception: 'Error processing request in sax parser: Error when executing statement for table/stored proc. 'table' (structure 'statement'): java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Missing ), ], or Item in query expression 'username = [Ljava.lang.String;@d7f610 and password = [Ljava.lang.String;@5b96eb'.'.
at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.execute(AdapterProxyLocal.java:131)
at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.execute(SystemAccessorInternal.java:68)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:149)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:77)
at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)
Root Cause:
com.sap.aii.af.service.api.AFException: XI AF API call failed. Module exception: (No information available). Cause Exception: 'Error processing request in sax parser: Error when executing statement for table/stored proc. 'table' (structure 'statement'): java.sql.SQLException: [Microsoft][ODBC Microsoft Access Driver] Missing ), ], or Item in query expression 'username = [Ljava.lang.String;@d7f610 and password = [Ljava.lang.String;@5b96eb'.'.
at com.sap.aii.af.service.api.AdapterAccess.sendMsg(AdapterAccess.java:214)
at com.sap.aii.af.service.api.AdapterAccess.execute(AdapterAccess.java:283)
at com.sap.aii.ibrun.server.lookup.AdapterProxyLocal.execute(AdapterProxyLocal.java:123)
at com.sap.aii.ibrun.server.lookup.SystemAccessorInternal.execute(SystemAccessorInternal.java:68)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:149)
at com.sap.aii.ibrun.server.lookup.SystemAccessorHmiServer.process(SystemAccessorHmiServer.java:77)
at com.sap.aii.utilxi.hmis.server.HmisServiceImpl.invokeMethod(HmisServiceImpl.java:169)
at com.sap.aii.utilxi.hmis.server.HmisServer.process(HmisServer.java:178)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:296)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.processRequestByHmiServer(HmisServletImpl.java:211)
at com.sap.aii.utilxi.hmis.web.workers.HmisInternalClient.doWork(HmisInternalClient.java:70)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doWork(HmisServletImpl.java:496)
at com.sap.aii.utilxi.hmis.web.HmisServletImpl.doPost(HmisServletImpl.java:634)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.runServlet(HttpHandlerImpl.java:401)
at com.sap.engine.services.servlets_jsp.server.HttpHandlerImpl.handleRequest(HttpHandlerImpl.java:266)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:387)
at com.sap.engine.services.httpserver.server.RequestAnalizer.startServlet(RequestAnalizer.java:365)
at com.sap.engine.services.httpserver.server.RequestAnalizer.invokeWebContainer(RequestAnalizer.java:944)
at com.sap.engine.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:266)
at com.sap.engine.services.httpserver.server.Client.handle(Client.java:95)
at com.sap.engine.services.httpserver.server.Processor.request(Processor.java:160)
at com.sap.engine.core.service630.context.cluster.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:33)
at com.sap.engine.core.cluster.impl6.session.MessageRunner.run(MessageRunner.java:41)
at com.sap.engine.core.thread.impl3.ActionObject.run(ActionObject.java:37)
at java.security.AccessController.doPrivileged(Native Method)
at com.sap.engine.core.thread.impl3.SingleThread.execute(SingleThread.java:100)
at com.sap.engine.core.thread.impl3.SingleThread.run(SingleThread.java:170)I'll give you the query.Can you please check my code.Code is as follows.
//write your code here
String Query = " ";
Channel channel = null;
DataBaseAccessor accessor = null;
DataBaseResult resultSet = null;
//Build the Query String
Query = "Select role from login where username = " + username + " and password = " + password + "" ;
try{
//Determine a channel as created in the configuration
channel = LookupService.getChannel("JLU_BUSS","JLU_chan");
// Get a system accessor for a channel.As the call is being made to the database an database accessor is obtained.
accessor = LookupService.getDataBaseAccessor(channel);
// Execute the Query and get the values in the resultSet.
resultSet = accessor.execute(Query);
for(Iterator rows = resultSet.getRows();rows.hasNext();)
Map rowMap = (Map)rows.next();
result.addValue((String)rowMap.get("role"));
catch(Exception ex){
result.addValue(ex.getMessage());
finally{
try{
if (accessor!=null) accessor.close();
catch(Exception e){
result.addValue(e.getMessage()); -
Wrong Encoding for JDBC-Receiver
Dear all,
we've to convert from UTF-8 to ISO-8859-1 before we write payload data into database. We've tried with "AF_Modules/XMLAnonymizerBean" but it does not work!
Is there any issue regarding JDBC? Should we use "AF_Modules/TextCodepageConversionBean" instead?
Kind regards, StefanHi Stefan,
Sorry for the delay in response:
Please use the following parameters:
Module Name Type Module Key
localejbs/AF_Modules/MessageTransformBean Local Plain2XML
Module Key Parameter Name Parameter Value
Plain2XML Transform.ContentType text/xml;charset=utf-8
Also,if this doesn't work ,please try charset=iso-8859-1 as well.
Let us know if it helps.
Thanks.
Regards,
Shweta -
Select statement for JDBC receiver synch scenario for capturing random value from ECC portal
Dear Experts,
I am working on ECC <----> SAP-PO 7.31 <----> JDBC synchronous scenario. I am clear about the config part except the Select statement. I will be
capturing 2 random values from the portal i.e. VendId and VendName in ECC to get the vendor details like Vendor Country, Vendor Status, Vendor Contact , Vendor Address etc from JDBC vendor table/view VENDETAIL.
What would be the select statement to capture the random values for ECC portal? My select statement would look some thing like this..
Select f1,f2,f3,f4 from table VENDETAIL where key1 = "VendId" and "VendName"
Please suggest if the above select statement works for the above scenario...
Regards
RebeccaHi Rebecca,
Your statement should work fine.
Please see the statement we use below.
SELECT eT_cashier, eT_proc_yn, eT_proc_date FROM eTest WHERE eb_proc_yn = 'N'
Just remember to update the change indicator so that you dont duplicate your records.
UPDATE eTest SET eb_proc_yn = 'Y' WHERE eb_proc_yn = 'N'.
Regards,
Jannus Botha -
XML Document Format for JDBC Receiver(Between operation)
Hello everybody,
is there a way to use a BETWEEN operation for the key in a SELECT XML document format????????, I need to filter in the Where for different Statements in teh strcuture as BETWEEN, thanks in advance.
Regards,
Juliohttp://help.sap.com/saphelp_nw70/helpdata/en/2e/96fd3f2d14e869e10000000a155106/content.htm
Not sure but Check the option of
<key1>
<col2 compareOperation=u201DLTu201D>val2old</col2>
<col2 compareOperation=u201DGTu201D>val2old</col2>
</key1>
Thanks,
Beena. -
Date format /structure for JDBC
Hi, can anyone tell be what format a date should be in when querying a database. I have some old code that was transfered to a new app server which follows Java standards very strictly. Now it gives me problems when comparing dates, for example a query that finds records for a date BETWEEN two other dates. The old format was dd-mon-yyyy, but this doesn't work anymore and neither does dd-mon-yy OR yyyy-mon-dd. When I do the query in the text editor(SQL Plus) it works, but not within the Java code.
Any ideas?
ThanksI see what you mean now. Yes, format matters then. Your HTML page will assume that the string that's typed into the text box will be a valid date string using a format that you choose.
You should turn that String into a java.util.Date using java.text.DateFormat.parse(). Be sure to call setLenient(false) on the DateFormat instance before you call parse(). That way you'll get a java.text.ParseException if the String isn't valid according to your pattern and you can send an error page back to the client. (OR validate the pattern on the client side using JavaScript before the page is submitted.)
Once you've got a valid java.util.Date for your DateFormat instance, create a java.sql.Date to pass to the ava.sql.PreparedStatement.setDate method.
Warner's point is that by the time you get around to passing the java.sql.Date to PreparedStatement, all that validation stuff is supposed to be done.
Maybe you are looking for
-
Asset acquisition - mid quarter convention - USA
Hi all, please help! I am worknig on MACRS depreciation for Asset. THe point is: we have different depreciation keys which must be applied depending if more then 40% of the all amount of asset of the year was acquired in the last quarter of the year.
-
Dear All , we have defined Z_form for the return delivery . Now if we go for the Print out on the Header it is Displayes "Gr / GI slip receipt " utput type : WA01 Earlier the same was " Return delivery Slip " and the Output type : WE03 where to chk f
-
Outlook Express spell check language?
After not using OutlookEexp. for a while, I now find that the language in spell check if French? How do I change to English ? TY
-
Problems Viewing JQuery With Firefox
I have been developing using IE6 and having no problems getting JQuery to work. I hold my JQuery js and css in external files and then reference them using substitution strings in the shared components/application definitions. I then place a call to
-
Having seen this on the apple website......I WANT IT!!!!!! How do I go about upgrading from Tiger? and as I've had my Macbook for only a week now, do `i have to pay??? Pleease put me out of my torment Speedy