Está en la página 1de 30

1. INTERFASES.

1.1 Introduccin. Podemos definir el concepto de interfase como el nexo de unin entre dos sistemas diferentes. Por tanto queda claro que este concepto no es exclusivo de los sistemas de informacin sino que abarca un espectro ms grande. Si focalizamos nuestra atencin en los sistemas de informacin , podemos darnos cuenta rpidamente , que dentro de una empresa existen diferentes entornos que necesitan comunicarse, necesitan interactuar. Un claro ejemplo de necesidad de comunicacin es la existente entre el entono SAP resto de aplicaciones existentes dentro de una empresa. Podr!amos "acer varias clasificaciones de interfases#
o

el

$n cuanto a su naturaleza # Sistema origen Sistema Destino

FTP, Internet, Fich.. Fich

%asadas en fic"eros. $l intercambio de la informacin se realiza a trav&s de fic"eros. As! el sistema origen elabora el fic"ero , con un determinado formato, se lo env!a al sistema destino que lo procesa. %asadas en funciones '() *'emote (unction )all+. $l intercambio de informacin se realiza a trav&s de aplicaciones que unen virtualmente los sistemas ponen a disposicin los datos del sistema origen en el sistema destino. Sistema origen Sistema Destino

Funcin RFC S!P"

Servicio Middelware.

Funcin RFC S!P"

$n cuanto a su modo de ejecucin# ,n-line. Podemos decir que una interfase es on-line cuando el proceso que la controla es on-line . .ormalmente las funciones de naturaleza '() , sern on-line. %atc". Una interfase es %atc" cuando , el proceso que la controla es %A/)0. 1as interfases basadas en fic"eros irn asociadas a procesos batc".

1.2 Tratamiento de ficheros. 1.2.1 Instrucciones bsicas. Para poder trabajar con fic"eros que se encuentren en el servidor de aplicacin, tenemos las siguientes instrucciones bsicas#

,P$. 2A/AS$/ nfic" . Abre un fic"ero para su tratamiento, si no se a3ade ninguna opcin abre el fic"ero para lectura en modo binario. 1as principales opciones son# .. (,' ,U/PU/ Abre el fic"ero para escritura. Si el fic"ero existe lo borra lo crea nuevamente. .. (,' 4.PU/ Abre el fic"ero para lectura.

.. (,' APP$.24.5. Abre un fic"ero para escritura si el fic"ero no existe se crea. Si a existe, se comenzar a escribir al final del fic"ero. ..4. %4.A'6 7,2$. Abre el fic"ero en modo binario , es decir, la informacin se tratar por bloques. 2e tal modo que en cada lectura se leern 8escribirn n caracteres. ..4. /$9/ 7,2$. Abre el fic"ero en modo texto, es decir, la informacin se tratara l!nea a l!nea. )ada lectura8escritura procesar una l!nea del fic"ero. ..7$SSA5$ d:mes Almacena en ;d:mes< el mensaje devuelto por el sistema operativo. ..A/ P,S4/4,. d:pos. Sit=a el puntero de escritura en la posicin d:pos *b tes+ desde el inicio del fic"ero. *$sta opcin , no tiene sentido emplearla para tratamientos en modo texto+. .. /6P$ .. (41/$' Permite definir atributos del fic"ero. Permite ejecutar comandos propios del sistema operativo.

'$A2 2A/AS$/ nfic" 4./, >a. 1ee un bloque de informacin del fic"ero# Si el fic"ero se abre en modo /$9/,# Se lee una l!nea completa de tal forma que si el campo ;>a< es de menor tama3o que la l!nea , se perder su contendido , en caso contrario se completar con blancos. $l puntero de lectura se situar al comienzo de la l!nea siguiente. Si el fic"ero se abre en modo %4.A'4,# Se lee del fic"ero tantos b tes como tama3o tenga el campo ;>a<. /'A.S($' >a /, nfic". $scribe el contenido del campo ?A en el fic"ero abierto para escritura. Si en modo texto# $scribe una l!nea completa. Si en modo binario# $scribe tantos b tes como tenga el campo ;>a<.

)1,S$ 2A/AS$/ nfic". )ierra un fic"ero abierto para lectura o escritura.

2$1$/$ 2A/AS$/ nfic". %orra el fic"ero nfic". 1.2.2 Creacin de ficheros. @amos a ver un ejemplo de como leer escribir registros en un fic"ero.

$l ejemplo va a consistir en volcar a un fic"ero, nuestra tabla maestro de clientes con todos sus campos. 1a estructura del fic"ero ser as!# )ampo %UA'S .)14$ .,7%' AP$1C AP$1E (.A)4 /ipo )0A' )0A' )0A' )0A' )0A' 2A/S 1ong. B CD ED EF EF G 2escripcin Sociedad .=mero de cliente .ombre cliente Primer apellido Segundo apellido (ec"a de nacimiento

)rearemos un programa tipo ;'$P,'/< que llamaremos ; ZINTERXX<.

)omo parmetros de seleccin pondremos la sociedad obligatoria como rango de seleccin el nH de cliente. A3adiremos un nuevo parmetro obligatorio que representar el nombre del fic"ero. $l fic"ero que vamos a crear va a ser en modo texto. $l cdigo del programa ser algo as!# ************************************************************************ * PROGRAMA: ZINTERXX * * DESCRIPCION: Vuelca los registros selecciona o e la ta!la * "aestro e clientes ZC#IENXX a un $ic%ero e te&to' * * A(TOR : MAD)) *EC+A: ,-.)-.,))/ * *0000000000000000000000000000000000000000000000000000000000000000000000* * CONTRO# DE MODI*ICACIONES * * *EC+A' A(TOR' DESCRIPCION MODI*ICACION' ************************************************************************ REPORT ZINTERXX' ************************************************************************ * Ta!las el iccionario e atos * ************************************************************************ TA1#ES: ZC#IENXX' 2 Maestro e clientes' ************************************************************************ * Ta!las internas * ************************************************************************ * Ta!la interna e selecci3n e clientes DATA: 1EGIN O* I4ZC#IENXX OCC(RS )5 1(6RS #I6E ZC#IENXX01(6RS5 2Socie a NC#IE #I6E ZC#IENXX0NC#IE5 2N7"ero e cliente NOM1R #I6E ZC#IENXX0NOM1R5 2No"!re cliente APE#/ #I6E ZC#IENXX0APE#/5 2Pri"er a8elli o APE#, #I6E ZC#IENXX0APE#,5 2Segun o a8elli o *NACI #I6E ZC#IENXX0*NACI5 2*ec%a e naci"iento END O* I4ZC#IENXX' ************************************************************************ * De$inici3n e 9aria!les glo!ales * ************************************************************************ DATA :D4MERROR:/)); T<PE C' 2 Mensa=e e error ************************************************************************ * Pantalla e selecci3n * ************************************************************************ * Par>"etros

SE#ECTION0SCREEN 1EGIN O* 1#OC6 1#O?/ @IT+ *RAME TIT#E TEXT0))/' PARAMETERS P41(6RS #I6E ZC#IENXX01(6RS O1#IGATOR< DE*A(#T A)))/A' 2 Socie a SE#ECT0OPTIONS: S4NC#IE *OR ZC#IENXX0NC#IE' 2 NB e cliente SE#ECTION0SCREEN END O* 1#OC6 1#O?/' * Par>"etro no"!re e $ic%ero estino' SE#ECTION0SCREEN 1EGIN O* 1#OC6 1#O?, @IT+ *RAME TIT#E TEXT0)),' * No"!re el $ic%ero :acti9a"os "in7sculas 8er"iti as;' PARAMETERS P4N*IC+:C); T<PE C O1#IGATOR< DE*A(#T D.usr.sa8.t"8.Eclien&&' atF #O@ER CASE ' SE#ECTION0SCREEN END O* 1#OC6 1#O?,' ************************************************************************ * Co"ienEo e selecci3n * ************************************************************************ START0O*0SE#ECTION' * Selecciona"os los atos e los clientes Gue cu"8len criterios SE#ECT * *ROM ZC#IENXX INTO CORRESPONDING *IE#DS O* TA1#E I4ZC#IENXX @+ERE 1(6RS H P41(6RS AND NC#IE IN S4NC#IE' * Co"8ro!a"os si %aI atos selecciona os en cuIo caso 5 * creare"os el $ic%ero I* : S<0S(1RC H ) ;' * A!ri"os el $ic%ero 8ara escritura en "o o te&to OPEN DATASET P4N*IC+ *OR O(TP(T IN TEXT MODE MESSAGE D4MERROR' * Co"8ro!a"os si no %u!o error I* : S<0S(1RC H ) ;' * Para ca a uno e los registros selecciona os #OOP AT I4ZC#IENXX' * Escri!i"os en el $ic%ero TRANS*ER I4ZC#IENXX TO P4N*IC+' END#OOP' * Cerra"os el $ic%ero C#OSE DATASET P4N*IC+' * Mostra"os "ensa=e A*ic%ero crea o con J&itoA' MESSAGE I))):K-; @IT+ TEXT0))K' * Si %aI error 5 "ostra"os el "ensa=e5 con un "ensa=e e error E#SE' MESSAGE E))):K-; @IT+ D4MERROR' ENDI*' * Si no %aI atos selecciona os' E#SE' * Mostra"os "ensa=e ANo se seleccionaron atosA'

MESSAGE E))):K-; @IT+ TEXT0))L' ENDI*' 1.2.3 Lectura de Ficheros. @amos a continuacin a realizar un programa *I4./$'C99+ que muestre un listado con el contenido de un fic"ero. 2ando la posibilidad de borrar el fic"ero una vez procesado. ************************************************************************ * PROGRAMA: ZINTE/XX * * DESCRIPCION: Muestra un lista o con el conteni o e un $ic%ero * A(TOR : MAD)) *EC+A: ,-.)-.,))/ * *0000000000000000000000000000000000000000000000000000000000000000000000* * CONTRO# DE MODI*ICACIONES * * *EC+A' A(TOR' DESCRIPCION MODI*ICACION' ************************************************************************ REPORT ZINTE/XX NO STANDARD PAGE +EADING' ************************************************************************ * De$inici3n e 9aria!les glo!ales * ************************************************************************ DATA :D4MERROR:/)); T<PE C5 2 Mensa=e e error D4#INEA:,CC; T<PE C' 2 #Mnea e $ic%ero' ************************************************************************ * Pantalla e selecci3n * ************************************************************************ * Par>"etro no"!re e $ic%ero SE#ECTION0SCREEN 1EGIN O* 1#OC6 1#O?, @IT+ *RAME TIT#E TEXT0)),' * No"!re el $ic%ero :acti9a"os "in7sculas 8er"iti as;' PARAMETERS: P4N*IC+:C); T<PE C O1#IGATOR< DE*A(#T A.usr.sa8.t"8.Eclien&&' atA #O@ER CASE5 P4DE#ETE AS C+EC61OX' 2 *lag e !orra o $ic%ero SE#ECTION0SCREEN END O* 1#OC6 1#O?,' ************************************************************************ * Co"ienEo e selecci3n * ************************************************************************ START0O*0SE#ECTION' * A!ri"os el $ic%ero 8ara lectura en "o o te&to' OPEN DATASET P4N*IC+ *OR INP(T IN TEXT MODE MESSAGE D4MERROR' * Co"8ro!a"os si no %u!o error I* : S<0S(1RC H ) ;' * #ee"os el 8ri"er registro el $ic%ero READ DATASET P4N*IC+ INTO D4#INEA'

Mientras no %aIa error e lectura @+I#E : S<0S(1RC H ) ;' * Escri!i"os la lMnea leM a @RITE . D4#INEA' * #ee"os el siguiente registro READ DATASET P4N*IC+ INTO D4#INEA' END@+I#E' * (na 9eE 8rocesa o el $ic%ero5 !orra"os el $ic%ero si est> * "arca o el $lag e !orra o C+EC6 NOT : P4DE#ETE IS INITIA# ;' DE#ETE DATASET P4N*IC+' * Co"8ro!a"os si se 8u o !orrar I* : S<0S(1RC H ) ;' * Mostra"os "ensa=e e A*ic%ero !orra oA' MESSAGE S))):K-; @IT+ TEXT0))C' ENDI*' * Si %aI error 5 "ostra"os el "ensa=e5 con un "ensa=e e error E#SE' MESSAGE E))):K-; @IT+ D4MERROR' ENDI*'

1.2. E!"#orar ficheros. Para poder visualizar los fic"eros existentes en el servidor de aplicacin disponemos de la transaccin estandar A1CC que nos permite explorar el contenido del directorio 8usr8sap.

0aciendo doble-clicJ sobre el directorio a explorar D.usr.sa8.t"8< en nuestro caso podremos visualizar los fic"eros existentes as! como el contenido de los mismos. .ota# $sta es una "erramienta bastante limitada a que =nicamente nos dejar visualizar el contenido de esta ruta *8usr8sap+ , normalmente dispondremos de otras "erramientas para poder visualizar tratar fic"eros en el servidor de aplicacin.

1.3 Batch Input . 1.3.1 Introduccin. $n cap!tulos anteriores , "emos visto como se introducen datos, que actualizan las bases de datos, a trav&s de pantallas o d npros que se llaman dentro de una transaccin . 4ntroducimos los datos , navegando por cada una de las pantallas completando los datos en los campos pulsando las opciones oportunas *pantalla siguiente , grabar K+. $n todo este proceso , es necesario la intervencin de un usuario. $l sistema %atc" 4nput o %2) *%atc" 2ata )ommunication+ para introducir datos en la base de datos de SAP tiene las siguientes caracter!sticas#

Puede procesar grandes vol=menes de datos.

Se puede planificar ejecutar como proceso de fondo o como proceso on-line. Se puede procesar sin la intervencin de un usuario. Permite usar transacciones como si los datos se introdujeran de forma manual, pero realizando id&nticas comprobaciones de integridad, autorizacionesK $n este sistema de introduccin de datos , es necesario tener un fic"ero especial que llamaremos ;Luego de datos< en el que se tiene perfectamente estructurada la siguiente informacin#

Por una parte la informacin especifica a introducir . Por otra parte los comandos , pantallas, nombres de campo K en las que introducir la informacin. $stos juegos de datos tienen siempre la misma forma definida en la estructura estndar ;%2)2A/A< #

)onstruir el ;Luego de datos< consiste en ir a3adiendo registros secuencialmente , en los que se definen las secuencias de pantalla necesarias datos para lograr su almacenamiento en las tablas SAP. /endremos dos tipos de registros *aunque con la misma estructura+. 'egistros de 4dentificacin de programa d npro.

$n este tipo de registros , se detalla en nombre del programa nH de d npro que va a contener los campos los valores que van a tomar los registros siguientes. 'egistros de campos valores . $ste tipo de registros , contienen el nombre de los campos del d npro as! como los datos espec!ficos que se deben ;introducir< en ellos. Un registro especial dentro de este tipo es el que contiene el valor del comando de d npro. %2):,A),2$. 1a secuencia de registros %2) ser algo as!# P',5'A7 26.P', 26.%$54. (.A7 ProgramaC Cddd 9 )ampoCd )ampoEd %2):,A),2$ ProgramaE Eccc 9 )ampo Cc )ampo Ec %2):,A),2$ K. Programa .jjj 9 n )ampo Cc )ampo Ec %2):,A),2$ (@A1 @alor campoCd @alor campo Ed )omando @alor campo Cc @alor campo Ec )omando

@alor campo Cc @alor campo Ec )omando

Para almacenar estos registros en un fic"ero especial al que denominamos ;Luego de datos ; disponemos de tres funciones estndares que nos facilitan esta tarea#

$%C&'(EN&)R'*(. .os permite abrir la sesin para la creacin del juego de datos cola de juegos de datos pendientes. 1os parmetros principales son# 5',UP# .ombre con el que se almacenar el juego de datos. US$'# Usuario con el que se ejecutar el juego de datos. 0,122A/$# (ec"a a partir de la cual el juego de datos puede ser ejecutado. A$$P#(lag de indicador de borrado del juego de datos tras su ejecucin con &xito. *; ; permanece , ;9< no se borra+. que &ste se almacene en la

$%C&INSERT. Permite incluir los registros al juego de datos a trav&s de una tabla interna.

0a que indicar los parmetros. /),2$# 26.P',/A%#

)digo de transaccin a ejecutar. /abla interna que contiene los registros.

CL'SE&)R'*(. )ierra el Luego de datos. Una vez creado el fic"ero %2) o ;Luego de datos<, este quedar almacenado para su posterior tratamiento# $jecucin , borrado K . Para saber el nombre del programa ,d npro , nombre de los campos K. con los que debemos completar la tabla 2%) tenemos dos posibilidades#

,btener el nombre de los campos mediante la a uda on-line disponible en todas las pantallas. Para obtener los datos de un campo , situados sobre el campo de pantalla pulsaremos ;(C<, nos saldr una ventana mostrando la descripcin del campo , esta ventana tiene una opcin pulsndolo nos aperecera una ventana con este aspecto#

2onde se muestra informacin sobre el programa , nombre del campo K

Utilizar la utilidad de ;grabar< una transaccin. Podemos acceder a ella a trav&s del men= Sistema *$xistir en todos los men=s+ seguiremos la ruta# Servicios%atc" 4nput 5rabadora *S02%+. 1legaremos a la siguiente pantalla #

$n esta pantalla podremos crear grabaciones , visualizar existentes, .... . Para crear una nueva , pulsamremos el botn deberemos indicar un nombre para la grabacin ;A1/AS< e indicaremos el cdigo de la transaccin ;I%99< . A continuacin pulsaremos el botn nos saldr la transaccin preparada par introducir los datos, introduciremos los datos correspondientes *del mismo modo que si estubi&ramos en la transaccin directamente+ al finalizar nos saldr una pantalla con el siguiente aspecto#

2onde podremos visualizar el nombre del programa , campos , comandos K

1.3.2 Creacin de# +ue,o de datos. Suponemos el siguiente caso. /enemos que dar de alta a todos los clientes en nuestra tabla maestro de clientes I)14$.99 , para ello , disponemos# 2e la transaccin ;Z1XXF:alta de clientes que creamos en cap!tulos anteriores+. /enemos la informacin de los clientes almacenada en un fic"ero ;8usr8sap8tmp8zclienxx.dat<. *)u a estructura es la que vimos en el apartado anterior+. @amos a crear un programa ;ZINTE,XX<que lea los datos del fic"ero datos para dar de alta clientes . $l nombre del juego de datos elabore un juego de

el nombre del fic"ero , sern parmetros del programa.

$l cdigo del programa ser algo as!# MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M P',5'A7A# I4./$E99 M

M 2$S)'4P)4,.# 5enera un Luego de datos de Alta de clientes , con M M los datos de los clientes que lee de un fic"ero. M M AU/,' # 7A2DD ($)0A# EG8DG8EDDC M M----------------------------------------------------------------------M M ),./',1 2$ 7,24(4)A)4,.$S M M ($)0A. AU/,'. 2$S)'4P)4,. 7,24(4)A)4,.. M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM '$P,'/ I4./$E99 ., S/A.2A'2 PA5$ 0$A24.5. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M /ablas del diccionario de datos M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM /A%1$S# I)14$.99. N 7aestro de clientes. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M 2efinicin de tablas internas M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M /abla interna para almacenar los registros del fic"ero 2A/A# %$54. ,( 4:I)14$.99 ,))U'S D, %UA'S 14A$ I)14$.99-%UA'S, NSociedad .)14$ 14A$ I)14$.99-.)14$, N.=mero de cliente .,7%' 14A$ I)14$.99-.,7%', N.ombre cliente AP$1C 14A$ I)14$.99-AP$1C, NPrimer apellido AP$1E 14A$ I)14$.99-AP$1E, NSegundo apellido (.A)4 14A$ I)14$.99-(.A)4, N(ec"a de nacimiento $.2 ,( 4:I)14$.99. M /abla interna para almacenar los registros del juego de datos 2A/A# %$54. ,( 4:%2)/A% ,))U'S D. 4.)1U2$ S/'U)/U'$ %2)2A/A. 2A/A# $.2 ,( 4:%2)/A%. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M 2efinicin de variables globales M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 2A/A #2:7$'','*CDD+ /6P$ ). N 7ensaje de error MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M Pantalla de seleccin M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M Parmetro nombre de fic"ero S$1$)/4,.-S)'$$. %$54. ,( %1,)A %1,OE ?4/0 ('A7$ /4/1$ /$9/-DDE. M Parmetros PA'A7$/$'S# M .ombre del fic"ero *activamos min=sculas permitidas+. P:.(4)0*FD+ /6P$ ) ,%145A/,'6 2$(AU1/ P8usr8sap8tmp8zclienxx.datP 1,?$' )AS$, M .ombre del juego datos P:L2A/,S*CE+ /6P$ ) ,%145A/,'6 2$(AU1/ PI)14$.99P.

S$1$)/4,.-S)'$$. $.2 ,( %1,)A %1,OE. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M )omienzo de seleccin M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM S/A'/-,(-S$1$)/4,.. M Abrimos el fic"ero para lectura en modo texto. ,P$. 2A/AS$/ P:.(4)0 (,' 4.PU/ 4. /$9/ 7,2$ 7$SSA5$ 2:7$'','. M )omprobamos si no "ubo error 4( * S6-SU%') Q D +. M 4nicializamos la tabla interna '$('$S0 4:I)14$.99. )1$A' 4:I)14$.99. M 1eemos el primer registro del fic"ero sobre la tabla interna '$A2 2A/AS$/ P:.(4)0 4./, 4:I)14$.99. M 7ientras no "a a error de lectura ?041$ * S6-SU%') Q D +. M A3adimos el registro le!do a la tabla interna APP$.2 4:I)14$.99. M 4nicializamos la cabecera )1$A' 4:I)14$.99. M 1eemos el siguiente registro '$A2 2A/AS$/ P:.(4)0 4./, 4:I)14$.99. $.2?041$. M )reamos el juego de datos con el contenido de la tabla 4:I)14$.99 P$'(,'7 )'$A':LU$5,:2A/,S. M 7ostramos mensaje de PLuego de datos creadoP. 7$SSA5$ 4DDD*RG+ ?4/0 /$9/-DDR P:L2A/,S. M Si "a error , mostramos el mensaje, con un mensaje de error $1S$. 7$SSA5$ $DDD*RG+ ?4/0 2:7$'','. $.24(. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM 'utinas adicionales. M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM MS---------------------------------------------------------------------M MS (orm )'$A':LU$5,:2A/,S MS---------------------------------------------------------------------M M )rea un juego de datos con el nombre indicado por el parmetro M M P:L2A/,S, para la transaccin I%99 con el contenido de la M M tabla interna 4:I)14$.99. M M----------------------------------------------------------------------M M(,'7 )'$A':LU$5,:2A/,S. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M2efinicin de variables locales M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM

2A/A# 1:(.A)4*CD+ /6P$ ). N (ormateo de fec"a para pantalla. MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M Proceso M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M )omprobamos que la tabla interna 4:I)14$.99 tiene registros )0$)A .,/ * 4:I)14$.99TU 4S 4.4/4A1 +. M Abrimos el juego de datos. )A11 (U.)/4,. P%2):,P$.:5',UPP $9P,'/4.5 M )14$./ Q S6-7A.2/ M 2$S/ Q (411$'G 5',UP Q P:L2A/,S M 0,122A/$ Q (411$'G A$$P QPP US$' Q S6-U.A7$ M '$),'2 Q (411$'C M 47P,'/4.5 M O42 Q $9)$P/4,.S )14$./:4.@A142 QC 2$S/4.A/4,.:4.@A142 Q E 5',UP:4.@A142 QR 5',UP:4S:1,)A$2 Q B 0,122A/$:4.@A142 Q F 4./$'.A1:$'',' QV OU$U$:$'',' QW 'U..4.5 QG S6S/$7:1,)A:$'',' Q X US$':4.@A142 Q CD ,/0$'S Q CC. M )ontinuamos si no "a eror )0$)A * S6-SU%') Q D +. M )ompletamos la tabla %2) de la forma oportuna 1,,P A/ 4:I)14$.99. M (ormateamos el campo fec"a para salida *dd.mm.aaaa+ M en la pantalla no podemos indicar el formato interno *aaaammdd+ ?'4/$ 4:I)14$.99-(.A)4 /, 1:(.A)4. M )ompletamos la pantalla inicial con los datos del cliente actual P$'(,'7 %2):4.S$'/ US4.5# P9P PSAP7I%99P PXDDDP, P P PI)14$.99-%UA'SP 4:I)14$.99-%UA'S, P P PI)14$.99-.)14$P 4:I)14$.99-.)14$, P P PI)14$.99-.,7%'P 4:I)14$.99-.,7%', P P PI)14$.99-AP$1CP 4:I)14$.99-AP$1C,

P P PI)14$.99-AP$1EP 4:I)14$.99-AP$1E, P P PI)14$.99-(.A)4P 1:(.A)4, P P P2:PA'/4)U1A'P P9P, P P P%2):,A),2$P P$./$P, M $n la pantalla inicial *con datos introducidos+ damos alta P9P PSAP7I%99P PXDDDP, P P P%2):,A),2$P PA1/AP. $.21,,P. M 4ntroducimos el cdigo de fin de transaccin despu&s del M =ltimo cliente P$'(,'7 %2):4.S$'/ US4.5# M $n la pantalla inicial *abandonamos la transaccin+. P9P PSAP7I%99P PXDDDP, P P P%2):,A),2$P P8$)A.)P. M Una vez completado la transaccin , la incluimos en el L.datos )A11 (U.)/4,. P%2):4.S$'/P $9P,'/4.5 /),2$ Q PI%99P M P,S/:1,)A1 Q .,@%1,)A1 M P'4./4.5 Q .,P'4./ /A%1$S 26.P',/A% Q 4:%2)/A% $9)$P/4,.S 4./$'.A1:$'',' Q C .,/:,P$. QE OU$U$:$'',' QR /),2$:4.@A142 Q B P'4./4.5:4.@A142 Q F P,S/4.5:4.@A142 Q V ,/0$'S Q W. M )omprobamos si "ubo error, mostramos mensaje de error 4( * S6-SU%') YZ D +. 7$SSA5$ $DDD*RG+ ?4/0 S6-SU%'). $.24(. M Una vez completado el Luego de datos , lo cerramos )A11 (U.)/4,. P%2):)1,S$:5',UPP $9)$P/4,.S .,/:,P$. Q C OU$U$:$'',' Q E ,/0$'S Q R. $.2(,'7. N )'$A':LU$5,:2A/,S MS---------------------------------------------------------------------M MS (orm %2):4.S$'/ MS---------------------------------------------------------------------M M 4nserta en la tabla interna global 4:%2)/A% los campos recibido M M 2istinguiendo si se trata de un registro de d npro o de un registro M

M de campo. M M----------------------------------------------------------------------M M --ZP$:26.%$54. (lag de pantalla8 campo M M --ZP$:(.A7 .ombre de programa 8 campo M M --ZP$:(@A1 @alor pantalla 8 campo M M----------------------------------------------------------------------M (,'7 %2):4.S$'/ US4.5 @A1U$*P$:26.%$54.+ @A1U$*P$:(.A7+ @A1U$*P$:(@A1+. M Proceso M MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM M 4ncializamos la cabecera de la tabla )1$A' 4:%2)/A%. M 4nformamos el flag de pantalla 4:%2)/A%-26.%$54. Q P$:26.%$54.. M $n funcin si es o no pantalla 4( * P$:26.%$54. Q P9P +. 4:%2)/A%-P',5'A7 Q P$:(.A7. 4:%2)/A%-26.P', Q P$:(@A1. M Si se trata de un campo $1S$. 4:%2)/A%-(.A7 Q P$:(.A7. 4:%2)/A%-(@A1 Q P$:(@A1. $.24(. M 4nsertamos el registro en la tabla interna APP$.2 4:%2)/A%. $.2(,'7. N %2):4.S$'/ 1.3.3 Trata-iento de un +ue,o de datos. 6a "emos generado un juego de datos , que estar almacenado en alg=n lugar del sistema, vamos a ver a"ora como visualizan, procesan, borran K $n el men= Sistema *$xistir en todos los men=s+ seguiremos la ruta# Servicios%atc" 4nput )arpetas *S7RF+. 1legaremos a la siguiente pantalla#

2onde podremos seleccionar los juegos de datos , por nombre por su Status de proceso....

fec"a de creacin as! como

Para ver nuestro juego de datos pondremos el nombre dado * ZC#IENXX;' Aparecer nuestro juego de datos, en esta pantalla , podremos realizar las siguientes funciones# 2entro del men= ;Luego de datos<.

$jecutar Luego de datos *(G+. .os permite ejecutar el juego de datos ofreciendo varias posibilidades de ejecucin a trav&s de la ventana#

$jecutar visible# Se visualizan las pantallas por las que va pasando proceso deteni&ndose en cada una de ellas "asta que se pulse enter. @isualizar slo errores [nicamente se visualizar la secuencia de pantallas cuando se encuentre un error . $jecutar 4nvisible# /endr el mismo efecto que la opcin ;Procesar en (ondo<

Procesar en (ondo *(F+. $jecuta el juego de datos en un proceso en fondo *%atc"+. Para ello genera un L,% con el mismo nombre del juego de datos.*Podremos indicar el nombre de la mquina en la que queremos que se ejecute+. %orrar *S"ift \ (E+. %orra el juego de datos. 2entro del men= ;Pasar a< *o botones+#

Anlisis juego datos. Permite visualizar el contenido, pudiendo visualizar el nombre de las pantallas as! como su contenido. $stad!sticas. Una vez ejecutado el juego de datos , muestra un informe con las transacciones correctas , errneas K 1og. 7uestra un informe con el log de la ejecucin , se crearn tantos logs como ejecuciones del juego de datos se realicen. $jecutaremos el juego de datos. A continuacin comprobamos que las entradas se "an dado de alta en la tabla. 1. Ca## transaction. 1a filosof!a del )all /ransaction es id&ntica a la del juego de datos , se trata de crear un conjunto de registros de pantallas de datos para una transaccin determinada con la misma estructura que para el juego de datos que se ejecuta de forma inmediata.

1as principales diferencias son# .o se genera un juego de datos que se almacena en forma de fic"ero especial. 1a ejecucin es inmediata. .o se pueden incluir datos para dos transacciones distintas. Por tanto para introducir datos mediante )all /ransaction solamente necesitaremos completar la tabla de registros 4:%2)/A% del mismo modo que en un %atc" 4nput, una vez completada llamaremos a su ejecucin mediante la instruccin# )A11 /'A.SA)/4,. tcod. /iene las siguientes opciones# .. A.2 SA4P (4'S/ S)'$$.. Permite saltar la primera pantalla de la transaccin , esto ser =til para determinadas transacciones que la pantalla inicial sea informativa o no se recojan datos. ..US4.5 itab Permite indicar la tabla interna que contendr los registros con la estructura %2)2A/A. ... 7,2$ mode Permite se3alar el modo de llamada los valores posibles son# - ;A< @isualizando las pantallas. - ;$< @isualizar pantallas slo si "a error. -;.< .o visualizar pantallas. ... UP2A/$ upd Permite se3alar la manera en que se actualizarn los datos en las tablas los valores posibles son# ;A< Actualizacin as!ncrona. ;S< Actualizacin s!ncrona. ... 7$SSA5$S 4./, messtab Permite recoger en la tabla interna ;messtab< los mensajes que se procuzcan durante la ejecucin de la transaccin. @amos a modificar nuestro programa anterior ; ZINTE,XX< para que de la posibilidad de introducir los datos le!dos del fic"ero bien generando un juego de datos o bien ejecutando )all transaction. Para ello realizaremos las siguientes modificaciones# $n primer lugar , definiremos dos casillas de seleccin que den la posibilidad de seleccionar un m&todo u otro. *Si se selecciona juego de datos , el parmetro que indica el nombre del juego de datos a crear ser obligatorio+.

$l cdigo resultante ser algo as!# ************************************************************************ * PROGRAMA: ZINTE,XX * * DESCRIPCION: Con los atos e los clientes leM os e un $ic%ero * a la 8osi!ili a e crear un =uego e atos o cargar * * irecta"ente los atos con Call transaction' * * A(TOR : MAD)) *EC+A: ,-.)-.,))/ * *0000000000000000000000000000000000000000000000000000000000000000000000* * CONTRO# DE MODI*ICACIONES * * *EC+A' A(TOR' DESCRIPCION MODI*ICACION' ************************************************************************ REPORT ZINTE,XX NO STANDARD PAGE +EADING' ************************************************************************ * Ta!las el iccionario e atos * ************************************************************************ TA1#ES: ZC#IENXX' 2 Maestro e clientes' ************************************************************************ * De$inici3n e ta!las internas * ************************************************************************ * Ta!la interna 8ara al"acenar los registros el $ic%ero DATA: 1EGIN O* I4ZC#IENXX OCC(RS )5 1(6RS #I6E ZC#IENXX01(6RS5 2Socie a NC#IE #I6E ZC#IENXX0NC#IE5 2N7"ero e cliente NOM1R #I6E ZC#IENXX0NOM1R5 2No"!re cliente APE#/ #I6E ZC#IENXX0APE#/5 2Pri"er a8elli o APE#, #I6E ZC#IENXX0APE#,5 2Segun o a8elli o *NACI #I6E ZC#IENXX0*NACI5 2*ec%a e naci"iento END O* I4ZC#IENXX' * Ta!la interna 8ara al"acenar los registros el =uego e atos DATA: 1EGIN O* I41DCTA1 OCC(RS )' INC#(DE STR(CT(RE 1DCDATA' DATA: END O* I41DCTA1' ************************************************************************ * De$inici3n e 9aria!les glo!ales * ************************************************************************ DATA :D4MERROR:/)); T<PE C' 2 Mensa=e e error ************************************************************************ * Pantalla e selecci3n * ************************************************************************ * Par>"etro no"!re e $ic%ero SE#ECTION0SCREEN 1EGIN O* 1#OC6 1#O?/ @IT+ *RAME TIT#E TEXT0))/' * Par>"etros

PARAMETERS: * No"!re el $ic%ero :acti9a"os "in7sculas 8er"iti as;' P4N*IC+:C); T<PE C O1#IGATOR< DE*A(#T A.usr.sa8.t"8.Eclien&&' atA #O@ER CASE' SE#ECTION0SCREEN END O* 1#OC6 1#O?/' SE#ECTION0SCREEN 1EGIN O* 1#OC6 1#O?, @IT+ *RAME TIT#E TEXT0)),' PARAMETERS: * *lag e crear =uego e atos P4ND*# RADIO1(TTON GRO(P ))/5 * No"!re el =uego e atos' P4NDATOS:/,; T<PE C DE*A(#T AZC#IENXXA' SE#ECTION0SCREEN S6IP /' PARAMETERS * *lag e call transaction' P4CT*# RADIO1(TTON GRO(P ))/' SE#ECTION0SCREEN END O* 1#OC6 1#O?,' ************************************************************************ * Co"ienEo e selecci3n * ************************************************************************ START0O*0SE#ECTION' * A!ri"os el $ic%ero 8ara lectura en "o o te&to' OPEN DATASET P4N*IC+ *OR INP(T IN TEXT MODE MESSAGE D4MERROR' * Co"8ro!a"os si no %u!o error I* : S<0S(1RC H ) ;' * InicialiEa"os la ta!la interna RE*RES+ I4ZC#IENXX' C#EAR I4ZC#IENXX' * #ee"os el 8ri"er registro el $ic%ero so!re la ta!la interna READ DATASET P4N*IC+ INTO I4ZC#IENXX' * Mientras no %aIa error e lectura @+I#E : S<0S(1RC H ) ;' * AOa i"os el registro leM o a la ta!la interna APPEND I4ZC#IENXX' * InicialiEa"os la ca!ecera C#EAR I4ZC#IENXX' * #ee"os el siguiente registro READ DATASET P4N*IC+ INTO I4ZC#IENXX' END@+I#E' * Co"8ro!a"os Gue se %an al"acena o atos en la ta!la interna C+EC6 NOT : I4ZC#IENXXPQ IS INITIA# ;' * En $unci3n e la o8ci3n selecciona a :Nuego atos o call;' I* NOT : P4ND*# IS INITIA# ;' * Crea"os el =uego e atos con el conteni o e la ta!la I4ZC#IENXX PER*ORM CREAR4N(EGO4DATOS'

* * * * * *

Mostra"os "ensa=e e ANuego e atos crea oA' MESSAGE I))):K-; @IT+ TEXT0))K P4NDATOS' En caso contrario se %a selecciona o Call E#SE' Co"8leta"os la ta!la interna I41DCTA1 PER*ORM COMP#ETAR41DCTA1' #la"a"os a la transacci3n en "o o sincrono I no 9isualiEaci3n CA## TRANSACTION AZ1XXA (SING I41DCTA1 MODE ANA (PDATE ASA' Co"8ro!a"os el 9alor e retorno I* : S<0S(1RC H ) ;' Mostra"os "ensa=e e atos al"acena os MESSAGE I))):K-; @IT+ TEXT0))L' ENDI*' ENDI*' Si %aI error 5 "ostra"os el "ensa=e5 con un "ensa=e e error E#SE' MESSAGE E))):K-; @IT+ D4MERROR' ENDI*'

************************************************************************ * Control e la 8antalla e selecci3n' * ************************************************************************ * Control e la sali a e la 8antalla e selecci3n AT SE#ECTION0SCREEN O(TP(T' * Si esta selecciona a la o8ci3n e =uego e atos * %ace"os Gue la entra a 8ara el 8ar>"etro P4NDATOS sea o!ligatoria' I* NOT : P4ND*# IS INITIA# ;' * Recorre"os to os los ele"entos e la 8antalla' #OOP AT SCREEN' * Al 8ar>"etro P4NDATOS le %ace"os o!ligatorio C+EC6 SCREEN0NAME H AP4NDATOSA' SCREEN0RE?(IRED H A/A' MODI*< SCREEN' END#OOP' ENDI*' ************************************************************************ * Rutinas a icionales' * ************************************************************************ *R000000000000000000000000000000000000000000000000000000000000000000000* *R *or" CREAR4N(EGO4DATOS *R000000000000000000000000000000000000000000000000000000000000000000000* * Crea un =uego e atos con el no"!re in ica o 8or el 8ar>"etro * * P4NDATOS5 8ara la transacci3n Z1XX con el conteni o e la * * ta!la interna I4ZC#IENXX' *

*0000000000000000000000000000000000000000000000000000000000000000000000* *ORM CREAR4N(EGO4DATOS' ************************************************************************ * Proceso * ************************************************************************ * A!ri"os el =uego e atos' CA## *(NCTION A1DC4OPEN4GRO(PA EXPORTING * C#IENT H S<0MANDT * DEST H *I##ERGRO(P H P4NDATOS * +O#DDATE H *I##ER6EEP HAA (SER H S<0(NAME * RECORD H *I##ER/ * IMPORTING * ?ID H EXCEPTIONS C#IENT4INVA#ID H/ DESTINATION4INVA#ID H , GRO(P4INVA#ID HK GRO(P4IS4#OC6ED H L +O#DDATE4INVA#ID H C INTERNA#4ERROR HS ?(E(E4ERROR HT R(NNING HS<STEM4#OC64ERROR H U (SER4INVA#ID H /) OT+ERS H //' * Continua"os si no %aI eror C+EC6 : S<0S(1RC H ) ;' * Co"8leta"os la ta!la 1DC e la $or"a o8ortuna PER*ORM COMP#ETAR41DCTA1' * (na 9eE co"8leta o la transacci3n 5 la inclui"os en el N' atos CA## *(NCTION A1DC4INSERTA EXPORTING TCODE H AZ1XXA * POST4#OCA# H NOV1#OCA# * PRINTING H NOPRINT TA1#ES D<NPROTA1 H I41DCTA1 EXCEPTIONS INTERNA#4ERROR H /

NOT4OPEN H, ?(E(E4ERROR HK TCODE4INVA#ID H L PRINTING4INVA#ID H C POSTING4INVA#ID H S OT+ERS H T' * Co"8ro!a"os si %u!o error5 "ostra"os "ensa=e e error I* : S<0S(1RC VW ) ;' MESSAGE E))):K-; @IT+ S<0S(1RC' ENDI*' * (na 9eE co"8leta o el Nuego e atos 5 lo cerra"os CA## *(NCTION A1DC4C#OSE4GRO(PA EXCEPTIONS NOT4OPEN H / ?(E(E4ERROR H , OT+ERS H K' END*ORM' 2 CREAR4N(EGO4DATOS *R000000000000000000000000000000000000000000000000000000000000000000000* *R *or" COMP#ETAR41DCTA1 *R000000000000000000000000000000000000000000000000000000000000000000000* * Co"8leta la ta!la interna I41DCTA1 con los atos necesarios * * 8ara lla"ar a la transacci3n Z1XX e&istentes en la ta!la interna * * I4ZC#IENXX' * *0000000000000000000000000000000000000000000000000000000000000000000000* *ORM COMP#ETAR41DCTA1' ************************************************************************ * De$inici3n e 9aria!les locales * ************************************************************************ DATA: #4*NACI:/); T<PE C' 2 *or"ateo e $ec%a 8ara 8antalla

************************************************************************ * Proceso * ************************************************************************ * InicialiEa"os la ta!la interna 1DC RE*RES+ I41DCTA1' * Co"8leta"os la ta!la 1DC e la $or"a o8ortuna #OOP AT I4ZC#IENXX' * *or"atea"os el ca"8o $ec%a 8ara sali a : '""'aaaa; * en la 8antalla no 8o e"os in icar el $or"ato interno :aaaa"" ; @RITE I4ZC#IENXX0*NACI TO #4*NACI' * Co"8leta"os la 8antalla inicial con los atos el cliente actual PER*ORM 1DC4INSERT (SING: AXA ASAPMZ1XXA AU)))A5 A A AZC#IENXX01(6RSA I4ZC#IENXX01(6RS5 A A AZC#IENXX0NC#IEA I4ZC#IENXX0NC#IE5

* * *

A A AZC#IENXX0NOM1RA I4ZC#IENXX0NOM1R5 A A AZC#IENXX0APE#/A I4ZC#IENXX0APE#/5 A A AZC#IENXX0APE#,A I4ZC#IENXX0APE#,5 A A AZC#IENXX0*NACIA #4*NACI5 A A AD4PARTIC(#ARA AXA5 A A A1DC4O6CODEA AENTEA5 En la 8antalla inicial :con atos intro uci os; a"os alta AXA ASAPMZ1XXA AU)))A5 A A A1DC4O6CODEA AA#TAA' END#OOP' Intro uci"os el c3 igo e $in e transacci3n es8uJs el 7lti"o cliente PER*ORM 1DC4INSERT (SING: En la 8antalla inicial :a!an ona"os la transacci3n;' AXA ASAPMZ1XXA AU)))A5 A A A1DC4O6CODEA A.1AC6A' 2 COMP#ETAR41DCTA1

END*ORM'

*R000000000000000000000000000000000000000000000000000000000000000000000* *R *or" 1DC4INSERT *R000000000000000000000000000000000000000000000000000000000000000000000* * Inserta en la ta!la interna glo!al I41DCTA1 los ca"8os reci!i o * * Distinguien o si se trata e un registro e In8ro o e un registro * * e ca"8o' * *0000000000000000000000000000000000000000000000000000000000000000000000* * 00WPE4D<N1EGIN *lag e 8antalla. ca"8o * * 00WPE4*NAM No"!re e 8rogra"a . ca"8o * * 00WPE4*VA# Valor 8antalla . ca"8o * *0000000000000000000000000000000000000000000000000000000000000000000000* *ORM 1DC4INSERT (SING VA#(E:PE4D<N1EGIN; VA#(E:PE4*NAM; VA#(E:PE4*VA#;' ************************************************************************ * Proceso * ************************************************************************ * IncialiEa"os la ca!ecera e la ta!la C#EAR I41DCTA1' * In$or"a"os el $lag e 8antalla I41DCTA10D<N1EGIN H PE4D<N1EGIN' * En $unci3n si es o no 8antalla I* : PE4D<N1EGIN H AXA ;' I41DCTA10PROGRAM H PE4*NAM' I41DCTA10D<NPRO H PE4*VA#' * Si se trata e un ca"8o

E#SE' I41DCTA10*NAM H PE4*NAM' I41DCTA10*VA# H PE4*VA#' ENDI*' * Inserta"os el registro en la ta!la interna APPEND I41DCTA1' END*ORM' 2 1DC4INSERT 1.. %irect In"ut. 2el mismo modo que la carga de datos en el sistema a trav&s de %atc" input o )all transaction utilizan la interfaz de pantallas , el sistema 2irect 4nput utiliza una interfaz especial propia. $sta interfaz especial consiste en un conjunto de programas que actualizan las bases de datos sin necesidad de que los datos se introduzcan por pantalla, estos programas toman los datos , normalmente, de un fic"ero con la estructura esperada por el programa. 1a carga de datos mediante programas de carga ;2irect 4nput< es muc"o ms rpida que la carga de dato mediante %atc" 4nput o )all /ransaction. $sto es debido, entre otras razonas , a que durante la carga de los datos , aunque se realizan los mismos c"equeos de autorizaciones, integridad K , se evita la lgica de las pantallas . $xisten programas de carga 2irect 4nput predefinidos para determinados mdulos de SAP. 1a transaccin ;S92A:,12< permite ver estos programas. 1./ Ficheros #oca#es. 0asta a"ora , siempre "emos trabajado con fic"eros que se encontraban en servidor de aplicacin SAP. @amos a ver como trabajar con fic"eros locales , entendiendo como tales aquellos que se encuentran dentro del terminal. *%ien en una unidad de disco, disco de red K+. $xisten dos funciones estndares que nos permiten importar locales# ?S:2,?.1,A2 ?S:UP1,A2 Para volcar a fic"ero. Para leer de fic"ero. exportar datos a fic"eros

@amos a ver con un ejemplo como utilizar estas funciones. $l ejemplo va a consistir en un programa que vuelque el contenido de la tabla I)14$.99 a un fic"ero local . $l cdigo de programa ser algo as!# ************************************************************************ * PROGRAMA: ZINTEKXX *

* DESCRIPCION: 1a=a los atos e la ta!la ZC#IENXX a un $ic%ero local * * * * A(TOR : MAD)) *EC+A: ,-.)-.,))/ * *0000000000000000000000000000000000000000000000000000000000000000000000* * CONTRO# DE MODI*ICACIONES * * *EC+A' A(TOR' DESCRIPCION MODI*ICACION' * ************************************************************************ REPORT ZINTEKX NO STANDARD PAGE +EADING' ************************************************************************ * Ta!las el iccionario e atos * ************************************************************************ TA1#ES: ZC#IENXX' 2 Maestro e clientes' ************************************************************************ * De$inici3n e ta!las internas * ************************************************************************ * Ta!la interna 8ara al"acenar los registros el $ic%ero DATA: 1EGIN O* I4ZC#IENXX OCC(RS )5 1(6RS #I6E ZC#IENXX01(6RS5 2Socie a NC#IE #I6E ZC#IENXX0NC#IE5 2N7"ero e cliente NOM1R #I6E ZC#IENXX0NOM1R5 2No"!re cliente APE#/ #I6E ZC#IENXX0APE#/5 2Pri"er a8elli o APE#, #I6E ZC#IENXX0APE#,5 2Segun o a8elli o *NACI #I6E ZC#IENXX0*NACI5 2*ec%a e naci"iento END O* I4ZC#IENXX' ************************************************************************ * Pantalla e selecci3n * ************************************************************************ * Par>"etro no"!re e $ic%ero SE#ECTION0SCREEN 1EGIN O* 1#OC6 1#O?/ @IT+ *RAME TIT#E TEXT0))/' * Par>"etros PARAMETERS: * Socie a P41(6RS #I6E ZC#IENXX01(6RS O1#IGATOR< DE*A(#T A)))/A5 * No"!re el $ic%ero local :acti9a"os "in7sculas 8er"iti as;' P4N*IC+:/,-; T<PE C O1#IGATOR< DE*A(#T AC:XEclien&&' atA #O@ER CASE' SE#ECTION0SCREEN END O* 1#OC6 1#O?/' ************************************************************************ * Co"ienEo e selecci3n * ************************************************************************ START0O*0SE#ECTION' * Selecciona"os los atos e la ta!la SE#ECT * *ROM ZC#IENXX INTO CORRESPONDING *IE#DS O* TA1#E I4ZC#IENXX

* * * * * * * * * * * * * * *

@+ERE 1(6RS H P41(6RS' Co"8ro!a"os Gue se seleccionar3n atos C+EC6 : S<0S(1RC H ) ;' Volca"os el conteni o e la ta!la interna al $ic%ero local CA## *(NCTION A@S4DO@N#OADA EXPORTING 1IN4*I#ESIZE HAA CODEPAGE HAA *I#ENAME H P4N*IC+ *I#ET<PE H AASCA MODE HAA @6/4N4*ORMAT HAA @6/4N4SIZE HAA @6/4T4*ORMAT HAA @6/4T4SIZE HAA CO#4SE#ECT HAA CO#4SE#ECTMAS6 HAA NO4A(T+4C+EC6 HAA IMPORTING *I#E#ENGT+ H TA1#ES DATA4TA1 H I4ZC#IENXX *IE#DNAMES H EXCEPTIONS *I#E4OPEN4ERROR H / *I#E4@RITE4ERROR H , INVA#ID4*I#ESIZE H K INVA#ID4TA1#E4@IDT+ H L INVA#ID4T<PE HC NO41ATC+ HS (N6NO@N4ERROR HT OT+ERS H -' Mostra"os "ensa=e e $ic%ero crea o MESSAGE I))):K-; @IT+ TEXT0))/'

También podría gustarte