Top Banner

of 134

[Abap] Abap4 Manual - Curso

Jun 03, 2018

Download

Documents

Manuel Sabido
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
  • 8/12/2019 [Abap] Abap4 Manual - Curso

    1/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    2/134

    Parte I.- Introduccin a SAP R/3

    1- Introduccin a SAP R/3Qu es SAP R/3?Componentes de SAP R/3

    Aplicaciones FuncionalesSistema BsicoSistema Opeati!o

    "#- Caractersticas de SAP R/3Sistema Cliente-Se!ido$ecnolo%&a de Sistemas A'ietos(nte%aci)n de Aplicaciones*ntono de desaollo+eamientas paa la con,i%uaci)n del sistema

    Se!icio de Sopote Fomaci)n consulto&a e implantaci)n . OSS *uo 0 Ao "222

    3#- Entorno de Desarrollo ABAP/4Po%amaci)n

    a!e%aci)n4e'u%%in%O%ani5aci)n del desaolloConcepto de 6andanteConcepto de $ansacci)n

    7#- Aplicaciones del ABAP/4Qu es ABAP/7?Repotin% . Clsico e (nteacti!o Po%amaci)n de dilo%o o tansacciones . diseo de pantalla Otas aplicaciones6odulai5aci)n

    Parte II.- Introduccin a ABAP/4

    8#- Fundaentos de la pro!raacin de Reports8#1 $ipos de (nstucciones8#" O'9etos de datos8#3 *stuctua de un po%ama

    ".- Declarando # procesando datos:#1 $ipos de campos:#" 4eclaaci)n de campos:#3 Asi%nando !aloes:#7 Con!esi)n de tipo

    :#8 Opeaciones aitmticas en ABAP/7:#: Pocesando campos de tipo te;to:#< =aia'les del sistemas

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    3/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    4/134

    17#7 *lementos de te;to 0 mensa9es

    18#- Field S#'ols

    1:#- Batc* Inputs1:#1 (ntoducci)n1:#" Fase de %eneaci)n del Batc (nput

    1:#"#1 Sistema e;teno1:#"#" *l po%ama Batc (nput1:#"#3 *l ,iceo de colas

    1:#3 Fase de pocesado de una sesi)n1:#7 Conse9os pcticos en la utili5aci)n de Batc (nputs1:#8 Codi,icaci)n de Batc (nputs

    1

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    5/134

    3#: 6enDs de Am'ito de ea

    7#- Dise0o de Pantallas Screen Painter Release 3.5 7#1 (ntoducci)n al diseo de pantallas

    7#" 4iseo de pantallas7#"#1 tili5ando el Sceen Painte7#"#" Ceando o'9etos en la pantalla7#"#3 Ceando o'9etos desde el diccionaio de datos7#"#7 4e,iniendo los ati'utos indi!iduales de cada campo

    7#3 @)%ica de poceso de una pantalla7#3#1 (ntoducci)n a la l)%ica de poceso7#3#" Pocess Be,oe Output . PBO 7#3#3 Pocess A,te (nput . PA(

    7#3#3#1 @a !alidaci)n de los datos de entada7#3#3#" Respondiendo a los c)di%os de ,unci)n

    7#3#3#3 Pocesando Step loops7#3#7 *l ,lu9o de la tansacci)n7#3#8 Actuali5ando la 'ase de datos en una tnsacci)n7#3#: *l 'loGueo de datos en SAP7#3#< A0udas po%amadas# *!entos PO+ 0 PO=

    8#- Creacin de nueas ta'las en el diccionario de datos8#1 *l poceso de ceaci)n de una ta'la8#" @as cla!es ,oneas8#3 Otas posi'ilidades en la ceaci)n de ta'las

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    6/134

    Introduccin

    aSAP R/3

    , Introduccin a SAP R/3

    SAP R/3 es un sistema empesaial inte%ado diseado paa a0uda a las o%ani5aciones ae9ecuta pocesos empesaiales como %estiona in!entaios cea solicitudes pocesa

    pedidos de !enta pa%a ,actuas etc# SAP R/3 a'aca un amplio especto de pocesosempesaiales#

    SAP R/3 popociona un sistema Dnico inte%ado de %esti)n de las necesidades comDn atodos los depatamentos de una copoaci)n# *sa inte%aci)n es la %an !enta9a Gueapota SAP R/3# Adems como SAP R/3 es un sistema 'asado en cliente-se!ido su!esatilidad es aDn ma0o#

    SAP R/3 consiste en una seia de eas de aplicaci)n las cuales estudiaemos msadelante#CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    7/134

    4esde el punto de !ista ,uncional 0 de su aGuitectua tcnica SAP R/3 puede de,inisecomo un so,tHae a'ieto 'asado en la tecnolo%&a cliente-se!ido diseado paamane9a las necesidades de in,omaci)n de una empesa#

    Se tata de un paGuete de so,tHae estnda . en contaposici)n al desaollo a medida Gue puede modela los pocesos de ne%ocios de una empesa en su popio modelo dedatos#

    @os ni!eles o componentes del SAP R/3 0 la ,unci)n Gue eali5an estn epesentadosdento de la elipse#

    AP@(CAC(O*S R/3

    (=*@ FC(OA@

    S(S$*6A BAS(CO

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

    I R*4

    S

    AP

    ,

    6

    3

    Coponentes de SAP R/3

    , .-Aplicaciones $uncionales ente las cuales mencionaemos las si%uientesJ

    F( - 6odulo de Conta'ilidad#(6 - 6odulo de esti)n de (n!esiones#CO - 6odulo de Costes#+R - 6odulo de Recusos +umanos#S4 - 6odulo de =entas 0 4isti'uci)n#66 - 6odulo de esti)n de 6ateialesPP - 6odulo de Poducci)n#

    PS - 6odulo de Po0ectos#$R - 6odulo de $esoe&a#Q6 - 6odulo de Calidad#P6 - 6odulo de 6antenimiento#(S - 6odulo de Soluciones Sectoiales#KF - 6odulo de KoL FloH

    6.- Sistea 'sico es el enca%ado de la inte,a5 ente el sistema opeati!o 0 lasaplicaciones R/3 inclu0endo componentes tales como el entono de desaollo ABAPeamientas de administaci)n del sistema mane9o de 9o's autoi5aciones etc#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    8/134

    3 .- Sistea 7peratio %esti)n de la 'ase de datos 0 la ed cu0o so,tHae !ieneincluido en SAP R/3#

    6 Caractersticas de SAP R/3

    SAP R/3 o,ece paa %estiona los distintas ,unciones de una empesa las si%uientescaacte&sticasJ

    Sistea Cliente - Seridor

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    9/134

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

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

    S*R=(4OR*S 4* PR*S*$AC(O

    PCs

    Ar8uitectura Cliente- Seridor

    Sistea Cliente Seridor.- en la computaci)n cliente-se!ido una pate delpocesamiento se e9ecuta en el PC de so'emesa . cliente 0 la ota en computadoascentales compatidas . se!idoes # @a pesentaci)n 0 el pepocesamiento se e9ecutanen el PC la in,omaci)n se almacena en los se!idoes#

    Seridor Base de Datos.-*ste es el se!ido cental Gue contiene la 'ase de datos . elsistema de %esti)n de 'ase de datos 0 se conoce %enealmente como se!ido de 'asede datos#

    Seridor de Aplicaciones.- Contienen la l)%ica de poceso del sistema inclu0endo

    se!icios como el de impesi)n peticiones de usuaio se!icios paa pocesa los 9o's de,ondo etc#

    Seridores de Presentacin.- $aeas elacionadas con la inte,ace usuaio 0 lapesentaci)n de datos . nomalmente PCs #

    @a comunicaci)n ente los tes ni!eles anteioes se eali5a mediante el potocoloestnda $CP/(P#

    &ecnolo!a de Sisteas A'iertos

    Si%ni,ica Gue la aplicaciones pueden ,unciona so'e mDltiples sistemas opeati!os. (M K(4OKS $ AS722 etc# 0 %estoes de 'ases de datos . ORAC@*(FOR6(M A4ABAS etc# siendo el c)di%o ,uente de las aplicaciones ABAPcompletamente eutili5a'les 0 tanspota'les ente los distintos sistemas#

    SAP sopota mucas ( . inte,aces %,icas de usuaio tales como KindoHs 3#11KindoHs 8 KindoHs > KindoHs $ 6acintos etc# @a ( diseada po SAP esla SAP ( 0 esta oientada a !entanas 'otones iconos 'aas de menD 'aas deeamientas etc#

    Inte!racin de Aplicaciones

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    10/134

    $odas las aplicaciones R/3 estn inte%adas 0 elacionadas con capacidad de acelo entiempo eal es deci la in,omaci)n se actuali5a constantemente# Que si%ni,ica estoJcualGuie cam'io Gue se ealice po e9emplo en una 'ase de datos se e,le9ainmediatamente en todos los componentes de SAPJ sceen painte menu paintediccionaio etc#

    Entorno de desarrollo

    (nclu0e todas las eamientas necesaias paa el diseo 0 desaollo de po%amaspantallas menDs m)dulos de ,unciones etc# Contiene tam'in ,unciones paa eali5a ladepuaci)n de po%amas 0 pue'as de endimiento#

    $odas las aplicaciones estnda de R/3 estn eali5adas en ABAP#

    Se a diseado un entono de desaollo llamado 4e!elopment KoL'enc Gue seencuenta inte%ado dento del sistema R/3 0 pemite al cliente desaolla soluciones

    especi,icas o amplia las estnda en el nDcleo de entono de desaollo se encuentan elRepositoio de o'9etos 0 el 4iccionaio de datos#

    4iccionaio

    de

    4atos

    Repositoio

    de

    O'9etos

    92cleo de Entorno de Desarrollo

    4ento de el 4iccionaio de datos se encuenta lo si%uienteJ de,inici)n de ta'las !aloespemitidos elaciones ente ta'las etc#

    Repositoio de O'9etosJ po%amas datos del diccionaio d0npos documentaci)n etc#

    :erraientas para la con$i!uracin del sistea

    @a paameti5aci)n es la pieda an%ula de una implantaci)n SAP R/3# Al%unas taeas depaameti5aci)n son tan sencillas como intoduci el pa&s donde esta situada la empesa 0

    otas son tan complicadas oientadas a eas o industias especi,icas Gue eGuieeconocimientos tcnicos de con,i%uaci)n como de acti!idades empesaiales#

    Sericios de Soporte; Foracin; consultora e iplantacin 7SS

    SAP a dispuesto un amplio con9unto de se!icio de calidad paa a0uda a su clienteduante el poceso de implantaci)n 0 sopote de los sistemas R/3 estos se!icios a'acandesde in,omaci)n de aplicaciones ,omaci)n se!icio de instalaci)n asta consulto&a#

    SAP eali5a la %an ma0o&a de los se!icios a ta!s de cone;iones emotas con ed decomunicaci)n intenacional# *l sistema de se!icio en l&nea de SAP se llama OSS. Online Se!ice S0stem #

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    11/134

    Euro # A0o 6555

    Sopote completo paa soluciona los po'lemas del cam'io del milenio . Ao "222 0la apaici)n de la moneda *uopea *RO#

    3 Entorno de Desarrollo ABAP/4

    *l entono de desaollo ABAP/7 consiste de las si%uientes eamientas J

    Para (a *erraienta /coponente

    Se utilia para

    Pro!raacin 4iccionaio ABAP 4e,ini mantene 0almacena el diccionaio dedatos del sistema R/3#Contiene todos los o'9etosdel diccionaio tales comota'las elacionesdocumentaci)n etc#

    *dito ABAP Cea 0 mantene los

    po%amas ABAP paaedita m)dulos de ,unci)n

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    12/134

    'ases de datos l)%icas 0 lal)%ica de po%amaci)n delas pantallas . 40npos

    @i'e&a de Funciones 4e,ini 0 mantene modulode ,unci)n ABAP . utinas

    de pop)sito %eneal Guepueden se utili5adas enotos po%amas ABAP

    Sceen Painte 4isea 0 mantene laspantallas e inte,aces%,icas de usuaio en R/3#

    6enu Painte 4isea 0 mantene losmenDs paa los inte,aces%,icos de usuaio#

    9ae!acin O'9ect BoHse estiona 0 e!isa loso'9etos de desaollo de

    modo 9eGuico paapemiti una na!e%aci)n ,cilente los o'9etos 0 elentono de desaollo#

    Sistema de in,omaci)n delRepositoio ABAP

    a!e%a 0 'usca o'9etosdel diccionaio o'9etos dedesaollo 0 elaciones enteo'9etos de desaollo#

    NeaGu&a Aplicaci)n =isuali5a los o'9etos dedesaollo desde un puntode !ista o%ani5ati!o 0 de

    aplicaci)n#4ata BoHse a!e%a 0 !isuali5a los

    contenidos de las ta'las dela 'ase de datos#

    De'u!!in! $ace SQ@ Se%ui 0 astea los accesos0 llamadas a la 'ase de datosdesde los po%amas 0tansacciones del sistema

    Anlisis $iempo *9ecuci)n Anali5a el endimiento delas llamadas al sistema#

    4e'u%%e en l&nea detene un po%ama 0

    anali5a el esultado de lae9ecuci)n de cada sentenciadel po%ama#

    @ocL del Sistema Se%uimiento de los eoes 0mensa9es Gue se poducenduante la e9ecuci)n de los

    po%amas#7r!aniacin deldesarrollo

    KoL'enc O%ani5e Contola 0 se%ui el ta'a9ode desaollo 0 los po0ectosen eGuipo 0 paa %estionalas !esiones de los o'9etosde desaollo#

    Sistema de $anspote Reali5a 0 %estiona los

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    13/134

    tanspotes de los o'9etos dedesaollo ente distintossistemas SAP#

    Concepto de 1andante cliente .- 6ucas !eces se entiende de manea eGui!ocada eleste concepto en ealidad es el nom'e del sistema SAP R/3 al Gue nos conectamos lama0o&a de las compa&as cuentan con un cliente paa cada taea espec&,ica#

    Se de,ine como una unidad independiente dento del sistema R/3 desde el punto de !ista,iscal le%al 0 o%ani5ati!o# Po e9emplo un mandante se puede deci Gue epesenta auna empesa dento de una copoaci)n# $cnicamente se puede deci Gue un mandantese compota dento de SAP como una 'ase de datos l)%ica independiente es deci losdatos de una ta'la en un mandante no pueden se modi,icados ni !isuali5ados desde otomandante#

    Po e9emplo una compa&a pod&a tene la si%uiente con,i%uaci)nJ*l sistema cliente de ,omaci)n 722 Gue se utili5a paa la ,omaci)n de nue!os usuaios#

    *l sistema cliente de desaollo 122 Gue se utili5a paa nue!os desaollos asi comoetapa de pue'a de los nue!os desaollos#

    *l sistema de poducci)n 122 es le sistema acti!o utili5ado paa dii%i la empesa# staes un ea nada ecomenda'le paa pactica#

    *s impotante conoce el cliente o mandante en Gue se eGuiea eali5a la taea

    espec&,ica esto de'ido a los posi'les po'lemas Gue se pueden %enea# Cada cliente omandante tiene especi,icadas autoi5aciones paa eali5a tal o cual taea# @a eali5aci)nde las taeas en cada mandante son estin%idas 0 asi%nadas se%Dn el ni!el del usuaio#

    Po e9emplo un usuaio ,inal no siempe tiene autoi5aci)n paa manipula todos losmenDs de SAP R/3 asi como un po%amado puede tene un l&mite dento del sistemade desaollo . no esta autoi5ado paa actuali5a 'ases de datos elimina elementos deSAP etc# un ,uncional no tenda acceso a los ecusos del sistema 'ase. administaci)n de la 'ase de datos

    Concepto de &ransaccin#- 4e un modo %enico una tansacci)n es una opeaci)n Gue

    pemite a un usuaio eali5a cam'ios en la 'ase de datos# $odo el sistema R/3 se puedeconsidea como un sistema de poceso de tansacciones de ne%ocios#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    14/134

    4 Aplicaciones del ABAP/4

    Qu es ABAP/7 ?

    ABAP/7 es el len%ua9e de po%amaci)n de cuata %eneaci)n popio de SAP su inicialesnos indicanJ

    A- Ad!ancedB- BusinessA - AplicationP- Po%ammin%

    @as aplicaciones del ABAP/7 sonJ

    Reportin!. Clsico e inteacti!o Pro!raacin de dilo!o o transacciones. diseo de pantallas 7tras aplicaciones. Batc (nput po%amas de comunicaciones etc#

    na !e5 instalado SAP la pincipal aplicaci)n del ABAP/7 es la %eneaci)n de in,omes0a sea poGue no an sido contemplados po SAP o se eGuiee un ,omato mu0completo#

    *l Reportin! Clsicose caactei5a po listados !oluminosos o mu0 ,ecuentes conme5cla de in,omaci)n detallada 0 esumidas#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    15/134

    *l Reportin! Interactio esta oientado a pantallas listados cotos 0 !entanascontoladas po teclas de ,unci)n#

    Am'os reportin!se pueden e9ecuta en 7nline. tiempo eal mientas Gue Dnicamenteel clsico se puede e9ecuta en Batc*. di,eido #

    @a pro!raacin en dilo!ose caactei5a po esta en,ocado a pantallas Gue estancontoladas po m)dulos ABAP/7#

    Otas aplicaciones posi'les en len%ua9e de po%amaci)n son la %eneaci)n de Batc(nput 0 po%amas de comunicaciones# n Batc (nput es una utilidad de Sap paatans,ei in,omaci)n de ,oma se%ua 0 automati5ada# Paa ello simula mediante un

    poceso en 'atc la intoducci)n de datos en el sistema !&a tansacci)n online#

    1odulariacin

    Po modulai5aci)n dento de los po%amas ABAP/7 entendemos ace ms ,cil lalectua 0 me9oa su estuctua# 6odulai5a po%amas ,acilita el mantenimiento 0 laactuali5aci)n de los mismos a compaaci)n de los Gue no estn de'idamente

    modulai5ados# . estuctuados

    9o odulari.ado 1odulari.ado

    PRORA6

    P##

    BlocL de Sentencias

    BlocL de Sentencias

    BlocL de Sentencias

    BlocL de Sentencias

    P##

    P##

    P##

    PRORA6

    ##

    CA@@ (4A4 4* 6O4@AR(QAC(O

    ##

    CA@@ (4A4 4* 6O4@AR(QAC(O

    ##

    CA@@ (4A4 4* 6O4@AR(QAC(O

    ##

    CA@@ (4A4 4* 6O4@AR(QAC(O

    Principio de 1odulari.acin

    $cnicas paa ,acilita la modulai5aci)nJ

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    16/134

    1odulari.acin

    PRORA6 RS4*6O21#

    Call calculateta;

    Su'utina

    Calculateta;

    #

    PRORA6 RS4*6O2"#

    Call calculateta;

    #

    #

    #

    #

    PRORA6 RS4*6O27#

    Su'utine SB1

    Su'utina

    Calculateta;

    ABAP/7 ,unction li'a0

    Function moduleCalculateta;

    PRORA6 RS4*6O23#

    Call calculateta;

    #

    #

    Function module

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    17/134

    4e,ini su'utinas intenas 0 e;tenas paa e!ita secuencias de sentencias similaes oidnticas o sea e!ita edundancia# @as su'utinas me9oan la estuctua de tu

    po%ama . esto si%ni,ica modulai5aci)n 0 ace ms ,cil la lectua# na secuenciade sentencias de,inida dento de una su'utina puede se llamada desde !aios puntosde un po%ama#

    Paa ma0o claidad de'es coloca las su'utinas al inicio o al ,in del po%ama#

    Puedes de,ini po%amas include dento de la 'i'lioteca#

    S& tu Guiees usa la misma secuencia de sentencias en !aios po%amas tu puedeseali5a el c)di%o dento de un po%ama include#

    4e,ini 0 eali5a llamados a m)dulos de ,unci)n# @os cuales son almacenados dentode la 'i'lioteca de ,unciones donde son asi%nados a un %upo de ,unci)n#

    *l sistema R/3 popociona di!esos m)dulos de ,unci)n pede,inidos los cuales puedense llamados desde cualGuie po%ama ABAP/7 adems estos m)dulos de ,unci)n

    pueden se ceados po el popio po%amado#

    A di,eencia de las su'utinas los m)dulos de ,unci)n cuenta con una inte,ace ademsde estandai5a el pase de pametos#

    (nte,aces a'ietas . llamadas a po%amas e;tenos

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    18/134

    Introduccina

    ABAP/4

    < Fundaentos de la Pro!raacin de Reports

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    19/134

    n epot consiste en una seie de instucciones ABAP Gue empie5a po unapala'ra clae0 temina con un punto#

    $ipos de pala'as cla!esJ

    Declaratias= Paa declaa los datos Gue !amos a usa a lo la%o delpo%ama# Po e9emploJ 4A$A $AB@*S#

    Eentos= especi,ica un e!ento es el punto donde ABAP e9ecuta uncieto poceso# Po e9emploJ S$AR$-OF-S*@*C$(O $OP-OF-PA*#

    ControlJ Sentencias de contol de ,lu9o de po%ama# Po e9emploJ (FK+(@*#

    7peratias= Reali5an ,unciones popias se%Dn el tipo de pala'a cla!e#Po e9emploJ KR($* 6O=*#

    *;isten dos ,omas de utili5a comentaios en un epot#

    1# Con un asteisco .T en la pimea columna de una l&nea#"# Con comillas .U en mitad de una l&nea esto es una !e5 escita la sentencia

    puede i un comentaio a continuaci)n#

    Podemoscom'ina sentencias consecuti!as del mismo ,omato# *sto si%ni,ica a%upasentencias 0 e!ita el esci'i ms l&neas de c)di%o#

    Po e9emplo=

    es eGui!alente a J

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    20/134

    *9emploJ

    KR($* E4(R*CC(V#CO6P$* SA@*S W A6O$ / 122#

    >aria'les internas= Campos au;iliaes con nom'e de menos de 32caactees .sin inclui el cacte 'lanco# Se declaan con lasentencia

    *9emploJ

    4A$AJ =*$AS-$O$A@*S $IP* P#

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    21/134

    &ipos (on! por de$ecto

    Posi'le lon!itud

    >alor inicial Descripcin

    C 1 13"222 *SPAC(OS $e;to F > 1*-32 2#2*Z22 Punto ,lotante

    ( 7 -"31

    "31

    -1 2 *nteo 1 13"222 E2222 $e;to numico P > 11: 2 Dm# *mpaGuetado M 1 1"> > 22222222 Feca IIII6644 $ : : 222222 +oa ++66SS

    ".6 Declaracin de Capos#

    Se declaan campos del epot con la sentencia DA&A.

    Si no se indica lo contaio las !aia'les sen del tipo cacte .$e;to 0 lalon%itud 1#

    *9emploJ 4A$A =AR-CAR# 4A$A =AR-CAR.># --Y Cea una !aia'le te;to de

    lon%itud >#Con el pameto &?PEpodemos utili5a otos tipos de datos#

    *9emploJ 4A$A 6-CAR.8 $IP* #4A$A 6*RO." $IP* P#

    4A$A F*C+A @(6($* $IP* 4#

    Con el pameto(I@E;podemos declaa una !aia'le con los mismosati'utosde lon%itud 0 tipo Gue una !aia'le de 'ase de datos#

    *9emploJ 4A$A ACR**4OR @([* @FA1-@(FR#

    Con el pameto >A(E podemos indica la !aia'le con un !alo distinto alGue tienen po de,ecto#

    *9emploJ 4A$A CO$A4OR $IP* P =A@* 1#

    nre!istro de datos es un con9unto de campos elacionados l)%icamente enuna estuctua#

    *9emploJ 4A$AJ B*( OF PRO=**4OR @(FR @([* @FA1-@#(FR

    A6*1 @([* @FA1-A6*1C(4A4."2 =A@* \BARC*@OA\

    F*C+A $IP* 4 *4 OF PRO=**4OR#

    Posteiomente el acceso a los campos del e%isto de datos se J

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    22/134

    KR($*J PRO=**4OR-A6*1 PRO=**4OR-F*C+A#

    $am'in usaemos la instucci)n 4A$A paa declaa ta'las intenas# @as ta'las

    intenas a di,eencia de las de 'ase de datos se %uadan en memoia 0 no en eldiccionario de datos.

    *9emploJ4A$AJ B*( OF 6*NOR*S PRO=**4OR*S OCCRS 12

    O6BR* @([* @FA1-A6* 1C(4A4 @([* @FA1-OR$1

    =*$AS @([* @FC3-SO@@@*4 OF 6*NOR*SPRO=**4OR*S#

    @a clusula 7CCRS detemina el nDmeo de l&neas %uadadas en memoiapincipal# *sto no si%ni,ica Gue el tamao m;imo de la ta'la sea el indicado 0a Gue sieste se des'oda los datos se %uadan en un ,iceo de pa%inaci)n 'a9ando l)%icamenteel tiempo de poceso de las ta'las intenas peo e!itando Gue el ea %lo'al dealmacenamiento destinado po SAP paa ta'las intenas se a%ote#

    @as ta'las intenas se declaan iniciali5an 0 e,eencian como un e%isto dedatos#

    $am'in podemos utili5a la misma estuctua Gue una ta'la de 'ase de datos#Paa ello utili5aemos la instucci)n I9C(DE S&RC&RE.

    *9emploJ4A$A B*( OF SOC(*4A4* OCRRS 1 2#(C@4* S$RC$R* $221#

    4A$A *4 OF SOC(*4A4*S#

    ".3 Asi!nando alores.

    *;isten di!esas ,omas de asi%na !aloes a una !aia'le en ABAP/7# naasi%naci)n diecta como esultado de una opeaci)n aitmtica o como esultado de unacon!esi)n automtica ente campos con !aloes de di,eente tipo de datos#

    @a instucci)n 17>E eali5a un tanspote del contenido del ar,al campoar6#

    17>E ar, &7 ar6#

    Podemos sustitui esta Dltima instucci)n poJ

    ar6 ar,.

    Gue es la simpli,icaci)n deJ

    C71P&E ar6 ar,.

    donde la pala'a cla!e CO6P$* es opcional#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    23/134

    $am'in es posi'le e,eencia o asi%na !aloes a una pate de la !aia'leutili5ando el o$$set.

    =AR(AB@*Zo$$setlon!itud

    *9emploJ

    4A$AJ =AR(.18 =A@* \R(=*R@A4 BC#\ =AR".18 =A@* \+O@A\#

    6O=* =AR(Z12.7 $O =AR"Z8.7#KR($* =AR"#

    ResultadoJ :7(A BC9#

    =AR1

    R ( = * R @ A 4 B C #

    =AR"

    + O @ A

    17>E >AR,,54 &7 >AR6

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    24/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    25/134

    ".< 7peraciones AritJticas en ABAP/4.

    *n ABAP/7 las 7 opeaciones aitmticas 'sicas se pueden implementaJ

    Con la instucci)n C71P&E 0 los s&m'olos Z - / 0 T

    C71P&E ar, E+p. AritJtica.

    donde la pala'a CO6P$* es opcional#

    Si utili5amos pantesis de9aemos un espacio en 'lanco pecediendo 0si%uiendo al pantesis#

    Con las instucciones J ADD &7; SBS&RAC& FR71;

    1(&IP(? B? # DI>IDE B?.

    $am'in dispondemos de ,unciones matemticas paa los nDmeos de coma,lotanteJ EHP; (7); SI9; C7S SKR&; DI>; 17D. S&R(E9.

    "." Procesando capos de tipo te+to.

    ABAP/7 o,ece al%unas instucciones paa el pocesamientode cadenasde te;to#

    Paa eali5a un despla5amientodel contenidode uncampo utili5amos S:IF

    S:IF&capo Reali5a un despla5amiento de un cacte aciala i5Guieda#

    S:IF&capo B? n P(ACESRI): Reali5a undespla5amiento de n caactees acia la i5Guieda o si se especi,ica acia la deecaintoduciendo 'lanco po el lado opuesto#

    *9emploJ

    + O @ A

    S+($F campo BI " P@AC*S#

    @ A

    S:I&F capo B? 6 P(ACES CIRC(AR RI):&. Reali5a un

    despla5amiento c&clico acia la i5Guieda o si se especi,ica acia la deeca#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    26/134

    *9emploJ

    + O @ A

    S+(F$ campo BI " P@AC*S C(RC@AR

    @ A + O

    Podemos eempla5a el contenido de cietos campos con la (nstucci)nREP(ACE.

    REP(ACE cadena, I&II cadena6 I9&7 capo.

    Reempla5a \cadena1\ po \cadena"\ dento de la !aia'le \campo\# Si la !aia'ledel sistema S?-SBRC 5es Gue \cadena1\ no e;iste dento de \campo\#

    R*P@AC* Dnicamente sustitui la pimea apaici)n de \cadena 1\#

    *;iste ota instucci)n de sustituci)n &RA9S(A&E.

    &RA9S(A&E capo &7 PPER CASE. Pasa a 6a0Dsculas &7 (7ER CASE. Pasa a 6inDsculas# SI9) Lre!laM. Reempla5a campo

    se%Dnla e%la desustituci)n indicada#

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

    @a instucci)n SEARC:'usca la cadena dento de un campo o una ta'la#

    SEARC: capo/ta'la F7R cadena.

    Si el Resultado es positi!o SI-SBRC W 2# *n caso de Gue sea una ta'la SI-$AB(M contiene la l&neas de la ta'la donde se a encontado#

    Paa 'oa los 'lancos de una cadena utili5aemos C79DE9SE#

    C79DE9SE capo 97-)APS#

    *sta instucci)n 'oa todos los 'lancos Gue se encuenten comen5andola cadena po la i5Guieda 0 en caso de enconta seies de 'lancos intemedios de9a

    Dnicamente uno po seie#*9emploJ

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    27/134

    ] CRSO 4* ABAP/7U UCRSO 4* ABAP/7U

    @a clusula 97-)APS 'oa todos los 'lancos estn donde estn#

    ".N >aria'les del sistea.

    ABAP/7 tiene al%unas !aia'les intenas Gue se !an actuali5andoautomticamente 0 Gue pueden se utili5ados en los po%amas#

    $odas ellas empie5an po el pe,i9o S?- 0 0a emos utili5ado al%una de ellascomoSI-SBRC Gue nos da el c)di%o de etono de una instucci)n o SI-$\AB(M Gue

    contiene la l&nea de poceso de una ta'la intena#

    *n el Ane+o , a0 una elaci)nde todas ellas#

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

    N., Forulando condiciones

    *n ABAP como en todos los len%ua9es estuctuados disponemos de una seiede instucciones paa su'di!idi el po%ama en 'loGues l)%icos se e9ecutan cuando secumplauna cieta condici)n#

    Paa intoduci una condici)n utili5aemos la sentencia IF### E(SE### E9DIF Guepod apaece en distintas modalidades#

    IF Cond.. IF Cond.. IF Cond.. O O OE9DIF. E(SE. E(SEIF.

    O OE9DIF. E(SEIF.

    OE(SE.

    O

    E9DIF.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    28/134

    *n las condiciones utili5amos los clsicos opeadoesJ

    I A9DO 7R

    (%ual EK4istinto E96a0o )&6eno (&6a0o o i%ual )E6eno o i%ual (E

    Adems e;isten opeadoes adicionales paa compaa cadenas de caacteesJ

    X,1Y C7X,"Y .Contains Onl0 J ,1 s)lo contiene caactees de ,"# *n caso de secieta S?-FDP7Scontiene la lon%itud de ,1 0 si

    es ,alsa contiene el o,,set del pime cacte Gueno cumple la condici)n#

    X,1Y C9 X,"Y .Contains ot Onl0 J ne%aci)n de la anteio#

    X,1Y CA X,"Y .Contains An0 J ,1 contiene como m&nimo al%Dn cacte de ,"# Sies cieta S?-FDP7S contiene el o,,set del pimecacte de ,1 Gue est en ," 0 si es ,alsa contienela lon%itud de ,1#

    X,1Y 9A X,"Y .Contains ot An0 J ne%aci)n de la anteio#

    X,1Y CS X,"Y .Contains Stin% J ,1 contiene la cadena ,"# Si la condici)nS?-FDP7S es cieta contiene el o,,set dondeempie5a ," en ,1 0 si es ,alsa contiene lalon%itud de ,1#

    X,1Y 9S X,"Y .Contains o Stin% J ne%aci)n de la anteio#

    X,1Y CPX,"Y .Contains Patten J ,1 coesponde al pat)n ,"# *n el pat)n podemosutili5a Jcomo cualGuie cacte T como cualGuiecadena de caactees

    paa utili5a los caactees ZT_ en lacompaaci)n#Si la condici)n es cieta S?-FDP7S contiene elo,,set de ," en ,1 0 si es ,alsa contiene la lon%itudde ,1#

    X,1Y 9P X,"Y .Contains o Patten J ne%aci)n de la anteio#

    $am'in podemos utili5a opeadoes especialesJ

    IF $, BE&EE9 $6 A9D $3. Paa ceGuea an%os

    IF $, IS I9I&A(. Paa ceGuea !aloes iniciales#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    29/134

    Si Gueemos e9ecuta di,eentes instucciones en ,unci)n del contenido de uncampo podemos utili5a la sentencia CASE.

    CASE capo.:E9 alor,.

    O:E9 alor6.O

    :E9 7&:ERS.O

    E9DCASE.

    Po Dltimo e;iste la instucci)n condicional 79 C:A9)E 7F ... E9D79Gue pemiti la e9ecuci)n de un 'loGue de instucciones si se a poducido un cam'iode !alo de un cieto campo duante el acceso a 'ase de datos o una ta'la intena# C)mo

    pocesa una ta'la intena o unacceso a 'ase de datos 0a lo !eemos ms adelante#

    79 C:A9)E 7F capo.O

    E9D79.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    30/134

    N.6 Proceso de 'ucles

    Paa eali5a pocesos epetiti!os utili5aemos D70 :I(E#

    @a instucci)n D7pemite e9ecuta un 'loGue de instucciones tantas !eces como se

    especi,iGue#

    D7 n &I1ES.OE9DD7.

    *n la !aia'le del sistema S?-I9DEH tendemos un contado del nDmeo deepeticiones#

    *s posi'le anida 4O\s# *n ese caso el SI-(4*M a e,eencia al 'ucle enpoceso#

    @a instucci)n :I(Epemite e9ecuta un 'loGuede instucciones mientas se cumplauna condici)n#

    :I(E cond.OE9D:I(E.

    4e la misma ,oma Gue la instucci)n 4O K+(@* pemiteanida 'ucles#

    N.3 Sentencias de control

    @as sentencias descitas a continuaci)n se utili5an paa temina elpocesamiento de un 'ucle o poceso#

    @a instucci)nJ C:EC@ cond.

    Reali5a un ceGueo de XcondY de ,oma Gue si dento de un 'ucle la condici)n es$alsa; salta todas las instucciones Gue si%uen al C+*C[ e inicia la si%uiente pasada

    al 'ucle# Fuea de un 'ucle si la condici)n es ,alsa salta todas las instucciones Guesi%uen al C+*C[ asta el ,inal del e!ento o po%ama en poceso#

    @a instucci)nJ EHI&.

    4ento de un'ucle sald del 'ucle 0 ,uea de un 'ucle sald del po%ama#Si la instucci)n *M($ est dento de !aios 'ucles anidados Dnicamente sald

    del 'ucle en poceso#

    @a instucci)nJ S&7P.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    31/134

    Con S$\OP ,inali5aemos el epot .po%ama en e9ecuci)n; peo antese9ecutaemos el e!ento *4-OF-S*@*C$(O#

    @a instucci)nJ (EA>E.

    Con @*A=* ,inali5aemos el epot .po%ama en e9ecuci)n sin e%ecutar ele!ento *4-OF-S*@*C$(O#

    Q Introduccin a las sentencias de salida de Reports

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    32/134

    A continuaci)n !eemos un esumen de las sentencias de salida de epots ms'sicas#

    Como 0a emos !isto en los e9emplos de los cap&tulos anteioes paa !isuali5a un!alo utili5aemos la sentencia RI&E#

    RI&E / o$$setlon! datos a isualiar.

    Con la Barra /indicaemos si Gueemos salta una l&nea o no antes de impimi.opcional#Con el 7$$setindicaemos la columna donde empe5a la impesi)n .opcional#Con (on!indicaemos la lon%itud de los !aloes a !isuali5a .opcional#

    Podemos impimi una l&nea de Su'a0ados con la sentencia (I9E# $end lasmismas popiedades Gue el KR($*#

    (I9E /o$$setIon!.

    Paa salta una o !aias l&neas utili5aemos S@IP#

    S@IP n.

    Po de,ecto el salto se de una Dnica l&nea#

    Paa salta una p%ina utili5aemos 9E-PA)E#

    Paa intoduci pametos en la e9ecuci)n del epot e;isten !aias opciones# @a

    ,)mula ms sencilla es la sentencia PARA1E&ERS#PARA1E&ERS= ar &?PE tipo

    (I@E tipoDEFA(& alor (%ual Gue el

    =A@*#7B(I)A&7R?. O'li%a a

    intoduci al%Dn !alo#

    (7ER CASE. Pemiteintoduci

    minDsculas#*l nom'e del pameto no puede se supeio a > caactees#

    *n el Captulo ,4se tata todas las posi'ilidades paa las selecciones 0 entada depametos#

    T &a'las Internas

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    33/134

    Si deseamos %uada una coleccin de re!istros de datos de la isaestructuraen memoia sin necesidad de accede a la 'ase de datos 0 pode eali5aopeaciones di!esas con este con9unto de in,omaci)n utili5aemos las ta'lasinternas.

    T., Co declarar ta'las internasDA&A= BE)I9 7F ta'la 7CCRS n;De$.Capo;OE9D 7F ta'la.

    4e,iniemos una ta'la intena con n-l&neas en memoia ms una l&nea de ca'eceao ea de ta'a9o#

    @a cantidad de l&neas Gue especi,iGuemos en el OCCRS no limita el tamao de

    la ta'la sino la cantidad de e%istos Gue se %uadan en memoia simultneamente# *stoace necesaio un especial cuidado al popone el nDmeo de l&neas 0a Gue un OCCRSmu0 %ande supone un %an %asto de ecusos del sistema 0 un OCCRS peGueo unacceso mu0 lento 0a Gue necesita de un poceso de pa%inaci)n#

    T.6 (lenado de una ta'la interna.

    APPE9D J Aade un e%isto a una ta'la intena con los !aloes Gueten%amos en el ea de ta'a9o#

    APPE9D inta'.

    C7((EC& J Aade o suma la l&nea de ca'ecea# Suma los campos detipo PF( si e;iste una l&nea en la ta'la con campos idnticos .tipo C a los delea de ta'a9o#

    *l po'lema de esta instucci)n es Gue es 'astante lenta# Se puede sustitui polas instucciones R*A4 e (S*R$ o 6O4(FI#

    Podemos llena una ta'la intena con el contenido de una ta'la de 'ase dedatos# Siempe Gue la ta'la intena ten%a la misma estuctua Gue la ta'la de

    'ase de datos#

    SE(EC& U FR71 ta' I9&7 &AB(E ta'int.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    34/134

    T.3 7rdenar una ta'la interna.

    Paa clasi,ica una ta'la intena utili5amos S7R

    S7R& inta'.

    *sta instucci)n eali5a una odenaci)n po la estuctua de la ta'la sin tene encuenta los campos P(F#

    Paa odena po el campo.s Gue necesitemos .sea del tipo Gue seaJ

    S7R& inta' B? capo, .... capo n.

    Si no se indica locontaio la odenaci)n po de,ecto es ascendente#S7R& ### ASCE9DI9). o DESCE9DI9).

    T.4 Procesaiento de una ta'la interna.

    Podemos ecoe una ta'la intena con la instucci)n (77P ... E9D(77P-

    (77P A& intal :ERE cond.

    E9D(77P.

    *n cada iteaci)n coloca la l&nea de la ta'la Gue se est pocesando en la l&nea deca'ecea#

    Podemos estin%i el poceso de una ta'la con una condici)n K+*R*#

    Si no e;iste nin%Dn e%isto de la ta'la Gue cumpla la condici)n especi,icada en laclusula K+*R* la !aia'le del sistema S?-SBRC se distinta Gue 2#

    4ento del @OOP la !aia'le S?-&ABIH contiene el &ndice de la entada Gue

    est pocesando en ese momento#

    $am'in es posi'le ace unJ

    (77P A&inta' FR71 inicio &7 $in.OE9D(77P.

    4onde XinicioY 0 X,inY son &ndices de la ta'la intena#

    T.< &rataiento de nieles de ruptura.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    35/134

    *n el tatamiento de un @OOP podemos utili5a sentencias de contol de uptua=

    A& FIRS&.OE9DA&. Reali5a las instucciones Gue a0 a continuaci)n

    del A$ F(RS$ paa la pimea entada de la ta'la#

    A& (AS&.OE9DA&. Reali5a las instucciones Gue a0 a continuaci)n

    del A$ @AS$ paa la Dltima entada de la ta'la#

    A& 9E capo.OE9DA&. Reali5a las instucciones Gue a0 a continuaci)n

    del A$ *K paa cada inicio de ni!el de uptua#

    A& E9D 7F capo.OE9DA&. Reali5a las instucciones Gue a0 a continuaci)n

    del A$ *4 paa cada ,inal de ni!el de uptua#

    Si utili5amos la instucci)n S1 dento de un A$ ### *4A$ eali5a la sumade todos los campos P(F de ese ni!el de uptua . paa el clculo de su'totales #

    *l esultado lo encontaemos en el ea de ta'a9o de la ta'la#

    Se necesaio Gue la ta'la intena est odenada en el mismo oden Gue lautili5aci)n de los ni!eles de uptua#

    As& la utili5aci)n con9unta de todas estas instucciones seJ

    S7R& inta' B? c, c6.(77P A& inta'.

    A& FIRS& ... S1 ... E9DA&.A& 9E cl.... S1 O

    E9DA&.A& 9E c6.... S1 OE9DA&........... GProceso 9oral de la ta'laA& E9D 7F c6.... S1 ...E9DA&.A& E9D 7F c,.

    ... S1 ...E9DA&.

    A& (AS& O S1 O E9DA&.E9D(77P.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    36/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    37/134

    17DIF?J podemos so'eesci'i el contenido de la entada XiY con elcontenido de la l&nea de ca'ecea#

    17DIF? inta' I9DEH i.

    4ento de un @OOP la clusula (4*M es opcional# Po de,ecto se elcontenido de la !aia'le SI-$AB(M#

    I9SER&J aade una entada delante de la entada XiY con el contenido dela l&nea de ca'ecea#

    I9SER& inta' I9DEH i.

    DE(E&EJ paa 'oa una entada de una ta'la#

    DE(E&E inta' I9DEH i.

    Otas instucciones de mane9o de ta'lasJ

    (niciali5a el ea de ta'a9o o l&nea de ca'ecea#

    C(EAR inta'.

    (niciali5a .'oa el contenido de una ta'la#

    REFRES: inta'.

    @i'ea el espacio ocupado po una ta'la en memoia#

    FREE inta'.

    Paa o'tene in,omaci)n so'e una ta'la intena#

    DESCRIBE &AB(E ta'

    (I9ES contadorentradas7CCRS aloroccurs.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    38/134

    ,5 Su'rutinas

    ,5., &ipos de su'rutinas.

    *;isten 3 tipos de su'utinas o su'po%amas#

    Internas= *l Su'po%ama 0 la llamada a ste estn en el mismo po%ama#

    E+ternas= *l Su'po%ama 0 la llamada a ste estn en po%amasdistintos#

    Bi'lioteca de $unciones 1dulos de $uncin= Funciones e;tenas alpo%ama con inte,ace de llamada claamente de,inido#

    ,5.6 Su'rutinas internas.

    PERF7R1 odulo @lamada a un pocedimiento osu'po%ama#

    F7R1 odulo Su'po%ama#

    E9DF7R1

    *l po%ama pincipal 0 el pocedimiento se podn comunica mediante pametos#

    PERF7R1 odulo SI9) arl ar6 ...F7R1 odulo SI9) arl ar6 ...E9DF7R1.

    @os pametos puedense pasados po alor .* opo re$erencia .*/S# Pode,ecto senpo e,eencia#

    Si Gueemos utili5a pametos po !alo la ca'ecea del m)dulo seJ

    F7R1 odulo SI9) >A(E ar,...E9DF7R1.

    $anto las !aia'les de,inidas al inicio del epot como las ta'las son %lo'ales a todas lassu'utinas 0 po tanto accesi'les en cualGuie momento#

    Si encontamos al%una instucci)n del tipo C+*C[ o *M($ Gue si%ni,iGue sali de un

    cieto FOR6 pe!iamente e9ecuta el *4FOR6 0 po tanto se pasan lospametos Gue ten%a el pocedimiento#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    39/134

    $am'in es posi'le pasa como pameto ta'las intenas#

    PERF7R1 odulo &AB(ES inta' ...SI9) arl ar6 ...

    F7R1 odulo &AB(ES inta' ...SI9) arl ...

    *speci,icaemos las ta'las siempe antes Gue el esto de pametos#*n este caso s)lo se pueden ace opeaciones con# ,ilas enteas peo no nos

    podemos e,eencia so'e campos concetos de la ta'la o ace CO@@*C$S 0a Gue nose conoce la estuctua de la ta'la#

    Podemos pasa como pametos e%istos de datos o eas de ta'a9o con J

    PERF7R1 dulo SI9) re!.

    F7R1 odulo SI9) re! S&RC&RE estructura.

    E9DF7R1.

    *s deci con la clusula S$RC\(\R* podemos pasa la estuctua de una ta'laentonces podemos accede a campos de una ta'la pasada como pameto conJ

    PERF7R1 odulo &AB(ES inta' SI9) ar, O

    F7R1 odulo &AB(ES inta' SMIMRC&RE estructura.

    SI9) ar, O

    E9DF7R1.

    4ento de cada su'utina es posi'le declaa datos con la sentencia 4A$A Gue

    s)lo sen !isi'les dento del m)dulo donde est declaado# ABAP/7 cea un espaciopaa esas !aia'les Gue se li'eado al sali del m)dulo. Po tanto se podn utili5a!aia'les con el mismo nom'e Gue !aia'les %lo'ales aunGue el !alo Gue ten%an sesiempe el local en el m)dulo#

    @as ta'las de 'ase de datos son %lo'ales a todo el po%ama si se Guiee utili5auna ta'la localmente en una su'utina se de'e declaa con (7CA( al inicio de lasu'utina en !e5 de con $AB@*S#

    (7CA( ta'la.

    ,5.3 Su'rutinas E+ternas # 1dulos de $uncin.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    40/134

    Si Gueemos llama a una su'utina Gue est en un po%ama distinto utili5amosJ

    PERF7R1 su'pro!raa SI9) O

    $am'in e;iste la posi'ilidad de aadi pociones de c)di%o del tipo includecon lainstucci)nJ

    I9C(DE report.

    *n el c)di%o del include no utili5aemos la sentencia R*POR$###

    @os dulos de $uncin son m)dulos especiales %uadados enuna li'e&a cental0 a%upados po la ,unci)n Gue eali5an# Pincipalmente se caactei5an po un

    inter$ace de$inido 0 poGue eali5an trataiento dee+cepciones.

    Se caactei5an po un inte,ace de,inido 0a Gue su diseo ,acilita el paso depametostanto de entada como desalida#

    CA(( F9C&I79 $uncion.

    EHP7R&I9) parE alor-

    I1P7R&I9) parS alorret

    &AB(ES ta'Func ta'Pro!

    EHCEP&I79S e+cep alor

    4onde en el *MPOR$ especi,icamos los pametos de entada en el(6POR\(\( .opcional el esultado o etono de la ,unci)n 0 en $AB(#*S .opcionallas ta'las Gue se utili5an como pametos#

    @os m)dulos de ,unci)n tam'in se caactei5an po eali5a un tatamiento dee;cepciones# *n el inte,ace de los m)dulos de ,unci)n se indican los !aloes dee;cepciones paa el etono del m)dulo Gue posteiomente con el SI-SBRC se

    pueden compo'a#

    *l c)di%o de la ,unci)n puede acti!a e;cepciones mediante las instuccionesJ

    1ESSA)E O. RAISI9) e+cepcionoRAISE e+cepcion

    Paa accede a la 'i'lioteca de m)dulos de ,unci)nes posi'le utili5a el comando S+O``\FC$(OT desde el edito de Po%amas o desde el tatamiento de m)dulos de,unci)n del menD :erraientas - CASE - desarrollo - Actualiar pro!raas-1dulos de $uncin; desde donde podemos adems cealos 0 mantenelos#

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    41/134

    ,5.4 Interca'io de datos ediante la eoria !lo'al de SAP.

    *s posi'le intecam'ia datos ente epots distintos .llamados desdeinstucciones SB6($ a ta!s de la memoia de SAP#

    Paa %a'a en memoiaJ

    EHP7R& capo### I9&7 1E17R?.

    Paa ecupea de memoiaJ

    I1P7R& capo### FR71 1E17R?.

    CURSO ABAP/4

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    42/134

    ,, Diccionario de Datos. Coo leer # procesar ta'las de la 'ase dedatos.

    ,,. , Diccionario de datos.

    *l diccionaio de datos .4#4# es una ,uente de in,omaci)n centali5ada#@os distintos o'9etos del 4iccionaio de datos estn estuctuados enJ

    Campo *lementos de datos 4ominio

    @os eleentosde datos desci'en el si%ni,icado de un campo independientemente delas ta'las donde se utilicen# *s deci tienen un cacte semntico#

    @os doinios desci'en el campo de !aloes posi'les# $endn un cacte tcnico#

    *9emplo J$AB@ASJ S[B(S[6( ###

    CA6POJ S$*M$*@*6#4A$OSJ S$*M(\ - S[B(4O6((OJ $*M$82FOR6A$O ($*ROJ $ipo C de 82 Posiciones

    $endemos a nuesta disposici)n un sistema de in,omaci)n del diccionaio de datosIn$o-S#ste; Gue popociona in,omaci)n so'eJ contenido de las ta'las canposdominios po%amas etc#

    *;isten di!esos tipos de ta'las-#*n el c)di%o del include no utili5aemos lasentencia R*POR$###

    - $a'las &RA9SP.tanspaentesJ $a'las nominalesrelacionales .SQ@#

    - \(\a'las P77(J \(\a'las SAP Gue se %uadan 9unto a otas ta'las SAP en una

    Dnica ta'la ,&sica de B44# 6e9oando el acceso a los e%istos#

    - $a'las C(S&ERJ !aias ta'las Gue se %uadan en un cluste de B44# Se%uadan e%istos de !aias ta'las SAP con la misma cla!e cluste en elmismo cluste ,&sico de la 'ase de datos#

    *l diccionaio de datos se dice Gue es inte%ado 0 acti!o# Inte!radopoGue inte%ael 4#4# con el Sceen-Painte po%amas ABAP 40npos Supe,icies CA 0 Actio

    CURSO ABAP/4 Pgina 42

    $a'la

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    43/134

    poGue si modi,icamos al%Dn o'9eto del diccionaio de datos el sistema automticamentee%enea el ]$ime Stamp^ de los po%amas Gue utilicen esos o'9etos#

    ,,.6 (os datos en el sistea SAP.

    Podemos clasi,ica los datos del sistema en datos maestos datos de mo!imientos; 0datos delsistema#

    Datos aestros= Son datos Gue no se modi,ican mu0 a menudo#*9J 6ateiales Cuentas Bancos Clientes###Se almacenan en ta'las tanspaentes#

    Datos de oiientos= 4atos mu0 !oltiles 0 con %an !olumen de%eneaci)n#

    *9J Factuas Pedidos###

    Se suelen %uada en ta'las tipo C@S$*R todos ellos con ,omato paecido.documentos#

    Datos del sistea o de control= 6ucas ta'las con pocos datos# Se suelen%uada en ta'las de tipo POO@#

    ,,.3 Instrucciones SK( de ABAP/4.

    ABAP/7 tiene un su'con9unto de sentencias SQ@ paa su aplicaci)n so'e ta'las dela 'ase de datos SAP#

    stas sonJ

    SE(EC&; I9SER&; PDA&E; 17DIF?; DE(E&E; C711I&7R@; R7((BAC@ 7R@.

    Adems de las !aia'les del sistemaJ

    S? -SBRC= C)di%o de etono de unaopeaci)n#S9-DBC9&= Cantidad de e%istos a,ectados po la opeaci)n pocesada#

    ,,.3., SE(EC&.

    @a sentencia S*@*C$ se la instucci)n ,undamental paa lee in,omaci)n de la 'asede datos#

    - 7tras lecturas =

    Podemoslee una ta'las de 'ase de datos 0 simultneamente llena una ta'la intena conel esultado de la lectua#

    CURSO ABAP/4 Pgina 43

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    44/134

    SE(EC& U FR71 ta' I9&7 &ABI;E inta' :ERE condV

    @lena la ta'la intena Xinta'Y macacando los e%istos Gue pudiea tene sta# SiGueemos Gue espete los e%istos Gue ten&a la ta'la interna antes de eali5a el

    S*@*C$ tendemos Gue utili5aJ

    SE(EC& U FR71 ta' APPE9DI9) &AB(E inta' :EREcond.

    Podemos indica un oden en el poceso de selecci)n de e%istos#

    SE(EC& U...7RDER B? capol capo6...

    SiGueemos selecciona un e%isto paa 'loGuealo de posi'les modi,icaciones#

    SE(EC& SI9)(E F7R PDA&E U FR71 ta'.

    ,,.3.6. I9SER&.

    @asentencia I9SER&pemite intoduci e%istos sencillos o el contenido de una ta'laintenaen una 'ase de datos SAP#

    I9SER& ta'.

    a'a en la B44 el e%isto de ca'ecea# Po tanto pe!iamente a esta instucci)nmo!eemos los !aloes Gue Gueemos intoduci so'e el ea de ta'a9o de la ta'la#

    Si S?-SBRC 2 Re%isto insetado#Si S?-SBRCY 2 @a cla!e del e%isto GueGue&amos inseta 0a e;ist&a en la ta'la#

    $am'in es posi'le intoduci datos desde unata'la intena.

    I9SER& ta' FR71 &AB(E inta'

    Si S?-SBRC 2 Re%istos insetados#

    Si e;iste al%Dn e%isto en la'ase de datos con cla!e i%ual a al%Dn e%isto de la ta'laintena se poduci un eo de e9ecuci)n del po%ama#

    @a ta'la intenapod tene la misma estuctua Gue la ta'la de 'ase de datos utili5andoI9C(DE S&RC&RE en su declaaci)n#

    ,,.3.3. PDA&E.

    @a sentencia PDA&Epemite modi,ica el contenido de uno o !aios e%istos#

    PDA&E ta'.

    CURSO ABAP/4 Pgina 44

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    45/134

    6odi,ica el e%isto de la 'ase de datos Gue est especi,icado en el e%isto deca'ecea#

    SiGueemos modi,ica el contenido de ms de un e%isto a la !e5JPDA&E ta' SE& capo alor :ERE cond.

    Con este P4A$* todos los e%istos Gue cumplanXcondY modi,ican el contenidodel XcampoY po X!aloY#

    $am'in es posi'le utili5a la clusula S*$ con

    capo capo alorocapo capo - alor

    *s posi'le modi,ica e%istos desde una ta'la intenaJ

    PDA&E ta' FR71 &AB(E inta'.

    Si el sistema no puede actuali5a un e%isto el poceso no ,inali5aa sino Guecontinua con el si%uiente e%isto#

    Si S?-SBRC 5 $odos los e%istos modi,icados#Si S?-SBRCW 4 o todoslos e%istos an sido modi,icados#

    *nS?-DBC9& $endemos la cantidad de e%istos modi,acados#

    ,,.3.4 17DIF?.

    @a sentencia 17DIF? se utili5a cuando no estemos se%uos si utili5a un(S*R$ o un P4A$*# *s deci cuando no sepamos con cete5a si un e%istoe;iste o no paa modi,calo o aadilo#

    17DIF? ta'.

    17DIF?ta' FR71 &AB(E inta'

    En caso de Gue sepamos si e;iste o no un e%isto po e,icacia utili5aemos (S*R$s oP4A$*s#

    ,,.3.< DE(E&E.

    Paa eali5a 'oados de datos se aplica la sentencia DE(E&E.

    DE(E&E ta'.

    CURSO ABAP/4 Pgina 45

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    46/134

    Boa el e%isto Gue especi,iGuemos en el ea de ta'a9o#

    Paa 'oa ms de un e%isto .todos los Gue cumplan una cieta condici)n#

    DE(E&E FR71ta' :ERE cond.

    Podemos 'oa de B44 todos los e%istos de una ta'la intena#

    DE(E&E FR71 ta' FR71 &AB(E inta'.

    Si S?-SBRC 2 $odos los e%istos an sido 'oados#Si S?-SBRC 7 o todos los e%istos ansido 'oados#*n S?-DBC9& $endemos la cantidad de e%istos 'oados#

    ,,.4 7tros aspectos de la pro!raacin de BDD.

    *l control del andante es automtico# Siempese pocesa el mandante enuso# SiGueemos contola manualmente el mandante en una instucci)n de lectua oactuali5aci)n utili5aemos la clusula C(IE9& SPECIFIED# *s deci si Gueemoso'tene o modi,ica datos de un cliente di,eente al de entada#

    @as instucciones (S*R$ 4*@*$* 6O4(FI 0 P4A$* se utili5an en lamedida Gue sea posi'le el meno nDmeo de !eces so'e ta'las SAP# Siempe seintenta inseta o modi,ica datos mediante tansacciones estndaes SAP o !&a

    Batc (nput# Ia Gue no siempe es ,cil conoce la comple9a estuctua de toda la'ase de datos SAP 0 as& nos ase%uamos no poduci al%una inconsistencia en la 'asede datos#

    *l Blo8ueo de o'%etos= Paa 'loGuea un e%isto en el momento de unaactuali5aci)n so'e ste utili5amos F7R PDA&E.

    SE(EC& SI9)(E F7R PDA&E U FR71 ta'.Si Gueemos 'loGuea todos los o'9etos Gue estn in!olucados en una

    actuali5aci)n se necesaio utili5a el MSAP (ocWin! &ec*ni8ueM. Cada aplicaci)ntiene mucos m)dulos de ,unci)n paa 'loGuea o'9etos# Paa 'uscalos se necesaio i

    al mantenimiento de m)dulos de ,unci)n 0 'usca po la cla!e Uen8ueueU o Ude8ueueU.

    Actualiacin de la 'ase de datos o Recuperacin=

    Paa ,inali5a una unidad de pocesamiento l)%ico ( de 'ase de datos seutili5a un C711I& 7R@; Gue eali5a un P4A$* ,&sico en la 'ase de datosaciendo ie!oca'le cualGuie modi,icaci)n en la 'ase de datos#

    Si deseamos desace todas las opeaciones eali5adas so'e la 'ase de datos desde elDltimo CO66($ KOR[ eali5aemos un R7((BAC@ 7R@.

    CURSO ABAP/4 Pgina 46

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    47/134

    C*e8ueo de autoriaciones=

    @as instucciones SQ@ de SAP no eali5an nin%una !ei,icaci)n de autoi5acioneslo cual esulta peli%oso 0a Gue todo el mundo puede accede a todos los datos Gue

    acceda a un epot#

    *s esponsa'ilidad del po%amado el compo'a si un usuaio est autoi5ado aaccede a esa in,omaci)n#

    Paa ceGuea las autoi5aciones de un deteminado usuaio utili5aemos lainstucci)n A&:7RI&?-C:EC@.

    A&7RI&?-C:EC@ 7BXEC& o'%etodeautoriaciID Capol FIE(D-$lID Catupo6 FIE(D $6

    ID Capo3 DIX11?.

    4onde XCampo.nY son los campos de autoi5aci)n del o'9eto 0 X,.nY es un!alo posi'le de autoi5aci)n#

    *l pameto 466I indica Gue no ace ,alta !ei,ica ese campo#

    Si S?-SBRC 2 suaio autoi5ado#Si S?-SBRC 2 suaio O autoi5ado#*n S?-DBC9& $endemos la cantidad de e%istos 'oados#

    *9emploJ

    =ei,ica el o'9eto de autoi5aci)n ]AceedoJ Autoi5aciones paa sociedades^.F@FA1B[ paa sa'e si el usuaio puede e,ectua la opeaci)n =isuali5a .21so'e po!eedoes de la sociedad 2221#

    A(\+OR($I C+*C[ OBN*C$ EF@FA1B[(4 EAC$=$ F(*@4 E21(4 EB[RS EF(*@4 E2221#

    Paa o'tene una documentaci)n ms e;austi!a so'e el ,uncionamiento delA$OR($I-C+*C[ !e la docuentacin 79(I9Edel edito de ABAP/7#

    Paa o'tene in,omaci)n so'e el mecanismode autoi5aciones de SAP !e elcuso CA5,5 Elconcepto de autoriaciones SAP.

    Sentencias en SK( natio=

    Podemos e9ecuta cualGuie sentencia de SQ@ pemitida po el %esto de 'ase dedatos so'e el Gue coa el sistema R/3 utili5ando EHEC SK(# *n este caso las

    CURSO ABAP/4 Pgina 47

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    48/134

    instucciones de 'ase de datos no estn estin%idas al su'con9unto SAP-SQ@ Gue emosestado estudiando a lo la%o de este cap&tulo#

    acias al inte,ace *M*C SQ@ tam'in es posi'le accede a datos e;tenos a SAPdesde un po%ama en ABAP/7#

    Sinta;isJ

    EHEC SK(. Instrucciones SK(-9atias.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 unaepesentaci)n ,&sica de ta'la en el %esto de 'ase de datos# Po e9emplo las ta'las de tipo

    POO@ 0 C@S$*R no son ta'las eales de 'ase de datos aunGue sean consideadascomo tales 0 mantenidas po el diccionaio de datos#

    Podemos enconta in,omaci)n complementaia 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

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    49/134

    ,6 Bases de Datos (!icas

    ,6., ZKue es una Base de datos l!ica [

    Paa o'tene datos en un po%ama e;isten dos posi'ilidadesJ- Po%ama la lectua de datos de la 'ase de datos en el mismo po%ama con lainstucci)n S*@*C$#

    - 4e9a Gue oto po%ama de lectua .B44 l)%ica lea los datos 0 se lospopocione en la secuencia apopiada#

    *n un epot se pueden simultanea los dos tipos de selecci)n de datos#na 'ase de datos l)%ica (DB popociona una !isi)n l)%ica de las ta'las

    ,&sicas pudiendo elaciona ta'las ente si# @as @4B simpli,ican la po%amaci)n deepots o,eciendo accesos de lectua !ei,icaci)n de autoi5aciones 0 seleccionesestandai5adas#

    @a comunicaci)n ente el po%ama de lectua 0 el epot Gue utili5a la 'ase dedatos l)%ica se eali5a mediante los e!entos P& # )E

    Po e%la %eneal utili5aemos 'ases de datos l)%icas Gue 0a e;isten en el sistemaaunGue tam'in es posi'le cea nue!as 0 modi,icalas# .$ansacci)n A(DB#

    Si utili5amos @4B 0a ceadas en el sistema Dnicamente tendemos Gue utili5a une!ento paa eco%e la in,omaci)n Gue el po%ama de lectua .Gue 0a e;iste nos !adando#

    Si po el contaio nos decidimos a cea una @4B con la tansacci)n A@4B elsistema %enea todo lo necesaio paa utili5a la 'ase de datos l)%ica inclu0endo el

    po%ama de lectua#

    ,6.6 tiliacin de las Bases de datos l!icas.

    @as 'ases de datos l)%icas tienen un nom'e de tes caactees siendo el Dltimocacte el m)dulo ,uncional al Gue !a dii%ido#

    *9emplo J

    [4F J clientes F1

    *n el po%ama Gue !a a utili5a 'ases de datos l)%icas se necesaio especi,icaen los ati'utos del po%ama la @4B Gue !a a se utili5ada# I en el c)di%o simplementeutili5aemos el e!ento )E

    )E& ta'la BDD,.sentencias eentoOO

    CURSO ABAP/4 Pgina 49

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    50/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    51/134

    Pantalla de SeleccinPro!raa de lectura

    F7R1 P& (FA, SE(EC& U FR71 (FAI

    P& (FA,. E9DSE(EC&.

    E9DF7R1. ReportF7R1 P& (FBI.

    SE(EC& U FR71 (FBI )E&P& (FB,. (FA,.

    O.O. E9DSE(EC&. )E&

    E9DF7R1. (FB,.

    OOO F7R1 P& BSI@. )E&

    SE(EC& U FR71 BSI@. [email protected]

    P& [email protected](EC&.E9DF7R1.

    $am'ine;iste la posi'ilidad de utili5a el e!entoJ

    )E& ta'BDD (A&E. #

    *ste e!ento se poduce cuando se an pocesado todas las entadas de ta'lassu'odinadas a un e%isto de datos de una ta'la 0 antes de Gue el sistema solicite la si%uienteentada de la misma ta'la .mismo ni!el 9eGuico#

    *;iste una instucci)n de salto o ,inali5aci)n de lectua de una ta'la REXEC&.

    REXEC&.

    *sta instucci)n sale del poceso del e%isto en cuso 0 continua con el poceso delsi%uiente e%isto dento del mismo ni!el de 9eaGu&a#

    Si indicamos un nom'e de ta'la lo Gue a se continua con el si%uiente e%isto dela ta'la especi,icada# ta'la no puede se un ni!el de 9eaGu&a ms po,undo Gue el actual#

    REXEC& ta'la.

    *n pincipioDnicamente utili5aemos la sentencia *$ 0a Gue utili5aemos @4B Gue0a e;isten en el sistema#

    CURSO ABAP/4 Pgina 51

    @FC1 BS([

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    52/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    53/134

    ,3. Fields )roups

    *n el cap&tulo 0a !imos Gue cuando Gueemos odena 0/o contola lasuptuas de campos en un epot es necesaio utili5a las ta'las intenas# Sin em'a%o

    e;iste ota utilidad del ABAP/7 Gue nos ,acilita estos pocesos de odenaci)n 0 uptuasen el caso de Gue sean comple9os#

    Supon%amos un listado en el Gue las l&neas sean de mu0 distinto tipo poe9emplo un listado de po!eedoes con datos %eneales de este .diecci)n### 0 las!entas Gue nos an eali5ado cada uno de los po!eedoes odenados po distintoscampos 0 con su'totales# *n este caso no tendemos ms emedio Gue utili5a di!esasta'las intenas una paa cada tipo de l&nea odena estas ta'las intenas 0 pocesalasadecuadamente#

    Paa casos como este ABAP/7 nos o,ece la tcnica especial de los FIE(D)R7PSMs.

    *sta tcnica consiste en cea con9untos de datos intemedios# .]intemediatedatasets^#

    Se de,inen los di,eentes e%istos con idntica estuctua dento de mismo tipode e%isto .F(*@4 ROP# Se necesaio de,ini todos los F(*@4 ROP al iniciodel epot con J

    FIE(D-)R7P = :EADER; $!,; $!6...

    *l F(*@4 ROP :EARDER es ,i9o# Contend los campos po los cualesGueenos odena el con9unto de datos intemedio#

    Paa detemina Gue campos petenecen a cada F(*@4 ROP utili5amos lainstucci)n J

    I9SER& capo, capo6.....capon I9&7 :EADER.I9SER& capo, capo6.....capon I9&7 $!,.

    n campo pod esta dento de !aios F(*@4 ROPS#

    Paa llena con datos los con9untos de datos intemedios se utili5a la instucci)nJ

    EH&RAC& $! ,.

    *sta instucci)n asi%na los contenidos de los campos especi,icados en el (S*R$al F(*@4 ROP indicado#

    *n cada *M$RAC$ el sistema eali5a automticamente una e;tacci)n de losdatos del F(*@4 ROP +*A4*R estos peceden siempe a los datos del F(*@4ROP so'e el Gue eali5amos el *M$RAC$#

    4atos +*A4*R 4atos X, %Y

    CURSO ABAP/4 Pgina 53

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    54/134

    Si al%Dn campo de la ca'ecea no se llena toma el !alo 2 de ,oma Gue elpoceso de odenaci)n ,uncione coectamente#

    =eamos el ,uncionamiento de los F(*@4 ROP\s con un e9emploJ

    Paa eali5a un listado de patidas de po!eedoes odenado po c)di%o depo!eedo 0 nDmeos de documentos de las di,eentes patidas#

    $AB@*SJ @FA1BS([#F(*@4-ROPSJ +*A4*R 4(R*CC(O (6POR$*S#(S*R$ @FA1-@(FR BS([-B*@R ($O +*A4*R#(S*R$ @FA1-A6*1 @FA1-S$RAS @FA1-PS$@ @FA1-OR$21

    ($O 4(R*CC(O#

    (S*R$ BS([-46B$R ($O (6POR$*S#T---------------------------------------------------------------------------------*$ @FA1#

    *M$RAC$ 4(R*CC(O#*$ BS([#

    *M$RAC$(6POR$*S#

    T---------------------------------------------------------------------------------

    *n cada *M$RAC$ se !a llenando el con9unto de datos intemedios#*M$RAC$ 4(R*CC(O

    *M$RAC$ 4(R*CC(OPRO=**4OR1 R(=*R@A4 4(AOA@ :1> BARC*@OA

    *M$RAC$ (6POR$**M$RAC$ (6POR$*

    PRO=**4OR1 4OC1 122#222

    As& el dataset se i llenandoJ

    PRO=**4OR1 R(=*R@A4 4(AOA@ :1> BARC*@OAPRO=**4OR1 4OC1 122#222PRO=**4OR1 4OC" "22#222PRO=**4OR" SAP A## PAB@O P(CASSO ">2"2 6A4R(4PRO=**4OR" 4OC1 "82#222

    CURSO ABAP/4 Pgina 54

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    55/134

    PRO=**4OR" 4OC" 1#"22#222

    na !e5 e;ta&dos los datos los podemos pocesa de ,oma similaa como loac&amos en las ta'las intenas#

    *n pime lu%a odenaemos el ]dataset con la instucci)n S7R @aodenaci)n se eali5a po los campos Gue indica el +*A4*RPosteiomente podemos pocesa los datos en un (77P### E9D(77P.

    pudiendo utili5a las instucciones de uptua po campos A& 9E 0 A& E9D 7F#$am'in podemos utili5a estos e!entos po inicio 0 ,inalde e%isto .F(*@4-ROP#

    Adems podemos compo'a si paa un e%isto e;isten e%istos asociados deoto tipo con el e!ento J

    A& $!, I&: $!6.O

    E9DA&.

    Po e9emploJ si e;isten e%istos de impotes paa un e%isto de diecci)nimpimi en el epot los datos de diecci)n#

    A$ 4(R*CC(O K($+ (6POR$*S#KR($*J @FA1-A6*1#####

    *4A$#

    $am'in podemos conta o suma po campos con las instuccionesJ

    C9& capo.S1 capo.

    As& pod&amos completa nuesto listado de po!eedoes del e9emplo conJ

    *4-OF-S*@*C$(O#SOR$#@OOP#

    A$ 4(R*CC(O K($+ (6POR$*S#KR($*J @FA1-A6*1 @FA1-S$RAS @FA1-PS$@ @FA1-OR$21#

    *4A$#A$ (6POR$*S#KR($*J BS([-B*@R BS([-46B$R#

    *4A$#A$ *4 OF @FA1-@(FR#

    S[(P#KR($*J ]Suma po!eedo^ @FA1-@(FR

    S6 .BS([-46B$RS[(P#

    *4A$#*4@OOP#

    CURSO ABAP/4 Pgina 55

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    56/134

    ,4. Forateando un listado

    ABAP/7 tiene una seie de instucciones especialmente diseadas paa Gue la%eneaci)nde epots sea ms sencilla#

    ,4., Forato de los datos de salida.

    CURSO ABAP/4 Pgina 56

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    57/134

    Ia emos !isto en el cap&tulo > unesumen de las sentencias de salida de epotsms 'sicas#

    RI&E /o$$setIon! Gdatos a isualiarY.

    (I9E /o$$setIon! Gdatos a isualiarY.S@IP n.

    9E-PA)E.

    Adems de estas sentencias ,undamentales tenemos a nuesta disposici)n otasposi'ilidadesJ

    Paa esci'i un campo !aia'le o liteal 9ustamente de'a9o de otos sin tene

    Gue calcula la columna utili5amos la clusula 9DER del KR($*#

    RI&E capo6 9DER capo ,.

    Si Gueemos especi,ica la columna de un te;to en ,oma de !aia'le utili5amos#

    P7SI&I79 coluna.

    Si Gueemos i a una deteminada l&nea dento de la misma p%ina#

    S@IP &7 (I9E n.

    Cuando utili5amos la instucci)n KR($* con nDmeos empaGuetados el sistematunca po la i5Guieda encaso de se necesaio .de9a un T como indicado de Gue atuncado 0 ellena con 'lancos si so'a espacio# $enemos Gue tene cuenta Gue si esne%ati!o el si%no ocupa una posici)n# Si se especi,ican los decimales con la clusula4*C(6A@S del 4A$A el punto o coma decimal tam'in ocupa una posici)n# *lsi%no decimal .punto o coma esta deteminado po los !aloes del e%isto de usuaio#

    *9emploJ

    4A$A 6*RO $IP* P 4*C(6A@S " =A@* -1"378:#KR($* 6*RO#1#"378:-

    0 si no ca'e el nDmeoJKR($* .: 6*RO#T78:-

    Podemos ,omatea la salida de un nDmeo empaGuetado#

    CURSO ABAP/4 Pgina 57

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    58/134

    *!itamos Gue apae5ca el si%no con 97-SI)9.

    RI&E capo 97-SI)9.

    Paa !isuali5a impotes coectamente dependiendo de la moneda del impoteusaemos el CRRE9C?=

    RI&E capoiporte CRRE9C?oneda.

    Si se desea ,omatea la salida de un campo se%Dn una cieta mscaautili5aemos el pameto SI9) EDI& 1AS@ GascaraY de la instucci)nKR($*#

    RI&E capo SI9) EDI& 1AS@YascaraY.

    @os caactees de la mscaa pueden seJ

    ] ] J un cacte del campo a ,omatea#]J J un sepaado# Puede se cualGuie cacte especial menos el ]-]#]@@^ J 9usti,ica po la i5Guieda .!alo po de,ecto# .Al pincipio de la

    mascaa# mascaa#]RR^ J 9usti,ica po la deeca# .Al pincipio de la mascaa#

    *9emploJKR($* /.> SI-*($ (NS( *4($ 6AS[ ]JJ^#

    SiGueemos supimi los ceos iniciales de una cadena de caactees aemosJ

    RI&E capoCaracter 97-\ER7.

    Paa ,omatea ,ecas es posi'le eali5aJ

    RI&EcapoFec*a DD/11/??.RI&EcapoFec*a 11/DD/??.RI&EcapoFec*a DD/11/????.RI&EcapoFec*a 11/DD/????.

    Podemos modi,ica los ati'utos de pantalla paa un campo#F7R1A& I9&E9SIFIED 79/7FF.F7R1A& I9>ERSE 7FF/79.F7R1A& I9P& 7FF/79.F7R1A& C7(7R n.F7R1A& RESE&.

    =e la docuentacin 7nline del edito ABAP/7 paa o'tene in,omaci)n masdetallada so'e los usos 0 sinta;is posi'les de esta instucci)n#

    CURSO ABAP/4 Pgina 58

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    59/134

    ,4.6 Forato de p!ina.

    $am'in a0 un %upode instucciones destinadas a da ,omato a la salida delepot 0a sea po pantalla o po impesoa#

    Podemos ace tatamientos po inicio 0 ,in de p%ina con los e!entosJ

    &7P-7F-PA)E # E9D-7F-PA)E.

    *4-OF-PA* no se e9ecuta si el salto de p%ina se poduce con un 9E-PA)E.

    Si no Gueemos Gue la ca'ecea del epot sea la estnda de SAP 0a Guela Gueemos contola nosotos diectamente en el e!ento $OP-OF-PA*utili5aemosJ

    REP7R& \+++++++ 97 S&A9DARD PA)E :EADI9).

    *l ,omato de la p%ina de epot se de,ine tam'in desde la instucci)nREP7R&.

    REP7R& \+++++++ (I9E-SI\E n Anc*o de lnea. (I9E-C79& n (neas por p!ina n.

    Si se desea sepueden

    reserar lneas paraun

    pie de p!ina .PA)E-C79& n. 9o. +io de p!inas.

    Podemos impedi Gue con un salto de p%ina se coten l&neas Guepetene5can a una a%upaci)n de l&neas con si%ni,icado l)%ico popio# Con la instucci)nR*S*R=* ese!amos un nDmeo de l&neas#

    RESER>E n (I9ES.

    *sta instucci)n se coloca 9usto antes del Hite Gue se Guiee ]ese!a^ si noca'e se impimi en la si%uiente p%ina#

    +a0 !aias ,omas de impimiun epotJ

    - na !e5 a salido el epot po pantalla con la opci)n de \(mpimi\#- (mpimi sin !isuali5a po pantalla conla opci)n \(mpimi\ desde la

    pantalla de selecci)n o de pametos#

    4esde el po%ama ABAP/7 podemos contola la impesi)n con la instucci)nJ

    CURSO ABAP/4 Pgina 59

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    60/134

    9E-PA)E PRI9& O/OFF Pantalla o impesoa#97.DIA(7) o !isuali5a la pantalla de

    opciones de impesi)n#(I9E-C79& n @&neas po p%ina#

    (I9E-SI\E n $amao de l&nea#DES&I9A&I79 des (mpesoa destino#I11EDIA&E(? +. (mpesi)n inmediata S/#

    Paa ms in,omaci)n so'e otas opciones !e la a0uda del edito de ABAP/7#

    Paa detemina ,omatos especiales de impesi)n utili5aemos lainstucci)n PRI9&-C79&R7(.

    PRI9&-C79&R7( F79& n

    CPI n(PI nSI\E nC7(7R color(EF& 1AR)I9 col.

    Paa ms in,omaci)n so'e otas opciones!e la a0uda del edito de ABAP/7#

    ,4.3 Seleccin de paretros. Pantalla de seleccin SE(EC&I79 SCREE9.

    Si deseamos intoduci una seiede delimitaciones enla e9ecuci)n de un epot ani!el de pametos dispondemos de dos posi'ilidades#

    - *l PARA1E&ERSGue pemite utili5a pametos de cualGuietipo en lapantalla de selecci)n#

    - *l SE(EC&-7P&I79S Gue pemite detemina un citeio de selecci)n de losdatos a utili5a en el epot#

    T *n el cap&tulo > 0a !imos la sinta;is pincipal de la sentencia PARA6*$*RS#

    PARA1E&ERS= ar &?PE tipo(I@E tipoDEFA(& alor (%ual Gue el =A@*#7B(I)A&7R? O'li%a a intoduci al%Dn !alo#(7ER CASE. Pemite intoduci minDsculas#

    T @a instucci)n S*@*C$-OP$(OS J

    SE(EC&-7P&I79S ar F7R capota'la.

    ar como muco tend > caactees#

    CURSO ABAP/4 Pgina 60

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    61/134

    @a !aia'le ar toma los posi'les !aloes a selecciona 0 capota'lanos indicapaa Gue campo 0 de Gue ta'la se utili5ado el pameto .esto impl&citamentenos est dando el tipo 0 la lon%itud de los posi'les !aloes#

    Con esta sentencia automticamente en la pantalla de selecci)n se podn

    intoduci an%os de !aloes posi'les paa el pameto#

    *9emplo J

    Paa cada sentencia S*@*C$-OP$(OS el sistema cea una ta'la intena con el

    nom'e de XarY# Cada e%isto de la ta'la est ,omado po los campos XarY-(7;XarY-SI)9 XarY-7P&I79#*l contenido de cada e%isto se especti!amenteJ el !alo in,eio el supeio

    el si%no .Incluido/E;cluido 0 el opeado#*n la pantalla de selecci)n si Gueemos eali5a una selecci)n compuesta de ms

    de una condici)n .ms de un e%isto en la ta'la intena tendemos Gue ace un ClicLso'e la Fleca situada a la deeca de cada campo#

    Paa selecciona los datos de lectua en tiempo de e9ecuci)n mediante los !aloesde selecci)n utili5aemos la clusula K+*R* de la instucci)n S*@*C$ 0 el opeadoI9 Gue 'usca en la ta'la de 'ase de datos todos los e%istos Gue cumplan las

    condiciones incluidas en la ta'la intena de la pantalla de selecci)n#SE(EC&-7P&I79S ar F7R capo.

    SE(EC& U FR71 ta' :ERE capo I9 ar.*n la pantalla de selecci)n apaece el te;to ar como comentaio a la

    selecci)n de datos si Gueemos Gue el te;to sea distinto al nom'e de la !aia'letendemos Gue i a la opci)n &e+tos de seleccin del menD Pasar a - Eleentos dete+to.

    =eamos aoa Gue otas opciones e;isten en la utili5aci)n de la instucci)n

    S*@*C$-OP$(OS#CURSO ABAP/4 Pgina 61

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    62/134

    Paa asi%na !aloes iniciales a un citeio de selecci)n utili5amos laclusula DEFA(&.

    SE(EC&-7P&I79S ar F7R capo DEFA(& GalorY#

    Si Gueemos iniciali5a un an%o de !aloes .in,eio 0 supeio usaemosJ

    SE(EC&-7P&I79S ar F7R capoDEFA(&YiniY&7Y$inY.

    Podemos ace Gue se acepten !aloes en minDsculas#

    SE(EC&-7P&I79S ar F7R capo (7ER CASE

    Podemos o'li%a a Gue se intodu5can !aloes de selecci)n ine!ita'lemente#

    SE(EC&-7P&I79S ar F7R capo 7B(I)A&7R?. $am'in es posi'le desacti!a la posi'ilidad de intoduci seleccionescon condiciones compuestas# .4esapaece la ,eca#

    SE(EC&-7P&I79S ar F7R capo 97-EH&E9SI79. $am'in es posi'le ,omatea a nuesto %ustola pantalla de selecci)n con

    SE(EC&I79-SCREE9.

    Podemos intoduci comentaios paa un pameto#

    SE(EC&I79-SCREE9 C711E9& collon! &EH&-nnn.

    (ndicndole la columna la lon%itud del comentaio 0 elte;to del comentaio losituaemos en un te;to numeado .!e 17#7#

    Si adems Gueemos Gue al pulsa Fl .elp so'e el comentaio apae5ca lamismaa0uda Gue so'e el campoJ

    SE(EC&I79-SCREE9 C711E9& colIon! &EH&-nnnF7R FIE(D capo.

    Otas posi'ilidades pueden se intecala l&neas en 'lanco o su'a0ados en lapantalla de selecci)n#

    SE(EC&I79-SCREE9 S@IP n.SE(EC&I79-SCREE9 (I9E collon!.

    *s posi'le tam'in utili5a !aias p%inas de selecci)n con J

    SE(EC&I79-SCREE9 9E-PA)E.

    CURSO ABAP/4 Pgina 62

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    63/134

    Podemos eali5a !ei,icaciones de los datos entados en la pantalla deselecci)n con el e!ento#

    A& SE(EC&I79-SCREE9 79 capo.

    OE9DA&.

    Podemos eali5a !aias selecciones en la misma l&nea conJ

    SE(EC&I79-SCREE9 BE)I9 7F (I9E

    ...SE(EC&I79-SCREE9 E9D 7F (I9E

    *neste caso no apaecen los te;tos de selecci)n#

    ,4.4 Eleentos de te+to # 1ensa%es

    *l entono de desaollo de po%amas en ABAP/7 nos pemite mane9aelementos de te;to sin necesidad de codi,icalos en el po%ama#

    @os elementos de te;to pueden se t&tulos de epots ca'eceas de epots te;tosde selecci)n 0 te;tos numeados#

    Podemos accede a la pantalla de tatamiento de los elementos de te;tos desde eledito de po%amasJ Pasar a - Eleentos de te+to.

    Con los &tulos # Ca'eceras podemos tata el t&tulo ca'eceas de epot 0ca'eceas de columna Gue saldn po pantalla e impesoa#

    Con los &e+tos de seleccin tataemos los comentaios Gue acompaan a lospaametos del tipo PARA6*$*RS o S*@*C$-OP$(OS#

    Con los &e+tos nuerados podemos utili5a constantes de tipo te;to sinnecesidad de declaalas en el c)di%o del po%ama# @os nom'es de las constantes sen

    &EH&-+++; donde +++ son tes caactees cualGuiea# Adems podemos mantene loste;tos numeados en !aios idiomas#

    Otas de las ,acilidades Gue nos o,ece ABAP/7 paa el ,omateo 0 contol deepots es la de los ensa%es de dilo!o. @os mensa9es de dilo%o son aGuellosmensa9es Gue apaecen en la l&nea de mensa9es 0 Gue son mane9a'les desde un po%ama#

    @os mensa9es estn a%upados en eas de mensa9es# Paa indicaGue ea demensa9es !amos a utili5a en un epot utili5amos 1ESSA)E-ID en la instucci)nR*POR$#

    CURSO ABAP/4 Pgina 63

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    64/134

    REP7R& report 1ESSA)E-ID rea.

    Podemos !e cea 0 modi,ica eas de mensa9esdesde el editoJ Pasar a - 1ensa%es

    Paa !isuali5a un mensa9e utili5amos la sentencia 6*SSA*#

    1ESSA)E &nnn.

    4onde nnnes el nDmeo de mensa9e dento de su especti!a ea de mensa9es 0&es el tipo de mensa9eJ

    A W Cancelaci)n o ]A'end^ del poceso#

    E W *o# *s necesaia una coecci)n de los datos#

    I W (n,omaci)n# 6ensa9e meamente in,omati!o#*l poceso continua con un *$*R#

    S W Con,imaci)n# (n,omaci)n en la pantalla si%uiente#

    W Kanin%# os da un a!iso#Podemos cam'ia los datos o pulsa ]into^ paa continua#

    Si seemiten mensa9es del tipo K o * en e!entos S$AR$-OF-S*@*C$(O o*4-OF-S*@*C$(O o *$ se compotan como si ,uean del tipo A#

    Podemos acompaa los mensa9es de pametos !aia'les#

    1ESSA)E &nnn I&: ar, ar6...

    *n la posici)n del mensa9e Gue se encuente el s&m'olo ] podemos utili5a paa!isuali5a el !alo Gue le pasemos como pameto a la instucci)n 6*SSA*#

    o podemos utili5a ms de 7 pametos po mensa9e#@os datos so'e mensa9es estn en la ta'la &,55.

    *9emploJ

    bea de mensa9es #6ensa9e J 228 W *ntada - incoecta#

    R*POR$ PR*BA 6*SSA*-(4 #####

    (F####

    6*SSA* A228 K($+ S[A1 [$OP@#*4(F#

    *l mensa9eo'tenido seJCURSO ABAP/4 Pgina 64

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    65/134

    A: Entrada SKA1-KTOPL Incorrecta

    CURSO ABAP/4 Pgina 65

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    66/134

    ,< Field S#'ols

    Cuando tenemosGue pocesa una !aia'le peo Dnicamente conocemos de Gue!aia'le se tata 0 c)mo tenemos Gue pocesala en tiempo de e9ecuci)n lo aemos

    mediante los ],ield s0m'ols^# Po e9emplo siestamos pocesando cadenas 0 Gueemospocesa una pate de la cadena cu0a posici)n 0 lon%itud depende del contenido de lamisma utili5aemos ],ield s0m'ols^# @os Field S0m'ol tienen cieta similitud con los

    punteos o apuntadoes de otos len%ua9es de po%amaci)n#

    @os Field S0m'ol pemiten soluciones ele%antes a po'lemas peo su utili5aci)nincoecta puede implica esultados impedeci'les#

    @os Field S0m'ol se declaan conJ

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

    @a declaaci)n se eali5a en la utina o m)dulo de ,unci)n donde se utilice#

    Paa asi%na un campo a un ]Field S0m'ol^ utili5aemos la instucci)n ASS(#na !e5 asi%nado cualGuie opeaci)n Gue ealicemos so'e el ,ield s0m'ol a,ecta alcampo eal# o a0 nin%una di,eencia ente utili5a el campo o el ,ield s0m'ol#

    ASSI)9 capo &7 ^Field S#'olV.

    *9emplos J

    ,.-F(*@4-SI6BO@S XFY#ASS( $R4(R-A6* $O XFY# ]PR*BA^6O=* ]PR*BA^ $O XFY#KR($* $R4(R-A6*#

    6.- F(*@4-SI6BO@S XFY#$*M$OW^ABC4*F+^#((C(O W "# ]C4*F^@O($4 W8#ASS( $*M$OZ((C(O .@O($4 $O XFYKR($* XFY

    3.- URellena conceos po la i5Guieda#FOR6 PO*RC*ROS S( 6*RO =A@* .@O($4#

    F(*@4-SI6BO@SJ XP$*ROY#@O($4 W @O($4 - 1#ASS( 6*ROZ@O($4.1 $O XP$*ROY

    CURSO ABAP/4 Pgina 66

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    67/134

    K(+(@* XP$*ROY *Q SPAC*#S+(F$ 6*RO R(+$#KR($* ]O^\$O 6*RO.1#

    *4K+(@*#*4FOR6#

    $am'in es posi'le utili5a asi%naci)n dinmica# *sto pemite asi%na un campoGue s)lo conocemos en tiempo de e9ecuci)n a un ,ield s0m'ol#

    Se necesaio encea el campo ente pantesis en la asi%naci)n del ,ields0m'ol#

    ASSI)9 capo &7 ^Field S#'olV.

    *9emploJ

    4A$AJ CA6PO.12#F(*@4-SI6BO@SJ XFY# ]PR*BA^6O=*^$R4(R-A6*U $O CA6PO #

    ASS( .CA6PO $O XFY#KR($* XFY#

    Paa in,omaci)n adicional so'e los Field S0n'ols !e Cap= ,5 del ABAP/4Pro!rain! Reports.

    ," Batc* Inputs

    ,".,IntroduccinCURSO ABAP/4 Pgina 67

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    68/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    69/134

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    70/134

    *l ,iceo secuencial tend unaestuctua de e%isto Gue de'e se conocidapo el eGuipo de desaollo de SAP# enealmente0 siempe Guesea posi'le se asociaun e%isto a una tansacci)n de datos SAP# Po e9emplo en el caso de altas demateiales en un e%isto se %uadan todos los datos necesaios paa da de alta un

    Dnico mateial#

    Po e%la %eneal el sistema e;teno es un ,iceo secuencial en el Gue seencuentan los datos con los Gue se desean simula las tansacciones# o o'stante notiene Gue se necesaiamente un ,iceo secuencial sino Gue puede se cualGuie ,uentede in,omaci)n Gue ten%amos .ta'las ,&sicas de SAP ta'las de otas 'ases de datoselacionales; etc##

    ,".6.6 El pro!raa Batc* Input.

    *s el Dnico desaollo Gue se de'e ace en ABAP/7#*l po%ama de Batc (nputlee el ,iceo secuencial 0 tans,oma los datos aun ,omato deteminado paa almacenalos en una entada del ,iceo de colas# 4icasentadas se denominan sesiones. Cada po%ama de Batc (nput %enea una sesi)n# *stassesiones pueden contene una o mDltiples tansacciones#

    na tansacci)n en SAP consta de una seie de pasos de dilo%o# *l po%ama deBatc (nput de'e pepaa los datos paa cada uno de los pasos de dilo%o de latansacci)n#

    Po e9emplo ima%inemos Gue paa da de alta un mateial el sistema e9ecuta unatansacci)n de tes pantallasJ

    Pantalla 1J *ntada de los datos so'e el diseo de mateial .peso altua!olumen####Pantalla 2: *ntada de los datos so'e !entas del mateial .pecio descuentos## #Pantalla 3: *ntada de los datos so'e la poducci)n .costes almacena9e### #

    *l po%ama Gue %enee la sesi)n de altas de mateiales de'e po tantopo%ama la secuencia de acciones 0 pantallas en el mismo oden Gue la tansacci)n 0pepaa los datos en cada una de estas pantallas paa cada mateial Gue se Guiea da dealta# Po ello antes de po%ama un Batc (nput es necesaio un conocimientoe;austi!o de la tansacci)n Gue se desea simula puesto Gue %anaemos muco tiemposi estudiamos pe!iamente el ,uncionamiento de sta#

    C)mo se codi,ica un Batc (nput lo !eemos ms adelante#

    *l esultado de esta etapa se una sesi)n de Batc (nput %a'ada en un ,iceo 0Gue posteiomente de'e pocesase paa ca%a ,&sicamente los datos en el sistemaSAP#

    ,".6.3 El $ic*ero de colas.

    CURSO ABAP/4 Pgina 70

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    71/134

    $odos los po%amas Batc (nput %a'an entadas .sesiones en el $ic*ero decolas# Paa posteiomente pode identi,ica cual es la sesi)n Gue nos inteesa pocesalas sesiones poseen un ,omato deteminadoJ

    om'e de la sesi)n#

    suaio Gue a ceado la sesi)n#6andante en el Gue de'e pocesase#Dmeo de tansacciones Gue contiene#Dmeo de pantallas Gue contiene#4atos adicionales#

    na sesi)n de Batc (nput puede encontase en uno de los si%uientes estados#

    Aprocesar= Si la sesi)n toda!&a no a sido pocesada#

    Procesada = Si las tansacciones Gue componen la sesi)n an sido e9ecutadas&nte%amente sin eoes#

    Errneas = Si en la sesi)n aDn Guedan tansacciones Gue no se an pocesadocoectamente# Cuando una sesi)n est en estado incoecto no Guiee deciGue las tansacciones Gue conten&a no a0an sido pocesadas sino Gue al%unasse an pocesado 0 otas no# *stas tansacciones e)neas las podemosepocesa ms adelante es deci nunca pedemos una tansacci)n a no seGue e;pl&citamente 'oemos la sesi)n#

    Siendo creada = Si a0 un po%ama Batc (nput Gue est %eneando unasesi)n en ese momento#

    En proceso = Si seest pocesado en ese instante la tansacci)n#

    Fondo = Si se a lan5ado la sesi)npaa Gue se pocese peo toda!&a no acomen5ado ae9ecuta po ,alta de ecusos del sistema#

    ,".3 Fase de procesado de una sesin.

    Paa %estiona el ,iceo de colas utili5aemos la tansacci)n S13< SisteaSericios Batc* Input &ratar.

    6ediante esta tansacci)n podemos consulta elimina 0 pocesa todas lassesiones de Batc (nput#

    na !e5 %eneada la sesi)n con el po%ama Batc (nput accedeemos a latansacci)n S638 0 macaemos la sesi)n Gue nos inteesa pocesa#

    *;isten 3 tipos de pocesamientoJ

    Procesar isi'le.Procesar isualiando slo errores.

    CURSO ABAP/4 Pgina 71

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    72/134

    Procesar en inisi'le.

    4uante la e9ecuci)n de una sesi)n se i %a'ando en un ]lo%^ de poceso elesultado de cada tansacci)n# *nte la in,omaci)n Gue nos o,ece el lo% destacaJ

    +oa de inicio de poceso de la sesi)n# +oa de inicio de poceso de cada tansacci)n# 6ensa9es de incidencia o de poceso coecto .los mismos Gue da&a

    la tansacci)n en el caso de e9ecutala manualmente# *stad&stica ,inal de pocesoJ

    $ansacciones le&das# $ansacciones pocesadas con ;ito# $ansacciones e)neas#

    Siempe Gue e;istan tansacciones con eoes se podn epocesa#

    Procesaiento >isi'le = Con este mtodo se pocesa cada una de las tansacciones!isualmente es deci el usuaio !a !isuali5ando todas 0 cada una de las pantallas Gueemos po%amado# *l usuaio Dnicamente de'e i pulsando XintoY paa salta deuna pantalla a ota# Asimismo si se cee con!eniente se pemite modi,ica los!aloes de al%Dn campo de la pantalla#

    Si una tansacci)n no inteesa pocesala podemos cancelala .pudiendo see9ecutada con posteioidad o podemos 'oala .no se pod e9ecuta# $odas lastansacciones Gue cancelemos se %a'an en la sesi)n 0 la sesi)n pasa a esta enestado incoecto#

    o de!uel!e el contol del sistema al usuaio asta Gue todas las tansaccionesa0an sido pocesadas o cancelemos el Batc (nput#

    Procesaiento Inisi'le=*l sistema pocesa en ,ondo 'atc la tansacci)n# *sdeci toda la e9ecuci)n es tanspaente al usuaio# *l usuaio ecupea el contol delsistema inmediatamente# Paa !e el esultado de la e9ecuci)n de una sesi)n tendGue !e el ]lo%^ de poceso una !e5 a0a ,inali5ado#

    Procesaiento isualiando slo errores= *l sistema pocesa cada una de lastansacciones en modo in!isi'le asta Gue detecte un eo en cu0o caso paa el

    poceso en la pantalla donde se a poducido el eo pudiendo entonces el usuaio

    detecta 0 coe%i dico eo o cancela la tansacci)n# na !e5 coe%ido el eo ocancelada la tansacci)n el sistema continua pocesando el esto de tansacciones#

    o de!uel!e el contol del sistema al usuaio asta Gue todas las tansacciones a0ansido pocesadas o cancelemos el Batc (nput#

    ,".4 Conse%os prcticos en la utiliacin de Batc* Inputs#

    Paa conoce el c)di%o de la tansacci)n el nom'e de las pantallas de cadatansacci)n 0 los nom'es de los campos Gue se desean completa aemos lo

    si%uiente JCURSO ABAP/4 Pgina 72

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    73/134

    C)di%o de la tansacci)nJ *nta en la tansacci)n a simula e i a SisteaStatus.

    om'e de la pantalla J na !e5 estanos en la pantalla Gue necesitamos

    acemos lo mismo Gue en el punto anteio anotando el po%ama .40npo 0el nDmeo de d0npo#

    om'e de los campos J na !e5 situados so'e el campo en cuesti)n pulsa Fl0 se%uidamente el 'ot)n de datos tcnicos# Anotaemos el nom'e de la ta'lade 'ase de datos 0 del campo#

    *s posi'le Gue mientas se est pocesando una sesi)n de Batc (nput el sistemacai%a po!ocando la pdida de la misma# Cuando el sistema !uel!a a la situaci)nnomal la sesi)n apaentemente se encuenta en estadoProcesando# *n ealidad esto

    no es cieto 0a Gue la sesi)n no est aciendo nada peo tampoco emos pedidonada# *l sistema a' e9ecutado todas las tansacciones asta el momento de la ca&da0 podemos ecupea de una manea se%ua el esto de la sesi)n de la si%uiente ,omaJ

    4esde la tansacci)n S638 maca la sesi)n de Batc (nput en cuesti)n# *le%iXue!o de datos - (i'erar # *n ese momento la sesi)n pasa a modo a procesar 0

    podemos e9ecuta las tansacciones Gue ,alta'an#Antes de pocesa una sesi)n de Batc (nput podemos compo'a si los datos de

    entada 0 la secuencia de pantallas Gue emos po%amado es la espeada# Paa ellodesde la S638 seleccionaemos la sesi)n Gue Gueenos anali5a 0 aemosJ

    Pasar a Anlisis Xue!o de datos.

    Si se est e9ecutando una tansacci)n en modo (n!isi'le podemos i !iendo el ]@o%^de poceso de las tansacciones Gue se !an e9ecutando# na utilidad pctica es en elcaso de un ele!ado nDmeo de tansacciones mia el tiempo de poceso de unatansacci)n 0 e;tapola este dato paa todo el poceso paa tene una idea de la oaen la Gue ,inali5a el poceso#

    Antes de eali5a un po%ama de Batc (nput es aconse9a'le ase%uase de Gue SAP

    no dispon%a 0a del mismo# Po e9emplo SAP nos o,ece 'astantes Batc (nputs paaca%a de datos# Po e9emploJ

    Ca%a de clientes#Ca%a de po!eedoes#Ca%a de documentos conta'lesCa%a de pedidos pendientes#Ca%a de condiciones#Ca%a de stocLs ###

    )tese Gue ente la ,ase de %eneaci)n 0 la ,ase de pocesado e;iste un tiempo

    indeteminado# Si este tiempo es mu0 %ande es posi'le Gue duante la ,ase deCURSO ABAP/4 Pgina 73

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    74/134

    pocesado se podu5can numeosos eoes 0a Gue es posi'le Gue a0a cam'iado elestido en el Gue se lle!o a ca'o la ,ase de %eneaci)n#

    Po e9emplo si %eneamos una sesi)n de Batc (nput donde se intenta modi,icaun cieto mateial 0 antes de Gue se mande pocesa esta sesi)n el mateial se da de

    'a9a duante la e9ecuci)n de la sesi)n el sistema se Gue9a de Gue dico mateial noe;iste#

    Ota posi'le causa de eoes mu0 comDn duante el pocesamiento de sesiones esGue en aGuellos campos Gue tienen ta'las de !ei,icaci)n intodu5camos !aloes Gueno estn dados de alta en las ta'las de !ei,icaci)n# Po e9emplo si indicamos unasociedad Gue no est en la ta'la $OO1 .sociedades#

    Ota manea de lan5a sesiones de Batc (nput es e9ecutando el epot RSBDCSB#Po e9emplo podemos e9ecuta la sesi)n de Batc (nput inmediatamente despus dese %eneada llamando a este epot con los pametos adecuados desde el mismo

    po%ama ABAP/7 Gue %enea la sesi)n#

    ,".< Codi$icacin de Batc* Inputs.

    +asta aoa emos !isto Gue la tcnica del Batc (nput consiste en la %eneaci)nde una sesi)n con los datos a intoduci en el sistema 0 el pocesamiento de los datos enel sistema destino# *n este apatado !eemos c)mo codi,ica el Batc (nput paa %eneasesiones de este tipo 0 otas dos tcnicas ms de Batc (nput .CA@@ $RASAC$(O 0CA@@ 4(A@O#

    Paa intoduci los !aloes en las distintas pantallas de cada tansacci)nutili5aemos una ta'la intena con una estuctua estnda# .B4C4A$A#

    DA&A= BE)I9 7F ta'BI 5CCRS n.I9C(DE S&RC&RE BDCDA&A.

    DA&A= E9D 7F ta'BI.

    @os campos Gue componen esta ta'la intena sonJ

    PR7)RA1 =om'e del po%ama donde se eali5a el tatamiento de cada pantalla

    .40npo de la tansacci)n#

    D?9PR7 =Dmeo de la pantalla de la cual Gueemos intoduci datos#

    D?9BE)I9 =(ndicado de Gue se inicia una nue!a pantalla#

    F9A1 =Campo de la pantalla# .38 Caactees como m;imo#

    F>A(==alo paa el campo de la pantalla# .>2 Caactees como m;imo#

    CURSO ABAP/4 Pgina 74

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    75/134

    O'tendemos la in,omaci)n del nom'e del po%ama 0 el nom'e del d0npocon Sistea Status.

    O'tendemos el nom'e del campo con Fl .4atos $cnicos o podemos !e todoslos campos de una pantalla con el sceen painte .Field list#

    *n esta ta'la intena %a'aemos un e%isto po cada campo de pantalla Guein,omemos 0 un e%isto adicional con la in,omaci)n de cada pantalla#

    *l pime e%isto de cada pantalla en la ta'la intena ta'B( contend losdatos Gue identi,ican la pantallaJ om'e del po%ama .PRORA6 nom'e de la

    pantalla .4IPRO 0 un indicado de inicio de d0npo .4IB*(#

    *9emploJ $ansacci)nJ FSS(Po%amaJ SAP6F2"+40npo J 212"

    ta'B (-PRORA6 W^SAP6F2"+ #ta'B (- 4IPRO W^212"^#ta'B (- 4IB*( W^M #

    APP*4 ta'B(#

    Se%uidamente paa cada campo de la pantalla Gue in,omemos %a'aemos une%isto ellenando Dnicamente los campos FA6 .con el nom'e del campo de

    pantalla 0 F=A@ .con el !alo Gue le !amos a da#

    *9emploJ Rellena campo RF2"+-SA[R con !aia'le =ARC$A#Rellena campo RF2"+-B[RS con !aia'le =ARSOC#

    C@*AR ta'B(#ta'B( -FA6 W^RF2"+-SA[R^#ta'B( -F=A@ W =ARC$A#APP*4 ta'B(#

    C@*AR ta'B(#ta'B( -FA6 W^RF2"+-B[RS^#ta'B( -F=A@ W =ARSOC#APP*4 ta'B(#

    *l po%ama Batc (nput tiene Gue ,omatea los datos tal 0 como lo a&a elusuaio manualmente# $eniendo en cuenta GueJ

    - S)lo se pemiten caactees#- @os !aloes an de se de meno lon%itud Gue la lon%itud de los campos#- Si los !aloes de entada son de lon%itud meno Gue el campo SAP tendemos

    Gue9usti,ica a la i5Guieda#

    Si necesitamos in,oma campos Gue apaecen en pantalla en ,oma de ta'latendemos Gue utili5a &ndices paa da !aloes a cada l&nea de pantalla 0 %a'a en lata'la intena un e%isto po cada l&nea de pantalla#

    CURSO ABAP/4 Pgina 75

  • 8/12/2019 [Abap] Abap4 Manual - Curso

    76/134

    *9emploJ

    C@*AR ta'B(#ta'B( -FA6 W^campo.&ndice^#ta'B( -F=A@ W^!alo^#

    APP*4 ta'B(#

    Si necesitamos po!ee de una tecla de ,unci)n a la pantalla usaemos el campoBDC7@C7DE# *l !alo del campo se el nDmeo de la tecla de ,unci)n pecedido deuna 'aa inclinada#

    *9emplo J

    C@*AR ta'B(#ta'B( -FA6 W B4CO[CO4*#ta'B(-F=A@ W ]/13^# ]F13W a'a#

    APP*4 ta'B(#$am'in utili5amos el campo B4CO[CO4* paa e9ecuta ,unciones Gue

    apaecen en la 'aa de menDs# Paa sa'e el c)di%o de la ,unci)n