Error in Sending spool list in background !!!
Hello Gurus,
I am trying to create a distribution list and as a requirement have to send the spool list out of the batch job to different users.
I have created in SPAD a device type POST2 and specified the spool server.
In Access method I have put HOst spool Access method as M.
The error I am getting is Message class PO and ID 780 which is Error sending data.
The SMTP in Scot Tcode is configured with Output formats Sapscript as PDF, Abap list as PDF .
In SP01 the requests have the status of Incorrect. sample shown below.
Spoolno. OutpReqNo. Date Time ODev Format Log Status
13431 1 21.01.2012 21:22 MAIL X_58_170 Incorrect
Can you please tell me what configuration I am missing.
Thanks,
Sohail
Hi,
Check the RFC destination connection from PI to ECC... looks like there is connection from PI to ECC to retrieve the metadata....
HTH
Rajesh
Similar Messages
-
How to stop sending spool list of a particular step in a batch job to the Distribution list
Hi All
I have a Batch job with three steps ( Three programs) which will be sending Spool list for all the 3 steps to the assigned distribution list
My user requirement is he want only the spool list for the 3rd step only (Exclude 1st and 2nd)Hi,
you can consult your Basis consultant and also check few settings in T.code-SPAD -
Dear all ,
The background job is already scheduled daily (PR NOT PROCESSED BY PURCHASING) , isn't possible to check the list of users is assigned in the spool list recipiant, I have checked spool list , but its shows only one id ....
how to check the list of Spool users ...any alternate option ?
Kindly advise
RegardsHi ,
I have created a distribution list and i have included the email ids also .
any other activation is required for Distribution list ?
how the background job is sending a report to Distribution list or i have to assign a distribution list to Background job .
Kindly suggest
Regards -
Send spool list ceated by Job (SM36) as pdf-file via email
We are running the report RM06EFLB (Transaktion ME84 - "Create Releases") in the background.
The Job is creating a spool list with 17 pages.
I want to send this 17 pages (in a readable form) to a number of persons.
This did I try so far:
- Distribution list with Recipient type "via Internet" as Spool list recipients in the Job. (Tried different formats for ABAP List in Transaction SCOT)
=> Email is send to recipients, attachment is readable depending on format.
Problem: attachment is not complete, it contains only about 15 pages (985 rows).
- Distribution list with Recipient type "Internal User - SAP-Office" as Spool list recipients in the Job.
=> Document is sent to Business Workplace
Problem: attachment is not complete, it contains only about 15 pages
Any ideas how to get the complete spool list?
Is there mayby a report around that is sending a spool list as pdf-file via email to a number of recipients?
(Would like to maintain this Report as an additional step in the job. The spool-number should be selected from the previous step.)
Thank you for your help.
JensOh sorry - here is the coding which is used in that program:
First use function module 'CONVERT_ABAPSPOOLJOB_2_PDF' to convert the spool entry into pdf.
Loop at output table PDF and concatenate all lines into a string. Convert string to xstring.
Then call mail class:
DATA: lv_pdf_x TYPE xstring,
lv_subject TYPE string,
lv_doc_desc TYPE so_obj_des,
lv_mail_body TYPE soli_tab.
DATA: ls_atta TYPE rcf_s_att4mail_hex,
lt_atta TYPE rcf_t_att4mail_hex.
* -- Fill parameter
lv_subject = 'Requested Report'."#EC NOTEXT
lv_doc_desc = 'Report XXL'."#EC NOTEXT
* lv_mail_body = ?
ls_atta-name = lv_doc_desc.
ls_atta-extension = 'PDF'.
ls_atta-content = p_pdf_x. <- This is your xstring
APPEND ls_atta TO lt_atta.
TRY.
CALL METHOD cl_hrrcf_services_mail=>send_web_mail
EXPORTING
p_subject = lv_subject
p_receiver = p_receiver->email_address
pt_atta_hex = lt_atta
p_sender = p_sender->email_address
p_body_c = lv_mail_body.
CATCH cx_hrrcf.
ENDTRY.
I hope that you have the above mentioned class in your system but it should work with other email functions as well.
Regards
Nicola -
Hii everybody,
I am not able to generate the background spool list for this report. When executed in background, the job shows successful execution, but when I see spool status, it shows waiting and the spool has incomplete list. The bottom part of the spool list has all vertical lines... Any guesses what might be the problem? I am able to see the output when report ran in foreground. It is an ALV grid report.
PLese reply me fast as it is urgent.
M AHope you have end spool writing with new-page print off.
form write_to_spool.
data : l_params type pri_params, "new spool params
l_destination type pri_params-pdest value 'LOCL'. "printer name
*Get the print parameters.
call function 'GET_PRINT_PARAMETERS'
EXPORTING
copies = 1
department = 'SYSTEM'
destination = l_destination
expiration = 2
immediately = ' '
layout = 'X_65_255'
line_count = 65
line_size = 255
list_name = 'XYZ'
list_text = 'ABC'
mode = ' '
new_list_id = 'X'
no_dialog = 'X'
receiver = 'SAP*'
release = 'X'
sap_cover_page = 'X'
user = sy-uname
IMPORTING
out_parameters = l_params
EXCEPTIONS
archive_info_not_found = 1
invalid_print_params = 2
invalid_archive_params = 3
others = 4.
case sy-subrc.
when 1.
raise get_print_info_not_found.
when 2.
raise get_print_invalid_prt_params.
when 3.
raise get_print_invalid_arch_params.
when 4.
raise get_print_others.
endcase.
*start spool writing.
new-page print on parameters l_params no dialog.
uline.
skip.
write your contents
uline.
*end spool writing.
new-page print off.
endform. " write_to_spool -
Hi Team,
When setting up a user to receive emailed reports the "Spool List Recipent" is not retaining the email addres
It is saved as part of the SM36 set up. But when going back to check in SM37 the error is No Spool List recipient.
Could you please help me on this.
Regards
RaghuThanks for your valuable suggestions
Furtherance all the reports printed to a particular printer. But few of the customers didn’t receive those reports. Even though I didn’t set them to print, but still we are getting prints. We set them only to receive mails.
In the successful job log I found “Error sending data (2)” Message no. PO780
Laurie , did u face this issue in your tricky. Does all this issues may helpful in this note 1810625
I really appreciate your help in advance
Regards
Raghu -
Background job cann't open the Spool list, the error as below.
Hi, experts,
My background job 'Z1RM0063' couldn't open the spool list, the error as below:
' The selected section of the spool request 20,004
in SYSTME SID is empty.'
Who could tell me this is why ?
Thank you very much in advance,
B.R
MichaelHi Michael,
Its very difficult to tell... seems to be a custom job, what program is running?.. Does the spool that the job is trying to read still exists?...
Can you please post more details?
Regards
Juan -
Error in Email via spool list recipient feature in SM37
Hello Experts.
I encounter a strange problem. I am not able to send Email to external Email addresses (Lotus Notes) while I am using Distribution list option in spool list recipient option in SM37 background job. I am getting an error in SOST called 'Message cannot be transferred to node SMTP due to connection error (final)'.
I am Able to get email with spool on my SAP inbox if I use the option 'Internal user' in spool recipient.
Also, if I send an email in a custom program via function 'SO_NEW_DOCUMENT_ATT_SEND_API1', I am successfully able to send the email to Lotus notes id using the same distribution list. So, I suppose all the basis settings in SCOT, SU01, SICF are correct.
I checked with my basis team as well but they also see all the email settings as correct.
My spool is very small one and I have all the access in the system.
Anyone having any idea for this issue, please share.
Regards,
DiwakarI found the answer myself.
In SCOT, SMTP setting, Output format for ABAP list needs to be set as 'PDF' or 'TXT' instead of 'HTM'.
With HTM, it was going in for error for spool email.
Regards,
Diwakar -
Spool List output display 255 char when the rpt is run in Background
Hi Friends,
I tried executing a program in Background.. The report output has more than 64 columns ( more than 255 char ) ..
Iam using "REUSE_ALV_GRID_DISPLAY" for displaying the list.
My Problem:
1. The spool list is truncated after 255 characters when i run in background.
2. Th output in Spool List is coming in 2 rows ... not very clear ... becoz of that the grid lines are not getting displayed.
3. I ve not used any Standard - line size for dislaying ..
4. In foreground i am able to display all the 64 columns... Y not in Background......
5. My Printer setting is ..X_255 .... only ...
Requirement:
1. What should i do to increase the spool list display to more than 255 characters
2. Or how to save the background run reports output to an excel sheet as how we 'll take the from the foreground.
Expecting your answers,
Thanks in Advance...
Cheers,
R.Kripa .........
Enjoy ABAPing ..........
new upcoming Abaper ....Hello Kripa,
You need to perform two actions.
1. set an appropriate format for the printer you are using. As explained from the previous messages you go to: SPAD -> output devives (type the printer you are using) -> from the menu ..-> goto -> device type -> formats. In there create a new format like Z_65_650
or Z_65_xxxx where xxxx could be up to 1065. This is the length of your report.
When you give your report in background, do not forget to choose the new format you created.
2. After the spool request is created, you take its number and use it ar a parameter in the following report.
Please copy and paste it in a new program, maybe called ZRSPOSHOWSPOOLLIST.
It should work then.
roxani
Display spool list > 255 columns
This is a SAP utility report to allow display of
spool request lists with line size more than 255 characters in
releases 4.6B and 4.6C (4.6D kernel must be used)
REPORT ZRSPOSHOWLIST LINE-SIZE 80.
PARAMETERS: RQIDENT LIKE TSP01-RQIDENT,
FIRSTL TYPE I DEFAULT 0,
LASTL TYPE I DEFAULT 0.
global data from LSPOXTOP
DATA: RC(10) TYPE C,
ERRMSG(100) TYPE C,
STATUS LIKE SY-SUBRC,
DSN_TYPE(8) TYPE C.
DATA: BEGIN OF DATA_SET_LINE,
DATA_LENGTH(5),
PRECOL(1),
DATA_LINE(1000),
DATA_LINE(5000), "MODAB
END OF DATA_SET_LINE,
DATA_SET_LENGTH(5) TYPE C.
TABLES: TSP01, TST05, TSPOPTIONS.
DATA: TEMSE_NAME LIKE TST01-DNAME,
TEMSE_CLIENT LIKE TST01-DCLIENT,
TEMSE_HANDLE LIKE RSTSTYPE-HANDLE,
TEMSE_PART LIKE TST01-DPART,
TEMSE_OBJTYP LIKE TST01-DTYPE,
TEMSE_RECTYP LIKE RSTSTYPE-RECTYP,
TEMSE_CHARCO LIKE TST01-DCHARCOD.
DATA: IS_OTF.
global data from LSPOCTOP
DATA: BEGIN OF SPOC
, escape
, prtctrl
, FIRST_BYTES(4) " collection of the first bytes of the
" escape sequences, which I am searching for.
, PRTCTRL_START_LENGTH TYPE I
, PRTCTRL_TOTAL_LENGTH TYPE I
, PRTCTRL_START(10)
, SYMBOL_LOW_START(10)
, SYMBOL_HGH_START(10)
, SYMBOL_START_LENGTH TYPE I
, ICON_START(10)
, ICON_START_LENGTH TYPE I
, ICON_SEL TYPE I VALUE 1
, FRAME_START(10)
, FRAME_START_LENGTH TYPE I
, END OF SPOC.
FIELD-SYMBOLS: <SPOC_PRTCTRL> TYPE C
, <SPOC_FRAME> TYPE C
, <SPOC_ICON> TYPE C
, <SPOC_SYMBOL_LOW> TYPE C
, <SPOC_SYMBOL_HGH> TYPE C
copied from RSPO_DISPLAY_ABAP_SPOOLJOB
DATA: BUFFER LIKE DATA_SET_LINE OCCURS 1000.
TABLES: TSP02L.
SELECT SINGLE * FROM TSP01 WHERE RQIDENT = RQIDENT.
IF SY-SUBRC <> 0.
WRITE: / 'Spool request does not exist:'(001), RQIDENT.
EXIT.
ENDIF.
CALL FUNCTION 'RSPO_CHECK_JOB_PERMISSION'
EXPORTING
ACCESS = 'DISP'
SPOOLREQ = TSP01
EXCEPTIONS
NO_PERMISSION = 1
OTHERS = 2.
IF SY-SUBRC <> 0.
WRITE: / 'No authorization to display'(002).
EXIT.
ENDIF.
PERFORM READ_DATA TABLES BUFFER
USING TSP01 FIRSTL LASTL.
IF SY-SUBRC <> 0.
WRITE: / 'Error reading spoolo request'(003).
EXIT.
ENDIF.
IF IS_OTF = 'X'.
WRITE: / 'This spool request is not an ABAP list'(004).
EXIT.
ENDIF.
PERFORM DISPLAY_DATA TABLES BUFFER USING TSP01-RQPAPER TSP01-RQIDENT.
FORM GET_SPOOL_LINE.
DO.
IF TEMSE_RECTYP+1(1) = 'Y'.
CALL 'C_RSTS_READ'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'BUFF' FIELD DATA_SET_LINE
ID 'BUFFLG' FIELD 1006
ID 'BUFFLG' FIELD 5006 "MODAB
ID 'ALLINE' FIELD 'X'
ID 'BINARY' FIELD ' '
ID 'SHOWLG' FIELD 'X'
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
STATUS = SY-SUBRC.
ELSE.
CALL 'C_RSTS_READ'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'BUFF' FIELD DATA_SET_LINE+1
ID 'BUFFLG' FIELD 1005
ID 'BUFFLG' FIELD 5005 "MODAB
ID 'ALLINE' FIELD 'X'
ID 'BINARY' FIELD ' '
ID 'SHOWLG' FIELD 'X'
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
STATUS = SY-SUBRC.
DATA_SET_LINE(5) = DATA_SET_LINE+1(5).
DATA_SET_LINE-PRECOL = ' '.
ADD 1 TO DATA_SET_LINE-DATA_LENGTH.
ENDIF.
STATUS = SY-SUBRC.
IF STATUS <> 6. " EOF, error condition, or got data
EXIT.
ENDIF.
end of this part, try to open next part
ADD 1 TO TEMSE_PART.
CALL 'C_RSTS_CLOSE'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
STATUS = SY-SUBRC.
IF STATUS = 0.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
AUTHORITY = 'SP01'
CLIENT = TEMSE_CLIENT "hjl
NAME = TEMSE_NAME
PART = TEMSE_PART
IMPORTING
CHARCO = TEMSE_CHARCO
CREATER =
CREDATE =
DELDATE =
MAX_CREDATE =
MAX_DELDATE =
NON_UNIQ =
NOOF_PARTS =
RECTYP = TEMSE_RECTYP
SIZE =
STOTYP =
type =
OBJTYPE = TEMSE_OBJTYP
EXCEPTIONS
FB_ERROR = 1
FB_RSTS_OTHER = 2
NO_OBJECT = 3
NO_PERMISSION = 4
OTHERS = 5.
STATUS = SY-SUBRC.
ENDIF.
IF STATUS = 0.
CALL 'C_RSTS_OPEN_READ'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'CLIENT' FIELD TEMSE_CLIENT "hjl
ID 'NAME' FIELD TEMSE_NAME
ID 'PART' FIELD TEMSE_PART
ID 'TYPE' FIELD TEMSE_OBJTYP
ID 'CONV' FIELD ' '
ID 'ALLINE' FIELD 'X'
ID 'BINARY' FIELD ' '
ID 'RECTYP' FIELD TEMSE_RECTYP
ID 'CHARCO' FIELD TEMSE_CHARCO
ID 'PROM' FIELD 'I'
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
STATUS = SY-SUBRC.
ENDIF.
ENDDO.
IF STATUS = 4.
STATUS = 12. "EOF
ENDIF.
IF STATUS = 8.
STATUS = 40. "Line too long
ENDIF.
DATA_SET_LENGTH = DATA_SET_LINE-DATA_LENGTH.
ENDFORM.
FORM READ_DATA TABLES BUFFER
USING TSP01 LIKE TSP01 VALUE(FIRST) TYPE I
VALUE(LAST) TYPE I.
DATA: LINES TYPE I.
REFRESH BUFFER.
CLEAR IS_OTF.
TEMSE_CLIENT = TSP01-RQCLIENT.
TEMSE_NAME = TSP01-RQO1NAME.
TEMSE_PART = 1.
CALL FUNCTION 'RSTS_GET_ATTRIBUTES'
EXPORTING
AUTHORITY = 'SP01'
CLIENT = TEMSE_CLIENT
NAME = TEMSE_NAME
PART = TEMSE_PART
IMPORTING
CHARCO = TEMSE_CHARCO
CREATER =
CREDATE =
DELDATE =
MAX_CREDATE =
MAX_DELDATE =
NON_UNIQ =
NOOF_PARTS =
RECTYP = TEMSE_RECTYP
SIZE =
STOTYP =
type =
OBJTYPE = TEMSE_OBJTYP
EXCEPTIONS
FB_ERROR = 1
FB_RSTS_OTHER = 2
NO_OBJECT = 3
NO_PERMISSION = 4
OTHERS = 5.
IF SY-SUBRC = 0.
IF TEMSE_OBJTYP(3) = 'OTF'.
IS_OTF = 'X'.
ENDIF.
ELSE.
EXIT.
ENDIF.
CLEAR TEMSE_HANDLE.
CALL 'C_RSTS_OPEN_READ'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'CLIENT' FIELD TEMSE_CLIENT "hjl
ID 'NAME' FIELD TEMSE_NAME
ID 'PART' FIELD TEMSE_PART
ID 'TYPE' FIELD TEMSE_OBJTYP
ID 'CONV' FIELD ' '
ID 'ALLINE' FIELD 'X'
ID 'BINARY' FIELD ' '
ID 'RECTYP' FIELD TEMSE_RECTYP
ID 'CHARCO' FIELD TEMSE_CHARCO
ID 'PROM' FIELD 'I'
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
STATUS = SY-SUBRC.
IF STATUS = 0.
DO.
PERFORM GET_SPOOL_LINE.
IF STATUS <> 0 AND STATUS <> 40 AND STATUS <> 12.
PERFORM CLOSE_JOB.
EXIT.
ENDIF.
IF STATUS <> 12. " 12 = End
IF NOT ( DATA_SET_LENGTH IS INITIAL ).
DATA_SET_LINE-DATA_LENGTH = DATA_SET_LENGTH - 1.
ENDIF.
ADD 1 TO LINES.
IF LINES >= FIRST.
APPEND DATA_SET_LINE TO BUFFER.
ENDIF.
IF ( NOT LAST IS INITIAL ) AND ( LINES >= LAST ).
EXIT.
ENDIF.
ELSE.
IF LINES = 0.
PERFORM CLOSE_JOB.
EXIT.
ENDIF.
IF LINES < FIRST .
PERFORM CLOSE_JOB.
EXIT.
ENDIF.
EXIT.
ENDIF.
ENDDO.
PERFORM CLOSE_JOB.
ENDIF.
ENDFORM.
FORM CLOSE_JOB *
FORM CLOSE_JOB.
IF STATUS <> 0 AND STATUS <> 12.
CALL 'C_RSTS_CLOSE'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.
ENDIF.
CALL 'C_RSTS_CLOSE'
ID 'HANDLE' FIELD TEMSE_HANDLE
ID 'RC' FIELD RC
ID 'ERRMSG' FIELD ERRMSG.
STATUS = SY-SUBRC.
IF STATUS <> 0.
MESSAGE E112(PO) WITH STATUS RC ERRMSG RAISING READ_ERROR.
ENDIF.
ENDFORM.
FORM DISPLAY_DATA TABLES BUFFER USING RQPAPER LIKE TSP01-RQPAPER
RQID LIKE TSP01-RQIDENT.
DATA: LINE_LENGTH TYPE I, GCOL TYPE I, GLINES TYPE I,
LINE_LENGTH2 LIKE RSTSTYPE-LINELENGTH,
V, V2.
CALL FUNCTION 'RSPO_SPOOLDATA_WRITE_INIT'.
PERFORM SPOOLDATA_WRITE_INIT. "MODAB
select single * from tspoptions where spoption = 'REALWIDTH'.
if sy-subrc = 0.
V = 'X'.
endif.
select single * from tspoptions where spoption = 'REALHEIGHT'.
if sy-subrc = 0.
V2 = 'X'.
endif.
IF NOT V IS INITIAL OR NOT V2 IS INITIAL.
GCOL = 0.
GLINES = 0.
SELECT SINGLE * FROM TSP02L WHERE PJIDENT = RQID
AND PJNUMMER = 0.
IF SY-SUBRC = 0.
GCOL = TSP02L-COLUMNS.
GLINES = TSP02L-LINES.
ELSE.
CALL FUNCTION 'RSPO_GET_SIZE_OF_LAYOUT'
EXPORTING
LAYOUT = RQPAPER
IMPORTING
ANSWER =
COLUMNS = GCOL
LINES = GLINES
PFORMAT =
ENDIF.
ENDIF.
IF GCOL < 80 OR V IS INITIAL.
GCOL = 255.
ENDIF.
IF GLINES < 5 OR V2 IS INITIAL.
GLINES = 0.
ENDIF.
IF GCOL >= 1024. "MODAB
GCOL = 1023.
ENDIF.
NEW-PAGE NO-HEADING NO-TITLE LINE-SIZE GCOL
LINE-COUNT GLINES. " make a wide list
SET BLANK LINES ON.
LOOP AT BUFFER.
DATA_SET_LINE = BUFFER.
IF DATA_SET_LINE-PRECOL = 'P'.
IF DATA_SET_LINE(1) = ' '. " Echter Vorschub ?"
NEW-PAGE.
ENDIF.
CONTINUE.
ENDIF.
Zeilenlange berechnen, falls unbekannt.
IF DATA_SET_LINE-DATA_LENGTH IS INITIAL.
LINE_LENGTH = STRLEN( DATA_SET_LINE-DATA_LINE ).
ELSE.
LINE_LENGTH = DATA_SET_LINE-DATA_LENGTH.
ENDIF.
IF LINE_LENGTH > 0.
LINE_LENGTH2 = LINE_LENGTH.
PERFORM SPOOLDATA_WRITE USING DATA_SET_LINE-DATA_LINE "MODAB
LINE_LENGTH2
1.
ELSE.
" Leerzeile
SKIP.
ENDIF.
ENDLOOP.
ENDFORM.
copied from RSPO_SPOOLDATA_WRITE
FORM SPOOLDATA_WRITE USING VALUE(SPOOL_DATA)
VALUE(DATA_LENGTH) LIKE RSTSTYPE-LINELENGTH
VALUE(START_POS) LIKE SY-COLNO.
function globals
DATA: LPOS LIKE SY-COLNO
, REST_LEN TYPE I
, AREA_LEN TYPE I
, NEXT_HOT TYPE I " offset of next special character
, COLS TYPE I " columns used by special character
, BYTES TYPE I " bytes used by special character
, HOT2
, HOT3
, HOT4
, HOT5
, HOT6
, HOT7
, BEGIN OF ESCAPE_TRICK
, X1(1) TYPE X
, END OF ESCAPE_TRICK
, THE_PRTCTRL(5) TYPE C
Because of a problem within the ABAP listprocessing, I shall
never output the same icon side by side with the same color
and without a gap.
As I don't know the data, I will use two different variables
alternatively.
, ICON_ID1 LIKE ICONS-L4
, ICON_ID2 LIKE ICONS-L4.
FIELD-SYMBOLS: <LDATA>
, <PLAIN_TEXT>
, <PRTCTRL>
, <HOT_PRTCTRL>
, <HOT_FRAME>
, <HOT_ICON>
, <HOT_SYMBOL>
IF START_POS < 2.
write at / ' ' no-gap.
NEW-LINE.
LPOS = 1.
ELSE.
LPOS = START_POS.
ENDIF.
REST_LEN = STRLEN( SPOOL_DATA ).
DESCRIBE FIELD SPOOL_DATA LENGTH AREA_LEN.
IF DATA_LENGTH = 0.
" fine.
ELSEIF DATA_LENGTH <= AREA_LEN.
REST_LEN = DATA_LENGTH.
ELSE.
WRITE: / 'Fehler beim Decodieren der Listendaten'(005).
STOP.
ENDIF.
CHECK REST_LEN > 0.
ASSIGN SPOOL_DATA(REST_LEN) TO <LDATA>.
WHILE <LDATA> CA SPOC-FIRST_BYTES.
NEXT_HOT = SY-FDPOS.
IF NEXT_HOT > 0.
ASSIGN <LDATA>(NEXT_HOT) TO <PLAIN_TEXT>.
MODAB
PERFORM WRITE_BIGFIELD USING <PLAIN_TEXT>
NEXT_HOT
LPOS.
WRITE AT LPOS <PLAIN_TEXT> NO-GAP.
ADD NEXT_HOT TO LPOS.
SUBTRACT NEXT_HOT FROM REST_LEN.
ASSIGN <LDATA>+NEXT_HOT(REST_LEN) TO <LDATA>.
ENDIF.
IF REST_LEN >= SPOC-PRTCTRL_START_LENGTH.
ASSIGN <LDATA>(SPOC-PRTCTRL_START_LENGTH) TO <HOT_PRTCTRL>.
ELSE.
ASSIGN 'too_short' TO <HOT_PRTCTRL>.
ENDIF.
IF REST_LEN >= SPOC-FRAME_START_LENGTH.
ASSIGN <LDATA>(SPOC-FRAME_START_LENGTH) TO <HOT_FRAME>.
ELSE.
ASSIGN 'too_short' TO <HOT_FRAME>.
ENDIF.
IF REST_LEN >= SPOC-ICON_START_LENGTH.
ASSIGN <LDATA>(SPOC-ICON_START_LENGTH) TO <HOT_ICON>.
ELSE.
ASSIGN 'too_short' TO <HOT_ICON>.
ENDIF.
IF REST_LEN >= SPOC-SYMBOL_START_LENGTH.
ASSIGN <LDATA>(SPOC-SYMBOL_START_LENGTH) TO <HOT_SYMBOL>.
ELSE.
ASSIGN 'too_short' TO <HOT_SYMBOL>.
ENDIF.
IF REST_LEN > 1.
HOT2 = <LDATA>+1(1).
IF REST_LEN > 2.
HOT3 = <LDATA>+2(1).
IF REST_LEN > 3.
HOT4 = <LDATA>+3(1).
ELSE.
HOT4 = '?'.
ENDIF.
ELSE.
HOT3 = '?'.
ENDIF.
ELSE.
HOT2 = '?'.
ENDIF.
IF <HOT_FRAME> = <SPOC_FRAME>.
COLS = 1. " in most cases.
BYTES = 2. " in most cases.
CASE HOT2.
WHEN '0'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '1'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '2'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '3'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '4'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '5'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '6'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '7'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '8'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN '9'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN ':'. WRITE AT LPOS HOT2 AS LINE NO-GAP.
WHEN ';'. " box_drawings_light_left
WRITE AT LPOS '4' AS LINE NO-GAP.
WHEN '<'. " box_drawings_light_up
WRITE AT LPOS '5' AS LINE NO-GAP.
WHEN '='. " box_drawings_light_right
WRITE AT LPOS '4' AS LINE NO-GAP.
WHEN '>'. " box_drawings_light_down
WRITE AT LPOS '5' AS LINE NO-GAP.
WHEN '?'. " drawings_checkbox_off
WRITE AT LPOS ' ' AS CHECKBOX INPUT OFF NO-GAP.
WHEN '@'. " drawings_checkbox_on
WRITE AT LPOS 'X' AS CHECKBOX INPUT OFF NO-GAP.
WHEN OTHERS.
BYTES = 0.
ENDCASE.
ENDIF.
IF <HOT_SYMBOL> = <SPOC_SYMBOL_LOW>.
ESCAPE_TRICK = HOT3.
SUBTRACT 32 FROM ESCAPE_TRICK-X1.
IF HOT4 = SPACE.
WRITE AT LPOS(2) ESCAPE_TRICK AS SYMBOL NO-GAP.
COLS = 2.
BYTES = 4.
ELSE.
WRITE AT LPOS(1) ESCAPE_TRICK AS SYMBOL NO-GAP.
BYTES = 3.
ENDIF.
ENDIF.
IF <HOT_SYMBOL> = <SPOC_SYMBOL_HGH>.
ESCAPE_TRICK = HOT3.
ADD 32 TO ESCAPE_TRICK-X1.
IF HOT4 = SPACE.
WRITE AT LPOS(2) ESCAPE_TRICK AS SYMBOL NO-GAP.
COLS = 2.
BYTES = 4.
ELSE.
WRITE AT LPOS(1) ESCAPE_TRICK AS SYMBOL NO-GAP.
BYTES = 3.
ENDIF.
ENDIF.
IF <HOT_ICON> = <SPOC_ICON>.
IF SPOC-ICON_SEL >< 1.
SPOC-ICON_SEL = 1.
ICON_ID1 = '@00@'.
ICON_ID1+1(1) = HOT3.
ICON_ID1+2(1) = HOT4.
ELSE.
SPOC-ICON_SEL = 2.
ICON_ID2 = '@00@'.
ICON_ID2+1(1) = HOT3.
ICON_ID2+2(1) = HOT4.
ENDIF.
IF REST_LEN > 4.
HOT5 = <LDATA>+4(1).
IF REST_LEN > 5.
HOT6 = <LDATA>+5(1).
IF REST_LEN > 6.
HOT7 = <LDATA>+6(1).
ELSE.
HOT7 = '?'.
ENDIF.
ELSE.
HOT6 = '?'.
ENDIF.
ELSE.
HOT5 = '?'.
ENDIF.
IF HOT5 = SPACE.
IF HOT6 = SPACE.
IF HOT7 = SPACE.
IF SPOC-ICON_SEL = 1.
WRITE AT LPOS(4) ICON_ID1 AS ICON.
write at lpos icon_id1 as icon no-gap.
ELSE.
WRITE AT LPOS(4) ICON_ID2 AS ICON.
write at lpos icon_id2 as icon no-gap.
ENDIF.
COLS = 4.
BYTES = 7.
ELSE.
IF SPOC-ICON_SEL = 1.
WRITE AT LPOS(3) ICON_ID1 AS ICON.
write at lpos icon_id1 as icon no-gap.
ELSE.
WRITE AT LPOS(3) ICON_ID2 AS ICON.
write at lpos icon_id2 as icon no-gap.
ENDIF.
COLS = 3.
BYTES = 6.
ENDIF.
ELSE.
IF SPOC-ICON_SEL = 1.
WRITE AT LPOS(2) ICON_ID1 AS ICON.
write at lpos icon_id1 as icon no-gap.
ELSE.
WRITE AT LPOS(2) ICON_ID2 AS ICON.
write at lpos icon_id2 as icon no-gap.
ENDIF.
COLS = 2.
BYTES = 5.
ENDIF.
ELSE.
"rite at lpos(1) icon_id as icon.
WRITE AT LPOS(1) '#' NO-GAP. " Not enough space for any icon.
COLS = 1.
BYTES = 4.
ENDIF.
ENDIF.
IF <HOT_PRTCTRL> = <SPOC_PRTCTRL>.
COLS = 0. " in most cases.
BYTES = 6. " in most cases.
IF REST_LEN >= SPOC-PRTCTRL_TOTAL_LENGTH.
THE_PRTCTRL = <LDATA>+SPOC-PRTCTRL_START_LENGTH(5).
IF THE_PRTCTRL = 'SABLD'.
FORMAT INTENSIFIED ON.
"no 3.0 'SAULN'.
"no 3.0 FORMAT UNDERSCORED ON.
ELSEIF THE_PRTCTRL = 'SAOFF'.
FORMAT INTENSIFIED OFF.
"no 3.0 FORMAT UNDERSCORED OFF.
ELSEIF THE_PRTCTRL(3) = 'COL'.
CASE THE_PRTCTRL+3(1).
WHEN '0'.
FORMAT COLOR OFF.
WHEN '1'.
FORMAT COLOR 1.
WHEN '2'.
FORMAT COLOR 2.
WHEN '3'.
FORMAT COLOR 3.
WHEN '4'.
FORMAT COLOR 4.
WHEN '5'.
FORMAT COLOR 5.
WHEN '6'.
FORMAT COLOR 6.
WHEN '7'.
FORMAT COLOR 7.
ENDCASE.
CASE THE_PRTCTRL+4(1).
WHEN 'N'.
FORMAT INTENSIFIED OFF INVERSE OFF.
WHEN 'H'.
FORMAT INTENSIFIED ON INVERSE OFF.
WHEN 'V'.
FORMAT INTENSIFIED ON INVERSE ON.
ENDCASE.
ENDIF. "printcontrol
ELSE. "??
ENDIF.
ENDIF.
IF BYTES = 0.
BYTES = 1.
WRITE AT LPOS(1) '#'.
COLS = 1.
ENDIF.
ADD COLS TO LPOS.
SUBTRACT BYTES FROM REST_LEN.
IF REST_LEN > 0.
ASSIGN <LDATA>+BYTES(REST_LEN) TO <LDATA>.
ELSE.
EXIT.
ENDIF.
ENDWHILE.
MODAB
IF REST_LEN > 0.
ASSIGN <LDATA>(REST_LEN) TO <PLAIN_TEXT>.
PERFORM WRITE_BIGFIELD USING <PLAIN_TEXT>
REST_LEN
LPOS.
ENDIF.
ENDFORM.
FORM WRITE_BIGFIELD USING VALUE(FIELD) TYPE C
VALUE(LEN)
VALUE(POS).
FIELD-SYMBOLS <P>.
DATA: CHUNK TYPE I.
WHILE LEN > 0.
IF LEN > 255.
CHUNK = 255.
ELSE.
CHUNK = LEN.
ENDIF.
WRITE AT POS FIELD(CHUNK) NO-GAP.
ADD CHUNK TO POS.
LEN = LEN - CHUNK.
IF LEN > 0.
FIELD = FIELD+CHUNK.
ENDIF.
ENDWHILE.
ENDFORM.
FORM SPOOLDATA_WRITE_INIT.
DATA: BEGIN OF ESCAPE_TRICK
, X1(1) TYPE X
, END OF ESCAPE_TRICK
FIELD-SYMBOLS: <LDATA>
, <PLAIN_TEXT>
, <PRTCTRL>
ESCAPE_TRICK-X1 = '1C'.
SPOC-PRTCTRL_START = ESCAPE_TRICK.
SPOC-PRTCTRL_START_LENGTH = 1.
SPOC-PRTCTRL_TOTAL_LENGTH = SPOC-PRTCTRL_START_LENGTH + 5.
ASSIGN SPOC-PRTCTRL_START(SPOC-PRTCTRL_START_LENGTH) TO <SPOC_PRTCTRL>.
ESCAPE_TRICK-X1 = '1B'.
SPOC-FRAME_START = ESCAPE_TRICK.
SPOC-FRAME_START_LENGTH = 1.
ASSIGN SPOC-FRAME_START(SPOC-FRAME_START_LENGTH) TO <SPOC_FRAME>.
ESCAPE_TRICK-X1 = '1B'.
SPOC-ICON_START = ESCAPE_TRICK.
SPOC-ICON_START+1 = ','.
SPOC-ICON_START_LENGTH = 2.
ASSIGN SPOC-ICON_START(SPOC-ICON_START_LENGTH) TO <SPOC_ICON>.
ESCAPE_TRICK-X1 = '1B'.
SPOC-SYMBOL_LOW_START = ESCAPE_TRICK.
SPOC-SYMBOL_LOW_START+1 = '('.
SPOC-SYMBOL_HGH_START = ESCAPE_TRICK.
SPOC-SYMBOL_HGH_START+1 = ')'.
SPOC-SYMBOL_START_LENGTH = 2.
ASSIGN SPOC-SYMBOL_LOW_START(SPOC-SYMBOL_START_LENGTH)
TO <SPOC_SYMBOL_LOW>.
ASSIGN SPOC-SYMBOL_HGH_START(SPOC-SYMBOL_START_LENGTH)
TO <SPOC_SYMBOL_HGH>.
SPOC-FIRST_BYTES+0(1) = SPOC-PRTCTRL_START(1).
SPOC-FIRST_BYTES+1(1) = SPOC-FRAME_START(1).
SPOC-FIRST_BYTES+2(1) = SPOC-ICON_START(1).
SPOC-FIRST_BYTES+3(1) = SPOC-SYMBOL_LOW_START(1).
ENDFORM. -
Background Job Processing/Spool List Recipient
When setting up a report to run as a background job and setting it up to e-mail the results via the Spool List Recipient button, it always sends the results in htm format. Is there a way it can be e-mailed in Excel?
hi swapna.
in scot it is not configured as excel how to do it.to get an attachment in excel format
thanks in advance -
Send mail to spool list recipient from dynamically generated job
Hi Friends,
We are running the SAP payment run daily in background mode using the transaction F110S (program SAPF110S). We have scheduled the program SAPF110S to run in SM36 and have specified an email address there as Spool List Recipient.
The problem is that SAPF110S itself will dynamically create two new jobs: a job for the Proposal Run and a 2nd job for the Payment Run of F110. The name the system assigns to these jobs are generated at job release/start time in the format F110_CompanyCode_yyyymmdd - X (for the proposal step) and F110_CompanyCode_yyyymmdd (for the payment step).
The proposal and payment steps can create spool output. We want to have that mailed automatically by the system to a spool list recipient.
The problem is that these proposal and payment job steps which are created do not get a spool list recipient assigned, it is empty in SM37.
Is there any way to ensure that the spool list recipient which is populated in the calling job in SM36 gets transferred to the dynamically created proposal and payment steps jobs?
Thanks for your advice.
regards
MikeHi,
At the moment sending custom e-mails from front-end via forms is not a feature on our road-map.
What information do you want to include in the respective form, what are the fields supposed to be present in the form? You still have the auto-responder and the custom message in the workflow that could hopefully assist.
Kind Regards,
Alex -
How to send "SPOOL" on SAP MAil or external mail in background???
I tried using 'SO_DOCUMENT_REPOSITORY_MANAGER' function but it failed when I run it in background. I learned that it calls a screen at the middle of the process which needs user input to go on with the process.
Is there other way that I could send spool on SAPMail or external Mail in background??? Any suggesstions will be greatly appreciated.. thanx...see below sample function module, you can use in backgroud also
FUNCTION Z_SEND_MAIL_FOR_SPOOLLIST.
""Local interface:
*" IMPORTING
*" VALUE(SPOOLNUMBER) LIKE SY-SPONO DEFAULT SY-SPONO
*" VALUE(MAILNAME) LIKE SOOD1-OBJNAM DEFAULT 'NOTE'
*" VALUE(SUBJECT) LIKE SOOD1-OBJDES
*" VALUE(RECEPIENT) LIKE SY-UNAME OPTIONAL
*" VALUE(DLI) LIKE SOOS1-DLINAM OPTIONAL
*" TABLES
*" TEXT STRUCTURE SOLI OPTIONAL
*" EXCEPTIONS
*" ERROR
DATA: OBJECT_HD_CHANGE LIKE SOOD1 OCCURS 0 WITH HEADER LINE,
OBJPARA LIKE SELC OCCURS 0 WITH HEADER LINE,
RECEIVERS LIKE SOOS1 OCCURS 0 WITH HEADER LINE.
OBJECT_HD_CHANGE-OBJLA = SY-LANGU.
OBJECT_HD_CHANGE-OBJNAM = MAILNAME.
OBJECT_HD_CHANGE-OBJDES = SUBJECT.
OBJECT_HD_CHANGE-OBJSNS = 'F'.
OBJECT_HD_CHANGE-VMTYP = 'T'.
OBJECT_HD_CHANGE-SKIPS = 'X'.
OBJECT_HD_CHANGE-ACNAM = 'SP01'.
OBJECT_HD_CHANGE-OBJCP = 'X'.
RECEIVERS-RCDAT = SY-DATUM.
RECEIVERS-RCTIM = SY-UZEIT.
IF DLI IS INITIAL.
RECEIVERS-RECNAM = RECEPIENT.
RECEIVERS-RTUNAM = RECEPIENT.
ELSE.
RECEIVERS-RECNAM = DLI.
RECEIVERS-ADR_NAME = DLI.
RECEIVERS-RECESC = 'C'.
ENDIF.
RECEIVERS-SNDEX = 'X'. " Express-Mail
APPEND RECEIVERS.
OBJPARA-NAME = 'SPI'.
OBJPARA-LOW = SPOOLNUMBER.
APPEND OBJPARA.
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
OBJECT_HD_CHANGE = OBJECT_HD_CHANGE
OBJECT_TYPE = 'RAW'
OWNER = SY-UNAME
TABLES
OBJCONT = TEXT
OBJPARA = OBJPARA
RECEIVERS = RECEIVERS
EXCEPTIONS
OTHERS = 01.
IF SY-SUBRC NE 0.
RAISE ERROR.
ENDIF.
ENDFUNCTION. -
Error in ALV list at background job
Hello,
I am executing one custom report in bckground with layout 'Z_65_400'.After executed, it created spool.If we will try to look the output by using our spool, the layout is truncating.Here , in SP01. based on our spool, in menu bar->GOTO->REQUEST ATTRIBUTES->In this screen, it is showing X_65_255'Format. I tried all basic ways to resolve the issue.I am thinking that this is coming due to 'SAPKB62064(SAP_BASIS).I tried in sap service market place also.Could you please give the solution in detail .
Thanks and Regards
NTRHi NTR,
Pass the error records into a separate internal table and append them. once the Background processing was completed then loop on that error internal table and list them in the Basiclist for the identification.
-Thanks & Regards
Saurabh Goel -
Problem while sending Abap list to mail in the background
Hi all,
I am sending abap list to email in the background.
My code as folllows:
DATA: so_ali LIKE solisti1 OCCURS 100 WITH HEADER LINE.
DATA: listobject LIKE abaplist OCCURS 0 WITH HEADER LINE.
DATA: objpack LIKE sopcklsti1 OCCURS 2 WITH HEADER LINE.
DATA: objhead LIKE solisti1 OCCURS 1 WITH HEADER LINE.
DATA: objtxt LIKE solisti1 OCCURS 10 WITH HEADER LINE.
DATA: reclist LIKE somlreci1 OCCURS 5 WITH HEADER LINE.
DATA: doc_chng LIKE sodocchgi1.
DATA: tab_lines LIKE sy-tabix.
DATA: lt_user TYPE soud3 OCCURS 0 WITH HEADER LINE.
*Start of modification Tix 14411 for transport request D82K929044
DATA: it_user like SODLIENTI1 occurs 0 with header line.
*End of modification for Tix 14411 for transport request D82K929044
CLEAR: listobject, so_ali, objpack, objhead, objtxt, reclist, doc_chng.
REFRESH :
listobject, so_ali, objpack, objhead, objtxt, reclist.
creation of the document to be sent
doc_chng-obj_name = 'BOFAREPORT'.
WRITE sy-datum TO doc_chng-obj_descr.
CONCATENATE 'Bank Activity Report for :'(025)
company_itab_tr-company_code '-' doc_chng-obj_descr INTO
doc_chng-obj_descr. "AN052799
objtxt = 'This is the bank activity report received for'(026).
APPEND objtxt.
CONCATENATE company_itab_tr-company_code '-'
company_itab_tr-company_name '-'
company_itab_tr-company_city INTO
objtxt.
APPEND objtxt.
WRITE sy-datum TO objtxt.
CONCATENATE 'Date Received : '(027) objtxt INTO objtxt.
APPEND objtxt.
WRITE sy-uzeit TO objtxt.
CONCATENATE 'Time Received : '(028) objtxt INTO objtxt.
APPEND objtxt.
DESCRIBE TABLE objtxt LINES tab_lines.
READ TABLE objtxt INDEX tab_lines.
doc_chng-doc_size = ( tab_lines - 1 ) * 255 + STRLEN( objtxt ).
Creation of the entry for the compressed document
CLEAR objpack-transf_bin.
objpack-head_start = 1.
objpack-head_num = 0.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'RAW'.
APPEND objpack.
Creation of the document attachment
CALL FUNCTION 'SAVE_LIST'
EXPORTING
list_index = '0'
TABLES
listobject = listobject
EXCEPTIONS
list_index_invalid = 1
OTHERS = 2.
CALL FUNCTION 'TABLE_COMPRESS' "Schneller Tabellencopy
TABLES
in = listobject
out = so_ali.
DESCRIBE TABLE so_ali LINES tab_lines. "objbin
objhead = 'BOFA-REPORT'. APPEND objhead.
Creation of the entry for the compressed attachment
objpack-transf_bin = 'X'.
objpack-head_start = 1.
objpack-head_num = 1.
objpack-body_start = 1.
objpack-body_num = tab_lines.
objpack-doc_type = 'ALI'.
objpack-obj_name = 'BOFAREPORT'.
objpack-obj_descr = 'Bank Activity Report'.
objpack-doc_size = tab_lines * 255.
APPEND objpack.
Completing the recipient list
SELECT * FROM zwfi_yefap_paypr WHERE
bukrs = company_itab_tr-company_code.
IF NOT ( zwfi_yefap_paypr-list1 IS INITIAL ).
clear it_user[].
CALL FUNCTION 'SO_DLI_READ_API1'
EXPORTING
DLI_NAME = zwfi_yefap_paypr-list1
DLI_ID = ' '
SHARED_DLI = 'X'
IMPORTING
DLI_DATA =
TABLES
DLI_ENTRIES = it_user
EXCEPTIONS
DLI_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
PARAMETER_ERROR = 3
X_ERROR = 4
OTHERS = 5
IF SY-SUBRC = 0.
loop at it_user.
if it_user-member_typ = 'A'.
reclist-receiver = it_user-member_adr.
reclist-rec_type = 'U'.
reclist-com_type = 'INT'.
reclist-notif_del = 'X'.
reclist-notif_ndel = 'X'.
append reclist.
elseif it_user-member_typ = ''.
reclist-receiver = it_user-member_nam.
reclist-rec_type = 'B'.
reclist-express = 'X'.
append reclist.
Endif.
endloop.
ENDIF.
ENDIF.
IF NOT ( zwfi_yefap_paypr-list2 IS INITIAL ).
clear it_user[].
CALL FUNCTION 'SO_DLI_READ_API1'
EXPORTING
DLI_NAME = zwfi_yefap_paypr-list2
DLI_ID = ' '
SHARED_DLI = 'X'
IMPORTING
DLI_DATA =
TABLES
DLI_ENTRIES = it_user
EXCEPTIONS
DLI_NOT_EXIST = 1
OPERATION_NO_AUTHORIZATION = 2
PARAMETER_ERROR = 3
X_ERROR = 4
OTHERS = 5
IF SY-SUBRC = 0.
loop at it_user.
if it_user-member_typ = 'A'.
reclist-receiver = it_user-member_adr.
reclist-rec_type = 'U'.
reclist-com_type = 'INT'.
reclist-notif_del = 'X'.
reclist-notif_ndel = 'X'.
append reclist.
elseif it_user-member_typ = ''.
reclist-receiver = it_user-member_nam.
reclist-rec_type = 'B'.
reclist-express = 'X'.
append reclist.
Endif.
endloop.
ENDIF.
endif.
ENDSELECT.
CLEAR error_text.
Sending the document
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = doc_chng
put_in_outbox = 'X'
COMMIT_WORK = 'X'
TABLES
packing_list = objpack
object_header = objhead
contents_bin = so_ali "objbin
contents_txt = objtxt
receivers = reclist
EXCEPTIONS
too_many_receivers = 1
document_not_sent = 2
operation_no_authorization = 4
OTHERS = 99.
CASE sy-subrc.
WHEN 0.
write: / 'Result of the send process:'.
LOOP AT reclist.
write: / reclist-receiver(48), ':'.
IF reclist-retrn_code <> 0.
write 'The document was sent'.
else.
CONCATENATE 'The document could not be sent to : '(029)
reclist-receiver(48) INTO error_text.
ENDIF.
ENDLOOP.
WHEN 1.
error_text = text-030.
WHEN 2.
error_text = 'Document could not be sent to any recipient'(031).
WHEN 4.
error_text = 'No send authorization'(032).
WHEN OTHERS.
error_text = 'Error occurred while sending'(033).
ENDCASE.
IF NOT ( error_text IS INITIAL ).
CONCATENATE 'Mail send Error : '(034) error_text INTO error_text.
PERFORM WRITE_LOG(YEFAP_APERAK) USING ERROR_TEXT.
PERFORM write_log(zwfi_yefap_bank_report) USING error_text.
ENDIF.
CALL FUNCTION 'LIST_FREE_MEMORY'
TABLES
listobject = listobject
EXCEPTIONS
OTHERS = 1.
When I excute the same program in the foreground, Attachment in the mail is showing all the pages of the report output.
But when I excute the same program in the background only last page is shown in the mail attachemnt.
I think the problem is with the function module SAVE_LIST function module.
I replaced the SAVE_LIST function module with LIST_TO_MEMORY and LIST_FROM_MEMORY function modules.
It is also giving the same result.
In the foreground excution email attachemnt showing all the pages and in the background excution only last page is shown in the attachemnt.
I want all the pages dispalyed in the background mode excution in the email attachment.
How to slove this issue.
Thanks in advance.
RajaI have seen this problem before. Please have a look at this example program. This works very well when ran in background as well as foreground
* This program works in the background,
report zrich_0003 .
data: maildata like sodocchgi1.
data: mailtxt like solisti1 occurs 10 with header line.
data: mailrec like somlrec90 occurs 0 with header line.
data: list type table of abaplist with header line.
data: ascilines(1024) type c occurs 0 with header line.
data: htmllines type table of w3html with header line.
parameters: p_check.
start-of-selection.
submit zrich_0004 exporting list to memory and return.
call function 'LIST_FROM_MEMORY'
tables
listobject = list
exceptions
not_found = 1
others = 2.
call function 'LIST_TO_ASCI'
tables
listobject = list
listasci = ascilines
exceptions
empty_list = 1
list_index_invalid = 2
others = 3.
call function 'WWW_HTML_FROM_LISTOBJECT'
tables
html = htmllines
listobject = list.
clear: maildata, mailtxt, mailrec.
refresh: mailtxt, mailrec.
maildata-obj_name = 'TEST'.
maildata-obj_descr = 'Test Subject'.
loop at htmllines.
mailtxt = htmllines.
append mailtxt.
endloop.
mailrec-receiver = '[email protected]'.
mailrec-rec_type = 'U'.
append mailrec.
call function 'SO_NEW_DOCUMENT_SEND_API1'
exporting
document_data = maildata
document_type = 'HTM'
put_in_outbox = 'X'
tables
object_header = mailtxt
object_content = mailtxt
receivers = mailrec
exceptions
too_many_receivers = 1
document_not_sent = 2
document_type_not_exist = 3
operation_no_authorization = 4
parameter_error = 5
x_error = 6
enqueue_error = 7
others = 8.
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
commit work.
wait up to 2 seconds.
submit rsconn01 with mode = 'INT'
with output = 'X'
and return.
Regards,
Rich Heilman -
Spool List not printing in Background
Hi,
When i try to execute the report in background in development system i can able to see the spool list, whereas when i try to execute the same report in testimg server(may be with more data) i can not see the spool list but the job is in finish status.
Please can i know the reason for the same.
Thanks & Regards,
Sudheer.Hi!
This may be because you started the program with the option, not to create new spool request, or to delete the spool request immediately.
When you run your program in background, check the printer options also.
Regards
Tamá
Maybe you are looking for
-
How do I display text only in the first page inXML Publisher
Hi everybody, I've been reading so much, on the last two days, on this issue at this forum but I didn't get an answer. My problem is: In an invoices report some text and fields from the invoice header, (such as payment terms, bank details etc.), shou
-
How to send location based push notification
How to send notification from website to the devices in particular latitude and longitude
-
whenever i am opening a new tab - yahoo search page is opening up. How can I get rid of this. I want a blank page to be open up instead of yahoo search page in new tab.
-
I have Adobe Captivate 8 and i created a quiz within the program. Once done i took the quiz and had the results post in the Quiz analyzer that is grabbing the information from an internal test server. When i go to export the data, it doesn't put the
-
Replacing a package with a self-build package
If I have a self-build package that provides something (another package) that I allready have installed and also conflicts with, how do I replace the installed package with the self-build? When I try to install it with pacman -A /path/to/package pacm