Many companies increasingly use service vendors to staff their projects. Integrating those contractors into your SAP processes reduces administrative tasks, cuts time-to-close, and increases the quality of your financial data. Many companies are not using the provided functionality to its full extent, some because they are unaware of it and others because of drawbacks generated by relatively small functional limitations. Understand the end-to-end process and hear about some functional improvements.
Key Concept
Integration of contractors into your processes has to be approached from two different angles. On one hand they are external resources to be managed using purchase orders, goods receipts, and invoice verification. On the other hand, they are similar to employees, required to record their time and to be part of the time sheet approval process. That’s why an end-to-end integration of contractors needs to link functionality from External Service Management (MM-SRV) and the Cross-Application Time Sheet (CATS).
Many companies use a basic approach to integrate service vendors into their SAP processes. They create purchase orders (POs) with account assignments and record incoming invoices with SAP’s invoice verification functionality. This approach covers the basic requirements to print POs and pay the vendors, but leaves a number of financial requirements unmet.
For example, how do you know which services were provided, but are as yet unbilled, allowing you to pinpoint a corresponding accrual at month-end? How do you allow your department or project managers to approve services rendered before paying the related vendor invoice? How do you enable a three-way check among the PO, services delivered, and the vendor invoice to enable efficient invoice verification? How do you allocate the hours worked to the correct projects and cost centers in case the contractor works on multiple projects at the same time?
You can answer all of those questions using SAP’s External Service Management (MM-SRV) component within the Materials Management (MM) module. By adding functionality from the Cross-Application Time Sheet (CATS), you can cut out unnecessary administrative tasks and reduce your time to close.
First I’ll give an overview of the integration process, which allows you to manage contractors as external resources yet still track their time via your regular time sheet process. Then I’ll describe how to adapt the functionality to overcome several limitations.
How It Works
The key to answering the questions above is to record services rendered within the system. To do that, establish activity master records via transaction AC03 (service master). The activity master records represent different services, such as programming and consulting.
When creating a PO, use item category D – Services in the line item (transaction MR21N). This enables you to enter your activities in the PO. Do not enter a material number in the line item. Instead, enter your activity numbers in the PO line item on tab Services (Figure 1).

Figure 1
Create a service PO via transaction ME21N
Using this item category enables you to record services performed, usually measured in hours or days worked, via transaction ML81N (service sheet) in the system (Figure 2). With the release of the service sheet, the system creates documents in MM, FI, and CO. Those documents correspond to the goods receipts for materials. The FI document debits expense and credits the GR/IR account. The expense is allocated via the CO document to the cost object entered in the service sheet. The posting to the GR/IR account constitutes the accrual necessary for this as yet unbilled service.

Figure 2
Display sheet listing services performed in ML81N
As soon as the invoice is received from the service vendor, you can use transaction MIRO for invoice verification. The system shows the quantity of all services rendered, as well as the price from the assigned PO, giving you a three-way check (Figure 3). This is similar to the functionality used for materials.

Figure 3
Three-way check of PO price, GR quantity, and invoice
The system proposes the rendered quantities from transaction ML81N only after you check the Invoice based invoice verification box in the PO item. The check mark is defaulted from the same field in the vendor master, so make sure your vendor master records are maintained accordingly (Figure 4).

Figure 4
Check the Srv.based inv.ver. box in the vendor master (XK02)
Note
It’s best to create a dedicated display variant (such as Z_9030 in my example in Figure 3) to facilitate invoice verification in transaction MIRO. The display variant allows you to put the most important columns on the left side of the screen and make them immediately visible for the user. My example contains the work date and the employee name in the fields Del.material and Del.note. This information is not available for display in MIRO in the SAP standard. Both were added when I extended transaction CATM, SAP’s functionality to transfer time sheets from HR into MM. See the sidebar, “Develop A Transfer Program to Replace CATM.”
Workarounds for SAP Standard Process Limitations
Time Sheet Entry by Contractor
As you can see, using this MM functionality answers many of the questions I posed at the beginning of the article. However, a drawback of transaction ML81N is that it’s not intended to be used by the contractor. For acceptance in this user community, the time sheet entry functionality has to be extremely easy to use. ML81N, with its many screens, is not. It also asks for information that the contractors cannot determine, such as the posting date and document date.
In effect that means that your contractors have to send their time sheets to your purchasing department, which in turn enters the hours into ML81N. Having a middleman enter the work time is inefficient, causes errors, and drags out the closing process. Instead, you can use SAP’s time sheet functionality (transaction CAT2). Employees usually use this functionality to record their time, but contractors can use it as well. When correctly set up, the system transfers contractor hours into service sheets using transaction CATM (selection from time recording).
Note
CAT2 and CATM are transactions that are part of the SAP CATS functionality.
A single point of entry for employees and contractors allows a unified approval process as well as combined reporting (Figure 5). The people approving time for contractors and employees are generally the same, mostly project and department managers. They finally get all hours for approval in the same transaction (e.g., CAPS [time sheet approval]) facilitating their work. The reporting shows employee time as well as contractor time.

Figure 5
Overview of contractor time sheet process
To enable contractors to enter time in CAT2, you have to create a mini HR master for them. The mini master consists of the basic name and address data, the organizational assignment (infotype 0001), and the default data for time sheets (infotype 0315). Figure 6 shows the creation of a mini HR master.

Figure 6
Maintain time sheet default for personnel number
Entering time in CAT2 is similar for employees and contractors. Both have to enter their personnel number, the project, date and time worked, and a description. Some information is different. Employees have to enter the cost center they are assigned to as the sender cost center, as well as an activity type, which specifies the work they provided. Contractors in contrast have to enter the PO, item, and activity number. This information should be defaulted from the mini HR master, since the entry of the PO and item by the contractor often leads to data entry errors.
One possible snag is that one contractor could have multiple POs he works under, or different services such as consulting and programming invoiced with different rates. You are unable to default these values from the mini HR master for contractors who work on multiple POs. The contractor has to fill them out during timecard entry. Try to keep data entry by the contractors to a minimum by defaulting as much as possible from the mini HR master record.
Transfer of Time Sheet Records
Transaction CATM, which is used to select all contractor time sheet records from the CATS database and transfer them into service sheets, poses the biggest limitation within the contractor time sheet process. CATM cannot run in background. The information transferred into the service sheet fields is not optimal. The field posting date is set with the program run date and cannot be influenced via a program parameter. That makes it impossible to transfer hours entered for work days in the past to the correct financial period.
CATM also offers only limited selection options, making it hard to separately transfer timecards from different business units (Figure 7). In addition, the service sheets created are not automatically released, but instead have to be released manually one by one. That release is unnecessary, since the timecards have been part of the HR approval process and are therefore already checked. You can develop your own program to transfer timecards from HR to MM. This program replaces SAP’s CATM transaction.

Figure 7
Selection screen of SAP transaction CATM
Within this program, which I describe in the sidebar, you can automatically release all service sheets created. It details the available options and gives best practices on the functionality other SAP customers build into their programs.
Note
SAP is aware of the limitation in the contractor time sheet process. SAP Note 653209 ("FAQ: CATS/CATM -- data transfer to materials") states many of those limitations, but offers limited solutions.
Account Assignment
An additional limitation of transaction CATM is that the project entered in CAT2 is not copied into the service sheet. Instead, the system automatically copies the account assignment from the PO. This supposes that the contractor service in the PO was purchased for a certain project. My experience shows that often companies purchase contractors’ services via a blanket PO. Based on that blanket PO, they work on different projects at the same time. Therefore, their entry of the project number within the timecard should supersede the account assignment in the PO item.
I also have a solution for this problem. Use account assignment indicator U – unknown – in the PO item (Figure 8). This indicator allows skipping the entry of an account assignment in the PO, so you do not specify a project or an expense account here. In CATM, it opens an undocumented feature. It triggers CATM to transfer the project number from the timecard into the service sheet and determines the expense account via an MM account determination.

Figure 8
Account assignment indicator in PO line item (ME22N)
Develop a Transfer Program to Replace CATM
Transaction CATM is at the core of the contractor time sheet process. It connects SAP’s time sheet entry in CATS with the Service Management functions located in MM.
When using CATM, you may soon find out that the functionality provided by this transaction does not match your business requirements. I’m going to give a basic overview of the options you have to develop a custom-specific program to replace transaction CATM with functionality that better suits your needs. Let’s first have a look at the following functionality CATM provides, which your program must replace:
- Reads all contractor time sheets that have not yet been transferred into MM service sheets
- Creates a service sheet for a single or a combination of timecards
- Marks the contractor time sheet records that are successfully transferred to prevent a duplicated transfer
- Lists errors as well as service sheets successfully created
1. Reading Untransferred Time Sheets
Employees and contractors use the same functionality to enter their time sheets (CAT2 – time sheet entry). These time sheets are stored in database table CATSDB. At the same time a time sheet is saved in CATSDB, the system also updates an interface table, which transfers the timecards to their respective target components (transactions CATA and CATM).
Different interface tables facilitate the transfer depending on the target component. All contractor time sheets refer to POs and are therefore the system identifies them as a target of component MM. Once identified, the system stores them in interface table CATSMM.
By selecting all records within
CATSMM, you can be sure only to select contractor time sheets and not, for example, employee time sheets. To identify records not yet transferred to MM, you have to take field
TRANSFER in table
CATSMM into account. Value
X in this field indicates that the time sheet record has already been transferred, whereas
BLANK identifies it as open.
2. Create the Service Sheet
To create the service sheets, you can choose between two options. You can either follow SAP note 653209, which advises you to write a batch input program as a replacement for CATM, or you can create a copy of CATM and, with it, use the function modules employed in that transaction.
Let’s first have a look at the option to create a batch input. The batch input would feed transaction ML81N – create entry sheet (Figure A), or its predecessor ML81 (Figure B), which has a screen sequence that is easier to program.

Figure A
Create service sheet using ML81N

Figure B
Create service sheet in ML81
Make sure to transfer the following fields into the service sheet:
- Posting date
- Document date
- PO and item number
- Account assignment key X
- WBS element number
- Hours worked
- Unit of measure
Â
The second option is to copy transaction CATM and use this copy as a basis for your development. Note that transaction CATM is linked to a function group, not a regular ABAP report. The function group assigned is also called CATM. The use of a function group instead of a transaction is the first major disadvantage of SAP’s functionality, since it does not allow running the function in background. I recommend writing an ABAP report in addition to copying function group CATM. Use this report to call the function group. By doing that, you allow the user to run the function in background.
It is up to the programmer to choose between these two options. The major advantage of using a batch input is that it is release independent. That means the program should still work after your next release change. By copying function group CATM, you have to apply your program changes with every release change to the newest SAP version of CATM.
On the other hand, by copying CATM, you can use the SAP function modules to create the service sheets. This is much faster than creating service sheets via batch input. This advantage is the main reason many of my customers decide to use this alternative.
3. Marking Transferred Records
After creating the service sheets, you have to mark the related records in CATSMM as transferred. To do so, in all transferred records set the indicator CATSMM-TRANSFER to X. To ensure data integrity, you should program transaction logic around the creation of the service sheets and the update of the CATSMM records. Then no time sheet records are transferred twice into service sheets, even if your program is dumped while being executed.
4. List Errors and Successfully Created Sheets
You should provide an output list of all service sheets successfully created, together with the related information from the time sheet records. In addition, output all time sheet records that could not be created successfully with an error description.
Additional Custom Functionalities
Additions you make in your new transaction depend on your business process. These are the most common changes I have seen users implement:
Posting date as parameter on selection screen: Allowing the user to enter a posting date is crucial at month-end. It allows you to assign the timecards to the month of the work date, even though the timecards might have been entered during the following month.
Additional select-options: CATM in its standard delivery allows only the selection of a single vendor, purchase organization, PO, or personnel number. In addition, you can select a range of work dates. Many of my customers change those parameters to select options, which allow them to select value ranges. They also add additional selection criteria to the selection screen, like the master cost center of the HR mini master.
Automatic release of the service sheets: Newly created service sheets don’t automatically post a goods receipt with an accompanying FI document. That happens only when the service sheets are released. The release is separated from the time sheet entry to allow for an approval process. This approval process in MM is unnecessary when creating the service sheets via CATM, since the time sheet module CATS has its own approval process. Therefore all service sheets created with CATM can be automatically released. To do that, you can use BAPI BAPI_ENTRY_SHEET_RELEASE. To use the BAPI, you have to provide an RFC destination as an input parameter. Since you want to execute the BAPI in the same system as the CATM transaction, you have to use RFC destination NONE.
Customer-specific field transfer from time sheet to service sheet: My customers usually transfer the posting date from the selection screen into the posting date as well as in the document date of the service sheet. They also transfer the work description into the service sheet text.
Marco Jordy
Marco Jordy is the vice president of SAP Finance Consulting at ORBIS America, Inc. ORBIS is an internationally active business consulting company with core competencies in consulting for customer-oriented management processes (CRM), internal management processes (ERP/PLM), and supplier-oriented management processes (SCM). Marco has more than 11 years of experience in SAP implementations in the US and Europe. He is a graduate of the University of Applied Sciences in Saarbruecken, Germany, with a major in finance and a specialization in informatics. Marco specializes in the integration between the finance and logistics modules as well as international rollout projects in multi-cultural environments.
You may contact the author at marco.jordy@orbisusa.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.