cancel
Showing results for 
Search instead for 
Did you mean: 

Smartform Mail Issue

Former Member
0 Kudos

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

Accepted Solutions (0)

Answers (2)

Answers (2)

Former Member
0 Kudos

Solved.

former_member205763
Active Contributor
0 Kudos

>

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

Former Member
0 Kudos

Hi Kartik,

I am realy sorry for mentioning like that.

I have tried as you said, but still it is not working,

any other solution for this.

former_member205763
Active Contributor
0 Kudos

Hi Mohana,

Can you share the code that u've written.

кu03B1ятu03B9к

Former Member
0 Kudos

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.

Former Member
0 Kudos

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'.

former_member205763
Active Contributor
0 Kudos

Are ypu changing the same value in debugging also?

Former Member
0 Kudos

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.

Former Member
0 Kudos

Hi kartik,

The Z method I have developed is having a exporting parameter ES_JOB_OUTPUT_INFO,

I have added code as below

ES_JOB_OUT_INFO-OUTPUTDONE = 'X'.

It is working fine now, thanks anyway for your help.