2017 Apr 21 12:48 PM
Hi all,
I have to derive Funded Program from WBS on a 1:1 relationship. I want to achieve this using assignment which will make it easy for user because they don't have to maintain derivation every time they create a new WBS. WBS number has separators and i also did the same with the Funded Program for example:
WBS 5.222.1 = FP 5.222.1 The problem is when I derive the funded program, the system takes out the separators on deriving the funded program.This is because the WBS is stored without separators in table PRPS, whilst the Funded Program is stored with separators in table FMMEASURE . So when I run the derivation using assignment, the result comes out as on the below screen.
Please advise on how I can have the Funded Program to be derived with separators.
Regards
Jordan
2017 Apr 21 12:57 PM
Hi,
Instead of 'assignment, use rule of type 'function module' and select this one: FMDT_READ_MD_WBS_ELEMENT.
There you have both values of WBS - converted and non-converted. You can take whatever you want and pass it to Funded program.
Regards,
Eli
2017 Apr 22 5:49 AM
2017 Apr 24 8:53 AM
Hi Eli,
I have used the function module as advised.
WBS source field is POSID which does not contain special characters. That means when deriving the Funded Program, the system counts the number of characters from the WBS field. For example WBS 52221 is derived to FP 5.222 because the number of characters are 5. This is not correct because it should come out as 5.222.1.
How do I manage this?
Regards
Jordan
2017 Apr 24 12:59 PM
POSID includes dots, commas, etc.
2017 Apr 24 2:06 PM
Hi Eli,
In our case POSID doesnt include dots, but POSKI is the one which does. So because the functional module is reading POSID as source field, it derives the Funded Program using the number of characters found in POSID. In the example I used above, POSID = 52221, whilst POSKI = 5.222.1, so Funded Program is derived as 5.222 and gives an error.
Regards
Jordan
2017 Apr 24 4:23 PM
Your screenshot makes sense, but the result you are describing does not 🙂
The module shouldn't care less if the length of POSID is 5 characters or less. As soon as it identifies the line, it should take the value of POSKI (in your case, since it's there where you keep this dotted version) without any restriction on the length, unless you specify it deliberately.
Well, if standard FM doesn't work (though, I cannot see why), you can use a user-exit and do exactly the same: approach PRPS with WBS value and store POSKI value in FMDERIVE.