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 24/07/14, 18:12:34
yruelas yruelas is offline
Junior Member
 
Fecha de Ingreso: may 2013
Mensajes: 2
Problema con job al escribir en una unidad

Buenos días, tengo un programa que extrae unos datos de las tablas de SAP y los escribe en un archivo txt de una unidad de red. Si ejecuto la transacción directamente me crea el archivo con los datos, pero si la meto a un job no me crea el archivo ni me marca error.
¿Alguna sugerencia que me permita ver donde esta mi error?

Gracias de antemano.

El código es:
TYPES: BEGIN OF gty_s_clienteinfo,
KUNNR TYPE c LENGTH 10,
STCD1 TYPE c LENGTH 16,
NAME1 TYPE c LENGTH 40,
NAME2 TYPE c LENGTH 40,
STREET TYPE c LENGTH 60,
HOUSE_NUM1 TYPE c LENGTH 10,
CITY2 TYPE c LENGTH 40,
CITY1 TYPE c LENGTH 40,
POST_CODE1 TYPE c LENGTH 10,
REGION TYPE c LENGTH 3,
COUNTRY TYPE c LENGTH 3,
TEL_NUMBER TYPE c LENGTH 30,
FAX_NUMBER TYPE c LENGTH 30,
NAME1_2 TYPE c LENGTH 35.
TYPES: END OF gty_s_clienteinfo.
DATA skna1 TYPE gty_s_clienteinfo.

TYPES ty_tab TYPE c LENGTH 1000.
CONSTANTS c_path TYPE string VALUE 'c:\downloads.txt'.
DATA g_flength TYPE i.
DATA gt_data TYPE STANDARD TABLE OF ty_tab.
DATA strDatos TYPE ty_tab.

TYPES mfile TYPE c LENGTH 100.
DATA v_file TYPE mfile.
v_file = '\\xxxxxxxxxxxxxx\transacciones\clientes.txt'.

SELECT KNA1~kunnR KNA1~STCD1 ADRC~NAME1 ADRC~NAME2 ADRC~STREET ADRC~HOUSE_NUM1 ADRC~CITY2 ADRC~CITY1 ADRC~POST_CODE1 ADRC~REGION
ADRC~COUNTRY ADRC~TEL_NUMBER ADRC~FAX_NUMBER FROM KNA1 INNER JOIN ADRC ON KNA1~ADRNR = ADRC~ADDRNUMBER INTO skna1 where KTOKD = 'CD01' and LOEVM = ' '.

CONCATENATE skna1-KUNNR '|' skna1-stcd1 '|' skna1-NAME1 '|' skna1-NAME2 '|' skna1-STREET '|' skna1-HOUSE_NUM1 '|' skna1-CITY2 '|'
skna1-CITY1 '|' skna1-POST_CODE1 '|' skna1-REGION '|' skna1-COUNTRY '|' skna1-TEL_NUMBER '|' skna1-FAX_NUMBER '|' skna1-NAME1_2 INTO strDatos.
"write: / strDatos .
APPEND strDatos TO gt_data.
"TRANSFER strDatos TO v_file.
ENDSELECT.

""CLOSE DATASET v_file.

CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = '\\xxxxxxxxxxxxxx\transacciones\clientes.txt'
TABLES
data_tab = gt_data
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6.

TYPES: BEGIN OF gty_s_contactoinfo,
KUNNR TYPE c LENGTH 10,
NAME1 TYPE c LENGTH 35,
VTEXT TYPE c LENGTH 20,
TELF1 TYPE c LENGTH 16.
TYPES: END OF gty_s_contactoinfo.
DATA sContac TYPE gty_s_Contactoinfo.

TYPES ty_tab2 TYPE c LENGTH 1000.
CONSTANTS c_path2 TYPE string VALUE 'c:\contactos.txt'.
DATA gt_data2 TYPE STANDARD TABLE OF ty_tab2.
DATA strDatos2 TYPE ty_tab2.

v_file = '\\xxxxxxxxxxxxxxx\transacciones\contactos.txt'.
SELECT KNVK~kunnR KNVK~NAME1 TPFKT~VTEXT KNVK~TELF1 FROM KNVK INNER JOIN TPFKT ON KNVK~PAFKT = TPFKT~PAFKT INTO sContac.

CONCATENATE sContac-kunnR '|' sContac-NAME1 '|' sContac-VTEXT '|' sContac-TELF1 '|' INTO strDatos2.
APPEND strDatos2 TO gt_data2.
"write: / strDatos2 .
"" TRANSFER strDatos2 TO v_file.
ENDSELECT.
""CLOSE DATASET v_file.


CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
filename = '\\xxxxxxxxxxxxxxxx\transacciones\contactos.txt'
TABLES
data_tab = gt_data2
EXCEPTIONS
FILE_WRITE_ERROR = 1
NO_BATCH = 2
GUI_REFUSE_FILETRANSFER = 3
INVALID_TYPE = 4
NO_AUTHORITY = 5
UNKNOWN_ERROR = 6 .
Responder Con Cita
  #2  
Viejo 24/07/14, 19:18:21
Mauricio Hidalgo Mauricio Hidalgo is offline
Senior Member
 
Fecha de Ingreso: may 2006
Localización: Santiago, Chile
Mensajes: 481
Estimado existen dos conceptos a manejar. Servidor de Aplicaciones y Servidor de Presentación. Cuando ejecutas un programa en linea, estás usando el servidor de presentación y no hay ningún problema con tu programa porque este está escribiendo hacia tu PC que es la misma que actúa como servidor de presentación y en ese caso la función GUI_DOWNLOAD es válida.

Sin embargo en JOB el programa se ejecutará en el servidor de aplicaciones y desde ahí el no tiene idea de como escribir hacia tu PC por eso en ese modo la función GUI_DOWNLOAD no es válida.

Existen instrucciones Open DATASET , READ DATASET, TRANSFER DATASET, CLOSE DATASET para leer/escribir desde/hacia el servidor de aplicaciones.

Tu programa debe ser capaz entonces de poder ejecutarse en ambos modos y te faltaría definir hacia donde escribir en el servidor de aplicaciones, puedes ver carpetas en la Transacción AL11 o que te defina tu administrador de sistema un directorio de ese servidor hacia donde escribir/leer.

Saludos
Responder Con Cita
  #3  
Viejo 24/07/14, 19:43:00
yruelas yruelas is offline
Junior Member
 
Fecha de Ingreso: may 2013
Mensajes: 2
Muchas gracias.
Voy a probar con lo que me dices.
Responder Con Cita
  #4  
Viejo 25/07/14, 13:54:24
sconoredhot sconoredhot is offline
Senior Member
 
Fecha de Ingreso: feb 2008
Localización: Argentina, Rosario
Mensajes: 341
respuesta

Totalmente, no existe posibilidad de guardar un archivo en una PC local ejecutando un programa de fondo.
__________________
Sebas

Desarrollador ABAP.
Responder Con Cita
  #5  
Viejo 28/07/14, 11:13:33
acesar acesar is offline
Member
 
Fecha de Ingreso: abr 2014
Localización: Córdoba, Argentina
Mensajes: 44
Lo que podés hacer es transferirlo a un FTP o bien mediante PI.
Eso si funciona vía Job.
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 20:07:39.


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