See how you can use the incompleteness procedure along with the application log to quickly find incomplete transactions in SAP CRM. This process provides similar functionality to the R/3 Sales and Distribution transaction V.01.
Key Concept
The incompleteness procedure is a list of incompleteness checks against fields contained in a transaction. You can use it to influence the warnings or error messages that the system should identify and write to the application log during transaction processing. You assign an incompleteness group containing one or more incompleteness procedures to a transaction type or item category to identify all the relevant checks that the system should perform in the transaction.
Recently, I received an email inquiry from a former student who was in search of a comparable transaction to the V.01 transaction in R/3 Sales and Distribution (SD), which displays a list of incomplete transactions. He needed a way to quickly retrieve a list of incomplete sales orders from the SAP CRM system. He described to me a very painful situation in which an auditor had to go through each of the previous day’s sales orders to verify them for completeness and make sure they were free of errors. For example, the auditors had to check that all sales orders had a purchase order from the customer before the order was considered complete in the system and relevant for further processing.
As I thought about possible solutions for this problem, I remembered an exercise from the transaction processing unit of my recent CR100 CRM Base Customizing class that dealt with the incompleteness procedure. Using the incompleteness procedure, you can define when the system should consider a business transaction incomplete and what message type the system should issue to the application log during data processing — for example, an error or warning. You can restrict the incompletion check to individual transaction types, item categories, or a combination of transaction types for an individual business partner.
The scope of the check can differ for each object. For example, the system may check different fields in a sales order than it checks in an opportunity. Also, for the same transaction, you may have special requirements for individual business partners that include a mandatory field, such as a PO number that is always required when creating a sales order for customer number 414475.
Although transaction V.01 is not available in SAP CRM, you can obtain the same list of incomplete sales orders by using the application log (transaction SLG1) in combination with a defined incompleteness procedure associated with your sales order transaction types. I’ll explain how to set up the incompleteness procedure and then show you how it works with the application log. This process applies to SAP CRM 3.0 and later.
Define the Incompleteness Procedure
To set up the incompleteness procedure, follow these six steps.
Step 1. Define an incompleteness group for business transactions and items. Follow IMG menu path Customer Relationship Management>Basic Functions>Incompleteness>Define Incompleteness Procedures>Incompleteness Group: Transaction/Item. The incompleteness group is a container that allows you to connect one or more incompleteness procedures to a single transaction or item category. To define a new group, click on the Create button. In the IncompGrp field, provide a four- character code (e.g., SOIC
) and in the Description field, add a meaningful description for the incompleteness group (Figure 1).

Figure 1
Create the new incompleteness group SOIC
Step 2. Define an incompleteness group for business partners. To categorize the completeness checks that the system should perform for certain customers, you can define an incompleteness group for business partners by following menu path Customer Relationship Management>Basic Functions>Incompleteness>Incompleteness Group: Business Partner. Then, assign business partners to incompleteness groups in the Sales tab as shown in Figure 2.

Figure 2
Assign business partner 3271 to the First BP Group incompleteness group (HTX1)
Step 3. Assign transaction types to the incompleteness groups. Follow IMG menu path Customer Relationship Management>Basic Functions> Incompleteness>Define Incompleteness Procedures>Assignment Transaction Type – Incompleteness Group. All transaction types with the same incompleteness group have the same conditions that are valid in the incompleteness check. If I want my new incompleteness check for a valid purchase order number to apply to all my sales order transactions, I assign the incompleteness group to each of my sales order transaction types. For example, in Figure 3, I assigned the incompleteness group SOIC to the standard telesales order (TA).

Figure 3
Assign the standard telesales order TA to the new incompleteness group SOIC for sales orders
Step 4. Assign item categories to the incompleteness groups (optional). Perform this step only if you do not want the incompleteness check to apply to all the items in the order. Follow IMG menu path Customer Relationship Management> Basic Functions>Incompleteness>Define Incompleteness Procedures>Assignment Item Categories – Incompleteness Group.
All item categories with the same incompleteness group have the same conditions that are valid in the incompleteness check. This means that I can define the required information for an item in a sales order independent of the transaction type or other items in the order. Therefore, if I want my new incompleteness check for a valid purchase order number to apply to certain special item categories, I assign the incompleteness group to each of those item categories. In my example, I assigned the standard item category for sales items (TAN) to the incompleteness group SOIC (Figure 4).

Figure 4
Assign the incompleteness group SOIC to item category TAN
Step 5. Define the incompleteness procedures that are valid for the sub- objects of a transaction. Follow IMG menu path Customer Relationship Management>Basic Functions> Incompleteness>Define Incompleteness Procedures>Incompleteness Procedure> Incompleteness Procedure: Detail.
In an incompleteness procedure, you can group fields together that you want to check for completeness — for example, sales data (SALES) or product data at the item level (PRODUCT_I). If you do not enter data in any of these fields in the business transaction, the transaction is considered incomplete. For each field in the procedure, you must also define whether the message issued to the application log during data processing should be a warning or error message (Figure 5).

Figure 5
Select the type of message the system should send to the application log if it encounters an incomplete procedure
Step 6. Set the incompleteness procedure determination. Follow IMG menu path Customer Relationship Management> Basic Functions>Incompleteness>Define Incompleteness Procedures>Incompleteness Procedure>Incompleteness Procedure: Determination.
In this step, you determine the business transactions to which the incompleteness procedure should apply. If you do not assign an incompleteness group for business partners to an incompleteness procedure, the system carries out the incompleteness check every time the transaction is processed for all business partners. In Figure 6, I restricted the incompleteness checks within the transaction incompleteness group SOIC (sales orders) to the business partner incompleteness group HTX1 (First BP Group).

Figure 6
Define when the system should determine the incompleteness procedure
When you assign an incompleteness group for a particular business partner in step 2, the incompleteness procedure is only valid for the business partner’s master records associated with that incompleteness group. Only the fields from the incompleteness procedure for the business partner are displayed as incomplete. Now that I have defined all of the pieces necessary to link my incompleteness procedure to the group of transactions for which they are appropriate, let’s turn our attention to the application log.
Application Log
The application log (transaction SLG1) collects messages, exceptions, and errors that occur in most CRM and ERP transactions. In Figure 7, which shows the CRMD_ORDER transaction, the application log displays only the messages that pertain to this transaction or sales order object in general. You can then filter messages within the application log using the object name, sub-object, external ID, user, transaction code, and program with time restrictions and severity of the message (Figure 8).

Figure 7
Click on the circled application log icon to display the application log in a sales order transaction

Figure 8
The selection report set to display all application messages related to the object CRM_Document
The application log contains critical information that can affect how the sales orders process. When used with the incompleteness check, the application log allows you to write custom warning and error messages that enable the administrator to check for any incomplete sales orders using just one transaction, as shown in Figure 9.

Figure 9
All incomplete sales orders displayed in transaction SLG1
With this information, you could identify users who need additional training. You could also use the information to improve business processes. Finally, you can extract the application log data to SAP NetWeaver Business Intelligence (BI) for more complex analysis.
Matt Mantooth
Matt Mantooth is an education consultant at SAP in the areas of SAP CRM, SAP NetWeaver Application Server, SAP ECC, SAP ERP HCM, and SAP NetWeaver BW. He has more than eight years of SAP CRM and technical consulting experience. Matt holds an SAP CRM 7.0 associate level certification and a bachelor’s degree in information systems from the University of Alabama, Birmingham.
You may contact the author at matt.mantooth@sap.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.