Sei sulla pagina 1di 134

Curso ABAP/4

Indce
CURSO ABAP/4

Parte I.- Introduccin a SAP R/3 1- Introduccin a SAP R/3 Qu es SAP R/3? Componentes de SAP R/3 Aplicaciones Funcionales Sistema Bsico Sistema Ope ati!o "#- Caractersticas de SAP R/3 Sistema Cliente-Se !ido $ecnolo%&a de Sistemas A'ie tos (nte% aci)n de Aplicaciones *nto no de desa ollo +e amientas pa a la con,i%u aci)n del sistema Se !icio de Sopo te- Fo maci)n- consulto &a e implantaci)n . OSS / *u o 0 A1o "222 3#- Entorno de Desarrollo ABAP/4 P o% amaci)n 3a!e%aci)n 4e'u%%in% O %ani5aci)n del desa ollo Concepto de 6andante Concepto de $ ansacci)n 7#- Aplicaciones del ABAP/4 Qu es ABAP/7? Repo tin% . Clsico e (nte acti!o / P o% amaci)n de dilo%o o t ansacciones . dise1o de pantalla / Ot as aplicaciones 6odula i5aci)n Parte II.- Introduccin a ABAP/4 8#- Funda entos de la pro!ra acin de Reports 8#1 $ipos de (nst ucciones 8#" O'9etos de datos 8#3 *st uctu a de un p o% ama ".- Declarando # procesando datos :#1 $ipos de campos :#" 4ecla aci)n de campos :#3 Asi%nando !alo es :#7 Con!e si)n de tipo :#8 Ope aciones a itmticas en ABAP/7 :#: P ocesando campos de tipo te;to :#< =a ia'les del sistemas
CURSO ABAP/4

<#- Control de $lu%o en los pro!ra as ABAP/4 <#1 Fo mulando condiciones <#" P oceso de 'ucles <#3 Sentencias de cont ol >#- Introduccin a las sentencias de salida de Reports ?#- &a'las Internas ?#1 Como decla a ta'las inte nas ?#" @lenado de una ta'la inte na ?#3 O dena una ta'la inte na ?#7 P ocesamiento de una ta'la inte na ?#8 $ atamiento de ni!eles de uptu a ?#: @ectu a de ent adas de una ta'la ?#< 6odi,icando ta'las inte nas 12#- Su'rutinas 12#1 $ipos de su' utinas 12#" Su' utinas inte nas 12#3 Su' utinas *;te nas 0 6)dulos de Funci)n 12#7 (nte cam'io de datos mediante la memo ia %lo'al de SAP 11#- Diccionario de Datos. Co o leer # procesar ta'las de la Base de Datos 11#1 4icciona io de 4atos 11#" @os datos en el sistema SAP 11#3 (nst ucciones SQ@ de ABAP/7 11#3#1 Select 11#3#" (nse t 11#3#3 Apdate 11#3#7 6odi,0 11#3#8 4elete 11#7 Ot os aspectos de la p o% amaci)n de B44 1"#- Bases de Datos (!icas 1"#1 Qu es una Base de 4atos @)%ica? 1"#" Atili5aci)n de las Bases de 4atos @)%icas 13#- Field )roups 17#- For ateando un listado 17#1 Fo mato de los datos de salida 17#" Fo mato de p%ina 17#3 Selecci)n de pa met os# Pantalla de Selecci)n#
CURSO ABAP/4

17#7

*lementos de te;to 0 mensa9es

18#- Field S# 'ols 1:#- Batc* Inputs 1:#1 (nt oducci)n 1:#" Fase de %ene aci)n del BatcB (nput 1:#"#1 Sistema e;te no 1:#"#" *l p o% ama BatcB (nput 1:#"#3 *l ,icBe o de colas 1:#3 Fase de p ocesado de una sesi)n 1:#7 Conse9os p cticos en la utili5aci)n de BatcB (nputs 1:#8 Codi,icaci)n de BatcB (nputs 1<#- &rata iento de $ic*eros desde un pro!ra a en ABAP/4 Ane+o , ABAP/7 *dito Comandos de ca'ece a Comandos de l&nea =a ia'les del Sistema Parte III.- ABAP/4 Conceptos A-an.ados 1#- Reportin! Interacti-o 1#1 (nt oducci)n al Repo tin% (nte acti!o 1#" Cene ando listados inte acti!os 1#3 @a inte acci)n con el usua io 1#7 Ot as Be amientas del Repo tin% (nte acti!o "#- Pro!ra acin de Di/lo!o "#1 (nt oducci)n "#" Pasos en la c eaci)n de t ansacciones 3#- Dise0o de 1en2s 3 1enu Painter 4 3 Release 3.5 4 3#1 (nt oducci)n 3#" @a Ba a de 6enDs 3#3 @os EPusB'uttonsF 3#7 $eclas de Funci)n 3#8 Ot as utilidades del 6enD Painte 3#8#1 Acti!aci)n de ,unciones 3#8#" EFastPatBsF 3#8#3 $&tulos de 6enD 3#8#7 P ue'a- cBeGueo 0 %ene aci)n de Status
CURSO ABAP/4

3#: 6enDs de Am'ito de ea 7#- Dise0o de Pantallas 3 Screen Painter 4 3 Release 3.5 4 7#1 (nt oducci)n al dise1o de pantallas 7#" 4ise1o de pantallas 7#"#1 Atili5ando el Sc een Painte 7#"#" C eando o'9etos en la pantalla 7#"#3 C eando o'9etos desde el dicciona io de datos 7#"#7 4e,iniendo los at i'utos indi!iduales de cada campo 7#3 @)%ica de p oceso de una pantalla 7#3#1 (nt oducci)n a la l)%ica de p oceso 7#3#" P ocess Be,o e Output . PBO / 7#3#3 P ocess A,te (nput . PA( / 7#3#3#1 @a !alidaci)n de los datos de ent ada 7#3#3#" Respondiendo a los c)di%os de ,unci)n 7#3#3#3 P ocesando Step loops 7#3#7 *l ,lu9o de la t ansacci)n 7#3#8 Actuali5ando la 'ase de datos en una t nsacci)n 7#3#: *l 'loGueo de datos en SAP 7#3#< A0udas p o% amadas# *!entos PO+ 0 PO= 8#- Creacin de nue-as ta'las en el diccionario de datos 8#1 *l p oceso de c eaci)n de una ta'la 8#" @as cla!es ,o neas 8#3 Ot as posi'ilidades en la c eaci)n de ta'las

CURSO ABAP/4

Introduccin a SAP R/3

, Introduccin a SAP R/3


SAP R/3 es un sistema emp esa ial inte% ado dise1ado pa a a0uda a las o %ani5aciones a e9ecuta p ocesos emp esa iales- como %estiona in!enta ios- c ea solicitudes- p ocesa pedidos de !enta- pa%a ,actu as- etc# SAP R/3 a'a ca un amplio espect o de p ocesos emp esa iales# SAP R/3 p opo ciona un sistema Dnico inte% ado de %esti)n de las necesidades comDn a todos los depa tamentos de una co po aci)n# *sa inte% aci)n es la % an !enta9a Gue apo ta SAP R/3# Adems- como SAP R/3 es un sistema 'asado en cliente-se !ido - su !e satilidad es aDn ma0o # SAP R/3 consiste en una se ia de eas de aplicaci)n las cuales estudia emos ms adelante#
CURSO ABAP/4

4esde el punto de !ista ,uncional 0 de su a Guitectu a tcnica SAP R/3 puede de,ini se como un so,tHa e a'ie to 'asado en la tecnolo%&a cliente-se !ido - dise1ado pa a mane9a las necesidades de in,o maci)n de una emp esa# Se t ata de un paGuete de so,tHa e estnda . en cont aposici)n al desa ollo a medida / Gue puede modela los p ocesos de ne%ocios de una emp esa en su p opio modelo de datos# @os ni!eles o componentes del SAP R/3 0 la ,unci)n Gue eali5an estn ep esentados dent o de la elipse#

S A P

AP@(CAC(O3*S R/3 3(=*@ FA3C(O3A@

S(S$*6A BAS(CO

S(S$*6A OP*RA$(=O- BAS* 4* 4A$OS I R*4

Co ponentes de SAP R/3


, .- Aplicaciones $uncionales- ent e las cuales menciona emos las si%uientesJ F( (6 CO +R S4 66 PP PS $R Q6 P6 (S KF - 6odulo de Conta'ilidad# - 6odulo de Cesti)n de (n!e siones# - 6odulo de Costes# - 6odulo de Recu sos +umanos# - 6odulo de =entas 0 4ist i'uci)n# - 6odulo de Cesti)n de 6ate iales - 6odulo de P oducci)n# - 6odulo de P o0ectos# - 6odulo de $eso e &a# - 6odulo de Calidad# - 6odulo de 6antenimiento# - 6odulo de Soluciones Secto iales# - 6odulo de Ko L FloH

6.- Siste a '/sico- es el enca %ado de la inte ,a5 ent e el sistema ope ati!o 0 las aplicaciones R/3 inclu0endo componentes tales como el ento no de desa ollo ABAPBe amientas de administ aci)n del sistema- mane9o de 9o's- auto i5aciones- etc#

CURSO ABAP/4

3 .- Siste a 7perati-o- %esti)n de la 'ase de datos 0 la ed cu0o so,tHa e !iene incluido en SAP R/3#

6 Caractersticas de SAP R/3


SAP R/3 o, ece pa a %estiona los distintas ,unciones de una emp esa las si%uientes ca acte &sticasJ Siste a Cliente - Ser-idor

CURSO ABAP/4

S*R=(4OR 4* BAS* 4* 4A$OS

S*R=(4OR*S 4* AP@(CAC(O3

PCFs S*R=(4OR*S 4* PR*S*3$AC(O3

Ar8uitectura Cliente- Ser-idor

Siste a Cliente Ser-idor.- en la computaci)n cliente-se !ido - una pa te del p ocesamiento se e9ecuta en el PC de so' emesa . cliente / 0 la ot a en computado as cent ales compa tidas . se !ido es /# @a p esentaci)n 0 el p ep ocesamiento se e9ecutan en el PC- la in,o maci)n se almacena en los se !ido es# Ser-idor Base de Datos.- *ste es el se !ido cent al Gue contiene la 'ase de datos . el sistema de %esti)n de 'ase de datos / 0 se conoce %ene almente como se !ido de 'ase de datos# Ser-idor de Aplicaciones.- Contienen la l)%ica de p oceso del sistema inclu0endo se !icios como el de imp esi)n- peticiones de usua io- se !icios pa a p ocesa los 9o's de ,ondo- etc# Ser-idores de Presentacin.- $a eas elacionadas con la inte ,ace usua io 0 la p esentaci)n de datos . no malmente PCFs /# @a comunicaci)n ent e los t es ni!eles ante io es se eali5a mediante el p otocolo estnda $CP/(P# &ecnolo!a de Siste as A'iertos Si%ni,ica Gue la aplicaciones pueden ,unciona so' e mDltiples sistemas ope ati!os . A3(M- K(34OKS 3$- AS722- etc# / 0 %esto es de 'ases de datos . ORAC@*(3FOR6(M- A4ABAS- etc# /- siendo el c)di%o ,uente de las aplicaciones ABAP completamente eutili5a'les 0 t anspo ta'les ent e los distintos sistemas# SAP sopo ta mucBas CA( . inte ,aces % ,icas de usua io / tales como KindoHs 3#11KindoHs ?8- KindoHs ?>- KindoHs 3$- 6acintosB- etc# @a CA( dise1ada po SAP es la SAP CA( 0 esta o ientada a !entanas- 'otones- iconos- 'a as de menD- 'a as de Be amientas- etc# Inte!racin de Aplicaciones

CURSO ABAP/4

$odas las aplicaciones R/3 estn inte% adas 0 elacionadas con capacidad de Bace lo en tiempo eal- es deci - la in,o maci)n se actuali5a constantemente# Que si%ni,ica estoJ cualGuie cam'io Gue se ealice po e9emplo en una 'ase de datos se e,le9a inmediatamente en todos los componentes de SAPJ sc een painte - menu painte dicciona io- etc# Entorno de desarrollo (nclu0e todas las Be amientas necesa ias pa a el dise1o 0 desa ollo de p o% amaspantallas- menDs- m)dulos de ,unciones- etc# Contiene tam'in ,unciones pa a eali5a la depu aci)n de p o% amas 0 p ue'as de endimiento# $odas las aplicaciones estnda de R/3 estn eali5adas en ABAP# Se Ba dise1ado un ento no de desa ollo llamado 4e!elopment Ko L'encB Gue se encuent a inte% ado dent o del sistema R/3 0 pe mite al cliente desa olla soluciones especi,icas o amplia las estnda en el nDcleo de ento no de desa ollo se encuent an el Reposito io de o'9etos 0 el 4icciona io de datos#

4icciona io de 4atos

Reposito io de O'9etos

92cleo de Entorno de Desarrollo

4ent o de el 4icciona io de datos se encuent a lo si%uienteJ de,inici)n de ta'las- !alo es pe mitidos- elaciones ent e ta'las- etc# Reposito io de O'9etosJ p o% amas- datos del dicciona io- d0np os- documentaci)n- etc# :erra ientas para la con$i!uracin del siste a @a pa amet i5aci)n es la pied a an%ula de una implantaci)n SAP R/3# Al%unas ta eas de pa amet i5aci)n son tan sencillas como int oduci el pa&s donde esta situada la emp esa 0 ot as son tan complicadas o ientadas a eas o indust ias especi,icas Gue eGuie e conocimientos tcnicos de con,i%u aci)n como de acti!idades emp esa iales# Ser-icios de Soporte; For acin; consultora e i plantacin 3 7SS 4 SAP Ba dispuesto un amplio con9unto de se !icio de calidad pa a a0uda a su cliente du ante el p oceso de implantaci)n 0 sopo te de los sistemas R/3- estos se !icios a'a can desde in,o maci)n de aplicaciones- ,o maci)n- se !icio de instalaci)n Basta consulto &a# SAP eali5a la % an ma0o &a de los se !icios a t a!s de cone;iones emotas con ed de comunicaci)n inte nacional# *l sistema de se !icio en l&nea de SAP se llama OSS . Online Se !ice S0stem /#
CURSO ABAP/4

Euro # A0o 6555 Sopo te completo pa a soluciona los p o'lemas del cam'io del milenio . A1o "222 / 0 la apa ici)n de la moneda *u opea *ARO#

3 Entorno de Desarrollo ABAP/4


*l ento no de desa ollo ABAP/7 consiste de las si%uientes Be amientas J Para Pro!ra acin (a *erra ienta / co ponente 4icciona io ABAP Se utili.a para 4e,ini - mantene 0 almacena el dicciona io de datos del sistema R/3# Contiene todos los o'9etos del dicciona io- tales como ta'las- elacionesdocumentaci)n- etc# C ea 0 mantene los p o% amas ABAP pa a edita m)dulos de ,unci)n-

*dito ABAP

CURSO ABAP/4

9a-e!acin

De'u!!in!

7r!ani.acin del desarrollo

'ases de datos l)%icas 0 la l)%ica de p o% amaci)n de las pantallas . 40np os / @i' e &a de Funciones 4e,ini 0 mantene modulo de ,unci)n ABAP . utinas de p op)sito %ene al Gue pueden se utili5adas en ot os p o% amas ABAP / Sc een Painte 4ise1a 0 mantene las pantallas e inte ,aces % ,icas de usua io en R/3# 6enu Painte 4ise1a 0 mantene los menDs pa a los inte ,aces % ,icos de usua io# O'9ect B oHse Cestiona 0 e!isa los o'9etos de desa ollo de modo 9e Guico pa a pe miti una na!e%aci)n ,cil ent e los o'9etos 0 el ento no de desa ollo# Sistema de in,o maci)n del 3a!e%a 0 'usca o'9etos Reposito io ABAP del dicciona io- o'9etos de desa ollo 0 elaciones ent e o'9etos de desa ollo# Ne a Gu&a Aplicaci)n =isuali5a los o'9etos de desa ollo desde un punto de !ista o %ani5ati!o 0 de aplicaci)n# 4ata B oHse 3a!e%a 0 !isuali5a los contenidos de las ta'las de la 'ase de datos# $ ace SQ@ Se%ui 0 ast ea los accesos 0 llamadas a la 'ase de datos desde los p o% amas 0 t ansacciones del sistema Anlisis $iempo *9ecuci)n Anali5a el endimiento de las llamadas al sistema# 4e'u%%e en l&nea detene un p o% ama 0 anali5a el esultado de la e9ecuci)n de cada sentencia del p o% ama# @ocL del Sistema Se%uimiento de los e o es 0 mensa9es Gue se p oducen du ante la e9ecuci)n de los p o% amas# Ko L'encB O %ani5e Cont ola 0 se%ui el t a'a9o de desa ollo 0 los p o0ectos en eGuipo 0 pa a %estiona las !e siones de los o'9etos de desa ollo# Sistema de $ anspo te Reali5a 0 %estiona los

CURSO ABAP/4

t anspo tes de los o'9etos de desa ollo ent e distintos sistemas SAP# Concepto de 1andante 3 cliente 4.- 6ucBas !eces se entiende de mane a eGui!ocada el este concepto- en ealidad es el nom' e del sistema SAP R/3 al Gue nos conectamos- la ma0o &a de las compa1&as cuentan con un cliente pa a cada ta ea espec&,ica# Se de,ine como una unidad independiente dent o del sistema R/3- desde el punto de !ista ,iscal- le%al 0 o %ani5ati!o# Po e9emplo un mandante se puede deci Gue ep esenta a una emp esa dent o de una co po aci)n# $cnicamente se puede deci Gue un mandante se compo ta dent o de SAP como una 'ase de datos l)%ica independiente- es deci - los datos de una ta'la en un mandante no pueden se modi,icados ni !isuali5ados desde ot o mandante# Po e9emplo una compa1&a pod &a tene la si%uiente con,i%u aci)nJ *l sistema cliente de ,o maci)n 722- Gue se utili5a pa a la ,o maci)n de nue!os usua ios# *l sistema cliente de desa ollo 122- Gue se utili5a pa a nue!os desa ollos asi como etapa de p ue'a de los nue!os desa ollos# *l sistema de p oducci)n 122 es le sistema acti!o utili5ado pa a di i%i la emp esa# Osta es un ea nada ecomenda'le pa a p actica # *s impo tante conoce el cliente o mandante en Gue se eGuie a eali5a la ta ea espec&,ica esto de'ido a los posi'les p o'lemas Gue se pueden %ene a # Cada cliente o mandante tiene especi,icadas auto i5aciones pa a eali5a tal o cual ta ea# @a eali5aci)n de las ta eas en cada mandante son est in%idas 0 asi%nadas se%Dn el ni!el del usua io# Po e9emplo un usua io ,inal no siemp e tiene auto i5aci)n pa a manipula todos los menDs de SAP R/3- asi como un p o% amado puede tene un l&mite dent o del sistema de desa ollo . no esta auto i5ado pa a actuali5a 'ases de datos- elimina elementos de SAP- etc# /- un ,uncional no tend a acceso a los ecu sos del sistema 'ase . administ aci)n de la 'ase de datos /P Concepto de &ransaccin#- 4e un modo %en ico una t ansacci)n es una ope aci)n Gue pe mite a un usua io eali5a cam'ios en la 'ase de datos# $odo el sistema R/3 se puede conside a como un sistema de p oceso de t ansacciones de ne%ocios#

CURSO ABAP/4

4 Aplicaciones del ABAP/4


Qu es ABAP/7 ? ABAP/7 es el len%ua9e de p o% amaci)n de cua ta %ene aci)n p opio de SAP- su iniciales nos indicanJ A - Ad!anced B - Business A - Aplication P - P o% ammin% @as aplicaciones del ABAP/7 sonJ Reportin! . Clsico e inte acti!o / Pro!ra acin de di/lo!o o transacciones . dise1o de pantallas / 7tras aplicaciones . BatcB (nput- p o% amas de comunicaciones- etc# / Ana !e5 instalado SAP la p incipal aplicaci)n del ABAP/7 es la %ene aci)n de in,o mes 0a sea po Gue no Ban sido contemplados po SAP o se eGuie e un ,o mato mu0 completo# *l Reportin! Cl/sico se ca acte i5a po listados !oluminosos o mu0 , ecuentes con me5cla de in,o maci)n detallada 0 esumidas#
CURSO ABAP/4

*l Reportin! Interacti-o esta o ientado a pantallas- listados co tos 0 !entanas cont oladas po teclas de ,unci)n# Am'os reportin! se pueden e9ecuta en 7nline . tiempo eal / mient as Gue Dnicamente el clsico se puede e9ecuta en Batc* . di,e ido /# @a pro!ra acin en di/lo!o se ca acte i5a po esta en,ocado a pantallas Gue esta n cont oladas po m)dulos ABAP/7# Ot as aplicaciones posi'les en len%ua9e de p o% amaci)n son la %ene aci)n de BatcB (nput 0 p o% amas de comunicaciones# An BatcB (nput es una utilidad de Sap pa a t ans,e i in,o maci)n de ,o ma se%u a 0 automati5ada# Pa a ello simula mediante un p oceso en 'atcB la int oducci)n de datos en el sistema !&a t ansacci)n online#

1odulari.acin Po modula i5aci)n dent o de los p o% amas ABAP/7- entendemos Bace ms ,cil la lectu a 0 me9o a su est uctu a# 6odula i5a p o% amas ,acilita el mantenimiento 0 la actuali5aci)n de los mismos a compa aci)n de los Gue no estn de'idamente modula i5ados# . est uctu ados /
Principio de 1odulari.acin
9o odulari.ado 1odulari.ado
PROCRA6 P P## CA@@ A3(4A4 4* 6O4A@AR(QAC(O3 P## CA@@ A3(4A4 4* 6O4A@AR(QAC(O3 P## CA@@ A3(4A4 4* 6O4A@AR(QAC(O3 P##

PROCRA6 P

P##
BlocL de Sentencias

P##
BlocL de Sentencias

P##
CA@@ A3(4A4 4* 6O4A@AR(QAC(O3 BlocL de Sentencias BlocL de Sentencias

P##

$cnicas pa a ,acilita la modula i5aci)nJ

CURSO ABAP/4

1odulari.acin
PROCRA6 RS4*6O21# Call calculateRta; # Su' utina CalculateRta;

PROCRA6 RS4*6O2"# # # Call calculateRta; # #

PROCRA6 RS4*6O27# Su' utine SAB1

Su' utina CalculateRta;

PROCRA6 RS4*6O23# # # Call calculateRta; Function module

ABAP/7 ,unction li' a 0

Function module CalculateRta;

CURSO ABAP/4

4e,ini su' utinas inte nas 0 e;te nas pa a e!ita secuencias de sentencias simila es o idnticas- o sea e!ita edundancia# @as su' utinas me9o an la est uctu a de tu p o% ama . esto si%ni,ica modula i5aci)n / 0 Bace ms ,cil la lectu a# Ana secuencia de sentencias de,inida dent o de una su' utina puede se llamada desde !a ios puntos de un p o% ama# Pa a ma0o cla idad de'es coloca las su' utinas al inicio o al ,in del p o% ama# Puedes de,ini p o% amas include dent o de la 'i'lioteca# S& tu Guie es usa la misma secuencia de sentencias en !a ios p o% amas- tu puedes eali5a el c)di%o dent o de un p o% ama include# 4e,ini 0 eali5a llamados a m)dulos de ,unci)n# @os cuales son almacenados dent o de la 'i'lioteca de ,unciones donde son asi%nados a un % upo de ,unci)n# *l sistema R/3 p opo ciona di!e sos m)dulos de ,unci)n p ede,inidos- los cuales pueden se llamados desde cualGuie p o% ama ABAP/7- adems estos m)dulos de ,unci)n pueden se c eados po el p opio p o% amado # A di,e encia de las su' utinas los m)dulos de ,unci)n cuenta con una inte ,aceS adems de estanda i5a el pase de pa met os# (nte ,aces a'ie tas . llamadas a p o% amas e;te nos /

CURSO ABAP/4

Introduccin a ABAP/4

< Funda entos de la Pro!ra acin de Reports


<., &ipos de instrucciones.

CURSO ABAP/4

An epo t consiste en una se ie de inst ucciones ABAP Gue empie5a po una pala'ra cla-e 0 te mina con un punto# $ipos de pala' as cla!esJ Declarati-as= Pa a decla a los datos Gue !amos a usa a lo la %o del p o% ama# Po e9emploJ 4A$A- $AB@*S# E-entos= especi,ica un e!ento- es el punto donde ABAP e9ecuta un cie to p oceso# Po e9emploJ S$AR$-OF-S*@*C$(O3- $OP-OF-PAC*# ControlJ Sentencias de cont ol de ,lu9o de p o% ama# Po e9emploJ (FK+(@*# 7perati-as= Reali5an ,unciones p opias se%Dn el tipo de pala' a cla!e# Po e9emploJ KR($*- 6O=*# *;isten dos ,o mas de utili5a comenta ios en un epo t# 1# "# Con un aste isco .T/ en la p ime a columna de una l&nea# Con comillas .U/ en mitad de una l&nea- esto es una !e5 esc ita la sentencia puede i un comenta io a continuaci)n#

Podemos com'ina sentencias consecuti!as del mismo ,o mato# *sto si%ni,ica a% upa sentencias 0 e!ita el esc i'i ms l&neas de c)di%o# Po e9emplo= KR($* @FA1-@(F3R# KR($* @FA1-3A6*1# KR($* @FA1-OR$O21# es eGui!alente a J KR($*J @FA1-@(F3R@FA1-3A6*1@FA1-OR$O21#

<.6

7'%etos de datos. *;isten 3 clases de o'9etos de datosJ Ca pos de 'ases de datos %ua dadas en el dicciona io de datos# Podemos decla a las ta'las Gue Gue emos utili5a en un p o% ama con la sentencia $AB@*S# *9emploJ $AB@*SJ @FA1# P# KR($*J @FA1-@(F3R- @FA1-3A6*1# (iterales= lite ales de te;to ent e comillas o nDme os#

CURSO ABAP/4

*9emploJ KR($* E4(R*CC(V3F# CO6PA$* SA@*S W A6OA3$ / 122# >aria'les internas= Campos au;ilia es con nom' e de menos de 32 ca acte es .sin inclui el ca cte 'lanco/# Se decla an con la sentencia *9emploJ 4A$AJ =*3$AS-$O$A@*S $IP* P# <.3 Estructura de un pro!ra a. REP7R& Xnom' eY &AB(ES= DA&A= &7P-7F-PA)E. XSentenciasY indiGuen# E9D-7F-PA)E. XSentenciasY S&AR&-7F-SE(EC&I79. XSentenciasY E9D-7F-SE(EC&I79. XSentenciasY Po ,in de p%ina e9ecuta las inst ucciones Gue se indiGuen# Po inicio de p o% ama e9ecuta las inst ucciones indicadas# Po Fin de p o% ama e9ecuta las inst ucciones indicadas# 3om' e p o% ama $a'las Gue se utili5an =a ia'les inte nas Po inicio de p%ina e9ecuta las inst ucciones Gue se

@a secuencia de e!entos no es ele!ante#

" Declarando # procesando datos


"., &ipos de Ca pos. @os tipos de datos Gue se pueden utili5a en ABAP /7 son=
CURSO ABAP/4

&ipos C F ( 3 P M 4 $

(on! por de$ecto 1 > 7 1 > 1 > :

Posi'le lon!itud 13"222 1*-32<1*Z32> -"31 "31-1 13"222 1 1: 1"?><2 > :

>alor inicial *SPAC(OS 2#2*Z22 2 E2222F 2 ;F22F 22222222 222222

Descripcin $e;to Punto ,lotante *nte o $e;to num ico 3Dm# *mpaGuetado +e;adecimal FecBa IIII6644 +o a ++66SS

".6

Declaracin de Ca pos#

Se decla an campos del epo t con la sentencia DA&A. Si no se indica lo cont a io las !a ia'les se n del tipo ca cte .$e;to/ 0 la lon%itud 1# *9emploJ 4A$A =AR-CAR# 4A$A =AR-CAR.>/# --Y C ea una !a ia'le te;to de lon%itud ># Con el pa met o &?PE podemos utili5a ot os tipos de datos# *9emploJ 4A$A 3A6-CAR.8/ $IP* 3# 4A$A 3A6*RO."/ $IP* P# 4A$A F*C+A @(6($* $IP* 4#

Con el pa met o (I@E; podemos decla a una !a ia'le con los mismos at i'utos de lon%itud 0 tipo Gue una !a ia'le de 'ase de datos# *9emploJ 4A$A ACR**4OR @([* @FA1-@(F3R#

Con el pa met o >A(AE podemos indica la !a ia'le con un !alo distinto al Gue tienen po de,ecto# *9emploJ 4A$A CO3$A4OR $IP* P =A@A* 1#

An re!istro de datos es un con9unto de campos elacionados l)%icamente en una est uctu a# *9emploJ 4A$AJ B*C(3 OF PRO=**4OR @(F3R @([* @FA1-@#(F3R3A6*1 @([* @FA1-3A6*1C(A4A4."2/ =A@A* \BARC*@O3A\F*C+A $IP* 4*34 OF PRO=**4OR#

Poste io mente el acceso a los campos del e%ist o de datos se J


CURSO ABAP/4

KR($*J PRO=**4OR-3A6*1PRO=**4OR-F*C+A# $am'in usa emos la inst ucci)n 4A$A pa a decla a ta'las inte nas# @as ta'las inte nas a di,e encia de las de 'ase de datos se %ua da n en memo ia 0 no en el diccionario de datos. *9emploJ 4A$AJ B*C(3 OF 6*NOR*SR PRO=**4OR*S OCCARS 123O6BR* @([* @FA1-3A6* 1C(A4A4 @([* @FA1-OR$1=*3$AS @([* @FC3-SO@@@*34 OF 6*NOR*SRPRO=**4OR*S# @a clusula 7CCARS dete mina el nDme o de l&neas %ua dadas en memo ia p incipal# *sto no si%ni,ica Gue el tama1o m;imo de la ta'la sea el indicado- 0a Gue si este se des'o da los datos se %ua dan en un ,icBe o de pa%inaci)n- 'a9ando l)%icamente el tiempo de p oceso de las ta'las inte nas- pe o e!itando Gue el ea %lo'al de almacenamiento destinado po SAP pa a ta'las inte nas se a%ote# @as ta'las inte nas se decla an- iniciali5an 0 e,e encian como un e%ist o de datos# $am'in podemos utili5a la misma est uctu a Gue una ta'la de 'ase de datos# Pa a ello utili5a emos la inst ucci)n I9C(ADE S&RAC&ARE. *9emploJ 4A$A B*C(3 OF SOC(*4A4* OCARRS 1 2# (3C@A4* S$RAC$AR* $221# 4A$A *34 OF SOC(*4A4*S# ".3 Asi!nando -alores.

*;isten di!e sas ,o mas de asi%na !alo es a una !a ia'le en ABAP/7# Ana asi%naci)n di ecta- como esultado de una ope aci)n a itmtica o como esultado de una con!e si)n automtica ent e campos con !alo es de di,e ente tipo de datos# @a inst ucci)n 17>E eali5a un t anspo te del contenido del -ar, al campo -ar6# 17>E B-ar,C &7 B-ar6C# Podemos sustitui esta Dltima inst ucci)n po J B-ar6C D B-ar,C. Gue es la simpli,icaci)n deJ C71PA&E B-ar6C D B-ar,C. donde la pala' a cla!e CO6PA$* es opcional#
CURSO ABAP/4

$am'in es posi'le e,e encia o asi%na !alo es a una pa te de la !a ia'le utili5ando el o$$set. =AR(AB@*Zo$$set3lon!itud4 *9emploJ 4A$AJ =AR(.18/ =A@A* \R(=*R@A34 BC3#\=AR".18/ =A@A* \+O@A\# 6O=* =AR(Z12.7/ $O =AR"Z8.7/# KR($* =AR"# ResultadoJ =AR1 R ( =AR" + O @ A 17>E >AR,E,5344 &7 >AR6E<344. =AR" + O @ A B C 3 # = * R @ A 3 4 B C 3 # :7(A BC9#

Si se desean utili5a !a ia'les en el o,,set o la lon%itud se usa la inst ucci)n FRI&E &7. *9emploJ OFF1 W 12# OFF" W 8# @*3 W 7# KR($* =AR1ZOFF1.@*3/ $O =AR"ZOFF".@*3/# Si desean cBeGuea la lon%itud o el tipo de una !a ia'le podemos utili5a la inst ucci)n DESCRIBE FIE(D# Sinta;is J DESCRIBE FIE(D ca po (E9)&: lon!itud. G G &?PE tipo.

CURSO ABAP/4

G G

G G

7A&PA&-(E9)&: lon! salida. DECI1A(S P(ACES deci ales.

Pa a cBeGuea la lon%itud de un campo utili5amos la clusula (E9)&:. Pa a conoce el tipo de datos del campo utili5amos &?PE. Pa a conoce la lon%itud de salida utili5amos 7A&PA&-(E9)&:. Pa a sa'e el nDme o de decimales Gue tiene una cie ta !a ia'le utili5a emos la clusula DECI1A(S. Pa a iniciali5a las !a ia'les utili5amos la sentenciaJ C(EAR Bca poC. C@*AR iniciali5a al !alo Gue tiene asi%nado como !alo inicial.!e ta'la/ sin tene en cuenta a las clusulas =A@A* Gue Ba0a# @a asi%naci)n e iniciali5aci)n de los e%ist os de datos ,unciona de la misma ,o ma Gue en las !a ia'les no males# An C@*AR iniciali5a todos los campos del e%ist o# Pod emos conse%ui una asi%naci)n mas potente con 17>EC7RRESP79DI9). 17>E-C7RRESP79DI9) Bre!,C &7 Bre!6C. *sta inst ucci)n mue!e del e%1 al e%" aGuellos campos Gue ten%an idntico nom' e#

".4

Con-ersin de tipo#

Si intentamos eali5a una asi%naci)n de !a ia'les de distinto tipo; ABAP/7 intenta eali5a una con!e si)n automtica de tipo# Podemos !e un e;t acto de las posi'les con!e siones en el A9EH7 6 ] $0pe con!esi)n ta'le^ *;iste una inst ucci)n adicional pa a la con!e si)n P C A9PAC@ BpInu C &7 Bstrin!C.

Que desempaGueta pRnum en la !a ia'le st in% colocando ce os a la i5Guie da# *;iste una inst ucci)n adicional pa a la con!e si)n C -C P# PAC@ Bstrin!C &7 BpInu C.
CURSO ABAP/4

".<

7peraciones Arit Jticas en ABAP/4. *n ABAP/7 las 7 ope aciones a itmticas 'sicas se pueden implementa J Con la inst ucci)n C71PA&E 0 los s&m'olos Z- -- / 0 TC71PA&E -ar, D BE+p. Arit JticaC. donde la pala' a CO6PA$* es opcional# Si utili5amos pa ntesis de9a emos un espacio en 'lanco p ecediendo 0 si%uiendo al pa ntesis# Con las inst ucciones J ADD &7; SABS&RAC& FR71; 1A(&IP(? B? # DI>IDE B?. $am'in dispond emos de ,unciones matemticas pa a los nDme os de coma ,lotanteJ EHP; (7); SI9; C7S- SKR&; DI>; 17D. S&R(E9.

"."

Procesando ca pos de tipo te+to. ABAP/7 o, ece al%unas inst ucciones pa a el p ocesamiento de cadenas de te;to# Pa a eali5a un despla5amiento del contenido de un campo utili5amos S:IF&# S:IF&Bca poC la i5Guie da# Reali5a un despla5amiento de un ca cte Bacia

S:IF&Bca poC B? BnC P(ACES3RI):&4# Reali5a un despla5amiento de n ca acte es Bacia la i5Guie da o si se especi,ica Bacia la de ecBaint oduciendo 'lanco po el lado opuesto# *9emploJ + O @ A

S+($F campo BI " P@AC*S# @ A S:I&F Bca poC B? 6 P(ACES CIRCA(AR 3RI):&4. Reali5a un despla5amiento c&clico Bacia la i5Guie da o si se especi,ica Bacia la de ecBa#
CURSO ABAP/4

*9emploJ + O @ A

S+(F$ campo BI " P@AC*S C(RCA@AR @ A + O

Podemos eempla5a el contenido de cie tos campos con la (nst ucci)n REP(ACE. REP(ACE Bcadena,C FI&II Bcadena6C I9&7 Bca poC. Reempla5a \cadena1\ po \cadena"\ dent o de la !a ia'le \campo\# Si la !a ia'le del sistema S?-SABRC BC 5 es Gue \cadena1\ no e;iste dent o de \campo\# R*P@AC* Dnicamente sustitui la p ime a apa ici)n de \cadena 1\# *;iste ot a inst ucci)n de sustituci)n- &RA9S(A&E. &RA9S(A&E Bca poC &7 APPER CASE. &7 (7FER CASE. ASI9) LBre!laCM. Pasa a 6a0Dsculas Pasa a 6inDsculas# Reempla5a campo se%Dn la e%la de sustituci)n indicada#

donde la e%la W XC1S1C"S"###Y 0 Cn son los ca acte es a sustitui 0 Sn los ca acte es de sustituci)n##

@a inst ucci)n SEARC: 'usca la cadena dent o de un campo o una ta'la#


SEARC: Bca poC/Bta'laC F7R BcadenaC. Si el Resultado es positi!o SI-SABRC W 2# *n caso de Gue sea una ta'la SI$AB(M contiene la l&neas de la ta'la donde se Ba encont ado#

Pa a 'o a los 'lancos de una cadena utili5a emos C79DE9SE#


C79DE9SE Bca poC 397-)APS4# *sta inst ucci)n 'o a todos los 'lancos Gue se encuent en comen5ando la cadena po la i5Guie da 0 en caso de encont a se ies de 'lancos inte medios de9a Dnicamente uno po se ie# *9emploJ
CURSO ABAP/4

CARSO

4* ABAP/7U

UCARSO 4* ABAP/7U

@a clusula 97-)APS 'o a todos los 'lancos estn donde estn# ".N >aria'les del siste a. !an actuali5ando

ABAP/7 tiene al%unas !a ia'les inte nas Gue se automticamente 0 Gue pueden se utili5ados en los p o% amas#

$odas ellas empie5an po el p e,i9o S?- 0 0a Bemos utili5ado al%una de ellas como SI-SABRC Gue nos da el c)di%o de eto no de una inst ucci)n o SI-$\AB(M Gue contiene la l&nea de p oceso de una ta'la inte na# *n el Ane+o , Ba0 una elaci)n de todas ellas#

N Control de $lu%o en los pro!ra as ABAP/4


N., For ulando condiciones

*n ABAP- como en todos los len%ua9es est uctu ados- disponemos de una se ie de inst ucciones pa a su'di!idi el p o% ama en 'loGues l)%icosS se e9ecuta n cuando se cumpla una cie ta condici)n# Pa a int oduci una condici)n- utili5a emos la sentencia IF### pod apa ece en distintas modalidades# IF BCond.C. O E9DIF. IF BCond.C. O E(SE. O E9DIF. E(SE### E9DIF - Gue

IF BCond.C. O E(SEIF. O E(SEIF. O E(SE. O E9DIF.

CURSO ABAP/4

*n las condiciones utili5amos los clsicos ope ado esJ I O (%ual 4istinto 6a0o 6eno 6a0o o i%ual 6eno o i%ual A9D 7R D - EK BC - E9 C - )& B - (& CD - )E BD - (E

Adems e;isten ope ado es adicionales pa a compa a cadenas de ca acte esJ X,1Y C7 X,"Y .Contains Onl0/ J ,1 s)lo contiene ca acte es de ,"# *n caso de se cie ta S?-FDP7S contiene la lon%itud de ,1- 0 si es ,alsa contiene el o,,set del p ime ca cte Gue no cumple la condici)n#

X,1Y C9 X,"Y .Contains 3ot Onl0/ J ne%aci)n de la ante io # X,1Y CA X,"Y .Contains An0/ J ,1 contiene como m&nimo al%Dn ca cte de ,"# Si es cie ta S?-FDP7S contiene el o,,set del p ime ca cte de ,1 Gue est en ,"- 0 si es ,alsa contiene la lon%itud de ,1# X,1Y 9A X,"Y .Contains 3ot An0/ J ne%aci)n de la ante io # X,1Y CS X,"Y .Contains St in%/ J ,1 contiene la cadena ,"# Si la condici)n S?-FDP7S es cie ta contiene el o,,set donde empie5a ," en ,1- 0 si es ,alsa contiene la lon%itud de ,1#

X,1Y 9S X,"Y .Contains 3o St in%/ J ne%aci)n de la ante io # X,1Y CP X,"Y .Contains Patte n/ J ,1 co esponde al pat )n ,"# *n el pat )n podemos utili5a J E como cualGuie ca cte - T como cualGuie cadena de ca acte esP pa a utili5a los ca acte es Z-T-_ en la compa aci)n# Si la condici)n es cie ta S?-FDP7S contiene el o,,set de ," en ,1 0 si es ,alsa contiene la lon%itud de ,1# ne%aci)n de la ante io #

X,1Y 9P X,"Y .Contains 3o Patte n/ J

$am'in pod emos utili5a ope ado es especialesJ IF B$,C BE&FEE9 B$6C A9D B$3C. IF B$,C IS I9I&A(.
CURSO ABAP/4

Pa a cBeGuea an%os

Pa a cBeGuea !alo es iniciales#

Si Gue emos e9ecuta di,e entes inst ucciones en ,unci)n del contenido de un campo- podemos utili5a la sentencia CASE. CASE Bca poC. F:E9 B-alor,C. O F:E9 B-alor6C. O F:E9 7&:ERS. O E9DCASE. Po Dltimo- e;iste la inst ucci)n condicional- 79 C:A9)E 7F ... E9D79Gue pe miti la e9ecuci)n de un 'loGue de inst ucciones- si se Ba p oducido un cam'io de !alo de un cie to campo du ante el acceso a 'ase de datos o una ta'la inte na# C)mo p ocesa una ta'la inte na o un acceso a 'ase de datos- 0a lo !e emos ms adelante# 79 C:A9)E 7F Bca poC. O E9D79.

CURSO ABAP/4

N.6

Proceso de 'ucles Pa a eali5a p ocesos epetiti!os- utili5a emos D7 0 F:I(E#

@a inst ucci)n D7 pe mite e9ecuta un 'loGue de inst ucciones tantas !eces como se especi,iGue# D7 BnC &I1ES. O E9DD7. *n la !a ia'le del sistema S?-I9DEH tend emos un contado del nDme o de epeticiones#

*s posi'le anida 4O\s# *n ese caso- el SI-(34*M Ba e,e encia al 'ucle en p oceso# @a inst ucci)n F:I(E pe mite e9ecuta un 'loGue de inst ucciones mient as se cumpla una condici)n# F:I(E BcondC. O E9DF:I(E. 4e la misma ,o ma Gue la inst ucci)n 4O- K+(@* pe mite anida 'ucles# N.3 Sentencias de control el

@as sentencias desc itas a continuaci)n se utili5a n pa a te mina p ocesamiento de un 'ucle o p oceso# @a inst ucci)nJ C:EC@ BcondC.

Reali5a un cBeGueo de XcondY de ,o ma Gue si dent o de un 'ucle la condici)n es $alsa; salta todas las inst ucciones Gue si%uen al C+*C[ e inicia la si%uiente pasada al 'ucle# Fue a de un 'ucle si la condici)n es ,alsa- salta todas las inst ucciones Gue si%uen al C+*C[ Basta el ,inal del e!ento o p o% ama en p oceso# @a inst ucci)nJ EHI&.

4ent o de un 'ucle sald del 'ucle 0 ,ue a de un 'ucle sald del p o% ama# Si la inst ucci)n *M($ est dent o de !a ios 'ucles anidados- Dnicamente sald del 'ucle en p oceso# @a inst ucci)nJ S&7P.

CURSO ABAP/4

Con S$\OP ,inali5a emos el epo t .p o% ama/ en e9ecuci)n; pe o antes e9ecuta emos el e!ento *34-OF-S*@*C$(O3# @a inst ucci)nJ (EA>E.

Con @*A=* ,inali5a emos el epo t .p o% ama/ en e9ecuci)n- sin e%ecutar el e!ento *34-OF-S*@*C$(O3#

Q Introduccin a las sentencias de salida de Reports

CURSO ABAP/4

A continuaci)n !e emos un esumen de las sentencias de salida de epo ts ms 'sicas# Como 0a Bemos !isto en los e9emplos de los cap&tulos ante io es- pa a !isuali5a un !alo utili5a emos la sentencia FRI&E# FRI&E / 3Bo$$setC43Blon!C4 RBdatos a -isuali.arCS. Con la Barra / indica emos si Gue emos salta una l&nea o no antes de imp imi .opcional/# Con el 7$$set indica emos la columna donde empe5a la imp esi)n .opcional/# Con (on! indica emos la lon%itud de los !alo es a !isuali5a .opcional/# Podemos imp imi una l&nea de Su' a0ados con la sentencia A(I9E# $end las mismas p opiedades Gue el KR($*# A(I9E /3Bo$$setC43BIon!C4. Pa a salta una o !a ias l&neas utili5a emos S@IP# S@IP BnC. Po de,ecto el salto se de una Dnica l&nea# Pa a salta una p%ina utili5a emos 9EF-PA)E# Pa a int oduci pa met os en la e9ecuci)n del epo t e;isten !a ias opciones# @a ,) mula ms sencilla es la sentencia PARA1E&ERS# PARA1E&ERS= B-arC &?PE BtipoC (I@E BtipoC DEFAA(& B-alorC 7B(I)A&7R?. (7FER CASE.

(%ual Gue el =A@A*# O'li%a a int oduci al%Dn !alo # Pe mite int oduci minDsculas#

*l nom' e del pa met o no puede se supe io a > ca acte es# *n el Captulo ,4 se t ata todas las posi'ilidades pa a las selecciones 0 ent ada de pa met os#

T &a'las Internas

CURSO ABAP/4

Si deseamos %ua da una coleccin de re!istros de datos de la is a estructura en memo ia sin necesidad de accede a la 'ase de datos 0 pode eali5a ope aciones di!e sas con este con9unto de in,o maci)n- utili5a emos las ta'las internas. T., C o declarar ta'las internas DA&A= BE)I9 7F Bta'laC 7CCARS BnC; BDe$.Ca poC; O E9D 7F Bta'laC. 4e,ini emos una ta'la inte na con n-l&neas en memo ia- ms una l&nea de ca'ece a o ea de t a'a9o# @a cantidad de l&neas Gue especi,iGuemos en el OCCARS no limita el tama1o de la ta'la- sino la cantidad de e%ist os Gue se %ua dan en memo ia simultneamente# *sto Bace necesa io un especial cuidado al p opone el nDme o de l&neas- 0a Gue un OCCARS mu0 % ande supone un % an %asto de ecu sos del sistema 0 un OCCARS peGue1o un acceso mu0 lento- 0a Gue necesita de un p oceso de pa%inaci)n# T.6 (lenado de una ta'la interna. APPE9D J A1ade un e%ist o a una ta'la inte na con los !alo es Gue ten%amos en el ea de t a'a9o# APPE9D Binta'C. C7((EC& J A1ade o suma la l&nea de ca'ece a# Suma los campos de tipo P-F-(- si e;iste una l&nea en la ta'la con campos idnticos .tipo C/ a los del ea de t a'a9o# *l p o'lema de esta inst ucci)n es Gue es 'astante lenta# Se puede sustitui po las inst ucciones R*A4 e (3S*R$ o 6O4(FI# Podemos llena una ta'la inte na con el contenido de una ta'la de 'ase de datos# Siemp e Gue la ta'la inte na ten%a la misma est uctu a Gue la ta'la de 'ase de datos# SE(EC& U FR71 Bta'C I9&7 &AB(E Bta'intC.

CURSO ABAP/4

T.3

7rdenar una ta'la interna. Pa a clasi,ica una ta'la inte na utili5amos S7R&# S7R& Binta'C.

*sta inst ucci)n eali5a una o denaci)n po la est uctu a de la ta'la sin tene en cuenta los campos P-(-F# Pa a o dena po el campo.s/ Gue necesitemos .sea del tipo Gue sea/J S7R& Binta'C B? Bca po,C .... Bca po nC.

Si no se indica lo cont a io- la o denaci)n po de,ecto es ascendente# S7R& ### T.4 ASCE9DI9). o DESCE9DI9).

Procesa iento de una ta'la interna. Podemos eco e una ta'la inte na con la inst ucci)n (77P ... E9D(77P(77P A& BintalC 3 F:ERE BcondC4. E9D(77P.

*n cada ite aci)n coloca la l&nea de la ta'la Gue se est p ocesando en la l&nea de ca'ece a# Podemos est in%i el p oceso de una ta'la con una condici)n K+*R*# Si no e;iste nin%Dn e%ist o de la ta'la Gue cumpla la condici)n especi,icada en la clusula K+*R*- la !a ia'le del sistema S?-SABRC se distinta Gue 2# 4ent o del @OOP- la !a ia'le S?-&ABIH contiene el &ndice de la ent ada Gue est p ocesando en ese momento# $am'in es posi'le Bace unJ (77P A&Binta'C FR71 BinicioC &7 B$inC. O E9D(77P. 4onde XinicioY 0 X,inY son &ndices de la ta'la inte na# T.< &rata iento de ni-eles de ruptura.

CURSO ABAP/4

*n el t atamiento de un @OOP podemos utili5a sentencias de cont ol de uptu a = A& FIRS&. O E9DA&. A& (AS&. O E9DA&.

Reali5a las inst ucciones Gue Ba0 a continuaci)n del A$ F(RS$ pa a la p ime a ent ada de la ta'la#

Reali5a las inst ucciones Gue Ba0 a continuaci)n del A$ @AS$ pa a la Dltima ent ada de la ta'la#

A& 9EF Bca poC. O E9DA&. Reali5a las inst ucciones Gue Ba0 a continuaci)n del A$ 3*K pa a cada inicio de ni!el de uptu a# A& E9D 7F Bca poC. O E9DA&. Reali5a las inst ucciones Gue Ba0 a continuaci)n del A$ *34 pa a cada ,inal de ni!el de uptu a# Si utili5amos la inst ucci)n SA1 dent o de un A$ ### *34A$- eali5a la suma de todos los campos P-(-F de ese ni!el de uptu a . pa a el clculo de su'totales /# *l esultado lo encont a emos en el ea de t a'a9o de la ta'la# Se necesa io Gue la ta'la inte na est o denada en el mismo o den Gue la utili5aci)n de los ni!eles de uptu a# As& la utili5aci)n con9unta de todas estas inst ucciones se J S7R& Binta'C B? Bc,C Bc6C. (77P A& Binta'C. A& FIRS& ... 3SA14 ... E9DA&. A& 9EF BclC. ... 3SA14 O E9DA&. A& 9EF Bc6C. ... 3SA14 O E9DA&. .......... GProceso 9or al de la ta'la A& E9D 7F Bc6C. ... 3SA14 ... E9DA&. A& E9D 7F Bc,C. ... 3SA14 ... E9DA&. A& (AS& O 3SA14 O E9DA&. E9D(77P.
CURSO ABAP/4

Podemos !e un e9emplo p ctico de t atamiento de ni!eles de uptu a en el BC ABAP/4 = Pro!ra in! Reports Q-,N; Q-,Q. T." (ectura de entradas de una ta'la. Podemos 'usca un e%ist o conc eto en una ta'la sin necesidad de eco e la# READ &AB(E Binta'C. Pa a ello- en p ime lu%a ellena emos la l&nea de ca'ece a con la cla!e de 'DsGueda 0 lue%o Ba emos el R*A4# *l esultado de la 'DsGueda lo tend emos en S?-SABRC. SiJ SI-SABRC W 2 - la 'DsGueda Ba sido positi!a# SiJ SI-SABRC XY 2 - no Ba encont ado el e%ist o solicitado# *;isten ot as e;tensiones a la inst ucci)n R*A4 Gue necesita n Gue la ta'la est o denada# Podemos 'usca po cla!e conJ READ &AB(E Binta'C F:I& @E? Bcla-eC. 3o necesita llena la l&nea de ca'ece a# Busca desde el inicio de la ta'la Gu ca cte a ca cte coincida con la cla!e# *s posi'le una 'DsGueda aDn ms pida con una 'DsGueda 'ina ia# READ &AB(E Binta'C FI&: @E? Bcla-eC BI9AR? SEARC:. Ana lectu a di ecta de un e%ist o de la ta'la la podemos eali5a conJ READ &AB(E Binta'C I9DEH Bnu C.

T.N

1odi$icando ta'las internas.

Ana !e5 llena la ta'la inte na tenemos la posi'ilidad de modi,ica los datos con una se ie de sentencias ABAP/7#

CURSO ABAP/4

17DIF? J podemos so' eesc i'i el contenido de la ent ada XiY con el contenido de la l&nea de ca'ece a# 17DIF? Binta'C 3I9DEH BiC4. 4ent o de un @OOP- la clusula (34*M es opcional# Po de,ecto se el contenido de la !a ia'le SI-$AB(M#

I9SER& J a1ade una ent ada delante de la ent ada XiY con el contenido de la l&nea de ca'ece a# I9SER& Binta'C 3I9DEH BiC4.

DE(E&E J pa a 'o a una ent ada de una ta'la# DE(E&E Binta'C 3I9DEH BiC4.

Ot as inst ucciones de mane9o de ta'lasJ (niciali5a el ea de t a'a9o o l&nea de ca'ece a# C(EAR Binta'C. (niciali5a .'o a / el contenido de una ta'la# REFRES: Binta'C. @i'e a el espacio ocupado po una ta'la en memo ia# FREE Binta'C. Pa a o'tene in,o maci)n so' e una ta'la inte na# DESCRIBE &AB(E Bta'C (I9ES BcontadorIentradasC 7CCARS B-alorIoccursC.

CURSO ABAP/4

,5 Su'rutinas
,5., &ipos de su'rutinas.

*;isten 3 tipos de su' utinas o su'p o% amas# Internas= *l Su'p o% ama 0 la llamada a ste estn en el mismo p o% ama# E+ternas= *l Su'p o% ama 0 la llamada a ste estn en p o% amas distintos# Bi'lioteca de $unciones 31dulos de $uncin4= Funciones e;te nas al p o% ama con inte ,ace de llamada cla amente de,inido# ,5.6 Su'rutinas internas. @lamada a su'p o% ama# Su'p o% ama# un p ocedimiento o

PERF7R1 B oduloC F7R1 B oduloC E9DF7R1

*l p o% ama p incipal 0 el p ocedimiento se pod n comunica mediante pa met os# P PERF7R1 B oduloC ASI9) -arl -ar6 ... P F7R1 B oduloC ASI9) -arl -ar6 ... P E9DF7R1. @os pa met os pueden se pasados po -alor .*/ o po re$erencia .*/S/# Po de,ecto se n po e,e encia# Si Gue emos utili5a pa met os po !alo - la ca'ece a del m)dulo se J F7R1 B oduloC ASI9) >A(AE 3-ar,4 ... E9DF7R1. $anto las !a ia'les de,inidas al inicio del epo t como las ta'las son %lo'ales a todas las su' utinas 0 po tanto accesi'les en cualGuie momento# Si encont amos al%una inst ucci)n del tipo C+*C[ o *M($ Gue si%ni,iGue sali de un cie to FOR6- p e!iamente e9ecuta el *34FOR6 0 po tanto se pasa n los pa met os Gue ten%a el p ocedimiento#
CURSO ABAP/4

$am'in es posi'le pasa como pa met o ta'las inte nas# PERF7R1 B oduloC &AB(ES Binta'C ... ASI9) B-arlC B-ar6C F7R1 B oduloC &AB(ES Binta'C ... ASI9) B-arlC ... *speci,ica emos las ta'las siemp e antes Gue el esto de pa met os# *n este caso s)lo se pueden Bace ope aciones con# ,ilas ente as- pe o no nos pod emos e,e encia so' e campos conc etos de la ta'la o Bace CO@@*C$S- 0a Gue no se conoce la est uctu a de la ta'la# Podemos pasa como pa met os e%ist os de datos o eas de t a'a9o con J PERF7R1 B duloC ASI9) Bre!C. F7R1 B oduloC ASI9) Bre!C S&RAC&ARE BestructuraC. E9DF7R1. *s deci con la clusula S$RAC\(\AR* podemos pasa la est uctu a de una ta'laentonces podemos accede a campos de una ta'la pasada como pa met o conJ ...

PERF7R1 B oduloC &AB(ES Binta'C ASI9) B-ar,C O F7R1 B oduloC &AB(ES Binta'C SMIMRAC&ARE BestructuraC. ASI9) B-ar,C O E9DF7R1. 4ent o de cada su' utina es posi'le decla a datos con la sentencia 4A$A- Gue s)lo se n !isi'les dent o del m)dulo donde est decla ado# ABAP/7 c ea un espacio pa a esas !a ia'les Gue se li'e ado al sali del m)dulo. Po tanto se pod n utili5a !a ia'les con el mismo nom' e Gue !a ia'les %lo'ales- aunGue el !alo Gue ten%an se siemp e el local en el m)dulo# @as ta'las de 'ase de datos son %lo'ales a todo el p o% ama- si se Guie e utili5a una ta'la localmente en una su' utina- se de'e decla a con (7CA(- al inicio de la su' utina- en !e5 de con $AB@*S# (7CA( Bta'laC. ,5.3 Su'rutinas E+ternas # 1dulos de $uncin.

CURSO ABAP/4

Si Gue emos llama a una su' utina Gue est en un p o% ama distinto utili5amosJ PERF7R1 Bsu'C3Bpro!ra aC4 ASI9) O $am'in e;iste la posi'ilidad de a1adi po ciones de c)di%o del tipo include con la inst ucci)nJ I9C(ADE BreportC. *n el c)di%o del include no utili5a emos la sentencia R*POR$### @os dulos de $uncin son m)dulos especiales %ua dados en una li' e &a cent al0 a% upados po la ,unci)n Gue eali5an# P incipalmente se ca acte i5an po un inter$ace de$inido 0 po Gue eali5an trata iento de e+cepciones. Se ca acte i5an po un inte ,ace de,inido 0a Gue su dise1o ,acilita el paso de pa met os tanto de ent ada como de salida# CA(( FA9C&I79 B$uncionC. EHP7R&I9) BparIEC D B-alor-C I1P7R&I9) BparISC D B-alorIretC &AB(ES Bta'IFuncC D Bta'IPro!C EHCEP&I79S Be+cepC D B-alorC 4onde en el *MPOR$3C especi,icamos los pa met os de ent ada- en el (6POR\(\(3C .opcional/ el esultado o eto no de la ,unci)n 0 en $AB(#*S .opcional/ las ta'las- Gue se utili5an como pa met os# @os m)dulos de ,unci)n tam'in se ca acte i5an po eali5a un t atamiento de e;cepciones# *n el inte ,ace de los m)dulos de ,unci)n se indican los !alo es- de e;cepciones pa a el eto no del m)dulo- Gue poste io mente con el SI-SABRC se pueden comp o'a # *l c)di%o de la ,unci)n puede acti!a e;cepciones mediante las inst uccionesJ 1ESSA)E O. RAISI9) Be+cepcionC o RAISE Be+cepcionC Pa a accede a la 'i'lioteca de m)dulos de ,unci)n es posi'le utili5a el comando S+O``\ FA3C$(O3T desde el edito de P o% amas o desde el t atamiento de m)dulos de ,unci)n del menD :erra ientas -C CASE -C desarrollo -C Actuali.ar pro!ra as -C 1dulos de $uncin; desde donde pod emos adems c ea los 0 mantene los#
CURSO ABAP/4

,5.4

Interca 'io de datos

ediante la

e oria !lo'al de SAP.

*s posi'le inte cam'ia datos ent e epo ts distintos .llamados desde inst ucciones SAB6($/ a t a!s de la memo ia de SAP# Pa a % a'a en memo iaJ EHP7R& Bca poC### I9&7 1E17R?.

Pa a ecupe a de memo iaJ I1P7R& Bca poC### FR71 1E17R?.

CURSO ABAP/4

,, Diccionario de Datos. Co o leer # procesar ta'las de la 'ase de datos.


,,. , Diccionario de datos. *l dicciona io de datos .4#4#/ es una ,uente de in,o maci)n cent ali5ada# @os distintos o'9etos del 4icciona io de datos estn est uctu ados enJ $a'la Campo *lementos de datos 4ominio

@os ele entos de datos desc i'en el si%ni,icado de un campo independientemente de las ta'las donde se utilicen# *s deci - tienen un ca cte semntico# @os do inios desc i'en el campo de !alo es posi'les# $end n un ca cte tcnico# *9emplo J $AB@ASJ S[B(-S[6( ###

CA6POJ S$*M$ *@*6#4A$OSJ S$*M(\ - S[B( 4O6(3(OJ $*M$82 FOR6A$O (3$*R3OJ $ipo C de 82 Posiciones $end emos a nuest a disposici)n un sistema de in,o maci)n del dicciona io de datosIn$o-S#ste ; Gue p opo ciona in,o maci)n so' eJ contenido de las ta'las- ca nposdominios- p o% amas- Petc# *;isten di!e sos tipos de ta'las-#*n el c)di%o del include no utili5a emos la sentencia R*POR$### $a'las &RA9SP .t anspa entes/J $a'las nominales relacionales .SQ@/# \(\a'las P77(J \(\a'las SAP Gue se %ua dan 9unto a ot as ta'las SAP en una Dnica ta'la ,&sica de B44# 6e9o ando el acceso a los e%ist os# $a'las C(AS&ERJ !a ias ta'las Gue se %ua dan en un cluste de B44# Se %ua dan e%ist os de !a ias ta'las SAP con la misma cla!e cluste - en el mismo cluste ,&sico de la 'ase de datos#

*l dicciona io de datos se dice Gue es inte% ado 0 acti!o# Inte!rado po Gue inte% a el 4#4# con el Sc een-Painte - p o% amas ABAP- 40np os- Supe ,icies CAA P 0 Acti-o
CURSO ABAP/4 Pgina 42

po Gue si modi,icamos al%Dn o'9eto del dicciona io de datos- el sistema automticamente e%ene a el ]$ime Stamp^ de los p o% amas Gue utilicen esos o'9etos# ,,.6 (os datos en el siste a SAP.

Podemos clasi,ica los datos del sistema en datos maest os- datos de mo!imientos; 0 datos del sistema# Datos aestros= Son datos Gue no se modi,ican mu0 a menudo# *9J 6ate iales- Cuentas- Bancos- Clientes### Se almacena n en ta'las t anspa entes# Datos de o-i ientos= 4atos mu0 !oltiles 0 con % an !olumen de %ene aci)n# *9J Factu as- Pedidos### Se suelen %ua da en ta'las tipo C@AS$*R todos ellos con ,o mato pa ecido .documentos/# Datos del siste a o de control= 6ucBas ta'las con pocos datos# Se suelen %ua da en ta'las de tipo POO@# ,,.3 Instrucciones SK( de ABAP/4.

ABAP/7 tiene un su'con9unto de sentencias SQ@ pa a su aplicaci)n so' e ta'las de la 'ase de datos SAP# Ostas sonJ SE(EC&; I9SER&; APDA&E; 17DIF?; DE(E&E; C711I& F7R@; R7((BAC@ F7R@. Adems de las !a ia'les del sistemaJ S? -SABRC= C)di%o de eto no de una ope aci)n# S9-DBC9&= Cantidad de e%ist os a,ectados po la ope aci)n p ocesada# ,,.3., SE(EC&. @a sentencia S*@*C$ se la inst ucci)n ,undamental pa a lee in,o maci)n de la 'ase de datos#

- 7tras lecturas = Podemos lee una ta'las de 'ase de datos 0 simultneamente llena una ta'la inte na con el esultado de la lectu a#
CURSO ABAP/4 Pgina 43

SE(EC& U FR71 Bta'C I9&7 &ABI;E Binta'C 3F:ERE BcondV4 @lena la ta'la inte na Xinta'Y macBacando los e%ist os Gue pudie a tene sta# Si Gue emos Gue espete los e%ist os Gue ten&a la ta'la interna antes de eali5a el S*@*C$ tend emos Gue utili5a J SE(EC& U FR71 Bta'C APPE9DI9) &AB(E Binta'C 3F:ERE BcondC4. Podemos indica un o den en el p oceso de selecci)n de e%ist os# SE(EC& U ... 7RDER B? Bca polC Bca po6C ... Si Gue emos selecciona un e%ist o pa a 'loGuea lo de posi'les modi,icaciones# SE(EC& SI9)(E F7R APDA&E U FR71 Bta'C. ,,.3.6. I9SER&. @a sentencia I9SER& pe mite int oduci e%ist os sencillos o el contenido de una ta'la inte na en una 'ase de datos SAP# I9SER& Bta'C. C a'a en la B44 el e%ist o de ca'ece a# Po tanto p e!iamente a esta inst ucci)n mo!e emos los !alo es Gue Gue emos int oduci so' e el ea de t a'a9o de la ta'la# Si S?-SABRC D 2 Si S?-SABRC Y 2 Re%ist o inse tado# @a cla!e del e%ist o Gue Gue &amos inse ta 0a e;ist&a en la ta'la#

$am'in es posi'le int oduci datos desde una ta'la inte na. I9SER& Bta'C FR71 &AB(E Binta'C Si S?-SABRC D 2 Re%ist os inse tados#

Si e;iste al%Dn e%ist o en la 'ase de datos con cla!e i%ual a al%Dn e%ist o de la ta'la inte na- se p oduci un e o de e9ecuci)n del p o% ama# @a ta'la inte na pod tene la misma est uctu a Gue la ta'la de 'ase de datos utili5ando I9C(ADE S&RAC&ARE en su decla aci)n# ,,.3.3. APDA&E. @a sentencia APDA&E pe mite modi,ica el contenido de uno o !a ios e%ist os# APDA&E Bta'C.
CURSO ABAP/4 Pgina 44

6odi,ica el e%ist o de la 'ase de datos Gue est especi,icado en el e%ist o de ca'ece a# Si Gue emos modi,ica el contenido de ms de un e%ist o a la !e5J APDA&E Bta'C SE& Bca poC D B-alorC F:ERE BcondC. Con este AP4A$*- todos los e%ist os Gue cumplan XcondY modi,ica n el contenido del XcampoY po X!alo Y# $am'in es posi'le utili5a la clusula S*$ con Bca poC D Bca poC E B-alorC o Bca poC D Bca poC - B-alorC *s posi'le modi,ica e%ist os desde una ta'la inte naJ APDA&E Bta'C FR71 &AB(E Binta'C. Si el sistema no puede actuali5a un e%ist o- el p oceso no ,inali5a a sino Gue continua con el si%uiente e%ist o# Si S?-SABRC D 5 Si S?-SABRC W 4 *n S?-DBC9& ,,.3.4 17DIF?. @a sentencia 17DIF? se utili5a cuando no estemos se%u os si utili5a un (3S*R$ o un AP4A$*# *s deci - cuando no sepamos con ce te5a si un e%ist o e;iste o no- pa a modi,ca lo o a1adi lo# 17DIF? Bta'C. 17DIF?Bta'C FR71 &AB(E Binta'C En caso de Gue sepamos si e;iste o no un e%ist o- po e,icacia utili5a emos (3S*R$s o AP4A$*s# ,,.3.< DE(E&E. Pa a eali5a 'o ados de datos se aplica la sentencia DE(E&E. DE(E&E Bta'C.
CURSO ABAP/4 Pgina 45

$odos los e%ist os modi,icados# 3o todos los e%ist os Ban sido modi,icados# $end emos la cantidad de e%ist os modi,acados#

Bo a el e%ist o Gue especi,iGuemos en el ea de t a'a9o# Pa a 'o a ms de un e%ist o .todos los Gue cumplan una cie ta condici)n/# DE(E&E FR71Bta'C F:ERE BcondC. Podemos 'o a de B44 todos los e%ist os de una ta'la inte na# DE(E&E FR71 Bta'C FR71 &AB(E Binta'C. Si S?-SABRC D 2 Si S?-SABRC D 7 *n S?-DBC9& ,,.4 $odos los e%ist os Ban sido 'o ados# 3o todos los e%ist os Ban sido 'o ados# $end emos la cantidad de e%ist os 'o ados#

7tros aspectos de la pro!ra acin de BDD.

*l control del andante es automtico# Siemp e se p ocesa el mandante en uso# Si Gue emos cont ola manualmente el mandante en una inst ucci)n de lectu a o actuali5aci)n utili5a emos la clusula C(IE9& SPECIFIED# *s deci - si Gue emos o'tene o modi,ica datos de un cliente di,e ente al de ent ada# @as inst ucciones (3S*R$- 4*@*$*- 6O4(FI 0 AP4A$* se utili5a n en la medida Gue sea posi'le el meno nDme o de !eces so' e ta'las SAP# Siemp e se intenta inse ta o modi,ica datos mediante t ansacciones estnda es SAP o !&a BatcB (nput# Ia Gue no siemp e es ,cil conoce la comple9a est uctu a de toda la 'ase de datos SAP 0 as& nos ase%u amos no p oduci al%una inconsistencia en la 'ase de datos# *l Blo8ueo de o'%etos= Pa a 'loGuea un e%ist o en el momento de una actuali5aci)n so' e ste- utili5amos F7R APDA&E. SE(EC& SI9)(E F7R APDA&E U FR71 Bta'C. Si Gue emos 'loGuea todos los o'9etos Gue estn in!oluc ados en una actuali5aci)n- se necesa io utili5a el MSAP (ocWin! &ec*ni8ueM. Cada aplicaci)n tiene mucBos m)dulos de ,unci)n pa a 'loGuea o'9etos# Pa a 'usca los se necesa io i al mantenimiento de m)dulos de ,unci)n 0 'usca po la cla!e Uen8ueueU o Ude8ueueU. Actuali.acin de la 'ase de datos o Recuperacin= Pa a ,inali5a una unidad de p ocesamiento l)%ico 3(AF4 de 'ase de datos se utili5a un C711I& F7R@; Gue eali5a un AP4A$* ,&sico en la 'ase de datosBaciendo i e!oca'le cualGuie modi,icaci)n en la 'ase de datos# Si deseamos desBace todas las ope aciones eali5adas so' e la 'ase de datos desde el Dltimo CO66($ KOR[- eali5a emos un R7((BAC@ F7R@.
CURSO ABAP/4 Pgina 46

C*e8ueo de autori.aciones= @as inst ucciones SQ@ de SAP no eali5an nin%una !e i,icaci)n de auto i5aciones lo cual esulta peli% oso 0a Gue todo el mundo puede accede a todos los datos Gue acceda a un epo t# *s esponsa'ilidad del p o% amado el comp o'a si un usua io est auto i5ado a accede a esa in,o maci)n# Pa a cBeGuea las auto i5aciones de un dete minado usua io utili5a emos la inst ucci)n AA&:7RI&?-C:EC@. AA&7RI&?-C:EC@ 7BXEC& Bo'%etoIdeIautori.aciC ID BCa polC FIE(D-B$lC ID BCatupo6C FIE(D B$6C ID BCa po3C DIX11?. 4onde XCampo.n/Y son los campos de auto i5aci)n del o'9eto 0 X,.n/Y es un !alo posi'le de auto i5aci)n# *l pa met o 4A66I indica Gue no Bace ,alta !e i,ica ese campo# Si S?-SABRC D 2 Asua io auto i5ado# Si S?-SABRC BC 2 Asua io 3O auto i5ado# *n S?-DBC9& $end emos la cantidad de e%ist os 'o ados#

*9emploJ =e i,ica el o'9eto de auto i5aci)n ]Ac eedo J Auto i5aciones pa a sociedades^ .FR@FA1RBA[/- pa a sa'e si el usua io puede e,ectua la ope aci)n =isuali5a .21/so' e p o!eedo es de la sociedad 2221# AA(\+OR($I C+*C[ OBN*C$ EFR@FA1RBA[F (4 EAC$=$F F(*@4 E21F (4 EBA[RS EF(*@4 E2221F# Pa a o'tene una documentaci)n ms e;Bausti!a so' e el ,uncionamiento del AA$OR($I-C+*C[- !e la docu entacin 79(I9E del edito de ABAP/7# Pa a o'tene in,o maci)n so' e el mecanismo de auto i5aciones de SAP- !e el cu so CA5,5 El concepto de autori.aciones SAP. Sentencias en SK( nati-o= Podemos e9ecuta cualGuie sentencia de SQ@ pe mitida po el %esto de 'ase de datos so' e el Gue co a el sistema R/3- utili5ando EHEC SK(# *n este caso las
CURSO ABAP/4 Pgina 47

inst ucciones de 'ase de datos no estn est in%idas al su'con9unto SAP-SQ@ Gue Bemos estado estudiando a lo la %o de este cap&tulo# C acias al inte ,ace *M*C SQ@ tam'in es posi'le accede a datos e;te nos a SAPdesde un p o% ama en ABAP/7# Sinta;isJ EHEC SK(. B Instrucciones SK(-9ati-asC. E9DEHEC. $enemos Gue tene en cuenta en la utili5aci)n de SQ@ nati!o- Gue no todas las 'ases de datos SAP pueden se accedidas con este sistema- 0a Gue no todas tienen una ep esentaci)n ,&sica de ta'la en el %esto de 'ase de datos# Po e9emplo las ta'las de tipo POO@ 0 C@AS$*R no son ta'las eales de 'ase de datos- aunGue sean conside adas como tales 0 mantenidas po el dicciona io de datos# Podemos encont a in,o maci)n complementa ia so' e la utili5aci)n del inte ,ace *M*C SQ@ en el Cap. , del anual GABAP/4 Special &ec*ni8uesY.

CURSO ABAP/4

Pgina 48

,6 Bases de Datos (!icas


,6., ZKue es una Base de datos l!ica [ Pa a o'tene datos en un p o% ama e;isten dos posi'ilidadesJ - P o% ama la lectu a de datos de la 'ase de datos en el mismo p o% ama con la inst ucci)n S*@*C$# - 4e9a Gue ot o p o% ama de lectu a .B44 l)%ica/ lea los datos 0 se los p opo cione en la secuencia ap opiada# *n un epo t se pueden simultanea los dos tipos de selecci)n de datos# Ana 'ase de datos l)%ica 3(DB4 p opo ciona una !isi)n l)%ica de las ta'las ,&sicas- pudiendo elaciona ta'las ent e si# @as @4B simpli,ican la p o% amaci)n de epo ts o, eciendo accesos de lectu a- !e i,icaci)n de auto i5aciones 0 selecciones estanda i5adas# @a comunicaci)n ent e el p o% ama de lectu a 0 el epo t Gue utili5a la 'ase de datos l)%ica se eali5a mediante los e!entos PA& # )E&# Po e%la %ene al utili5a emos 'ases de datos l)%icas Gue 0a e;isten en el sistemaaunGue tam'in es posi'le c ea nue!as 0 modi,ica las# .$ ansacci)n A(DB/# Si utili5amos @4B 0a c eadas en el sistema- Dnicamente tend emos Gue utili5a un e!ento pa a eco%e la in,o maci)n Gue el p o% ama de lectu a .Gue 0a e;iste/ nos !a dando# Si po el cont a io nos decidimos a c ea una @4B con la t ansacci)n A@4B- el sistema %ene a todo lo necesa io pa a utili5a la 'ase de datos l)%ica- inclu0endo el p o% ama de lectu a# ,6.6 Atili.acin de las Bases de datos l!icas.

@as 'ases de datos l)%icas tienen un nom' e de t es ca acte es- siendo el Dltimo ca cte el m)dulo ,uncional al Gue !a di i%ido# *9emplo J [4F J clientes F1

*n el p o% ama Gue !a a utili5a 'ases de datos l)%icas se necesa io especi,ica en los at i'utos del p o% ama la @4B Gue !a a se utili5ada# I en el c)di%o simplemente utili5a emos el e!ento )E&# )E& Bta'la BDD,C. Bsentencias e-entoC OO

CURSO ABAP/4

Pgina 49

)E& Bta'la BDD6C. Bsentencias e-entoC OO 6ediante el C*$ dispond emos de un e%ist o de la 'ase de datos Gue especi,iGuemos- siemp e 0 cuando esta ta'la est dent o de la est uctu a de la 'ase de datos l)%ica# Pa a comunica el p o% ama de lectu a con nuest o epo t se utili5a el PA&- Gue suminist a el e%ist o de la B44 Gue especi,iGuemos- p e!iamente Ba' eali5ado el S*@*C$# PA& Bta'laBDDC. Ana 'ase de datos l)%ica tiene t es componentes ,undamentales J - Ana de,inici)n de la estructura de las ta'las Gue utili5a# - Ana pantalla de seleccin de los datos a lee # .S*@*C$-OP$(O3S/ - An pro!ra a de lectura de datos de la B44# .PA$/#

@DF

Estructura de la BDD @FA1

@FB1
CURSO ABAP/4 Pgina 50

@FC1

BS([

Pantalla de Seleccin Pro!ra a de lectura F7R1 PA&I (FA, SE(EC& U FR71 (FAI

PA&I (FA,. Report


)E& (FA,. )E& (FB,. )E& BSI@.

E9DSE(EC&. E9DF7R1. F7R1 PA&I (FBI. SE(EC& U FR71 (FBI

PA&I (FB,.

O.O. E9DSE(EC&. E9DF7R1. OOO OOO F7R1 PA&I BSI@. SE(EC& U FR71 BSI@.

PA& BSI@.
E9DSE(EC&. E9DF7R1.

$am'in e;iste la posi'ilidad de utili5a el e!entoJ )E& Bta'BDDC (A&E.

PPP#
*ste e!ento se p oduce cuando se Ban p ocesado todas las ent adas de ta'las su'o dinadas a un e%ist o de datos de una ta'la- 0 antes de Gue el sistema solicite la si%uiente ent ada de la misma ta'la .mismo ni!el 9e Guico/# *;iste una inst ucci)n de salto o ,inali5aci)n de lectu a de una ta'la- REXEC&. REXEC&. *sta inst ucci)n sale del p oceso del e%ist o en cu so 0 continua con el p oceso del si%uiente e%ist o dent o del mismo ni!el de 9e a Gu&a# Si indicamos un nom' e de ta'la- lo Gue Ba se continua con el si%uiente e%ist o de la ta'la especi,icada# Bta'laC no puede se un ni!el de 9e a Gu&a ms p o,undo Gue el actual# REXEC& Bta'laC. *n p incipio- Dnicamente utili5a emos la sentencia C*$ - 0a Gue utili5a emos @4B Gue 0a e;isten en el sistema#

CURSO ABAP/4

Pgina 51

Si necesitamos c ea una nue!a de'ido a Gue se Ban de desa olla mucBos epo ts con una est uctu a de lectu a mu0 simila - 0 esta no est en nin%una 'ase de datos l)%icautili5a emos la t ansacci)n A@4B# .Pa a ms in,o maci)n so' e los pasos a se%ui !e Cap= ,5; ,, # ,6 del BC,Q5-ABAP/4 Inter$ace de datos o Cap= ,< del ABAP/4 Pro!ra in! Reports.

CURSO ABAP/4

Pgina 52

,3. Fields )roups


*n el cap&tulo ? 0a !imos Gue cuando Gue emos o dena 0/o cont ola las uptu as de campos en un epo t- es necesa io utili5a las ta'las inte nas# Sin em'a %o e;iste ot a utilidad del ABAP/7 Gue nos ,acilita estos p ocesos de o denaci)n 0 uptu asen el caso de Gue sean comple9os# Supon%amos un listado en el Gue las l&neas sean de mu0 distinto tipo- po e9emplo- un listado de p o!eedo es con datos %ene ales de este- .di ecci)n### / 0 las !entas Gue nos Ban eali5ado cada uno de los p o!eedo es- o denados po distintos campos 0 con su'totales# *n este caso no tend emos ms emedio Gue utili5a di!e sas ta'las inte nas- una pa a cada tipo de l&nea- o dena estas ta'las inte nas 0 p ocesa las adecuadamente# Pa a casos como este- ABAP/7 nos o, ece la tcnica especial de los FIE(D )R7APSMs. *sta tcnica consiste en c ea con9untos de datos inte medios# .]inte mediate datasets^/# Se de,inen los di,e entes e%ist os con idntica est uctu a- dent o de mismo tipo de e%ist o .F(*@4 CROAP/# Se necesa io de,ini todos los F(*@4 CROAP al inicio del epo t con J FIE(D-)R7AP = :EADER; B$I!I,C; B$I!I6C... *l F(*@4 CROAP :EARDER es ,i9o# Contend los campos po los cuales Gue e nos o dena el con9unto de datos inte medio# Pa a dete mina Gue campos pe tenecen a cada F(*@4 CROAP- utili5amos la inst ucci)n J I9SER& Bca po,C Bca po6C.....Bca poInC I9&7 :EADER. I9SER&B ca po,C Bca po6C.....Bca poIn C I9&7 B$I!I,C. An campo pod esta dent o de !a ios F(*@4 CROAPS# Pa a llena con datos los con9untos de datos inte medios se utili5a la inst ucci)nJ EH&RAC& B$I!I ,C. *sta inst ucci)n asi%na los contenidos de los campos especi,icados en el (3S*R$ al F(*@4 CROAP indicado# *n cada *M$RAC$- el sistema eali5a automticamente una e;t acci)n de los datos del F(*@4 CROAP +*A4*R- estos p ecede n siemp e a los datos del F(*@4 CROAP so' e el Gue eali5amos el *M$RAC$# 4atos +*A4*R
CURSO ABAP/4

4atos X, %Y
Pgina 53

Si al%Dn campo de la ca'ece a no se llena- toma el !alo 2- de ,o ma Gue el p oceso de o denaci)n ,uncione co ectamente# =eamos el ,uncionamiento de los F(*@4 CROAP\s con un e9emploJ Pa a eali5a un listado de pa tidas de p o!eedo es- o denado po c)di%o de p o!eedo 0 nDme os de documentos de las di,e entes pa tidas# $AB@*SJ @FA1-BS([# F(*@4-CROAPSJ +*A4*R- 4(R*CC(O3- (6POR$*S# (3S*R$ @FA1-@(F3R BS([-B*@3R (3$O +*A4*R# (3S*R$ @FA1-3A6*1 @FA1-S$RAS @FA1-PS$@Q @FA1-OR$21 (3$O 4(R*CC(O3# (3S*R$ BS([-46B$R (3$O (6POR$*S# T--------------------------------------------------------------------------------C*$ @FA1# *M$RAC$ 4(R*CC(O3# C*$ BS([# *M$RAC$(6POR$*S# T--------------------------------------------------------------------------------*n cada *M$RAC$ se !a llenando el con9unto de datos inte medios# *M$RAC$ 4(R*CC(O3 *M$RAC$ 4(R*CC(O3 PRO=**4OR1 *M$RAC$ (6POR$* *M$RAC$ (6POR$* PRO=**4OR1 4OC1

R(=*R@A34 4(ACO3A@ :1> BARC*@O3A

122#222

As& el dataset se i llenandoJ PRO=**4OR1 PRO=**4OR1 4OC1 PRO=**4OR1 4OC" PRO=**4OR" PRO=**4OR" 4OC1
CURSO ABAP/4

R(=*R@A34 4(ACO3A@ :1> BARC*@O3A 122#222 "22#222 SAP A#C# PAB@O P(CASSO ">2"2 6A4R(4 "82#222
Pgina 54

PRO=**4OR" 4OC"

1#"22#222

Ana !e5 e;t a&dos los datos- los podemos p ocesa de ,o ma simila a como lo Bac&amos en las ta'las inte nas# *n p ime lu%a o dena emos el ]dataset^ con la inst ucci)n S7R&# @a o denaci)n se eali5a po los campos Gue indica el +*A4*R Poste io mente podemos p ocesa los datos en un (77P### E9D(77P.pudiendo utili5a las inst ucciones de uptu a po campos A& 9EF 0 A& E9D 7F# $am'in podemos utili5a estos e!entos po inicio 0 ,inal de e%ist o .F(*@4-CROAP/# Adems podemos comp o'a si pa a un e%ist o- e;isten e%ist os asociados de ot o tipo- con el e!ento J A& B$I!,C FI&: B$I!6C. O E9DA&. Po e9emploJ si e;isten e%ist os de impo tes pa a un e%ist o de di ecci)nimp imi en el epo t los datos de di ecci)n# A$ 4(R*CC(O3 K($+ (6POR$*S# KR($*J @FA1-3A6*1##### *34A$# $am'in podemos conta o suma po campos con las inst uccionesJ C9& Bca poC. SA1 Bca poC. As& pod &amos completa nuest o listado de p o!eedo es del e9emplo conJ *34-OF-S*@*C$(O3# SOR$# @OOP# A$ 4(R*CC(O3 K($+ (6POR$*S# KR($*J @FA1-3A6*1- @FA1-S$RAS@FA1-PS$@Q- @FA1-OR$21# *34A$# A$ (6POR$*S# KR($*J BS([-B*@33R- BS([-46B$R# *34A$# A$ *34 OF @FA1-@(F3R# S[(P# KR($*J ]Suma p o!eedo ^- @FA1-@(F3R SA6 .BS([-46B$R/ S[(P# *34A$# *34@OOP#
CURSO ABAP/4 Pgina 55

,4. For ateando un listado


ABAP/7 tiene una se ie de inst ucciones especialmente dise1adas pa a Gue la %ene aci)n de epo ts sea ms sencilla# ,4., For ato de los datos de salida.
Pgina 56

CURSO ABAP/4

Ia Bemos !isto en el cap&tulo > un esumen de las sentencias de salida de epo ts ms 'sicas# FRI&E /Bo$$setC3BIon!C4 GBdatos a -isuali.arCY. A(I9E /Bo$$setC3BIon!C4 GBdatos a -isuali.arCY. S@IP BnC. 9EF-PA)E. Adems de estas sentencias ,undamentales tenemos a nuest a disposici)n ot as posi'ilidadesJ Pa a esc i'i un campo- !a ia'le o lite al 9ustamente de'a9o de ot os sin tene Gue calcula la columna- utili5amos la clusula A9DER del KR($*# FRI&E Bca po6C A9DER Bca po ,C. Si Gue emos especi,ica la columna de un te;to en ,o ma de !a ia'le utili5amos# P7SI&I79 Bcolu naC. Si Gue emos i a una dete minada l&nea dent o de la misma p%ina# S@IP &7 (I9E BnC. Cuando utili5amos la inst ucci)n KR($* con nDme os empaGuetados- el sistema t unca po la i5Guie da en caso de se necesa io .de9a un T como indicado de Gue Ba t uncado/ 0 ellena con 'lancos si so' a espacio# $enemos Gue tene cuenta Gue si es ne%ati!o el si%no ocupa una posici)n# Si se especi,ican los decimales con la clusula 4*C(6A@S del 4A$A- el punto o coma decimal tam'in ocupa una posici)n# *l si%no decimal .punto o coma/ esta dete minado po los !alo es del e%ist o de usua io#

*9emploJ 4A$A 3A6*RO $IP* P 4*C(6A@S " =A@A* -1"378:# KR($* 3A6*RO# 1#"37-8:0 si no ca'e el nDme oJ KR($* .:/ 3A6*RO# T7-8: Podemos ,o matea la salida de un nDme o empaGuetado#
Pgina 57

CURSO ABAP/4

*!itamos Gue apa e5ca el si%no con 97-SI)9. FRI&E Bca poC 97-SI)9. Pa a !isuali5a impo tes co ectamente dependiendo de la moneda del impo teusa emos el CARRE9C?= FRI&E Bca poIi porteC CARRE9C?B onedaC. Si se desea ,o matea la salida de un campo se%Dn una cie ta msca a utili5a emos el pa met o ASI9) EDI& 1AS@ GB ascaraCY de la inst ucci)n KR($*# FRI&E Bca poC ASI9) EDI& 1AS@YB ascaraCY. @os ca acte es de la msca a pueden se J ]R ] J un ca cte del campo a ,o matea # ]J^ J un sepa ado # Puede se cualGuie ca cte especial menos el ]-]# ]@@^ J 9usti,ica po la i5Guie da .!alo po de,ecto/# .Al p incipio de la masca a/# masca a# ]RR^ J 9usti,ica po la de ecBa# .Al p incipio de la masca a/# *9emploJ KR($* /.>/ SI-AQ*($ (NS(3C *4($ 6AS[ ]RJRJR^# Si Gue emos sup imi los ce os iniciales de una cadena de ca acte es Ba emosJ FRI&E Bca poICaracterC 97-\ER7. Pa a ,o matea ,ecBas es posi'le eali5a J FRI&E Bca FRI&E Bca FRI&E Bca FRI&E Bca poIFec*aC DD/11/??. poIFec*aC 11/DD/??. poIFec*aC DD/11/????. poIFec*aC 11/DD/????.

Podemos modi,ica los at i'utos de pantalla pa a un campo# F7R1A& I9&E9SIFIED 79/7FF. F7R1A& I9>ERSE 7FF/79. F7R1A& I9PA& 7FF/79. F7R1A& C7(7R n. F7R1A& RESE&.

=e la docu entacin 7nline del edito ABAP/7 pa a o'tene in,o maci)n mas detallada so' e los usos 0 sinta;is posi'les de esta inst ucci)n#

CURSO ABAP/4

Pgina 58

,4.6

For ato de p/!ina.

$am'in Ba0 un % upo de inst ucciones destinadas a da ,o mato a la salida del epo t- 0a sea po pantalla o po imp eso a# Podemos Bace t atamientos po inicio 0 ,in de p%ina con los e!entosJ &7P-7F-PA)E # E9D-7F-PA)E. *34-OF-PAC* no se e9ecuta si el salto de p%ina se p oduce con un 9EFPA)E. Si no Gue emos Gue la ca'ece a del epo t sea la estnda de SAP- 0a Gue la Gue emos cont ola nosot os di ectamente en el e!ento $OP-OF-PAC*utili5a emosJ REP7R& B\+++++++C 97 S&A9DARD PA)E :EADI9). *l ,o mato de la p%ina de epo t se de,ine tam'in desde la inst ucci)n REP7R&. REP7R& B\+++++++C (I9E-SI\E BnC (I9E-C7A9& Bn3 4C pueden reser-ar lneas para un PA)E-C7A9& BnC. pie de p/!ina 3 4. 9o. /+i o de p/!inas. Anc*o de lnea. (neas por p/!ina 3n4. Si se desea se

Podemos impedi Gue con un salto de p%ina se co ten l&neas Gue pe tene5can a una a% upaci)n de l&neas con si%ni,icado l)%ico p opio# Con la inst ucci)n R*S*R=* ese !amos un nDme o de l&neas# RESER>E BnC (I9ES. *sta inst ucci)n se coloca 9usto antes del H ite Gue se Guie e ] ese !a ^- si no ca'e se imp imi en la si%uiente p%ina# +a0 !a ias ,o mas de imp imi un epo tJ

- Ana !e5 Ba salido el epo t po pantalla con la opci)n de \(mp imi \# - (mp imi sin !isuali5a po pantalla con la opci)n \(mp imi \ desde la pantalla de selecci)n o de pa met os# 4esde el p o% ama ABAP/7 podemos cont ola la imp esi)n con la inst ucci)nJ
CURSO ABAP/4 Pgina 59

9EF-PA)E PRI9& O3/OFF 97.DIA(7) (I9E-C7A9& BnC (I9E-SI\E BnC DES&I9A&I79 BdesC I11EDIA&E(? B+C.

Pantalla o imp eso a# 3o !isuali5a la pantalla de opciones de imp esi)n# @&neas po p%ina# $ama1o de l&nea# (mp eso a destino# (mp esi)n inmediata S/3#

Pa a ms in,o maci)n so' e ot as opciones- !e la a0uda del edito de ABAP/7# Pa a dete mina ,o matos especiales de imp esi)n utili5a emos la inst ucci)n PRI9&-C79&R7(. PRI9&-C79&R7( F79& BnC CPI BnC (PI BnC SI\E BnC C7(7R BcolorC (EF& 1AR)I9 BcolC. Pa a ms in,o maci)n so' e ot as opciones- !e la a0uda del edito de ABAP/7# ,4.3 Seleccin de par/ etros. Pantalla de seleccin 3SE(EC&I79 SCREE94.

Si deseamos int oduci una se ie de delimitaciones en la e9ecuci)n de un epo t a ni!el de pa met os- dispond emos de dos posi'ilidades# - *l PARA1E&ERS Gue pe mite utili5a pa met os de cualGuie tipo en la pantalla de selecci)n# - *l SE(EC&-7P&I79S Gue pe mite dete mina un c ite io de selecci)n de los datos a utili5a en el epo t# T *n el cap&tulo > 0a !imos la sinta;is p incipal de la sentencia PARA6*$*RS# PARA1E&ERS= B-arC &?PE BtipoC (I@E BtipoC DEFAA(& B-alorC (%ual Gue el =A@A*# 7B(I)A&7R? O'li%a a int oduci al%Dn !alo # (7FER CASE. Pe mite int oduci minDsculas# T @a inst ucci)n S*@*C$-OP$(O3S J SE(EC&-7P&I79S B-arC F7R Bca poIta'laC. B-arC como mucBo tend > ca acte es#
CURSO ABAP/4 Pgina 60

@a !a ia'le B-arC toma los posi'les !alo es a selecciona 0 Bca poIta'laC nos indica pa a Gue campo 0 de Gue ta'la se utili5ado el pa met o .esto impl&citamente nos est dando el tipo 0 la lon%itud de los posi'les !alo es/# Con esta sentencia- automticamente en la pantalla de selecci)n se pod n int oduci an%os de !alo es posi'les pa a el pa met o# *9emplo J

Pa a cada sentencia S*@*C$-OP$(O3S- el sistema c ea una ta'la inte na con el nom' e de X-arY# Cada e%ist o de la ta'la est ,o mado po los campos X -arY-(7F; X-arY-SI)9- X-arY-7P&I79# *l contenido de cada e%ist o se especti!amenteJ el !alo in,e io - el supe io el si%no .Incluido/E;cluido/ 0 el ope ado # *n la pantalla de selecci)n si Gue emos eali5a una selecci)n compuesta de ms de una condici)n .ms de un e%ist o en la ta'la inte na/- tend emos Gue Bace un ClicL so' e la FlecBa situada a la de ecBa de cada campo# Pa a selecciona los datos de lectu a en tiempo de e9ecuci)n mediante los !alo es de selecci)n- utili5a emos la clusula K+*R* de la inst ucci)n S*@*C$ 0 el ope ado I9- Gue 'usca en la ta'la de 'ase de datos todos los e%ist os Gue cumplan las condiciones incluidas en la ta'la inte na de la pantalla de selecci)n# SE(EC&-7P&I79S B-arC F7R Bca poC. SE(EC& U FR71 Bta'C F:ERE Bca poC I9 B-arC. *n la pantalla de selecci)n apa ece el te;to B-arC como comenta io a la selecci)n de datos- si Gue emos Gue el te;to sea distinto al nom' e de la !a ia'le tend emos Gue i a la opci)n &e+tos de seleccin del menD Pasar a - C Ele entos de te+to. =eamos aBo a Gue ot as opciones e;isten en la utili5aci)n de la inst ucci)n S*@*C$-OP$(O3S#
CURSO ABAP/4 Pgina 61

Pa a asi%na !alo es iniciales a un c ite io de selecci)n utili5amos la clusula DEFAA(&. SE(EC&-7P&I79S B-arC F7R Bca poC DEFAA(& GB-alorCY # Si Gue emos iniciali5a un an%o de !alo es .in,e io 0 supe io / usa emosJ SE(EC&-7P&I79S B-arC F7R Bca poC DEFAA(&YBiniCY&7YB$inCY. a Podemos Bace Gue se acepten !alo es en minDsculas# SE(EC&-7P&I79S B-arC F7R Bca poC (7FER CASE a Podemos o'li%a a Gue se int odu5can !alo es de selecci)n ine!ita'lemente# SE(EC&-7P&I79S B-arC F7R Bca poC 7B(I)A&7R?. $am'in es posi'le desacti!a la posi'ilidad de int oduci selecciones con condiciones compuestas# .4esapa ece la ,ecBa/# SE(EC&-7P&I79S B-arC F7R Bca poC 97-EH&E9SI79. $am'in es posi'le ,o matea a nuest o %usto la pantalla de selecci)n con SE(EC&I79-SCREE9. Podemos int oduci comenta ios pa a un pa met o# SE(EC&I79-SCREE9 C711E9& BcolC3Blon!C4 &EH&-nnn. (ndicndole la columna- la lon%itud del comenta io- 0 el te;to del comenta io lo situa emos en un te;to nume ado .!e 17#7/# Si adems Gue emos Gue al pulsa Fl .Belp/- so' e el comenta io- apa e5ca la misma a0uda Gue so' e el campoJ SE(EC&I79-SCREE9 C711E9& BcolC3BIon!C4 &EH&-nnn F7R FIE(D Bca poC. Ot as posi'ilidades pueden se - inte cala l&neas en 'lanco o su' a0ados en la pantalla de selecci)n# SE(EC&I79-SCREE9 S@IP BnC. SE(EC&I79-SCREE9 A(I9E BcolC3Blon!C4. *s posi'le tam'in utili5a !a ias p%inas de selecci)n con J SE(EC&I79-SCREE9 9EF-PA)E.

CURSO ABAP/4

Pgina 62

Podemos eali5a !e i,icaciones de los datos ent ados en la pantalla de selecci)n con el e!ento# A& SE(EC&I79-SCREE9 79 Bca poC. O E9DA&. Podemos eali5a !a ias selecciones en la misma l&nea conJ SE(EC&I79-SCREE9 BE)I9 7F (I9E ... SE(EC&I79-SCREE9 E9D 7F (I9E *n este caso no apa ecen los te;tos de selecci)n#

,4.4

Ele entos de te+to # 1ensa%es

*l ento no de desa ollo de p o% amas en ABAP/7 nos pe mite mane9a elementos de te;to sin necesidad de codi,ica los en el p o% ama# @os elementos de te;to pueden se t&tulos de epo ts- ca'ece as de epo ts- te;tos de selecci)n 0 te;tos nume ados# Podemos accede a la pantalla de t atamiento de los elementos de te;tos desde el edito de p o% amasJ Pasar a - C Ele entos de te+to. Con los &tulos # Ca'eceras podemos t ata el t&tulo- ca'ece as de epo t 0 ca'ece as de columna Gue sald n po pantalla e imp eso a# Con los &e+tos de seleccin t ata emos los comenta ios Gue acompa1an a los pa amet os del tipo PARA6*$*RS o S*@*C$-OP$(O3S# Con los &e+tos nu erados podemos utili5a constantes de tipo te;to sin necesidad de decla a las en el c)di%o del p o% ama# @os nom' es de las constantes se n &EH&-+++; donde +++ son t es ca acte es cualGuie a# Adems podemos mantene los te;tos nume ados en !a ios idiomas# Ot as de las ,acilidades Gue nos o, ece ABAP/7 pa a el ,o mateo 0 cont ol de epo ts- es la de los ensa%es de di/lo!o. @os mensa9es de dilo%o son aGuellos mensa9es Gue apa ecen en la l&nea de mensa9es 0 Gue son mane9a'les desde un p o% ama# @os mensa9es estn a% upados en eas de mensa9es# Pa a indica Gue ea de mensa9es !amos a utili5a en un epo t utili5amos 1ESSA)E-ID en la inst ucci)n R*POR$#
CURSO ABAP/4 Pgina 63

REP7R& BreportC 1ESSA)E-ID B/reaC. Podemos !e - c ea 0 modi,ica eas de mensa9es desde el edito J Pasar a - C 1ensa%es Pa a !isuali5a un mensa9e utili5amos la sentencia 6*SSAC*# 1ESSA)E &nnn. 4onde nnn es el nDme o de mensa9e dent o de su especti!a ea de mensa9es 0 & es el tipo de mensa9eJ A W Cancelaci)n o ]A'end^ del p oceso# E W * o # *s necesa ia una co ecci)n de los datos# I W (n,o maci)n# 6ensa9e me amente in,o mati!o# *l p oceso continua con un *3$*R# S W Con,i maci)n# (n,o maci)n en la pantalla si%uiente# F W Ka nin%# 3os da un a!iso# Podemos cam'ia los datos o pulsa ]int o^ pa a continua # Si se emiten mensa9es del tipo K o * en e!entos S$AR$-OF-S*@*C$(O3 o *34-OF-S*@*C$(O3 o C*$ se compo tan como si ,ue an del tipo A# Podemos acompa1a los mensa9es de pa met os !a ia'les# 1ESSA)E &nnn FI&: B-ar,C B-ar6C... *n la posici)n del mensa9e Gue se encuent e el s&m'olo ] - podemos utili5a pa a !isuali5a el !alo Gue le pasemos como pa met o a la inst ucci)n 6*SSAC*# 3o podemos utili5a ms de 7 pa met os po mensa9e# @os datos so' e mensa9es estn en la ta'la &,55. *9emploJ b ea de mensa9es QQ# 6ensa9e J 228 W *nt ada c-c inco ecta# R*POR$ QPRA*BA 6*SSAC*-(4 QQ# #### (F#### 6*SSAC* A228 K($+ S[A1 [$OP@# *34(F# *l mensa9e o'tenido se J
CURSO ABAP/4 Pgina 64

A: Entrada SKA1-KTOPL Incorrecta

CURSO ABAP/4

Pgina 65

,< Field S# 'ols


Cuando tenemos Gue p ocesa una !a ia'le- pe o Dnicamente conocemos de Gue !a ia'le se t ata 0 c)mo tenemos Gue p ocesa la- en tiempo de e9ecuci)n- lo Ba emos mediante los ],ield s0m'ols^# Po e9emplo- si estamos p ocesando cadenas- 0 Gue emos p ocesa una pa te de la cadena cu0a posici)n 0 lon%itud depende del contenido de la misma- utili5a emos ],ield s0m'ols^# @os Field S0m'ol tienen cie ta similitud con los punte os o apuntado es de ot os len%ua9es de p o% amaci)n# @os Field S0m'ol pe miten soluciones ele%antes a p o'lemas pe o su utili5aci)n inco ecta puede implica esultados imp edeci'les# @os Field S0m'ol se decla an conJ

FIE(D-S?1B7(S= B^Field S# 'olVC.

@a decla aci)n se eali5a en la utina o m)dulo de ,unci)n donde se utilice# Pa a asi%na un campo a un ]Field S0m'ol^ utili5a emos la inst ucci)n ASS(C3# Ana !e5 asi%nado- cualGuie ope aci)n Gue ealicemos so' e el ,ield s0m'ol a,ecta al campo eal# 3o Ba0 nin%una di,e encia ent e utili5a el campo o el ,ield s0m'ol# ASSI)9 Bca poC &7 B^Field S# 'olVC. *9emplos J ,.F(*@4-SI6BO@S XFY# ASS(C3 $R4(R-3A6* $O XFY# 6O=* ]QPRA*BA^ $O XFY# KR($* $R4(R-3A6*# 6.F(*@4-SI6BO@S XFY# $*M$OW^ABC4*FC+^# (3(C(O W "# @O3C($A4 W8# ASS(C3 $*M$OZ(3(C(O .@O3C($A4/ $O XFY KR($* XFY ]QPRA*BA^

]C4*FC^

3.-

U Rellena con ce os po la i5Guie da# FOR6 PO3*RRC*ROS AS(3C 3A6*RO =A@A* .@O3C($A4/# F(*@4-SI6BO@SJ XPA3$*ROY# @O3C($A4 W @O3C($A4 - 1# ASS(C3 3A6*ROZ@O3C($A4.1/ $O XPA3$*ROY
Pgina 66

CURSO ABAP/4

K(+(@* XPA3$*ROY *Q SPAC*# S+(F$ 3A6*RO R(C+$# KR($* ]O^\$O 3A6*RO.1/# *34K+(@*# *34FOR6# $am'in es posi'le utili5a asi%naci)n dinmica# *sto pe mite asi%na un campo Gue s)lo conocemos en tiempo de e9ecuci)n a un ,ield s0m'ol# Se necesa io ence a el campo ent e pa ntesis en la asi%naci)n del ,ield s0m'ol# ASSI)9 3Bca poC4 &7 B^Field S# 'olVC. *9emploJ 4A$AJ CA6PO.12/# F(*@4-SI6BO@SJ XFY# 6O=*^$R4(R-3A6*U $O CA6PO # ASS(C3 .CA6PO/ $O XFY# KR($* XFY# Pa a in,o maci)n adicional so' e los Field S0 n'ols !e Pro!ra in! Reports. Cap= ,5 del ABAP/4 ]QPRA*BA^

," Batc* Inputs


,"., Introduccin
CURSO ABAP/4 Pgina 67

Cuando se instala una aplicaci)n en p oducti!o es necesa io da de alta toda la in,o maci)n indispensa'le pa a Gue la emp esa pueda ,unciona .p oceso de mi% aci)n de dalos o con!e si)n/# Po e9emplo- antes de pode %ene a ,actu as eales se necesa io int oduci todos los clientes acti!os 0 todos los p oductos Gue estn a la !enta# Pa a eali5a la ca %a de p oductos Gue estn a la !enta se de'e &a e9ecuta manualmente la t ansacci)n ]Alta de material tantas !eces como p oductos ten%amos 0 la misma ope aci)n con ]Alta de clientes pa a todos los clientes# *n el caso de Gue la emp esa ten%a mucBos p oductos 0 mucBos clientes- la ca %a inicial se mu0 costosa# Cene almente todos estos datos maest os .clientes- mate iales- p o!eedo es-### / 0a estn en el anti%uo sistema in,o mtico# Po lo tanto lo ideal se dispone un mecanismo Gue nos pe mitiese t aslada los datos de un sistema a ot o# A la Bo a de la mi% aci)n de datos de un sistema e;te no a SAP- tenemos dos posi'ilidadesJ - Reali5a p o% amas Gue llenen todas las 'ases de datos SAP in!oluc adasmediante inst ucciones di ectas de SAP-SQ@# - Atili5a la tJcnica del Batc* Input de SAP. Pa a mucBas t ansacciones- la p ime a de las opciones es in!ia'le- de'ido a la comple9idad de la est uctu a de datos SAP 0 pa a mantene la inte% idad de la misma la cantidad de !alidaciones Gue se de'e &an eali5a so' e los datos de ent ada se &a eno me# Como consecuencia- tanto el coste en dise1o- codi,icaci)n 0 p ue'as se &a alt&simo# *n cam'io- la tcnica de los BatcB (nput de SAP nos pe mite eali5a todas las !e i,icaciones automticamente- con un coste en dise1o 0 desa ollo m&nimo# *n este cap&tulo !e emos c)mo utili5a la tcnica de los BatcB (nput# An BatcB (nput es un mtodo se!uro # $ia'le de t ans,e i datos Bacia un sistema SAP# Suele utili5a se cuando de'en eali5a se un ele!ado nDme o de altasmodi,icaciones o 'o ados# Pa a %a anti5a la inte% idad del sistema- los datos son sometidos a los mismos cont oles de !alidaci)n 0 a las mismas ope aciones de 'ase de datos en SAP como si ,ue an int oducidos manualmente 0 uno po uno- po el usua io# *s deci ealmente la tcnica del BatcB (nput consiste en simula epetidamente un p oceso online .t ansacci)n/- du ante un p oceso BatcB# *l p oceso de ca %a de datos se eali5a en dos ,asesJ Fase de )eneracin= A pa ti de una ,uente de in,o maci)n como puede se un ,icBe o de ent ada- donde esta n todos los datos Gue Gue emos ca %a en SAP- se t ans,o ma an estos datos en un ,o mato dete minado- pa a almacena lo en una est uctu a de SAP Gue llama emos ,icBe o de colas#

CURSO ABAP/4

Pgina 68

Fase de Proceso= A pa ti de la in,o maci)n % a'ada du ante la ,ase de %ene aci)n en el ,icBe o de colas- se ca %a n los datos ,&sicamente en la 'ase de datos# Con la tcnica del BatcB (nput- se eali5a una simulaci)n del dilo%o del usua io con la mGuina- es deci Ba emos e;actamente lo mismo con la Dnica di,e encia de Gue la ent ada de datos en !e5 de se manual- se automtica a pa ti de un ,icBe o de colas# ,".6 Fase de !eneracin del Batc* Input.

*n esta ,ase se eali5a la t ans,e encia de los datos de un sistema e;te no a un ,icBe o de colas# Pa a ello se de'e codi,ica un p o% ama de BatcB (nput#

SIS&E1A EH&ER97 BA&C: I9PA&

FIC:ER7 DE C7(AS

=eamos cada uno de estos elementosJ

,".6., Siste a e+terno @a e;t acci)n de los datos de un siste a e+terno suele se eali5ada po el depa tamento de in,o mtica de la emp esa donde !a a se instalado SAP- 0a Gue es Guien me9o conoce la est uctu a de su actual sistema in,o mtico# 3o malmente el esultado ,inal de esta e;t acci)n de datos se un ,icBe o secuencial con los datos necesa ios pa a ca %a en SAP# *l p o% ama BatcB (nput- lee este ,icBe o 0 t ans,o ma los datos a un ,o mato dete minado pa a pode almacena los en el ,icBe o de colas#
CURSO ABAP/4 Pgina 69

*l ,icBe o secuencial tend una est uctu a de e%ist o Gue de'e se conocida po el eGuipo de desa ollo de SAP# Cene almente- 0 siemp e Gue sea posi'le- se asocia un e%ist o a una t ansacci)n de datos SAP# Po e9emplo- en el caso de altas de mate iales- en un e%ist o se %ua da n todos los datos necesa ios pa a da de alta un Dnico mate ial# Po e%la %ene al- el sistema e;te no es un ,icBe o secuencial en el Gue se encuent an los datos con los Gue se desean simula las t ansacciones# 3o o'stante no tiene Gue se necesa iamente un ,icBe o secuencial- sino Gue puede se cualGuie ,uente de in,o maci)n Gue ten%amos .ta'las ,&sicas de SAP- ta'las de ot as 'ases de datos elacionales; etc#/# ,".6.6 El pro!ra a Batc* Input. *s el Dnico desa ollo Gue se de'e Bace en ABAP/7# *l p o% ama de BatcB (nput lee el ,icBe o secuencial 0 t ans,o ma los datos a un ,o mato dete minado- pa a almacena los en una ent ada del ,icBe o de colas# 4icBas ent adas se denominan sesiones. Cada p o% ama de BatcB (nput %ene a una sesi)n# *stas sesiones pueden contene una o mDltiples t ansacciones# Ana t ansacci)n en SAP consta de una se ie de pasos de dilo%o# *l p o% ama de BatcB (nput de'e p epa a los datos pa a cada uno de los pasos de dilo%o de la t ansacci)n# Po e9emplo- ima%inemos Gue pa a da de alta un mate ial el sistema e9ecuta una t ansacci)n de t es pantallasJ Pantalla 1J *nt ada de los datos so' e el dise1o de mate ial .peso- altu a!olumen###/# Pantalla 2: *nt ada de los datos so' e !entas del mate ial .p ecio- descuentos## /# Pantalla 3: *nt ada de los datos so' e la p oducci)n .costes- almacena9e### /# *l p o% ama Gue %ene e la sesi)n de altas de mate iales de'e po tantop o% ama la secuencia de acciones 0 pantallas en el mismo o den Gue la t ansacci)n 0 p epa a los datos en cada una de estas pantallas- pa a cada mate ial Gue se Guie a da de alta# Po ello- antes de p o% ama un BatcB (nput es necesa io un conocimiento e;Bausti!o de la t ansacci)n Gue se desea simula - puesto Gue %ana emos mucBo tiempo si estudiamos p e!iamente el ,uncionamiento de sta# C)mo se codi,ica un BatcB (nput lo !e emos ms adelante# *l esultado de esta etapa se una sesi)n de BatcB (nput % a'ada en un ,icBe o 0 Gue poste io mente de'e p ocesa se pa a ca %a ,&sicamente los datos en el sistema SAP# ,".6.3 El $ic*ero de colas.

CURSO ABAP/4

Pgina 70

$odos los p o% amas BatcB (nput % a'an ent adas .sesiones/ en el $ic*ero de colas# Pa a poste io mente pode identi,ica cual es la sesi)n Gue nos inte esa p ocesa las sesiones poseen un ,o mato dete minadoJ 3om' e de la sesi)n# Asua io Gue Ba c eado la sesi)n# 6andante en el Gue de'e p ocesa se# 3Dme o de t ansacciones Gue contiene# 3Dme o de pantallas Gue contiene# 4atos adicionales# Ana sesi)n de BatcB (nput puede encont a se en uno de los si%uientes estados# A procesar= Si la sesi)n toda!&a no Ba sido p ocesada# Procesada = Si las t ansacciones Gue componen la sesi)n Ban sido e9ecutadas &nte% amente sin e o es# Errneas = Si en la sesi)n aDn Guedan t ansacciones Gue no se Ban p ocesado co ectamente# Cuando una sesi)n est en estado inco ecto- no Guie e deci Gue las t ansacciones Gue conten&a no Ba0an sido p ocesadas- sino Gue al%unas se Ban p ocesado 0 ot as no# *stas t ansacciones e )neas las pod emos ep ocesa ms adelante- es deci nunca pe demos una t ansacci)n a no se Gue e;pl&citamente 'o emos la sesi)n# Siendo creada = Si Ba0 un p o% ama BatcB (nput Gue est %ene ando una sesi)n en ese momento# En proceso = Si se est p ocesado en ese instante la t ansacci)n# Fondo = Si se Ba lan5ado la sesi)n pa a Gue se p ocese pe o toda!&a no Ba comen5ado a e9ecuta po ,alta de ecu sos del sistema# Fase de procesado de una sesin.

,".3

Pa a %estiona el ,icBe o de colas utili5a emos la t ansacci)n S13< 3Siste a Ser-icios Batc* Input &ratar4. 6ediante esta t ansacci)n podemos consulta - elimina 0 p ocesa todas las sesiones de BatcB (nput# Ana !e5 %ene ada la sesi)n con el p o% ama BatcB (nput- accede emos a la t ansacci)n S638 0 ma ca emos la sesi)n Gue nos inte esa p ocesa # *;isten 3 tipos de p ocesamientoJ Procesar -isi'le. Procesar -isuali.ando slo errores.
CURSO ABAP/4 Pgina 71

Procesar en in-isi'le. 4u ante la e9ecuci)n de una sesi)n se i % a'ando en un ]lo%^ de p oceso- el esultado de cada t ansacci)n# *nt e la in,o maci)n Gue nos o, ece el lo% destacaJ +o a de inicio de p oceso de la sesi)n# +o a de inicio de p oceso de cada t ansacci)n# 6ensa9es de incidencia o de p oceso co ecto .los mismos Gue da &a la t ansacci)n en el caso de e9ecuta la manualmente/# *stad&stica ,inal de p ocesoJ 3d $ ansacciones le&das# 3d $ ansacciones p ocesadas con ;ito# 3d $ ansacciones e )neas# Siemp e Gue e;istan t ansacciones con e o es se pod n ep ocesa # Procesa iento >isi'le = Con este mtodo se p ocesa cada una de las t ansacciones !isualmente- es deci - el usua io !a !isuali5ando todas 0 cada una de las pantallas Gue Bemos p o% amado# *l usua io Dnicamente de'e i pulsando Xint oY pa a salta de una pantalla a ot a# Asimismo- si se c ee con!eniente- se pe mite modi,ica los !alo es de al%Dn campo de la pantalla# Si una t ansacci)n no inte esa p ocesa la- podemos cancela la .pudiendo se e9ecutada con poste io idad/ o podemos 'o a la .no se pod e9ecuta /# $odas las t ansacciones Gue cancelemos se % a'a n en la sesi)n 0 la sesi)n pasa a esta en estado inco ecto# 3o de!uel!e el cont ol del sistema al usua io Basta Gue todas las t ansacciones Ba0an sido p ocesadas o cancelemos el BatcB (nput# Procesa iento In-isi'le= *l sistema p ocesa en ,ondo 'atcB la t ansacci)n# *s deci - toda la e9ecuci)n es t anspa ente al usua io# *l usua io ecupe a el cont ol del sistema inmediatamente# Pa a !e el esultado de la e9ecuci)n de una sesi)n- tend Gue !e el ]lo%^ de p oceso una !e5 Ba0a ,inali5ado# Procesa iento -isuali.ando slo errores= *l sistema p ocesa cada una de las t ansacciones en modo in!isi'le Basta Gue detecte un e o - en cu0o caso pa a el p oceso en la pantalla donde se Ba p oducido el e o - pudiendo entonces el usua io detecta 0 co e%i dicBo e o o cancela la t ansacci)n# Ana !e5 co e%ido el e o o cancelada la t ansacci)n- el sistema continua p ocesando el esto de t ansacciones# 3o de!uel!e el cont ol del sistema al usua io Basta Gue todas las t ansacciones Ba0an sido p ocesadas o cancelemos el BatcB (nput# ,".4 Conse%os pr/cticos en la utili.acin de Batc* Inputs# Pa a conoce el c)di%o de la t ansacci)n- el nom' e de las pantallas de cada t ansacci)n 0 los nom' es de los campos Gue se desean completa Ba emos lo si%uiente J
CURSO ABAP/4 Pgina 72

a C)di%o de la t ansacci)nJ *nt a en la t ansacci)n a simula e i a Siste a Status. a 3om' e de la pantalla J Ana !e5 esta nos en la pantalla Gue necesitamosBacemos lo mismo Gue en el punto ante io - anotando el p o% ama .40np o/ 0 el nDme o de d0np o# a 3om' e de los campos J Ana !e5 situados so' e el campo en cuesti)n- pulsa Fl 0 se%uidamente el 'ot)n de datos tcnicos# Anota emos el nom' e de la ta'la de 'ase de datos 0 del campo# *s posi'le Gue mient as se est p ocesando una sesi)n de BatcB (nput- el sistema cai%a p o!ocando la p dida de la misma# Cuando el sistema !uel!a a la situaci)n no mal- la sesi)n apa entemente se encuent a en estado Procesando # *n ealidad esto no es cie to 0a Gue la sesi)n no est Baciendo nada- pe o tampoco Bemos pe dido nada# *l sistema Ba' e9ecutado todas las t ansacciones Basta el momento de la ca&da0 podemos ecupe a de una mane a se%u a el esto de la sesi)n de la si%uiente ,o maJ 4esde la t ansacci)n S638- ma ca la sesi)n de BatcB (nput en cuesti)n# *le%i Xue!o de datos -C (i'erar # *n ese momento la sesi)n pasa a modo a procesar 0 podemos e9ecuta las t ansacciones Gue ,alta'an# Antes de p ocesa una sesi)n de BatcB (nput podemos comp o'a si los datos de ent ada 0 la secuencia de pantallas Gue Bemos p o% amado es la espe ada# Pa a ello desde la S638 selecciona emos la sesi)n Gue Gue e nos anali5a 0 Ba emosJ Pasar a An/lisis Xue!o de datos. Si se est e9ecutando una t ansacci)n en modo (n!isi'le- podemos i !iendo el ]@o%^ de p oceso de las t ansacciones Gue se !an e9ecutando# Ana utilidad p ctica es- en el caso de un ele!ado nDme o de t ansacciones- mi a el tiempo de p oceso de una t ansacci)n 0 e;t apola este dato pa a todo el p oceso- pa a tene una idea de la Bo a en la Gue ,inali5a el p oceso# Antes de eali5a un p o% ama de BatcB (nput es aconse9a'le ase%u a se de Gue SAP no dispon%a 0a del mismo# Po e9emplo- SAP nos o, ece 'astantes BatcB (nputs pa a ca %a de datos# Po e9emploJ Ca Ca Ca Ca Ca Ca %a de clientes# %a de p o!eedo es# %a de documentos conta'les %a de pedidos pendientes# %a de condiciones# %a de stocLs ###

3)tese Gue ent e la ,ase de %ene aci)n 0 la ,ase de p ocesado- e;iste un tiempo indete minado# Si este tiempo es mu0 % ande- es posi'le Gue du ante la ,ase de
CURSO ABAP/4 Pgina 73

p ocesado se p odu5can nume osos e o es- 0a Gue es posi'le Gue Ba0a cam'iado el estido en el Gue se lle!o a ca'o la ,ase de %ene aci)n# Po e9emplo- si %ene amos una sesi)n de BatcB (nput donde se intenta modi,ica un cie to mate ial- 0 antes de Gue se mande p ocesa esta sesi)n- el mate ial se da de 'a9a- du ante la e9ecuci)n de la sesi)n el sistema se Gue9a de Gue dicBo mate ial no e;iste# Ot a posi'le causa de e o es mu0 comDn du ante el p ocesamiento de sesiones- es Gue en aGuellos campos Gue tienen ta'las de !e i,icaci)n- int odu5camos !alo es Gue no estn dados de alta en las ta'las de !e i,icaci)n# Po e9emplo- si indicamos una sociedad Gue no est en la ta'la $OO1 .sociedades/# Ot a mane a de lan5a sesiones de BatcB (nput es e9ecutando el epo t RSBDCSAB# Po e9emplo podemos e9ecuta la sesi)n de BatcB (nput inmediatamente despus de se %ene ada- llamando a este epo t con los pa met os adecuados desde el mismo p o% ama ABAP/7 Gue %ene a la sesi)n# ,".< Codi$icacin de Batc* Inputs. +asta aBo a Bemos !isto Gue la tcnica del BatcB (nput consiste en la %ene aci)n de una sesi)n con los datos a int oduci en el sistema 0 el p ocesamiento de los datos en el sistema destino# *n este apa tado !e emos c)mo codi,ica el BatcB (nput pa a %ene a sesiones de este tipo 0 ot as dos tcnicas ms de BatcB (nput .CA@@ $RA3SAC$(O3 0 CA@@ 4(A@OC/# Pa a int oduci los !alo es en las distintas pantallas de cada t ansacci)n utili5a emos una ta'la inte na con una est uctu a estnda # .B4C4A$A/# DA&A= BE)I9 7F Bta'IBIIC 5CCARS BnC. I9C(ADE S&RAC&ARE BDCDA&A. DA&A= E9D 7F Bta'IBIIC. @os campos Gue componen esta ta'la inte na sonJ PR7)RA1 = 3om' e del p o% ama donde se eali5a el t atamiento de cada pantalla .40np o/ de la t ansacci)n# D?9PR7 = 3Dme o de la pantalla de la cual Gue emos int oduci datos# D?9BE)I9 = (ndicado de Gue se inicia una nue!a pantalla# F9A1 = Campo de la pantalla# .38 Ca acte es como m;imo/# F>A(= =alo pa a el campo de la pantalla# .>2 Ca acte es como m;imo/#

CURSO ABAP/4

Pgina 74

O'tend emos la in,o maci)n del nom' e del p o% ama 0 el nom' e del d0np o con Siste a Status. O'tend emos el nom' e del campo con Fl .4atos $cnicos/ o podemos !e todos los campos de una pantalla con el sc een painte .Field list/# *n esta ta'la inte na % a'a emos un e%ist o po cada campo de pantalla Gue in,o memos 0 un e%ist o adicional con la in,o maci)n de cada pantalla# *l p ime e%ist o de cada pantalla- en la ta'la inte na ta'RBR(- contend los datos Gue identi,ican la pantallaJ 3om' e del p o% ama .PROCRA6/- nom' e de la pantalla .4I3PRO/- 0 un indicado de inicio de d0np o .4I3B*C(3/# *9emploJ $ ansacci)nJ FSS( P o% amaJ SAP6F2"+ 40np o J 212"

ta'RBR (-PROCRA6 W^SAP6F2"+^# ta'RBR (- 4I3PRO W^212"^# ta'RBR (- 4I3B*C(3 W^M^# APP*34 ta'RBR(# Se%uidamente pa a cada campo de la pantalla Gue in,o memos- % a'a emos un e%ist o ellenando Dnicamente los campos F3A6 .con el nom' e del campo de pantalla/ 0 F=A@ .con el !alo Gue le !amos a da /# *9emploJ Rellena campo RF2"+-SA[3R con !a ia'le =ARRC$A# Rellena campo RF2"+-BA[RS con !a ia'le =ARRSOC#

C@*AR ta'RBR(# ta'RBR( -F3A6 W^RF2"+-SA[3R^# ta'RBR( -F=A@ W =ARRC$A# APP*34 ta'RBR(# C@*AR ta'RBR(# ta'RBR( -F3A6 W^RF2"+-BA[RS^# ta'RBR( -F=A@ W =ARRSOC# APP*34 ta'RBR(# *l p o% ama BatcB (nput tiene Gue ,o matea los datos tal 0 como lo Ba &a el usua io manualmente# $eniendo en cuenta GueJ - S)lo se pe miten ca acte es# - @os !alo es Ban de se de meno lon%itud Gue la lon%itud de los campos# - Si los !alo es de ent ada son de lon%itud meno Gue el campo SAP- tend emos Gue 9usti,ica a la i5Guie da# Si necesitamos in,o ma campos Gue apa ecen en pantalla en ,o ma de ta'latend emos Gue utili5a &ndices pa a da !alo es a cada l&nea de pantalla 0 % a'a en la ta'la inte na un e%ist o po cada l&nea de pantalla#
CURSO ABAP/4 Pgina 75

*9emploJ C@*AR ta'RBR(# ta'RBR( -F3A6 W^campo.&ndice/^# ta'RBR( -F=A@ W^!alo ^# APP*34 ta'RBR(# Si necesitamos p o!ee de una tecla de ,unci)n a la pantalla- usa emos el campo BDCI7@C7DE# *l !alo del campo se el nDme o de la tecla de ,unci)n p ecedido de una 'a a inclinada# *9emplo J C@*AR ta'RBR(# ta'RBR( -F3A6 W B4CRO[CO4*# ta'RBR(-F=A@ W ]/13^# APP*34 ta'RBR(#

]F13W C a'a #

$am'in utili5amos el campo B4CRO[CO4* pa a e9ecuta ,unciones Gue apa ecen en la 'a a de menDs# Pa a sa'e el c)di%o de la ,unci)n- Pulsa Fl sin solta el 'ot)n del at)n- so' e el menD deseado# Si necesitamos coloca el cu so en un campo en pa ticula - usa emos el campo BDCICARS7R# *l !alo del campo se el nom' e del campo donde nos Gue emos situa # *9emploJ C@*AR ta'RBR(# ta'RBR( -F3A6 W B4CRCARSOR# ta'RBR(-F=A@ W ]RF2"+-BA[RS^ APP*34 ta'RBR(# Pa a inse ta sesiones en la cola deBatcB (nput- se%ui emos los si%uientes pasos en la codi,icaci)nJ 1#- A' i la sesi)n de BatcB (nput utili5ando el modulo de ,unci)n BDCI7PE9I)R7AP. "#- Pa a cada t ansacci)n de la sesi)nJ "#a#- @lena emos la ta'la ta'IBII pa a ent a los !alo es de los campos en cada pantalla de la t ansacci)n# "#'#- $ ans,e i la t ansacci)n a la sesi)n- usando el m)dulo de ,unci)n BDCII9SER&. 3#- Ce a la sesi)n usando BDCIC(7SEI)R7AP. A continuaci)n !e emos como ,uncionan los m)dulos de ,unci)n Gue necesitamos pa a %ene a un BatcB (nput#
CURSO ABAP/4 Pgina 76

BDCI7PE9I)R7AP= *ste m)dulo de ,unci)n nos pe mite a' i una sesi)n# *n el p o% ama no podemos a' i ot a sesi)n Basta Gue no se Ba0an ce ado todas las sesiones Gue pe mane5can a'ie tas# CA(( FA9C&I79 GBDCI7PE9I)R7APY EHP7R&I9) C(IE9& )R7AP :7(DDA&E @EEP ASER EHCEP&I79S C(IE9&II9>A(ID DES&I9A&I79II9>A(ID )R7APII9>A(ID :7(DDA&EII9>A(ID I9&ER9A(IERR7R KAEAEIERR7R RA99I9) 4ondeJ C(IE9&= *s el mandante so' e el cual se e9ecuta la sesi)n de BatcB (nput- si no se indica este pa met o se toma el mandante donde se e9ecute el p o% ama de %ene aci)n de la sesi)n# )R7AP= 3om' e de la sesi)n de BatcB (nput- con la Gue identi,ica emos el 9ue%o de datos en la t ansacci)n S638 de t atamiento de BatcB (nput# :7(DDA&E J Si indicamos este pa met o- el sistema no pe miti e9ecuta la sesi)n Basta Gue no sea la ,ecBa indicada# S)lo el administ ado del sistema pod e9ecuta una sesi)n antes de esta ,ecBa# @EEPJ Si in,o mamos este pa met o con una ]M^- la sesi)n se etenida en el sistema despus de se e9ecutada 0 s)lo un usua io con auto i5aciones ap opiadas pod 'o a la# ASERJ *s el usua io Gue de e9ecuci)n de la sesi)n# BDCII9SER&J *ste m)dulo de ,unci)n inse ta una t ansacci)n en la sesi)n de BatcB (nput# CA(( FA9C&I79 GBDC-I9SER&Y EHP7R&I9) &C7DE
CURSO ABAP/4

D B andanteC D Bno 'reIsesinC D B$ec*aC D BindicadorC D BusuarioC D 5, D 56 D 53 D 54 D 5< D 5" D 5N.

D B&ransaccinC
Pgina 77

&AB(ES D?9PR7&AB EHCEP&I79S D BIntta'C D 5, D 56 D 53 D 54.

I9&ER9A(IERR7R 97&I7PE9 KAEAEIERR7R &C7DEII9>A(ID 4onde J

&C7DEJ *s el c)di%o de la t ansacci)n Gue !amos a simula # D?9PR7&AB J *s la ta'la inte na- con est uctu a B4C4A$A- donde especi,icamos la secuencia de pantallas de la t ansacci)n 0 los distintos !alo es Gue !an a toma cada campo Gue apa ece en cada pantalla# BDCIC(7SEI)R7APJ Con esta ,unci)n ce a emos la sesi)n una !e5 0a Bemos t ans,e ido todos las datos de las t ansacciones a e9ecuta # CA(( FA9C&I79 GBDCIC(7SEI)R7APL EHCEP&I79S 97&I7PE9 D 5, KAEAEIERR7R D 56. Podemos esumi las ca acte &sticas de la tcnica de las sesiones de BatcB (nputJ P ocesamiento eta dado .as&nc ono/# $ ans,e encia de datos a mDltiples t ansacciones# Actuali5aci)n de la 'ase de datos inmediata .s&nc ona/# 3o se e9ecuta una nue!a t ansacci)n Basta Gue la ante io no actuali5a los datos en 'ase de datos# Cene aci)n de un ]@o%^ pa a cada sesi)n# (mposi'ilidad de %ene a !a ias sesiones simultneamente desde un mismo p o% ama#

Como 0a Bemos citado ante io mente e;isten ot as dos tcnicas de BatcB (nputel CA(( &RA9SAC&I79 0 el CA(( DIA(7)# *n am'as- a di,e encia de la tcnica de sesiones- la e9ecuci)n de las t ansacciones es inmediata- es deci la e9ecuci)n de las t ansacciones es cont olada po nuest o p o% ama ABAP/7 0 no poste io mente desde la S638 lo cual puede esulta inte esante en cie tas ocasiones#
CURSO ABAP/4 Pgina 78

CA(( &RA9SAC&I79J

Ca acte &sticas J

P ocesamiento s&nc ono# $ ans,e encia de los datos a una Dnica t ansacci)n# Actuali5aci)n de la 'ase de datos s&nc ona 0 as&nc ona# *l p o% ama decide Gue tipo de actuali5aci)n se eali5a # @a t ansacci)n 0 el p o% ama Gue la llama tend n eas de t a'a9o .@AK/ di,e entes# *l sistema eali5a un CO66($ KOR[ inmediatamente despus del CA@@ $RA3SAC$(O3# 3o se %ene a nin%Dn ]@o%^ de e9ecuci)n#

Como se utili5a la tcnica del CA@@ $RA3SAC$(O3J *n p ime lu%a llena emos la ta'la B4C4A$A de la misma mane a Gue Bemos e;plicado a lo la %o de este cap&tulo# Asa la inst ucci)n CA@@ $RA3SAC$(O3 pa a llama a la t ansacci)n# CA(( &RA9SAC&I79 BtransaccinC ASI9) Bta'intC 17DE B odoIe%ecC APDA&E BtipoIactualC. 4ondeJ Bta'intC $a'la inte na .con est uctu a B4C4A$A/ *9ecuci)n !isi'le# *9ecuci)n in!isi'le# Si ocu e al%Dn e o en la e9ecuci)n de la t ansacci)n el c)di%o de eto no se distinto de ce o# *9ecuci)n !isuali5ando s)lo e o es#

B odoIe%ecC 6odo e9ecuci)n# Puede se J GAY G9Y GEY

BtipoIactualC $ipo de actuali5aci)n en la 'ase de datos# Puede se J GSY Actuali5aci)n S&nc ona# .inmediata/# GAY Actuali5aci)n As&nc ona# .Basta Gue no te mina la t ansacci)n no % a'a en B44/# 4espus del CA@@ $RA3SAC$(O3 podemos comp o'a si SI-SABRC es 2en cu0o caso la t ansacci)n se Ba' e9ecutado co ectamente# *n caso cont a io- SAP llena ot os campos del sistema Gue contienen el nDme o- identi,icaci)n- tipo 0 !a ia'les del mensa9e online Gue Ba0a emitido la t ansacci)n en el momento del e o # SI-6SC(4 W (denti,icado de mensa9e# SI-6SC$I W $ipo de mensa9e .A-*-(-K### / SI-6SC3O W 3Dme o de mensa9e#
CURSO ABAP/4 Pgina 79

SI-6SC=1### SI-6SC=7 W =a ia'les del mensa9e# 4e modo Gue pa a !e Gue Ba ocu ido podemos e9ecuta la inst ucci)nJ 6*SSAC* (4 SI-6SC(4 $IP* SI-6SC$I 3A6B*R SI-6SC3O K($+ SI-6SC=( SI-6SC=" SI-6SC=3 SI-6SC=7#

CA(( DIA(7)=

Ca acte &sticasJ

P ocesamiento s&nc ono# $ ans,e encia de los datos a una Dnica t ansacci)n# @a t ansacci)n 0 el p o% ama tend n la misma ea de t a'a9o .@AK/# *s deci Basta Gue en el p o% ama no se eali5a un CO66($ KOR[ no se actuali5a la 'ase de datos# 3o se %ene a nin%Dn ]@o%^ de e9ecuci)n# C)mo se utili5a la tcnica del CA@@ 4(A@OCJ @lena emos la ta'la B4C4A$A# Asa la inst ucci)n CA@@ 4(A@OC pa a llama a la t ansacci)nJ CA(( DIA(7) B1odIdi/lo!oC ASI9) Bta'intC 17DE B odoIe%ecC.

CURSO ABAP/4

Pgina 80

,N. &rata iento de $ic*eros desde un pro!ra a ABAP/4


ABAP/7 dispone de una se ie de inst ucciones pa a mane9a ,icBe os 'ina ios o de te;to# 37PE9; C(7SE; READ; &RA9SFER4. Ana utilidad t&pica de estas inst ucciones- como 0a Bemos e;plicado en el cap&tulo ante io - se pa a las inte ,aces ent e ot os sistemas 0 SAP- !&a BatcB (nput# Pa a a' i un ,icBe o utili5a emos la sentencia 7PE9. 7PE9 DA&ASE& B$ic*eroC. F7R 7A&PA& / 3I9PA&4 I9 BI9AR? 17DE / I9 &EH& 17DE Si SI-SABRC W 2 SI-SABRC W > *sc itu a / @ectu a . po de,ecto/# Bina io .po de,ecto/ / $e;to#

FicBe o a'ie to co ectamente# FicBe o no se Ba podido a' i #

Pa a ce a un ,icBe o utili5amos C(7SE. C(7SE DA&ASE& B$ic*eroC. Si Gue emos lee de un ,icBe o utili5amos READ. READ DA&ASE& B$ic*eroC I9&7 Bre!istroC 3(E9)&: Blon!C4 Cua da en Xlon%Y la lon%itud del e%ist o le&do# *9emploJ 4A$AJ B*C(3 OF R*C@(F3R @([* @FA1-@(F3RBA+3S @([* @FA1-BA+3S*34 OF R*C# OP*3 4A$AS*$ ]/us /test^# 4O R*A4 4A$AS*$ ]/us /test^ (3$O R*C# (F SI-SABRC 3* 2# *M($#
CURSO ABAP/4 Pgina 81

*34(F# KR($*J / R*C-@(F3R- R*C-BA+3S# *344O# C@OS* 4A$AS*$ ]/us /test^# 3otasJ - Se puede lee de Basta 7 ,icBe os simultaneamente# - Si SI-SABRC W 2 FicBe o le&do co ectamente# SI-SABRC W 7 Fin de ,icBe o encont ado#

Pa a esc i'i so' e un ,icBe o disponemos de la inst ucci)n &RA9SFER. &RA9SFER Bre!istroC &7 B$ic*eroC 3(E9)&: Blon!C4 $ ans,ie e la lon%itud especi,icada en la !a ia'le Xlon%Y# Po de,ecto la t ans,e encia se eali5a so' e un ,icBe o secuencial .te;to/ a no se Gue se a' a el ,icBe o como 'ina io# *n el caso de Gue el ,icBe o no se encuent e toda!&a a'ie to- la inst ucci)n $RA3SF*R lo intenta en modo 'ina io 0 esc itu a# 9ota= *ste t atamiento es !lido solo so' e ,icBe os A3(M- es necesa io compa a la decla aci)n de ,icBe os A3(M como de 4OS 0 ot os# FicBe os A3(M se identi,ican po J ,ile.32/ de,ault E/tmp/$*@MMF#- su t atamiento es con las sentencias ante io esJ open dataset- ead dataset- t ans,e # A di,e encia de los no e;clusi!os de A3(M# File.32/ de,ault EcJ`p ue'a`p ue'a2"#t;tF- su t atamiento se eali5a mediante llamadas a ,unciones . m)dulos de ,unci)n /- como po e9emploJ AP@OA4 0 4OK3@OA4

CURSO ABAP/4

Pgina 82

Ane+o

CURSO ABAP/4

Pgina 83

ABAP/4 EDI&7R
Se pueden especi,ica los comandos del edito en cualGuie a de la ,o mas si%uientesJ - Como comandos de ca'ece a .en la l&nea de comandos so' e las l&neas - Comandos de l&nea so' eesc i'iendo los nDme os de l&neas - Pulsando las teclas de ,unci)n o seleccionando las opciones de menD# Co andos de Ca'ecera A3&&AC:4 n =isuali5a el te;to desde la l&nea n B37&MIM714 ( al ,inal# &37P4 E FI9D c ( al p incipio# Si%uiente p%ina# P%ina ante io # Busca la cadena c desde la posici)n del cu so - el cu so se posiciona en la l&nea ele!ante# Si la cadena contiene 'lancos o ca acte es especiales- se de'e n acota ente e ca acte es especiales no contenidos en la cadena a locali5a # *9emploJ F(34 /!ac&o- / el comando no distin%ue ent e ma0Dsculas 0 minDsculas# 93EH&4 Busca 0 se despla5a a la si%uiente ocu encia de la cadena solicitada-desde la posici)n actual del cu so #

R3EP(ACE4 cl c6 Reempla5a la cadena c1 po la cadena c" en todo el te;to# c1 0 c" pueden tene distintas lon%itudes# Si una de las cadenas contiene 'lancos o ca acte es especiales se de'e n acota - am'as ent e ca acte es especiales- !e lo indicado en F(34# *9emploS R/empt0- /'lanLs/ F3E&C:4 pro! S3A>E4 Reali5a la edici)n del p o% ama indicando a'andonando el p o% ama actual#

Cua da el contenido del edito en un almacenamiento inte medio# *l comando AP4A$* 'o a cualGuie te;to del almacenamiento inte medio#

CURSO ABAP/4

Pgina 84

Si un se p oduce una ca&da de sistema- no malmente el te;to es ecupe ado del almacenamiento inte medio# RES3&7RE4 Restau a el te;to desde el almacenamiento inte medio- so' eesc i'iendo el e;istente# RES3&7RE4 A@&I> SA>EAS pro! A3PDA&E4 C:EC@ PCF3E&C:4 PC3D7F94 :E(P _ord I39SER&4 n IC _ord Restau a la !e si)n acti!a en el 4@(B# Sal!a el p o% ama con ot o nom' e# Sal!a el contenido del edito CBeGue la sinta;is del p o% ama Ca %a un ,icBe o contenido en el PC# *sc i'e el contenido del edito en un ,icBe o de PC =isuali5a la a0uda so' e la pala' a indicada# (nse ta n l&neas al ,inal del te;to# (nse ta la est uctu a de la sentencia indicada- esto es !alido pa a las sentenciasJ CAS*- 4O- FOR6- (F- @OOP- 6*SSAC*- 6O4A@*S*(@*C$- S+(F$- SOR$- $RA3SF*R- K+(@* 0 K(34OK#

IC FA9C&I79 $unc (nse ta la est uctu a de un CA@@ FA3C\(\(O3 pa a la ,unci)n indicada# IC SE(EC& ta' IC... T, Tm T#T T-T T-T1 TT TTn PP PRI9& RE9A13BER4 S:7F ta' (nse ta la est uctu a del S*@*C$ pa a la ta'la indicada# (nse ta en la posici)n del cu so ### - FOR6 'loGue de comenta io - 6O4A@* 'loGue de comenta io - @&nea de comenta io T#####te;t###############T - @&nea de comenta io T--------------------T - b ea de comenta io con l&nea en 'lanco# - @&nea de comenta io TTTTTTTTTTTTTTTT - b ea de comenta io con n l&neas en 'lanco .1XWnXW8/ P ett0 P int del p o% ama# (mp ime el contenido del edito # Renume a l&neas# =isuali5a los campos de la ta'la indicada# =isuali5a el m)dulo de la ,unci)n indicada#
Pgina 85

S:7F FA9C&I79 $unc


CURSO ABAP/4

Co andos de (nea= U &E BC B u A B 7 C Conside a la l&nea como p ime a l&nea en la pantalla# ( a la p ime a l&nea# ( a la Dltima l&nea# (nse ta las l&neas de p o% ama del include## *limina las l&neas de c)di%o del include 0 estau a ste# *sc i'e el 'loGue incluido en el ,icBe o de (3C@A4* e inse ta la sentencia include co epondiente# @&nea de destino de una ope aci)n de copia o mo!imiento- el te;to seleccionado se inclui en la l&nea poste io # @&nea de destino de una ope aci)n de copia o mo!imiento- el te;to seleccionado se inclui en la l&nea ante io # O! ela0 el contenido de C o 6 so' e la l&nea indicada# Copia esta l&nea# Copia el 'loGue de l&neas#

CC ...CC 1

6ue!e la l&nea indicada#

11 ... 11 6ue!a las l&neas indicadas# I In 9 D (nse ta una nue!a l&nea# (nse ta n l&neas# (nse ta un ea de comenta io# Bo a la l&nea# Bo a el 'loGue de l&neas#

DD...DD R Rn

Repite la l&nea# Repite la l&nea n !eces# Repite el 'loGue de l&neas#

RR...RR X

Nunta la l&nea actual 0 si%uiente#


Pgina 86

CURSO ABAP/4

S S:...S:

Pa te la l&nea a la posici)n del cu so # 4espla5a el 'loGue de l&neas a la posici)n del cu so # 6a ca el 'loGue de l&neas en el a cBi!o inte medio %ene al#

FF...FF F

Copia el contenido del a cBi!o inte medio %ene al# Copia el 'loGue indicado en el a cBi!o inte medio M# =e MM# =e I =e MM# =e M# Bo a los 'u,,e s M- I- Q### (mp ime el 'loGue de l&neas#

HH...HH ??...?? ? \\...\\ \ C(EAR PR...PR

>aria'les del Siste a


9o 're de >aria'le SI-(34*M SI-PAC3O SI-$AB(M SI-$F(@@ SI-$@OPC SI-$6AM@ SI-$OCCA
CURSO ABAP/4

Descripcin Cantidad de epeticiones de 'ucles RA3$(6*J P%ina actual en c eaci)n de lista RA3$(6*J @&nea actual de una ta'la inte na Cantidad actual de ent adas en la ta'la inte na Atili5aci)n inte na Cantidad m;ima de ent adas en la ta'la inte na Pa met o occu s en ta'las inte nas
Pgina 87

SI-$$ABC SI-$S$(S SI-$$AB( SI-4BC3$ SI-F4POS SI-CO@3O SI-@(3C$ SI-@(33O SI-@(3SQ SI-PACC$ SI-6ACO@ SI-6AROK SI-$@*3C SI-SFOFF SI-K(@@( SI-@(@@( SI-SABRC SI-F@*3C SI-CACO@ SI-CAROK SI-@S(34 SI-@(S$( SI-S$*P@ SI-$PAC( SI-K(3M1 SI-K(3I1 SI-K(3M" SI-K(3I" SI-K(3CO

3Dme o de la Dltima l&nea de ta'la inte na le&da Atili5aci)n inte na O,,set de ta'las inte nas en el ea de oll Cantidad elementos en con9unto t atado pa a ope aciones B4 @u%a de Balla5%o de un st in% Columna actual en la c eaci)n de la lista Cantidad de l&neas de lista @&nea actual en la c eaci)n de una lista @on%itud de l&nea de la lista @&mite de p%ina de lista en inst ucci)n R*POR$ Cantidad de columnas de inst ucci)n S*$ 6ARC(3 Cantidad de l&neas de inst ucci)n S*$ 6ARC(3 $ama1o de la l&nea de una ta'la inte na Atili5aci)n inte na 3Dme o de la l&nea de !entana actual 3Dme o de la l&nea de lista actual =alo de eto no t as dete minadas sentencias ABAP/7 Atili5aci)n inte na .lon%itud de campo/ Posici)n del cu so .columna/ Posici)n del cu so .l&nea/ 3Dme o de la lista de 'i,u caci)n 3Dme o de la l&nea de lista actual 3Dme o de la l&nea @OOP en step d0np o (ndicado pa a almacena ta'la inte na en 'loGue pa%in% Coo denada de !entana .columna i5Guie da/ Coo denada !entana .l&nea i5Guie da/ Coo denada !entana .columna de ecBa/ Coo denada de !entana .l&nea de ecBa/ Posici)n de cu so en la !entana .columna/

9o 're de >aria'le SI-K(3RO SI-K(34( SI-SROKS SI-SCO@S SI-@OOPC SI-FO@*3 SI-FO4*C SI-$QO3* SI-4AIS$ SI-F$IP* SI-APP@(
CURSO ABAP/4

Descripcin Posici)n de cu so en la !entana .l&nea/ (ndice de la l&nea de !entana actual @&neas en la pantalla Columnas en la pantalla Cantidad de l&neas @OOP en steploop de d0np o Atili5aci)n inte na .lon%itud de salida de campo/ Atili5aci)n inte na .campo posiciones decimales/ 4i,e encia de tiempo con \+o a media de C eenHicB\ .A$C/ +o a io de !e ano acti!o ? Atili5aci)n inte na .tipo de campo/ Aplicaciones SAP
Pgina 88

SI-F4AIK SI-CCARS SI-CCAR$ SI-4*BAC SI-C$IP* SI-(3PA$ SI-@A3CA SI-6O43O SI-BA$C+ SI-B(3P$ SI-CA@@4 SI-4I33R SI-4I3CR SI-3*KPA SI-PR(72 SI-RS$R$ SI-K$($@ SI-CPAC* SI-4B3A6 SI-6A34$ SI-PR*FM SI-F6[*I SI-P*MP( SI-PR(3( SI-PR(66

4&a de semana en el calenda io de ,' ica $ipo cam'io/Campo esultado CARR*3CI CO3=*R$ $ipo de cam'io en ta'la de aplicaci)n CARR*3CI CO3=*RS(O3 Atili5aci)n inte na $ipo de cam'io \6\-\B\-\C\ de CARR*3CI CO3=*RS(O3 Atili5aci)n inte na Cla!e de idioma pa a ent a al Sistema SAP Cantidad de modos alte nati!os BatcB acti!o .M/ BatcB input acti!o .M/ Call modo acti!o .M/ 3Dme o de la ima%en en pantalla actual C upo de d0np os del d0np o actual Atili5aci)n inte na Atili5aci)n inte na Atili5aci)n inte na (ndicado pa a ca'ece a estnda de p%ina 3Dme o de p%ina actual Base de datos l)%ica en epo t ABAP/7 3Dme o de mandante pa a accede al Sistema SAP P e,i9o ABAP/7 pa a 9o's 'atcB 6enD de c)di%os de ,unciones actual (6PR(6(RJ $iempo de pe manencia en SPOO@ Atili5aci)n inte na (6PR*S(O3J Salida inmediata

9o 're de >aria'le SI-PRR*@ SI-P@AIO SI-PRB(C SI-P@AIP SI-PR3*K SI-PR@OC SI-P4*S$ SI-P@(S$ SI-PAA$+ SI-PR4S3 SI-P3KPA SI-CA@@R
CURSO ABAP/4

Descripcin (6PR*S(O3J Bo a t as salida Atili5aci)n inte na (6PR(6(RJ Po tada de selecci)n Atili5aci)n inte na (6PR*S(O3J 3ue!a o den SPOO@ .lista/ Atili5aci)n inte na (6PR(6(RJ 4ispositi!o de salida (6PR*S(O3J 3om' e de la o den SPOO@ .nom' e de lista/ Atili5aci)n inte na (6PR(6(RJ 3om' e del set de datos SPOO@ Atili5aci)n inte na (6PR(6(RJ (4 pa a ,unciones de dilo%o
Pgina 89

SI-R*P(" SI-R$($@ SI-PRR*C SI-PR$M$ SI-PRAB$ SI-@PASS SI-3RPAC SI-PAAR$ SI-PRCOP SI-BA$QS SI-BSP@4 SI-BR*P7 SI-BA$QO SI-BA$Q4 SI-BA$QK SI-BA$Q6 SI-C$AB@ SI-4BSIS SI-4CSIS SI-6AC4B SI-SIS(4 SI-OPSIS SI-PF[*I SI-SAPR@

Atili5aci)n inte na (6PR(6(RJ $&tulo de epo t del p o% ama de imp esi)n (6PR(6(RJ 4estinata io (6PR(6(RJ $e;to pa a po tada (6PR(6(RJ 4epa tamento en la po tada Atili5aci)n inte na Atili5aci)n inte na (6PR*S(O3J *dici)n (6PR(6(RJ Cantidad de e9empla es SAB6($ 'atcBJ (nmediatamente SAB6($ ,ondoJ Salida de lista en SPOO@ SAB6($ ,ondoJ 3om' e de a&5 del epo t de llamada SAB6($ ,ondoJ Anico SAB6($ ,ondoJ 4ia io SAB6($ ,ondoJ Semanal SAB6($ ,ondoJ 6ensual $a'la de tipo de cam'io en CARR*3CI CO3=*RS(O3 SIS$*6J Sistema de 'ase de datos SIS$*6J Sistema de dilo%o PROCRA6J 3om' e del ,icBe o pa a el acceso con matcBcode SIS$*6J (denti,icado del Sistema SAP SIS$*6J Sistema ope ati!o RA3$(6*J Status de teclas-F actual S(S$*6AJ Release SAP

9o 're de >aria'le SI-$CO4* SI-ACO66 SI-CFKA* SI-C+KA* SI-SPO3O SI-SPO3R SI-KA*RS SI-C4A$* SI-4A$A6 SI-S@S*$ SI-SAB$I SI-SABCS SI-CROAP SI-FF(@* SI-AQ*($
CURSO ABAP/4

Descripcin S*SS(O3J C)di%o de t ansacci)n actual (3$*RAC$#J (ndica ,unci)n en el c)di%o O[ Atili5aci)n inte na Atili5aci)n inte na RA3$(6*J 3Dme o SPOO@ pa a salida de una lista RA3$(6*J 3Dme o SPOO@ de inst ucci)n $RA3SF*R $221J 6oneda de sociedad t as lee se%mento B FecBa de tipo de cam'io de CARR*3CI CO3=S# SIS$*6J FecBa del d&a 3om' e de S*@*C$O3-S*$S ABAPJ Fo ma de llamada en SAB6($ (3$*R3OJ Status call del epo t (3$*R3OJ Concatenaci)n (3$*R3OJ Flat,ile .AS(3C/C*3*RA$(3C 4A$AS*$/ SIS$*6J +o a
Pgina 90

SI-4S3A6 SI-R*P(4 SI-$AB(4 SI-$F4S3 SI-A3A6* SI-@S$A$ SI-ABC4* SI-6AR[I SI-SF3A6 SI-$3A6* SI-6SC@( SI$($@* SI-*3$RI SI-@(S*@ SI-A@(3* SI-MCO4* SI-CPROC SI-MPROC SI-MFOR6 SI-@4BPC SI-$=AR2

RA3$(6*J 3om' e del set de datos pa a salida en SPOO@ PROCRA6J 3om' e de un p o% ama ABAP/7 Atili5aci)n inte na RA3$(6*J 3om' e del set de datos pa a e;t actos de datos S*SS(O3J 3om' e de usua io se%Dn ent ada a SAP (3$*RAC$#J (n,o maci)n de status po ni!el de lista CO3S$A3$J Al,a'eto .A-B-C-###/ @et a de l&nea actual pa a 6AR[ Sin utili5a 3om' e de la ta'la inte na despus de un acceso (3$*RAC$#J @&nea de mensa9e .l&nea "3/ PROCRA6J $&tulo del p o% ama ABAP/7 Atili5aci)n inte na (3$*RAC$#J @&nea seleccionada CO3S$A3$J @&nea de su' a0ado .RRRRRRRRRRRR###/ C)di%o O[ ampliado RA3$(6*J P o% ama p incipal Atili5aci)n inte na .p o% ama SIS$*6-*M($/ Atili5aci)n inte na .,o m SIS$*6-*M($/ PROCRA6J P o% ama ABAP/7 de 'ase de datos pa a SI-4B3A6 RA3$(6*J =a # de te;to pa a elementos de te;to ABAP/7 Descripcin RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 RA3$(6*J =a ABAP/7 (4 de mensa9e ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to ia'le de te;to pa a elementos de te;to

9o 're de >aria'le SI-$=AR1 SI-$=AR" SI-$=AR3 SI-$=AR7 SI-$=AR8 SI-$=AR: SI-$=AR< SI-$=AR> SI-$=AR? SI-6SC(4
CURSO ABAP/4

Pgina 91

SI-6SC$I SI-6SC3O SI-6SC=1 SI-6SC=" SI-6SC=3 SI-6SC=7 SI-O3CO6 SI-=@(3* SI-K(3S@ SI-S$ACO SI-S$ARO SI-4A$AR SI-+OS$ SI-@OC4B SI-@OCOP SI-4A$@O SI-$(6@O SI-$S$@O SI-QO3@O SI-4A$A$ SI-$(6A$ SI-$S$A$

$ipo de mensa9e .*-(-K-etc#/ 3Dme o del mensa9e =a ia'le en mensa9e =a ia'le en mensa9e =a ia'le en mensa9e =a ia'le en mensa9e (3$*R3OJ On Commit Fla% CO3S$A3$J a0a !e tical (3$*RAC$#J @&nea en !entana seleccionada (3$*RAC$#J @ista !isuali5ada a pa ti de la columna (3$*RAC$#J @ista !isuali5ada a pa ti de l&nea (ndicado J 4atos eci'idos 3om' e de la mGuina *;iste 'ase de datos local Ope aci)n local en 'ase de datos FecBa local- en elaci)n con el usua io +o a local- en elaci)n con el usua io C onoma cado .,ecBa 0 Bo a/- en elaci)n con el usua io +uso Bo a io del usua io FecBa %lo'al- en elaci)n con A$C +o a %lo'al- en elaci)n con A$C C onoma cado .,ecBa 0 Bo a/- en elaci)n con A$C

ABAP/4 Conceptos
CURSO ABAP/4 Pgina 92

A-an.ados

, Reportin! Interacti-o
,. , Introduccin al reportin! interacti-o. @os in,o mes .Repo ts/ SAP se pueden clasi,ica cla amente enJ Reportin! Cl/sico # Reportin! Interacti-o. *l Reportin! Cl/sico como su nom' e indica es el in,o me t&pico- Gue t a'a9a con % an cantidad de in,o maci)n 0 un ni!el de detalle mu0 ele!ado# *n el Reportin! Interacti-o se ap o!ecBa la tecnolo%&a SAP pa a o, ece in,o mes Gue !an detallando la in,o maci)n 'a9o la inte acci)n del usua io- es deci se eali5an listados %ene ales Gue se !isuali5an po pantalla 0 mediante teclas de ,unci)n o seleccionando posiciones de pantalla- se i desa ollando aGuella in,o maci)n Gue solicite el usua io# *n cont aste con el epo tin% clsico- Gue es asociado con p ocesos de ento nos BatcB- el epo tin% inte acti!o es un desa ollo Gue toma todas las !enta9as del ento no online# An e9emplo de listado inte acti!o pod &a se una lista de clientes- Gue pe mita !isuali5a sus datos de di ecci)n- datos 'anca ios- pa tidas### etc# en pantallas di,e entes Gue !an apa eciendo con,o me !amos seleccionando un cliente 0/o solicitamos una ,unci)n#
CURSO ABAP/4 Pgina 93

,.6 )enerando listados interacti-os. Podemos encont a nos con dos tipos de salida distintos J - Ana lista '/sica. - 4i!e sas listas secundarias .o de ami,icaci)n/ - po in,o maci)n detallada so' e datos de la lista 'sica# @a lista inicial 3'/sica4 la !isuali5a emos con la sentencia KR($*# 4esde esta lista inicial- el usua io se capa5- de di i%i se a una lista secundaria mediante una tecla de $uncin o posicionndose con el cu so # Al i%ual Gue en las listas 'sicas- se implementan el listado con la inst ucci)n KR($*# @os datos de las listas secunda ias apa ece n en una !entana- po encima de la lista p incipal- solapando una pa te u ocultndola totalmente#Se pod n tene !a ias listas cada una de ellas en !entanas distintas# Pa a cont ola el ,lu9o del epo t inte aciti!o- tend emos una se ie de e!entos como J A& (I9E-SE(EC&I79 .si lo Gue se selecciona es una l&nea/ A& PFn 0 A& ASER-C711A9D.si se pulsa una tecla/# An epo t inte aci!o puede tene como m;imo ? listados secunda ios# Si el usua io selecciona la ,unci)n BAC@ el sistema !uel!e al listado ante io # ABAP/7 nume a los listados a medida Gue se !an %ene ando- empe5ando desde 2 .listado 'sico/# *l nDme o del listado en p oceso esta en la !a ia'le del sistema S?-(SI9D. *n el listado 'sico podemos !isuali5a ca'ece as con $OP-OF-PAC* o con la ca'ece a estnda - pe o en los listados de ami,icaci)n no podemos utili5a ca'ece as estnda es- utili5a emos el e!ento &7P-7F -PA)E DARI9) (I9E-SE(EC&I79. ,.3 (a interaccin con el usuario. *l usua io tiene dos ,o mas de inte actua con el sistemaJ Seleccionando una l&nea del listado .con do'le-clicL/ o utili5ando la ,unci)n Selecciona # Pa a cont ola la ent ada del usua io utili5amos el e!ento de ABAP- A& (I9E-SE(EC&I79.

e9emplo

CURSO ABAP/4

Pgina 94

Seleccionando una ,unci)n- pulsando su 'ot)n co espondiente o una tecla de ,unci)n# Pa a cont ola la ent ada del usua io utili5amos el e!ento de ABAP- A& ASER-C711A9D. *l c)di%o de la ,unci)n solicitada lo pod emos o'tene con la !a ia'le S?-AC711. Podemos conse%ui Gue un campo de pantalla est p epa ado pa a la ent ada de datos con la clusula I9PA& de la inst ucci)n KR($*# FRI&E Bca poC I9PA&. *l sistema so' eesc i'i en pantalla el contenido del campo 0 %ua da el nue!o !alo en la !a ia'le S?-(ISE(; despus de un e!ento A$ @(3*-S*@*C$(O3 o A$ AS*R-CO66A34#

SE(ECCI`9 DE (I9EA. @a selecci)n de una l&nea del listado inte acti!o - 0a sea mediante un do'le-clicL o mediante la ,unci)n Selecciona 3con C)di%o de ,unci)n MPIC@M4; acti!a el e!ento A& (I9E -SE(EC&I79# *l p oceso de este e!ento c ea una nue!a lista- Gue apa ece po encima de la ante io # Pa a ,acilita la o ientaci)n del usua io- podemos c ea una !entana.inst ucci)n K(34OK/- donde apa ece los datos de esta nue!a lista- solapndose pa cialmente con la lista ante io # *n el e!ento A$ @(3*-S*@*C$(O3- utili5a emos los datos de la l&nea seleccionada- pa a lee di ectamente de 'ase de datos 0 o'tene los datos Gue necesitemos pa a la nue!a lista# *n la lista ante io ; tend emos Gue %ua da los datos cla!e Gue necesitamos pa a p ocesa la si%uiente lista con la sentencia :IDE. *n el momento de p ocesa este e!ento el sistema llena una se ie de !a ia'les del sistema# =e Ane;o 1 J M>aria'les del siste a para reportin! interacti-oS pa a ms in,o maci)n# *9emploJ $AB@*S @FA(# C*$ @FA 1# KR($* @FA1-@(F3R# KR($* @FA1 -3A6*1# +(4* @FA@-@(F3R# A$ @(3*-S*@*C$(O3# (F SI-@S(34 W 1#
CURSO ABAP/4 Pgina 95

S*@*C$ T FRO6 @FB[ K+*R* @(F3R W @FA 1 -@(F3R# KR($* @(FB[-BA3[@-### *34S*@*C$# *34(F#

SE(ECCI`9 DE FA9CI`9. @a selecci)n de una ,unci)n .'ot)n/ o tecla de $uncin acti!a el e!ento- A& ASER-C711A9D. *l c)di%o de la ,unci)n solicitada se %ua da automticamente en la !a ia'le S?-AC711. Si adems el usua io selecciona una l&nea- el contenido de esta- pod se utili5ado en el p oceso# *;iste una se ie de ,unciones Gue e;cepcionalmente no pueden acti!a el e!ento A$ AS*R-CO66A34 #3i pod n se utili5adas pa a eali5a ,unciones p opiasJ PIC@ PFn PRI BAC@ RF PO = = = = = = Selecciona . se utili5a A$ @(3* S*@*C$(O3/ $ecla de ,unci)n. se utili5a A$ PFn/# (mp imi =ol!e pantalla ante io Cancela Funciones de Sc oll#

*9emploJ $AB@*S @FA(# C*$ @FA(# KR($* @FA1-@(F3R# KR($* @FA1-3A6*1# +(4* @FA1-@(F3R# A$ AS*R-CO66A34# CAS* SI-ACO66# K+*3 \BA3[\# (F SI-@S(34 W 1# S*@*C$ T FRO6 @FB[ K+*R* @(F3R W @FA1-@(F3R# KR($* @(FB[-BA3[@-### *34S*@*C$# *34(F# *34CAS*# Si el usua io pulsa una tecla de ,unci)n asi%nada a un c)di%o de ,unci)n PFn- se de'e utili5a el e!ento A& PFn; pa a p ocesa la ent ada del usua io#

CURSO ABAP/4

Pgina 96

*9emploJ

$AB@*S @FA1# C*$ @FA l# KR($* @FAl-@(F3R# KR($* @FA1-3A6*# +(4* @FA1-@(F3R# A$ PF8# ] F8 W 4atos Banca ios (F SI-@S(34 W 1# S*@*C$ T FRO6 @FB[ K+*R* @(F3R W @FA1-@(F3R# KR($* @(FB[-BA3[@### *34S*@*C$# *34(F#

*n cualGuie caso es me9o utili5a A$ AS*R-CO66A34 Gue A$ PFn- 0a Gue este Dltimo es menos ,le;i'le# Con el A$ AS*R-CO66A34- podemos asi%na una ,unci)n a ot a tecla de ,unci)n sin tene Gue cam'ia el p o% ama 0 adems- es posi'le Gue en di,e entes listas la misma ,unci)n se utilice pa a di,e entes ,unciones# ,.4 7tras *erra ientas del reportin! interacti-o Pa a ecupe a in,o maci)n seleccionada en un listado Ba0 dos posi'ilidades - Atili5a el comando +(4*# .@a ms ele%ante/# :IDE Bca poC. +(4* %ua da el contenido de XcampoY de la l&nea de salida# Cuando !isualicemos la si%uiente lista- el sistema automticamente llena el contenido de XcampoY con el !alo %ua dado en la inst ucci)n +(4*# - Atili5a la !a ia'le del sistema SI-@(S*@# .@a ms sencilla/# *n el momento Gue el usua io selecciona una l&nea- el contenido de esta se %ua da en la !a ia'le del sistema SI-@(S*@ Podemos o'tene la posici)n del cu so en el epo t con )E& CARS7R. )E& CARS7R FIE(D Bca poC. = O'tenemos el nom' e del campo donde est situado el cu so = O'tenemos la l&nea so' e la Gue est el cu so #
Pgina 97

)E& CARS7R (I9E BlneaC.


CURSO ABAP/4

$am'in es posi'le situa el cu so en una posici)n dete minada conJ SE& CARS7R Bcolu naC BlneaC. SE& CARS7R FIE(D Bca poC (I9E BlneaC. Cam'io de EStatusF# An Status .CA( Status/ desc i'e Gue ,unciones estn disponi'les en un p o% ama 0 como se pueden selecciona - !&a menDs- teclas de ,unci)n o EpusB'uttonsF# Como 0a !e emos en el si%uiente cap&tulo- podemos de,ini un Status mediante el E1enu PainterF# Si un epo t %ene a di!e sas listas- cada una puede utili5a sus p opias com'inaciones de teclas# Con la inst ucci)n SE& PF-S&A&AS podemos cam'ia la inte ,ace de cada lista# SE& PF-S&A&AS BstatusC. +a0 Gue tene en cuenta Gue e;isten di!e sas teclas de ,unci)n ese !adas po el sistemaJ

F, F6 F3 F4 F,5 F,6 F,< F6, F66 F63 F64

J+elp# JSelecciona # =BAC[# J=alo es posi'les# J( a la Ba a de 6enDs# JCancel# =Fin# =Sc oll .le# P%ina/# =Sc oll .P%ina ante io /# =Sc oll .P%ina si%uiente/# =Sc oll .Dltima P%ina/#

*n la !a ia'le S?-PF@E? tend emos el status del listado en cu so#

+asta aBo a todas las listas secunda ias Gue c eamos- apa ec&an cu' iendo totalmente la lista
CURSO ABAP/4 Pgina 98

ante io # @a e,e encia a la lista ante io no es apa ente# Pa a ,acilita la o ientaci)n al usua io- podemos !isuali5a las listas secunda ias en !entanas mediante la inst ucci)n FI9D7F.

FI9D7F S&AR&I9) A& Bcolu naC BlneaC 3E9DI9) A& Bcolu naC BlneaC4.

*speci,icamos las coo denadas Rsupe io -i5Guie da en el S&AR&I9) e in,e io -de ecBa en el E9DI9). Atili5a emos esta inst ucci)n 9usto antes de los KR($*Fs de las listas secunda ias# 6anipula de listas Pa a lee una l&nea dete minada de la lista en !isuali5aci)n- utili5a emos la inst ucci)n READ (I9E despus de un e!ento A$ @(3*-S*@*C$(O3 o A$ AS*R CO66A34# READ (I9E BlneaC. $am'in podemos lee una l&nea de cualGuie listado ami,icado# READ (I9E BlneaC I9DEH BndiceC. 4onde X&ndiceY es el nDme o de listado# $am'in es posi'le modi,ica una l&nea de un listado con el contenido de SI-@(S*@ con el contenido de SI-@(S*@ con la inst ucci)n 17DIF? (I9E. 17DIF? (I9E BlneaC.

Pa a o'tene in,o maci)n detallada so' e la utili5aci)n de R*A4 @(3* 0 6O4(FI @(3*- !e la docu entacin 7nline del editor de ABAP/4.

*s posi'le conecta epo ts inte acti!os con ot os epo ts o con t ansacciones# Podemos llama a ot o epo t con la inst ucci)n SAB6($# SAB1I& BrcportC 3FI&: BdatosC4.
CURSO ABAP/4 Pgina 99

*n este caso no se e9ecuta la pantalla de selecci)n del epo t Gue llamamos 0 asi%na emos el c ite io de selecci)n con la clusula FI&:. Pa a !isuali5a la pantalla de selecci)n utili5amos la clusula >IA SE(EC&I79 SCREE9 del SAB6($# 4espus del SAB6($- el p o% ama Gue es llamado es Guien tienen el cont ol 0 el p o% ama donde est el SAB6($ es li'e ado# Si Gue emos !ol!e al p o% ama o i%inal en la si%uiente inst ucci)n al -SAB6($utili5a emos la clusula A34 R*$AR3- es deci el p o% ama o i%inal no se li'e ado# Podemos llama a un t ansacci)n con J (EA>E &7 &RA9SAC&I79 BcodI&ranC. *n este caso la t ansacci)n toma el cont ol del p oceso 0 el epo t es li'e ado# Si Gue emos Gue una !e5 e9ecutada la t ansacci)n el epo t ecupe e el cont ol tend emos Gue Bace J CA(( &RA9SAC&I79 BcodI&ranC.

CURSO ABAP/4

Pgina 100

CURSO ABAP/4

Pgina 101

6 Pro!ra acin de Di/lo!o


"#1 Introduccin.

+asta el momento- tanto en el cap&tulo ante io como en el manual MIntroduccin al ABAP/4M; Bemos estado desc i'iendo el dise1o de aplicaciones de tipo Repo tin%- 0a sea Clsico o inte acti!o# *n este cap&tulo empe5a emos a !e los ,undamentos de la p o% amaci)n de dilo%o pa a el dise1o de &ransacciones SAP# @a p o% amaci)n de dilo%o necesita tcnicas especiales de codi,icaci)n en ABAP/7- adems de Be amientas espec&,icas- como son un edito de pantallas 3Screen Painter4 0 un edito de supe ,icies 31en2 Painter4. 6.6 Pasos en la creacin de transacciones.

Pa a c ea una t ansacci)n- se necesa io la %ene aci)n de una se ie de o'9etos de desa ollo# Cada t ansacci)n puede di!idi se en !a ias pantallas- cada una de las cuales puede utili5a distintos menDs 0 todo ello cont olado po un p o% ama en ABAP/7 denominado 1odule Pool; Gue cont ola el ,lu9o de la t ansacci)n 0 eali5a las acciones necesa ias pa a cumpli la ,uncionalidad de la t ansacci)n#

$RA3SACC(V3

Pantallas 6*3fS

BAS* 4* 4A$OS
CURSO ABAP/4 Pgina 102

Po lo tanto los pasos a se%ui pa a el desa ollo de t ansacciones se J

,a# C ea el cdi!o de transaccin. :erra ientas -C ForW'enc* ABAP/4 -Y Desarrollo -C &ransacciones. (ndicndole J *l tipo de t ansacci)n- la desc ipci)n de la t ansacci)n- *l nom' e del p o% ama ABAP/7 .6odule Pool/- el nDme o de la p ime a pantalla 0 opcionalmente un o'9eto de !e i,icaci)n pa a e9ecuta la t ansacci)n# 6a. C ea el p o% ama ABAP/7 31odule Pool4. 3a. 4e,ini las pantallas Gue inte !ienen en la t ansacci)n con el Screen Painter. *speci,icando Gue datos apa ecen en pantalla 0 de Gue ,o ma- adems de una l)%ica de p oceso de cada pantalla# 4a. 4e,ini los en2s con el 1en2 Painter.

*speci,icando el contenido de los menDs Pop-up- las teclas de ,unci)n 0 los 'otones de comandos Gue se pueden utili5a # <a. 4e,ini el Flu%o de pantallas en el 1odule Pool. "a# P o% ama - en el 6odule Pool- los dulos de cada pantalla- es deci lo Gue de'e Bace cada pantalla# P o% amando las acciones a eali5a en tiempo de PBO 3MProcess Be$ore 7utputM4; antes de Gue apa e5can los datos de la pantalla 0 en tiempo de PAI 3MProcess A$ter InputM4; despus de Gue se Ba0an int oducido los datos en los campos de ent ada#

CURSO ABAP/4

Pgina 103

3 Dise0o de 1en2s 31E9A PAI9&ER4. 3Release 3.54


3., Introduccin# Con el 1enu Painter dise1a emos las supe ,icies CA(- .C a,ical Ase (nte ,ace/so' e las Gue co e n las t ansacciones SAP# Ana CA( contiene todos los menDs- teclas de ,unci)n- pusB'uttons- etc### disponi'les pa a el usua io- du ante la e9ecuci)n de una t ansacci)n# Pod emos indica el status Gue utili5amos en una pantalla o el t&tulo en un m)dulo PBO de la pantalla con las inst ucciones J SE& PF-S&A&AS BcodI statusC. SE& &I&(EBAR BcodIttuloC.
Ba a de $&tulos Ba a de menD +e am# estada s

CURSO ABAP/4

Pgina 104

PusB'uttons Aplicaci)n $&tulo CA( S*$ $($@*BAR XcodeY SI-$($@*J $itle te;t

Status CA( S*$ PF-S$A$AS XstatusY SI-PF[*IJ Status

(denti,icamos las di,e entes inte ,aces CA( de una t ansacci)n mediante los Status Ana t ansacci)n tend mucBos status di,e entes# 3o se necesa io ede,ini todos los o'9etos de los status- 0a Gue mucBos o'9etos de,inidos en un status pod n se utili5ados en ot o# Po e9emplo es posi'le c ea una 'a a de menDs i%ual pa a toda la t ansacci)n# Pa a inicia el 6enD PA(3$*R; selecciona J M&ools -C ABAP/4 F7R@BE9C: -C Desarrollo -C 1enu Painter. 3SE4,4. *s posi'le mantene tanto un status de un dete minado p o% ama- como los di,e entes o'9etos de una CA( Gue ,o man pa te de los status .'a as de menDs- teclas de ,unci)n- t&tulos de menD#P/# 3.6 (a Barra de 1en2s#

*n p ime lu%a int oduci emos las distintas opciones de la 'a a de menDs- Gue las i emos desa ollando en ,unciones o en ot os su'menDs- ent ando los nom' es en la pa te supe io de la pantalla# Se pueden inclui Basta : menDs en la 'a a de menDs# Adems de los menDs de usua io- elsistema a1adi automticamente S#ste # :elp# Cada menD puede tene Basta 18 ent adas# Cada una de las cuales puede se ot o menD en cascada o una ,unci)n# Pa a a' i un menD o su'menD- Bace un 4o'le-ClicL so' e el nom' e# Cada ent ada esta compuesta de un c)di%o de ,unci)n 0 un te;to de ,unci)n o un te;to de menD# Con F7 podemos !e una lista de las ,unciones Gue podemos utili5a # Se pueden anida Basta 7 ni!eles de su'menDs# *n el caso de las ,unciones- 'asta con indica el c)di%o de la ,unci)n pa a Gue el te;to de esta apa e5ca automticamente- si esta 0a e;iste p e!iamente# Podemos de,ini los at i'utos de una ,unci)n nue!a con 4o'le-ClicL so' e la nue!a ,unci)n de,inida#
CURSO ABAP/4 Pgina 105

*n el caso de un menD en cascada- no se necesa io indica el c)di%o- 0 con 4o'leCl&cL podemos desa olla las opciones del su'menD#

3.3

(os RPus*'uttonsM.

@os PusB'uttons son 'otones t idimensionales Gue apa ecen de'a9o de la 'a a de Be amientas estnda # P e!iamente a de,ini un Bot)n se necesa io de,ini la ,unci)n deseada como una tecla de ,unci)n .apa tado 3.44. Pa a !e Gue ,unciones se pueden utili5a - nos situa emos so' e MAplication tool'arM 0 pulsa emos F4; (ndica emos el c)di%o de ,unci)n Gue deseamos Gue apa e5ca en la 'a a de Be amientas de aplicaci)n# Podemos especi,ica si Gue emos Gue apa e5ca un te;to co to o Dnicamente un icono Gue identi,iGue la ,unci)n# 3o se necesa io de,ini las ,unciones de la 'a a de Be amientas estnda MStandard &ool'arM. Pa a de,ini iconos pa a !isuali5a los en la 'a a de Be amientas de aplicaci)n se necesa io J Selecciona J Edit -C Insert -C Function _it* icon.
CURSO ABAP/4 Pgina 106

*nt a el c)di%o de ,unci)n (nt oduci el nom' e del icono 0 el te;to del menD# 3.4 &eclas de Funcin. Pa a de,ini las teclas de ,unci)n utili5amos el espacio destinado pa a ello# (ndicando el c)di%o de la ,unci)n en la l&nea co espondiente a la tecla Gue deseamos utili5a # *l te;to de la tecla de ,unci)n apa ece automticamente- pe o pod se modi,icado en caso de desea lo# SAP no ecomienda de,ini nue!as teclas de ,unci)n en el espacio ese !ado pa a teclas de ,unci)n estnda #

CURSO ABAP/4

Pgina 107

3.< 7tras utilidades del 1en2 Painter. 3.<., Acti-acin de $unciones. Podemos Bace Gue las ,unciones de la 'a a de menDs estn en modo acti-o o inacti-o. *n caso de esta inacti!as- se !isuali5a n en la 'a a de menDs en 'a9a intensidad 0 su selecci)n no implica e,ecto al%uno- en cam'io las ,unciones acti!as se n completamente e9ecuta'les# Pa a acti!a o desacti!a ,unciones selecciona MFunction acti-ationS.
3.<.6 RFastPat*sS

An EFastPatBs E . Camino pido/- es una mane a pida de esco%e ,unciones en un menD- asi%nado a cada ,unci)n una tecla# Podemos mantene EFastPatBsF seleccionandoJ )oto Furt*er options Fastpat*#

(ndica emos pa a las ,unciones deseadas una let a- no malmente la teniendo cuidado de no especi,ica la misma let a pa a distintas ,unciones#
3.<.3

p ime a-

&tulos de 1en2.

*s posi'le mantene distintos t&tulos pa a un menD# )oto -C &itle list Cada t&tulo se identi,ica con un c)di%o de t&tulo de t es d&%itos# (nt oduci emos el te;to del t&tulo- pudiendo utili5a !a ia'les de la misma ,o ma Gue lo Bac&amos con los mensa9es en ABAP/7- es deci utili5ando el s&m'olo c# Poste io mente se en el p o% ama ABAP/7 donde le indiGuemos Gue t&tulo !amos a utili5a con la inst ucci)nJ SE& &I&&(EBAR Bcod-ttuloC FI&: B-arlC B-ar6C .... *n tiempo de e9ecuci)n el t&tulo del menD se %ua da en la !a ia'le del sistema SI-$($@*# 3.<.4 Prue'a; c*e8ueo # !eneracin de Status.

CURSO ABAP/4

Pgina 108

Podemos p o'a el Status simulando la e9ecuci)n de la inte ,ace con J Aser Inter$ace -C &est Status - e int oduciendo los datosJ nDme o de pantalla- 0-c)di%o del t&tulo# Antes de usa la inte ,ace podemos comp o'a Gue la Bemos de,inido co ectamente- eali5ando un p oceso de cBeGueo conJ Aser Inter$ace -C C*ecW S#nta+# Poste io mente eali5a emos un p oceso de %ene aci)n de la inte ,ace Gue inclu0e e1 cBeGueo 0 la % a'aci)n de la misma# 3." 1enus de A 'ito o de /rea. An 6enD de m'ito es una a% upaci)n de t ansacciones en ,o ma de menD#*s una mane a de a% upa las t ansacciones ms , ecuentemente utili5adas po un usua io 'a9o un mismo menD# A di,e encia de una t ansacci)n de dilo%o- el menD de m'ito s)lo llama a ot as t ansacciones- no pudiendo inco po a ot o tipo de ,unciones p opias# Podemos c ea los menDs de m'ito con una !e si)n simpli,icada del 6enu Painte # :erra ientas ForW'enc* *erra ientas1enus / 'ito ABAP/4 Desarrollo 1/s

fnicamente se necesa io int oduci los c)di%os de t ansacci)n .$a'la $S$C/ 0 el te;to del menD# Pa a ms in,o maci)n so' e las posi'ilidades del 6enD Painte - !e el cap&tulo 1enu Painter del manual \BC ABAP/4 ForW'ec* toolsM.

CURSO ABAP/4

Pgina 109

4 Dise0o de Pantallas 3SCREE9 PAI9&ER4. 3Release 3.54


4., Introduccin al dise0o de pantallas.

*l Sc een Painte nos pe mite \pinta \ las pantallas de SAP 0 dise1a su compo tamiento .l)%ica de p oceso/# *n SAP- al con9unto de pantalla 0 l)%ica de p oceso de la misma se le denomina 40np o .\40na nic P o% am\/# 0 el *;isten dos modos de ,uncionamiento del edito de pantallas J *l odo !r/$ico odo al$anu Jrico; dependiendo del inte ,ace % ,ico so' e el Gue ,uncione SAP#

*n este cap&tulo se desc i'e el uso del Sc een Painte en modo % ,ico .!e si)n 3#2/- 0a Gue se le conside a como el ms c)modo 0 a!an5ado- siendo adems sopo tado po los inte ,aces % ,icos ms e;tendidos . 6S K(34OKS 0 M( l/6O$(F A3(M/# 4e cualGuie modo la ,uncionalidad de am'os modos del edito es la misma# Pa a acti!a o desacti!a el modo % ,ico del edito de pantallas i a J Settin!s -C )rap*ical Fulllscreen

4.6

Dise0o de pantallas.

4.6., Atili.ando el Screen Painter. Ana pantalla SAP se identi,ica po el nom' e del p o% ama module pool de la t ansacci)n a la Gue pe tenece- ms un nDme o de pantalla# As& t as accede al Sc een Painte desde el ABAP/7 Ko L'encB- tend emos Gue int oduci el p o% ama 0 el nDme o de pantalla Gue deseamos mantene # Ana !e5 BecBo esto apa ece el *dito de Pantallas MFullscreen EditorM# Si estamos c eando el d0np o po p ime a !e5- nos pedi los at i'utos de pantallaJ 4esc ipci)n $ipo de pantalla .no mal- de selecci)n- modal- Su'sc een/# C)di%o de la si%uiente pantalla# Campo donde se situa el cu so # C upo de pantallas $ama1o m;imo de la pantalla#

*n el edito de pantallas podemos o'se !a 3 eas di,e enciadas J @a ca'ecera = Con datos so' e la pantalla 0 el campo se est manteniendo en ese p eciso instante. @a 'arra de o'%etos .columna i5Guie da/ J @ista de los o'9etos Gue se pueden c ea en la pantalla J $e;tos- ent ada de datos- \cBecL'o;es\- \, ames\- \su'sc eens\ ### *l /rea de di'u%oJ *s el ea donde se di'u9a la pantalla Gue estemos dise1ando# 4.6.6 Creando o'%etos en ,a pantalla. Pa a di'u9a un o'9eto en la pantalla tend emos Gue coloca lo en el ea de t a'a9o 0 poste io mente de$inir sus ca acte &sticas .at i'utos/# Pa a ello tend emos Gue pulsa el 'ot)n co espondiente en la 'a a de o'9etos 0 ma ca el ea donde !amos a situa el o'9eto# Si Gue emos cancela la c eaci)n de un o'9eto pulsa emos el 'ot)n Reset de la misma 'a a de o'9etos# O'9etos disponi'les J &e+tos = $e;tos- lite ales-### Gue son ,i9os en pantalla 0 no pueden se manipulados po el usua io# Pa a conside a !a ias pala' as como un mismo te;to tend emos Gue coloca un s&m'olo \-\ ent e ellas- 0a Gue de ot o modo las conside a como o'9etos de te;to completamente distintos#

7'%etos de entrada/ salida 3M&e platesM4 = Son campos pa a int oduci o !isuali5a datos#Pueden Bace se opcionales o o'li%ato ios#@os ca acte es de ent ada se especi,ican con el s&m'olo \R\- pudiendo utili5a ot os ca acte es pa a da ,o mato a la salida# Po e9emplo una Bo a podemos de,ini la comoJ RRJRRJRR# Radio-Buttons = Son peGue1os 'otones edondos- Gue pe miten una ent ada de dos !alo es so' e una !a ia'le .ma cado o no ma cado/# @os podemos a% upa - de ,o ma Gue la selecci)n de uno impliGue Gue no se pueda selecciona nin%Dn ot o# C*ecW-Bo+es = *s como un adio-'utton pe o de apa iencia cuad ada en !e5 de edonda# @a di,e encia especto los adio-'uttons de i!a en su utili5aci)n en % upos0a Gue se pueden selecciona tantos cBecLs-'o;es como se Guie a dent o de un % upo# Pus*'uttons = *s un 'ot)n de tipo pulsado # Se le asocia a una ,unci)n- de ,o ma Gue en el momento Gue se pulsa el PusB'utton se e9ecute la ,unci)n# Fra es 3Ca%as4 = Son Ca9as Gue a% upan % upos de o'9etos dent o de una pantalla como po e9emplo un con9unto de adio-'uttons# Su'screen= Son eas de la pantalla sin nin%Dn campo Gue se ese !an pa a la salida de ot as pantallas .su'sc eens/ en tiempo de e9ecuci)n# Pa a de,ini este ea- nos coloca emos el punto de la pantalla donde Gue emos situa el n%ulo supe io i5Guie da de la Su'sc een- selecciona emos Edit -C Su'screen- indicndole el nom' e Gue le !amos a da - 0 ,inalmente se1ala emos con do'le-clicL- el n%ulo in,e io de ecBa de la !entana# Poste io mente se en los m)dulos PBO 0 PA( cuando le indica emos con la inst ucci)n CA(( SABSCREE9; Gu pantalla apa ece en el ea de Su'sc een Gue Bemos de,inido# Ana !e5 situados los o'9etos so' e el ea de t a'a9o- pod emos modi,ica su tama1o- mo!e los o 'o a los# $odos los te;tos- pusB'uttons### pueden inco po a iconos en su salida po pantalla# @os iconos tienen una lon%itud de dos ca acte es 0 estn ep esentados po s&m'olos estnda es# *l icono se un at i'uto ms de los campos 0 po tanto se de,ini n 9unto al esto de at i'utos del o'9eto#

4.6.3 Creando o'%etos desde el diccionario de datos. *n la pantalla Gue estamos dise1ando- podemos utili5a campos Gue estn %ua dados en el dicciona io de datos o decla ados en el module pool- Pa a ello tend emos Gue selecciona J )oto -C Dict / Pro!ra $ields.

Apa ece una pantalla de selecci)n de datos en la Gue indica emos el campo o la ta'la de la cual Gue emos o'tene datos# Adems se de'e selecciona - si Gue emos !e la desc ipci)n de cada campo .indicando la lon%itud/ 0 si Gue emos eali5a una ent ada de dalos .\template\/ de dicBo campo po pantalla# Finalmente pulsa emos el 'ot)n co espondiente a c ea desde el dicciona io de datos o desde un p o% ama# 6a ca emos el campo Gue Gue emos inco po a a nuest a pantalla 0 los copia emos so' e el ea de t a'a9o- situndolos en la posici)n Gue c eamos ms con!eniente# 4.6.4 De$iniendo los atri'utos indi-iduales de cada ca po. @os at i'utos de los o'9etos de,inen las ca acte &sticas de estos# Podemos mantene los at i'utos desde el mantenimiento de at i'utos de campo o desde listas de campos# Podemos distin%ui ent e at i'utos %ene ales- de dicciona io- de p o% ama 0 de !isuali5aci)n Atri'utos )enerales= 1atc*code= Pe mite especi,ica un matcBcode pa a la ent ada de un campo# Re$erences = *speci,icamos la cla!e de la moneda en caso de Gue el campo sea de tipo cantidad .CARR o QAA3/# Field t#pe= $ipo de campo# Field 9a e= 3om' e del campo# Con este nom' e se identi,ica n desde el p o% ama# Field te+t= $e;to del campo# Si Gue emos utili5a un icono en !e5 de te;to de9a emos este !alo en 'lanco# Fit* icon = si Gue emos utili5a iconos en ent ada de datos .\templates\/# lcon na e = (denti,ica el nom' e de un icono pa a un campo de pantalla# Rollin! 3Scrollin!4= Con!ie te un campo en desple%a'le- cuando su lon%itud eal es ma0o Gue su lon%itud de !isuali5aci)n# KuicW In$o = *s el te;to e;plicati!o Gue apa ece cuando pasa nos po encima de un icono con el at)n# (ine = *speci,ica la l&nea donde el elemento apa ece # *l sistema completa este !alo automticamente# CI= *speci,ica la columna donde el elemento apa ece # *l sistema completa este !alo automticamente#

:t= Altu a en l&neas# *l sistema completa este !alo automticamente# Dl! = @on%itud del campo# >l!= lon%itud de !isuali5aci)n# FctCode= C)di%o de ,unci)n .c)di%o de 7 d&%itos/# At i'uto s)lo pa a pusB'ottons# Fct&#pe= *speci,ica el tipo de e!ento en el cual el campo se t atado# (t#pe= $ipo de step loop .,i9o o !a ia'le/# *l tipo !a ia'le si%ni,ica Gue el tama1o del step loop se a9usta se%Dn el tama1o de la pantalla- mient as Gue ,i9o no a9usta el step loop# (ent = 3Dme o de l&neas de un step loop# )roups= (denti,ica % upos de modi,icaci)n pa a pode modi,ica !a ios campos simultneamente# Podemos asi%na un campo a !anos .7/ % upos de modi,icaci)n# Atri'utos de Diccionario= For at= (denti,ica el tipo de datos del campo# 4ete mina el cBeGueo Gue eali5a el sistema en la ent ada de los datos# Fr DIC&.= *l sistema ellena este at i'uto en el caso de Gue el campo lo Ba0amos c eado a pa ti de un campo del dicciona io de datos# 1odi$ic.= *l sistema ellena este campo si detecta al%una di,e encia ent e la de,inici)n del campo en el dicciona io de datos 0 su utili5aci)n en pantalla# Con-. E+it= Si Gue emos utili5a una utina de con!e si)n de datos no estnda - especi,icamos aGu& el c)di%o de esta# Para . ID= C)di%o del pa met o S*g<C*$# .=e si%uiente at i'uto/ SE& para )E& para = @os pa met os SPA .Set Pa amete / 0 )PA .Cet Pa amete /- nos pe miten !isuali5a !alo es po de,ecto en campos# Si ma camos el at i'uto S*$ para ; el sistema %ua da en un pa met o (4 lo Gue ent emos en este campo# Si ma camos el at i'uto )E& para - el sistema iniciali5a el campo- con el !alo del pa met o (4 Gue ten%a asi%nado en el at i'uto ante io # Ap../lo_er= *l sistema no con!ie te la ent ada a ma0Dsculas# F/o te plate= 6a camos este at i'uto si Gue emos Gue los ca acte es especiales se t aten como te;tos lite ales#

Forei!n We#= Si Gue emos Gue so' e el campo el sistema ealice un cBeGueo de cla!e e;te na# .+a0 Gue de,ini p e!iamente las cla!es e;te nas en el dicciona io de datos/# Atri'utos de pro!ra a = Input $ield = Campo de ent ada# 7utput $ield= Pe mite !isuali5aci)n# Se puede utili5a en com'inaci)n con el ante io # 7utput onl# = S)lo !isuali5aci)n# Re8uired $ield = At i'uto pa a campos o'li%ato ios# Se distin%uen con un [# Poss. Entr#= *l sistema ma ca este at i'uto si Ba0 un con9unto de !alo es pa a el campo# 3o es posi'le modi,ica el contenido del at i'uto# Poss. Entries= (ndica como podemos !e la ,lecBa de ent adas posi'les en un campo# Ri!*t-%usti$= Nusti,ica cualGuie salida del campo a la de ecBa# (eadin! .ero= Rellena con ce os po la i5Guie da en el caso de salidas num icas# U-entr# = Pe mite la ent ada de un aste isco en la p ime a posici)n de un campo# Si se int oduce un T se pod Bace un t atamiento en un m)duloJ F(*@4 6O4A@* O3 T-(3PA$# 9o reset= Cuando acti!amos este at i'uto- la ent ada de datos no pod se cancelada mediante el ca cte b# Atri'utos de -isuali.acin= c Fi+ed $ont J =isuali5a un campo de salida en un tama1o ,i9o .no p opo cional/# S)lo se puede utili5a en campos Output onl0# c a a Bri!lit = =isuali5a un campo en colo intenso# In-isi'le= Oculta un campo# 6-di ensJ =isuali5a un campo en dos di!isiones en !e5 de en t es#

4.3 (!ica de proceso de una pantalla. 4.3., Introduccin a la l!ica de proceso. Ana !e5 Bemos de,inido % ,icamente las pantallas- se p eciso esc i'i una l)%ica de p oceso pa a cada una de ellas- pasndose a denomina d0np os# Pa a int oduci la l)%ica de p oceso de las pantallas- utili5a emos una !e si)n especial del edito de ABAP/7# Coto -Y FloH lo%ia# @a l)%ica de p oceso de las pantallas tienen una est uctu a dete minada- 0 utili5an comandos 0 e!entos p opios de mane9o de pantallas- simila es a los utili5ados en ABAP/7# Consisti en dos e!entos ,undamentalesJ PR7CESS BEF7RE 7A&PA& 3PB74. PR7CESS AF&ER I9PA& 3PAI4. *l PB7- se el e!ento Gue se e9ecuta p e!iamente a la !isuali5aci)n de la pantalla- mient as Gue el PAI- se e9ecuta despus de la ent ada de datos del usua io en la pantalla# Adems de estos dos e!entos o'li%ato ios- e;isten e!entos pa a cont ola las a0udas- PR7CESS 79 :E(P-REKAES& 3P7:4; 0 pa a cont ola los !alo es posi'les de un campo PR7CESS 79 >A(AE-REKAES& 3P7>4. 4esde la l)%ica de p oceso de las pantallas no se actuali5an datos- Dnicamente se llama a a los m)dulos del module pool Gue se enca %an de esta ta ea#
SCR**3 PA(3$*R .F@OK @OC(C/ PROC*SS B*FOR* OA$PA$ 6O4A@* (3(R=AR#

6O4A@* POO@
PROCRA6 Q;;;;;;# $AB@*SJP 6O4A@* (3(R=AR OA$PA$# P *346O4A@*#

PROC*SS AF$*R (3PA$# 6O4A@* $RA$AR=AR# 6O4A@* $RA$AR=ARR(3PA$# P *346O4A@*#

4.3.6 Process Be$ore 7utput 3PB74.

*n el 6)dulo PBO- indica emos todos los pasos Gue Gue emos eali5a antes de Gue la pantalla sea !isuali5ada- como po e9emplo iniciali5a los campos de salida- *sta iniciali5aci)n se eali5a en un m)dulo independiente dent o del module poolPa a llama a un m)dulo utili5a emos la sentencia 17DA(E. 17DA(E Bno 're *9emplo J PROC*SS B*FOR* OA$PA$# T 6O4A@* iniciali5a Rcampos# T PROC*SS AF$*R (3PA$# oduloC.

*n el 6odule pool el c)di%o del m)dulo empe5a con la sentenciaJ 17DA(E Bno 'reI oduloC 7A&PA&. *n el caso de se un m)dulo llamado desde el PA( se J 17DA(E Bno 're-inoduloC I9PA&. 4ent o del module pool decla a emos los campos de pantalla Gue !a0amos a utili5a 0 en el m)dulos del PBO los iniciali5amos al !alo Gue Gue amos# Si no iniciali5amos e;pl&citamente- el sistema le asi%na su !alo inicial po de,ecto- a no se Gue lo Ba0amos de,inido como pa met o SPA / CPA# Adems de iniciali5a los campos de ent ada de datos- el e!ento PBO- puede se utili5ado pa a J Selecciona el Status .menD/ o el t&tulo de los menDs conJ SE& PF-S&A&AS B)AIIstatusC. SE& &I&(EBAR BtituloC FI&: Bp,C Bp6C Bp3C Bp4C. 4esacti!a ,unciones de un menD con = SE& PF-S&A&AS B)AI-statusC EHC(ADI9) B$unction-codeC. Si se Guie e desacti!a ms de una ,unci)n- se le indica en el *MC@A4(3Cuna ta'la inte na con los c)di%os de ,unci)n Gue Gue emos desacti!a # @a est uctu a de la ta'la inte na se J 4A$AJ B*C(3 OF ta'int OCCARS "2FA3C$(O3 .7/-

*34 OF ta'int# 6odi,ica los at i'utos de la pantalla en tiempo de e9ecuci)n# Pa a ello disponemos de la ta'la SCREE9; donde cada ent ada se co esponde a un campo de la pantalla Gue puede se le&da 0 modi,icada con @OOP\s 0 6O4(FI\S# @a est uctu a de la ta'la SCR**3 es J 3A6* 32 CROAP1 3 CROAP" 3 CROAP3 3 CROAP7 3 AC$(=* 1 R*QA(R*4 1 (3PA$ 1 OA$PA$ 1 (3$*3S(F(*4 1 (3=(S(B@* 1 @*3C$+ 1 R*QA*S$ 1 =A@A* +*@P 1 4(SP@AIR34 1 3om' e del campo de pantalla# Campo pe tenece al % upo de campo 1# Campo pe tenece al % upo de campo "# Campo pe tenece al % upo de campo 3# Campo pe tenece al % upo de campo 7# Campo !isi'le 0 listo pa a ent ada de datos# *nt ada de datos o'li%ato ia# Campo apto pa a ent ada de datos# Campo s)lo !isuali5aci)n# Campo en colo intensi,icado Campo in!isi'le# @on%itud de salida educida# Campo con =alo es posi'les disponi'les Campo con +elp disponi'le# Campo t idimensional

(niciali5a adio-'uttons 0 cBecL-'o;es# @os decla a emos como ca acte es de lon%itud 1 0 los iniciali5amos comoJ Radio1 W EMF CBecL1 W EMF#

*n el caso de los adio-'uttons- Gue pueden ,unciona en % upo- de ,o ma Gue la acti!aci)n de un 'ot)n desacti!e ot o- no se necesa io codi,ica este compo tamiento manualmente- 0a Gue lo eali5a el sistema automticamente# Pa a de,ini un % upo de adio-'uttons- seleccionamos los 'otones del % upo 0 ma ca J Edit -C Radio Button )roup. *n caso de utili5a el edito Al,anum ico J Seleccionamos el p ime o'9eto de % upo- esco%e # Edit -C )rap*ical ele ent; Selecciona el Dltimo o'9eto del % upo 0 pulsa J De$ine )rap* !roup. Pa a utili5a su'sc eens se necesa io eali5a las llamadas a las mismas en tiempo de PBO 0 de PA(# PROC*SS B*FOR* OA$PA$# CA@@ SABSCR**3 X eaY (3C@A4(3C Xp o% amaY Xsc eenY# PROC*SS AF$*R (3PA$# CA@@ SABSCR**3 X eaY#

4ondeJ

B/reaC = es el nom' e Glie le Bemos dado al ea de sul/sc ecii en el Sc een Painte # Bpro!ra aC = *s el nom' e del p o% ama Gue cont ola el su'sc een# BscrcenC = *s el nDme o de pantalla#

@a su'sc een se e9ecuta como una pantalla no mal 0 co iente con su PBO 0 PA( co espondiente Gue son llamados desde el PBO 0 el PA( de la pantalla p incipal# Pa a manipula la posici)n del cu so # Po de,ecto el sistema sitDa el cu so en el p ime campo de ent ada de la pantalla- pe o es posi'le Gue Gue amos situa lo en ot o campoJ SE& CARS7R FIE(D Bno 'reIca poC. $am'in es posi'le Gue en al%Dn momento sea inte esante conoce en Gu campo est situado el cu so # Pa a Bace esto utili5amosJ )E& CARS7R FIE(D B-arIca poC. 4.3.3 Process A$ter Input 3PAI4. *l PROC*SS AF$*R (3PA$ se acti!a cuando el usua io selecciona al%Dn punto de menD- pulsa al%una tecla de ,unci)n o pulsa *3$*R# Si al%uno de estos e!entos ocu e- el PA( de la pantalla necesita n esponde ap opiadamente a la ,unci)n seleccionada po el usua io#

4.3.3., (a -alidacin de los datos de entrada. Ana de las ,unciones ms impo tantes del P oces A,te (nput- es la de -alidar los datos de entrada de la pantalla antes de se usados# *;isten dos tipos de !alidaci)n de los datos de ent adaJ An c*e8ueo auto /tico eali5ado po el sistema 0 un c*e8ueo anual p o% amado con el comando FIE(D de la l)%ica de p oceso de d0np os# C*e8ueo auto /tico. *l sistema eali5a automticamente una se ie de cBeGueos de los datos de ent ada- antes de p ocesa el e!ento PA(# Po e9emplo el sistema !alida Gue se int odu5can aGuellos campos Gue sean o'li%ato ios- Gue el ,o mato de los datos sea el co ecto 0 Gue el usua io int odu5ca un !alo co ecto en el campo .si en el dicciona io de datos Ba0 cla!es e;te nas o !alo es ,i9os pa a un campo/# Si el cBeGueo automtico detecta al%una inconsistencia- el sistema o'li%a al usua io a int oduci nue!amente un !alo en el campo e )neo#

*s posi'le Gue en al%una ocasi)n el usua io Guie a sali de la pantalla sin necesidad de pasa las !alidaciones automticas .Po e9emplo utili5ando las ,unciones estnda es BAC[- *M($ o CA3C*@/# *n ese caso utili5a emos la clusula A& EHI& C711A9D de la inst ucci)n 6O4A@*# 17DA(E B odulo-ABAPC A& EHI&-C711A9D. Con A$ *M($ CO66A34- podemos i a un m)dulo de ABAP/7 antes de Gue el sistema ealice las !alidaciones automticas pa a un campo. Pa a pode utili5a un A$ *M($ CO66A34 en un 'ot)n un campo- se necesa io asi%na el !alo E en el at i'uto de campo Fct&#pe del edito de pantallas o en las ,unciones del 6enD Painte # *n el m)dulo Gue llamamos inclui emos las inst ucciones necesa ias pa a pode sali de la t ansacci)n o de la pantalla en p oceso- po e9emplo pa a sali de la t ansacci)n utili5a emos (EA>E &7 SCREE9 5.

C*e8ueo 1anual. Adems del cBeGueo automtico es posi'le eali5a una !alidaci)n ms e;tensa de los !alo es de ent ada a los campos con las inst ucciones FIE(D 0 C:AI9 de la l)%ica de p oceso del Sc een painte # Con F(*@4 podemos !alida un campo 0 con C+A(3 P F(*@4 ,1 P F(*@4 ,1 P *34C+A(3 podemos !alida ms de un campo en el mismo p ocedimiento de cBeGueo# Con FIE(D podemos !alida indi!idualmente cada campo- de ,o ma Gue en caso de e o - la si%uiente ent ada de datos s)lo pe miti int oduci el campo e )neo so' e el Gue estamos utili5ando la inst ucci)n F(*@4# 4ependiendo del tipo de sentencia F(*@4 Gue utilicemos- el mecanismo de cBeGueo se eali5a en la l)%ica de p oceso del Sc een painte o en un m)dulo ABAP/7# *s posi'le eali5a distintas !alidaciones de un campo de ent ada dependiendo de la ,uente con la Gue cont astamos los !alo es posi'les# As& podemos cBeGuea el contenido de un campo compa ndolo con una ta'la de la 'ase de datos- con una lista de !alo es- o eali5ando la !alidaci)n en un m)dulo del module pool# Pa a c*e8uear un ca po contra la 'ase de datos utili5amos J FIE(D Bca poIpantallaC SE(EC& FR71 Bta'laC F:ERE Bca poIta'laC D BentradaIca poIpantallaC.

Si no se encuent an e%ist os en el dicciona io de datos el sistema emite un mensa9e de e o estnda # *;iste una !e si)n ampliada de la inst ucci)n ante io Gue pe mita en!ia mensa9es o Ha nin%s en caso de Gue encuent e o no e%ist osJ FIE(D Bca poIpantallaC SE(EC& U FR71 Bta'laC F:ERE BcondicinC F:E9E>ER 397&4 F7A9D SE9D ERR7R1ESSA)E / FAR9I9) Bnu eroC FI&: Bca poIte+toC. Pa a c*e8uear un ca po respecto una lista de -alores utili5amosJ FIE(D Bca poIpantallaC >A(AES 3BlistaI-aloresC4. 4onde Blista de -aloresC puede se J 3MB-alorCM4 397& MB-alorCM4 3MB-alorlCM; MB-alor6CM;...97& MB-alornCM4 3BE&FEE9MB-alorlCMA9DMB-alor6CM4 397& BE&FEE9MB-alorlCMA9DMB-alor6CS4 Si el !alo ent ado po el usua io no co esponde a nin%Dn !alo de la lista- el sistema emite un mensa9e de e o # Pa a c*e8uear un ca po en un odulo de ABAP/4 utili5amos J

FIE(D Bca poIpantallaC 17DA(E B odulo ABAP/4C. $am'in es posi'le condiciona la e9ecuci)n de los m)dulos ABAP/7 J # F(*@4### 6O4A@*#### 79 I9PA& = Se e9ecuta el m)dulo si el campo tiene un !alo distinto del inicial .distinto de 'lancos o ce os/# # F(*@4### 6O4A@*#### 79 C:AI9 I9PA& = Se e9ecuta el m)dulo si al%Dn campo del C+A(3 tiene un !alo distinto del inicial# # F(*@4###6O4A@*#### 79 REKAES& =Se e9ecuta el m)dulo si el campo Ba sido cam'iado desde su !isuali5aci)n en pantalla# AunGue le demos el !alo inicial# # F(*@4### 6O4A@*#### 79 C:AI9 REKAES& = Se e9ecuta el m)dulo si el al%Dn campo a del C+A(3 Ba sido cam'iado desde su !isuali5aci)n en pantalla# #F(*@4P6O4A@*P79 U-I9PA&J Se e9ecuta el m)dulo si el usua io int oduce un T en el campo 0 el campo tiene el at i'uto T-entr#.

#F(*@4P6O4A@*P A& CARS7R SE(EC&I79J Se e9ecuta el m)dulo si el campo Ba sido seleccionado# Con C+A(3 podemos cBeGuea mDltiples campos simultneamentecom'inndolo con la inst ucci)n F(*@4# @a inst ucci)n C+A(3 ### *34C+A(3 encie a un con9unto de inst ucciones F(*@4- en caso de e o en la ent ada de al%uno de ellos todos los campos del C+A(3 se pod n modi,ica - mient as Gue los Gue no pe tene5can al C+A(3 esta n 'loGueados pa a la ent ada de datos# *9emplosJ C:AI9. FIE(D Bca po,C;Bca po6C; Bca po3C. 17DA(E B od,C. 17DA(E B od6C. E9DC:AI9. C:AI9 FIE(D Bca po,C;Bca po6C. 17DA(E B od,C. FIE(D Bca po3C 17DA(E B od6C 79 C:AI9 I9PA& E9DC:AI9# 4.3.3.6 Respondiendo a los cdi!os de $uncin. Cuando el usua io de una t ansacci)n- pulsa una tecla de ,unci)n- un punto de menD- un pusB'utton- un icono o simplemente la tecla *3$*R- los datos int oducidos en la pantalla se pasan a los m)dulos del PA( pa a se p ocesados 9unto a un c)di%o de ,unci)n Gue indica Gu $uncin Ba solicitado el usua io# *n el Sc een Painte - se necesa io c ea un campo de tipo c)di%o de ,unci)nO[- .de lon%itud 8/- Gue no malmente apa ece al ,inal de la lista de campos de cada pantalla# $ adicionalmente a este campo se le denomina 7@IC7DE- 0 se decla ado en nuest o module Pool como cadena de ca acte es de 7 posicionesJ DA&A= 7@IC7DE344. *n la l)%ica de p oceso de cada pantalla- tend emos Gue eali5a el t atamiento del O[RCO4*# Pa a ello utili5a emos un m)dulo Gue de'e se el Dltimo del e!ento PA(- es deci Gue se e9ecuta una !e5 Gue todos los datos de ent ada Ban sido !alidados co ectamente#

*9emploJ @OC(CA 4* PROC*SO


PROC*SS B*FOR* OA$PA$

6O4A@* POO@
6O4A@* O[RCO4*# CAS* O[RCO4*#

P# PROC*SS AF$*R (3PA$# C+A3C*R4A$A# F(*@4 P 6O4A@* P 4(SP@AIR4OC# 6O4A@*P 6O4A@* O[RCO4*#

K+*3 EBAC[F# S*$ SCR**3 2# @*A=* SCR**3# K+*3 EC+3CF# P*RFOR6 K+*3 E4(SPF# P*RFOR6 K+*3 ECOPIF# CA@@ SCR**3 2"22# *34CAS*# C@*AR O[RCO4*# *346O4A@*#

Ana !e5 p ocesado el c)di%o de ,unci)n- 'o a emos el contenido del O[-CO4*iniciali5ndolo pa a la p );ima pantalla# Podemos %ua da el contenido del O[-CO4* en una !a ia'le inte media e iniciali5a lo inmediatamente#

4.3.3.3 Procesando Step loops. An Step loop es un con9unto de datos idnticos Gue son copiados epetidamentee inte actDan con el usua io como una ta'la# Se necesa io c ea el Step loop con el Sc een Painte - seleccionando los datos Gue Gue emos Gue ,o men pa te del Step @oop 0 seleccionando la opci)n \@oops\ del menD EeditF# 4ent o de los at i'utos de campos pe tenecientes al step loop- podemos actuali5a R(t#peS con el tipo del step loop .,i9o o !a ia'le/- donde el tipo !a ia'le si%ni,ica Gue el tama1o del step loop se a9usta se%Dn el tama1o de la pantalla- mient as Gue ,i9o no a9usta el step @oop 0 R(cntS con el nDme o de l&neas de step loop#
Poste io mente pod emos accede al contenido de los campos del step loop con las inst ucciones (77P... E9D(77P o (77P A&... E9D(77P# *nt e el @OOP 0 el *34@OO(\- es posi'le utili5a las inst ucciones de l)%ica de p oceso J F(*@4- 6O4A@*- =A@A*S- C+A(3- aunGue lo ms no mal es utili5a 6O4A@* pa a llama a un m)dulo ABAP/7 Gue t ate cada l&nea del step loop# Se necesa io codi,ica un @OOP en los e!entos PBO 0 PA( po cada step loop de la pantalla- 0a Gue pe miti la comunicaci)n ent e el p o% ama 0 la pantalla# Sinta;is J (77P. . . E9D(77P.

Pe mite mo!e se ent e las l&neas del step loop# *n un e!ento PBO- pe mite copia los campos del loop a la pantalla- mient as Gue en un PA(- los campos de pantalla son copiados en un ea de t a'a9o del p o% ama .como un e%ist o de ca'ece a/# Atili5a emos esta inst ucci)n si Gue emos utili5a nuest o p opio mtodo de sc ollin%# *n la !a ia'le del sistema S?-S&EP( tend emos el &ndice de la l&nea Gue estamos p ocesando actualmente#

*9emplo J TTT SCREE9 PAI9&ER; (7)ICA DE PR7CES7 UUU PROC*SS B*FOR* OA$PA$# @OOP# 6O4A@* @**RR$AB@AR(3$*R3A# *34@OOP# PROC*SS AF$*R (3PA$# @OOP# 6O4A@* 6O4(F(CAR$AB@A# *34@OOP#

TTT 17DA(E P77(UUU 6O4A@* @**RR$AB@AR(3$*R3A OA$PA$ (34 W BAS* Z SI-S$*P@#-1 R*A4 $AB@* (3$$AB (34*M (34# *346O4A@* 6O4A@* 6O4(F(CAR$AB@A (3PA$# (34WBAS* Z SI-S$*P@-1 6O4(FI (3$$AB (34*M (34# *346O4A@*

(77P A& Bta' internaC... E9D(77P#

Pe mite mo!e se ent e las l&neas del step loop- t ans,i iendo datos ent e una ta'la inte na 0 el step loop# Con este loop- apa ecen automticamente las 'a as de sc ollin%# *n el PBO- podemos utili5a J (77P A& Bta' -internaC CARS7R BndiceC 3FR71 B(IC &7 B(6C4. ... E9D(77P.

Con CARS7R indicamos cual es el p ime e%ist o de la ta'la interna Gue Gue emos !isuali5a # Si indicamos una !a ia'le--de p o% ama- el sistema la i actuali5ando con,o me nos !a0amos mo!iendo po el step loop# Con FR71 # &7 podemos cont ola !isuali5a emos# Po de,ecto se toda la ta'la# Gue po ci)n de la ta'la inte na

*n el PA(- podemos utili5a la inst ucci)n 6O4(FI .dent o de un m)dulo ABAP/7/- pa a modi,ica la ta'la inte na con los !alo es del ea de t a'a9o#

*9emploJ TTT SCREE9 PAI9&ER; (`)ICA DE PR7CES7 UUU PROC*SS B*FOR* OA$PA$# @OOP A$ ta'Rint FRO6 desde $O Basta CARSOR indice# *34@OOP# PROC*SS AF\F*R (3PA$# @OOP A$ ta'Rint 6O4A@* modi,Rta'Rint# *34@OOP# UUU 17DA(E P77( ABAP/4 TTT 6O4A@* modi,Rta'Rint 6O4(FI ta'Rint (34*M indice# *346O4A@* (77P A& Bta'laIBDDC... E9D(77P# Pe mite mo!e se ent e las l&neas del step loop- t ans,i iendo datos ent e una ta'la de 'ase de datos 0 el step loop# *n el sc een painte tend emos Gue de,ini los campos del step loop como campos de 'ase de datos# Si Gue emos actuali5a la 'ase de datos con contenido del step loop- tend emos Gue utili5a la sentencia J 17DIF? Bta'laC. de la l)%ica de p oceso dent o de un @OOP A$# *9emploJ PROC*SS AF$*R (3PA$# @OOP A$ Xta'RB44Y# 6O4(FI X ta'RB44Y# *34@OOP# 4.3.4 El Flu%o de la transaccin# 4esde una t ansacci)n podemos ir cont olando el ,lu9o de pantallas de la mismallama a ot as t ansacciones o a epo ts# Controlando la secuencia de pantallas. *;isten dos ,o mas de salta de pantalla en pantalla#

Po de,ecto- cuando aca'en todos los m)dulos del e!ento PA(- el sistema salta a la pantalla Gue indiGue el at i'uto 9e+t Screen de la pantalla en e9ecuci)n. *s posi'le modi,ica el at i'uto de p );ima pantalla con la inst ucci)n SE&. SE& SCREE9 Bno.IpantallaC. *;iste una ,) mula dinmica pa a llama a ot as pantallas- inte umpiendo as& la secuencia de pantallas desc ita mediante el at i'uto Next Screen Pa a ello utili5a emos la inst ucci)n CA(( SCREE9. CA(( SCREE9 B noIpantalla C. O CA(( SCREE9 B noIpantalla C. S&AR&I9) A& Bcolu naIinicioC BlineaIinicioC E9DI9) A& Bcolu naI$inC BlineaI$inC Con esta Dltima !e si)n del CA@@ SCR**3- podemos utili5a !entanas de tipo popup- indicndole las coo denadas de inicio 0 ,inal de la !entana- siemp e Gue sea ms peGue1a Gue una !entana no mal# $end emos en cuenta Gue cuando ,inalice la pantalla o con9unto de pantallas- Gue Bemos inco po ado mediante CA@@ SCR**3- la secuencia no mal de la t ansacci)n continua e9ecutndose desde el punto en Gue se de9)# @a mane a ms no mal de temina el p oceso de una pantalla e i di ectamente a e9ecuta ot a- es usando la inst ucci)n (EA>E. (EA>E &7 SCREE9 B no.IpantallaC. 2 SE& SCREE9 Bno.IpantallaC. (EA>E SCREE9. As&- una mane a de !ol!e a la secuencia de pantallas ante io a la utili5aci)n de una inst ucci)n CA@@ SCR**3 puede se J (EA>E &7 SCREE9 5# 2 SE& SCRFE9 5. (EA>E SCREE9.

*n caso de nin%Dn CA@@ SCR**3- estas inst ucciones ,inali5a n la e9ecuci)n de la t ansacci)n#

(la ando a un report desde una t ansacci)n# *;isten dos posi'ilidades pa a inclui epo ts en una t ansacci)n# 4ependiendo de la cantidad de in,o maci)n Gue la t ansacci)n ten%a Gue suminist a al epo t utili5a emos una u ot a posi'ilidad# *n el caso de Gue la t ansacci)n suminist e la ma0o &a de los datos del epo t utili5a emos la tcnica del (EA>E &7 I;IS&-PR7CESSI9); consistente en cam'ia el tipo de e9ecuci)n de modo dilo%o .t ansacciones/ a modo lista . epo ts inte acti!os/# (EA>E &7 (IS&-PR7CESSI9)# *l listado inte acti!o se e9ecuta mient as Gue el usua io no indiGue un comando *M($ o BAC[ en la lista 'sica o no se encuent e con una inst ucci)n pa a a'andona el listado inte acti!o- como po e9emplo (EA>E SCREE9. *l sistema automticamente !ol!e al PBO de la pantalla Gue esta'a p ocesando# *9emploJ CAS* O[RCO4* K+*3 \4(SP\# @*A=* $O @(S$ PROC*SS(3C# KR($*J /#### KR($*J /#### @*A=* SCR**3# #K+*3P# *34CAS*#

Si ent e el epo t 0 la t ansacci)n Ba0 pocos datos en comDn o el p oceso de epo tin% lo tenemos identi,icado en un p o% ama independiente- utili5a emos la inst ucci)n SAB1I&. SAB1I& Bno 'reIreportC 3A9D RE&AR94. Con el SAB6($- el epo t 0 la t ansacci)n no tienen el mismo ea de t a'a9o .@AK/- po tanto no compa ten datos 0 el Dnico inte cam'io de datos se p oduci mediante los pa met os de ent ada del epo t# Podemos inte cam'ia datos conJ SAB1I& Bno 'reIreportC FI&:... =e la A#uda 7nline del editor de ABAP/4 pa a o'tene ms in,o maci)n so' e como pasa pa met os a un epo t desde una t ansacci)n# (la ando a un dulo de $uncin desde una t ansacci)n#

4esde el modulo pool- tam'in es posi'le e9ecuta un m)dulo de ,unci)n de la misma ,o ma Gue lo Bacemos pa a un epo t- es deci - utili5ando la inst ucci)n CA(( FA9C&I79# *;isten mucBos m)dulos de ,unci)n especialmente dise1ados pa a t ansacciones# Po e9emploJ# CA(( FA9C&I79 MP7PAPI&7 I C79FIR1I(7SSI7FIDA&AM EHP7R&I9) &EH&(I9E, D &EH&-55, &EH&(I9E6 D &EH&-556 I1P7R&I9) A9SFER D REP(?. *sta ,unci)n te solicita con,i maci)n antes de a'andona una t ansacci)n sin Ba'e % a'ado p e!iamente los datos int oducidos# (la ando a otra transaccin desde una t ansacci)n# 4e la misma ,o ma Gue e;ist&an dos mtodos pa a cam'ia las pantallas de una t ansacci)n- e+isten dos ,o mas pa a llama a ot a t ansacci)n independiente de la t ansacci)n Gue se est e9ecutando# Si Gue emos Gue cuando $inalice la t ansacci)n- el sistema e9ecute ot a utili5a emos J (EA>E &7 &RA9SAC&I79 McodItransaccinM. Si en cualGuie momento Gue emos e9ecuta ot a t ansacci)n pa a poste io mente continua la e9ecuci)n de la p ime a- utili5a emos J CA(( &RA9SAC&I79McodItransaccinM. *n este caso el sistema c ea una @AK independiente a la ante io 0 en el caso de p oduci se un comando BAC[- el sistema eto na pa a e9ecuta la p ime a t ansacci)n# An caso t&pico es Gue e e9ecuta una t ansacci)n pe o e!itando int oduci los pa met os de ent ada de esta manualmente .es deci - saltando la p ime a pantalla/# *n ese caso usa emos la inst ucci)n J CA(( &RA9SAC&I79McodItransMA9D S@IP FIRS& SCREE9.

Pa a lo cual se imp escindi'le utili5a pa met os almacenados en memo ia- 0a sea mediante los at i'utos SE& .en la p ime a t ansacci)n/ 0 )E& .-en la t ansacci)n Gue llamamos/ o codi,icando e;pl&citamente las inst ucciones S*$-C*\(\ especti!amenteJ SE& PARA1E&ER IDMpara MFIEI;D Bca poC. )E& PARA1E&ER IDMpara MFIEI;D Bca poC.

7#3#8 Actuali.ando la 'ase de datos en una transaccin. $odas las ope aciones Gue se eali5an so' e la 'ase de datos no se e,le9an inmediatamente en 'ase de datos Basta Gue no se p oduce un p oceso de actuali5aci)n .C711I&/# *n el m'ito de las 'ases de datos# Se dice Gue el con9unto de todas las acciones e,e entes a 'ase de datos incluidas ent e dos commits se le denomina @AK .@o%ical Anit Ko L/ *;isten dos clases de actuali5aciones Co its internos .Gue se p oducen de ,o ma t anspa ente al p o% amado de la t ansacci)n/ 0 Co its SAP .actuali5aciones ,o 5adas po el p o% amado en el momento Gue lo c ea necesa io- po e9emplo en la Dltima pantalla de una t ansacci)n si no se Ba p oducido nin%Dn e o / Cuando se eali5an actuali5aciones de la 'ase de datos en una t ansacci)n- se de'e esco%e ent e una actuali.acin sncrona 0 una actuali.acin asncrona. Con una actuali5aci)n s&nc ona- la actuali5aci)n se p oduce en el mismo momento Gue el usua io lo solicita# *n una actuali5aci)n as&nc ona- el sistema % a'a en una cola las ope aciones Gue se de'an eali5a - 0 en un se%undo paso- este con9unto de ope aciones se p ocesa pa a i eali5ando las actuali5aciones# *n este caso- los tiempos de espuesta se n inmediatos- 0a Gue la ta ea de actuali5aci)n- Gue es la ms costosa en tiempo- se pospond pa a ot o momento# @as inst ucciones de actuali5aci)n de la 'ase de datos sonJ C711I& F7R@. Reali5a un update ,&sico de la @AK so' e la 'ase de datos# PERF7R1 BrutinaC 79 C711I&. Pe mite e9ecuta la X utinaY cuando el sistema encuent a un CO66($ KOR[# *sto nos pe mite concent a todas las actuali5aciones

de la 'ase de datos en un Dnico p ocedimiento- codi,icando todas las inst ucciones de 'ase de datos en la utina# R7((BAC@ F7R@. 4esBace todas las ope aciones eali5adas so' e la 'ase de datos Basta el Dltimo CO66($ KOR[# lNtlll<-a emos el RO(-@BAC[ KOR[ cuando ocu a al%Dn e o o cuando el usua io a'andona una t ansacci)n con un BAC[- CA3C*@ o *34 0 0a Bemos eali5ado al%una ope aci)n en 'ase de datos Gue de'amos desBace # CA(( FA9C&I79 B duloI$uncinC I9 APDA&E &AS@ Pe mite e9ecuta un m)dulo de ,unci)n en el momento Gue se Guie a actuali5a ,&sicamente en la B#4#4# *l m)dulo de ,unci)n de'e esta ma cado como m)dulo de update# Podemos distin%ui ent e di!e sos mtodos de actuali5aci)nJ 1#*l ms sencillo es codi,ica di ectamente las inst ucciones de 'ase de datosJ (3S*R$- 4*@*$*- 6O4(FI-### en el p o% ama p incipal de la t ansacci)n 0 ,inalmente eali5a un CO66($ KOR[ o espe a a Gue ,inalice una pantalla pa a Gue el sistema ealice un commit inte no .aunGue esto Dltimo no es mu0 ,ia'le/ Se Dnicamente !ia'le en t ansacciones de una Dnica pantalla# 6.Atili5a PERF7R1 BrutC 79 C711I& 0 utili5a la utina X utY pa a codi,ica las inst ucciones de 'ase de datos .(3S*R$- AP4A$*6O4(FI- 4*@*$*### / Atili5ando CA(( FA9C&I79 B odR$uncinC I9 APDA&E &AS@ los cam'ios so' e la 'ase de datos se eali5an en una ,ase as&nc ona .update tasL/- en el m)dulo de ,unci)n indicado cuando se p oduce un CO66($ KOR[#

3.-

@os datos Gue se actuali5an son los !alo es en el momento de Bace la llamada al m)dulo de ,unci)n 0 no los !alo es de cuando se e9ecute# 4.Atili5a una ,unci)n en AP4A$* $AS[ Gue se llama desde una utina Gue a su !e5 es llamada \O3 CO66($\# .mtodo as&nc ono/# *n este caso los !alo es de actuali5aci)n son los Gue e;istan p e!iamente a la actuali5aci)n ,&sica#

=e el Cap&tulo MFritin! Dialo! pro!ra s in ABAP/4 = Data'ase Inter$aceM del manual MBC ABAP/4 Aser *and'ooWM; pa a o'tene ms in,o maci)n so' e como eali5a los p ocesos de actuali5aci)n en las t ansacciones SAP# 7#3#: El 'lo8ueo de datos en SAP# Pa a coo dina el acceso de distintos usua ios a los mismos datos- 0 pa a e!ita posi'les inconsistencias en las actuali5aciones- SAP dispone de un mtodo inte no de '(oGueo- de ,o ma Gue Dnicamente un usua io pod p ocesa un o'9eto de datos de la p ime a pantalla de una t ansacci)n a la Dltima# Pa a implementa los 'loGueos es necesa io utili5a o'9etos de 'loGueo- Gue pueden esta compuestos de un e%ist o de una cie ta ta'la o de una colecci)n de e%ist os de una o !a ias ta'las# @os o'9etos de 'loGueo se de,inen 0 se acti!an desde el dicciona io de datos# *n el momento Gue se acti!an- el sistema c ea dos m)dulos de ,unci)n Gue pe miten 'loGuea o des'loGuea los o'9etos Gue se Ban especi,icado# E9KAEAEIBo'%etoIdeI'lo8ueoC. DEKAEAEI-Bo'%eto-de-'lo8ueoC. *n el desa ollo de t ansacciones- pa a 'lo8uear un o'9eto- llama emos a la ,unci)n E9KAEAE-IBo'%eto-de-'lo8ueoC en el e!ento PA( de la p ime a pantalla# *s posi'le comp o'a el esultado del 'loGueo comp o'ando si estn acti!as las e;cepciones de este m)dulo de ,unci)n# F7REI)9I(7C@ S?S&E1IFAI(ARE J Si el o'9eto est 'loGueado po ot o usua io# J * o del sistema#

6ient as Gue pa a des'lo8uear un o'9eto 'asta con utili5a la ,unci)n DEKAEAEIBo'%etoIdeI'lo8ueoC. 4.3.N A#udas pro!ra adas. E-entos P7: # P7>. *s posi'le p o% ama nuest as p opias a0udas pa a la ent ada de datos en los campos. Pa a ello utili5a emos los e!entos PR7CESS 79 :E(P-REKAES& 3P7:4 pa a las a0udas con F, 0 PR7CESS 79 >A(AE-REKAES& 3P7>4 pa a las a0udas de F4 ent adas posi'les# Si el usua io pulsa Fl o F7- el sistema no acti!a el e!ento PROC*SS AF$*R (3PA$- pe o si el co espondiente e!ento de a0uda# PR7CESS 79 :E(P-REKAES&3P7:4. (ndicamos en una inst ucci)n F(*@4- el elemento de datos del dicciona io- del cual Gue emos o'tene la a0uda so' e un campo de pantalla#

FIE(D Bca poC FI&:Bele IdatosCL. FIE(D Bca poC FI&:B-arC. 4onde X!a Y es una !a ia'le Gue contiene un elemento de datos#

PR7CESS 79 >A(AE-REKAES& 3P7>4. (ndicamos en una inst ucci)n F(*@4- el m)dulo donde !amos a t ata los !alo es posi'les- Gue sustitu0e a la a0uda de SAP- pa a un campo de pantalla# FIE(D Bca poC 17DA(EB duloC

< Creacin de nue-as ta'las en el Diccionario de Datos


<.,- El proceso de creacin de una ta'la. *l p oceso de c eaci)n de una ta'la de 'ase de datos en el dicciona io de datos consta de una se ie de pasos J C ea el o'9eto $AB@A *speci,ica los campos de la ta'la# 4e,ini los elementos de datos 0 dominios de la ta'la# *speci,ica los &ndices- cla!es e;te nas 0 pa met os tcnicos# Acti!a la ta'la# *nt a en al ABAP/4 Dictionar#; indica el nom' e de la ta'la Gue !amos a c ea 0 selecciona MCreateM. .*mpe5a po Q/# (nt oduci una desc ipci)n ' e!e de la ta'la# (nt oduci un Mdeli-er# classM; Gue indica el % ado de esponsa'ilidad Gue tiene SAP o el cliente so' e la ta'la# 3o malmente utili5a emos el tipo A Gue co esponde a la ta'las de aplicaci)n .datos maest os o de t ansacci)n- es

deci Gue se %ene an !&a t ansacciones SAP/# Podemos !e la utilidad del esto de posi'ilidades- .C-C-@-*-S-K/ pulsando Fl so' e este campo# *nt a el no 're de los ca pos de la ta'la en la columna MField na eM. Selecciona los campos Gue Gue emos Gue ,o men pa te de la cla-e pri aria de la ta'la# (nt oduci el ele ento de datos de cada campo J Si este 0a e;iste en el 4icciona io de datos- la in,o maci)n del mismoapa ece automticamente# Si el elemento de datos no e;ist&a en el dicciona io de datos- con do'le-clicL podemos i al mantenimiento de elementos de datos pa a c ea lo en ese momento# Selecciona el ,la% hinitiali - si los campos de'en se iniciali5ados con sus !alo es iniciales# Si Gue emos pe miti el mantene la ta'la desde la t ansacci)n de mantenimiento de ta'las .S631/- lo indica emos acti!ando el ,la% Mta'le aintenance allo_edM. Si Gue emos Gue la ta'la Gue estamos c eando dependa del mandanteinclui emos el campo 1A9D& como el p ime campo de la ta'la# *s posi'le especi,ica pa met os de tipo tcnico como el tipo de datos Gue almacena la ta'la- el tama1o ap o;imado- ###etc# desde J )oto -C tec*nical Settin!s. Finalmente- % a'a emos los datos int oducidos# <.6. (as cla-es $or/neas. Si un campo de la ta'la tiene un dominio cu0o an%o de !alo es est de,inido po una ta'la de !alo es- se necesa io de,ini las cla!es ,o neas .e;te nas/ con dicBa ta'la de !alo es e indica con un T en la columna MC*ecW ta'leM. Pa a ello J Seleccionamos el campo con ta'la de cBeGueo# Seleccionamos )oto -C Forei!n @e## (nt oduci $e;to de la cla!e ,o nea# C)di%o de la ta'la de cBeGueo#

Asi%naci)n del campo .Cen ico o Constante/# CBeGueo del campo en las pantallas# 6ensa9e de e o Gue sustitu0e al mensa9e estnda de e o cuando se int oduce un !alo Gue no e;iste en la ta'la de cBeGueo# Ca dinalidad# 4esc i'e la elaci)n con especto al nDme o de e%ist os dependientes ent e las ta'las .1JC- 1JC3- 1J3- 1J 1/ $ipo de campo de cla!e ,o nea# Se necesa io de,ini las cla!es e;te nas si Gue emos Gue el cBeGueo automtico de las pantallas ,uncione co ectamente#

<.3 7tras posi'ilidades en la creacin de ta'las. Si Bemos ma cado la posi'ilidad de pode mantene el contenido de la ta'la desde la t ansacci)n S631- se necesa io Gue e9ecutemos un p oceso de %ene aci)n de dicBo mantenimiento# Pa a Bace lo de'emos selecciona #- En-iron ent -C )en. 1aint. Dialo!.# (nt oduci emosJ *l % upo de ,unciones pa a el mantenimiento de ta'las# *l % upo de auto i5aciones pa a el mantenimiento de ta'las# *l tipo de mantenimiento Gue Gue emosJ 4e una pantalla# 4e dos pantallas# Ana pantalla con lista de e%ist os 0 ot a con !alo es indi!iduales# *l nDme o de 40np o.s/ Gue Gue emos asi%na a la.s/ pantalla.s/# *l &ndice p ima io se c ea cuando una ta'la es acti!ada# Ba9o cie tas ci cunstancias es posi'le Gue sea ecomenda'le a0uda a la selecci)n de datos con ndices secundarios. Pa a de,ini &ndices secunda ios i aJ )oto -C Indices. Finalmente- antes de pode utili5a una ta'la c eada po nosot os- se necesa io eali5a un p oceso de AC&I>ACI79.

Potrebbero piacerti anche