I want to tell you a story about one part of development which was unavoidable in any project that I was involved, The Story of PRINTOUT.
Once upon a time customer came to us and made request for program which he shall use for creating printouts. He made request in few lines and put inside main prerequisite that program must fulfill:
- Use template which are in SAP and can be maintained inside the SAP
- Replace some replaceable fields called „placeholders“ with values from the system
- Have an option that printout after is created can be changed
- Some values that are replaced from system can be changed
- Some chapters in printout can be added/changed/deleted
- In created printout is possible to import some pictures
- After changes are made in printout they can be saved for later viewing
- All saved printouts must be visible in standard SAP transactions depending on what was printed
- Program can be customized by key users/internal consultants/external consultants according to authorizations (add/change/delete template, add new replaceable fields, change type of printout document, change place where printouts are stored etc…) using Web Browser not only SAP GUI
Some standard SAP solutions was first evaluated but none of them gave the team exact answers to prerequisites that customer made.
Functional and development team start to evaluate possible solution for requests made by customer and after a while they prepared the functional specifications for solution. During preparation of Functional and Technical specification this program grew and become application.
For purpose of realization we started with Scrum approach and organized little Scrum team made by 3 developers and 2 functional consultants. After two sprints team came to the conclusion that this solution can become something more than application for the specific customer.
This application is transformed to the solution for printout in SAP for all of our present and future customers. After this, let’s say awaking moment, team started with totally different approach. They made some ground rules for creating this solution:
- It will use different SAP NetWeaver tools/technology (ABAP, WebDynpro, BDS, DOI …)
- Goal is to create generic tool for printouts in SAP and it will be oriented to print almost everything that exist in SAP
- Developed inside our company and distributed to customers
- Must have customizing cockpit for maintaining different printouts using SAP GUI, SAP Business Client and Web Browser
- Created printouts can be in different document types(Word, PDF)
- Created printouts can be stored on different storage(SAP, File system, DMS)
This ground rules opened new perspectives and development process became something fantastic. Development of solution was very fast and efficient. Team brainstormed on daily basis and put new features in backlog which extended solution functionality and complexity from sprint to sprint.
In few months solution had its main shape and functionality and it was presented to customer which initially requested it.
According to customer request and brainstorm of development team, basic flow for creating new printout in SAP was established (picture below).
Picture shows that everything starts with request by user „I need new printout“. After initial preparation of template by user, key user/internal consultant prepare template in accordance to SAP regulations (placeholders etc…). Internal/external consultant prepares customizing, using template as reference, needed to extract data from system and create printout. After preparation of customizing user, key user, internal consultant test the printout using template. If the printout is satisfactory template and customizing can be transported to and used in productive system.
Main parts of the solution are (picture below):
- Business object repository
- Connection between SAP business document and printout
- Standard SAP BDS
- It is used from storing templates of printouts
- Printout application
- Created in ABAP using generic programming
- Create/copy/delete printout according to customizing and template
- Save printout on dedicated place according to the customizing
- Send mail with printout in attachment
- Printout template maintenance application
- Created in ABAP using generic programming
- Check consistency of template according to customizing and template
- Upload/change/copy/delete template from system
- Printout customizing application
- Created in ABAP WebDynpro
- Maintain group of printouts
- Maintain types of printouts
- Maintain replaceable fields „placeholders“ for printout
- Generate replaceable fields for printout from prepared template
- Standard SAP business transactions
- Using button Services for Object for viewing a printout
All team members included in creation of this solution was very enthusiastic from start and still is about this solution from different reasons:
- Use of different technologies and joining them in one complete solution
- Use some of newer technologies like ABAP WebDynpro and learning them through real creation of application
- Integration of solution to SAP standard and realizing additional business value provided to customer
- Use a different approach to project realization using Scrum (Scrum team, Scrum meetings, Sprint, Demo of solutions after sprint etc…)
With this I shall put our story in sleep and in Part 2 shall describe solution in more details.
If you are interested please stand by !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!