This blog is about a conversation which happened between two BW developers Tom and Jerry. They are working together on a project and have just come out of a requirements gathering session. Both look pensive and slowly begin this conversation…here we go…
Users need List of all the sales orders which were rejected either due to “Damaged Delivery” or due to “Bad Quality” and additionally they want 2 column at the end Shipping point and Mfg. Plant.
TOM: Yes, that’s right. So what is troubling you?
JERRY: You see, they specifically mentioned that if Reason = “Damaged Delivery” show the Shipping Point value and DO NOT show Mfg. Plant. Where as, if the Reason = “Bad Quality” show Mfg. Plant and hide Shipping point. How can we hide specific char values in the report?
TOM: Yeah, I see your point. Let me think…..got it! Let’s modify the extractor with the logic that if Reason Code = “Damaged Delivery” –> Plant = blank
If Reason Code = “Bad Quality” —> Shipping Point = Blank
This will solve our problem.
JERRY: Hmmn…I can think of another solution.
1. Create a Virtual Infoprovider with the fields needed in the report
2. Create a transformation from our existing cube to Virtual provider and in the transformation apply the same logic you said just now.
3. We will build our query on top of the Virtual Provider
TOM: I see, but if we modify the extractor we do not have to do all this additional development.
JERRY: I do not think we should do modify the extractor. Let us get the as it is to BW and then use virtual provider, because if we modify the extractor we will lose either Shipping Point or Plant information the data.
TOM: Don’t worry about it; this is the “only” report which is built on this cube. So there shouldn’t be any issue. Let’s change the extractor as per the report logic.
JERRY: Think about it again Tom! I agree there isn’t any other report on this cube today, but what if there is another requirement tomorrow with a requirement to display all values of Shipping Point or Plant?
TOM: Let us not worry about it right now. Changing the extractor will reduce the development and we can deliver the report faster. Users will be happy!
JERRY: Quick….probably yes, but not a long term solution. Building Virtual Provider will take some additional development effort but the source data would be intact. We should stage the source data as it is in BW and the report specific logic should be addressed in BW.
TOM: No Jerry….we should change the extractor.
JERRY: No, we should go with Virtual Provider in BW
TOM: Change the Extractor…!!!
JERRY: Build the logic in BW…!!!
(…and the debate continues…)
So friends, what do you think after reading this conversation….whose side you are on? Agree with Tom or support Jerry?
Do let me know in your comments… 🙂