This blog is mainly talking about the print program restrictions mentioned in note 2294198 – SAP S/4HANA output control – customized forms.
The purpose of this blog is to help more customers to have a better understanding on the restrictions.
In generally, the print programs can only be used when the application previously used NAST.
For any other framework a report cannot be maintained.
Here I would like to explain a little bit more details regarding the restrictions:
1)The program must only send the rendered document to the spool (from where output control will fetch it).
->This part means the program could only be used to render the document. Nothing else.
2)The program must set UUID of the output item as the title of the spool request (RQTITLE).
This UUID is available as NAST-TDCOVTITLE or as importing parameter IS_OR_ITEM-KEY of method RENDER_DOCUMENT_LEGACY.
->The sample coding is below:
CL_APOC_LEGACY_OM_NAST=>MAP_OR_ITEM_TO_NAST line 78ff
es_tnapr-nacha = ‘1’.
es_nast-tdcovtitle = is_or_item-key. ” Spool description
3)The program must not perform any other output.
->As similar to restriction 1), the print program could only be used to render the document.
It is not allowed to send an email or trigger other low level APIs to send out something.
4)The program must not raise any dialogs.
->This restriction could be checked by pressing ‘Display PDF document’ button to see whether any dialog window pops up or not.
5)The program must not raise any messages of the type “Abort”.
-> message type ‘A’ is forbidden.
6)The program must not create more than one document.
(A spool request containing several documents, for example, is not supported.)
->No more than one PDF should be added to a spool request.
For type PDF, report RSPO0020 could be used to see whether one or more documents contained in the one spool request.
You may run report RSPO0020 via SE38 and enter the spool request number,
then the number of document could be displayed.
7)The program must not refresh the transactional buffer (e.g. in case of preview). This could lead to data loss.
->E.g. calling FM RV_INVOICE_REFRESH or similar things.
8)The entry routine of the print program has to offer the following parameters: RETURNCODE (Type SYSUBRC) and SCREEN (type CHAR1).
->E.g. for entry routine in note below:
USING returncode type sysubrc
screen type char1.
< your logic>
Existing print programs need to be checked against these restrictions and adapted accordingly.
If more restrictions defined in the future, please check back by following me,
I will write a new blog regarding the new restrictions.