Skip to Content
author's profile photo Former Member
Former Member

Functional Module which can send FAX

Hi All,

Can you please suggest a function module which we can use to send fax. We wanted to fax the output list genrated by the program.

Regards,

Vidya.

Add a comment
10|10000 characters needed characters exceeded

Related questions

3 Answers

  • author's profile photo Former Member
    Former Member
    Posted on Jan 24, 2008 at 08:32 AM

    The following program shows you how to send a fax from within ABAP/4. The report is delivered

    in the standard system and is used in Transaction SCOM for the function "Send test fax".

    Only the method via the call of SAPscript with DEVICE='TELEFAX', described below, ensures the

    generation of a correct transmission request, independent of the R/3 release and of the used

    fax server solution and its configuration.

    The regular printing (for example, with NEW-PAGE PRINT ON...) on an output device created in

    the spool administration of the device class 'Telefax' does generally not work!

    REPORT RSKSENDF MESSAGE-ID SK.

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

    Test report to send a test fax

    sends a fax to the number <TO_CNTRY>-<TO_NMBER>

    containing an automatically generated message text.

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

    TABLES: USR03.

    PARAMETERS: TO_CNTRY LIKE T005-LAND1 OBLIGATORY,

    TO_NMBER LIKE TSP01-RQTELENUM OBLIGATORY,

    FROM_USR(30) TYPE C DEFAULT SY-UNAME,

    TO_RECIP(30) TYPE C DEFAULT SY-UNAME.

    SAPscript content ITAB

    DATA: BEGIN OF TEST_DOC OCCURS 10.

    INCLUDE STRUCTURE TLINE.

    DATA: END OF TEST_DOC.

    SAPscript header struct

    DATA BEGIN OF HEADER.

    INCLUDE STRUCTURE THEAD.

    DATA END OF HEADER.

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

    INITIALIZATION.

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

    get county from user addres in usr03

    system->user profile->user address

    check if not empty

    SELECT SINGLE * FROM USR03 WHERE BNAME = SY-UNAME.

    IF SY-SUBRC = 0 AND USR03-LAND1 SPACE.

    TO_CNTRY = USR03-LAND1.

    ENDIF.

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

    START-OF-SELECTION.

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

    PERFORM FILL_UP_TEST_DOC.

    PERFORM SHOW_TEST_DOC.

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

    AT PF08.

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

    PERFORM SEND_FAX TABLES TEST_DOC USING TO_CNTRY

    TO_NMBER.

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

    AT SELECTION-SCREEN ON TO_NMBER.

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

    PERFORM CHECK_NUMBER USING TO_CNTRY TO_NMBER.

    &----


    *& Form CHECK_NUMBER

    &----


    FORM CHECK_NUMBER USING

    COUNTRY

    NUMBER.

    DATA: SERVICE LIKE TSKPA-SERVICE VALUE 'TELEFAX',

    LEN LIKE SY-FDPOS.

    FIELD-SYMBOLS

    .

    windows GUI push the ? from mandatory input instead

    of overwriting it

    LEN = STRLEN( TO_NMBER ).

    IF LEN > 1.

    SUBTRACT 1 FROM LEN.

    ASSIGN TO_NMBER+LEN(1) TO

    .

    IF

    = '?'.

    = SPACE.

    ENDIF.

    ENDIF.

    official check FM

    CALL FUNCTION 'TELECOMMUNICATION_NUMBER_CHECK'

    EXPORTING

    COUNTRY = COUNTRY

    NUMBER = NUMBER

    SERVICE = SERVICE.

    on old 21?/22? release you may have to handle the

    exception

    because the Function uses RAISE instead of

    MESSAGE... RAISING....

    ENDFORM. " CHECK_NUMBER

    &----


    *& Form FILL_UP_TEST_DOC

    &----


    fills test text in itab TEST_DOC *

    real life example needs to get real life data *

    -


    FORM FILL_UP_TEST_DOC.

    DATA: DATUM(12) TYPE C,

    UZEIT(10) TYPE C.

    SAPscript initialization

    of course, you may want to set a few parameter

    (FORM,LAYOUT,....)

    CALL FUNCTION 'INIT_TEXT'

    EXPORTING

    ID = 'ST '

    LANGUAGE = SY-LANGU

    NAME = 'FOO-BAR'

    OBJECT = 'TEXT'

    IMPORTING

    HEADER = HEADER

    TABLES

    LINES = TEST_DOC

    EXCEPTIONS

    OTHERS = 1.

    IF SY-SUBRC 0.

    MESSAGE A400 WITH 'INIT_TEXT'.

    ENDIF.

    PERFORM ADD_EMPTY_LINE.

    WRITE: SY-DATUM TO DATUM.

    WRITE: SY-UZEIT TO UZEIT.

    PERFORM ADD_LINES USING 'This is test Telefax'(001)

    DATUM UZEIT.

    PERFORM ADD_EMPTY_LINE.

    PERFORM ADD_LINES USING 'From: &'(002) FROM_USR SPACE.

    PERFORM ADD_LINES USING 'To: &'(003) TO_RECIP SPACE.

    PERFORM ADD_LINES USING 'Fax number: & &'(004)

    TO_CNTRY TO_NMBER.

    PERFORM ADD_EMPTY_LINE.

    PERFORM ADD_LINES USING

    'This is a test fax send by Report RSKSENDF'(005)

    SPACE SPACE.

    PERFORM ADD_LINES USING 'on SAP system & '(006)

    SY-SYSID SPACE.

    PERFORM ADD_EMPTY_LINE.

    PERFORM ADD_LINES USING

    'the quick brown fox jumps over the lazy dog.'(101)

    SPACE SAPCE.

    PERFORM ADD_LINES USING

    'THE QUICK BROWN FOX JUMPS OVER THE LAZY DOG.'(102)

    SPACE SAPCE.

    PERFORM ADD_EMPTY_LINE.

    PERFORM ADD_LINES USING 'End of test'(007) SPACE

    SPACE.

    ENDFORM. " FILL_UP_TEST_DOC

    &----


    *& Form ADD_LINES

    &----


    printf a line an appends it in test_doc *

    -


    --> cformat format.

    --> p1 param1

    --> p2 param2

    -


    FORM ADD_LINES USING CFORMAT P1 P2.

    TEST_DOC-TDFORMAT = '/'.

    TEST_DOC-TDLINE = CFORMAT.

    IF TEST_DOC-TDLINE CA '&'.

    REPLACE '&' WITH P1 INTO TEST_DOC-TDLINE.

    IF TEST_DOC-TDLINE CA '&'.

    REPLACE '&' WITH P2 INTO TEST_DOC-TDLINE.

    ENDIF.

    ENDIF.

    APPEND TEST_DOC.

    ENDFORM. " ADD_LINES

    &----


    *& Form ADD_EMPTY_LINE

    &----


    appends an empty line to test_doc *

    -


    FORM ADD_EMPTY_LINE.

    TEST_DOC-TDFORMAT = '/'.

    CLEAR TEST_DOC-TDLINE.

    APPEND TEST_DOC.

    ENDFORM. " ADD_EMPTY_LINE

    &----


    *& Form SHOW_TEST_DOC

    &----


    lists the test doc for aproval *

    *>>>> this is for fun only because PRINT_TEXT also

    offers a preview *

    -


    FORM SHOW_TEST_DOC.

    FORMAT COLOR COL_BACKGROUND INTENSIFIED OFF.

    WRITE: / 'Test fax would look like this:'(020).

    ULINE.

    SKIP.

    LOOP AT TEST_DOC.

    IF TEST_DOC-TDLINE SPACE.

    WRITE:/ TEST_DOC-TDLINE.

    ELSE.

    SKIP.

    ENDIF.

    ENDLOOP.

    SKIP.

    ULINE.

    FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.

    WRITE: 'Press PF8 to send it'(021).

    ENDFORM. " SHOW_TEST_DOC

    &----


    *& Form SEND_FAX

    &----


    send fax by calling SAPscript *

    -


    Note: Instead of using PRINT_TEXT you may also *

    call OPEN_FORM / WRITE_FORM_LINES / CLOSE_FORM, *

    this allows you to use a similar program structure *

    as with NEW-PAGE PRINT ON / WRITE / NEW-PAGE PRINT

    OFF *

    -


    FORM SEND_FAX

    TABLES DOC2FAX STRUCTURE TEST_DOC

    USING COUNTRY

    NUMBER.

    DATA: SID(5) TYPE N.

    DATA BEGIN OF POPT.

    INCLUDE STRUCTURE ITCPO.

    DATA END OF POPT.

    DATA BEGIN OF PRES.

    INCLUDE STRUCTURE ITCPP.

    DATA END OF PRES.

    CLEAR POPT.

    POPT-TDCOPIES = 1. " one copy

    POPT-TDDEST = " done internaly by script,

    POPT-TDPRINTER = " do not fill !!!

    POPT-TDNEWID = 'X'. " do not reuse old spool request

    POPT-TDDATASET = 'TEST'(022). " fill as you want

    POPT-TDSUFFIX1 = 'FAX'(023). " fill as you want

    POPT-TDSUFFIX2 = SY-UNAME. " fill as you want

    POPT-TDIMMED = 'X'. " send now

    POPT-TDLIFETIME = 8. " keep 8 days in spool

    POPT-TDTELENUM = NUMBER. " number without country code

    POPT-TDTELELAND = COUNTRY. " country of recipient

    POPT-TDCOVER = 'test fax'(024).

    POPT-TDCOVTITLE = 'test fax'(024).

    POPT-TDIEXIT = 'X'.

    CALL FUNCTION 'PRINT_TEXT'

    EXPORTING

    APPLICATION = 'TX'

    ARCHIVE_INDEX = ' '

    ARCHIVE_PARAMS = ' '

    DEVICE = 'TELEFAX' "<<< here we say: fax it !

    DIALOG = 'X'

    HEADER = HEADER

    OPTIONS = POPT

    IMPORTING

    RESULT = PRES

    TABLES

    LINES = DOC2FAX

    EXCEPTIONS

    OTHERS = 01.

    do not bother with exception in sample code

    CANCELED = 01

    DEVICE = 02

    FORM = 03

    OPTIONS = 04

    UNCLOSED = 05

    UNKNOWN = 06

    FORMAT = 07

    TEXTFORMAT = 08

    EXTERNAL = 09.

    IF SY-SUBRC = 0.

    arriving here means we could send:

    SID = PRES-TDSPOOLID.

    IF SID > '00000'.

    MESSAGE S433 WITH SID.

    ENDIF.

    LEAVE .

    ELSE.

    do not bother with exception in sample code

    MESSAGE A400 WITH 'PRIN_TEXT'.

    ENDIF.

    ENDFORM. " SEND_FAX

    Regards.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 24, 2008 at 08:33 AM

    FM to send the fax

    SO_OBJECT_SEND

    CONVERT_OTF_AND_FAX

    Reward if useful.

    Add a comment
    10|10000 characters needed characters exceeded

  • author's profile photo Former Member
    Former Member
    Posted on Jan 30, 2008 at 11:57 AM

    used classes in OSS Note.

    Regards,

    Vidya.

    Add a comment
    10|10000 characters needed characters exceeded

Before answering

You should only submit an answer when you are proposing a solution to the poster's problem. If you want the poster to clarify the question or provide more information, please leave a comment instead, requesting additional details. When answering, please include specifics, such as step-by-step instructions, context for the solution, and links to useful resources. Also, please make sure that you answer complies with our Rules of Engagement.
You must be Logged in to submit an answer.

Up to 10 attachments (including images) can be used with a maximum of 1.0 MB each and 10.5 MB total.