IDOC to JDBC multimapping N:1
Hello,
I've the follow:
IDOC
segA
belnr = 1
segB
belnr = 2
segC
It's possible the segB is repeat (this is the problem):
IDOC
segA
belnr = 1
segB
belnr = 2
segB
belnr = 1
segC
The target is:
field1
field2
fieldN
the field2 value is
empty (if segA belnr <> segB belnr) or belnr (if segA belnr = segB belnr)
The problem is when come two segB, In this case the value of field2 must be belnr when segA belnr <> segB (first) belnr or
segA belnr <> segB (second) belnr
How can i do this?
Thanks
Hi,
Even though Segments of idoc gets repeated the exact data can be retrieved based on the qualifier..
for e.g. E1EDK02 of Orders idoc contains BELNR and qualifier 001(purchase order) and 009 (Invoice number)
so based on qualifiers data can be retrieved from segements...if occur multiple times
HTH
Rajesh
Similar Messages
-
Pass system ack of JDBC adapter to ERP in IDoc - XI - JDBC scenario
Dear all,
i have an IDoc -> XI -> JDBC scenario (without using ccBPM). In the standard way the ERP system, sending the IDoc waits for an application acknowledgement. However the JDBC adapter is only capeable to send system acknowledgements.
Is there a way to pass these acknowledgements to the IDoc status record?
In help.sap.com (http://help.sap.com/saphelp_nwpi71/helpdata/en/ab/bdb13b00ae793be10000000a11402f/frameset.htm) under "IDoc Processing with the IDoc Adapter " there is a table that maps XI system/applic acknowledgement to IDoc status. So in my opinion the status record of my IDoc should at least chenge to the corresponding status for the system ack.
Can anyone tell, if this is really working? What if I deactivate the acknowledgement request in the NOALE programm?
In any case, can I achieve to transfer the system ack to the IDoc status without using a ccBPM?
Many thanks and best regards
FlorianIs there a way to pass these acknowledgements to the IDoc status record?
Without BPM, No.
So in my opinion the status record of my IDoc should at least chenge to the corresponding status for the system ack.
The ack referred here is related to idoc status whether it is properly reached till XI or not and not related to the JDBC ack.
What if I deactivate the acknowledgement request in the NOALE programm?
Then u won't have any ALEAUD message at sender R3.
In any case, can I achieve to transfer the system ack to the IDoc status without using a ccBPM?
No
Regards,
Prateek -
IDoc to JDBC and JDBC to IDoc Scenario
Dear All,
I am working on IDoc to JDBC and JDBC to IDoc Scenario.
I have to send Idoc from SAP to Non SAP system(.NET application) i almost configured in XI but still i don't know when my INTEGRATION will INVOKE how my data will proceed from IDOC to Oracle database(Through JDBC) and in case of revese how and when Data flow will start.
Does anyone have completed STEP by STEP scenario document for this?
How my Idoc will sent to XI?
How XI will pick up data from IDoc?
How XI will Convert data to JDBC and UPDATE in Oracle Database?
And i reverse case(JDBC to IDoc) when my INTEGRATION will INVOKE?
Where and When i can watch my process and data?
How can i test the whole integration?
I AM GETTING ERROR WHILE TESTING CONFIGURATION IN Integration Directory "Error while refreshing the XI runtime cache" and when i check this in SXI_CACHE it gives me error
"Unable to refresh cache "NO_BUSINESS_SYSTEM"
"Error during last refresh to cache"LCR_GET_OWN_BUSINESS_SYSTEM - NO_BUSINESS_SYSTEM"
Please solve all the above problems i will reward u points
thanks,
RPHi,
While we working on IDOC to JDBC interface..
We have to deploy JDBC Drivers?
Go through this links,
/people/varadharajan.krishnasamy/blog/2007/02/27/configuring-jdbc-connector-service-to-perform-database-lookups
http://searchsap.techtarget.com/tip/0,289483,sid21_gci1246926,00.html
To install JDBC driver follow the how to guide.
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/xi/xi-how-to-guides/how%20to%20install%20and%20configure%20external%20drivers%20for%20jdbc%20and%20jms%20adapters.pdf
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.
If the connection is not working find the correct port number.
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/40b92770-db81-2a10-8e91-f747188d8033
JDBC- X I - R/3 Scenario
/people/bhavesh.kantilal/blog/2006/07/03/jdbc-receiver-adapter--synchronous-select-150-step-by-step
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Please check the driver path as mentioned below.
JDBC Driver : sun.jdbc.odbc.JdbcOdbcDriver
Connection:jdbc:odbc:Driver={Microsoft Access Driver (*.mdb)};DBQ=//location of DB table.mdb;
No JDBC driver required.
Receiver JDBC scenario MS access - /people/sameer.shadab/blog/2005/10/24/connecting-to-ms-access-using-receiver-jdbc-adapter-without-dsn
follow this thread
Re: Problem when connecting to MS Access through JDBC Adapter.
SAP Note 850116 has details
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
Configuring the Sender JDBC Adapter
http://help.sap.com/saphelp_nw04/helpdata/en/1d/756b3c0d592c7fe10000000a11405a/content.htm
Configuring the Receiver JDBC Adapter
http://help.sap.com/saphelp_nw2004s/helpdata/en/b0/676b3c255b1475e10000000a114084/content.htm
Idoc Reveiver adapter..
http://help.sap.com/saphelp_erp2004/helpdata/en/b9/c5b13bbeb0cb37e10000000a11402f/content.htm
Thanks,
Satya Kumar
/people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change
Edited by: SATYA KUMAR AKKARABOYANA on May 8, 2008 5:51 PM -
IDOC to JDBC scenario in case of Cost Element Group IDOC.
This is an IDOC to JDBC scenario.
The Cost Element Group IDOC is having different segments. The main segment E1COGH (1...unbound) is consisting of different subsegment like E1OGS (0...unbound) & E1COGV (0...unbound). The main segment (E1COGH) along with subsegments E1OGS & E1COGV) is occuring more that 1 times. I have to insert data into the table, which we can do in single rows (no hierarchy is possible in tables). I have used "use one as many" in message mapping. Now if E1OGS or E1COGV is repeating in a single E1COGH segment then we dont get any error. But if I duplicate the main segment then I am getting runtime exception.
Please suggest about how to map in this case.In my scenario:
E1COGH
|
-> E1COGS
E1COGV
where E1CGH -> Main segment
E1COGS & E1COGV -> sub segment
E1COGH -> 1..unbound
E1COGS -> 1..unbound
E1COGV -> 1..unbound
At the target side I have created two Statement Structure (ie.Statement & Statement_1) . One for E1COGS (ie. Statement) & the other for E1COGV (ie. Statement_1).
Case 1 -> If E1COGS is present in the main segment E1COGH then it is mapped AS IS.
Case 2 -> If E1COGS is not present in the main segment E1COGH then it is mapped as blank.
This will be mapped with Statement & in the absence of E1COGS this Statement structure is SUPPRESSED.
Similarly,
Case 1 -> If E1COGV is present in the main segment E1COGH then it is mapped AS IS.
Case 2 -> If E1COGV is not present in the main segment E1COGH then it is mapped as blank.
This will be mapped with Statement_1 & in the absence of E1COGV this Statement_1 structure is SUPPRESSED.
All the elements of the segment E1COGH, E1COGHT & E1COGHR are replicated in all the rows for X (no. of occurance of E1COGS) + Y (no. of occurance of E1COGV).
While testing in Message Mapping, I am able to get the output as for multiple occurence of E1COGS & E1COGV in a single E1COGH.
But if I increse the occurence of E1COGH the it is giving the following error :
Runtime exception during processing target field mapping /ns0:MT_Cost_Element_Group_Response/Statement/DBtablename/access/GROUPNAME. The message is: Exception:[com.sap.aii.mappingtool.tf3.IllegalInstanceException: Too few values in first queue in function useOneAsMany. It must have the same number of contexts as second queue.] in class com.sap.aii.mappingtool.flib3.NodeFunctions method useOneAsMany[com.sap.aii.mappingtool.flib3.CollapseContexts@51197231, , ]
Please suggest how to map the occurence of E1COGH simultaneously with the occurence of E1COGS & E1COGV. -
Mapping issue in idoc to JDBC scenario
mapping issue in idoc to JDBC scenario
source structure
E1KNB1M
BUKRS = 1000
E1KNB1M
BUKRS= 9000
E1KNB1M
BUKRS= 2000
THE NODE E1KNB1M is repeated many times and the field BUKRS is also repeated with E1KNB1M as above
TARGET field : ISFRANCHISE
if any where value of BUKRS =9000 we have to pass Y to the target filed, else N
if BUKRS = 9000 THEN ISFRANCHISE= Y
ELSE
ISFRANCHISE=N
I've done the mapping as below
BUKRS = 9000--> IF THEN Y ELSE N--
> ISFRANCHISE
BUT everry time the target value is N only
pl suggest
rgds
mojibmapped like this
BUKRS--->SORT---->
EQUALS --------IF---THEN Y
9000------------------------> ----------------->ISFRANCHISE
ELSE N
context of BUKRS set to parent node
its worked
thanks to all for valuable suggestions
rgds
mojib -
IDOC-XI-JDBC scenario, jdbc sent too slow
i have a IDOC-XI-JDBC scenario,
the problem is that near 5 Lac IDOC is sent to XI, each IDOC is processes by an instance of the scenario, and the sent to the Database is too clow...means 4000 records per hour,
can i configure the JDBC receiver adapter in a way, so that it becomes faster/more concurrent,Hey,
First raise the issue to the DBA he might help resolve the ISSUE more efficently.
Secondly check in the JDBC adapter -> Adavance mode -> Disconnect from the data base after processing each message shouldn't be set.
Even check with Database Transaction Isolation Level -> default is value of the connected database.
<b>The isolation level determines how transactions running in parallel can influence each other</b>
http://help.sap.com/saphelp_nw04/helpdata/en/64/ce4e886334ec4ea7c2712e11cc567c/content.htm
Why not the other way around > Collect multiple idocs in a file restrict maxium number of idocs to required value then send the file ?
Stefan Grube Example:
/people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm
if it is with bpm then collect multiple idoc with occurance change and send them.
<b>Cheers,
*RAJ*
**REWARD POINTS IF FOUND USEFULL <b> -
Error in IDoc to JDBC scenario
Hi friends,
I am configuring an IDoc to JDBC scenario in XI.When I am testing the scenario in Test Configuration then it is getting processed successfully but when I am tseting the entire configuration then in sxmb_moni the following error is showing:
"Error occurred during back-routing Error in communication channel". Please help as I am unable to understand the error.
regards
DebansuHi Debansu,
Please go through the link it may help to solve your problem.
JDBC Adapter / Acknowledgements
Error in back routing Error in communication channel
Regards,
Sridhar Goli
Edited by: sridhar goli on Aug 11, 2008 11:35 AM -
Message mapping issue in idoc to jdbc scenario
We have a scenario of idoc->XI-JDBC
the below given segment may get repeated , as shown below ,
E1EDP19[2]--idoc segment
QUALF---003
IDTNR---01000123(Bar Code No)
E1EDP19[3]--idoc segment
QUALF---003
IDTNR---20500000000034(EAN No)
Reqd mapping
if QUALF=003
THEN IDTNR----->Bar_code_Number_EAN
Now IDTNR has to be mapped with Bar_code_Number_EAN for the segment which comes last
Pl suggest how to map using graphical mapping for the above scenario.Hi Raj ,
The current mapping works fine if the parent segment E1EDP01 is only one but if that gets repeated then the last value of IDTNR is getting populated in the target side, very clearly i m giving the source and target structure and the mapping done using the UDF
Source structure
E1EDP01
E1EDP19[1]--idoc segment
QUALF---002
IDTNR---01000123(Bar Code No)
E1EDP19[2]--idoc segment
QUALF---003
IDTNR---01000123(Bar Code No)
E1EDP19[3]--idoc segment
QUALF---003
IDTNR---20500000000030(EAN No)
E1EDP01
E1EDP19[1]--idoc segment
QUALF---002
IDTNR---01000123(Bar Code No)
E1EDP19[2]--idoc segment
QUALF---003
IDTNR---01000123(Bar Code No)
E1EDP19[3]--idoc segment
QUALF---003
IDTNR---20500000000031(EAN No)
E1EDP01
E1EDP19[1]--idoc segment
QUALF---002
IDTNR---01000123(Bar Code No)
E1EDP19[2]--idoc segment
QUALF---003
IDTNR---01000123(Bar Code No)
E1EDP19[3]--idoc segment
QUALF---003
IDTNR---20500000000032(EAN No)
Target mapping
if QUALF=002
THEN IDTNR--->Article_No this is the direct mapping so , no issues
if QUALF=003
THEN IDTNR----->Bar_code_Number_EAN, now this IDTNR should get repeated every time the segment E1EDP01 gets repeated , currently only the last value form all the IDTNR is coming to the target side.
The current mapping works fine if the parent segment E1EDP01 is only one
Target structure
Access1
IDTNR--> Bar_code_Number_EAN( value is 20500000000030)
Access2
IDTNR--> Bar_code_Number_EAN( value is 20500000000031)
Access3
IDTNR--> Bar_code_Number_EAN( value is 20500000000032)
Current mapping
If QUALF = 003
Then QUALF ---->
mapBarCodeEAN---->Bar_code_Num_EAN
If QUALF = 003
Then IDTNR ---->
Context of QUALF is set to E1EDP01
Context of IDTNR is set to E1EDP01
thanks for your personalised help
rgds
mojib
Edited by: mohammad mojib ur rahman on Apr 9, 2010 1:30 PM -
Problem in Idoc to JDBC scenario(uses BPM)
Hi
I have a IDoc to JDBC scenario which also uses BPM.
The JDBC adapter has to execute a Stored procedure on Sybase database.
I work on XI3.0 SP14.
When I am sending IDoc to XI it is failing in CALL adapter step.
The error message is "Unable to convert sender service TruckLiftAccountUpdate to an ALE logical system".
However this scenario is working in Production with same settings.But it is not working in Quality and it is giving the above error.
Can any one help me in this.
Thanks in advance.
KPThanks for your quick reply..
All the settings are in place.
Here the Idoc is coming to BPM and BPM cant able to execute the stored procedure.and we are getting the error from BPM to target system.
Here error is unable to convert the sender service(from BPM service) to ALE
logical system.
same settings are there in Production but it is not working in QA.
Thanks in adavnce,
KP -
Hi,
I have scenario from IDOC to JDBC. My question is, can JDBC call be synchronous in this scenario, so I colud i 2. step update some Oracle table with new Vendor number. Second question is, is there on Internet some example of calling Oracle Customer function, or is it possible?
thx
marioHi check this blog for synchronous JDBC call
/people/siva.maranani/blog/2005/09/16/xi-how-to-on-jdbc-receiver-response
BR
Sameer -
IDoc to JDBC scenario strange bahaviour
Hi Experts,
My Scenario is IDoc to JDBC,
I am creating some vendor masters in ECC, CREMAS IDoc sent to PI, mapping everything executed perfectly but data not posted in to data base, it is taking min 20 mnts to post data.
When I monitor communication channel it is initiated and status (Dlvg) but after 20 mnts only it is showing message data posted successfully in Data base.
What I observed was in MONI, IDoc initial status shows still awaiting for acknowledgement, after 20 mnts status changed to Acknowledgement not possible, at this time data posted to ODS.
Why this is happening, it is really strange behaviour.
When I reprocess IDoc using WE19 without delay data posted to data base and IDoc status in moni " ack not possible.
How to solve this issue.
Toa a Thanks advance,
JamHi,
Please see the link, it might be useful to you.[Handle_Acknowledgements|http://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f6d2d790-0201-0010-9382-b50b499b3fbe]
Regards,
P.Rajesh
Edited by: Rajesh_1113 on Apr 29, 2011 3:24 PM -
Hi,
Hope you all are doing well. I have an IDoc to JDBC scenario. The IDoc structure is as follows:
<IDOC BEGIN="1">
<Structure 1>
<DEFINITION>xxxx</DEFINITION>
<CREATE_DATE>20070706</CREATE_DATE>
</Structure 1 SEGMENT="1">
<Structure 2>
<ELEMENT>xxx1</ELEMENT>
<CREATE_DATE>20070719</CREATE_DATE>
</Structure 2>
<Structure 2>
<ELEMENT>xxx2</ELEMENT>
<CREATE_DATE>20070719</CREATE_DATE>
</Structure 2>
<Structure 3>
<ELEMENT>xxx1</ELEMENT>
<PROJECT>yyyy1</DEFINITION>
</Structure 3>
<Structure 3>
<ELEMENT>xxx1</ELEMENT>
<PROJECT>yyyy2</PROJECT>
</Structure 3>
<Structure 3>
<ELEMENT>xxx2</ELEMENT>
<PROJECT>yyyy3</DEFINITION>
</Structure 3>
<Structure 3>
<ELEMENT>xxx2</ELEMENT>
<PROJECT>yyyy4</PROJECT>
</Structure 3>
</IDOC>
Structures 1, 2 and 3 are at the same level/hierarchy in the IDoc. Structure 3 contains the project name of records in structure 2. The requirement is that if the records in structure 2 have the create date as the current date then the corresponding project in structure 3 has to be passed on to the database by creating a statement. To do this, we need to check the date of the record in structure 2 and if the date is equal to the current date then we have to use the element in structure 2 to select the corresponding rows in structure 3 to be passed on to the database. The INSERT statements have to be created for each of the rows of Structure 3 to be passed on to the database.
How do I achieve this?
I tried using node and text standard functions functions but was unable to achive the objective. Can I use UDF to read the IDoc structures and determine the statements?
regards
DebansuHi Debansu,
Use this Queue type UDF
public void UDF(String[] curDate, String[] Element_Str2, String[] date, String[] Element_Str3, String[] project, ResultList result, Container container) throws StreamTransformationException{
for(int i=0; i<date.length; i++)
if (curDate[0].equals(date<i>))
for(int j=0; j<project.length; j++)
if (Element_Str2<i>.equals(Element_Str2[j]))
result.addValue(project[j]);
Here first parameter is current date function, second parameter is 2nd structure element field, third parameter is date field from 2nd structure, fourth parameter is 3rd structure element field and fifth parameter is project field from 3rd structure.
Regards,
VR -
Hi All,
I am doing a IDOC to JDBC Scenario.I am done with IR and ID.
The Table in the DB is TABLE1 with Field1 and Field2.
Now when I run thescenario it throws an error ,
2009-03-19 12:41:06 Success INSERT INTO TABLE1 (Field1, Field2) VALUES (KM247850, FINJTIA)
2009-03-19 12:41:06 Error Unable to execute statement for table or stored procedure. 'TABLE1' (Structure 'Statement') due to java.sql.SQLException: [EUDNT038]The name "KM247850" is not permitted in this context. Valid expressions are constants, constant expressions, and (in some contexts) variables. Column names are not permitted.
But it has successfully generated the SQL Query which I think is perfect.
But whats the error which follows that?
How do I resolve it?
Thanks,
VenuHi,
It could be due to wrong structure of JDBC, compare your target structure with this blog..
/people/sap.user72/blog/2005/06/01/file-to-jdbc-adapter-using-sap-xi-30
Regards,
Sarvesh -
IDOC to JDBC scenario: Does INSERT command expect a result value?
Hello,
we have an IDoc-to-JDBC-scenario configured on our XI 3.0, which uses the INSERT command to put a dataset coming from R/3 into a SQL database. This works fine.
Now a trigger has been activated on the database, which sets a flag to each dataset after inserting.
Because of this a system error occurs in the Adapter Engine and I found in the AuditLog (logSQLStatement=true), that the INSERT command is processed correcty, but in the next step an error is shown up: 'SQLServerException. A result set was generated for update.'
Could it be, that the trigger returns a result value, which can't be handled on the XI ?
If yes, how can I solve this issue? I have read something about the different methods execute(), executeUpdate() and executeQuery(), but I don't know how and where this has to be configured...
Thanks in advance,
JuergenHi Upendra,
I got some more information from the database adminstrator:
He used the following command 'exec xp_cmdshell @ExportCmd , no_output'
whereas @ExportCmd contains the command.
With the no_output option, the xp_cmdshell does not return a recordset.
I hope this will be helpful to you.
Grtz,
Juergen -
IDOC -to-JDBC Scenario for Purchasing Info Record - Urgent !!!
Hi All,
I am working on IDOC-to-JDBC Scenario and i have no concepts about IDOCs. I know how to configure an IDOC in XI , but i have no idea how to start for it in SAP.
Can anybody help me on how to find the INFREC IDOC in SAP, how to configure it , how to insert data into that IDOC and then finally how do we test that if its working or not .
Thanks & Regards,
RuchiHi All,
I am working on IDOC-to-JDBC Scenario and i have no concepts about IDOCs. I know how to configure an IDOC in XI , but i have no idea how to start for it in SAP.
Can anybody help me on how to find the INFREC IDOC in SAP, how to configure it , how to insert data into that IDOC and then finally how do we test that if its working or not .
Thanks & Regards,
Ruchi
Maybe you are looking for
-
What specs/ upgrades should I get for a Macbook pro that I'm buying?
I don't want to spend a ton of money but enough that the macbok pro will be really fast. I browse the web a lot I watch youtube and netflix on it I will need it to do college assignments I will need to do basic video and picture editing
-
What is use of defining SELECTION PARAMETER in MOVEMENT TYPE
Hi All , Can u pls tell me the reason of defining SELECTION PARATEMETER in MOVEMENT TYPE. REGARDS Sandeep
-
How to restore a previous version of lightroom database
I messed up and mistakenly removed an image from lightroom ... is there any way to recover that version of the image that was in the lightroom database via a restore process? I've been backing up the database each time I start the program. Thanks.
-
Material group values in Sales Order
In sales Order Additional data A tab /Item level, I need to add drop down vales for all material Groups could someone let me know what is the tcode to be used. Thanks in advance Satprk
-
Safari session problem? (Connecting... forever)
Two sites I frequently use do not work well with Safari. Both sites require a login and will work well for awhile. Then, suddenly, Safari will stop loading the pages. It will just say "contacting [sitename]" in the status bar. Then, it will refuse to