Sending Smartforms through Fax
Hi,
Can anybody suggest me, how to send the smartform through FAX? The output need not be printed instead it should be sent as FAX.
Thanks and Regards,
Lakshmi
Hi,
Check this sample code helps your purpose.If so,kindly reward points by clicking the star on the elft of reply,if it helps.
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
Similar Messages
-
Hai All,
could anyone help me with the sample code..I want to know the parameters for fax while calling the function module..
ThanksHI LAXMI,
CHECK THESE THREADS...
Sending Smartforms through Fax
Sending SMARTFORM output to FAX gateway
How to fax a smartform? -
Problem while sending Smartform through Fax
Hi Folks,
I am sending a Smartform through fax by setting the essential Control Parameters and Output Options while calling the function module of the Smartform.
In SOST I get the status message 710(Message transferred to node FAX(...) ) and later in around 20 minutes the message 812(No delivery to FAX(.......fax no) ) occurs for some requests.
Only few requests are sent successfully by the same program and same O/P Type and shows the status message 701(Delivered to FAX (................)).
There is no much time difference between those requests while creating.
Do you know what could be the problem?
Can you help me in solving the issue?may it be that in those cases where it doesnt work, that you got no fax number?
Since it works soemtimes, it seems there are no errors, but rather in some cases some important info is missing, fax number may be one of thsoe important info in a FAX scenario. -
Problems when trying to send a smartform through fax
Hi,
Im currently confronting a problem when sending smartforms through fax to multiple recipients.
This is the scenario Im working on:
The client needs to be able to send a document, could be a PO or invoices, to diferent recipients at the same time. So far in case of purchase orders, we have been able to find the respective faxes and emails for each of the partner functions.
Functionality for email is working as desired but when sending faxes I have problems.
Reviewing the output through SOST I get all my receipients which are email and faxes. Emails are fine since it creates a PDF attachment with the order and all of its details.
For fax I get the same even though the paramenters are set for fax.
Here is my code if you could please help me here on this one.
SELECT lifn2 FROM EkPA into l_ekpa-lifn2
WHERE EBELN = a_EBELN.
APPEND l_EKPA.
ENDSELECT.
SELECT adrnr
FROM lfa1
INTO itab-q_adrnr
FOR ALL ENTRIES IN l_ekpa WHERE lifnr = l_ekpa-lifn2.
APPEND itab.
ENDSELECT.
*& End of partner address
*& Selection of Address or Fax number from ADR3 & ADR6 according to ADRNR
*& Nato
IF sy-subrc EQ 0.
loop at itab.
SELECT SINGLE smtp_addr INTO (itab-q_mail)
from adr6 where addrnumber = itab-q_adrnr and flg_nouse eq space.
IF itab-q_mail ne Space.
Move 'U' to itab-q_typ2(1).
Move 'X' to itab-q_express(1).
Move 'EXT' to itab-XOBJT.
ENdIF.
SELECT SINGLE FAXNR_LONG INTO (itab-q_fax)
SELECT SINGLE country FAX_NUMBER INTO (itab-q_cty, itab-q_fax )
from adr3 where addrnumber = itab-q_adrnr and flg_nouse eq space.
If itab-q_fax ne space.
Move 'F' to itab-q_typ(1).
Move 'TELEFAX' to itab-q_com.
Endif.
Modify itab.
endloop.
*& END of ITAB
CLEAR : DOC_CHNG.
REFRESH LINES.
IF NAST-NACHA eq '7'.
* Fill both the fax & email Receiver lists
clear: reclist, reclist2.
refresh: reclist, reclist2.
*& loop table itab to update receipient list in table Reclist
*& Nato
loop at itab.
IF not itab-q_typ is initial.
concatenate itab-q_cty itab-q_fax into reclist2-RECNAM separated by space. "FAX NUMBER
move itab-q_fax to reclist2-receiver. "FAX NUMBER
*&>>>>>>>>>>>>>>>>>>>new entry for testing nato 080206<<<<<<<<<<<&
move itab-q_cty to RECLIST2-COUNTRY. "Country Code
move itab-q_fax to Reclist2-FAX. "Fax number
*&>>>>>>>>>>>>>>ENd of entry<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<&
move itab-q_typ to REClist2-REC_TYPE. "Communication type for fax
move itab-q_EXPRESS to Express. "comment for testing
move itab-q_com to REClist2-COM_TYPE.
Move 'X' to reclist2-NOTIF_DEL.
Move 'TELEFAX' to reclist2-SNDART. "TYPE OF DEVICE
Move a_ebeln to sood-OBJDES. "new addition for testing nato
append Reclist2.
endif.
IF not itab-q_typ2 is initial.
move itab-q_mail to REclist-receiver. "SMT ADDRESS
move itab-q_typ2 to REClist-REC_TYPE.
move itab-q_EXPRESS to REClist-express.
move 'X' to reclist-TO_ANSWER.
Move a_ebeln to sood-OBJDES. "new addition for testing nato
move itab-q_com to REClist-COM_TYPE. "comment for testing only
append Reclist.
Endif.
move reclist-receiver to address.
endLoop.
*& END OF RECipient
ENDIF.
DOC_CHNG-OBJ_DESCR = nast-objky.
ELSE.
IF RECLIST IS INITIAL.
LOOP AT reclist INTO RECIPIENT . " This logic might get commented or deleted. Nato 08/01/06
ENDLOOP.
ENDIF.
DOC_CHNG-OBJ_DESCR = L_TITLE.
ENDIF.
IF RECLIST[] IS INITIAL.
MESSAGE E573(VE) RAISING RECEIVER_NOT_FOUND.
ENDIF.
*& New entry to determine path according to communication
*& type
*& If comm type eq U follow convert_otf
*& then Read text, finaly send API
*& If comm type eq F follow path to "Convert OTF & FAX
*& Nato 080106
REFRESH : HOTFDATA, LT_SOLIX, OBJBIN.
LOOP AT JOB_OUTPUT_INFO-OTFDATA INTO HOTFDATA.
APPEND HOTFDATA.
ENDLOOP.
*& Prepare content to be converted to PDF format
*& nato
CALL FUNCTION 'CONVERT_OTF'
EXPORTING
FORMAT = 'PDF'
MAX_LINEWIDTH = 132
IMPORTING
BIN_FILESIZE = DOC_SIZE
BIN_FILE = LD_BINFILE
TABLES
OTF = HOTFDATA
LINES = HTLINE
EXCEPTIONS
ERR_MAX_LINEWIDTH = 1
ERR_FORMAT = 2
ERR_CONV_NOT_POSSIBLE = 3
OTHERS = 4.
*& new entry just for test today 080306
*&nato
*endif.
*&--end of entry--
I = 0.
N = XSTRLEN( LD_BINFILE ).
WHILE I < N.
LT_SOLIX-LINE = LD_BINFILE+I.
APPEND LT_SOLIX.
I = I + 255.
ENDWHILE.
*& end of convertion pdf
LOOP AT LT_SOLIX INTO WA_SOLIX.
CLEAR WA_SOLI.
ASSIGN WA_SOLI TO <PTR_HEX> CASTING.
MOVE WA_SOLIX TO <PTR_HEX>.
APPEND WA_SOLI TO OBJBIN.
ENDLOOP.
*& Prepare send mail
CLEAR : NAME, DOCNAME.
REFRESH : OBJTXT, OBJPACK.
CONCATENATE NAST-KAPPL NAST-KSCHL INTO NAME.
CONDENSE NAME.
IF NAST-NACHA NE '7'.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = 'STAM'
LANGUAGE = SY-LANGU
NAME = NAME
OBJECT = 'OCS'
ARCHIVE_HANDLE = 0
LOCAL_CAT = ' '
IMPORTING
HEADER =
TABLES
LINES = LINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 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.
ENDIF.
CONCATENATE NAST-OBJKY '.PDF' INTO DOCNAME .
CONDENSE DOCNAME.
*endif. "temp nato -080406
if reclist-rec_type eq 'U'.
DOC_CHNG-OBJ_NAME = 'Delivery'.
LOOP AT LINES.
OBJTXT = LINES-TDLINE.
APPEND OBJTXT.
ENDLOOP.
DESCRIBE TABLE OBJTXT LINES TAB_LINES.
IF TAB_LINES > 0.
READ TABLE OBJTXT INDEX TAB_LINES.
DOC_CHNG-DOC_SIZE = ( TAB_LINES - 1 ) * 255 + STRLEN( OBJTXT ).
ENDIF.
CLEAR OBJPACK-TRANSF_BIN.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 0.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'RAW'.
APPEND OBJPACK.
DESCRIBE TABLE OBJBIN LINES TAB_LINES.
OBJHEAD = DOCNAME.
APPEND OBJHEAD.
OBJPACK-TRANSF_BIN = 'X'.
OBJPACK-HEAD_START = 1.
OBJPACK-HEAD_NUM = 1.
OBJPACK-BODY_START = 1.
OBJPACK-BODY_NUM = TAB_LINES.
OBJPACK-DOC_TYPE = 'PDF'.
OBJPACK-OBJ_NAME = 'Delivery'.
OBJPACK-OBJ_DESCR = NAST-OBJKY.
OBJPACK-OBJ_DESCR = A_EBELN.
OBJPACK-DOC_SIZE = TAB_LINES * 255.
APPEND OBJPACK.
break nhernandez.
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
DOCUMENT_DATA = DOC_CHNG
PUT_IN_OUTBOX = 'X'
COMMIT_WORK = ' '
IMPORTING
SENT_TO_ALL =
NEW_OBJECT_ID =
TABLES
PACKING_LIST = OBJPACK
OBJECT_HEADER = OBJHEAD
CONTENTS_BIN = OBJBIN
CONTENTS_TXT = OBJTXT
CONTENTS_HEX =
OBJECT_PARA =
OBJECT_PARB =
RECEIVERS = 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 E081(ZGLO) WITH SY-SUBRC RAISING MAIL_SENDING_ERROR.
ENDIF.
endif.
AM I missing something?Hi Nat,
You can check this link which shows how to use the PRINT_TEXT for sending fax.
http://www.sap-img.com/abap/sending-fax-from-abap.htm
Also you can check these
Smartforms
Sending Smartforms through Fax
Sending SMARTFORM output to FAX gateway
How to fax a smartform?
/people/pavan.bayyapu/blog/2005/08/30/sending-html-email-from-sap-crmerp
ftp
Cheers
VJ -
Configuration to send the smartform through fax
Hi,
I have used CONVERT_OTF_AND_FAX and SO_OBJECT_SEND FM's to send the smartform through fax.After executing SO_OBJECT_SEND function module,I am getting sy-subrc alue as 9(OBJECT_NOT_SEND).I am able to send the document through fax.But when I click on display in SOST transaction it is just printing the output of the smartform.It is not coming in PDF format.
The code looks fine.I think there is some problem with confuration settings.Is there any configuration to be done to send the smartform output through fax?
Please reply.
Regards,
HemaHi,
Actually,my requirement is to send the smartform output through email with medium 'external send'.I have done some coding for that.it is working fine and I am able to send the smartform through email and open the attachment in PDF format.
But if the email id of the recipient is not present then the smartform output has to be sent through fax with the same medium 'external send'.
So I have done some coding to send the smartform through fax when the email id is not present.
I am able to send the output of smartform through fax.But when I clicked on display in SOST transaction,it is not coming in PDF format.It is coming in RAW format.
Is it possible to send the smartform output through fax with medium 'external send'?
Regards,
Hema -
Error in sending smartform as fax
Hi everyone,
I am trying to send a smartform through Fax, and i am getting the following error;
Cannot process message in node, parameters cannot be converted
Message no. XS821
Diagnosis
The message cannot be processed in the node as parameters such as 'Send
time' or 'Priority' cannot be converted. It is possible that entire
parameters such as 'Recipient list' or 'Packet list' are missing.
System Response
Processing was terminated.
SAP system additional information (error number, if available):
MRSUM
Additional information of the node used (in the system language of the
node)
Can you guys please help me solving this problem?
Thanking you,
Kind regards,
I have changed my code several times, using different functions to send the fax and i am getting the same error message each time.
Please find below the piece of code i am using to send the fax.
DATA:GT_MAIL_LINES TYPE STANDARD TABLE OF soli.
data: gs_mail_lines TYPE soli.
DATA: ls_object_hd TYPE sood1,
ls_receivers TYPE soos1,
lt_receivers TYPE STANDARD TABLE OF soos1,
l_lines TYPE i,
ls_sadrfd TYPE sadrfd.
CLEAR: ls_object_hd, ls_receivers.
REFRESH lt_receivers.
ls_object_hd-objla = sy-langu.
ls_object_hd-objnam = 'NOTE'.
ls_object_hd-objdes = 'Fax subject line in here'.
"Calculate size of table
DESCRIBE TABLE gt_mail_lines LINES l_lines.
READ TABLE gt_mail_lines INDEX l_lines INTO gs_mail_lines.
ls_object_hd-objlen = ( l_lines - 1 ) * 255 + STRLEN( gs_mail_lines ).
"Set Fax control structure
"Fax number in structure must have no leading zero
"as this is added by SAPOffice from the country code
ls_sadrfd-rec_fax = '4421844
ls_sadrfd-rec_street = 'Addr'.
ls_sadrfd-rec_town = 'Addr'.
ls_sadrfd-rec_name1 = 'Name'.
ls_sadrfd-rec_state = 'MU'.
ls_sadrfd-form_langu = 'EN'.
ls_sadrfd-fax_form = 'Z_FAX_COVER'.
ls_sadrfd-send_comp = 'USER'
ls_sadrfd-send_immi = 'X'.
ls_sadrfd-send_nam = sy-uname.
ls_sadrfd-send_date = sy-datum.
ls_sadrfd-send_time = sy-uzeit.
"Convert Receiver information to char field
CALL FUNCTION 'C147_WORKAREA_TO_CHARFIELD'
EXPORTING
I_WORKAREA = ls_sadrfd
IMPORTING
E_CHARFIELD = ls_receivers-recextnam.
ls_receivers-recesc = 'F'.
ls_receivers-mailstatus = 'E'.
ls_receivers-sndart = 'FAX'.
ls_receivers-sndpri = '1'.
APPEND ls_receivers TO lt_receivers.
"Send fax
CALL FUNCTION 'SO_OBJECT_SEND'
EXPORTING
object_hd_change = ls_object_hd
object_type = 'RAW'
owner = sy-uname
originator_type = 'B'
TABLES
objcont = gt_mail_lines
receivers = lt_receivers
EXCEPTIONS
OTHERS = 01.
break buantoch.
"The function doesn't commit so we must
"do it if successful.
IF sy-subrc = 0.
COMMIT WORK AND WAIT.
ELSE.
WRITE: / 'Fax failed RAISE ERROR '(012).
ENDIF.Hi,
Then, you can test the FAX fuctionality like:
go to System->Short Message->give a test message,give recipient as the FAX number,type as FAX->Shift+F8 the see if it works... else only SCOT errors will be there...
See:
http://help.sap.com/saphelp_nw2004s/helpdata/en/2b/d925bf4b8a11d1894c0000e8323c4f/frameset.htm
Also see:
https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/4b4fa090-0201-0010-d3b7-b233296d95ff
Regards,
Renjith Michael. -
Send smartforms as fax and email
Hi SAP gurus,
Can you please tell me on how to send smartforms as fax and email?
I would really appreciate your help.
Thanks in advance.Hi,
Check the below link.
http://help.sap.com/saphelp_nw2004s/helpdata/en/a5/28d3b9d26211d4b646006094192fe3/content.htm
Thanks,
Sankar M -
Sending smartform through email or fax
Hi,
I have to send the smartform output through email if the email address is present else it has to be sent through fax.
When I tested the program it is giving information message as 'Output was successfully issued'.But I am not able to see any entry in SOST transaction.What would be the reason for this?In SAP Table USR21, put enter the username in field BNAME, from there you will get the ADDRNUMBER
-
Can any body please tell me how to send a report through fax, when the fax modem is connected to the server or to any client
Hi Yadala
In 9i Reports Services provides you with mechenism to attach a pluggable destination which in your case can be a fax. You can refer Reports java API for pluggable destination interface and attach your own code to do this task.
You can also refer FAX using Oracle9iAS Wireless plugin example at following url:
http://otn.oracle.com/products/reports/pluginxchange/content.html
This uses Oracle9iAS Wireless to fax report output.
Thanks
The Oracle Reports Team -
Hi All ,
I have a requirement in which i need to send Smartform output as a Fax . fax number will be filled dynamically in the program in a internal table .
Any pointer to will be useful .
If You can send a sample code it would be best ,
Regards
Saurabh GargI don't have any code but this is the notes i've tought it would be helpfull to you. ANd before this your system should be configured for the Fax settings.
Another important field is DEVICE where in the type of output type device is specified. The possible set of values is PRINTER, TELEFAX and MAIL. The default is PRINTER. If the TELEFAX is chosen it shows a dialog box where in all the fax parameters can be entered. This dialog box can also be suppressed. And the preview option can be enabled. The problem here is it will not give any exception or prompt the user to enter the Fax Number and its parameters even if they are not maintained properly. So take care of maintaining them in the OUTPUT_OPTIONS parameter.
Key Note: Fax the output.
TDTELELAND used to refer to the 2 digit country code. The country key contains information which the system uses to check entries such as the length of the postal code or bank account number.
TDTELENUM and TDTELENUME Telecommunication number, as it is dialed in the receiving country. The country dialing code is automatically added. Alternatively an '&' can be used as the first character to disable number testing and number formatting. In this case you must enter the complete number, inclusive of country dialing code but without the exchange.
TDFAXUSER SAP: Office user name. Default is users name.
TDSCHEDULE: Using this field the send mode can be set like whether it is to be send immediately ( Value IMM)or at night ( Value NIG).
TDSENDDATE: This is requested send date.
TDSENDTIME: This is requested send time.
BCS_REQST: This contains the mode in which the request status is sent back. If it is set to N no status is to be returned, if E only error status is to be returned and if A all statuses are to be returned.
BCS_STATUS: Setting for Which Statuses Are Reported by Mail. If it is set to N no status is to be returned, if E only error status is to be returned and if A all statuses are to be returned.
BCS_COMMIT: This is a general flag that is specifically does not have any use. This can be used to pass any other flag from the program. -
Sending smartform through email as PDF attachment
Hi,
I want to send a smartform through email as pdf attachment.In the code I have hardcoded the receiver mail id.But I don't want this to be sent only to a particular receiver.I want this to be sent as many people as I can without hardcoding their mail id's in the program.How can I do that?
Regards,
Hema**Data Declarations
**Internal Table
DATA : BEGIN OF it_spfli OCCURS 0,
carrid LIKE spfli-carrid,
connid LIKE spfli-connid,
END OF it_spfli.
DATA: it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,
it_contents LIKE solisti1 OCCURS 0 WITH HEADER LINE,
storing receivers
it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE,
**storing file attachment data
it_attachment LIKE solisti1 OCCURS 0 WITH HEADER LINE, gd_doc_data LIKE sodocchgi1,
gd_error TYPE sy-subrc,
l_gntxt LIKE t357g_t-gntxt,
lv_message(100) TYPE c.
DATA: it_message TYPE STANDARD TABLE OF solisti1 INITIAL SIZE 0
WITH HEADER LINE. "storing mail body
DATA : psubject(30) TYPE c VALUE 'Sample Mail'. "subject of the mail
DATA : ld_format TYPE so_obj_tp , "file format
ld_attfilename TYPE so_obj_des, "file name
w_cnt TYPE i.
**Selecting the data
SELECT carrid connid INTO TABLE it_spfli FROM spfli WHERE carrid EQ 'AA'.
**Perform for populating mail body
PERFORM populate_message.
**Perform for populating file attachment
PERFORM populate_attachment.
**Perform for populating mail characteristic info
PERFORM populate_pack.
**Perform for populating receivers
PERFORM populate_receivers.
**Perform to send mail
PERFORM send_mail.
*& Form populate_message
text
--> p1 text
<-- p2 text
FORM populate_message .
**Populating the body
lv_message = 'Sample mail for testing purpose.'.
APPEND lv_message TO it_message.
ENDFORM. " populate_message
*& Form populate_attachment
text
--> p1 text
<-- p2 text
FORM populate_attachment .
**Populating the attachment file with the data from final intenal table
CONCATENATE 'CARRIER ID'
'CONNECTION ID'
INTO it_attachment SEPARATED BY
cl_abap_char_utilities=>horizontal_tab.
CONCATENATE cl_abap_char_utilities=>cr_lf it_attachment INTO
it_attachment.
APPEND it_attachment.
LOOP AT it_spfli.
CONCATENATE it_spfli-carrid it_spfli-connid INTO it_attachment SEPARATED BY
cl_abap_char_utilities=>horizontal_tab.
CONCATENATE cl_abap_char_utilities=>cr_lf it_attachment INTO
it_attachment.
APPEND it_attachment.
ENDLOOP.
ENDFORM. " populate_attachment
*& Form populate_receivers
text
--> p1 text
<-- p2 text
FORM populate_receivers .
**Populating Mail Recepients
**If there are more than one mail recepient then loop and append them to it_receivers
it_receivers-receiver = '[email protected]'.
it_receivers-rec_type = 'U'.
it_receivers-com_type = 'INT'.
it_receivers-notif_del = 'X'.
it_receivers-notif_ndel = 'X'.
it_receivers-express = 'X'.
APPEND it_receivers.
ENDFORM. " populate_receivers
*& Form populate_pack
text
--> p1 text
<-- p2 text
FORM populate_pack .
**File Type
ld_format = 'XLS'.
**File Name
ld_attfilename = 'File1'.
Fill the document data.
gd_doc_data-doc_size = 1.
Populate the subject/generic message attributes
gd_doc_data-obj_langu = sy-langu.
gd_doc_data-obj_name = 'SAPRPT'.
gd_doc_data-obj_descr = psubject .
gd_doc_data-sensitivty = 'F'.
Fill the document data and get size of attachment
CLEAR gd_doc_data.
Populate the subject/generic message attributes
gd_doc_data-obj_langu = sy-langu.
READ TABLE it_attachment INDEX w_cnt.
gd_doc_data-doc_size = ( w_cnt - 1 ) * 255 + STRLEN( it_attachment ).
gd_doc_data-obj_name = 'SAPRPT'.
gd_doc_data-obj_descr = psubject.
gd_doc_data-sensitivty = 'F'.
Describe the body of the message
CLEAR it_packing_list.
REFRESH it_packing_list.
it_packing_list-transf_bin = space.
it_packing_list-head_start = 1.
it_packing_list-head_num = 0.
it_packing_list-body_start = 1.
DESCRIBE TABLE it_message LINES it_packing_list-body_num.
it_packing_list-doc_type = 'RAW'.
APPEND it_packing_list.
**Describe the attachment info
it_packing_list-transf_bin = 'X'.
it_packing_list-head_start = 1.
it_packing_list-head_num = 1.
it_packing_list-body_start = 1.
DESCRIBE TABLE it_attachment LINES it_packing_list-body_num.
it_packing_list-doc_type = ld_format.
it_packing_list-obj_name = ld_attfilename.
it_packing_list-obj_descr = ld_attfilename.
it_packing_list-doc_size = it_packing_list-body_num * 255.
APPEND it_packing_list.
ENDFORM. " populate_pack
*& Form send_mail
text
--> p1 text
<-- p2 text
FORM send_mail .
**Function Module to send mail
CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'
EXPORTING
document_data = gd_doc_data
put_in_outbox = 'X'
commit_work = 'X'
TABLES
packing_list = it_packing_list
contents_bin = it_attachment
contents_txt = it_message
receivers = it_receivers
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.
ENDFORM. " send_mail -
Sending smartform by fax with fm 'CONVERT_OTF_AND_FAX'
Hi all,
i'm having problems with the sending of smartforms by fax using the fm 'CONVERT_OTF_AND_FAX'.
Precisely, i have written a fm that does the following steps:
1- calls the smartform passing the parameter control_parameters as
ls_control_param-device = 'TELEFAX'.
ls_control_param-getotf = 'X'.
ls_control_param-no_dialog = 'X'.
CALL FUNCTION lf_fm_name
EXPORTING
control_parameters = ls_control_param
IMPORTING
job_output_info = job_output_info
2- sets the parameter faxoption of the fm 'CONVERT_OTF_AND_FAX' as
faxoptions-tdotftype = 'ASC'.
faxoptions-faxformat = 'ASC'.
faxoptions-tddevice = 'TELEFAX'.
faxoptions-tdteleland = 'IT'.
faxoptions-tdtelenum = faxnumber.
faxoptions-tdsenddate = sy-datum.
faxoptions-tdsendtime = sy-uzeit.
faxoptions-tdcover = ' '.
faxoptions-tdtitle = 'Fax di Prova ASC'.
the faxnumber format is:
dialling code + fax number
for example, if the dialling code is 06 and the fax number is 123456789, the value assigned to faxoptions-tdtelenum is 06123456789
3- calls the fm 'CONVERT_OTF_AND_FAX' as follow (the table otf_data is taken from the smartform)
CALL FUNCTION 'CONVERT_OTF_AND_FAX'
EXPORTING
faxoptions = faxoptions
user = sy-uname
TABLES
otf = otf_data[]
COMMIT WORK.
The fm seems to be working because the document to be sent is accounted on the SOST transaction, but after i send it by SOST, the fax recipient doesn't receive nothing.
Why? There are some additional parameters to be added?
Thanks.
LelloDATA: zstructure TYPE zsolstructure OCCURS 0 WITH HEADER LINE,
faxoptions TYPE itcpp.
DATA: numerofax LIKE faxoptions-tdtelenum.
lf_formname = 'ZSTAMPA_PROVAFAX'.
CALL FUNCTION 'SSF_FUNCTION_MODULE_NAME'
EXPORTING
formname = lf_formname
IMPORTING
fm_name = lf_fm_name
EXCEPTIONS
no_form = 1
no_function_module = 2
OTHERS = 3.
ls_control_param-device = 'TELEFAX'.
ls_control_param-getotf = 'X'.
ls_control_param-no_dialog = 'X'.
CALL FUNCTION lf_fm_name
EXPORTING
control_parameters = ls_control_param
datastructure = zstructure
v_langu = v_langu
IMPORTING
job_output_info = job_output_info
totpage = totalpage
TABLES
f150v = t_f150v
EXCEPTIONS
formatting_error = 1
internal_error = 2
send_error = 3
user_canceled = 4
OTHERS = 5.
MOVE: job_output_info-otfdata[] TO otf_data[].
faxoptions-tdotftype = 'ASC'.
faxoptions-faxformat = 'ASC'.
faxoptions-tddevice = 'TELEFAX'.
faxoptions-tdteleland = 'IT'.
numerofax = '0612345678'.
faxoptions-tdtelenum = numerofax.
faxoptions-tdsenddate = sy-datum.
faxoptions-tdsendtime = sy-uzeit.
faxoptions-tdtitle = 'Fax di Prova ASC'.
faxoptions-TDCOPIES = 1.
faxoptions-TDNEWID = 'X'.
faxoptions-TDDATASET = 'Notification'.
faxoptions-TDSUFFIX1 = 'FAX'.
faxoptions-TDSUFFIX2 = SY-UNAME.
faxoptions-TDIMMED = 'X'.
faxoptions-TDLIFETIME = 8.
faxoptions-TDCOVER = 'Prova FAX'.
faxoptions-TDCOVTITLE = 'Prova FAX'.
CALL FUNCTION 'CONVERT_OTF_AND_FAX'
EXPORTING
faxoptions = faxoptions
user = sy-uname
* IMPORTING
* FAX_OK =
* OFFICE_OBJID =
* MSGID =
* MSGNO =
* MSGV1 =
* MSGV2 =
* MSGV3 =
* MSGV4 =
TABLES
otf = otf_data[]
COMMIT WORK.
SUBMIT rsconn01 WITH mode = 'FAX' WITH output = 'X' AND RETURN.
I have put as fax number 0612345678 instead of the real number for privacy. -
Print preview + sending smartform through attachment
Hello experts,
I have one smartform whose output is to be sent as email attachment.
THe porblem is that i need to have preveiw also with email funtionality.
When i give GETOTF paramter as 'X',it doesnot show preview and when i m passing it as blank,then it is not triggering a mail.
May we have both functionalities at the same time.
If yes ,how?Hi Anurodh,
1. First call the smartform passing GETOTF as X and NO_DIALOG as X, by doing this you get the the OTF table which you can send as an attachment.
2. next once you are done with your mail send logic, call the smartform again only for preview
even this looks like a redundant one but there is no way out.
hope this helps.
venkatesh. -
Problem With Sending Notification Through Fax While Creating A PO
Hi All,
While creating a purchase order with the output medium set to as FAX, once we click on save the entire information is actually faxed to the Number provided in the communication medium.
Now if a problem occurs, usually a notification message is displayed, the issue is, the notification message is not getting displayed anymore even if the the fax is not being sent.
Hence the user has no way of know that a fax was sent or not unless he check his inbox.
I have spoken to the Basis and the Functional Consultants and they say that there is nothing wrong with the Configuration Part.
Hence can you tell me what could be the possible reasons for this problem that is happening?
Please Advise!!!
PabloHi,
Which Scenario are you implementing??This BADI is to be implemneted for PO only if you are in the Extended classic scenario and the PO in SRM is the leading PO.
BR,
Disha.
Pls reward points for useful answers. -
New output type to be triggered to send smartform through email
Hi,
Currently we are using Milwaukee printer (USJC-PM03) as default for out put type ZURD. When this output get created in the invoice with the printer as USJC-PM03, the iinvoices get printed on the Milwaukee printer.
When someone tries to print an invoice by copying the ZURD, then system should trigger the newly created output ZUPG with the printer setting as u2018LOCLu2019 and medium u2018External Sendu2019, Communication strategy = u2018CS01u2019,dispatch time = 1.
When again the user tries to print the same invoice by copying the ZUPG output type,the system should trigger the output type ZUPG with medium u2018Print outu2019, Logical Destination = u2018LOCLu2019 and Dispatch time = u20181u2019.
How the output type ZUPG be triggered even if the user select the output type ZURD.
If anyone has come across this type of requirement please let me know.This can be done with the standard form itself.
first find out the output type u r using.
Then goto T-code NACE and then choose EF- purchase order and then select the output type u r using.
Then goto the 'processing Routines' at the lefe side of the screen.
There u can find out the output forms for this output typr u r using. Here add 'Simple mail-7' in the list and then give the program name and the smartform or the script u r using.
We can also give the mail texts for this output form.
After that goto ME22N and then choose the 'Messages' tab and then click the simple mail and in the 'communication method' kindly provide the mail id for which the PO mail has to be sent.
And then the mail can be viewed in the inbox of the recipient.
in this way we can sent the PO mail to the corresponding mail address,.
I guess this will solve ur issue.
Thanks and Regards
Siva
Edited by: Sivaprakash R on Apr 20, 2009 1:00 PM
Edited by: Sivaprakash R on Apr 20, 2009 1:00 PM
Maybe you are looking for
-
How to look inside a jar?
I am getting errors when using the sun deploytool. I think there is an ejb-jar.xml inside my ejb-jar file. how do i look at it?
-
Data validation at the UI level
Hi I have a requirement like i need to validate the input data at the UI level. If the data is valid ,only then it should be allowed to be saved. If someone knows how to do the same. I have seen a method DO_VALIDATE_INPUT method in View controller (I
-
Do i need antivirus in my new iMac?
I just purchase a new Imac and I am asking if I need to get an antivirus software on my new machine>>
-
Export to doc returns strange characters / works with wondershare
Hi I have a 300 pages pdf which I need to convert to doc so I can import it with all formatting into our wiki (has a doc imported, but no pdf importer). I tried different settings within acrobat (latest version, running on Lion), strange result: The
-
I am trying to get profilemanager working - currently sending remove/push settings does fail immediately (remove settings) or is pending forever (push settings: depending on payload?) whereas device enrolment, trust certificate installation, initial