05-29-2008 7:24 AM
Hello, I am a newbie.
I do not use SAPScript nor SmartForms.
But I need to send a printer command stream from my ABAP to printer.
Is it possible?
How can this be possible? Please give me some guideline.
I will reward you points. Promise.
Thanks
05-29-2008 7:26 AM
hi,
u can send ur program details to printer using submit to sap-spool statement.
SUBMIT TO SAP-SPOOL
Basic form
SUBMIT rep ... TO SAP-SPOOL.
Extras:
1.... DESTINATION dest ... COPIES cop
... LIST NAME name
... LIST DATASET dsn
... COVER TEXT text
... LIST AUTHORITY auth
... IMMEDIATELY flag
... KEEP IN SPOOL flag
... NEW LIST IDENTIFICATION flag
... DATASET EXPIRATION days
... LINE-COUNT lin
... LINE-SIZE col
... LAYOUT layout
... SAP COVER PAGE mode
... COVER PAGE flag
... RECEIVER rec
... DEPARTMENT dep
... ARCHIVE MODE armode
... ARCHIVE PARAMETERS arparams
... WITHOUT SPOOL DYNPRO
2. ... SPOOL PARAMETERS params
... ARCHIVE PARAMETERS arparams
... WITHOUT SPOOL DYNPRO
3. ... Further parameters (for passing variants)
are described in the documentation for SUBMIT
The syntax check performed in an ABAP Objects context is stricter than in other ABAP areas. See Missing print parameters with SUBMIT.
Effect
Calls the report rep with list output to the SAP spool database.
Additions
... DESTINATION dest(output device)
... COPIES cop(number of copies)
... LIST NAME name(name of list)
... LIST DATASET dsn(name of spool dataset)
... COVER TEXT text(title of spool request)
... LIST AUTHORITY auth(authorization for display)
... IMMEDIATELY flag(print immediately ?)
... KEEP IN SPOOL flag(keep list after print ?)
... NEW LIST IDENTIFICATION flag(new spool request ?)
... DATASET EXPIRATION days(number of days list
retained)
... LINE-COUNT lin ( lin lines per page)
... LINE-SIZE col(col columns per line)
... LAYOUT layout(print format)
... SAP COVER PAGE mode(SAP cover sheet ?)
... COVER PAGE flag(selection cover sheet ?)
... RECEIVER rec(SAP user name of
recipient)
... DEPARTMENT dep(name of department)
... ARCHIVE MODE armode(archiving mode)
... ARCHIVE PARAMETERS arparams(structure with archiving
parameters)
... WITHOUT SPOOL DYNPRO(skip print control screen)
With the parameters IMMEDIATELY, KEEP IN SPOOL, NEW LIST IDENTIFICATION and COVER TEXT, flag must be a literal or character field with the length 1. If flag is blank, the parameter is switched off, but any other character switches the parameter on. You can also omit any of the sub-options of PRINT ON. mode with SAP COVER PAGE can accept the values ' ', 'X' and 'D'. These values have the following meaning:
' ' : Do not output cover sheet
'X' : Output cover sheet
'D' : Cover sheet output according to printer setting
armode with ARCHIVE MODE can accept the values '1', '2' and '3'. These values have the following meaning:
'1' : Print only
'2' : Archive only
'3' : Print and archive
arparams with ARCHIVE PARAMETERS must have the same structure as ARC_PARAMS. This parameter should only be processed with the function module GET_PRINT_PARAMETERS.
Effect
Output is to the SAP spool database with the specified parameters. If you omit one of the parameters, the system uses a default value. Before output to the spool, you normally see a screen where you can enter and/or modify the spool parameters. However, you can suppress this screen with the following statement:
... TO SAP-SPOOL WITHOUT SPOOL DYNPRO
You could use this option if all the spool parameters have already been set!
Note
When specifying the LINE-SIZE, you should not give any value > 132 because most printers cannot print wider lists.
Addition 2
... SPOOL PARAMETERS params(structure with print
parameters)
... ARCHIVE PARAMETERS arparams(Structure with archive
parameters)
... WITHOUT SPOOL DYNPRO(skip print parameters
screen)
Effect
Output is to the SAP spool database with the specified parameters. The print parameters are passed by the field string params which must have the structure of PRI_PARAMS. The field string can be filled and modified with the function module GET_PRINT_PARAMETERS. The specification arparams with ARCHIVE PARAMETERS must have the structure of ARC_PARAMS. This parameter should only be processed with the function module GET_PRINT_PARAMETERS. Before output to the spool, you normally see a screen where you can enter and/or modify the spool parameters. However, you can suppress this screen with the following statement:
... WITHOUT SPOOL DYNPRO
Example
Without archiving
DATA: PARAMS LIKE PRI_PARAMS,
DAYS(1) TYPE N VALUE 2,
COUNT(3) TYPE N VALUE 1,
VALID TYPE C.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING DESTINATION = 'LT50'
COPIES = COUNT
LIST_NAME = 'TEST'
LIST_TEXT = 'SUBMIT ... TO SAP-SPOOL'
IMMEDIATELY = 'X'
RELEASE = 'X'
NEW_LIST_ID = 'X'
EXPIRATION = DAYS
LINE_SIZE = 79
LINE_COUNT = 23
LAYOUT = 'X_PAPER'
SAP_COVER_PAGE = 'X'
COVER_PAGE = 'X'
RECEIVER = 'SAP*'
DEPARTMENT = 'System'
NO_DIALOG = ' '
IMPORTING OUT_PARAMETERS = PARAMS
VALID = VALID.
IF VALID <> SPACE.
SUBMIT RSTEST00 TO SAP-SPOOL
SPOOL PARAMETERS PARAMS
WITHOUT SPOOL DYNPRO.
ENDIF.
Example
With archiving
DATA: PARAMS LIKE PRI_PARAMS,
ARPARAMS LIKE ARC_PARAMS,
DAYS(1) TYPE N VALUE 2,
COUNT(3) TYPE N VALUE 1,
VALID TYPE C.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING DESTINATION = 'LT50'
COPIES = COUNT
LIST_NAME = 'TEST'
LIST_TEXT = 'SUBMIT ... TO SAP-SPOOL'
IMMEDIATELY = 'X'
RELEASE = 'X'
NEW_LIST_ID = 'X'
EXPIRATION = DAYS
LINE_SIZE = 79
LINE_COUNT = 23
LAYOUT = 'X_PAPER'
SAP_COVER_PAGE = 'X'
COVER_PAGE = 'X'
RECEIVER = 'SAP*'
DEPARTMENT = 'System'
SAP_OBJECT = 'RS'
AR_OBJECT = 'TEST'
ARCHIVE_ID = 'XX'
ARCHIVE_INFO = 'III'
ARCHIVE_TEXT = 'Description'
NO_DIALOG = ' '
IMPORTING OUT_PARAMETERS = PARAMS
OUT_ARCHIVE_PARAMETERS = ARPARAMS
VALID = VALID.
IF VALID <> SPACE.
SUBMIT RSTEST00 TO SAP-SPOOL
SPOOL PARAMETERS PARAMS
ARCHIVE PARAMETERS ARPARAMS
WITHOUT SPOOL DYNPRO.
ENDIF.
05-29-2008 7:29 AM
Hi,
Please refer this:
https://forums.sdn.sap.com/click.jspa?searchID=12300098&messageID=591653
Regards,
Shiva Kumar
05-29-2008 7:52 AM
Hi,
better configure new sap output device - may be linked to the same physical printer.
Configure this new printer with appropiate control, so you will keep your printing reliable.
regards
Walter Habich
05-30-2008 2:40 AM
Hello all,
Thanks for the information.
However, I think you all missed my point, and believe that your suggestions are about sending report to PJL printer such as HP or Epson.
I only want to send a printer command string, example, " %0 H0609 V0193 GB036008" to the printer.
I believe defining an output device is necessary (as suggested by Walter Habich).
Now the question is, how do I write an ABAP to send my string to this output device?
Please help. We are making progress. Great job everybody!
05-29-2008 7:56 AM
1. Sending a report directly to the printer
NEW-PAGE PRINT ON
destination 'p190'
COPIES 1
LIST NAME 'Test liste'
COVER TEXT 'Cover text'
SAP COVER PAGE 'X'
DATASET EXPIRATION 3
NO DIALOG.
LOOP AT ITAB.
WRITE: / ITAB-ZZREVLOGPR.
ENDLOOP.
NEW-PAGE PRINT OFF.
2. Sending output to the spool
NEW-PAGE PRINT ON
COPIES 1
LIST NAME 'Test liste'
COVER TEXT 'zzspec01 Log for overførsel af revlogdata fra host'
SAP COVER PAGE ' '
IMMEDIATELY ' '
KEEP IN SPOOL 'X'
DATASET EXPIRATION 3.