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.