Problem in message mapping while generating multiple record
Hi experts,
I am doing an idoc to file scenario in which E1FISEG SEGMENT is coming multiple time and if it contains two field ebeln & sgtxt then only it has to create corresponding data record I used following logic ..............
eibeln[change context to one level upper] --->Exist
> AND-> Createif Target
sgtxt[change context to one level upper] -
>Exist
and achived creation of data record but the problem is that if EIFISEG occurs five time and only two time it contains eibeln& sgtxt then its creating only two data record but its taking data from first and second E1FISEG segment instead of corresponding E1FISEG which satisfy the condition......Plz help its bit urgent
Regards
Neha
First take out the Context Change for each element EIBELN and SGTEXT and do the maping . Before the Createif Use the remove context node function. It will work fine.
So EIBELn and SGTXT exist pass after If condition it will pass the elements with context change inside. Now use the remove context method to combined those values then definetly it wil work out
Warm Regards,
Vijay
Message was edited by:
Gangisetty Vijaya Bhaskarudu
Similar Messages
-
Problem with message mapping ...
Hello,
I have problem with message mapping. I implemented SOAP-to-RFC scenario. The source message is of type http://sntcz.cz/xmlns/holidays:MT_Holiday, the target message of type urn:sap-com:document:sap:rfc:functions:Z_GET_SUPERIOR. But some error is still generated in Request Message Mapping step:
com.sap.aii.utilxi.misc.api.BaseRuntimeException: RuntimeException in Message-Mapping transformation: Cannot produce target element /ns1:Z_GET_SUPERIOR/USR. Check xml instance is valid for source xsd and target-field mapping fulfills requirements of target xsd at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:403) at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:142) at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:102) at .....
This is XSD definition of source message:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://sntcz.cz/xmlns/holidays" targetNamespace="http://sntcz.cz/xmlns/holidays">
<xsd:element name="MT_Holiday" type="DT_Holiday" />
<xsd:complexType name="DT_Holiday">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
030495e1742f11dd963600301875333b
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="SinceDay" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba049b067aa11dd8be6eee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="SinceMounth" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba293a067aa11dda311eee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="SinceYear" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba293a167aa11dd9b4eeee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="UntilDay" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba293a267aa11ddc352eee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="UntilMounth" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba293a367aa11ddc33aeee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="UntilYear" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba293a467aa11dda8cfeee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="UserId" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
fba293a567aa11dd9698eee20abb2a3f
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>
This is XSD definition of target message:
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:sap-com:document:sap:rfc:functions" targetNamespace="urn:sap-com:document:sap:rfc:functions">
<xsd:element name="Z_GET_SUPERIOR">
<xsd:complexType>
<xsd:all>
<xsd:element name="USR" type="xsd:string" minOccurs="0" />
</xsd:all>
</xsd:complexType>
</xsd:element>
</xsd:schema>
It's strange that if I use Message Mapping Test it works fine. But in pipeline not.
Do you have any idea where could be the problem?
Thank you in advance!
Best regard,
ZbynekHi,
To know the correct error Take the Inbound Payload from MONI and Test it in Mapping Test TAB. then u will come to know the exact error.
Procedure to take the Payload
goto MONI-Double click on MessageInbound Message ( CENTRAL ) --Payloads ---Double click on MainDocument ( application/xml ) -Just Right Click on the second window-View Source
then now Copy this and paste it in Mapping Test and Execute.
REgards
Seshagiri -
Problem in message mapping index.
HI All,
I am doing idoc to file scenario.
I have a problem in message mapping.
Issue is,
pallet1
palletheader(here i used counter to increment the value)
palletline(here i used INDEX to increment the value)
pallet linenumber1(it should be 1)
pallet linenumber2(it should be 2)
so on )
so on
pallet2
palletheader
palletline
pallet linenumber1(here again it should be 1)
pallet linenumber2(here again it should be 2)
so on )
so on
In INDEX we have option called reset index in that we have two radio buttons
one is "reset index to intial value with each new context"
and next one is "donot reset index to intiak value"
if i use the first radio button which is working fine in only one pallet and more pallet lines but not more than one pallet.
If i use the second radio buttton which is working fine in more than one pallet but not satisfying the more pallet lines in one pallet.
Can you please help me on the issuemy requirement is like this.
IF DELVRY05/IDOC/E1EDL20/E1EDL24/POSNR equals to /DELVRY05/IDOC/E1EDL20/E1EDL37/E1EDL44/EXIDV
then map to 'pallet line' .
I tried to keep posnr context as E1EDL20 and also IDOC level.
And at the same way to EXIDV too.
pallet(1 to unbounded)
pallet header(1 to 1)
pallet lines(1 to 1)
in sub level pallet line(1 to unbounded) (here i applied the index logic)
The out put should be pallet line 1,2,3,----- so on
In the second pallet the pallet lines should be again 1,2,3,4-------so on .
But when i try to apply thsi logic,
I am getting only one pallet line instead of two.
second is not comming .
please help on this i am facing this problem for the long time back.
if i solve then i can complete my scenario. -
Hi,
My requirement is filter message based on the condition.
My source structure is like below
Root_Node
|
RecordSet (1..Unbounded)
|_
| Header (1..1)
| |_ RecordType
|_
Detail (1.. Unbounded)
|_ RecordTypeDetail
Example XSD is given below
Now my requirement is I need to map the iterations to the same type of target structure (but only difference is all elements are non mandatory).
if
1) RecordType does not exists under Header, then map Detail.
2) recordTypeDetails does not exists under Details then map Header.
Now while doing RecordSet Mapping I have written user defined function which adds context if any of the above condition valid.
But while doing the mapping for the Header Record we should map the iteration for which detail is not available, I am not able to associate the above context with the new resultset context.
Any suggestions please.
<?xml version="1.0" encoding="ISO-8859-1"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="urn:group8" targetNamespace="urn:group8">
<xsd:complexType name="DT_EA_COMPLETE">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
e616ab20c08c11d9bb8e001143eb68b9
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="DT_EA_HD" type="DT_EA" maxOccurs="unbounded">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
cdea8830bb8e11d98600dd930a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
<xsd:complexType name="DT_EA">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
eab53980c08c11d9ab7d001143eb68b9
</xsd:appinfo>
</xsd:annotation>
<xsd:sequence>
<xsd:element name="Header">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f70bb0e11d9afc8fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="rec_type_h" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f71bb0e11d9c902fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Project_estimate_number" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f72bb0e11d998cafdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Revision_number" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f73bb0e11d9851bfdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Project_estimate_title" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f74bb0e11d99a04fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Project_estimate_description" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f75bb0e11d99d6ffdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="purchase_order" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f76bb0e11d9bf5efdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
<xsd:element name="DetailData" maxOccurs="unbounded">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f77bb0e11d9c8b6fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
<xsd:complexType>
<xsd:sequence>
<xsd:element name="rec_type" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f78bb0e11d9cfa4fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Price" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f79bb0e11d9c487fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="gl_account" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f7abb0e11d99609fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Internal_order" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f7bbb0e11d99b5afdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="line_item_description" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f7cbb0e11d9bdf8fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="print_job_indicator" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f7dbb0e11d9cec2fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="impress_project_number" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f7ebb0e11d9af41fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="partner_vendor" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f7fbb0e11d9be5dfdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="time_of_delivery" type="xsd:date">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f80bb0e11d9c353fdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
<xsd:element name="Vendor_text" type="xsd:string">
<xsd:annotation>
<xsd:appinfo source="http://sap.com/xi/TextID">
9d192f81bb0e11d9b0cdfdcd0a770421
</xsd:appinfo>
</xsd:annotation>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
</xsd:sequence>
</xsd:complexType>
</xsd:schema>HI,
I think there is problem with occurence here. Try to findout run time value in the mapping.. i.e Diplay queue option in the mapping editor. SO that you can check where exactly it is getting error.
Regards,
Moorthy -
Multi-mapping ... multiple records works, one record doesn't
I'm using JDBC to select rows from an external Oracle database, XI receives the message, splits it into multiple messages (one for each record returned) and, using RFC/BAPI, takes each record and writes it to an SAP table on an SAP system. I'm using the RB_SPLIT option in my Interface Determination and in my Interface Mapping I'm using Source occurrences = 1, Target occurrences = 0..unbounded.
This works GREAT ... as long as there is more than one record returned from the select statement in the JDBC setup. If the select statement only returns one record, nothing gets transferred. If it's any amount of records more than 1, it works perfectly.
Why won't it process one record? What can I do to get it to process one record, without messing up the great job it does for more than one record?
Thanks!Hi Michael -
I have a similar setup (at least on the sender side) and whether I have multiple records returned or just one, I'm getting my expected result. FYI, I'm using a file receiver.
I would first take a closer look at your mapping. Get the one record XML that is sent to the Integration Server and test your message mapping in the IR. Remember to put it in between the tags below:
<ns0:Messages xmlns:ns0="http://sap.com/xi/XI/SplitAndMerge">
<ns0:Message1>
</ns0:Message1>
</ns0:Messages>
Regards,
Jin -
Upgrading from XI/PI7.0 to 7.1 having problems with message mapping
Hello,
We are in the process over the past week of testing our XI/PI functionality after upgrading our 7.0 XI/PI environment to PI7.1; in particular several maps that were accessible in 7.0 will not open or diaplay in 7.1 complaining of a missing node in the mapping structure. Currently working with SAP on a possible fix but wanted to know if anyone else has done a true migration on top of an existing XI/PI7.0 system and experiencing similar issues (note: the maps can execute in the runtime environment but we can't display the maps source within message mapping; this also does not occur for all maps and there is no clear consistant theme to those that can be displayed and those that can't).
The lattest issue just encountered related to message mapping is that in test mode of a map (that can be displayed) attempting to display the data queue for the mapped elements are blank no data being displayed giving an error noting that the source text of object message mapping: name of the map; has syntax errors, java area import line x, package ibm.com.xi.mapping does not exist/ import ibm.com.xi.mapping UDF:
Has anyone upgraded from PI7.0 to 7.1 and experienced errors with existing maps that worked ok (ans still work in our QX/PRD systems) in their 7.0 envirinment but encountereing strange errors once upgrated to 7.1?
Thanks
Dereck Purnell
NewellRubbermaidHere is the solution we received from SAP to address the issue, there were several mapping related issues we started havng from maps that worked in our 7.0 system prior to the upgrade to PI 7.1. I will try to encorporate the solutions in this response.
a) From Customer to SAP
1. We are unable to open some massage mapping, it is throwing
exception
2. Number Format functions throw exception.
But following issue is still unresolved:
3. When we display message queue, it throws exception
***) 05.02.2009 - 12:34:33 CET - Reply by SAP
The patch has been released at the Service Marketplace.
Please update the scas described in the note 1264871.
The "FormatNum" function issue has also been taken care in this patch.
Please go through the Note 1264871 for other behaviour changes after
upgrade. Let us know if you need any further help.
Regards,
B) From Customer to SAP
04.02.2009 - 00:23:44 CET - Info for SAP
We discovered another issue with mapping.
For some of the mappings, we are unable to display mapping queue. When
we execute, Interface mapping and Massage mapping, it works fine. But
display queue throws exception. Itu2019s not able to recognize libraries
used from dependent software component.
Please find document "Display Mapping Queue Issue" providing example
problem.
25.02.2009 - 07:05:28 CET - *Reply by SAP*
Thank you for your update. I wanted to check with "CopyValue"
function's index. It has to take an input integer and the problem that
found while debugging the opening of your mapping is that the input
was empty thus causing the exception.
I was going to suggest the intended use of "CopyValue" function.
When the input to "copyValue" is a constant, "copyValue" is totally
not necessary. Thus constant can be directly mapped to other function.
When the input is a node with values in context, you can treat one of
values say input[0] to used in mapping by using CopyValue[0].
But please make sure that input[0] will always produce a value.
Note 877964 will describe in detail on Copyvalue usage.
I am marking this Message as complete. Please confirm. -
Mapping is inserting multiple records from a single source to Dimension.
Hi All,
I am very new to OWB. Please help me out. I've created Dimension with the help of the wizard and then a mapping which consist of single source and single dimension. The mapping is populating nearly 500 times of the actual records. Following are some details to give you a better understanding of mapping: I created a dimension with four levels and two hierarchy. Levels are L1, L2, L3 and L4 and hierarchies are H1-> L1, L2 and L4
and H2-> L3 and L4. L4 is lowest level of hierarchy. L1 and L3 are parent levels in the respective hierarchies. I assigned an attribute of each level as Business identifier that means business identifier attribute is different in each level. In mapping I mapped the parent natural key(Key for parent Level in a hierarchy) as the value which has been mapped for parent level. The result is coming 500 times of the record that exist in source table. I've tried even single common business identifier for each level but again the result is 5 times of the records. Please let me know the solution.
Thanks is advance.
AmitHi ,
You may not be having multiple records in your dimension.
To understand better the records insertion, try a snow flake version of the dimension and see how the records are inserted as per the levels in the respective tables.
Thanks -
Error in message monitoring while creating new record in R/3
Hi All,
I am getting the following error in message monitoring while creating a new record from SAP Mobile client.
Service name: Validation_Service
Message: BackendKeys are not filled in table HEADER returned by getDetails
I am passing some random number from Client to SAP R/3 create function module.
When i pass the same value in create FM as in message monitoring. I am able to create the record successfully,
Corresponding to newly created record, i can see the data in getdetail header also.
Not sure why this error is coming.
Appreciate your help!!
Thanks & Regards
DevendraThe CREATE FM should not only create the entry, it should also EXPORT the key that it uses to create the entry. Is it doing that?
i.e. the CREATE signature is usually something like:
CREATE_BLAH
IMPORTING header TYPE header_row
EXPORTING key type header_row-key_field.
So the 'key' here should be filled by the FM and returned to DOE. -
Problem in message Mapping SAP PI 7.1
Hi Experts,
I have a problem in my Message Mapping,
Design: [Design|http://www.life-4-music.de/prob.jpg]
Messagemapping: [MappingTest|http://www.life-4-music.de/probII.jpg]
The Problem is, that ElementC from SourceMessage occours "0 to n" times in Element A, but I need to check every ElementC in ElementA to TargetElementA with a IF Statement.
I tried a lot of things, like change the CONTEXT of the ELEMENT or use SPLIT BY VALUE but without success.
Rgds,
SteffenHello, thanks a lot for the fast awnser. I tried this allready to change the Context of the Elements "system" in this Mapping: Changed Context
For Example in one field I check for Entry "ERP" in Source Field "system" , if "ERP" is in the first ELEMENT then it will be mapped correctly: Example ERP works
But If "ERP" is in an element below, then it doesn´t work, so it seems to be, that he only map the first occurrence of the Elements. : Example SCADA don´t work
Here is the View of the QUEUE from the don´t working Example: Show QUEUE of not working Example
maybe u have a tip for me again , because I´m allready desperate
Thanks a lot.
Rgds,
Steffen -
Problem for Struts action to insert multiple records
I am writting a code for Struts action which inserting a single record to table A and multiple records to table B .The architecture that I applied is Struts+Spring+iBatis.The multiple records are come from a 10-rows table in the design.The name of each column element is same.The field name other than these are just single-row field.
<tr>
<td><input name="date" type="text" size="12" /></td>
<td><input name="billno" type="text" size="8" /></td>
<td><input name="desc" type="text" size="11" /></td>
<td><input name="purpose" type="text" size="20" /></td>
<td><input name="proName" type="text" size="6" /></td>
<td><input name="trainingCost" type="text" size="5" /></td>
<td><input name="travelCost" type="text" size="7" /></td>
<td><input name="entCost" type="text" size="5" /></td>
<td><input name="miscCost" type="text" size="5" /></td>
</tr> I am using three DTO objects to hold the data.claimArray is the ClaimDTO array that hold the multiple record insert to table B.claimdto is the object that hold the single field record to table A.claim_dtldto is the object that hold the single field record to table B.
PK of table A and table B are claimNo and claimDtlNo respectively.claimNo is also FK of table B. HTMLUtil is just an API that I used it for type conversion.There will have two insert statements in iBatis xml, insertClaim & insertClaimDtl to insert data into table A and table B respectively.I not sure what went wrong in the code,the data is not inserted into db.Thank advanced for you guys help..
This is the codes in Action file:
public class InsertClaimAction extends SpringAction {
public ActionForward execute(ActionMapping mapping,
ActionForm form,
HttpServletRequest request,
HttpServletResponse response) throws Exception {
// string arrays that store multiple values
String [] date = new String[10];
String [] billno = new String[10];
String [] description = new String[10];
String [] purpose = new String[10];
String [] proName = new String[10];
String [] trainingCost = new String[10];
String [] travelCost = new String[10];
String [] entCost = new String[10];
String [] miscCost = new String[10];
String staffName = request.getParameter("name");
String claimMy = request.getParameter("monthyear");
String department = request.getParameter("department");
String designation = request.getParameter("designation");
Double excrate = HTMLUtil.str2double(request.getParameter("excrate"),0.0);
Double grandTotal = HTMLUtil.str2double(request.getParameter("grandTotal"),0.0);
Double totalRM = HTMLUtil.str2double(request.getParameter("totalRM"),0.0);
Double totalFC = HTMLUtil.str2double(request.getParameter("totalFC"),0.0);
String fcName = request.getParameter("fcAbbr");
if(request.getParameter("date") != null)
date = request.getParameterValues("date");
if(request.getParameter("billno") != null)
billno = request.getParameterValues("billno");
if(request.getParameter("description") != null)
description = request.getParameterValues("description");
if(request.getParameter("purpose") != null)
purpose = request.getParameterValues("purpose");
if(request.getParameter("proName") != null)
proName = request.getParameterValues("proName");
if(request.getParameter("trainingCost") != null)
trainingCost = request.getParameterValues("trainingCost");
if(request.getParameter("travelCost") != null)
travelCost = request.getParameterValues("travelCost");
if(request.getParameter("entCost") != null)
entCost = request.getParameterValues("entCost");
if(request.getParameter("miscCost") != null)
miscCost = request.getParameterValues("miscCost");
//initialize dto
ClaimDTO claimdto = new ClaimDTO();
ClaimDTO claim_dtldto = new ClaimDTO();
ClaimDTO[] claimArray = new ClaimDTO[10];
claimdto.setClaimNo(claimNo);
claimdto.setStaffName(staffName);
claimdto.setClaimMy(claimMy);
claimdto.setDepartment(department);
claimdto.setDesignation(designation);
claimdto.setExcrate(excrate);
claimdto.setGrandTotal(grandTotal);
claim_dtldto.setClaimDtlNo(claimDtlNo);
claim_dtldto.setClaimNo(claimNo);
claim_dtldto.setTotalRM(totalRM);
claim_dtldto.setTotalFC(totalFC);
claim_dtldto.setFcName(fcName);
for(int i = 0;i < claimArray.length;i++) {
if(claimArray[i] != null) {
claimArray.setDate(date[i]);
claimArray[i].setBillno(billno[i]);
claimArray[i].setDescription(description[i]);
claimArray[i].setPurpose(purpose[i]);
claimArray[i].setProName(proName[i]);
claimArray[i].setTrainingCost(Double.parseDouble(trainingCost[i]));
claimArray[i].setTravelCost(Double.parseDouble(travelCost[i]));
claimArray[i].setEntCost(Double.parseDouble(entCost[i]));
claimArray[i].setMiscCost(Double.parseDouble(miscCost[i]));
//service
ClaimService springservice = (ClaimService)getBean("ClaimService");
springservice.insertClaim(claimdto);
springservice.insertClaimDtl(claim_dtldto,claimArray);
return mapping.findForward("success");Two things; you need to pass #number# as a form field and you
need to pull the correct record out.
Use this:
<cfloop list="#form.fieldnames#" index="fieldName">
<CFSET record = Evaluate("form.record_#number#")>
</cfloop>
Here's some example code: -
Error in mapping while generating bitstream
While generating bitstream in xps-14.2 i am getting error related to mapping:
ERROR:MapLib:978 - LUT6 symbol
"RS232_Uart_1/RS232_Uart_1/UARTLITE_CORE_I/UARTLITE_RX_I/running_valid_start_ AND_8_o_SW0" (output signal=RS232_Uart_1/N6) has an equation that uses input
pin I2, which no longer has a connected signal. Please ensure that all the
pins used in the equation for this LUT have signals that are not trimmed (see
Section 5 of the Map Report File for details on which signals were trimmed).
ERROR:MapLib:978 - LUT6 symbol
"RS232_Uart_1/RS232_Uart_1/UARTLITE_CORE_I/UARTLITE_RX_I/running_valid_start_ AND_8_o_SW0" (output signal=RS232_Uart_1/N6) has an equation that uses input
pin I4, which no longer has a connected signal. Please ensure that all the
pins used in the equation for this LUT have signals that are not trimmed (see
Section 5 of the Map Report File for details on which signals were trimmed).
ERROR:MapLib:978 - LUT4 symbol
"RS232_Uart_1/RS232_Uart_1/UARTLITE_CORE_I/UARTLITE_RX_I/stop_Bit_Position_EN _16x_Baud_AND_16_o1" (output
signal=RS232_Uart_1/RS232_Uart_1/UARTLITE_CORE_I/UARTLITE_RX_I/stop_Bit_Posit
ion_EN_16x_Baud_AND_16_o) has an equation that uses input pin I0, which no
longer has a connected signal. Please ensure that all the pins used in the
equation for this LUT have signals that are not trimmed (see Section 5 of the
Map Report File for details on which signals were trimmed).
ERROR:MapLib:978 - LUT6 symbol
"RS232_Uart_1/RS232_Uart_1/UARTLITE_CORE_I/status_reg_1_glue_set" (output
signal=RS232_Uart_1/RS232_Uart_1/UARTLITE_CORE_I/status_reg_1_glue_set) has
an equation that uses input pin I2, which no longer has a connected signal.
Please ensure that all the pins used in the equation for this LUT have
signals that are not trimmed (see Section 5 of the Map Report File for
details on which signals were trimmed).
I go through the forum for this error ,i found some answers but still not able to resolve my error.
Thank you.Yes that error is resolved,Thank you very much .
mapping error related to uart signal is resolved but some mapping errors are remaining:
ERROR:MapLib:979 - LUT2 symbol
"proc_sys_reset_0/proc_sys_reset_0/EXT_LPF/External_System_Reset_MB_Debug_Sys _Rst_OR_8_o1" (output
signal=proc_sys_reset_0/proc_sys_reset_0/EXT_LPF/External_System_Reset_MB_Deb
ug_Sys_Rst_OR_8_o) has input signal "RESET" which will be trimmed. See
Section 5 of the Map Report File for details about why the input signal will
become undriven.
ERROR:MapLib:978 - LUT2 symbol
"proc_sys_reset_0/proc_sys_reset_0/EXT_LPF/External_System_Reset_MB_Debug_Sys _Rst_OR_8_o1" (output
signal=proc_sys_reset_0/proc_sys_reset_0/EXT_LPF/External_System_Reset_MB_Deb
ug_Sys_Rst_OR_8_o) has an equation that uses input pin I0, which no longer
has a connected signal. Please ensure that all the pins used in the equation
for this LUT have signals that are not trimmed (see Section 5 of the Map
Report File for details on which signals were trimmed).
Now in ucf file, for which signal i have to apply the "s" property. -
Single Line Data Type to Collection Data type, Problem in Message mapping
I have a csv file, the file has the following lines
hdr1
line1
line2
lineN
hdr2
line1
lineN
I want it to map it to an object with the ff structure
root object 1..1
object 1..1
subobject 0...n
hdr 1..1
line 1...n
How is the mapping of the said data types? Is it possible? Please help....thanks in advanceHi Raymond,
as you have two different strutures:
- HEAD
- ITEM
and the occurences of the structures are not fix (say: e.g. HEADER occurs always 3 times), you need a key-field, which identifies each row as HEAR or ITEM.
If you do not have a key-field, you must design a "generic structure" that fits to both:
HEAD & ITEM. After the conten-conversion into this generic structure you need a message-mapping that identifies your HEADs and ITEMs.
File content conversion sites
/people/venkat.donela/blog/2005/03/02/introduction-to-simplefile-xi-filescenario-and-complete-walk-through-for-starterspart1
/people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2
/people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
/people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
/people/venkat.donela/blog/2005/03/02/introduction-to-simplefile-xi-filescenario-and-complete-walk-through-for-starterspart1
/people/venkat.donela/blog/2005/03/03/introduction-to-simple-file-xi-filescenario-and-complete-walk-through-for-starterspart2
/people/venkat.donela/blog/2005/06/08/how-to-send-a-flat-file-with-various-field-lengths-and-variable-substructures-to-xi-30
/people/anish.abraham2/blog/2005/06/08/content-conversion-patternrandom-content-in-input-file
/people/shabarish.vijayakumar/blog/2005/08/17/nab-the-tab-file-adapter
/people/jeyakumar.muthu2/blog/2005/11/29/file-content-conversion-for-unequal-number-of-columns
/people/shabarish.vijayakumar/blog/2006/02/27/content-conversion-the-key-field-problem
/people/michal.krawczyk2/blog/2004/12/15/how-to-send-a-flat-file-with-fixed-lengths-to-xi-30-using-a-central-file-adapter
/people/arpit.seth/blog/2005/06/02/file-receiver-with-content-conversion
http://help.sap.com/saphelp_nw04/helpdata/en/d2/bab440c97f3716e10000000a155106/content.htm
Regards Mario -
UDF Problem in message mapping
Hi,
I have proxy to file scenario where i am getting mapping error
Runtime exception during processing target field mapping /ns0:DataManagement/payrollArea. The message is: Exception:[java.lang.NullPointerException] in class com.sap.xi.tf._DataManagement_to_DataManagementM4_ method SetFileName$[, com.sap.aii.mappingtool.tf3.rt.Context@1861efad].
There is one UDF Set file Namewhich t is throwing error.
UDF Setfilename
DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File", "FileName");
String targetFileName="DMS_" + a + ".dat";
conf.put(key,targetFileName);
return a;
Please help me in this issue.
Thanks in AdvanceHi,
This error will not come while actual run of scenario.
During Testing Message mapping, this might be coming to you, but while actual run scenario will work fine.
and one more thing ...
please your code inside try .. catch block of java code
try
/* your actual code */
catch(Exception e)
String exception = e.toString();
return exception;
Hope this will help you.
Regards
Prabhat Sharma. -
Problem in message mapping due to file sender content conversion
Hi all
basically i m using file sender content conversion and couldn't make file in a proper nested structure where weight was the nested field of detail as there is a limitation of content conversion in file adapter:
My file came out like this:
<header>
</header>
<Detail>
</Detail>
<Weight>
</Weight>
<Weight>
</Weight>
<Detail>
</Detail>
<Weight>
</Weight>
<Weight>
</Weight>
<trailer>
</trailer>
and i wanted it like:
<header>
</header>
<Detail>
<Weight>
</Weight>
<Weight>
</Weight>
</Detail>
<Detail>
<Weight>
</Weight>
<Weight>
</Weight>
</Detail>
<trailer>
</trailer>
so now the problem is i want to generate an idoc from it....but theres no way out to determine which weight is related to what detail except that the weight related to detail 1 comes after start and end of detail 1 tag and then weights of second detail comes after start and end of detail 2 tag in my source xml file.
The structure of the target idoc is
<header>
</header>
<Detail>
<Weight>
<flag>D1</flag>
</Weight>
<Weight>
<flag>D1</flag>
</Weight>
</Detail>
<Detail>
<Weight>
<flag>D2</flag>
</Weight>
<Weight>
<flag>D2</flag>
</Weight>
</Detail>
<trailer>
</trailer>
so i was wondering if i can make a user defined function in which i feed detail and weight and result a flag d1/ d2 inside the tag field. My logic is smth like
while detail is 1 make all the tag weights coming after detail 1 inside <detail1> tag then resultlist.CC for context change then while detail is 2 make a loop to fill the weight coming after detail 2 inside the <detail2>
Is this possible by any means. I really need help
Thnks
NainaHi
My sender file content conversion have this setting:
HEADER,1,DETAIL,*,Weights,*,TRAILER,*
And plz give me more idea of the adapter module ....is there any blog available which is related to my problem.
Naina -
Problem with Message-Mapping: Loop over Elements possible?
Hi all,
I want do create a Message-Mapping for an IDoc-to-File Scenario. In the Source Structure there are some Elements which can appear more than once (1..unbounded). I need a mechanism which loops over these elements and search for specified values. From the Element which contains an element with this specified value the mapping should write a value in the target structure.
Here a simple example (source structure) for better understanding:
<root>
<invoice>
<number> 10 </number>
<sum> 200.00 </sum>
</invoice>
<invoice>
<number> 20 </number>
<sum> 150.00 </sum>
</invoice>
<invoice>
<number> 30 </number>
<sum> 120.00 </sum>
</invoice>
</root>
Now the duty of the Mapping should be to search in the elements <invoice> for the number 30. And then the sum of the invoice with the number 30 should be written in a field of the target structure.
I tried it out with a constant togehter with an equalsS-function and an ifWithoutElse-function, but it is working only then, if the invoice with the number 30 has the first position in the root context.
Can anybody help me? Thanks
With kind regards
ChristopherHi,
Write a UDF to sum the required values and map to target node.
See while writing the UDF select the type as queue.
number -- removecontext-UDF targetnode
sum----removecontext--/
number abd sum or the two inputs
in UDF
int nsum = 0;
for(int i;i < number.length;i++){
if number(i).equals("30") then
nsum = nsum + valueOf(sum(i));
result.addValue(nsum); // convert the nsum into string
Regsrds
Chilla
Maybe you are looking for
-
Can I use one infosource to update data to CUBE and ODS???
Hi all, Can anyone tell me if I can load data to OSD and Cube from one the same InfoSource? As I know, I have to have "0recordmode"(update mode) in communication structure for ODS not for Cube. So how can ODS and Cube use the same Infosucre to updat
-
Bolding Address in Labels w/ Word Automation?
I have a unique problem. Right now, I'm creating a single label on an label sheet using ActiveDoc = oWord.Application.MailingLabel.CreateNewDocumentByID(labelID:=AveryType) and then adding 3 paragrpahs of info like a normal word doc using Paragraph.A
-
How to pick a quality PSU?
well? i need a new one this Stock PSU can take the heat. anytime i try to O/C now it just restarts and i know its not the ram or CPU. i just have too much hooked up. so how do you pick a PSU that will produce what its posting on the box?
-
Sending email at same time cfmail
Hi... Im using cfmail (CF8) on a CFC, to allow users to sent email from a big mailing list. It was working fine, but Today, two users started to send their own e-mails at same time, but we recieve the emails mixed ...I mean the first email Subject,
-
How to deploy Visual composer applications and set up the server
Hi , I have SAP Netweaver developer studio client installed on my Laptop and I can use it to create VC applications but I cannot visualise the applications since I don't have server. Is there a server that I can install and configure? and what else