In general, yes, batch programs must be written in ABAP.
More specifically, the SAP scheduler can run O/S jobs or external programs, but this is just using the scheduler to run other jobs.
If you want to write something which runs as an SAP batch job, and interacts with SAP, then it will almost certainly be written in ABAP.
The alternatives mentioned above are more complex:
BDCs (aka batch input sessions) record a the required inputs to screen fields, and can be processed in batch - strictly soe ABAP s running, but it is reading pre-stored values for each screen, and pretending to step through the screens in background. Slow and can be risky if you don't understand the screen flow exactly, but they are sometimes the only way to do something. They used to be one of the only ways of doing batch updates.
BAPIs are a mechanism for calling SAP from another application (or the same system) - they could hence be called by another batch system, and have the impact of batch updating SAP. This is only likely to be appropriate if you really are trying to run something from another system. You might use BAPIs if you write an ABAP, and want to update some data - call the BAPI rather than posting to the database.
To repeat the short answer - yes, use ABAPs.
Main Topics
Browse All Topics





by: DanC3Posted on 2002-08-20 at 13:53:42ID: 7231995
You can use BDC (batch data correction) or sometimes a BAPI.
Some of the new Enjoy transactions are not friendly to BDC's. Use SM35, record new, save it and use SM35 to convert it to a ABAP program.
You have to do some research to use BAPI's. They are more like the code used by the original transactions, whereas BDC are more like screen scraping to fields in the GUI part of a program.
BDC's are faster more subject to SAP changes. BAPI are more stable but are slower to come from SAP.
Go BAPI whenever time is available an reliablity is priority.