Mapping Context problem-----it is urget
Hi All,
My source is Idoc Debmas06 and my target is Siebel XSD.source data come from 2 segments are 1) E1KNA1M in the fields are SORLT and NAME
2) E1KNVPM in the fields is KNREF and PARVW
Target side structure are like this
NpbackOfficeAccountRelationship(header level 0.1)
NpbackOfficeAccountRelationship(itemlevel 0.unbounded)
Fields are AccountId
RelateadedAccount ID
Name
Relationshiptyp
BORrowid
I did mapping like this:
1) SORTL-------
E1KNA1M---- > UseoneAsMany----
>NpbackOfficeAccountRelationship
E1KNVPM-
Set context also but I got error
<b>I got error like</b> :
Runtime exception during processing target field mapping /SiebelMessage/ListOfNpAccountNp/NpAccount/ListOfBackOfficeAccountRelationship/BackOfficeAccountRelationship. The message is: Exception:[com.sap.aii.mappingtool.tf3.IllegalInstanceException: Too few values in second queue in function useOneAsMany. It must have over all contexts the same number of values as third queue] in class com.sap.aii.mappingtool.flib3.NodeFunctions method useOneAsMany[, , ]
com.sap.aii.mappingtool.tf3.MessageMappingException: Runtime exception during processing target field mapping /SiebelMessage/ListOfNpAccountNp/NpAccount/ListOfBackOfficeAccountRelationship/BackOfficeAccountRelationship. The message is: Exception:[com.sap.aii.mappingtool.tf3.IllegalInstanceException: Too few values in second queue in function useOneAsMany. It must have over all contexts the same number of values as third queue] in class com.sap.aii.mappingtool.flib3.NodeFunctions method useOneAsMany[, , ]
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:275)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:338)
at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:60)
at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:105)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431)
at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:259)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
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.utilxi.misc.api.BaseRuntimeException: Exception:[com.sap.aii.mappingtool.tf3.IllegalInstanceException: Too few values in second queue in function useOneAsMany. It must have over all contexts the same number of values as third queue] in class com.sap.aii.mappingtool.flib3.NodeFunctions method useOneAsMany[, , ]
at com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper.cacheQueue(Q2QFunctionWrapper.java:105)
at com.sap.aii.mappingtool.tf3.rt.Q2QFunctionWrapper.gotoNextContext(Q2QFunctionWrapper.java:43)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:178)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.processNode(AMappingProgram.java:238)
at com.sap.aii.mappingtool.tf3.AMappingProgram.start(AMappingProgram.java:338)
at com.sap.aii.mappingtool.tf3.Transformer.start(Transformer.java:60)
at com.sap.aii.mappingtool.tf3.AMappingProgram.execute(AMappingProgram.java:105)
at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInternal(ServerMapService.java:431)
at com.sap.aii.ibrep.server.mapping.ServerMapService.execute(ServerMapService.java:169)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.execute(MapServiceBean.java:52)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.execute(MapServiceRemoteObjectImpl0.java:259)
at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:146)
at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:304)
at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:193)
at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:122)
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)
RuntimeException in Message-Mapping transformation: Runtime exception during processing target field mapping /SiebelMessage/ListOfNpAccountNp/NpAccount/ListOfBackOfficeAccountRelationship/BackOfficeAccountRelationship. The message is: Exception:[com.sap.aii.mappingtool.tf3.IllegalInstanceException: Too few values in second queue in function useOneAsMany. It must have over all contexts the same number of values as third queue] in class com.sap.aii.mappingtool.flib3.NodeFunctions method useOneAsMany[, , ]
06:55:02 End of test
<b>I want like this format of target side :
- <ListOfBackOfficeAccountRelationship>
- <BackOfficeAccountRelationship>
<AccountId>1-11VIP</AccountId>
<Name2>XYZ PP Ltd</Name2>
<RelatedAccountId>1-11VIP</RelatedAccountId>
<RelationType>Bill To</RelationType>
<BORowId>1-1U3JA</BORowId>
</BackOfficeAccountRelationship>
- <BackOfficeAccountRelationship>
<AccountId>1-11VIP</AccountId>
<Name2>XYZ PP Ltd</Name2>
<RelatedAccountId>1-11VIP</RelatedAccountId>
<RelationType>Sold To</RelationType>
<BORowId>1-11VJ6</BORowId>
</BackOfficeAccountRelationship>
</ListOfBackOfficeAccountRelationship></b>
Hi,
1) Check out the incoming value from the sender side ..
2) try to give account id and related account as string ..like relation type.
3) if java code is used for mapping...re-import again and activate ,,the object...
4) do you do any java validation..if so check the code..is it similar to the relation type..data type including the way how it is defined..
Regards
Agasthuri Doss
Similar Messages
-
Hi All,
I hav a <b>source structure</b> as
<?xml version="1.0" encoding="UTF-8"?>
<ns0:OB xmlns:ns0="http://cibasc.com/anil">
<Root>
<VBELN/>
<EDL24> -
1..Unbounded
<NTEGW/>
<MATNR/>
<ETXTH9>
<FUNCTION>pck</FUNCTION>
<ETXTP9>
<TDFORMAT>c</TDFORMAT>
<TDLINE>qqq</TDLINE>
</ETXTP9>
<ETXTP9>
<TDFORMAT>c</TDFORMAT>
<TDLINE>rrr</TDLINE>
</ETXTP9>
<ETXTP9>
<TDFORMAT>u</TDFORMAT>
<TDLINE>mmm</TDLINE>
</ETXTP9>
</ETXTH9>
<ETXTH9>
<FUNCTION>pck</FUNCTION>
<ETXTP9>
<TDFORMAT>c</TDFORMAT>
<TDLINE>qqq</TDLINE>
</ETXTP9>
<ETXTP9>
<TDFORMAT>c</TDFORMAT>
<TDLINE>rrr</TDLINE>
</ETXTP9>
<ETXTP9>
<TDFORMAT>u</TDFORMAT>
<TDLINE>ppp</TDLINE>
</ETXTP9>
</ETXTH9>
<ETXTH9>
<FUNCTION>pck</FUNCTION>
<ETXTP9>
<TDFORMAT>c</TDFORMAT>
<TDLINE>qqq</TDLINE>
</ETXTP9>
<ETXTP9>
<TDFORMAT>c</TDFORMAT>
<TDLINE>rrr</TDLINE>
</ETXTP9>
<ETXTP9>
<TDFORMAT>cu</TDFORMAT>
<TDLINE>ttt</TDLINE>
</ETXTP9>
</ETXTH9>
</EDL24>
</Root>
</ns0:OB>
The Target Structure is :
<Root>
<Attrib> -
0 to Unbounded
<Element1>
<Element2>
<Element3>
<Element4>
</Attrib>
</Root>
Now i wanna map <VEBLN> which is under Root to Element1
<VEBLN> --- <Element1>
<NETGW> <b>if not equal to 0 then</b> -
<Element2> (If this condition fails, the mapping for this occurence of EDL24 shud b stopped and shud goahead with the next occurence.
<TDLINE> -
<Element4> The condition for this is as follows:
Check for the element FUNCTION whose value is 'pck' and if it 'pck', then again check for the element TDFORMAT in the segment ETXTP9 for the value 'cu'. if it 'cu', then populate the Element4 with the TDLINE.
I had tried in most of the ways....but din't get it..
Any help wud b appreciated.
Thnx in Advance
AnilHi,
Try this...
Mapping:
NTEGW(with context as ROOT)>getNTEGW>Attrib
VBELN(with context as ROOT )--\
NTEGW(with context as ROOT )|>useOneAsMany-->Element1
NTEGW(with context as EDL24)--/
NTEGW(with context as EDL24)-->Element2
TDLINE(ETXTP9)-----><b>THEN</b>
FUNCTION(ETXTH9)--\
TDFORMAT(ETXTH9)--|->useOneAsMany-\
TDFORMAT(ETXTP9)--/
|->Equals-\
CONSTANT("pck")-/
|->and-><b>IF</b>->formatbyexample->pass->E4
TDFORMAT(ETXTP9)-\
|->StringEquals-/
CONSTANT("pck")-/
CONSTANT("dontpass")-----><b>ELSE</b>
<b>UserDefinedFunctions:</b>
<b>Choose: QUE option:</b>
public void getNTEGW(String[] NTEGW,ResultList result,Container container){
for(int i=0;i<NTEGW.length;i++)
if(NTEGW<i>.equals("0"))
result.addValue(ResultList.SUPPRESS);
else
result.addValue(NTEGW<i>);
<b>Choose: Context option:</b>
public void pass(String[] a,ResultList result,Container container){
for(int i=0;i<a.length;i++)
if(!a<i>.equals("dontpass"))
result.addValue(a<i>);
Regards,
KNS Kumar. -
Hello.
I have one problem. I have 2 components? for example compA and compB. In compB I used compA. From compB I give parameters to compA throuth Context mapping and in compA execute RFC using this parameters. After execute I want to mapping result context from compA to compB. Is it possible to do? And if possible, how can I do this?I think the mapped context is not initialized in the wdDoInit method. Create your own init method in compA and call it from the wdDoInit of the view of compA.
So you have the call hierarchy like this --> Fire plug of compB --> wDoInit of the view in comA (hook method) --> your own init method in controller of compA. Then you should be able to access the initialized mapped context.
Hope this helps. -
How to read Group ID from Value Mapping Context in Cache Monitoring ?
Hi friends,
In RWB --> Cache Monitoring --> Integration Server (Java) -> (Search for Value Mapping Groups) in this each item is identified by Value Mapping Group (GroupID, Context, Identifier/Agency, Identifier/Scheme). Either we create Value Mapping Table in ID or replicate value mapping data directly from text file/SAP table etc., in run time cache, data will be identified in this manner.
Now, our requirement is to delete a record the Cache for a particular context. Two operations provided by XI one is 'Delete' and another one is 'DeleteGroup'. When we use either of this, we should know GroupID. Suppose, I replicated some large amount of data from my text file in Runtime Cache. Value Mapping Table is like that IN --> India, US --> USA, AU --> Australia, EG --> Egypt. Now, I am required to write a program to get the input country code from user which is going to delete in the value mapping table like IN/AU.... For this, what logic we should follow in the program is, First we scan the value mapping table and find the record (country code) which is match with the input. Then find the GUID value for this record. Now we use the DeleteGroup Operation and pass this GUID and then delete the record.
So, in essence, how to read the GUID from value mapping context.
Friends, Kindly help me to do this.
Thanks in advance.
Jegatheeswaran P.Did you get the way to read group id?
-
Map context node web dynpro to context DATA of interface controller ALV
Hi Experts,
I have started creating simple ALV by following the example in the below mentioned link.
https://www.sdn.sap.com/irj/scn/go/portal/prtroot/docs/library/uuid/3439404a-0801-0010-dda5-8c14514d690d
I have completed 95% development but stuck with last bit of
Set data to ALV for display (via reverse context mapping).
When Click on the Controller Usage button. The component controller of your Web Dynpro component DOES NOT appears on the right side of the screen.
Therefore I can not Map context node NODE_FLIGHTTAB of your Web Dynpro component to context DATA of the interface controller of the ALV component.
Could you please shed me light on this.
Your time and help much appreciated.
Best Regards
CBHi Chandra,
You need to add component controller first. Just go to the property tab of interface controller of the alv component and click on create button and then add the component controller. After that you'll be able to see the node in the context tab.
Regards
Arjun -
Installing ios8.2 does not resolve Google map navigation problem or gps tracking!
Installing ios 8.2 does not resolve Google map navigation problem.
I have tried to install both of them lots of times but in each case I receive the same in my XE.bat file:
Instance created.
DIM-00019: create service error
O/S-Error: (OS 1387) Unable to add or remove a member from the local group because this member does not exist.
Have checked OS 1387 error at Microsoft Support and as possible cause of the problem they give as follows:
This issue can occur if the environment has a disjointed namespace (i.e. the domain has different NetBIOS and DNS names). For example, assume that the domain has a NetBIOS name of "domain.com" and a DNS name of "domain-old.com." When users are added in the Windows UI, they are displayed in the format of domain\ComputerName. However, you notice in the error log that there was an attempt to add a computer account in the format of domain-old\ComputerName. (System Center 2012 R2 Data Protection Manager install fails and generates ID: 4323: "A member could not be added")
Tried to find out my DNS name, but it is impossible because I don't have any domain installed and my machine is not connected to it. Some other blog (Install Oracle 11gR2 on Windows) advices to work with adding my computer account to some non-real windows domain (just for the purpose of resolving the network) as well and reinstall the database then. If I undestand it right I need minimum 2 machines for this. But I own just one, where the server is based and thought that is enough to run the database... no idea .. -
Hi i am not being able to perform this mapping, the scenario is like this:
i need to create one LINE in the output for each E1PLOGI in the input when FLAG3 = 'S'
also as i don't understand completely the context theory i cant figure out in witch context to set the fields
My context is set like this
FLAG3 -> context = E1PLOGI
My logic is createif( FLAG3 = 'S' ) -> LINE
My xml test file have:
one E1PLOGI node without E1P0000
one E1PLOGI with E1P0000 node where FLAG3 = 'N'
one E1PLOGI completely OK
The result is that not even one LINE its created.
If only put one line ok it works ok, but if one line doesnt have an E1P0000 node or if FLAG3='S' then the next OK input lines it wont come out.
plase heeelp!
IN STRUCTURE
<Z_HRMD_A>
<IDOC BEGIN="1">
<EDI_DC40 SEGMENT="1">
<CREDAT>20080731</CREDAT>
</EDI_DC40>
<E1PLOGI SEGMENT="1">
<E1PITYP SEGMENT="1">
<E1P0000 SEGMENT="1">
<FLAG3>S</FLAG3>
</E1P0000>
</E1PITYP>
</E1PLOGI>
</IDOC>
</Z_HRMD_A>
Z_HRMD_A 1..1
IDOC 1..1
EDI_DC40 1..1
CREDAT 0..1
E1PLOGI 1..UNBOUNDED
E1PITYP 0..UNBOUNDED
E1P0000 0..UNBOUNDED
FLAG3 0..1
OUT STRUCTURE
<FILE_X>
<LINE>
<FIELD_1>
<FIELD_2>
<FIELD_3>
<FIELD_4>
</LINE>
</FILE_X>
FILE_X 1..1
LINE 0..UNBOUNDED
FIELD_X 0..1
Edited by: Mariano Billinghurst on Aug 4, 2008 6:05 PM
Edited by: Mariano Billinghurst on Aug 4, 2008 6:12 PMHere it is the mapping and the display of the queues in each step.
Mi test xml has
1-one E1EPILOGI without EP0000
2-one E1EPILOGI OK
3-one E1EPILOGI with FLAG3 = N
4-one E1EPILOGI OK
http://img297.imageshack.us/img297/3615/mappingandqueueswi0.jpg
beena with your solution it was creating two lines , one with 1 and one with 3.
Kumar i think with your solution i am much closer, but still doesnt work ok. Could you explain me why at the end of the queres everything says "supress"?
Regards.
Mariano. -
Context problem during mapping.
I have to map header details with item details.
in header one segment has 3 records.
when i am using splitbyvalue with removecontext, the 3 records are coming only in first item details. other item details are blank.
How to solve it ? please help.
Regards,
Study SAPSender Payload is :
<?xml version="1.0" encoding="UTF-8" ?>
<X12>
<ISA>
<ISA01>00</ISA01>
<ISA02 />
<ISA03>00</ISA03>
<ISA04 />
<ISA05>08</ISA05>
<ISA06>8493</ISA06>
<ISA07>12</ISA07>
<ISA08>434343</ISA08>
<ISA09>071030</ISA09>
<ISA10>2145</ISA10>
<ISA11>U</ISA11>
<ISA12>00400</ISA12>
<ISA13>100001802</ISA13>
<ISA14>0</ISA14>
<ISA15>P</ISA15>
<ISA16>></ISA16>
</ISA>
<GS>
<GS01>PO</GS01>
<GS02>4343</GS02>
<GS03>24343</GS03>
<GS04>20071030</GS04>
<GS05>2145</GS05>
<GS06>243438</GS06>
<GS07>X</GS07>
<GS08>004030</GS08>
</GS>
<TS_850>
<ST>
<ST01>850</ST01>
<ST02>300091763</ST02>
</ST>
<BEG>
<BEG01>00</BEG01>
<BEG02>SA</BEG02>
<BEG03>64821185</BEG03>
<BEG04 />
<BEG05>20071030</BEG05>
<BEG06>100000485002</BEG06>
</BEG>
<REF>
<REF01>DP</REF01>
<REF02>832</REF02>
<REF03>W</REF03>
</REF>
<REF>
<REF01>IA</REF01>
<REF03>119800</REF03>
</REF>
<CSH>
<CSH01>P4</CSH01>
</CSH>
<ITD>
<ITD01>14</ITD01>
<ITD02 />
<ITD04 />
<ITD05>5</ITD05>
<ITD06 />
<ITD09 />
<ITD12>NET 45</ITD12>
</ITD>
<DTM>
<DTM01>010</DTM01>
<DTM02>20071031</DTM02>
</DTM>
<DTM>
<DTM01>001</DTM01>
<DTM02>20071107</DTM02>
</DTM>
<TD5>
<TD505>FOLLOW TRAFFIC DIVISION</TD505>
</TD5>
<TD5>
<TD505>SHIPPING INSTRUCTIONS</TD505>
</TD5>
<GROUP_6>
<N1>
<N101>SF</N101>
<N102>D</N102>
</N1>
<N4>
<N401>D</N401>
<N402>J</N402>
<N403>43</N403>
</N4>
</GROUP_6>
<GROUP_8>
<GROUP_9>
<N1>
<N101>Z7</N101>
<N102 />
<N103>92</N103>
<N104>14811</N104>
</N1>
</GROUP_9>
<GROUP_9>
<N1>
<N101>BT</N101>
<N102 />
<N103>92</N103>
<N104>94508</N104>
</N1>
</GROUP_9>
<GROUP_9>
<N1>
<N101>ST</N101>
<N102 />
<N103>92</N103>
<N104>94508</N104>
</N1>
</GROUP_9>
</GROUP_8>
<GROUP_11 />
<GROUP_12>
<PO1>
<PO101 />
<PO102>2</PO102>
<PO103>AS</PO103>
<PO104>103.8</PO104>
<PO105>WH</PO105>
<PO106>IN</PO106>
<PO107>10090110</PO107>
<PO108>ON</PO108>
<PO109>F</PO109>
<PO110>08</PO110>
<PO111>3434234</PO111>
</PO1>
<GROUP_14>
<PID>
<PID01>F</PID01>
<PID02>75</PID02>
<PID03>VI</PID03>
<PID04 />
<PID05>CLWHT</PID05>
</PID>
</GROUP_14>
</GROUP_12>
<GROUP_12>
<PO1>
<PO101 />
<PO102>2</PO102>
<PO103>AS</PO103>
<PO104>103.8</PO104>
<PO105>WH</PO105>
<PO106>IN</PO106>
<PO107>10090219</PO107>
<PO108>ON</PO108>
<PO109>F</PO109>
<PO110>08</PO110>
<PO111>43423342</PO111>
</PO1>
<GROUP_14>
<PID>
<PID01>F</PID01>
<PID02>75</PID02>
<PID03>VI</PID03>
<PID04 />
<PID05>WH*BL</PID05>
</PID>
</GROUP_14>
</GROUP_12>
<GROUP_12>
<PO1>
<PO101 />
<PO102>1</PO102>
<PO103>AS</PO103>
<PO104>103.8</PO104>
<PO105>WH</PO105>
<PO106>IN</PO106>
<PO107>10090318</PO107>
<PO108>ON</PO108>
<PO109>F</PO109>
<PO110>08</PO110>
<PO111>4342424</PO111>
</PO1>
<GROUP_14>
<PID>
<PID01>F</PID01>
<PID02>75</PID02>
<PID03>VI</PID03>
<PID04 />
<PID05>BL*WH</PID05>
</PID>
</GROUP_14>
</GROUP_12>
<GROUP_31>
<CTT>
<CTT01>4</CTT01>
</CTT>
</GROUP_31>
<SE>
<SE01>29</SE01>
<SE02>300091763</SE02>
</SE>
</TS_850>
</X12>
Receiver Payload is :
<?xml version="1.0" encoding="UTF-8"?>
<ZZ_-AFS_-ORDERS05><IDOC BEGIN="1"><E1EDK01 SEGMENT="1"><ACTION></ACTION><BSART>SA</BSART>
<BELNR>64821185</BELNR>
<ABLAD></ABLAD>
<VSART_BEZ>20071030</VSART_BEZ>
<AUGRU_BEZ>100000485002</AUGRU_BEZ>
<ZJCP_ISA SEGMENT="1">
<AUTH_INFO_QUALIF>00</AUTH_INFO_QUALIF>
<AUTHORIZATION_INFORMATION>
</AUTHORIZATION_INFORMATION>
<SECU_INFO_QUALIF>00</SECU_INFO_QUALIF>
<SECURITY_INFORMATION></SECURITY_INFORMATION>
<INTERCHANGE_ID_QUALIF_DUNS>08</INTERCHANGE_ID_QUALIF_DUNS>
<INTERCHANGE_SENDER_ID>6111350003</INTERCHANGE_SENDER_ID>
<INTERCHANGE_ID_QUALIF_UCC>12</INTERCHANGE_ID_QUALIF_UCC>
<INTERCHANGE_RECEIVER_ID>2126438989</INTERCHANGE_RECEIVER_ID>
<INTERCHANGE_DATE>071030</INTERCHANGE_DATE>
<INTERCHANGE_TIME>2145</INTERCHANGE_TIME>
<REPETITION_SEPARATOR>U</REPETITION_SEPARATOR>
<INTERCH_CTRL_VER_NO>00400</INTERCH_CTRL_VER_NO>
<INTERCHANGE_CTRL_NO>100001802</INTERCHANGE_CTRL_NO>
<ACKNOWLEDGMENT_REQUESTED>0</ACKNOWLEDGMENT_REQUESTED>
<USAGE_INDICATOR>P</USAGE_INDICATOR>
<COMPONENT_ELEMENT_SEP>></COMPONENT_ELEMENT_SEP>
</ZJCP_ISA><ZJCP_REF SEGMENT="1">
<REF01>DP</REF01><REF02>832</REF02><REF03>WOMENS APPAREL</REF03></ZJCP_REF><ZJCP_REF SEGMENT="2"><REF01>IA</REF01><REF03>119800</REF03></ZJCP_REF>
<E1J3P01 SEGMENT="1">
<E1EDPA1 SEGMENT="1">
<PARVW>JM</PARVW>
</E1EDPA1>
<E1EDPA1 SEGMENT="2">
<PARVW>RE</PARVW
></E1EDPA1>
<E1EDPA1 SEGMENT="3">
<PARVW>WE</PARVW>
</E1EDPA1>
</E1J3P01><E1J3P01 SEGMENT="2">
</E1J3P01>
<E1J3P01 SEGMENT="3">
</E1J3P01>
</IDOC></ZZ_-AFS_-ORDERS05>
we need to map value of N1 (all the 3 values) Segment with E1EDPA1 segment, it should come in all the item segments (E1J3PO1).
But it is coming only in first item segment (E1J3PO1).
This is the problem.
Regards,
Study SAP -
Mapping IDOC to XML - Context problem
Hello,
I am trying to map up to 2 segments from an ORDERS IDOC into one segment in my PO XML.
In the target PO XML document both segments UltimateCustomer and ParticipatingDealer are under the heading SalesOrderData.
<Header>
...<SalesOrderData>
.......<UltimateCustomer>
............<Name>
............<address>
....................<street>
....................<city>
......<ParticipatingDealer>
............<Name>
............<address>
....................<street>
....................<city>
So I only create the SalesOrderData segment if at least one of the two E1EDKA1 segments exists where PARVW = ZO or ZU then I want to repliate those segments into their target fields.
ZO - Ultimate Customer
ZU - Participating Dealer
When both values exist I am only getting the data from the first segment (ZO or ZU) but not both. With the following mapping.
If PARVW (IDOC Context) = ZO or PARVW (IDOC Context) = ZU ...CreateIf...SalesOrderData
If PARVW = ZO...CreateIf...UltimateCustomer.
If PARVW = ZU ...CreateIf...ParticipatingDealer.
I tried many context combinations to get both segments to appear but the only time I could get them both to appear is if I force the creation of SalesOrderData. (Constant[]...SalesOrderData). This of course creates a blank node when ZO and ZU do not exist. Which is not a good solution.
Any suggestions?
Thanks,
Mattchk this:
Mapping of "Header":
PARVW(context IDOC)----
--------------------equals ----
Constant(ZO)
-------------------------------------OR-----IfWithoutElse(Constant()----then)--------collapseContext------HEADER
PARVW(context IDOC)----
--------------------equals ----
Constant(ZU)
Mapping of "UltimateCustomer":
PARVW----
--------------------equals ----IfWithoutElse(Constant()----then)-----removecontext---------UltimateCustomer
Constant(ZO)
Mapping of "ParticipatingDealer":
PARVW----
--------------------equals ----IfWithoutElse(Constant()----then)-----removecontext---------ParticipatingDealer
Constant(ZU)
Mapping of "name" under "UltimateCustomer":
PARVW----
---------------equals ----IfWithoutElse(Name(from source)---then)--removecontext----splitbyvalue(each value)--Name
Constant(ZO)
In the same way (like "Name" field mapping) proceed for the rest of the target fields.... -
Problem with mapped context node
Hi everybody!
I have following structure in a Controller:
Z_Create_Address
¦__ Output
¦_____ Address
My problem is now that when I try to add a new item it just adds one but all already entered notes gets the same value? Here is the code ...
IPrivateAddAddressView.IAddressElement newElem = wdContext.nodeAddress().createAddressElement(wdContext.currentAddress.modelObject());
Than I fill up the values ending with
wdContext.nodeAddressOrg().addElement(newElem);
When I do this with a value node with the same settings it works with no problems ... only difference is that for creating the the model node the method ask for a model object.
What I am doing wrong?
Thanks for help ...
Bye MarkusHi Markus,
the Z_Create_Address is a model node? i suggest it's the name of the RFC, too.
To add a new Element in the model node try this:
Z_Create_Address_Input inputModelObject = wdContext.
currentZ_Create_AddressElement().modelObject();
<Type of Address> myAddress = new <Type of Address>();
inputModelObject.addAdress(myAddress);
wdContext.nodeAddress().invalidate();
But you don't want to add an Element in the <b>Output</b>Address node, don't you?
kr, achim -
XSLT mapping - namespace problem?
Hello,
I am trying to proces a message with the following format:
<XMLMESSAGE xsi:nonamespaceSchemalocation='schema.xsd' >
<ORDER>
<HEADER>
</HEADER>
<ITEM>
</ITEM
</ORDER>
<XMLMESSAGE>
the mapping (XSLT or message mapping) throws an exception. During runtime or test, this is the same.
The problem occurs, I think, because of the nonamespace atriibute. If a change or remove the value, the mapping is fine.
Does anybody know if I should save the file mentioned in the attribute somewhere? Or is there a workaround for this problem?
thnx, Paul
PS: we are using PI 7.0.Hi Russ (and others),
I tested it in the real example, but it still throws the same error on the java (=compiled) mapping.
this is my input:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE ORDER [
<!ENTITY % iso-lat1 PUBLIC "ISO 8879:1986//ENTITIES Added Latin 1//EN//XML" "http://www.oasis-open.org/docbook/xmlcharent/0.3/iso-lat1.ent">
%iso-lat1;
]>
<XMLMESSAGE xmlns:xsi="http://www.w3.org/2000/10/XMLSchema-instance" xsi:noNamespaceSchemaLocation="OrderBericht.xsd">
<ORDER>
<HEADER>
<ACCOUNT_NUMBER></ACCOUNT_NUMBER>
</HEADER>
<LINE_ITEMS>
<ITEM>
<LINE>1</LINE>
</ITEM>
</LINE_ITEMS>
</ORDER>
</XMLMESSAGE>
this is my xslt:
<?xml version='1.0' ?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:output method="xml" version="1.0" encoding="UTF-8" omit-xml-declaration="no" standalone="no" indent="yes"/>
<xsl:template match="/">
<ORDERS05 xmlns="com:root">
<IDOC BEGIN="1">
<xsl:call-template name="CrtEDIDC40"/>
</IDOC>
</ORDERS05>
</xsl:template>
<xsl:template name="CrtEDIDC40">
<EDI_DC40 SEGMENT="1">
<TABNAM>EDI_DC40</TABNAM>
<SNDPRT>LS</SNDPRT>
<SNDPRN>XIDCLNT300</SNDPRN>
</EDI_DC40>
</xsl:template>
</xsl:stylesheet>
and this is the error:
18:00:41 Start of test
Creating XSLT mapping mindef_test
Call XSLT processor with stylsheet mindef_test.xsl.
Method error called terminate transformation
javax.xml.transform.TransformerException: IOException occurred while parsing stream. An empty document will be used! at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:351) at com.sap.engine.lib.jaxp.TransformerImpl.transform(TransformerImpl.java:240) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingTransformer.transform(RepMappingTransformer.java:150) at com.sap.aii.ibrep.server.mapping.ibrun.RepXSLTMapping.execute(RepXSLTMapping.java:81) at com.sap.aii.ibrep.server.mapping.ibrun.RepMappingHandler.run(RepMappingHandler.java:80) at com.sap.aii.ibrep.server.mapping.rt.MappingHandlerAdapter.run(MappingHandlerAdapter.java:107) at com.sap.aii.ibrep.server.mapping.ServerMapService.transformInterfaceMapping(ServerMapService.java:127) at com.sap.aii.ibrep.server.mapping.ServerMapService.transform(ServerMapService.java:104) at com.sap.aii.ibrep.sbeans.mapping.MapServiceBean.transform(MapServiceBean.java:40) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0.transform(MapServiceRemoteObjectImpl0.java:167) at com.sap.aii.ibrep.sbeans.mapping.MapServiceRemoteObjectImpl0p4_Skel.dispatch(MapServiceRemoteObjectImpl0p4_Skel.java:104) at com.sap.engine.services.rmi_p4.DispatchImpl._runInternal(DispatchImpl.java:320) at com.sap.engine.services.rmi_p4.DispatchImpl._run(DispatchImpl.java:198) at com.sap.engine.services.rmi_p4.server.P4SessionProcessor.request(P4SessionProcessor.java:129) 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) Caused by: java.io.IOException: Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.UnknownHostException: www.oasis-open.org at com.sap.engine.lib.xml.parser.URLLoaderBase.resolveEntity(URLLoaderBase.java:148) at com.sap.engine.lib.xml.parser.helpers.AdvancedXMLStreamReader.addInputFromEntity(AdvancedXMLStreamReader.java:393) at com.sap.engine.lib.xml.parser.XMLParser.handleDTDReference(XMLParser.java:2267) at com.sap.engine.lib.xml.parser.XMLParser.scanIntSubset(XMLParser.java:1057) at com.sap.engine.lib.xml.parser.XMLParser.scanDTD(XMLParser.java:1246) at com.sap.engine.lib.xml.parser.XMLParser.scanProlog(XMLParser.java:2795) at com.sap.engine.lib.xml.parser.XMLParser.scanDocument(XMLParser.java:2830) at com.sap.engine.lib.xml.parser.XMLParser.parse0(XMLParser.java:229) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parseAndCatchException(AbstractXMLParser.java:145) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:160) at com.sap.engine.lib.xml.parser.AbstractXMLParser.parse(AbstractXMLParser.java:261) at com.sap.engine.lib.jaxp.TransformerImpl.transformWithStylesheet(TransformerImpl.java:347) ... 19 more --------- java.io.IOException: Failed to load resource from the context classloader of the current thread! Loading from classloader was caused by: java.net.UnknownHostException: www.oasis-open.org at com.sap.engine.lib.xml.parser.URLLoaderBase.resolveEntity(URLLoaderBase.java:148)
any ideas? I am totally lost here. -
Message Mapping Logical Problem
Hi there I have an issue with my message mapping. My source structure looks like this.
IDOC
-Seg1
---Element1
---Element2
---Seg2
ElementA
ElementB
Ok so I have to map the IDOC to a flat file. Seg 1 is the Header and Seg2 is the Details. For each flat file there will only be 1 Seg1 but there can be X amount of Seg2s' in the flat file. My problem is mapping Element 1 to Element A. Element A has the value of Element 1 and 2 combined. It appears I cannot map a lower hierarchy to an higher hierarchy? I tried changing the context but with no luck.
Any idea?
Thanx,
JanMy problem is mapping Element 1 to Element A.
What do you mean by this? I guess you want the Element1 to appear with each Segment occurrence. If yes, you may use standard function useOneAsMany as shown.
/people/sravya.talanki2/blog/2005/12/08/message-mapping-simplified-150-part-ii
Regards,
Prateek -
Dynamic Mapping : Context Controller to Context iView
Hi,
i'm trying to mapping attributes from a Context Controller made at runtime to a Context iView inside a view set.
Someone can help me with the code ? In which way i can reference the iView from a method in the controller and mapping the attributes?Hi Antonello,
Cool Down.......
I understand this is your requirement.
You are trying to map a dynamically created node from the component controller to a view controller.
For that you have to code the method ADD_NEW_MAPPED_CHILD_NODE() of the interface IF_WD_CONTEXT_NODE_INFO in the appropriate method of the view controller with the mapping info and all.
In your view controller get the "node info" of the parent node, under which you want to add the new node.
Get the node infro by calling get_node_info() method of interface IF_WD_CONTEXT_NODE.
After getting the node info object call the ADD_NEW_MAPPED_CHILD_NODE() with the necessary parameters.
If you are not clear or If I understood the problem wrongly please get back to me.
Sankar. -
I've been renaming topics (including file names) and may have made a mess of the map file.
I've found problems like this:
How do I delete all but the first Map ID?
Is there any way to know which topics are not mapped?
Is there any way to know which topics no longer exist but are mapped?
Thanks.Hi,
1. You can delete map id's from Project Set-up > Context Sensitive Help > Map files > Map file. Or you can open the map file and alias file directly and remove the id's from there.
2. Try Tools > Reports > MapIDs
3. MapIDs that are linked to topics that don't exists anymore show up as broken links. See Project Manager > Broken Links
4. Never seen those before. Could they come from an import or linking action? Perhaps it's a remnant of an older version.
Greet,
Willam -
Hi ,
I have some problem when i was trying to excute my mapping
it throws below exception.
RuntimeException in Message-Mapping transformation: Exception:[com.sap.aii.mappingtool.tf3.IllegalInstanceException: Too many 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.tf3.CBufIter@52c052c0, com.sap.aii.mappingtool.tf3.CBufIter@5c195c19, com.sap.aii.mappingtool.tf3.CBufIter@65726572]
can anybody please look into this. and suggest me ..
Regards,
SandeepHi,
One as many node function takes 3 inputs, first is the source value second is the Howmany times the source value should repeat and third one is where the context should change, here 2nd and 3rd input count should same, otherwise it shows an exception.
Follow this link
Introduction to Context Handling in Message Mapping
And one more is we should pass some value to the One as many node function, so put map with default.
Maybe you are looking for
-
Photo booth doesn't work, the built in web cam stopped functioning
hey guys i've just purchased macbook pro and the built in camera stopped working, when i open the photo booth application, i see a green screen, and the photo it takes is all green. it worked yesterday, and now it doesn't i've searched the entire sys
-
Since installing Yosemite (10.10.3 on a 2009 iMac) the dates of creation, modification, etc. of documents are shown correctly, but every one was Created, Modified, and Last opened at 7 08. Is my clock going bad? The time on the desktop menu gives the
-
Using html in a workflow email
Hi. Does anyone know if there's a way to use html in a workflow email so the the html tags are rendered and not displayed literally? I'm trying to include an a href tag so that the email just displays the hyperlink in the email and not the big long u
-
Outgoing calls... No go
This is a bit odd.. I can make outgoing calls, but I cant hear, nor be heard. Incomming is just fine. Music is just fine (speaker and headphones). I can even hear the tones when I dial my voice mail password. I just cant hear anything from the other
-
Needs to goto self inbox for approval
Hi All, When we create Shopping cart we need to send a meesage to self Inbox rather line manager or some one. There is no need of check the amount value for approval. If anyone come across for this kind of process it would be appreciated with points