When you create a sales document, for example, if you omit the purchase order number, the incompletion log shows an entry for the sales order. The completeness of a given document drives the status of the document and allows you to control the further processing of this document. Without the purchase order number referenced, the payment might be delayed. Similarly, if shipping-related information is omitted, you may be unable to plan and ship your product, or if pricing is omitted, you may be unable to bill the customer correctly.
Incompletion can be configured with the definition of incompletion rules and their assignment to appropriate business processes and functions. It forces the system to capture the missing data before it can move to the next step in a given process and provides a report to help identify missing important data or information for order processing.
This useful tool is underused, as it is not well documented. Few users understand it fully even though it has been available since Release 3.x. I’ll clarify the linkage between the configuration settings and the business application of this functionality. I will walk you through the basic configuration settings for an incompletion log and procedure and their assignment to an appropriate area, object, or business process to achieve your business requirements. I’ll then detail the execution of properly defined incompletion procedures. The last section of the article is an example of an advanced application.
Log Configuration
You can configure SD to indicate when a sales document or activity is considered incomplete and should be held from further processing. You can maintain the incompletion log as a procedure for sales document header data, sales document item data, sales document schedule line data, sales activity data, partner data in sales documents, deliveries and sales activities, delivery header data, and delivery item data. You can create as many procedures as you want based on your business requirements, and assign them to the appropriate areas.
You reach the configuration steps via menu path Customizing (SPRO)>Sales and Distribution>Basic Function>Log of Incomplete Items or SPRO>Logistics Execution>Shipping>Basic Shipping Functions>Incompletion Control for Deliveries. The process has three steps and it is better to work from the bottom to the top to the middle (referring to how they are shown in the IMG in Figure 1). Let’s start with the status group.

Figure 1
Three configuration steps shown in the IMG
Step 1. Define Status Groups
Status groups control the processing of the incomplete sales and distribution documents. They are then assigned to the appropriate incompletion procedure. You can use this status group to tell the system what you would like it to do when it encounters incomplete data, such as stop creation of the delivery or billing document. Figure 2 shows the supply chain processes you can influence based on the status group (General, Delivery, Billing doc., Price, Goods movement, Picking/putaway, Pack, and PGI).

Figure 2
Three configuration steps shown in the IMG
You can manage status groups based on the areas you want to apply. For example, say you have a status group for sales order that allows you to create billing documents without entries for the sales order number. You could stop delivery notes lacking sales order numbers from being created.
Step 2. Define Incompleteness Procedures
Here you define the procedure to apply to the specified areas or objects. List all the fields you would like to check for completeness. If any one part or all of the data is not maintained, this procedure considers the function or activity incomplete.
Follow these steps:
Step 1. Click on Define Incompleteness Procedures. You see the structure shown in Figure 3.

Figure 3
Define the incompletion procedure
Step 2. Select a group and click on the Procedures folder. This brings up the screen shown in Figure 4.

Figure 4
Incompletion procedure under item groups
Step 3. Select procedures within the error group sales item (B). Let’s select a few of the standard-delivered procedures and see what fields are checked for completeness. Figure 5 shows the fields being checked for the procedure number 43 within the error group B (sales item).

Figure 5
Assign fields to check for completeness
Step 4. Assign the fields to check for completeness. These fields are part of the table and you must also mention the screen on which the users would see the incomplete status. You also assign the status group you defined earlier. You can tell the system to provide a warning message by checking the check box for the flag in the Warning column.
Figure 6 displays another error or incomplete log. This is applied to standard item category (TAN) and has different sales order table fields, for example, VBAP (sales order item) and VBKD (business data).

Figure 6
Review list of fields to check
Step 3. Assign Incompleteness Procedures
Assign the incomplete procedure to the appropriate object or area. When you click on Assign Incompleteness Procedures, the Choose Activity screen pops up (Figure 7).

Figure 7
Assign incompletion procedures
As listed in the pop-up, you can assign an incomplete procedure to sales document types, item categories, schedule line categories, partner functions, sales activities, delivery types, or delivery item types. Figure 8 shows the procedure assignment for sales order document item categories.

Figure 8
Incomplete procedure assignment to Sales Document Item Categories
As you complete the assignment, when this item category is determined in the sales order, these incompletion procedures will apply. The system takes action based on the status group (stopping the delivery note creation if the sales order is incomplete in my example).
Using Your Incompletion Procedures
Let’s look at an incomplete document. In Figure 9, I attempt to save a quotation, but alas — it is incomplete.

Figure 9
While saving an incomplete quotation, you see this pop-up
I get a pop-up window saying, Document incomplete. Would you like to save or edit the incomplete document?
I could save the quotation or click on the Edit button to view the data that I need to populate to make this document complete. If you click on the Edit button, you see the list of items that needs to be populated or filled to make the document complete (Figure 10). Or you can save the document and come back to this document later to complete the information. Use the change document (in this case quotation, with transaction VA22) and go to Edit>Incompletion log (Figure 11).

Figure 10
View the list of items in the Incompletion Log

Figure 11
List all items in the Incompletion log
You can double-click on the items listed and the system takes you to the relevant screen for populating this information.
If you click on the Save button, it saves the document but stops you from processing the document further. Let’s say you save this document and try to create a sales order referencing this quotation. You’d get an error saying that the reference is incomplete and cannot be copied or processed further (Figure 12).

Figure 12
Error while creating a sales document with reference to an incomplete quote
You can also use transaction V.02 to run a report to list all incomplete SD documents (Figure 13). You can run this report based on the status group process setting in the configuration and the effect it has in the further processing (stop delivery create, stop billing). You can run this report for different SD transactions (sales order, inquiry, quotation, scheduling agreement, contract, item proposal, delivery, billing documents, proforma invoices, sales activities, sales promotions, customer independent requirements, shipping notification, and rough goods receipt and cost accounting: variance calculation).

Figure 13
Choose incomplete SD documents to display in a report
Figure 14 shows the output of the incomplete SD document report. Double-click on a Sales Document Type in the list to view the list of incomplete items. This opens up the document and allows you to complete or update the document and save it. Or you can select the Sales Document Type and click on the Edit incompletion button to perform the same task.

Figure 14
Review output in report Incomplete SD Documents
Get More Out of Incompletion Functions
In the above configuration, I controlled the further processing of the document based on a piece of data missing in the table field. As an extension of this function, you could use incompletion procedures to control the shipping process with reference to another process (i.e., determine whether the system can process a document further can be dynamic, based on another process).
I’ll use an example of an SAP R/3 or mySAP ERP interface with Global Trade Services (GTS). In this example, GTS is interfaced with the ERP or SAP R/3 system of a trade (export/import) business partner for document compliance checking, customs communication, and risk management. Let’s take an example of export sales orders. When these export sales orders are created in the SAP feeder system, they are sent to GTS for export compliance checking.
Let’s say the sales order is blocked due to trade regulations and the business would like to stop further processing of such documents. The next step would be to create a delivery note, which in turn allows the physical shipment of the product or goods to the customer. Before processing the sales order for shipment, the SAP feeder system sends a request to the GTS system for an export compliance check. Trade experts or business users conduct the review of the compliance issues and resolution in the GTS system.
The feeder system processes the sales document and compliance check, and GTS releases the document after the review. The order management or warehouse team processes the order in the SAP feeder system and the GTS users review and resolve the regulatory issue. As these activities are done by two different groups of users, they happen separately. However, the processing of the order in the SAP feeder system cannot occur until the compliance check from the GTS is complete.
The delivery note creation process should contain a dynamic check of the status with the GTS to find out if it is allowed to create a delivery note. The SAP feeder system uses a remote function call to call the GTS and check the document for compliance. The return status based on the GTS check influences the dynamic incompletion check that you can configure. In SAP R/3 or ERP you have a structure V50UC, in which you can append customer-specific fields. You can use these fields to dynamically update this structure. You must use V50UC (Add Field) to modify the SAP feeder system structure by adding a GTS status update field. The following is specific advice to tailor the configuration steps detailed above to this GTS change:
Step 1. Define status group. Give it a GTS-like name such as GT or SL (the system only allows two-character entries).
Step 2. Define incompleteness procedure. Go back and click on the customizing entry Define Incompleteness Procedures. Highlight the Error group (Figure 15). Find the SAP-delivered incompletion procedure and define a GTS-specific procedure.

Figure 15
Define the GTS-specific incompletion procedure
Step 3. Assign incompletion procedure. Highlight the GTS Incompletion procedure and double-click on Fields. The screen shown in Figure 16 appears. Click on the display/change icon if you are not already in change mode. Enter the structure V50UC
under Table, your GTS-named field (e.g., SLLST
), and the status group just created above (e.g., ZG
or GT
).

Figure 16
Add fields to the incompletion procedure
When the sales orders are processed, in this case when the delivery is created in the feeder, it makes a Remote Function Call (RFC) to the GTS. Based on the return code, the system returns a complete or incomplete status into the internal structure V50UC. The return code back from the GTS updates the status with a block or not block code.
If you have a block status back from a GTS call during the delivery note creation, you blank out this field. If it is not blocked, you fill in this field with an X, allowing the SAP feeder system to create the delivery. The delivery note program checks structure V50UC with the customer-specific field for GTS during the creation or change (pick, pack, and post-goods issue). If it finds it filled, it allows it to process through. If it finds it blank, it stops the delivery note creation.
Note
You need to add or append the GTS field SLLST to the structure V50UC to make it available to add into the procedure. Do this by changing the structure and appending the field.
Note
SAP note 158807 documents specific instructions for making non-dynamic adjustments to process flows.