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 29/12/17, 11:57:19
poketina poketina is offline
Senior Member
 
Fecha de Ingreso: jul 2006
Mensajes: 105
Subir PDF desde FTP a R3

Hola!!

Tengo un problema con un programa. Tengo unos archivos en un servidor FTP y tengo que subirlos a SAP. Con los XML no tengo problemas pero con el PDF sí, lo sube pero de forma incorrecta porque luego me da error al abrirlo.
Esto es lo que he hecho, a ver si alguien sabe en qué me he equivocado, o qué me falta o lo que sea.. mil gracias !!!

María

TYPES: BEGIN OF text,
line(400) TYPE c,
END OF text.
TYPES: BEGIN OF ty_xml,
raw(4000) TYPE c,
END OF ty_xml.

DATA: user(30) TYPE c ,
pwd(30) TYPE c ,
host(64) TYPE c ,
slen TYPE i,
key TYPE i VALUE 26101957,
hdl TYPE i,
dest TYPE rfcdes-rfcdest,
g_str TYPE xstring,
size TYPE i,
g_xmldata TYPE xstring,
l_lin(2048),
id_factura TYPE string,
i_info_cab TYPE zfe_st_datoss_factura,
gv_rectif TYPE char1,
extension(100).
DATA: bindata TYPE TABLE OF blob WITH HEADER LINE,
result TYPE TABLE OF text WITH HEADER LINE,
chardata TYPE TABLE OF text WITH HEADER LINE,
g_t_xml_tab TYPE TABLE OF ty_xml INITIAL SIZE 0,
i_fich TYPE TABLE OF epsfili WITH HEADER LINE,
blob_length TYPE i,
l_xstring TYPE xstring,
fichero_out LIKE rlgrap-filename,"(255),
carpeta LIKE user_dir-dirname.
DATA: BEGIN OF tab_bin OCCURS 0.
INCLUDE STRUCTURE sdokcntbin.
DATA: END OF tab_bin.

START-OF-SELECTION.

pwd = XXXXX.
user = XXXXXX.
host = xx.xx.xxx,xx.
* host = xxxxxxx.

slen = strlen( pwd ) .
* SAP Application Server -> FTP Server
dest = 'SAPFTPA'.

* La contraseña hay que formatearla
CALL FUNCTION 'HTTP_SCRAMBLE'
EXPORTING
source = pwd
sourcelen = slen
key = key
IMPORTING
destination = pwd.

CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Connect to FTP Server'.

* Conectamos al directorio FTP
CALL FUNCTION 'FTP_CONNECT'
EXPORTING
user = user
password = pwd
host = host
rfc_destination = dest
IMPORTING
handle = hdl
EXCEPTIONS
not_connected = 1
OTHERS = 2.

IF sy-subrc = 0.

* Ponemos modo pasivo
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = 'set passive off'
TABLES
data = result
EXCEPTIONS
OTHERS = 1.
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = 'Create file on FTP Server'.

CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = 'ascii'
TABLES
data = result
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3.

* Nos movemos a la carpeta DOWNLOAD
CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = 'cd DOWNLOAD'
TABLES
data = result
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3.

CALL FUNCTION 'FTP_COMMAND'
EXPORTING
handle = hdl
command = 'dir'
TABLES
data = result
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3.

LOOP AT result.
IF result CS 'pdf' .
i_fich-name = result+62(50).
APPEND i_fich.
ENDIF.
ENDLOOP.
LOOP AT i_fich.
* Se descarga el archivo del servidor
CALL FUNCTION 'FTP_SERVER_TO_R3'
EXPORTING
handle = hdl
fname = i_fich-name
* character_mode = 'X'
character_mode = abap_false
IMPORTING
blob_length = blob_length
TABLES
blob = bindata
* text = g_t_xml_tab
EXCEPTIONS
tcpip_error = 1
command_error = 2
data_error = 3
OTHERS = 4.
LOOP AT bindata.
CONCATENATE bindata-content l_xstring
INTO l_xstring IN BYTE MODE.
ENDLOOP.

SELECT SINGLE dirname INTO carpeta FROM user_dir
WHERE aliass = 'EFACTURASPROV'.
CONCATENATE
carpeta '\' 'ESB5872858540409928.pdf' INTO fichero_out.
OPEN DATASET fichero_out FOR OUTPUT IN BINARY MODE.
TRANSFER l_xstring TO fichero_out.
CLOSE DATASET fichero_out.

ENDLOOP.

ENDIF.
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 15:22:01.


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