Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Smartforms error

Former Member
0 Likes
543

Hi experts

i did a print prg for sending the pdf attachment by smartforms.

but it's getting dumpped,this is my code

plz help me,its urgent.

i checked even SDN Forums also.i made some changes,

even though i don't get the output.

it shows not matching the I_OBJBIN in "SO_NEW_DOCUMENT_ATT_SEND_API1" function module.

REPORT ZCS_SF6.

  • Internal Table declarations

DATA: i_otf TYPE itcoo OCCURS 0 WITH HEADER LINE,

i_tline TYPE TABLE OF tline WITH HEADER LINE, i_receivers TYPE TABLE OF somlreci1 WITH HEADER LINE, i_record LIKE solisti1 OCCURS 0 WITH HEADER LINE,

  • Objects to send mail.

i_objpack LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,

i_objtxt LIKE solisti1 OCCURS 0 WITH HEADER LINE,

i_objbin LIKE solisti1 OCCURS 0 WITH HEADER LINE,

i_reclist LIKE somlreci1 OCCURS 0 WITH HEADER LINE,

  • Work Area declarations

w_objhead TYPE soli_tab,

w_ctrlop TYPE ssfctrlop,

w_compop TYPE ssfcompop,

w_return TYPE ssfcrescl,

w_doc_chng typE sodocchgi1,

w_data TYPE sodocchgi1,

w_buffer TYPE string,

  • Variables declarations

v_form_name TYPE rs38l_fnam,

v_len_in LIKE sood-objlen,

v_len_out LIKE sood-objlen,

v_len_outn TYPE i,

v_lines_txt TYPE i,

v_lines_bin TYPE i.

call function 'SSF_FUNCTION_MODULE_NAME'

exporting

formname = 'ZCS_FORM6'

importing

fm_name = v_form_name

exceptions

no_form = 1

no_function_module = 2

others = 3.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

w_ctrlop-getotf = 'X'.

w_ctrlop-no_dialog = 'X'.

w_compop-tdnoprev = 'X'.

CALL FUNCTION v_form_name

EXPORTING

  • ARCHIVE_INDEX =

  • ARCHIVE_INDEX_TAB =

  • ARCHIVE_PARAMETERS =

CONTROL_PARAMETERS = W_CTRLOP

  • MAIL_APPL_OBJ =

  • MAIL_RECIPIENT =

  • MAIL_SENDER =

OUTPUT_OPTIONS = W_COMPOP

USER_SETTINGS = 'X'

IMPORTING

  • DOCUMENT_OUTPUT_INFO =

JOB_OUTPUT_INFO = W_RETURN

  • JOB_OUTPUT_OPTIONS =

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5

.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

i_otf[] = w_return-otfdata[].

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

format = 'PDF'

max_linewidth = 132

LINES-TDLINE

IMPORTING

bin_filesize = v_len_in

TABLES

otf = i_otf

lines = i_tline

EXCEPTIONS

err_max_linewidth = 1

err_format = 2

err_conv_not_possible = 3

OTHERS = 4.

IF sy-subrc <> 0.

MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno

WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.

ENDIF.

  • Convert PDF from 132 to 255.

LOOP AT i_tline.

  • Replacing space by ~

TRANSLATE i_tline USING '~'.

CONCATENATE w_buffer i_tline INTO w_buffer.

ENDLOOP.

  • Replacing ~ by space

TRANSLATE w_buffer USING '~'.

DO.

i_record = w_buffer.

  • Appending 255 characters as a record

APPEND i_record.

SHIFT w_buffer LEFT BY 255 PLACES.

IF w_buffer IS INITIAL.

EXIT.

ENDIF.

ENDDO.

  • Attachment

Refresh: i_reclist,

i_objtxt,

i_objbin,

i_objpack.

clear w_objhead.

  • Object with PDF.

i_objbin[] = i_record[].

*******DESCRIBE TABLE i_objbin LINES v_lines_bin.

  • Object with main text of the mail.

i_objtxt = 'Find attached the output of the smart form.'.

APPEND i_objtxt.

*i_objtxt = 'Regards,'.

*APPEND i_objtxt.

*i_objtxt = 'Chandu'.

*APPEND i_objtxt.

DESCRIBE TABLE i_objtxt LINES v_lines_txt.

read table i_objtxt index v_lines_txt.

  • Document information.

w_doc_chng-obj_name = 'Smartform'.

w_doc_chng-expiry_dat = sy-datum + 10.

w_doc_chng-obj_descr = 'Smart form output'.

w_doc_chng-sensitivty = 'F'.

w_doc_chng-doc_size = v_lines_txt * 255.

  • Pack to main body as RAW.

CLEAR i_objpack-transf_bin.

i_objpack-head_start = 1.

i_objpack-head_num = 0.

i_objpack-body_start = 1.

i_objpack-body_num = v_lines_txt.

i_objpack-doc_type = 'RAW'.

APPEND i_objpack.

  • Packing as PDF.

i_objpack-transf_bin = 'X'.

i_objpack-head_start = 1.

i_objpack-head_num = 1.

i_objpack-body_start = 1.

describe table i_objbin lines v_lines_bin.

read table i_objbin index v_lines_bin.

i_objpack-doc_size = v_lines_bin * 255.

i_objpack-body_num = v_lines_bin.

i_objpack-doc_type = 'PDF'.

i_objpack-obj_name = 'Smartform'.

i_objpack-obj_descr = 'sf output'

APPEND i_objpack.

  • Document information.

CLEAR i_reclist.

  • e-mail receivers.

i_reclist-receiver = 'chandrasekhar.valluri@eds.com'.

*i_reclist-express = 'X'. "Send express

i_reclist-rec_type = 'U'.

APPEND i_reclist.

  • Sending mail.

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

document_data = w_doc_chng

put_in_outbox = 'X'

TABLES

packing_list = i_objpack

object_header = w_objhead

contents_hex = i_objbin

contents_txt = i_objtxt

receivers = i_reclist

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.

points wl be rewarded,if it is useful

thanks in advance.

1 REPLY 1
Read only

Former Member
0 Likes
388

HI,

Here is the complete program for you.. I have done the same requirment..

----


  • *

  • P R O G R A M D E C L A R A T I O N *

  • *

----


  • PROGRAM ID : ZF_QUERY_BANK

  • AUTHOR : Mahesh Raganmoni

  • OWNER(Process Team) :

  • CREATE DATE : 03/04/2004

  • R/3 RELEASE VERSION : 4.72

  • BASED-ON PROGRAM : none

  • ADS : BP14.B&CF.301

  • DESCRIPTION : This program calles the Bank Query Smartform

  • and sends this smartforms as an email to the

  • bank

***********************************************************************

*

  • MODIFICATION LOG CONTROL (Most recent on top):

  • DATE AUTHOR CTS REQ DESCRIPTION

----


*09/13/2004 Mahesh Raganmoni DR1K901766 Original Version *

----


----


  • T A B L E S *

----


TABLES : BUT021, "BP: Address usages

BUT020, "BP: Addresses

T001, "Company Codes

DFKKZP, "Payment lot: Data for payment

BUT000, "BP: General data I

ADR3, "Fax Numbers (Business Address Services)

BNKA, "Bank master record

T012. "House Banks

----


  • Internal Tables *

----


*Address Details of Business Partner

DATA :IT_ADDRESS LIKE STANDARD TABLE OF BUS020_EXT WITH HEADER LINE.

*Return Table

DATA : IT_RETURN LIKE STANDARD TABLE OF BAPIRET2.

  • PDF Data to hold the data to be sent as an attachment

DATA : IT_PDF_NUC_DATA TYPE STANDARD TABLE OF SOLI.

  • Converted data from OTF

DATA : IT_PDF_TABLE TYPE RCL_BAG_TLINE.

  • Data Declaration for Sendig Email

DATA: IT_OBJPACK LIKE SOPCKLSTI1 OCCURS 1 WITH HEADER LINE,

IT_OBJHEAD LIKE SOLISTI1 OCCURS 1 WITH HEADER LINE,

IT_OBJTXT LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,

IT_OBJBIN LIKE SOLISTI1 OCCURS 10 WITH HEADER LINE,

IT_OBJHEX LIKE SOLIX OCCURS 10 WITH HEADER LINE,

IT_RECLIST LIKE SOMLRECI1 OCCURS 1 WITH HEADER LINE,

IT_LISTOBJECT LIKE ABAPLIST OCCURS 1 WITH HEADER LINE.

----


  • Structures *

----


DATA :WA_BUS000 TYPE BUS000_EXT, "Business Partner Details

WA_ADDRESS TYPE BAPIADDR3, "Collector Address

WA_OUTPUT_OPTIONS TYPE SSFCOMPOP,

WA_CONTROL_PARAMETERS TYPE SSFCTRLOP,

WA_OUTPUT_DATA TYPE SSFCRESCL,

WA_HEADER TYPE ZFCOLL_HEADER, "Smartform Header Info

WA_DFKKZP TYPE DFKKZP,

WA_DOCDATA LIKE SODOCCHGI1.

----


  • Variables *

----


DATA : W_FORMNAME TYPE TDSFNAME, "Smartform Name

W_NAME_ORG TYPE CHAR35, "Business Partner Name

W_ADDRNUMBER LIKE BUT021-ADDRNUMBER, "Address Number of BP

W_ADDRESS1 TYPE CHAR35, "Address Line 1

W_ADDRESS2 TYPE CHAR35, "Address Line 2

W_ADDRESS3 TYPE CHAR35, "Address Line 3

W_GE_NAME TYPE CHAR35, "GE Contact Name

W_GE_PHONE TYPE CHAR35, "GE Contact Phone

W_GE_PHONE1 TYPE CHAR35, "GE Contact Phone

W_GE_PHONE_EX TYPE CHAR10, "GE Contact Phone

W_GE_EMAIL TYPE CHAR35, "GE Contact Email

W_CLIENT_NAME TYPE CHAR30, "Client Name

W_GE_FAX TYPE CHAR35, "GE Fax No

W_GE_FAX1 TYPE CHAR35, "GE Fax No

W_CLIENT_FAX TYPE CHAR35, "Client's Fax No

W_PDF_LEN TYPE I, "Length of PDF file

W_ERR_MESG(120) TYPE C, "Error Message

W_ORG1R LIKE DFKKCR-ORG1R, "Company Code

W_REFERENCE LIKE DFKKCR-REFERENCE, "Payment Reference

W_FNAME TYPE RS38L_FNAM, "Smartform Function Module

" Name

W_SFNAME TYPE TDSFNAME, " Smart Form Name

W_BANKN TYPE CHAR18, "Bank Account Number

W_BETRZ TYPE CHAR15, " Credit AMount

W_WAERS TYPE CHAR5, " Credit Currency

W_VALUT TYPE DFKKZP-VALUT. " Value Date

  • VARIABLES FOR EMAIL

DATA: W_TAB_LINES TYPE I,

W_DOC_SIZE TYPE I,

W_ATT_TYPE LIKE SOODK-OBJTP,

W_DATFM TYPE XUDATFM.

  • VARIABLES FOR DATE

DATA: W_DAY(2) TYPE C,

W_MONTH(2) TYPE C,

W_YEAR(4) TYPE C,

W_DATE(10) TYPE C.

*----


    • Constants *

*----


*

DATA : C_SELECTED TYPE C VALUE 'X', "Constant for Checked

C_COMMA(2) TYPE C VALUE ', ',"Constant for Comma

C_HYPHEN TYPE C VALUE '-'. "Constant for Hypen

*----


    • Selection Screen *

*----


SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.

PARAMETERS: P_KEYZ1 TYPE RFKZ0-KEYZ1 OBLIGATORY, "Payment Lot

P_POSZA TYPE DFKKZP-POSZA OBLIGATORY. "Item Number

SELECTION-SCREEN END OF BLOCK b1.

SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.

PARAMETERS: P_REMIT TYPE C AS CHECKBOX DEFAULT 'X', " Remitter Form

P_GENRL TYPE C AS CHECKBOX USER-COMMAND RG1, " General Form

P_TEXT TYPE AD_SMTPADR MODIF ID SC1. " Free Text

SELECTION-SCREEN END OF BLOCK b2.

SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.

PARAMETERS:P_MAIL TYPE C AS CHECKBOX USER-COMMAND RG2, "Send Email

P_MAILID TYPE AD_SMTPADR MODIF ID SC2.

SELECTION-SCREEN END OF BLOCK b3.

*----


    • Initialization *

*----


WA_OUTPUT_OPTIONS-XDFCMODE = 'X'.

WA_OUTPUT_OPTIONS-XDF = SPACE.

WA_OUTPUT_OPTIONS-XSFCMODE = 'X'.

WA_OUTPUT_OPTIONS-XDF = SPACE.

*----


    • At Selection Screen Output *

*----


AT SELECTION-SCREEN OUTPUT.

LOOP AT SCREEN.

IF SCREEN-GROUP1 = 'SC1'.

IF P_GENRL = C_SELECTED.

SCREEN-INPUT = 1.

ELSE.

CLEAR P_TEXT.

SCREEN-INPUT = 0.

ENDIF.

ENDIF.

IF SCREEN-GROUP1 = 'SC2'.

IF P_MAIL = C_SELECTED.

SCREEN-INPUT = 1.

ELSE.

CLEAR P_MAILID.

SCREEN-INPUT = 0.

ENDIF.

ENDIF.

MODIFY SCREEN.

ENDLOOP.

AT SELECTION-SCREEN.

IF P_REMIT NE C_SELECTED AND P_GENRL NE C_SELECTED.

MESSAGE E004 WITH TEXT-004.

ENDIF.

*----


    • Start of selection *

*----


START-OF-SELECTION.

IF P_GENRL EQ C_SELECTED.

IF P_TEXT IS INITIAL.

MESSAGE I004 WITH TEXT-023.

STOP.

ENDIF.

ENDIF.

IF P_MAIL EQ C_SELECTED.

IF P_MAILID IS INITIAL.

MESSAGE I004 WITH TEXT-005.

STOP.

ENDIF.

ENDIF.

**Getting Payment Lot and Payment Lot number

PERFORM GET_PAYMENT_DETAILS.

IF NOT WA_DFKKZP IS INITIAL.

    • Getting the Bank Details

PERFORM GET_BANK_DETAILS.

**Getting the Ge Contact Details

PERFORM GET_GE_CONTACT_DETAILS .

    • Populating the Structure fields to pass to smartform

PERFORM FILL_EXPORT_STRUCTURES.

CLEAR W_FNAME.

  • Getting the Function Module name for the Smartform

IF P_REMIT EQ C_SELECTED AND P_GENRL NE C_SELECTED.

W_SFNAME = 'ZF_REMITTER_FORM'.

PERFORM GET_FORMNAME .

ELSEIF P_REMIT NE C_SELECTED AND P_GENRL EQ C_SELECTED.

W_SFNAME = 'ZF_GENERAL_FORM'.

PERFORM GET_FORMNAME .

ELSEIF P_REMIT EQ C_SELECTED AND P_GENRL EQ C_SELECTED.

W_SFNAME = 'ZF_QUERY_BANK_FORM'.

PERFORM GET_FORMNAME .

ENDIF.

IF NOT W_FNAME IS INITIAL.

PERFORM CALL_FORM.

IF P_MAIL EQ 'X'.

IF NOT P_MAILID IS INITIAL.

PERFORM SET_PARAMETERS.

PERFORM DEVICE_TYPE.

PERFORM CALL_FORM.

PERFORM CONVERT_TO_PDF.

PERFORM CONVERT_PDF_TO_BINARY.

PERFORM SEND_MAIL_NO_DISPLAY.

ENDIF.

ENDIF.

ENDIF.

ENDIF.

&----


*& Form GET_FORMNAME

&----


  • Fetch the Function module name for the Smartform

----


FORM GET_FORMNAME .

CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'

EXPORTING

formname = W_SFNAME

IMPORTING

FM_NAME = W_FNAME

EXCEPTIONS

NO_FORM = 1

NO_FUNCTION_MODULE = 2

OTHERS = 3.

IF sy-subrc <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " GET_FORMNAME

&----


*& Form CALL_FORM

&----


  • To Call the Smartform

----


FORM CALL_FORM .

SHIFT W_BETRZ LEFT DELETING LEADING SPACE.

CALL FUNCTION W_FNAME

EXPORTING

CONTROL_PARAMETERS = WA_CONTROL_PARAMETERS

OUTPUT_OPTIONS = WA_OUTPUT_OPTIONS

USER_SETTINGS = 'X'

S_HEADER = WA_HEADER

V_ACNO = W_BANKN

V_AMOUNT = W_BETRZ

V_CURR = W_WAERS

V_DATE = W_VALUT

V_TEXT = P_TEXT

IMPORTING

JOB_OUTPUT_INFO = WA_OUTPUT_DATA

EXCEPTIONS

FORMATTING_ERROR = 1

INTERNAL_ERROR = 2

SEND_ERROR = 3

USER_CANCELED = 4

OTHERS = 5.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " CALL_FORM

&----


*& Form FILL_EXPORT_STRUCTURES

&----


  • Populate the structure to send to the smartform as input

----


FORM FILL_EXPORT_STRUCTURES .

WA_HEADER-BANKA = BNKA-BANKA.

WA_HEADER-ADDR_1 = BNKA-STRAS.

WA_HEADER-ADDR_2 = BNKA-ORT01.

WA_HEADER-ADDR_3 = BNKA-PROVZ.

WA_HEADER-ZZSRCBPNM = T012-NAME1.

SHIFT WA_HEADER-ZZSRCBPNM LEFT DELETING LEADING SPACE.

WA_HEADER-FAX_NUMBER = W_CLIENT_FAX.

WA_HEADER-BUTXT = T001-BUTXT.

WA_HEADER-NAME1 = W_GE_NAME.

WA_HEADER-TEL_NUMBER = W_GE_PHONE.

WA_HEADER-TEL_EXTENS = W_GE_PHONE_EX.

WA_HEADER-SMTP_ADDR = W_GE_EMAIL.

WA_HEADER-GE_FAX_NUMBER = W_GE_FAX.

ENDFORM. " FILL_EXPORT_STRUCTURES

&----


*& FORM CONVERT_TO_PDF

&----


  • Convert the final doucment (OTF FORMAT) into pdf format

----


FORM CONVERT_TO_PDF .

CALL FUNCTION 'CONVERT_OTF'

EXPORTING

FORMAT = 'PDF'

IMPORTING

BIN_FILESIZE = W_PDF_LEN

TABLES

OTF = WA_OUTPUT_DATA-OTFDATA

LINES = IT_PDF_TABLE

EXCEPTIONS

ERR_MAX_LINEWIDTH = 1

ERR_FORMAT = 2

ERR_CONV_NOT_POSSIBLE = 3

ERR_BAD_OTF = 4

OTHERS = 5.

ENDFORM. " CONVERT_TO_PDF

&----


*& FORM SET_PARAMETERS

&----


  • Set control parameters to get the output format (OTF) from smart form*

----


FORM SET_PARAMETERS .

WA_CONTROL_PARAMETERS-NO_DIALOG = 'X'.

WA_CONTROL_PARAMETERS-GETOTF = 'X'.

WA_CONTROL_PARAMETERS-LANGU = SY-LANGU.

ENDFORM. " SET_PARAMETERS

&----


*& FORM DEVICE_TYPE

&----


  • Get the Device type

----


FORM DEVICE_TYPE .

CALL FUNCTION 'SSF_GET_DEVICE_TYPE'

EXPORTING

I_LANGUAGE = WA_CONTROL_PARAMETERS-LANGU

IMPORTING

E_DEVTYPE = WA_OUTPUT_OPTIONS-TDPRINTER

EXCEPTIONS

NO_LANGUAGE = 1

LANGUAGE_NOT_INSTALLED = 2

NO_DEVTYPE_FOUND = 3

SYSTEM_ERROR = 4

OTHERS = 5.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " DEVICE_TYPE

&----


*& FORM CONVERT_PDF_TO_BINARY

&----


  • To convert PDF file to Binary format

----


FORM CONVERT_PDF_TO_BINARY .

CALL FUNCTION 'QCE1_CONVERT'

TABLES

T_SOURCE_TAB = IT_PDF_TABLE

T_TARGET_TAB = IT_PDF_NUC_DATA

EXCEPTIONS

CONVERT_NOT_POSSIBLE = 1

OTHERS = 2.

IF SY-SUBRC <> 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDFORM. " CONVERT_PDF_TO_BINARY

&----


*& FORM SEND_MAIL_NO_DISPLAY

&----


  • To send a email

----


FORM SEND_MAIL_NO_DISPLAY .

DATA: L_SLINE(255) TYPE C,

L_INDEX TYPE SY-TABIX.

IT_OBJBIN[] = IT_PDF_NUC_DATA[].

  • Title and Description of the mail

WA_DOCDATA-OBJ_DESCR = TEXT-012.

  • Mail Body content

PERFORM MAIL_BODY.

DESCRIBE TABLE IT_OBJTXT LINES W_TAB_LINES.

READ TABLE IT_OBJTXT INDEX W_TAB_LINES INTO L_SLINE.

L_INDEX = W_TAB_LINES + 1.

WA_DOCDATA-DOC_SIZE = ( W_TAB_LINES ) * 255 + STRLEN( L_SLINE ).

WA_DOCDATA-OBJ_EXPDAT = '29991231'.

WA_DOCDATA-SENSITIVTY = 'O'.

WA_DOCDATA-OBJ_PRIO = '5'.

WA_DOCDATA-EXPIRY_DAT = '29991231'.

WA_DOCDATA-PROC_TYPE = 'R'.

CLEAR IT_OBJPACK-TRANSF_BIN .

IT_OBJPACK-HEAD_START = 0.

IT_OBJPACK-HEAD_NUM = 0.

IT_OBJPACK-BODY_START = 1.

IT_OBJPACK-BODY_NUM = W_TAB_LINES.

IT_OBJPACK-DOC_TYPE = 'RAW'.

IT_OBJPACK-OBJ_DESCR = TEXT-013.

APPEND IT_OBJPACK.

  • Create message attachment

W_ATT_TYPE = 'PDF'.

DESCRIBE TABLE IT_OBJBIN LINES W_TAB_LINES.

READ TABLE IT_OBJBIN INDEX W_TAB_LINES.

L_INDEX = W_TAB_LINES + 1.

IT_OBJPACK-DOC_SIZE = ( W_TAB_LINES ) * 255 .

IT_OBJPACK-TRANSF_BIN = 'X'.

IT_OBJPACK-HEAD_START = 0.

IT_OBJPACK-HEAD_NUM = 0.

IT_OBJPACK-BODY_START = 1.

IT_OBJPACK-BODY_NUM = W_TAB_LINES.

IT_OBJPACK-DOC_TYPE = W_ATT_TYPE.

IT_OBJPACK-OBJ_DESCR = TEXT-013.

APPEND IT_OBJPACK.

  • Create receiver list

IT_RECLIST-RECEIVER = P_MAILID. "<-- CHANGE ADDRESS

IT_RECLIST-REC_TYPE = 'U'.

IT_RECLIST-EXPRESS = 'X'.

APPEND IT_RECLIST.

  • Send Email

CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'

EXPORTING

DOCUMENT_DATA = WA_DOCDATA

PUT_IN_OUTBOX = 'X'

COMMIT_WORK = 'X' "USED FROM REL.6.10

TABLES

PACKING_LIST = IT_OBJPACK

CONTENTS_BIN = IT_OBJBIN

CONTENTS_TXT = IT_OBJTXT

RECEIVERS = IT_RECLIST

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 'SO' TYPE 'S' NUMBER '023'

WITH WA_DOCDATA-OBJ_NAME.

ELSE.

SUBMIT RSCONN01 WITH MODE = 'INT' AND RETURN.

SET SCREEN 0.

ENDIF.

ENDFORM. " SEND_MAIL_NO_DISPLAY

&----


*& Form GET_PAYMENT_DETAILS

&----


  • Get the Payment Lot and Payment Number

----


FORM GET_PAYMENT_DETAILS .

    • Get the Payment Lot and Payment Number

SELECT SINGLE BETRZ

BVRKO

BUKRS

WAERS

VALUT

BANKS

BANKL

BANKN

FROM DFKKZP

INTO (WA_DFKKZP-BETRZ,WA_DFKKZP-BVRKO,

WA_DFKKZP-BUKRS,WA_DFKKZP-WAERS,WA_DFKKZP-VALUT,

WA_DFKKZP-BANKS,WA_DFKKZP-BANKL,WA_DFKKZP-BANKN)

WHERE KEYZ1 = P_KEYZ1

AND POSZA = P_POSZA.

IF SY-SUBRC NE 0.

MESSAGE I004 WITH TEXT-100.

EXIT.

ELSE.

W_ORG1R = WA_DFKKZP-BUKRS.

W_BETRZ = WA_DFKKZP-BETRZ.

W_BANKN = WA_DFKKZP-BANKN.

W_WAERS = WA_DFKKZP-WAERS.

W_VALUT = WA_DFKKZP-VALUT.

ENDIF.

ENDFORM. " GET_PAYMENT_DETAILS

&----


*& Form GET_BANK_DETAILS

&----


  • To Retrive the Bank Details

----


FORM GET_BANK_DETAILS .

*Get the Bank Address Details

SELECT SINGLE BANKA

STRAS

ORT01

PROVZ

FROM BNKA

INTO (BNKA-BANKA,BNKA-STRAS,BNKA-ORT01,BNKA-PROVZ)

WHERE BANKS = WA_DFKKZP-BANKS

AND BANKL = WA_DFKKZP-BANKL.

IF SY-SUBRC NE 0.

  • MESSAGE I004 WITH TEXT-101.

  • EXIT.

ENDIF.

  • GET The Bank Contact Name.

SELECT SINGLE NAME1

FROM T012

INTO T012-NAME1

WHERE BANKS = WA_DFKKZP-BANKS

AND BANKL = WA_DFKKZP-BANKL.

IF SY-SUBRC NE 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

IF NOT W_ORG1R IS INITIAL.

  • Get the GE Legal Entity Name

SELECT SINGLE BUTXT FROM T001

INTO T001-BUTXT

WHERE BUKRS = W_ORG1R.

IF SY-SUBRC NE 0.

  • MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO

  • * WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.

ENDIF.

ENDIF.

ENDFORM. " GET_BANK_DETAILS

&----


*& Form GET_COLLECTOR_DETAILS

&----


  • To get the Collector Address Details

----


FORM GET_GE_CONTACT_DETAILS .

*Getting the Collector details

CALL FUNCTION 'BAPI_USER_GET_DETAIL'

EXPORTING

USERNAME = SY-UNAME

IMPORTING

ADDRESS = WA_ADDRESS

TABLES

RETURN = IT_RETURN.

IF NOT WA_ADDRESS IS INITIAL.

CONCATENATE WA_ADDRESS-FIRSTNAME0(18) WA_ADDRESS-LASTNAME0(17)

INTO W_GE_NAME SEPARATED BY SPACE.

W_GE_PHONE = WA_ADDRESS-TEL1_NUMBR.

W_GE_PHONE_EX = WA_ADDRESS-TEL1_EXT.

W_GE_EMAIL = WA_ADDRESS-E_MAIL.

IF NOT WA_ADDRESS-FAX_EXTENS IS INITIAL.

CONCATENATE WA_ADDRESS-FAX_NUMBER C_HYPHEN WA_ADDRESS-FAX_EXTENS

INTO W_GE_FAX.

ELSE.

W_GE_FAX = WA_ADDRESS-FAX_NUMBER.

ENDIF.

ENDIF.

ENDFORM. " GET_GE_CONTACT_DETAILS

&----


*& Form MAIL_BODY

&----


  • To Build the email body

----


FORM MAIL_BODY .

PERFORM GET_USER_DATE_FORMAT.

W_YEAR = W_VALUT+0(4).

W_MONTH = W_VALUT+4(2).

W_DAY = W_VALUT+6(2).

PERFORM GET_DATE.

IF P_REMIT EQ 'X' .

CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE

SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-021 WA_HEADER-BUTXT ',' TEXT-022

INTO IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

SHIFT W_BETRZ LEFT DELETING LEADING SPACE.

CONCATENATE TEXT-024 W_DATE

TEXT-025 W_BETRZ W_WAERS TEXT-026

INTO IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = TEXT-027.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = WA_HEADER-NAME1.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-028 WA_HEADER-BUTXT INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = TEXT-029.

APPEND IT_OBJTXT.

CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE

SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-032 WA_HEADER-SMTP_ADDR INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-033 WA_HEADER-BUTXT INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

ELSEIF P_GENRL EQ 'X'.

CLEAR IT_OBJTXT.

REFRESH IT_OBJTXT.

CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE

SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-021 WA_HEADER-BUTXT '.'

INTO IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-034 P_TEXT '.'

INTO IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = TEXT-027.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = WA_HEADER-NAME1.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-028 WA_HEADER-BUTXT INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = TEXT-029.

APPEND IT_OBJTXT.

CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE

SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-032 WA_HEADER-SMTP_ADDR INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

ELSEIF ( P_REMIT EQ 'X' AND P_GENRL EQ 'X' ).

CONCATENATE TEXT-020 WA_HEADER-ZZSRCBPNM ',' INTO IT_OBJTXT-LINE

SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-021 WA_HEADER-BUTXT ',' TEXT-022

INTO IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

SHIFT W_BETRZ LEFT DELETING LEADING SPACE.

CONCATENATE TEXT-024 W_DATE TEXT-025 W_BETRZ W_WAERS TEXT-026

INTO IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = TEXT-027.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = WA_HEADER-NAME1.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-028 WA_HEADER-BUTXT INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

IT_OBJTXT-LINE = TEXT-029.

APPEND IT_OBJTXT.

CONCATENATE TEXT-030 W_GE_FAX INTO IT_OBJTXT-LINE

SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-031 W_GE_PHONE TEXT-035 W_GE_PHONE_EX INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-032 WA_HEADER-SMTP_ADDR INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

CONCATENATE SPACE SPACE SPACE INTO IT_OBJTXT-LINE.

APPEND IT_OBJTXT.

CONCATENATE TEXT-033 WA_HEADER-BUTXT INTO

IT_OBJTXT-LINE SEPARATED BY SPACE.

APPEND IT_OBJTXT.

ENDIF.

ENDFORM. " MAIL_BODY

&----


*& Form get_user_date_format

&----


  • to get the User Date Format from USR01 table

----


FORM GET_USER_DATE_FORMAT.

CLEAR W_DATFM.

SELECT SINGLE DATFM INTO W_DATFM

FROM USR01

WHERE BNAME = SY-UNAME.

ENDFORM. " get_user_date_format

&----


*& Form GET_DATE

&----


  • Get the date in the user format

----


FORM GET_DATE .

CLEAR W_DATE.

CASE W_DATFM.

WHEN '1'.

CONCATENATE W_DAY '.' W_MONTH '.' W_YEAR INTO W_DATE.

WHEN '2'.

CONCATENATE W_MONTH '/' W_DAY '/' W_YEAR INTO W_DATE.

WHEN '3'.

CONCATENATE W_MONTH '-' W_DAY '-' W_YEAR INTO W_DATE.

WHEN '4'.

CONCATENATE W_YEAR '.' W_MONTH '.' W_DAY INTO W_DATE.

WHEN '5'.

CONCATENATE W_YEAR '/' W_MONTH '/' W_DAY INTO W_DATE.

WHEN '6'.

CONCATENATE W_YEAR '-' W_MONTH '-' W_DAY INTO W_DATE.

ENDCASE.

ENDFORM. " GET_DATE

Thanks

Mahesh