*Disclaimer* – Notes in my blogs are about hypothetical scenarios. They do not directly or indirectly relate to any of my current or prior employers, or their clients.
Why this blog?
I quote you “Humans are unique among all animals because of their ability to learn from others mistakes. What’s even more unique is their reluctance to do so!”
What makes me qualified to comment on this subject?
I have been in Production support Environment for about 10 Years, at least 5 of which supporting SAP ECC. One of the project I have been involved with claims to be the largest SAP ECC implementation worldwide.
Target Audience, or Why should you spend time reading this?
This Blog is about how simple design elements can save hundreds of Hours, money and sometimes embarrassment from your Client or Customers in long run for Large scale IT projects’ maintenance. Often, IT projects are driven by urgency to deploy quickly, and fail to consider how it will be maintained for years to come.
Sometimes they include exotic design elements that are too difficult to sustain for many users across many locations. (May I quote an extreme imaginary scenario? “Don’t build a Unicorn if you don’t know how you would you feed it Gold crusted Diamond Pie everyday!”
All developers may find my comments useful. Technical Project leads, Architects, or Production support personals may find these more valuable than others.
Leave me Comments!
Your project situation may differ so my notes may not completely apply to you. However, I like good debates, and I am willing to listen!
If you don’t mind, please mention your production support experience if you have in your comments.
I hope you got the idea where I am going with this.
For my 2nd blog entry, I want to put SAP on the Spot.
SAP has built IDocs functionality which is an amazing tool that makes processing large transactions in parallel or sequence very easy. It has detailed, load distribution, tracking, and reprocessing mechanisms.
However, I think SAP somehow missed to build simple generic data analysis tools around IDocs. (How did you? You can convert currency 300 diffent ways!)
I have had our projects build 5 custom tools for IDocs. They are saving us hundreds of hours (and sometimes things that money cant buy 😉 ).
First one of the five is for IDocs Mass Data Extract.
How does it work?
Type in standard selection criteria that are on WE02 (Default Tab only).
Along with it, you pick:
Segment name and a Field name combination if you want to extract a specific field(up to 128 Chars), or
Segment name and Character start and end position if you want part of the segment(up to 128 Chars), or
Segment name only if you want all fields from a segment extracted.
We have implemented a screen that can extract from up to 10 different segments, but the logic is repetitive so it can be for N number of segments. It can be even enhanced to explode all segments in the IDoc.
Another feature is that you can run this tool in the background and output directly to a physical file for easier retrieval (Ensuring all security processes still apply like S_IDOC_MONI or S_DATASET before and after, and periodic emptying of extracts).
Output is a nice ALV grid with IDocs control data followed by IDocs Segment data parsed as N repetitions of “Field Name – Field value” columns.
We also take raw IDocs data a step further and cross populate IDocs data with ECC data side by side in results. For example, if the IDoc failed because overall budget exceeded, the program shows available budget available, and total outstanding amount for all IDocs for that particular line of accounting. Or add end user responsible for resolving a specific error based on Line of Accounting in the IDoc. (If SAP is to accept my suggestion to build this tool, it can possibly implement this via a BADI that can add X number of custom columns after all the IDOCs extract is done.)
Why is IDocs Mass Extract needed? How will this help you?
- IDocs data is stored in a blob – one 1000 char continuous field unlike what you see in WE02, in EDID4. SE16n won’t work.
- Believe or not, all large IDocs interfaces have IDocs errors, a lot more in the earlier lifecycle of the interface. WE02 lets you look at one segment or one IDoc at a time, but if you have few hundreds IDocs to analyze, I hope you have lot of patience! I had to review many IDocs in my early days of SAP and it was a lot of waste of time. WE02 kind of sort of lets you see a single segment from multiple IDocs but without any EDIDC info in the ALV. It is hard, if not impossible, to see what data comes from what IDoc especially if a segment is repeated in an IDoc.
- Let’s suppose you don’t want to admit you have many IDocs failure in Production (more than a dozen is worth using this tool), you will still have many errors in your Dev and Quality testing environments that need IDocs analysis. You need tools to confirm positive tests quickly too. Especially in Middleware testing.
- I am actually confident enough that if you have IDocs interfaces, you will get ROI in in weeks if not months on this tool. You don’t know how many hours you are wasting analyzing IDocs manually. Even if you don’t have errors, sometimes you have to inspect successful IDocs or Queued IDocs for various reasons.
- This is an Expert Only tool, or at least for select few, just like WE09. If handed out to too many, it can take over your system if many end users trigger wide open runs of it. Large EDIDC can cause DB delays. Parsing EDID4 is performance intensive too. If you advertise this capebility to all, everyone will ask for it and you will end up shooting yourself in your foot with a sluggish system, especially around monthly closings or fiscal year closings.
I could easily clean up the code we have and put it here for others to follow. (Where’s fun in that? 😉 )
However, if SAP can do it, it will save us all extra effort. I am sure this can be done in less than couple of months by a good developer.
Please go ahead and leave a comment here and let SAP know you want to be able to analyze IDocs data en mass. Or prove me wrong and tell me SAP has something like this already. I hope you do the first one!