AbapcadabrA holds quite a suite of free download Abap programs most of which can be used directly after installation. Note that all of these articles contain a ready-to-use download button which will place a .txt file on your PC. All you need to do is copy the content of the .txt and create a report with it. Although these examples are all ready to use, you do need to consider adding authorization checks to them. A summary of most (but not all) free download goodies and gadgets grouped by subject:
These articles describe tools that can be used directly by the end-user.
Personal Value List (F4) tool
The personal value list, that is available on most Search Help screens (F4), is a very useful bit of functionality. Use this freely downloadable tool to manage Personal Value List settings for other users too.
The Run Manager
Mini-shell for reports with complex selection screens. You have developed an interface report that has quite a few options and it supports a trial run and an official run. The report is set up with variants that will hold the required settings, but the sheer number of options are discomforting for your end user. The “run manager” may be the answer.
The role of tables in SAP is quite serious and I've composed a small (almost) turn-key report that describes tables in the classic table notation - like so: MARA(MANDT, MATNR, FIELD1, FIELD2, ...). I'm sure you're system is documented fine. Auto-documentation can be a great help nevertheless. Run this report for a report of your choice and it will reveal which tables are selected (or altered).
Batch job scheduler
Background jobs can be scheduled through SM36 - which is used in all SAP implementations. Alternatively a background job can be scheduled from a report or by an Abap report. Batch job scheduling has it's limitations. Hence: the Batchjob scheduler was introduced.
I'm sure the biggest background jobs that are running on your live system are important and they get a job done that plays a big part in the system's overall function. Prices need to be (re)calculated, stocks need to be adjusted, an outbound interface on material data needs to be completed. The coding for these - big boys - has been optimized, the performance is tuned and there's is not much more that can be done from a technical viewpoint. Consider using a processing queue.
You have mail!
These articles all produce email output, for several purposes.
Mail a file
A simple report that will compose an email with the information on the selection screen. The content of this email also includes an attachment, which is picked up from a file on the server. A possible way to use this is to have the download tool (elsewhere on AbapcadabrA) produce a file on the server, which is picked up and send out via email with Mail-a-file functionality.
Mail multiple files
A simple report that will compose an email with the information on the selection screen. The content of this email also includes multiple attachment, which is picked up from files on the server. The total number of files is limited to 20 and the total file size is limited to 1Mb. Both limits can be adjusted easily (in the last 10 lines of coding).
Mail a Business Application Log (BAL)
The Business Application Log is used for the somewhat more serious logging. When the steps a report executes are error-prone and the quality of the result (e.g. for an interface) is important, errors on background job logs are not the answer. Inbound Idoc processing also uses the Business Application log, when too many errors are listed. But there is no reason you yourself should not use it. Save the log, only if it contains errors and send this log to an email receiver - just to inform him/her something has gone wrong.
An email should be composed 3 months before something is planned to happen, just to inform the receiver of the mail that he/she is expected to do something. This report does just that. Compose and send an email - conditionally. Schedule it to ensure your employee are updated.
Mail a job log
A simple report that will compose an email with the information on the selection screen and information of a background job log. If you need to keep track on the status of background jobs, all you need to do is schedule this report as one of (preferably the last) step of your background job. An email as a reminder that a job ran (and finished). Or for the longer running jobs: a sign that the next step can be done, as email.
These articles are about files. Creating them, moving them, removing them.
- Mail a file and Mail multiple files are described in the previous paragraph.
Report into file
If you need output from a report to become available as a file, as a reference or to keep track of progress (scheduled as a background job), this simple add-on could be helpful.
The report takes the name of a report that needs to be submitted and a variant. It also takes the name of a file on the client or on the server. If no filenames are supplied the output is shown on screen (as test).
Data download tool
The data on SAP's tables sometimes needs to pulled out of the system. Compare to other systems, freeze the moment (repeat the download 2 days later and compare changes) or just to ensure nothing is lost when you are about to embark on something. This report is a download tool for data. It's quite flexible in letting you define which tables (multiple), which fields and which records. Table name and description, field names and table content of all tables specified will end up in a single dataset (file). Try it, I'm quite confident you will like it.
Server cleanup - delete old server files
If your interface produces files (whether it's inbound or outbound) - are the files removed ? Are you stumbling across old log files that have no use other than occupy space ? This article describes how a turn-key utility report can be used to schedule cleaning your (server) directories.
Where data in interfaced out of the system, there's always the discussion of full load and the delta loads, with advantages and disadvantages on both flavors. This article describes how to set up shadow checking in a way that I've implemented on 10+ serious interfaces to date. This setup ensures only actual changes are sent out. It also supports refresh-runs and trial runs.
Developer tools / development tools
Most of these articles are destined to stay on a development system, as they aid the process of development - for which there is no use on other systems than development systems..
There are more than 1000 icons in SAP, which can be used for menu's in screens or on reports. To get an overview of these Icons, report
SHOWICONcan be used. Have you been peeking at the output of this report in the past ? AbapcadabrA holds an alternative to the
SHOWICONwhich will help you selecting the right Icons
Are you downloading your own coding, to upload it again in another system ? If you are dealing with multiple customers, you must have your own suite of handy developments, like the ones you can find on AbapcadabrA.com. This too is a very handy ready to use mini application, that allows easy uploading and downloading Abap codng, including texts and menu's. Dynpro's are downloaded as well, ready be uploaded through the screen painter.
If you don't take some pride in your work, it probably shows - in that same work. Doesn't even matter what you do. In Abap, there's beauty prizes to be won too - even though the end customer may never get to see them. I found that the pretty printer is a nice way to produce readable coding, but it lacked a personal touch, so I've introduced the auto pimper.
Worried about someone stealing your code ? Do you want to copy-protect your coding ? But SAP is an open source system: Abap developers can look under the rug and sift through all coding with great tools like the Abap editor and the debugger. So what's to stop a third party from stealing your ideas ? The copywiter.
Worried about parties stealing code ? Do you want to ensure no-one can touch, run or even see it ? Do you want to show the customer a demo on their own system, without leaving it there all exposed ? Lock your coding with the code locker. And re-instate when you needed, in under 2 seconds.
Transport overview report
The article on landscape travels explains in detail what can/should happen with transport requests. It's quite hard to pinpoint where the release sequence of transports has not been followed up, which is for many Abap technical objects a clear signal something may have gone wrong. Check out the report that is ready to run for you too.
.. in comments. Having a good solid naming convention for your variables is a very good idea, which will help you building your coding and help the developer that needs to alter it in the future as well. Which may also be you ! A ready-to-copy comment block on naming conventions.
Customer developments inventory
To prepare an upgrade it is good to know what we are dealing with. SAP has done it's share in upgrading their part, and we have been utilizing the system with our own coding. Bu exactly how much coding is that ? What if all coding lines in reports, includes, function modules and even classes is added up ? Is it possible to get an overview ? With an example report it is...
A method to visualize the life of a development (program). If you would like to check what happened to a given (customer) development since it was created, an ABAP report gathers transport details along with the program's size (counting the number of lines). The size is used as a complexity-barometer and it's interesting to see how many changes have been applied, how much time between changes and whether (and how much) the complexity grows (or decreases).
Source code scanner
Documentation of technical objects is very important, but not always available, reliable or up to date. The one thing that a developer always has, is the actual coding itself. Whatever "the others" have build before you, any developer will point out things that should be done in a better way. Developments hold a sense of developer personality, which is exactly why developing is what it is. The source scanner can be a helping hand.
Allow end user to create/change a TVARVC variabele
This example enables the end user to update a date field which is maintained on the (client dependent version of)
TVARVC. For this example a button reserved on the selection screen (with text "settings"). The example source is a full report that can be installed and executed. The current value for a date field is selected, the module
Table transporter (including content)
You have defined a transparent table, created data elements for it some of which have domains with a control table or with domain values. And now you need to do all of this again, including actual table content, for a new system. I've composed a small tool that will help you create a download file with everything you need for the table. And with the same tool, implemented at the receiving end, domains, data elements, the table with it's fields and actual content can be restored (upload).
SapScript (the old style)
Some additional tooling for SapScript forms, aimed at helping with an upgrade or a company-wide name change.
SapScript change analyzer
The system uses SapScript forms (which is more often than not the case for FI) and a name change or company website reference or such needs to be applied. How should this be done ? Do you need to browse through each form and look up existing references ? This article describes what I did to check over 100 Sapscript forms / in automated fashion.
SapScript graphic to .bmp
A simple report that will download the SapScript Graphic or BDS (Business Documents Service) image to a local .bmp file. All graphics would need to be uploaded from e.g. a .bmp file but the original is often lost. Transaction
SE78does not provide the download functionality, so this development tool report does.
The XML format sooo much preferred to a growing number of parthers..
Simple XML parser
TRANSFORMATIONdelivers such great results in so little steps, the
CL_IXMLclasses could not satisfy my simple requirements to read/interpret an XML file. So I created my own. This article describes how a simple XML file can be made available in Abap logic in a workable manner.
Batch Input Maps
Prehistoric and useful since it's introduction.
A BDC session can also be processed as a group of sessions, for which transaction
SHDB- transaction recorder: Recording overview - is available. From an Abap the use of BDC groups is also supported.
Business Application Log (BAL)
Logging, through SAP's BAL.
Selection screen information into BAL
The downloadable - ready to run - example code holds a local class that can be used to compose the list of progress messages and errors for your e.g. interface report. The messages can be displayed or saved and selection screen parameter settings can be made part of the logging, all in under 200 lines of ready-to-use coding.