11-06-2007 4:29 AM
Hello Experts,
i am scheduling a report in background for execution. in background print parameters i am giving the title. but when background job executes that name didn't appear.
How can i set the title for spool????
11-06-2007 4:34 AM
Try this sample code.. This writes your report output to spool and it doesnt print.
CONSTANTS: CX_MARK(1) TYPE C VALUE 'X',
C_ROWS TYPE I VALUE 65,
C_COLS TYPE I VALUE 132,
C_LAY(16) TYPE C VALUE 'X_65_132'.
DATA: VAL(1) TYPE C.
DATA: PRIPAR LIKE PRI_PARAMS.
START-OF-SELECTION.
PERFORM GET_PRINT_PARAM.
NEW-PAGE PRINT ON NEW-SECTION
PARAMETERS PRIPAR NO DIALOG.
PERFORM PRINT_SPOOL.
NEW-PAGE PRINT OFF.
FORM PRINT_SPOOL.
WRITE : / 'this is test spool -- test 7:30'. "<--Write your report output here
ENDFORM.
FORM GET_PRINT_PARAM.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
ARCHIVE_ID = C_CHAR_UNKNOWN
ARCHIVE_INFO = C_CHAR_UNKNOWN
ARCHIVE_MODE = C_CHAR_UNKNOWN
ARCHIVE_TEXT = C_CHAR_UNKNOWN
AR_OBJECT = C_CHAR_UNKNOWN
AUTHORITY = C_CHAR_UNKNOWN
COPIES = C_NUM3_UNKNOWN
COVER_PAGE = C_CHAR_UNKNOWN
DATA_SET = C_CHAR_UNKNOWN
DEPARTMENT = C_CHAR_UNKNOWN
DESTINATION = C_CHAR_UNKNOWN
EXPIRATION = C_NUM1_UNKNOWN
IMMEDIATELY = C_CHAR_UNKNOWN
IN_ARCHIVE_PARAMETERS = ' '
IN_PARAMETERS = ' '
LAYOUT = C_CHAR_UNKNOWN
LINE_COUNT = C_INT_UNKNOWN
LINE_SIZE = C_INT_UNKNOWN
LIST_NAME = C_CHAR_UNKNOWN
LIST_TEXT = C_CHAR_UNKNOWN
MODE = ' '
NEW_LIST_ID = C_CHAR_UNKNOWN
NO_DIALOG = CX_MARK
RECEIVER = C_CHAR_UNKNOWN
RELEASE = C_CHAR_UNKNOWN
REPORT = C_CHAR_UNKNOWN
SAP_COVER_PAGE = C_CHAR_UNKNOWN
SAP_OBJECT = C_CHAR_UNKNOWN
TYPE = C_CHAR_UNKNOWN
IMPORTING
OUT_ARCHIVE_PARAMETERS =
OUT_PARAMETERS = PRIPAR
VALID = VAL
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4.
Output device
IF PRIPAR-PDEST IS INITIAL.
PRIPAR-PDEST = 'LOCL'.
ENDIF.
Number of copies
PRIPAR-PRCOP = '001'.
*Name of spool request
CONCATENATE SY-CPROG '_' SY-UNAME+0(3) INTO PRIPAR-PLIST.
Text for cover sheet
CONCATENATE SY-TITLE SPOOLLOG INTO PRIPAR-PRTXT SEPARATED BY SPACE.
Print immediately
PRIPAR-PRIMM = SPACE.
Delete after printing
PRIPAR-PRREL = SPACE.
new spool request
PRIPAR-PRNEW = CX_MARK.
Spool retention period
IF PRIPAR-PEXPI IS INITIAL.
PRIPAR-PEXPI = '8'.
ENDIF.
Number of list lines
PRIPAR-LINCT = C_ROWS.
Line size of list
PRIPAR-LINSZ = C_COLS.
Format
PRIPAR-PAART = C_LAY.
Selection cover sheet
PRIPAR-PRBIG = SPACE.
SAP cover sheet
PRIPAR-PRSAP = 'D'.
Recipient
PRIPAR-PRREC = SY-UNAME.
Department on cover sheet
PRIPAR-PRABT = SPACE.
Authorization
PRIPAR-PRBER = SPACE.
Name of spool dataset
IF PRIPAR-PRDSN IS INITIAL.
PRIPAR-PRDSN = 'LIST1S'.
ENDIF.
Type of spool request
IF PRIPAR-PTYPE IS INITIAL.
PRIPAR-PTYPE = 'TEXT'.
pripar-ptype = 'OTF'.
ENDIF.
Archiving mode
PRIPAR-ARMOD = '1'. "Print only
Output footer
PRIPAR-FOOTL = SPACE.
Check sum for print and archiving parameters
PERFORM COMPUTE_CHECKSUM USING PRIPAR CHANGING PRIPAR-PRCHK.
ENDFORM. " GET_PRINT_PARAM
----
*& Form COMPUTE_CHECKSUM
----
FORM COMPUTE_CHECKSUM USING P_BUFFER TYPE ANY
CHANGING P_CHECKSUM TYPE I.
FIELD-SYMBOLS <L_FS>.
DATA L_LENGTH TYPE I.
P_CHECKSUM = 0.
DESCRIBE FIELD P_BUFFER LENGTH L_LENGTH.
SUBTRACT 4 FROM L_LENGTH.
ASSIGN P_BUFFER(1) TO <L_FS> TYPE 'X'.
DO L_LENGTH TIMES.
ADD <L_FS> TO P_CHECKSUM.
ASSIGN <L_FS>+1 TO <L_FS>.
ENDDO.
ENDFORM. " COMPUTE_CHECKSUM
Please give me reward points if it is useful...
11-06-2007 4:33 AM
Hi,
Do you populate the cover text when defining the print parameters??
Thanks
Naren
11-06-2007 4:34 AM
Try this sample code.. This writes your report output to spool and it doesnt print.
CONSTANTS: CX_MARK(1) TYPE C VALUE 'X',
C_ROWS TYPE I VALUE 65,
C_COLS TYPE I VALUE 132,
C_LAY(16) TYPE C VALUE 'X_65_132'.
DATA: VAL(1) TYPE C.
DATA: PRIPAR LIKE PRI_PARAMS.
START-OF-SELECTION.
PERFORM GET_PRINT_PARAM.
NEW-PAGE PRINT ON NEW-SECTION
PARAMETERS PRIPAR NO DIALOG.
PERFORM PRINT_SPOOL.
NEW-PAGE PRINT OFF.
FORM PRINT_SPOOL.
WRITE : / 'this is test spool -- test 7:30'. "<--Write your report output here
ENDFORM.
FORM GET_PRINT_PARAM.
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
ARCHIVE_ID = C_CHAR_UNKNOWN
ARCHIVE_INFO = C_CHAR_UNKNOWN
ARCHIVE_MODE = C_CHAR_UNKNOWN
ARCHIVE_TEXT = C_CHAR_UNKNOWN
AR_OBJECT = C_CHAR_UNKNOWN
AUTHORITY = C_CHAR_UNKNOWN
COPIES = C_NUM3_UNKNOWN
COVER_PAGE = C_CHAR_UNKNOWN
DATA_SET = C_CHAR_UNKNOWN
DEPARTMENT = C_CHAR_UNKNOWN
DESTINATION = C_CHAR_UNKNOWN
EXPIRATION = C_NUM1_UNKNOWN
IMMEDIATELY = C_CHAR_UNKNOWN
IN_ARCHIVE_PARAMETERS = ' '
IN_PARAMETERS = ' '
LAYOUT = C_CHAR_UNKNOWN
LINE_COUNT = C_INT_UNKNOWN
LINE_SIZE = C_INT_UNKNOWN
LIST_NAME = C_CHAR_UNKNOWN
LIST_TEXT = C_CHAR_UNKNOWN
MODE = ' '
NEW_LIST_ID = C_CHAR_UNKNOWN
NO_DIALOG = CX_MARK
RECEIVER = C_CHAR_UNKNOWN
RELEASE = C_CHAR_UNKNOWN
REPORT = C_CHAR_UNKNOWN
SAP_COVER_PAGE = C_CHAR_UNKNOWN
SAP_OBJECT = C_CHAR_UNKNOWN
TYPE = C_CHAR_UNKNOWN
IMPORTING
OUT_ARCHIVE_PARAMETERS =
OUT_PARAMETERS = PRIPAR
VALID = VAL
EXCEPTIONS
ARCHIVE_INFO_NOT_FOUND = 1
INVALID_PRINT_PARAMS = 2
INVALID_ARCHIVE_PARAMS = 3
OTHERS = 4.
Output device
IF PRIPAR-PDEST IS INITIAL.
PRIPAR-PDEST = 'LOCL'.
ENDIF.
Number of copies
PRIPAR-PRCOP = '001'.
*Name of spool request
CONCATENATE SY-CPROG '_' SY-UNAME+0(3) INTO PRIPAR-PLIST.
Text for cover sheet
CONCATENATE SY-TITLE SPOOLLOG INTO PRIPAR-PRTXT SEPARATED BY SPACE.
Print immediately
PRIPAR-PRIMM = SPACE.
Delete after printing
PRIPAR-PRREL = SPACE.
new spool request
PRIPAR-PRNEW = CX_MARK.
Spool retention period
IF PRIPAR-PEXPI IS INITIAL.
PRIPAR-PEXPI = '8'.
ENDIF.
Number of list lines
PRIPAR-LINCT = C_ROWS.
Line size of list
PRIPAR-LINSZ = C_COLS.
Format
PRIPAR-PAART = C_LAY.
Selection cover sheet
PRIPAR-PRBIG = SPACE.
SAP cover sheet
PRIPAR-PRSAP = 'D'.
Recipient
PRIPAR-PRREC = SY-UNAME.
Department on cover sheet
PRIPAR-PRABT = SPACE.
Authorization
PRIPAR-PRBER = SPACE.
Name of spool dataset
IF PRIPAR-PRDSN IS INITIAL.
PRIPAR-PRDSN = 'LIST1S'.
ENDIF.
Type of spool request
IF PRIPAR-PTYPE IS INITIAL.
PRIPAR-PTYPE = 'TEXT'.
pripar-ptype = 'OTF'.
ENDIF.
Archiving mode
PRIPAR-ARMOD = '1'. "Print only
Output footer
PRIPAR-FOOTL = SPACE.
Check sum for print and archiving parameters
PERFORM COMPUTE_CHECKSUM USING PRIPAR CHANGING PRIPAR-PRCHK.
ENDFORM. " GET_PRINT_PARAM
----
*& Form COMPUTE_CHECKSUM
----
FORM COMPUTE_CHECKSUM USING P_BUFFER TYPE ANY
CHANGING P_CHECKSUM TYPE I.
FIELD-SYMBOLS <L_FS>.
DATA L_LENGTH TYPE I.
P_CHECKSUM = 0.
DESCRIBE FIELD P_BUFFER LENGTH L_LENGTH.
SUBTRACT 4 FROM L_LENGTH.
ASSIGN P_BUFFER(1) TO <L_FS> TYPE 'X'.
DO L_LENGTH TIMES.
ADD <L_FS> TO P_CHECKSUM.
ASSIGN <L_FS>+1 TO <L_FS>.
ENDDO.
ENDFORM. " COMPUTE_CHECKSUM
Please give me reward points if it is useful...
11-06-2007 4:44 AM
11-06-2007 5:49 AM
Hi,
You can try like this :
CALL FUNCTION 'GET_PRINT_PARAMETERS'
EXPORTING
DESTINATION = 'LOCL'
<b>LIST_NAME = 'TEST'
LIST_TEXT = 'TEST SPOOL'</b>
IMMEDIATELY = 'X'
LINE_COUNT = '65'
LINE_SIZE = '255'
NO_DIALOG = 'X'
USER = SY-UNAME
IMPORTING
<b>OUT_PARAMETERS = g_v_params</b>
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
Regards
Nishant