on 04-10-2008 7:04 PM
Hi ,
I am doing mapping where I am using only the segment E1BP2054_MASTERDATA_ALE SEGMENT in my source IDOC structure,there will be many E1BP2054_MASTERDATA_ALE SEGMENT segments in a single IDOC but I need to get only data only if Level field in E1BP2054_MASTERDATA_ALE SEGMENT segment is 5.I am using createif function now but only one segment comes in the target,how can I solve this.
Source structure
<?xml version="1.0" encoding="UTF-8"?>
<PROJECT01>
<IDOC BEGIN="">
<EDI_DC40 SEGMENT="">
<TABNAM/>
<MANDT/>
<REFMES/>
<ARCKEY/>
<SERIAL/>
</EDI_DC40>
<E1BP2054_PROJDEFINITION SEGMENT="">
<PROJECT_DEFINITION/>
<DESCRIPTION/>
<CREATED_BY/>
<CREATE_DATE/>
<JV_JIB_CLASS/>
<JV_JIB_SUB_CLASS_A/>
<FUNC_AREA/>
</E1BP2054_PROJDEFINITION>
<E1BP2054_MASTERDATA_ALE SEGMENT="">
<WBS_ELEMENT>43434343</WBS_ELEMENT>
<PROJECT_DEFINITION/>
<DESCRIPTION>aaaaa</DESCRIPTION>
<SHORT_ID/>
<CREATED_BY/>
<CREATE_DATE>20080101</CREATE_DATE>
<CHANGED_BY/>
<CHANGE_DATE/>
<LEVEL>5</LEVEL>
<PLANT>y005</PLANT>
<USER_FIELD_KEY/>
</E1BP2054_MASTERDATA_ALE>
<E1BP2054_MASTERDATA_ALE SEGMENT="">
</E1BP2054_MASTERDATA_ALE>
<WBS_ELEMENT>43434343</WBS_ELEMENT>
<PROJECT_DEFINITION/>
<DESCRIPTION>bbbbbb</DESCRIPTION>
<SHORT_ID/>
<CREATED_BY/>
<CREATE_DATE>20080101</CREATE_DATE>
<CHANGED_BY/>
<CHANGE_DATE/>
<LEVEL>5</LEVEL>
<PLANT>y005</PLANT>
<USER_FIELD_KEY/>
<E1BP2054_MASTERDATA_ALE SEGMENT="">
</E1BP2054_MASTERDATA_ALE>
<WBS_ELEMENT>43434343</WBS_ELEMENT>
<PROJECT_DEFINITION/>
<DESCRIPTION>ccccccc</DESCRIPTION>
<SHORT_ID/>
<CREATED_BY/>
<CREATE_DATE>20080101</CREATE_DATE>
<CHANGED_BY/>
<CHANGE_DATE/>
<LEVEL>2</LEVEL>
<PLANT>y005</PLANT>
<USER_FIELD_KEY/>
<E1BP_WBS_HIERARCHIE SEGMENT="">
<WBS_ELEMENT/>
<PROJECT_DEFINITION/>
<UP/>
</E1BP_WBS_HIERARCHIE>
<E1BP2054_STATUSHEADER_ALE SEGMENT="">
<WBS_OBJECTID/>
<OBJECT_TYPE/>
<STATUS_PROFILE/>
</E1BP2054_STATUSHEADER_ALE>
<E1BP2054_OBJECTSTATUS_ALE SEGMENT="">
<WBS_OBJECTID/>
<OBJECT_TYPE/>
<STATUS/>
<INACTIVE/>
</E1BP2054_OBJECTSTATUS_ALE>
</IDOC>
</PROJECT01>
Target structure
<?xml version="1.0" encoding="UTF-8"?>
<ns0:AddUpdateCostObjectL2AndRelatedL3AndL4 xmlns:ns0="http://************/">
<ns0:sLevel1ID><None></ns0:sLevel1ID>
<ns0:sLevel2ID>43434343</ns0:sLevel2ID>
<ns0:sLevel2Name>aaaaa</ns0:sLevel2Name>
<ns0:sStartDateYYYYMMDD>20080101</ns0:sStartDateYYYYMMDD>
<ns0:sEndDateYYYYMMDD>99990909</ns0:sEndDateYYYYMMDD>
<ns0:sOrderType>Unassigned</ns0:sOrderType>
<ns0:sPlantCode>y005</ns0:sPlantCode>
<ns0:sCostObjectDesc></ns0:sCostObjectDesc>
<ns0:sActualStartDateYYYYMMDD>20080101</ns0:sActualStartDateYYYYMMDD>
<ns0:sActualEndDateYYYYMMDD>99990909</ns0:sActualEndDateYYYYMMDD>
<ns0:sAreaId>01</ns0:sAreaId>
<ns0:sFunctionLocation></ns0:sFunctionLocation>
<ns0:sFuncLocationDesc></ns0:sFuncLocationDesc>
<ns0:sUnitName></ns0:sUnitName>
<ns0:sMaintenanceCategoryCode></ns0:sMaintenanceCategoryCode>
<ns0:sStatusA_Or_I>A</ns0:sStatusA_Or_I>
</ns0:AddUpdateCostObjectL2AndRelatedL3AndL4>
Thanks
Have you used SplitByValue after createif function n your mapping?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Source structure
<?xml version="1.0" encoding="UTF-8"?>
<PROJECT01> 1:1
<IDOC BEGIN=""> 1:1
<EDI_DC40 SEGMENT="">
<TABNAM/>
<MANDT/>
<REFMES/>
<ARCKEY/>
<SERIAL/>
</EDI_DC40>
<E1BP2054_PROJDEFINITION SEGMENT="">
<PROJECT_DEFINITION/>
<DESCRIPTION/>
<CREATED_BY/>
<CREATE_DATE/>
<JV_JIB_CLASS/>
<JV_JIB_SUB_CLASS_A/>
<FUNC_AREA/>
</E1BP2054_PROJDEFINITION>
<E1BP2054_MASTERDATA_ALE SEGMENT=""> 0:999999999
<WBS_ELEMENT>43434343</WBS_ELEMENT>
<PROJECT_DEFINITION/>
<DESCRIPTION>aaaaa</DESCRIPTION>
<SHORT_ID/>
<CREATED_BY/>
<CREATE_DATE>20080101</CREATE_DATE>
<CHANGED_BY/>
<CHANGE_DATE/>
<LEVEL>5</LEVEL> 0:1
<PLANT>y005</PLANT>
<USER_FIELD_KEY/>
</E1BP2054_MASTERDATA_ALE>
<E1BP2054_MASTERDATA_ALE SEGMENT="">
</E1BP2054_MASTERDATA_ALE>
<WBS_ELEMENT>43434343</WBS_ELEMENT>
<PROJECT_DEFINITION/>
<DESCRIPTION>bbbbbb</DESCRIPTION>
<SHORT_ID/>
<CREATED_BY/>
<CREATE_DATE>20080101</CREATE_DATE>
<CHANGED_BY/>
<CHANGE_DATE/>
<LEVEL>5</LEVEL>
<PLANT>y005</PLANT>
<USER_FIELD_KEY/>
<E1BP2054_MASTERDATA_ALE SEGMENT="">
</E1BP2054_MASTERDATA_ALE>
<WBS_ELEMENT>43434343</WBS_ELEMENT>
<PROJECT_DEFINITION/>
<DESCRIPTION>ccccccc</DESCRIPTION>
<SHORT_ID/>
<CREATED_BY/>
<CREATE_DATE>20080101</CREATE_DATE>
<CHANGED_BY/>
<CHANGE_DATE/>
<LEVEL>2</LEVEL>
<PLANT>y005</PLANT>
<USER_FIELD_KEY/>
<E1BP2054_MASTERDATA_ALE SEGMENT="">
<E1BP_WBS_HIERARCHIE SEGMENT="">
<WBS_ELEMENT/>
<PROJECT_DEFINITION/>
<UP/>
</E1BP_WBS_HIERARCHIE>
<E1BP2054_STATUSHEADER_ALE SEGMENT="">
<WBS_OBJECTID/>
<OBJECT_TYPE/>
<STATUS_PROFILE/>
</E1BP2054_STATUSHEADER_ALE>
<E1BP2054_OBJECTSTATUS_ALE SEGMENT="">
<WBS_OBJECTID/>
<OBJECT_TYPE/>
<STATUS/>
<INACTIVE/>
</E1BP2054_OBJECTSTATUS_ALE>
</IDOC>
</PROJECT01>
Target structure
<?xml version="1.0" encoding="UTF-8"?>
<ns0:AddUpdateCostObjectL2AndRelatedL3AndL4 xmlns:ns0="http://************/"> 1:1
<ns0:sLevel1ID><None></ns0:sLevel1ID> 0:1
<ns0:sLevel2ID>43434343</ns0:sLevel2ID>
<ns0:sLevel2Name>aaaaa</ns0:sLevel2Name>
<ns0:sStartDateYYYYMMDD>20080101</ns0:sStartDateYYYYMMDD>
<ns0:sEndDateYYYYMMDD>99990909</ns0:sEndDateYYYYMMDD>
<ns0:sOrderType>Unassigned</ns0:sOrderType>
<ns0:sPlantCode>y005</ns0:sPlantCode>
<ns0:sCostObjectDesc></ns0:sCostObjectDesc>
<ns0:sActualStartDateYYYYMMDD>20080101</ns0:sActualStartDateYYYYMMDD>
<ns0:sActualEndDateYYYYMMDD>99990909</ns0:sActualEndDateYYYYMMDD>
<ns0:sAreaId>01</ns0:sAreaId>
<ns0:sFunctionLocation></ns0:sFunctionLocation>
<ns0:sFuncLocationDesc></ns0:sFuncLocationDesc>
<ns0:sUnitName></ns0:sUnitName>
<ns0:sMaintenanceCategoryCode></ns0:sMaintenanceCategoryCode>
<ns0:sStatusA_Or_I>A</ns0:sStatusA_Or_I>
</ns0:AddUpdateCostObjectL2AndRelatedL3AndL4>
The mapping I have done:
LEVEL---->creatif = 5--
>AddUpdateCostObjectL2AndRelatedL3AndL4
constant----
>sLevel1ID
WBS_ELEMENT------->sLevel2ID
DESCRIPTION----
>sLevel2Name
CREATE_DATE----
>sStartDateYYYYMMDD
PLANT----
>sPlantCode
I need to get only segments which have level equal to 5,so in my example I have two level 5 and one level 2,so I need to get all the fields of level 5 in my target in a separate node which I havent shown in target(I have shown only one)
Let me know if you need more info.
Thanks
Target structure
<?xml version="1.0" encoding="UTF-8"?>
<ns0:AddUpdateCostObjectL2AndRelatedL3AndL4 xmlns:ns0="http://************/"> 1:1
<ns0:sLevel1ID><None></ns0:sLevel1ID> 0:1(all the fields below are 0:1)
<ns0:sLevel2ID>43434343</ns0:sLevel2ID>
<ns0:sLevel2Name>aaaaa</ns0:sLevel2Name>
<ns0:sStartDateYYYYMMDD>20080101</ns0:sStartDateYYYYMMDD>
<ns0:sEndDateYYYYMMDD>99990909</ns0:sEndDateYYYYMMDD>
<ns0:sOrderType>Unassigned</ns0:sOrderType>
<ns0:sPlantCode>y005</ns0:sPlantCode>
<ns0:sCostObjectDesc></ns0:sCostObjectDesc>
<ns0:sActualStartDateYYYYMMDD>20080101</ns0:sActualStartDateYYYYMMDD>
<ns0:sActualEndDateYYYYMMDD>99990909</ns0:sActualEndDateYYYYMMDD>
<ns0:sAreaId>01</ns0:sAreaId>
<ns0:sFunctionLocation></ns0:sFunctionLocation>
<ns0:sFuncLocationDesc></ns0:sFuncLocationDesc>
<ns0:sUnitName></ns0:sUnitName>
<ns0:sMaintenanceCategoryCode></ns0:sMaintenanceCategoryCode>
<ns0:sStatusA_Or_I>A</ns0:sStatusA_Or_I>
</ns0:AddUpdateCostObjectL2AndRelatedL3AndL4>
Target structure
<?xml version="1.0" encoding="UTF-8"?>
<ns0:AddUpdateCostObjectL2AndRelatedL3AndL4 xmlns:ns0="http://************/">------- 1:1
<ns0:sLevel1ID><None></ns0:sLevel1ID> -
0:1(all the fields below are 0:1)
<ns0:sLevel2ID>43434343</ns0:sLevel2ID>
<ns0:sLevel2Name>aaaaa</ns0:sLevel2Name>
<ns0:sStartDateYYYYMMDD>20080101</ns0:sStartDateYYYYMMDD>
<ns0:sEndDateYYYYMMDD>99990909</ns0:sEndDateYYYYMMDD>
<ns0:sOrderType>Unassigned</ns0:sOrderType>
<ns0:sPlantCode>y005</ns0:sPlantCode>
<ns0:sCostObjectDesc></ns0:sCostObjectDesc>
<ns0:sActualStartDateYYYYMMDD>20080101</ns0:sActualStartDateYYYYMMDD>
<ns0:sActualEndDateYYYYMMDD>99990909</ns0:sActualEndDateYYYYMMDD>
<ns0:sAreaId>01</ns0:sAreaId>
<ns0:sFunctionLocation></ns0:sFunctionLocation>
<ns0:sFuncLocationDesc></ns0:sFuncLocationDesc>
<ns0:sUnitName></ns0:sUnitName>
<ns0:sMaintenanceCategoryCode></ns0:sMaintenanceCategoryCode>
<ns0:sStatusA_Or_I>A</ns0:sStatusA_Or_I>
</ns0:AddUpdateCostObjectL2AndRelatedL3AndL4>
Hi, Actually, your post is really confusing others, I do not think your clearly elaborate your requirements,
so we can not propose right solutions for you
LEVEL---->creatif = 5--
>AddUpdateCostObjectL2AndRelatedL3AndL4
From here, I see what you try to create at target.
inside your source structure, you have many nodes <E1BP2054_MASTERDATA_ALE SEGMENT="">
when its sub-elements LEVEL =5, you want to map to AddUpdateCostObjectL2AndRelatedL3AndL4
so MaxOxccurence of the node AddUpdateCostObjectL2AndRelatedL3AndL4 should be unbounded.
If you can clearly state what you want to achieve, we should be able to come up with solutions for you.
Regards.
Liang
Hi,
This will be clear I guess,sorry for the confusion
http://www.flickr.com/photos/25513325@N05/2403503367/
There will be multiple E1BP2054_MASTERDATA_ALE SEGMENT but I need to send only segments where LEVEL field as 5.
Let me know if you need more info.
Thanks
Hi,
I got your sceenshot, I read again from the beginning of thread, I believe that your design have prolem which I have raised in my previous post:
Conflict Occurence:
Since you only have 1:1 occurence "AddUpdateCostObjectL2AndRelatedL3AndL4" , all its sub-elements are 0:1, means all the target node either will be create once or none.
However, in your source, you have multiple "E1BP2054_MASTERDATA_ALE", it has one optional elements "Level", means in the source, you will have "Level" nodes, then you will have multiple
"WBS_ELEMENT" node too.
Your source structure say I have many values for particular node, your target structure say, for this node, I only take one value.
Are you expecting this result ?
Liang
User | Count |
---|---|
84 | |
24 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.