MUNDOSAP

Regresar   MUNDOSAP > DESARROLLO > Programación ABAP IV
Nombre de Usuario
Contraseña
Home Descargas Registrar FAQ Miembros Calendario Buscar Temas de Hoy Marcar Foros Como Leídos




 
Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Viejo 15/01/07, 19:40:16
Avatar de Daniela Gutierrez
Daniela Gutierrez Daniela Gutierrez is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Venezuela
Mensajes: 11
Envío de Fax

Hola Foro,

Por favor si tienen alguna información de enviar y recibir documentos directamente desde y hacia sistemas SAP, les sabría agradecer me lo hicieran llegar.
Muchas gracias,

Daniela G.
Responder Con Cita
  #2  
Viejo 17/01/07, 19:58:28
andyoscky andyoscky is offline
Miembro Honorario
 
Fecha de Ingreso: mar 2006
Mensajes: 73
Programa

Aca te envio un programa que encontre que te puede ayudar con los primeros pasos
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
Responder Con Cita
  #3  
Viejo 18/01/07, 17:36:17
Avatar de Daniela Gutierrez
Daniela Gutierrez Daniela Gutierrez is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Localización: Venezuela
Mensajes: 11
Thumbs up Envìo de fax

Muchas gracias
Andyoscky

Esto esta perfecto

Saludos,
__________________
Daniela Gutierrez
Consultor ABAP

Venezuela
Responder Con Cita
  #4  
Viejo 22/01/07, 16:37:04
CARLOS.ARGUETA CARLOS.ARGUETA is offline
Junior Member
 
Fecha de Ingreso: ene 2007
Mensajes: 1
Te funciono?, tengo el siguiente error...

Err.tmpo.ejec. CALL_FUNCTION_UC_STRUCT
Excep. CX_SY_DYN_CALL_ILLEGAL_TYPE
Fecha y hora 22.01.2007 11:39:05
Linea 253

241 POPT-TDNEWID = 'X'. " do not reuse old spool request
242 POPT-TDDATASET = 'TEST'(022). " fill as you want
243 POPT-TDSUFFIX1 = 'FAX'(023). " fill as you want
244 POPT-TDSUFFIX2 = SY-UNAME. " fill as you want
245 POPT-TDIMMED = 'X'. " send now
246 POPT-TDLIFETIME = 8. " keep 8 days in spool
247 POPT-TDTELENUM = NUMBER. " number without country code
248
249 POPT-TDTELELAND = COUNTRY. " country of recipient
250 POPT-TDCOVER = 'test fax'(024).
251 POPT-TDCOVTITLE = 'test fax'(024).
252 * POPT-TDIEXIT = 'X'.
>>>>> CALL FUNCTION 'PRINT_TEXT'
254 EXPORTING
255 APPLICATION = 'TX'
256 ARCHIVE_INDEX = ' '
257 ARCHIVE_PARAMS = ' '
258 DEVICE = 'TELEFAX' "<<< here we say: fax it !
259 DIALOG = 'X'
260 HEADER = HEADER
261 OPTIONS = POPT
262 IMPORTING
263 RESULT = PRES
264 TABLES
265 LINES = DOC2FAX
266 EXCEPTIONS
267 OTHERS = 01.

Carlos Argueta
ABAP
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Reglas de Mensajes
no puedes crear nuevos temas
no puedes responder temas
no puedes adjuntar archivos
no puedes editar tus mensajes

El código vB está On
Las caritas están On
Código [IMG] está On
Código HTML está Off
Saltar a Foro


Husos Horarios son GMT. La hora en este momento es 09:48:27.


www.mundosap.com 2006 - Spain
software crm, crm on demand, software call center, crm act, crm solutions, crm gratis, crm web