Learn about the main customizing settings to set in the materials management (MM) module to activate message determination functionalities.
Key Concept
Output is a form of media from a business to one of its business partners. The possible media forms are printouts, faxes, telexes, emails, and Electronic Data Interchange (EDI). The output can be sent to any of the partners defined in a business document or to an internal organization. Outputs are usually in the form of order confirmations, delivery notes, good receipts, invoices, and shipping notifications. The message determination is the prerequisite to generate a message (output) in an SAP system. The message determination is part of the Cross-Application Component (CA-Message Control). The generation of a message is based on the message determination. A company I once helped wanted to set up a process to handle return deliveries to vendors due to quality reasons. It wanted to be able to send a message to its buyer, who is usually the person who created the purchase order, if an item needed to be returned. An email would go to that buyer after the goods receipt was posted in blocked status in the SAP system, to prepare for a return delivery. The buyer then would check the contractual terms and conditions to see if an extra charge (perhaps due to damages to the company’s production caused by the delay, reimbursement because payment was already made for the item, or reimbursement for the cost of returning the item) to the vendor was included in the agreement.
My client could have used custom tools or systems to generate a message (output) in its SAP system, but I came up with a better idea — use of message determination. It did not require the company to develop custom programs or external systems, such as external interfaces to and from the SAP system. I provided solutions that I had implemented before in production environments for message determination in the case of a vendor’s return delivery in SAP ERP Central Component (SAP ECC) 6.0. The processes also apply to previous versions. The guidelines to customize the Message Control functionalities in materials management (MM) also apply to other SAP modules. In my example, the automatic output type creation is an internal email message to the buyer to follow up on the return delivery.
Overview of Message Control
Message Control (also identified as output control or condition technique) is a Cross-Application Component embedded in the system across modules to generate outputs. The most important applications of Message Control are in the MM and sales and distribution (SD) modules. The Message Control is used for pricing, account, and output determination. The basic concept behind Message Control is to generate and manage outputs from an application and control their timing and medium of transmission. In Figure 1, you can see the overview of the relationship between an application and Message Control.

Figure 1
Outputs managed by Message Control
The actions you can perform with Message Control are:
- Automatically propose output based on specific business rules specified in Message Control
- Disconnect the process of creating an application document (i.e., vendor’s return delivery) from the process of generating outputs
- Override the automatic proposal. In customizing, you can define the default values for the output type, and then during the applications processing you can overwrite those proposals.
- Manually select an output (i.e., in case of internal notifications for immediate actions)
- Generate multiple outputs (i.e., fax, print, email)
- Control the timing, medium, and language of the output
- Retransmit an output
- Monitor an output from an application document or other standard tools
Figure 2 shows the roles of the various components that are relevant in generating an output in the Message Control system.

Figure 2
The Message Control components
Customizing Details
You need to take these main customizing steps to implement Message Control. As a prerequisite, you must set up the application-specific part — in this example, the return delivery — before beginning the customization.
Step 1. Define the printing document items. The print item indicator can be defined in customizing and indicates whether a material document item can be printed with a certain movement type. It also determines which type of goods receipt/goods issue (GR/GI) slip (for example, GR slip, GI slip, return delivery slip, label) is printed. Define one of the generic parameters used in other customizing transactions to identify the document to which you want to apply a specific output (i.e., print, email, or fax). For the purposes of this article, treat the settings as relevant for the return delivery document. The print item associated to this document is 2, but if needed (e.g., if the current values have already been used to cover different business cases) you may also create your own values (Figure 3). 2 is used to determine whether a material document item can be printed with a certain movement type and determines which type of GR/GI slip is printed. Those settings are shown in Figures 3 and 4. Use transaction OMBR or follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Print Control > General Settings > Item Print indicator.

Figure 3
Printing document items

Figure 4
Specify Movement 122 as relevant for Return Delivery
Step 2. Link the printing document items defined in the previous step to the specific movement types used to perform a specific business transaction (i.e., return delivery). The print indicator is required for printing goods receipt documents. To apply this setting, use transaction OMB5 or follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Print Control > Maintain Print Indicator for Goods Receipt Documents (Figure 4).
Step 3. Create a condition table to define the parameters used to trigger a specific output type. The condition table is required to create the access sequence in the next step. Use transaction M703 or follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Output Determination > Maintain Condition Tables.
Select the fields for your condition table from the Field Catalog on the right side of the screen, double-clicking them. Then the system reports them into the selected fields on the left side of the screen. SAP reserves number range 9xx for the customer. In my example, I created two condition tables, 998 and 999, shown in Figures 5 and 6, respectively.

Figure 5
Create condition table 998

Figure 6
Create condition table 999
Step 4. Define an access sequence for every condition table. The access sequence is necessary for the definition of the output types. The access sequence defines how the system looks for condition records. In this example, the system looks first for a condition record with Tr/EvTypes/Version/Print/Plant, then for a condition record with Tr/Ev.Typs/Plant. In general, you define access sequences from specific to general. In this case, you create a new access sequence and link it to the condition tables created in the previous step. To create an access sequence, use transaction M710 or follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Output Determination > Maintain Access Sequences. To use the print item shown in Figures 3 and 4, enter Z001 in the Access sequence field and put 998 in the first Tab column, which includes as a key the print field, as shown in the description of the condition table 998 in Figure 7.

Figure 7
Create the access sequence
The relevant fields in Figure 7 are:
- The first column AcNo (Access Sequence Number) represents the priority the system uses to search for condition table. The system first searches the most restricted combination, represented by the condition table 998, and then goes to the table 999.
- Tab: Condition table – You create condition tables 998 and 999 and the system automatically generates the database tables B998 and B999. The generation of new database tables makes this customizing cross-client.
- Requiremnt: It is an ABAP/4 program that can be visible and maintained using the transaction VOFM, which provides more granular pre-conditions to fulfill in order to generate an output. For example, an output message should be sent to the appropriate receiver only if there is a block in the purchase order line item.
- Exclusive: If this box is checked, the system exits after the first match of the rule against the condition records (discussed in step 7).
- Note that this example has only two condition tables, which this means that the second exclusive flag for condition table 999 is redundant. Based on my configuration, the system generates only one output message.
Step 5. Define the output type. The output type is the central object for message determination. It puts together all customizing steps from the previous steps plus additional standard SAP objects (such as programs, forms, and routine). For this specific case, create a new output type to use specifically in case of return delivery creation.
In this case, I discuss only the tabs that have fields valuated. To create an output type, you can use transaction M706 or follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Output Determination > Maintain Output Types. Notice the following main objects in Figure 8:
- Access sequence Z001 represents the search sequence for the condition tables
- If the Access to conditions check box is selected, then the values are determined from the condition records using the Access sequence
- If the Multiple issuing check box is selected, then the system permits multiple outputs
- In the Replacement of text symbols section, enter program SAPMM07M (Module Pool for Goods Movements) to create or change output text symbols
- The processing program uses FORM routine TEXT_FEHLT_FUELLEN to populate a field’s values with global data. For example, say you populate field MSEG-EBELN with the appropriate purchase order number document. This means that the form routine has replaced the text field MSEG-EBELN with the appropriate purchase order document number.

Figure 8
Output type for general data
Figure 9 shows the default values for the output type.

Figure 9
Define default values for message records relevant for return delivery
For my example I specified the following details:
- Dispatch time 4 means that as soon as the document is saved, the output type is created. Other possible ways of generating an output are in batch or by a user’s request.
- Transmission Medium 7 means that an SAP office mail is generated as the transmission medium of the output type. Other possible transmission mediums are shown in Figure 1.
- Partner function ZP identifies the message receiver
During partner determination, a table of partners that contains the partner functions and partner numbers is transferred to Message Control by an application — in this case, during the creation of a material document in MM. As a result, you only enter the partner function in the condition record because the partner number is taken from the table of partners and transferred to the message status record during message determination. The recipient of the message is therefore known. However, it is also possible to define a partner number in the condition record. This number overrides the values found in the table of partners. Figure 10 shows the default values for the output type.

Figure 10
Output type of mail data
In my example I specified the following details:
- Document name — the object name of the SAP email that the user receives
- Priority — the field Priority can be used as sort criteria in the SAP inbox to better follow up on incoming messages
- Program — The SAPMM07M program creates or changes execution parameters
- FORM routine — The processing program uses TEXT_PARAMETER to populate the field’s values with global data. For example, the TEXT_PARAMETER FORM routine populates the field MSEG-EBELN with the appropriate purchase order number.
Figure 11 shows the default values for the output type. Here, the document title is the subject of the email and the text is the body of the email.

Figure 11
Output type for email title and texts
In my example, I specified the following language:
- EN: e-mail for return delivery to the vendor
- IT: e-mail per resi al fornitore
You can specify as many languages as you need. SAP derives the language for a specific output from the country code of the vendor defined in the vendor’s master (address view). Then double-click the text icon in Figure 11 and you see a screen similar to Figure 12. Here, you can create the texts that are visible to the receiver in the body of the message of the email.

Figure 12
Output type – details of the body’s message
Basically all fields included in purchase order and material document can be output in a message. To include the appropriate fields in the message, follow menu path Insert > Symbols > Program Symbols, then select the program SAPM07M (recognizable by the description Module Pool for Goods Movements). This module pool is linked to all MM transactions used for goods movements. Choose the DDIC Fields option. The system shows the list of the tables/structures as listed in Figure 12. Pick up the tables by selecting the Print Program SAPMM07M shown in Figure 13. The Dialog Control Fields for Module Pool SAPM07M is the Structure DM07M.

Figure 13
Output type of general data
In Figure 14, you can see the program and form used to process the output. In this case, the program and form are used to generate an internal SAP email to the appropriate recipients.

Figure 14
Output type of processing routines
In Figure 15, you define the permitted partner functions that could be used for the output Z001.

Figure 15
Output type of partner functions
Step 6. Update the output procedure. After the creation of the condition type, you should link it to the determination procedure used in the Inventory Management (IM) module. Otherwise the output will be invisible to IM. An output determination procedure groups together all output types of an application. The output determination procedure ME0001 is predefined in IM.
In the output determination procedure, you can enter a requirement for individual output types that must be fulfilled for the output to be created. To update the output procedure, you can use transaction M708 or follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Output Determination > Maintain Output Determination Procedures, as shown in Figure 16. Here, you can see the output Procedure used in the sub-module IM of ME0001. If a condition type is marked as manual only, it cannot be used for an automatic proposal.

Figure 16
Update the output procedure
Step 7. Maintain the condition record. Via transaction MN21 users can maintain the condition under which the message determination occurs if the values match those stored in the application document (in my example the Vendor’s Return Delivery). Alternatively, you can follow menu path SAP Customizing Implementation Guide > Materials Management > Inventory Management and Physical Inventory > Output Determination > Maintain Conditions. The details of this transaction are shown in Figures 17 and 18.

Figure 17
Maintain condition record — selection screen

Figure 18
Maintain condition record — details
The print version indicator can be maintained at the user ID level using Parameter ID WEV.
Additionally, the value of the partner function has been populated with the user ID I’m currently using, but in the real life it represents the appropriate receiver. Figure 18 shows how to set up the message determination to send a message to a specific user. You should set up the system to send a notification to the buyer who created the purchase order. To do so, specify the email address of each buyer and do not specify any partner function during the partner determination setup (Figures 19 and 20). In this case, it was taken from the user master (transaction SU3), but in other cases (such as workflow) it can be taken from the purchasing group details. In this case, the system sends a message to the person who created the purchase order, usually the buyer. If the email address has not been specified in the purchasing group, then the system takes it from the user master as the sender email ID for purchase orders.

Figure 19
Maintain buyer’s email address

Figure 20
Maintain condition record for the GR message
Note
If you need to notify your buyers using your company’s email system (such as Outlook or Lotus Notes) then you should contact your Basis team that has to configure the communication between the SAP system and your system’s email system.
Transaction NACE (Conditions for output control) is the central customizing transaction to monitor customizing objects needed for implementing the whole process described in this article (Figure 21).

Figure 21
Monitor the main Message Control components
After you have provided all the most important objects relevant to the Message Determination, the components used in Message Control propose outputs. Figure 22 shows the components used in Message Control to propose outputs.

Figure 22
The Message Control components
The application program fills the communication structure with values from the application data entered on the transactional screen (i.e., Return delivery creation). The Message Control receives this communication structure (i.e., DM07M) along with the application ID (i.e., ME) and procedure (i.e., ME0001). Then the system compares the values stored in the condition records with the one specified in Message Control. It also checks the pre-conditions stored in transaction VOFM. The system does it automatically but a developer should develop any routine needed by the business. If there is a match the system updates table NAST. The entries in this table are processed by standard program RSNAST00. Table TNAPR contains the program used to process an output type. In this case this table contains the following entries:
- Output type: Z001
- Medium: 7
- Application-ID: ME
- Program: RSNASTSO
- Form routine: SAPOFFICE_AUFRUF
Then as output of the message processing, the system generates the appropriate message (i.e., SAP mail).
Customizing Testing
Here is how to post a return delivery against a goods receipt and verify that the message is created in the SAP inbox of the receiver.
Step 1. Post the return delivery. You can see the material document number created for the goods receipt document number (in my example 5000000073 was the document number assigned to the goods receipts, while 5000000074 was the document number assigned to the return delivery) via purchase order history using transaction ME23N. The first number represents the goods receipt material document while the second one represents the return delivery material document. Then use this number to process the return delivery via transaction MIGO. Use transaction MIGO movement 122 or follow menu path Logistics > Materials Management > Inventory Management > Goods Movement > Goods Movement. Then, search for your document using the appropriate selection criteria (based on your needs). Figure 23 shows the details of the output automatically created for the return delivery material document.

Figure 23
Display output processing log for material document
Step 2. Check the SAP inbox after the document creation via transaction SBWP or by following menu path SAP menu > Office > Workplace (Figure 24).

Figure 24
SAP email details
Note
Here are the main SAP notes that can be helpful in retrieving additional details on the output determination procedures in SAP IM.
193250 — Partner func for vendor/cust. in inventory management
207326 — Field 'Created by' (ERNAM) is not filled
205450 — GR/issue slip although indicator 'Print' not set
301855 — Document type MMIDELNTOR cannot be customized
426648 — Missing part mail checklist for goods movements
426554 — Output determination checklist for goods movements
522591 — FAQ: IM output determination
411013 — Additional documentation on output determination in MM-IM

Gaetano Altavilla
Dr. Gaetano Altavilla is a senior SAP practice manager. His focus is on pre-sales, delivery of SAP application solutions for large international corporations, and SAP knowledge management in Europe, the Middle East, and Africa (EMEA).
In his 18 years of SAP application experience working for many multinational companies, such as Procter & Gamble and Hewlett-Packard, he has covered a wide range of ERP logistic areas, focusing on the MM, WM, SD, LES, PP, PP-PI, PLM (QM, PM, PS) modules, as welll as CRM (TFM), SRM (EBP), SCM (SAP APO), and MES (ME) components.
Dr. Altavilla holds a degree with first-class honors in mathematics from the University of Naples and is certified in many SAP modules: SAP Logistics Bootcamp, SAP MM, SD, LE (SHP/WM/LE), PP, PLM (PM, QM, PS), SRM, CRM, SCM (APO), SCM (TM), FI, CO, and Solution Manager. He also has experience in ABAP/4 and application link enabling (ALE) and IDocs. He has participated in numerous industry conferences, such as the SAP Skills Conference in Walldorf at SAP SE.
You may contact the author at Gaetano_altavilla@hotmail.com.
If you have comments about this article or publication, or would like to submit an article idea, please contact the editor.