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.
praveen
I 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..
Similar Messages
-
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> -
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 -
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 -
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 -
I lost connectivity to internet thru Firefox a while ago. Contacted my ISP and we tried many things before discovering it was a Firefox issue, not a modem or router or browser issue. Even after uninstalling/einstalling Firefox fresh, I still cannot connect to internet and get the "Unable to connect- Firefox can't establish a connection to the server at www.yahoo.com" message.
A possible cause is security software (firewall) that blocks or restricts Firefox or the plugin-container process without informing you, possibly after detecting changes (update) to the Firefox program.
Remove all rules for Firefox from the permissions list in the firewall and let your firewall ask again for permission to get full unrestricted access to internet for Firefox and the plugin-container process and the updater process.
See:
*https://support.mozilla.com/kb/Server+not+found
*https://support.mozilla.com/kb/Firewalls -
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. -
Where do I go to review text message detail for review of numbers used for texting?
How do I review the detail of the the text message numbers that have been used or called?
I need all numbers recieved and sent also all text messages sent and recieved on my smart phone number << Number removed to comply with Verizon Wireless Terms of Service >>
thanks Debbie
Message was edited by: Verizon Moderator -
How to create two headers line in CSV file for File Receiver Adpater ?
Hi friends ,
My scenario is RFC to File. I am downloading file in CSV format . May I know how do i add two line of staic headers Like follows
<b> CLOCTYP CFLOCTYP
Exe Loc. Type Cus Loc. Type</b>
Best Regards.,
V.RangarajanMy Input xml will be like
<?xml version="1.0" encoding="UTF-8"?>
<ns0:FileRec_MT xmlns:ns0="urn:tabFile">
<ContactFile>
<Contact>
<Name>Raghavendra</Name>
<LName>GURU</LName>
<Company>xxx</Company>
</Contact>
</ContactFile>
</ns0:FileRec_MT>
<b>Output in csv as</b>
Raghavendra, Guru ,xxx
My requirement is [ 2 header Lines ]
<b>CLOCTYP CFLOCTYP CFPLACE
Exe Loc.Type Cus Loc. Type Place</b>
Raghavendra Guru xxx
If multiple rows comes it has to come like
<b> CLOCTYP CFLOCTYP CFPLACE
Exe Loc. Type Cus Loc. Type Place</b>
Raghavendra Guru xxx
test test yyyyy -
Multi Mapping using condition & Dynamic Receiver determination – Used XSLT Mapping
Dear Experts,
I am struggling to identify an error on the Technical Routing. Firstly according to my scenario, I receive an XML file with multiple PO's and I have to split the file to 2 different target messages. and also according to the source payload I have to send the file to 2 different receivers. first receiver is ABAP Proxy to the back end system and the 2nd one is to a file location. I have used XSLT to split the message into 2 target message type and I have used a XSLT mapping for receiver determination. Does any one have any idea of what I am doing wrong.
Note: some time I will only be able to fill in on target message.
I have attached my XSLT message split mapping with this post, please let me know if you have further question.
Your help is more appreciated.
Advance Thanks,
Pradeep
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" version="1.0">
<xsl:variable name="vFlag"/>
<xsl:variable name="vPONUM" select="POTRACKING/Lines[1]/PONumber"/>
<xsl:template match="/">
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
<ns1:MT_Tracking xmlns:ns1="http://www.findel-education.co.uk/axapta">
<xsl:for-each select="POTRACKING/Lines">
<sap:call-external class="ZCL_VNAP_OBJECTS" method="CHECK_PO_EXIST">
<sap:callvalue param="IP_EBELN" select="string(PONumber)"/>
<sap:callvariable name="vFlag" param="EP_BOLEAN" type="string"/>
</sap:call-external>
<xsl:if test="$vFlag = 0">
<Lines>
<DDate>
<xsl:value-of select="DespatchDate"/>
</DDate>
<PONumber>
<xsl:value-of select="PONumber"/>
</PONumber>
<POLine>
<xsl:value-of select="POLine"/>
</POLine>
<QTY>
<xsl:value-of select="Quantity"/>
</QTY>
<VendorMaterial>
<xsl:value-of select="VendorMaterialNumber"/>
</VendorMaterial>
<AccountRef>
<xsl:value-of select="AccountReference"/>
</AccountRef>
<ConsignNumber>
<xsl:value-of select="ConsignmentNumber"/>
</ConsignNumber>
<CarrierURL>
<xsl:value-of select="CarrierURL"/>
</CarrierURL>
<ConsignURL>
<xsl:value-of select="ConsignmentURL"/>
</ConsignURL>
</Lines>
</xsl:if>
</xsl:for-each>
</ns1:MT_Tracking>
</ns0:Message1>
<ns0:Message2>
<ns2:MT_Tracking xmlns:ns2="http://www.findel-education.co.uk/ecc/ax/po/ftp">
<xsl:for-each select="POTRACKING/Lines">
<sap:call-external class="ZCL_VNAP_OBJECTS" method="CHECK_PO_EXIST">
<sap:callvalue param="IP_EBELN" select="string(PONumber)"/>
<sap:callvariable name="vFlag" param="EP_BOLEAN" type="string"/>
</sap:call-external>
<xsl:if test="$vFlag = 1">
<Lines>
<DDate>
<xsl:value-of select="DespatchDate"/>
</DDate>
<PONumber>
<xsl:value-of select="PONumber"/>
</PONumber>
<POLine>
<xsl:value-of select="POLine"/>
</POLine>
<QTY>
<xsl:value-of select="Quantity"/>
</QTY>
<VendorMaterial>
<xsl:value-of select="VendorMaterialNumber"/>
</VendorMaterial>
<AccountRef>
<xsl:value-of select="AccountReference"/>
</AccountRef>
<ConsignNumber>
<xsl:value-of select="ConsignmentNumber"/>
</ConsignNumber>
<CarrierURL>
<xsl:value-of select="CarrierURL"/>
</CarrierURL>
<ConsignURL>
<xsl:value-of select="ConsignmentURL"/>
</ConsignURL>
</Lines>
</xsl:if>
</xsl:for-each>
</ns2:MT_Tracking>
</ns0:Message2>
</ns0:Messages>
</xsl:template>
</xsl:stylesheet>Hi Hareesh,
Please find my determination in the XSLT below, I am using enhanced receiver determination.
<xsl:transform xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:sap="http://www.sap.com/sapxsl" xmlns:p1="http://sap.com/xi/XI/System" xmlns:ns="urn:sap-com:document:sap:idoc:messages" version="1.0">
<xsl:variable name="vFlag"/>
<xsl:variable name="vAX" select="0"/>
<xsl:variable name="vSAP" select="0"/>
<xsl:variable name="vBoth" select="0"/>
<!-- <xsl:variable name="vPONUM" select="POTRACKING/Lines[1]/PONumber"/>-->
<xsl:template match="/">
<xsl:for-each select="POTRACKING/Lines">
<sap:call-external class="ZCL_VNAP_OBJECTS" method="CHECK_PO_EXIST">
<sap:callvalue param="IP_EBELN" select="string(PONumber)"/>
<sap:callvariable name="vFlag" param="EP_BOLEAN" type="string"/>
</sap:call-external>
<xsl:choose>
<xsl:when test="$vFlag = 0">
<!-- <p1:Receivers>
<Receiver>
<Service>
<xsl:text>BS_AXAPTA_TST</xsl:text>
</Service>
</Receiver>
</p1:Receivers>-->
<xsl:variable name="vAX" select="$vAX + 1"/>
</xsl:when>
<xsl:when test="$vFlag = 1">
<!-- <p1:Receivers>
<Receiver>
<Service>
<xsl:text>BS_ECQCLNT300</xsl:text>
</Service>
</Receiver>
</p1:Receivers>-->
<xsl:variable name="vSAP" select="$vSAP + 1"/>
</xsl:when>
</xsl:choose>
</xsl:for-each>
<xsl:if test="$vSAP > 0">
<xsl:if test="$vAX > 0">
<xsl:variable name="vBoth" select="$vBoth + 1"/>
<xsl:variable name="vSAP" select="0"/>
<xsl:variable name="vAX" select="0"/>
</xsl:if>
</xsl:if>
<xsl:if test="$vBoth > 0">
<p1:Receivers>
<Receiver>
<Service>
<xsl:text>BS_AXAPTA_TST</xsl:text>
</Service>
</Receiver>
<Receiver>
<Service>
<xsl:text>BS_ECQCLNT300</xsl:text>
</Service>
</Receiver>
</p1:Receivers>
</xsl:if>
<xsl:if test="$vAX > 0">
<p1:Receivers>
<Receiver>
<Service>
<xsl:text>BS_AXAPTA_TST</xsl:text>
</Service>
</Receiver>
</p1:Receivers>
</xsl:if>
<xsl:if test="$vSAP > 0">
<p1:Receivers>
<Receiver>
<Service>
<xsl:text>BS_ECQCLNT300</xsl:text>
</Service>
</Receiver>
</p1:Receivers>
</xsl:if>
</xsl:template>
</xsl:transform> -
Receiver determintation using Abap Mapping
Hi,
I configured a scenario in which I'm using extended receiver determination to determine the receiver of an incoming message. (The reason for this is that there is only one XI system and two ECC systems - DEV and QAS. By means of the setting in a customizing table it can be determined whether the message is sent to DEV or QAS. The message can't be sent to both systems because it is a synchronous interface). The receiver determination calls an Interface Mapping which has target interface Receiver Determination. I made an Abap Mapping program in which the customize table is read and the output message is formed as follows (according to the structure of the Receivers message):
lrf_output_document = lrf_ixml_factory->create_document( ).
lrf_receivers = lrf_output_document->create_simple_element( name = 'Receivers'
parent = lrf_output_document ).
lrf_receiver = lrf_output_document->create_simple_element( name = 'Receiver'
parent = lrf_receivers ).
lrf_element = lrf_output_document->create_simple_element( name = 'Party'
value = ' '
parent = lrf_receiver ).
lrf_element->set_attribute( name = 'agency'
value = ' ' ).
lrf_element->set_attribute( name = 'scheme'
value = ' ' ).
lrf_element = lrf_output_document->create_simple_element( name = 'Service'
value = 'DEV'
parent = lrf_receiver ).
To fill the RESULT field a stream factory is instantiated and a XSTRING is created. When I send a message to the system, the receiver determination dumps: Error when parsing receiver listLength of XML document 129 Error when parsing receiver listLength of XML Document 129 System expected the element 'Receivers'
Looks like the XSTRING has not got the right structure and can not be parsed into the Receivers message. However, when I create a CSTRING, the message looks OK. I also changed the encoding (Codepage 4103).
When I replace the Abap mapping with a message mapping, the receiver determination works OK. However, in that case it is not possible to read the customizing table. I really need the Abap mapping.
Has anyone ever filled the Receivers massage by means of Abap mapping. Any feedback will be appreciated!Hi,
there is a easier way - totally based on my blogs
create an abap mapping that will feed the dynamicconfiguration in ABAP (with z "Z" namespace) - similar thing shown in my blog
/people/michal.krawczyk2/blog/2007/04/26/xipi-throwing-generic-exceptions-from-any-type-of-mapping
and you don't need to create the XML in ABAP mapping just parse it, fill DC and send the same source to the target
(so you don't change the XML)
then add a message mapping to your interface mapping in which you will only use dynamicconfig value
to populate the receiver segment
nice and clean way
Regards,
Michal Krawczyk -
Dynamic File Name on Receiver Side using XSLT mapping
Hi,
My scenario is a Proxy to File scenario.The File on the receiving side is a TEXT file generated due to XSLT mapping. The file name has to be dynamic like- TEST<DDMMYYHHMMSS>File.DAT.
If somebody knows how to do the same please help.
Regards
RituHi Ritu,
I agree to Krishna.With your XSLT mapping create a XML output which can be converted to a text file with content conversion.
And for the dynamic file name, i guess its the date that matters which needs to be in DDMMYYHHMMSS format. the same can be accomplished by a Java function and calling it in your XSLT .
Do refer this weblog it will help you accomplish the same.
>>> /people/pooja.pandey/blog/2005/06/27/xslt-mapping-with-java-enhancement-for-beginners
Regards,
Shabarish
Maybe you are looking for
-
How to open a dvd file(dvd movie) in creative play
where can i get the DVD codec for my creative player.Right now i am using creative player version 3.02.52.
-
Six Spare Monitors...MacPro Video Card Advice?
Greetings, I have six spare monitors (Dell 19" 4ea and Dell 24" 2ea) leftover from a PC and I would like to get some advice on MacPro video cards to conncect all six monitors to a single machine. When I had my PC, I purchased a single eVGA 9500 (two
-
Thin white line between line art and live paint fill?
I am using live paint to paint cartoon character illustrations. The artwork is brought into Illustrator CS3 and live traced. Then I convert it to a live paint group and use the paint bucket to fill. Everything looks fine no matter how much I zoom
-
Mail not responding after restored from TM
I restored full data from a MacBook to a brand new MBP today using Time Machine. Everything looks fine except for Mail. It simply doesn't respond. I already deleted all accounts from System Preferences but when I close and open that screen, all acc
-
Would anyone please give me a test result of Oracle 9iFS
We want to build a content management system. We've already built a MIS and the data stored in a Oracle database . The data in the content management will be used by the MIS . would anyone please give us a test result of Oracle 9iFS. We want know the