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

Fax problem

Former Member
0 Likes
705

Hi all,

I ma getting Error message <b>( No delivery to 00918042513369, as recipient unknown )</b> while sending Fax through ABAP prog.

What is the problem ? I am using this FM

<b>SO_NEW_DOCUMENT_SEND_API1</b> to send Email and Fax. Email is working perfectly but Fax is going.

Regards,

Balavardhan.K

6 REPLIES 6
Read only

Former Member
0 Likes
672

Hi,

In FM SO_NEW_DOCUMENT_SEND_API1,

Check for the value of the field passed to it in Tables RECEIVERS -COM_TYPE

to be passed as 'F'.

Regards,

Anji

Read only

0 Likes
672

Hi Anji,

I have already passed RECEIVERS -COM_TYPE = 'F' but i'm getting error. Is there any configuartion problem

Read only

Former Member
0 Likes
672

Balavardhan,

Check your code with below code....

How can you send a fax from within ABAP/4 programs?

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

  • 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 <P>.

IF <P> = '?'.

<P> = 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

Pls. mark if useful

Read only

Former Member
0 Likes
672

Hi,

Plz check the below code......

FORM get_faxit .

DATA: user LIKE sy-uname.

DATA: param LIKE itcpp.

DATA: BEGIN OF off_obj.

INCLUDE STRUCTURE soodk.

DATA: END OF off_obj.

DATA: ok TYPE c.

DATA: msg TYPE char50.

DATA: msgid TYPE symsgid,

msgno TYPE symsgno,

msgv1 TYPE symsgv,

msgv2 TYPE symsgv,

msgv3 TYPE symsgv,

msgv4 TYPE symsgv.

  • Call the OTF to FAX FM to send the data

CLEAR: msg, sucfg.

msg = 'Fax request & created successfully'(008).

user = sy-uname.

param-tdteleland = xkna1-land1.

param-tdtelenum = p_faxno.

param-tdcover = false.

param-tddevice = 'TELEFAX'.

IF param-tdfaxuser <> space.

user = param-tdfaxuser.

ELSE.

user = sy-uname.

ENDIF.

CALL FUNCTION 'CONVERT_OTF_AND_FAX'

EXPORTING

faxoptions = param

user = user

IMPORTING

fax_ok = ok

office_objid = off_obj

msgid = msgid

msgno = msgno

msgv1 = msgv1

msgv2 = msgv2

msgv3 = msgv3

msgv4 = msgv4

TABLES

otf = it_otfdata. " you can get the data from sapscript/smartform

IF ok = true.

  • Send Fax is successful

REPLACE '&' WITH off_obj-objno INTO msg.

MESSAGE s000(zz) WITH msg.

param-tdfaxid = off_obj-objno.

sucfg = true.

ELSE.

  • Error

  • MESSAGE ID msgid TYPE 'E' NUMBER msgno

  • WITH msgv1 msgv2 msgv3 msgv4

  • RAISING send_error.

ENDIF.

COMMIT WORK.

ENDFORM. " get_faxit

regards,

Sateesh...

Read only

Former Member
0 Likes
672

hI,

Use the following FM:

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.

Hope this helps.

Reward if helpful.

Regards,

Sipra

Read only

0 Likes
672

Hi all,

Can't we send Fax using this FM <b>SO_NEW_DOCUMENT_SEND_API1</b>.