Share this post:
Lack of knowledge about the general printing procedure in PPSFC.
Print, production order, CO04, CO04N, shop paper printing COR1, COR2, COR3, PPSFC, process orderReason and Prerequisites
Lack of background information on the topic order printing.
Manual on Printing PP-SFC
The following is a short description of how printing works for R/3
production orders (most of the points on Customizing are also valid
for print networks).
The description applies only to a limited extent to the printing of
inspection instructions and sample drawing instructions.
Shop papers printing can be triggered in transactions CO01, CO02 and
CO03 by selecting the 'Print' icon or by selecting the 'Print' function
in the menu functions.
Additionally, you can also trigger the printing of shop papers directly
in Transaction CO04.
Printing is carried out on the basis of table settings entered in
The customizing of print control is largely identical for production
orders, networks, process orders and the quality inspection.
The printout is created using a report. The print report uses the
functionality of SAPSCRIPT. Customizing determines which layout set
is used in which report.
As of Release ERP 2005 some documents can be printed as a PDF-based print form. The print report uses the the function of the PDF-based print output.
See the following table for information about which order documents are already available as PDF-based forms.
|Liste||PDF form||Print program|
Printing shop papers
1) General information
3) Print reports and SAPSCRIPT
4) Printing in the background
6) Further functionality planned
7) Most common errors
1) General information
You can trigger shop paper printing either from one of the production
order transactions or via a separate transaction 'Print shop papers'.
Shop papers are printed in the form of 'lists'.
A list is a separate printout of shop papers, such as a pick list, or
wage slips. Printing distinguishes between the following list types:
- General lists (eg. object overview, control tickets) that contain
information about operations as well as production resources and
tools for example.
- Operation-related lists (eg. time tickets, confirmation slips)
- Component-related lists (eg. pick lists, withdrawal slips)
- PRT-related lists (eg. production resource and tool overview)
This categorization does not limit the scope of customer print reports,
since print reports can use the entire order document in whatever form
A maximum of four lists are available for each list type. This means
that up to 16 lists can be printed per order. You can define any
sequence for printing the lists.
When you execute the print function, all released order objects have
the status 'printed' and are marked for the print output in the print
program. If all released and printable objects of the order are printed,
the order header also has the status 'printed'.
If you assign a new object to an order which already has the status
'printed', this status is deactivated and replaced by the status
'partially printed'. A subsequent partial printout of the order causes
those objects to be printed, in which the status 'printed' is not yet
Note: The order has the status 'printed' when all objects (operations,
components, etc.) specified have been printed. This means that even
partially released orders can have the status 'printed'. If another
operation from this order is released, the system changes the order
status to 'partially printed'.
NOTE: Object-specific print statuses are not displayed.
The Customizing settings for print control are saved in the following tables: T496B, T496D, T496T, T496F, T496R, T496N, T496P, T496V and T496Z It is not possible to maintain these tables directly, rather the entries are maintained using table maintenace dialogs that are carried out using the transaction named under "Maintenance interface for Customizing".
List descriptions (T496B - description of the lists)
You can identify a list using your list ID. There are at least 20 list
IDs available that are predefined. It is not possible to supplement or
change the list IDs. The list name can be specified for every list ID
used. For example, Liste LG01 with the list name 'Object list'.
Reference order types (T496B - document types)
For a special order type, you can specify here the reference
document type of the print according to which the paper in
question is processed.
When you do this, different order types regarding the print may
be controlled separately (masking is possible) or several
order types may be processed in the print in the same way.
Spool parameter for user (T496D - lists)
Here, you can define which lists are to be printed for a
particular user in a particular plant. The printouts are
object-oriented: There are general lists, which contain
information about all objects contained in an order and there
are object-specific lists (operation, component and PRT lists).
You can mask the entries for both user and plant. You can
specify what printer and which spool parameters are to be used
for each list. An entry with a masked user and plant, which
prints all lists on the LP01 printer, is delivered by default.
Here, you must maintian valid entries because otherwise a
termination occurs when you print.
You can also maintain language-dependent list descriptions in
this table (the descriptions are stored in the internal table
T496N). Note that the list description is then defined for
all entries of that order category.
Entries with "*" and so on can also be masked in this table .
List control for transactions (T496T - Transaction control)
Here, you can specify which lists are to be printed for
the order type to be printed, its plant, MRP controller and
The actual number of lists that are printed can be determined
from the intersection of the entries in question from
"Spool parameter for user" (T496D) and "List control for
The overview screen of the table displays information about
the print variant, the number of printouts, and whether the
control key is to be checked. You can specify the print variant
and the number of printouts in the detail screen of each list.
You can also specify a sequence priority for printing.
The lists are printed according to their
level of priority. The print variant is required to determine
which print report is to be used to print the list.
In this table you can also specify that notification messages
(for example, 'Order is already printed) should be suppressed
(only for production orders and network plans).
Note: You can only use the sort sequence if no time-out between
the computer and the printer occurred during printout. If a
time-out occurs, the system tries to print again after a
certain time has elapsed. This can mean, however, that the
system does not follow the sequence you specified.
Sometimes you can set the spool parameters in such a way that
the system prints the shortest list in the spool queue first.
You can avoid these cases if you use 'collective lists'
(no individual spool dataset for each list).
If you decide to do this,
you should deselect the indicator 'new list' in the
layout set control. Note that a 'collective list' can only be
printed if you have deselected the 'print
Printer specification (T496P - determination of output device)
In this table you can set the printer specification for the
reference order type, plant, MRP controller and document name. This setting controls whether the output device from the user master record, the output device from the print control for the user (see the settings in the "Spool parameter for user" folder) or the output device specified in the "Output device" parameter is used.
You can also set the "local printer" indicator.
This indicator specifies that the local printer that is defined is used when you print. However, the indicator is only taken into account when you print forms that are printed for a special work center, such as the time ticket or completion confirmation slip.
Form (T496F - form description of the list)
In this table you can specify per plant, reference order type
from T496B), list ID (eg. LG01-General list 01, LV02-
Operation list 02) and printer, which SAPSCRIPT
layout set is to be used. You can also specify how many
sections are to be printed on each page (only relevant for
time tickets, confirmation slips, goods issue slips, etc.),
whether a new list is to be created in the spool for each
list to be printed, whether bar codes can be printed and
whether the output should be displayed on the screen when you
reprint shop papers. You can go directly from this screen to
the SAPSCRIPT layout set maintenance.
You can mask the entries in this table.
As of Release ERP 2005, you can also assign PDF-based print
forms. Note that the print programm supports the PDF output.
You can go directly from this screen to the form builder.
Print programs (T496R - report control)
Here, you can specify per reference order type, list
description and print variant which print report is to be used.
You can mask the order type.
You can go directly from this screen to the ABAP editor of the
Moreover, if you print in the update task print, you can
specify the name of the relevant form routine to be used
(In the standard system 'PRINT_SUB' is used).
Table accesses (T496Z - table-controlled table accesses)
This table is used to obtain flexibility with regard to reading
tables. It enables you to read (ATAB) tables quasi-
automatically. This means that it is no longer necessary to
program a 'select' in the print report. The reading of the
relevant tables is generally triggered in the print report by
calling up the form routing 'GET_TABLES' with the print part
(H-Header, O-Operation, S-Sequence, C-Component etc.)
You consequently ALWAYS need the Include 'CODRGETT' which
contains the form routine. .
The work areas are defined by the generation of an include when
you save the T496Z table.This include contains the TABLES
statements and which consequently also has to be included in
the print report (Include CODRGTxx - xx = order category)
In Table T496Z you can also define that in the case of
no-record-found the arguments (maximum 4) are masked
successively. All the fields contained in the work area
declared in the print report can be key fields (logically also
ATAB tables previously read: in this case you can specify the
sequence of the read access in T496Z). For the initial import
of entries, use transaction 'COTB' (Import standard customizing
settings from client 0).
Flow control for transactions (T496V - default print)
Here you can specify per plant and transaction, whether the
system should print online, via the update task, or in the
background. You can mask the plant.
If you specify print via the update task (as opposed to online
or background print) for a particular plant and transaction,
the report is not started per 'SUBMIT AND RETURN' (this is
due to the fact that you cannot change the roll area in the
update program). Instead, it is triggered by calling up the
form routing of the print report specified in customizing.
If a form routine is not specified in customizing, the
form routing 'PRINT_SUB' is normally carried out. If this
form routine is not included in the print report, printing
is not carried out (The program d o e s n o t terminate in
this case. This means that a status update always takes place.)
The order category is contained in the table keys of all control tables.
This means that you can maintain print control parameters specifically
for production orders or for networks, etc. The table is also locked
at this level. It is therefore possible to process network print
control and production order print control in parallel (even though the
two are in the same tables).
Transaction OPK8 is used to maintain the print control of production
There are similar transactions:
- OPS0 Maintain print control for networks
- CQ85 Maintain print control for quality inspection
- CB85 Maintain printn control for process order
3) Print reports and SAPSCRIPT
These are triggered per 'SUBMIT (Report) AND RETURN' (for online and
background printing, see Customizing). For the update task print, a
central form routine is processed from the report. If a form routine is
not specified for the print program, the system tries to process the
standard 'PRINT_SUB' form routine.
The required information is transferred in the form of an internal
(dialog) table per memory. The structure of the tables remains the
same as the one used online. Consequently, all fields are already
formatted (even fields which are not formatted on the data base,
floating point fields, requisition numbers).
Internal tables are also transferred with the following information:
- material master views (structure MSFCV)
- work centers in question (structure RCR01)
- configuration of the finished product (structure SFC_CONF)
- calculated standard values
- objects to be printed (structure ITAB_TDR)
- all objects in the order (structure COBL)
The declaration of the tables is carried out in Include PPCOINCL.
The import of the tables is carried out in Include LCODRINC.
This means that both of these Includes need to be in every print report.
Every print report can access the entire 'order document', so that
all print modifications are open to the user (including header table
CAUFVD TAB with structure CAUFVD, sequence table AFFLD_TAB with
structure AFFLD, operation table AFVGD_TAB, component table RESBD_TAB,
PRT table AFFHD_TAB and item table AFPOD_TAB).
The standard system uses SAPSCRIPT layout sets to control the output.
By modifying the print report, you can also you can also control the
output using ABAP means (NEW-PASGE ...).
You must first copy the SAPSCRIPT layout sets into the current client
(Transaction SE71: Utilities -> Copy from client, enter name of layout
generically: 'PSFC* '!).
In the SAP standard system, the report and SAPSCRIPT are very closely
related. We therefore advise you only to carry out modifications if
you have detailed knowledge of both ABAP and SAPSCRIPT.
3.1 Print report and PDF-based print forms
The print program is called and the order data is transferred to the
report in the same way as when you use SAPscript forms.
The difference is that an activatated and PDF-based print form
corresponds to a function module that can be called in the SAP system.
This function module is called to display the form in the print
You can determine the name of the function module for a form by calling 'FP_FUNCTION_MODULE_NAME'.
The print program arranges the required data in the form as it should be transferred to the function module interface. Thus, the formatting of the data and the call of the PDF-based print form occur in the print program, and the output logic and the layout are saved completely in the PDF form.
4) Background print
You can print orders and networks in the background by using the
"Flow control" customizing function for transactions or by manually
activating the background print.
In both cases, the system creates background processing.
The lists to be printed cannot be restricted in dialog mode.
The background print indicators (in file AFBP) are evaluated using
special reports (PPPRBTCH, PSPRBTCH for networks) and trigger
the print of the corresponding orders/networks.
You can specify in the administrative functions of job scheduling that
the system should automatically start the jobs that start these
reports at periodic intervals (eg. daily, hourly or every 10 minutes)
(see the configuration menu for production activity control: Operations
-> Job scheduling). This means that you can also use the background
printing function on a productive site, since the maximum delay would
for example total 10 minutes.
Note: For Job scheduling reports, you need to create variants using ABAP report maintenance ('SE38').
You can also use an additional report (PPPRBSEL), which, like
Transactions CO04 and CO04N, selects the orders to be printed
and then prints them. You can also schedule a job for this report
(see Customizing). By using this function you could, for example, specify that all orders/networks are to be automatically printed in the evening, provided that they are 'released', but not yet printed (in contract to printing in the background, you do not need to create a print indicator in this case)-> Status selection schema.
5) Tips and Tricks
- When searching for notes, search under application area 'PP-SFC' (key word 'PPPR' and PSFC).
- Select the menu option Environment -> Settings in Customizing for a
summary of the print settings.
- Use transaction 'COTB' to carry out the initial import of standard
settings into your current client.
- If you use reports that are to read the order via the logical data
base, this is only possible with printing via update task (see
Customizing) and only as of 3.0.
- When you change releases, you should copy the standard layout sets
(PSFC...) again from client 000 to avoid program terminations.
6) Further developments
In general, print transactions are enhanced as
of 2.1J, 2.2C and 3.0.
- Configuration data included in shop papers
- Production memo of sales order is printed
- New customizing for print procedure (online or background)
- New report for printing in the background (also online) with
order selection as in transaction'CO04'
- Background printing reports included in the new customizing header
'JOB SCHEDULING' (Customizing production orders -> Operations
-> Job scheduling)
- As of 2.2, the system automatically searches for layout sets in
client '000', if they do not exist in the current client.
- Improved performance (SAPSCRIPT buffer, texts are read faster).
- Setting in Customizing: Online, update task or background
(printing via update task for reducing the load online.)
- Setting in Customizing: Suppression of print-relevant
messages ('Order already printed..', or 'Print already carried
- Setting in Customizing: Automatic print at time of order release.
- Revised evaluation report in Customizing (Operations -> Shop floor
papers -> Print control, and then Environment -> Settings)
- Possibility of branching to spool management from print
- Order print available in the form of the function module
'CO_DR_PRINT_ORDER_EXTERNAL'. This function module is used in
user reports in which orders (networks) are printed from an (ABAP)
list (for details, see the function documentation of the function
- BOM sub-items are available for standard report 'PPPRMBRL'
(they cannot, however, be printed out in a SAPSCRIPT layout set).
- Improved performance (regarding the processing of T496Z - table
- From within order Customizing settings displayed in the order
via the function 'Print info'. You can also branch to Spool
administration from print transaction.
- Revision of the standard layout sets (PSFC...)
- New: Goods receipt list for co-products and components with
negative quantities (simple manufacturing of co-products)
7) Most common errors:
- Print error in SAP standard settings. For example, printer
'LT5B' has been entered but does not exist.
(check: Environment -> Settings)
- No storage location on the pick list and goods receipt/issue slip:
replace 'RESBD-PLPLA' with 'RESBD-LGORT' in the affected layout
- Print error because language was not specified when starting the
layout set (corrected as of 21H)
- Print error when printer is changed in list control(corrected 21I)
- Error in list control: List control is displayed for each order to
be printed. As of 2.1I, there will be a separate screen in the
printing transaction where the orders to be printed are processed
only once. In addition, there is a new indicator in the list of
orders which you use to specify that an error occured for an order
in print control (corrected as of 22C).
- No user statuses could be set through printing although an
operation 'print' exists (corrected by 2.1J or 2.2B).
- When printing in the background, the lists created are allocated
to the background printing report and not to the person who
printed. (development request for Release 3.0 in process)
- No operation times: Until 21J/22C, you could not print any times
without activity types. As of later releases, you can enter a
formula in the work center without an activity type. This formula
can be used to calculate also without activity types times for
time tickets, for example.
- Additional fields in material master are printed as of 21J, 22D
and 3.0. View MC29S is also read. The customer must also enter
additional fields in structure SFOMATDR (per repository) using
the same name (see correction).
- Release 2.1: error printing from the planned order - solution:
in LCODRU16 and LCODRINC, replace memory with memory ID 'PPR'.
(corrected in 2.2 and K11 as of 2.1J).
8) Notes entered to date
0017627 PPPR: Co-products on pick list
0017477 PPPR: Require additional fields from material master
0017180 PPPR: Missing authorization check in printing
0016956 PPPR: Maintain CUA status completely on screen 111
0016855 PPPR: Spool retention period lost in printing
0016473 PPPR: Standard times missing in printing and confirmation
0015484 PPPR: No user status set when printing
0015460 PPPR: Layout set printing in production
0015422 PPPR: Date selection in printing transaction
0015418 PPPR: Pick list-printing deleted item
0015306 PPPR: Error when printing production note
0015046 PPPR: List control error when printing from overview
0013057 PPPR: Syntax error PPPRSTEU TCF10-XDRUCK not defined
0012163 PPPR: Printing data from table AFPOD
0011104 PPPR: General note for printing production orders
0010573 PPPR: Error E427 - layout set not available for printer
0009759 PPPR: Incorrect table descriptions in SAPLCODR 300 and 400
0009393 PPPR: Customizing print control
0009396 PPPR: Printing orders - lists are not printed
0008763 PPPR: Cancel printing with 'OPEN_FORM not permitted'
0008698 CO04: Printing production orders: open_form missing
Last changed: April 2005 (SAP does not accept any responsibility for the accuracy of the information).
Key word: PPPR, PSFC, PPPI, PP-SFC-EXE-PRINT, PP-SFC-ADB-PRN