on 09-12-2014 1:09 PM
Hi Experts,
I am doing a mapping function and is facing issue with a particular filed in the target.
My source and Target Structure are as below
Source:
Target:
My Mapping condition is if Fuel Type = 03, map source "/MVOldGasRegister/Value" to target "/ZWM_OLD_METER_READING/REGISTER_ID" else if Fuel Type = 01, map source "/MVOldElecRegister/Value" to target "/ZWM_OLD_METER_READING/REGISTER_ID". Else Donot create Target.
The occurance of "/MVOldGasRegister/Value" and "/MVOldElecRegister/Value" is 0..unb. Hence the target "/ZWM_OLD_METER_READING" should be repeated based on the number of occurence of the node. The corresponding "REGISTER_ID" should be of the source.
If Fuel Type =03, then only multiple occurnace of "MVOldGasRegister/Value" would exist with no occurance of ""MVOldElecRegister/Value"
If Fuel Type =01, then only multiple occurnace of "MVOldElecRegister/Value" would exist with no occurance of ""MVOldGasRegister/Value"
I am looking for a UDF to solve this purpose.
Any help appreciated.
Hi Tanzoom,
Below is a sample code.
The UDF should be Context based and input to that should be FuelType, MVOldElecRegister (context should be changed to FuelType), MVOldGasRegister(Again context should be changed to FuelType). The output of this can be assigned directly to "ZWM_OLD_METER_READING" and to "REGISTER_ID" only after "SplitByValue".
void getMeterReadings(String[] inFuelType,String[] inMVOldElecRegister,String[] inMVOldGasRegister,ResultList result....)
{
if(inFuelType[0].equals("01))
{
for(int i=0;i<inMVOldElecRegister.length; i++)
result.addValue(inMVOldElecRegister[i];
}
elseif(inFuelType[0].equals("03))
{
for(int i=0;i<inMVOldGasRegister.length; i++)
result.addValue(inMVOldGasRegister[i];
}
}
Hope it helps!
Best Regards,
Anand Patil
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Sorry if this is obvious - as may have misunderstood what you are expecting as a reply;
You'd need to create a UDF of type "All Values of Context" with your inputs. Loop through these inputs with your logic above. eg. for (int i = 0; i < in_parm1.length; i++)
You output values required with result.addValue(in_parm1.toString());
You can do such things as suppress nodes with result.addValue(ResultList.SUPPRESS) and context changes with result.addValue(ResultList.CC).
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
User | Count |
---|---|
90 | |
10 | |
10 | |
10 | |
7 | |
7 | |
6 | |
5 | |
4 | |
3 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.