on 10-09-2009 2:08 PM
Can anyone please let me know how to set the value of JOB_OUTPUT_INFO-OUTPUTDONE to 'X' in the class CL_SF_MAIL_PPF.
My requirement is to avoid error mesage in logs of transaction CRMD_ORDER which is triggering a smartform mail, if I change the value of JOB_OUTPUT_INFO-OUTPUTDONE to 'X' while debugging, I am not getting the error message in the logs.
Mail is triggerred with PDF, there is no issue in the mail, except the above issue.
Please let me know how to set the above mentioned field to 'X' programatically. Point ll be awarded.
Thanks in Advance.
Edited by: Mohana Vijayan on Oct 9, 2009 4:27 PM
Solved.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
>
Point ll be awarded.
please do not mention this as this is against the forum rules.
in the print program use a field symbol to point to the value and set it as X
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
REPORT ZSMF_MAIL_PROGRAM.
DATA: OUTPUT_OPTIONS TYPE SSFCOMPOP,
CONTROL_PARAMETERS TYPE SSFCTRLOP,
OUTPUT_DATA TYPE SSFCRESCL.
DATA: FILESIZE TYPE I.
DATA:FM_NAME TYPE RS38L_FNAM.
DATA LT_OTFDATA LIKE ITCOO OCCURS 1000 WITH HEADER LINE.
DATA LT_PDFDATA LIKE TLINE OCCURS 100 WITH HEADER LINE.
DATA:LT_PDF LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA:LW_PDF LIKE LINE OF LT_PDF.
DATA:LW_PDFDATA LIKE LINE OF LT_PDFDATA.
DATA:LS_JOB_INFO TYPE TABLE OF SSFCRESCL WITH HEADER LINE.
DATA:LT_MESSAGE TYPE TABLE OF SOLISTI1 WITH HEADER LINE.
DATA: DOCU_DATA LIKE SODOCCHGI1 OCCURS 0 WITH HEADER LINE.
DATA PACKING_LIST LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE.
DATA OBJECT_HEADER LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA CONTENTS LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA REAL_RECIPIENTS LIKE SOMLRECI1 OCCURS 0 WITH HEADER LINE.
DATA CONTENTS_TXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA CONTENTS_ATT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA PACKING_LIST_TXT LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE.
DATA OBJECT_HEADER_TXT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA OBJECT_HEADER_ATT LIKE SOLISTI1 OCCURS 0 WITH HEADER LINE.
DATA PACKING_LIST_ATT LIKE SOPCKLSTI1 OCCURS 0 WITH HEADER LINE.
DATA: W_EMAIL(1215) TYPE C.
DATA:PSUBJECT(90) TYPE C.
DATA: LD_FORMAT TYPE SO_OBJ_TP ,
LD_ATTDESCRIPTION TYPE SO_OBJ_NAM ,
LD_ATTFILENAME TYPE SO_OBJ_DES .
*Calling the Smartform.
Get Email id from ztab_email table.
select single email_id from ztab_email
into w_email.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'Z_CONTD_DEBT_FORM'
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
ENDIF.
CONTROL_PARAMETERS-DEVICE = 'MAIL'.
CONTROL_PARAMETERS-NO_DIALOG = 'X'.
CONTROL_PARAMETERS-GETOTF = 'X'.
CONTROL_PARAMETERS-PREVIEW = SPACE.
OUTPUT_OPTIONS-TDTITLE = SY-TITLE.
OUTPUT_OPTIONS-TDNEWID = 'X'.
OUTPUT_OPTIONS-TDNOPREV = 'X'.
OUTPUT_OPTIONS-TDDELETE = 'X'.
CALL FUNCTION FM_NAME
EXPORTING
CONTROL_PARAMETERS = CONTROL_PARAMETERS
OUTPUT_OPTIONS = OUTPUT_OPTIONS
USER_SETTINGS = SPACE
IMPORTING
JOB_OUTPUT_INFO = OUTPUT_DATA
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
OUTPUT_DATA-OUTPUTDONE = 'X'.
*Convert to PDF Format.
CLEAR LT_PDFDATA.
REFRESH LT_PDFDATA.
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = '132'
IMPORTING
BIN_FILESIZE = FILESIZE
TABLES
OTF = OUTPUT_DATA-OTFDATA
LINES = LT_PDFDATA
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
ERR_BAD_OTF = 4
OTHERS = 5.
IF SY-SUBRC <> 0.
ENDIF.
REFRESH LT_PDF[].
*Convert 132 line sized internal table into 255 line sized internal table.
CALL FUNCTION 'SX_TABLE_LINE_WIDTH_CHANGE'
EXPORTING
LINE_WIDTH_DST = '255'
TABLES
CONTENT_IN = LT_PDFDATA[]
CONTENT_OUT = LT_PDF[]
EXCEPTIONS
ERR_LINE_WIDTH_SRC_TOO_LONG = 1
ERR_LINE_WIDTH_DST_TOO_LONG = 2
ERR_CONV_FAILED = 3
OTHERS = 4.
IF SY-SUBRC <> 0.
ENDIF.
Sending it as an Email Attachment.
LD_FORMAT = 'PDF'.
LD_ATTDESCRIPTION = 'CONTESTED'.
LD_ATTFILENAME = 'TEST_FILE'.
CLEAR REAL_RECIPIENTS.
REFRESH REAL_RECIPIENTS.
REAL_RECIPIENTS-REC_TYPE = 'U'.
REAL_RECIPIENTS-COM_TYPE = 'INT'.
REAL_RECIPIENTS-NOTIF_DEL = 'X'.
REAL_RECIPIENTS-NOTIF_NDEL = 'X'.
REAL_RECIPIENTS-RECEIVER = W_EMAIL.
APPEND REAL_RECIPIENTS.
CLEAR PACKING_LIST.
REFRESH PACKING_LIST.
*Describe the body of the message
PACKING_LIST-TRANSF_BIN = ' '."""""""""""""" CHANGE IT FROM 'X' TO ' ' """""""""""""
PACKING_LIST-HEAD_START = 1.
PACKING_LIST-HEAD_NUM = 0.
PACKING_LIST-BODY_START = 1.
PACKING_LIST-BODY_NUM = 1.
PACKING_LIST-DOC_TYPE = 'RAW'.
APPEND PACKING_LIST.
PACKING_LIST-TRANSF_BIN = 'X'.
PACKING_LIST-HEAD_START = 1.
PACKING_LIST-HEAD_NUM = 1.
PACKING_LIST-BODY_START = 1.
DESCRIBE TABLE LT_PDF LINES PACKING_LIST-BODY_NUM.
PACKING_LIST-DOC_TYPE = LD_FORMAT.
PACKING_LIST-OBJ_DESCR = LD_ATTDESCRIPTION.
PACKING_LIST-OBJ_NAME = LD_ATTFILENAME.
PACKING_LIST-DOC_SIZE = PACKING_LIST-BODY_NUM * 255.
APPEND PACKING_LIST.
*Populate the subject/generic message attributes
DOCU_DATA-DOC_SIZE = 1.
DOCU_DATA-OBJ_LANGU = SY-LANGU.
DOCU_DATA-OBJ_NAME = 'SAPRPT'.
DOCU_DATA-OBJ_DESCR = PSUBJECT.
DOCU_DATA-SENSITIVTY = 'F'.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOCU_DATA
SENDER_ADDRESS_TYPE = 'INT'
COMMIT_WORK = 'X'
PUT_IN_OUTBOX = 'X'
SENDER_ADDRESS = V_SENDER
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
PACKING_LIST = PACKING_LIST
OBJECT_HEADER = OBJECT_HEADER
CONTENTS_BIN = LT_PDF
CONTENTS_TXT = CONTENTS
RECEIVERS = REAL_RECIPIENTS
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.
ENDIF.
Hi Kartik,
Please find the exact code which needs to be reviewed, I am making OUTPUT_DATA-OUTPUTDONE = 'X' explicitly in the end.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
FORMNAME = 'Z_CONTD_DEBT_FORM'
IMPORTING
FM_NAME = FM_NAME
EXCEPTIONS
NO_FORM = 1
NO_FUNCTION_MODULE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
ENDIF.
CONTROL_PARAMETERS-DEVICE = 'MAIL'.
CONTROL_PARAMETERS-NO_DIALOG = 'X'.
CONTROL_PARAMETERS-GETOTF = 'X'.
CONTROL_PARAMETERS-PREVIEW = SPACE.
OUTPUT_OPTIONS-TDTITLE = SY-TITLE.
OUTPUT_OPTIONS-TDNEWID = 'X'.
OUTPUT_OPTIONS-TDNOPREV = 'X'.
OUTPUT_OPTIONS-TDDELETE = 'X'.
CALL FUNCTION FM_NAME
EXPORTING
CONTROL_PARAMETERS = CONTROL_PARAMETERS
OUTPUT_OPTIONS = OUTPUT_OPTIONS
USER_SETTINGS = SPACE
IMPORTING
JOB_OUTPUT_INFO = OUTPUT_DATA
EXCEPTIONS
FORMATTING_ERROR = 1
INTERNAL_ERROR = 2
SEND_ERROR = 3
USER_CANCELED = 4
OTHERS = 5.
OUTPUT_DATA-OUTPUTDONE = 'X'.
Hi Kartik,
The above piece of code is in a method(proc_meth) of class(proc_class),
which is been called by the standard class and method CL_SF_MAIL_PPF => EXECUTE by the below code.
************************************************************************************
for all recipients, call smart form
LOOP AT mail_recipient_tab INTO mail_recipient.
------------call processing method----------------------------
TRY.
CALL METHOD (proc_class)=>(proc_meth)
EXPORTING
is_archive_index = archive_index
is_archive_parameters = archive_parameters
is_control_parameters = control_parameters
is_output_options = output_options
io_appl_object = io_appl_ref
ip_smart_form = smart_form
io_partner = partner
ip_user_settings = user_settings
is_mail_recipient = mail_recipient-recipient
is_mail_sender = mail_sender
ip_application_log = l_protocol_handle
IMPORTING es_document_output_info = document_output_info
es_job_output_info = job_output_info
es_job_output_options = job_output_options
et_error_tab = error_tab
CHANGING ct_archive_index_tab = lt_archive_index.
***************************************************************************
Once the above code is executed , I should get JOB_OUTPUT_INFO-OUTPUTDONE = 'X' which is in the importing parameter.
I am changing the JOB_OUTPUT_INFO-OUTPUTDONE = 'X' in the above code while debugging as I cannot edit this standard code.
I dont know what will make the above field to 'X' automatically. If it becomes X , the issue will be solved.
User | Count |
---|---|
92 | |
11 | |
10 | |
9 | |
9 | |
7 | |
6 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.