Escolar Documentos
Profissional Documentos
Cultura Documentos
de Datos SAP
ABAP
Bsico ABAP
TM
Objetivos
Diccionario de Datos
QueselDiccionariodeDatos
ElDiccionarioABAPeselcentrodondesedescribenymanejantodaslasdefiniciones
dedatosusadasenelsistema.ElDiccionarioABAPestcompletamenteintegradoen
elWorkbenchabap.ElrestodecomponentesdelWorkBenchABAPtienenaccesoa
lasdefinicionesalmacenadasenelDiccionarioABAP.
ElDiccionarioABAPsoportaladefinicindetiposdefinidosporelusuario(
elementosdedatos,estructurasytiposdetablas).
Tambinsepuededefinirlaestructuradeobjetosdelabasededatos(tablas,ndicesy
vistas).Estosobjetospuedensercreadosautomticamenteenlabasededatosconesta
definicin.ElDiccionarioABAPtambinproporcionaherramientasparalacorreccin
decamposdepantalla,porejemploparaasignarauncampounaayudadeentrada
(tecladeayudaF4).LosobjetosmsimportanteenelDiccionarioABAPsontablas,
vistas,tipos(elementosdedatos,estructuras,tiposdetablas),dominios,ayudapara
bsquedasyobjetosdebloqueo.
Paraaccederaldiccionario,loharemosconlatransaccinSE11omedianteelmen:
HERRAMIENTAS>WORKBENCHABAP>DICCIONARYABAP.
Diccionario de Datos
LosdatosenelsistemaSAP
Datosmaestros:sondatosquenosemodificanmuy
amenudo.Porejemplo:datosdemateriales,cuentas,
bancos,clientes,etc.
Datosdemovimientos:sondatosmuyvoltilesycon
granvolumendegeneracin.Porejemplo:datosde
facturas,pedidos,etc.
Datosdelsistemaodecontrol:sondatosquetienen
queverconlaconfiguracindelsistema.
Diccionario de Datos
CmoaccederalDiccionariodeDatos?
El diccionario de datos permitela administracin de todas las definiciones de
datosusadasenelsistemaR/3.SeaccedealatravsdelatransaccinSE11tal
comovemosacontinuacin:
Diccionario de Datos
Completamos
la
Short
Description
"Descripcin breve" de la nueva tabla con el
texto "Tabla de usuarios". En la solapa
Delivery and Maintenance "Entrega y
actualizacin" completamos la Delivery
Class
"Clase de entrega" con "A" que
significa que la tabla es de aplicacin y que
tiene datos maestros y de movimientos.
Existen otras opciones que podremos ver si
presionamos el botn
que aparece al
posicionar el cursor en el cuadro de
texto.
EnData
Browser/Table
ViewMant.elegiremos
la
opcin
"Display/Maintenance Allowed" esto
significa que se podr actualizar el
contenido de la tabla mediante la
transaccin SM30.
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Enlasolapa"Campos"vamosaingresarloscamposquevaatenernuestratabla.
Estosvanaser:DNI,NOMBRE_APE,ESTADO_USUyelMANDANTEqueno
debefaltarenningunatabla.
Todaslastablasbasededatosquecreemosdebentenerelmandantecomo
primercampodelatabla.Estedebeserpartedelaclave.
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
A cada campo de la tabla se le puede asignar un tipoinstalado
seleccionandolalneadelcampoypresionandoelbotn
,comopodra ser CHARde 30 posiciones o crear un
elementodedatos para cada campo. En nuestra tabla, crearemos
los elementos de datos Z_DNI, Z_NOMBRE_APE y
Z_ESTADO_USU.Tambin es posible utilizar elementos de
datosqueyaexistenenelsistema,comoeselcasodelMANDT.
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Para crear el elementodedatosZ_DNIharemos doble click sobre el elemento, el
sistemanosofrecerguardarlatabla,diremosquesyleasignaremoscomopaquete
objetolocal.Luegonosaparecerlasiguienteventanadedialogo:
Presionaremoslaopcin"Yes"ynosaparecerlasiguientepantalla:
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Presionaremoslaopcin"Yes"ynosaparecerlasiguientepantalla:
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
En la Descripcin breve completaremos una descripcin del contenido del campo.
Luegopodemoselegirentrecrearundominioparaestecampo,utilizaruntipoinstalado
o predefined typeya existente en el sistema o utilizar un tiporeferencia o Reference
type. En este caso utilizaremos un tipoinstalado y le asignaremos el tipo de datos
NUMCde8posiciones.
DOMINIO,describelosatributostcnicosdeuncampo,talescomoeltipodedatosola
cantidad de posiciones del campo. Un dominio define principalmente un mbito de
valoresquedescribelosvaloresdedatosvlidosparaloscamposquehacenreferencia
aldominio.
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Diferentescampostcnicayprofesionalmentesimilarespuedenresumirsemedianteun
dominio. Los campos que hagan referencia al mismo dominio se modificarn
simultneamentealmodificarseeldominio.Conelloquedagarantizadalaconsistencia
deestoscampos.
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Enestecasolosdenominadoresdecamposontodosigualesperolaideaesdaruna
descripcinmsdetalladadelbrevealacabecera.
Porltimoactivaremoselelementodedatosmedianteelbotnynosaparecer
unanuevaventanadedilogodondeconfirmaremoslaactivacinseleccionandoel
elementoaactivarypresionandoelbotn
ParaelcampoNOMBRE_APEcrearemoselelementodedatosZ_NOMBRE_APEtal
comohicimosconZ_DNI.
ParaelcampoESTADO_USU,crearemoselelementodedatosZ_ESTADO_USU
talcomohicimosconZ_DNIytambincrearemoseldominioZZ_ESTADO_USU
paraasociarleelambitodevalores:A=Activo,I=InactivoyN=Anulado.
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
SihacemosdobleclicksobreZZ_ESTADO_USUelsistemanospreguntarenuna
ventanadedilogosideseamoscreareldominio.Contestaremosquesiyveremosla
siguientepantalla:
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
CompletamoslaDescripcinbrevedeldominiocon"Estadodelusuario".Eltipode
datos ser CHAR de 1 posicin. Luego en la solapa Value Range o mbito de
valorescompletaremoselmbitodelosvaloresdeldominio.
Por ltimo activamos el dominio
ZZ_ESTADO_USU, luego activamos el
elementodedatos Z_ESTADO_USU y
finalmenteloquenosquedaantesdeactivar
la tabla ZTABLA_USUARIOS es
configurar las opciones tcnicas de la tabla
presionandoelbotn
Diccionario de Datos
Cmo crear una tabla base de datos, un elemento de
datosyundominio?
Aqu completaremos la Clase de datos con "APPL0" que es la correspondiente a
"Datos maestros, tablas transparentes" y la Categ.tamao con "3" que es el valor
correspondienteaunatablade110.000a460.000registrosdedatos.
Diccionario de Datos
Creacin de una superficie de actualizacin para una
tabla
Una vez que creamos la tabla ZTABLA_USUARIOS vamos a crearle una
superficiedeactualizacinparapoderingresarleregistros.Paraestovamosaingresar
alatransaccinSE11conelnombredelatablayvamosairalasiguienteopcindel
men:
Aquveremoslasiguientepantallaendonde
completaremosloscampos:
Authorizationgroup:con&NC&que
significaquenoestamosasociandola
superficieaningngrupoenparticular.
Functiongroup:aqupondremosel
mismonombredelatabla.Estetemalo
veremosendetalleenlaunidad
FuncionesySubrutinas.
Maintenancetype:seleccionaremosun
niveloseaonestep.
Diccionario de Datos
Creacin de una superficie de actualizacin para una
tabla
Luegopresionaremoselbotn
yelsistemanosofrecernmerosde
imgenes.
Presionaremos el botn y se
completarconnmeros,elcampodela
pantalla "Overview screen". Finalmente
presionamoselbotnyguardamoslos
cambioscomo"Objetolocal".
Diccionario de Datos
Creacin de una superficie de actualizacin para una
tabla
Ahora vamos a probar de ingresar registros enla tabla ZTABLA_USUARIOS,
paraellovamosairalatransaccinSM30,escribiendoelnombredenuestratabla
ypresionamoselbotn
Aqu,presionamoselbotnycomenzamosacargarregistrosen
nuestratabla.
Diccionario de Datos
Creacin de una superficie de actualizacin para una
tabla
Diccionario de Datos
Visualizacindelosregistrosdeunatabla
ParavisualizarlosdatosqueacabamosdecrearvamosautilizarlatransaccinSE16.
Allvamosaescribirelnombredenuestratablaypresionamosenter.
Diccionario de Datos
Creacindeunaestructura
Vamosacrearunaestructura,paraelloaccedemosalatransaccinSE11,enTipode
datoscolocamoselnombredenuestraestructuraqueserZUSUARIOSy
presionamoselbotnCreate.
Luegoaparecerenlapantallalasiguienteventanadedilogo,seleccionamos
laopcinStructureypresionamoselbotncontinuardelatldeverde.
Diccionario de Datos
Creacindeunaestructura
LuegoingresamoslaDescripcinbrevequeser"Estructuradeusuarios"ylos
camposquetendrlaestructura,queenestecasosernlosmismosdelatabla
ZTABLA_USUARIOScomovemosacontinuacin:
Finalmenteactivamos.
Diccionario de Datos
Creacindeunaestructura
UnaayudadebsquedaesunobjetoAbapquesirveparadefinirposiblesvaloresde
seleccin.
SupongamosquetenemosunreporteAbapconlasiguientepantalladeseleccin:
Diccionario de Datos
Creacindeunaestructura
Aquseleccionaremoslaopcin"Elementarysearchhelp"ycompletamoslapantalla
conlossiguientesdatos:
Diccionario de Datos
Creacindeunaestructura
Elmtododeseleccinserelnombredelatabladedondeseobtienenlosdatos.Los
camposNOMBRE_APE,DNIyESTADO_USUsonlosquesemostrarnporpantalla
alutilizarlaayudayelcampoNOMBRE_APEenparticularserelqueseexporteala
pantalla del reporte por eso tiene tildada la columna EXP. Para finalizar activamos la
ayuda.
Luego,modificaremosladeclaracindelparmetrodelapantalladeseleccin
denuestroreporteconlasentenciaMATCHCODEOBJECTseguidadel
nombredelaayudadebsquedaqueacabamosdecrear.
VemosquealejecutarelreporteapareceeliconoaladerechadelcampoUsuario.
Finalmente,silopresionamosveremoselsiguientelistadodeopcionesdeseleccin:
Antesdecrearunanuevaayudadebsquedaesconvenientechequeareneldiccionariodedatossino
existeunaquecumplaconmisrequisitos.
Diccionario de Datos
QusonlasTablasinternas?
Siqueremosguardarunacoleccinderegistrosdedatosdelamismaestructuraen
memoria,sinnecesidaddeaccedercontinuamentealasbasesdedatosypoderrealizar
diversasoperacionesconesteconjuntodeinformacin,entoncesutilizaremostablas
internas.
TABLAINTERNA.Esunobjetodedatosquepermiteguardarenmemoria
grandes cantidades de registros de datos con la misma estructura. La
cantidadderegistrosmximaestarelacionadaconloslmitesespecificados
enlainstalacindelsistema.
Elusotpicoqueseledaaunatablainternaes:
Paraalmacenartemporalmentelosdatosdelasbasesdedatosparaunprocesamiento
futuro.
Paraestructuraryformateardatosquesemostrarncomosalidadelprograma.
Paraformateardatosparaserutilizadosporotrosservicios.
Diccionario de Datos
CmosedeclaraunaTablainterna?
Lasintaxisparasudeclaracineslasiguiente:
Deestamaneradefiniremosunatablainternaconnlneasenmemoriamsunalneade
cabecera o areadetrabajo. La cantidad de lneas que seespecifican en OCCURS no
limitaneltamaodelatablasinolacantidadderegistrosqueseguardarnenmemoria
simultaneamente.
Porlogeneral,enelparmetroOCCURSseespecificalacantidad0loquepermitetrabajarcon
tablasdegrancantidadderegistros.
Diccionario de Datos
CmosedeclaraunaTablainterna?
EnelprximoejemplodeclaramoslatablainternaTI_PROVEEDORES.
Otraformadedeclararlamismatablasera:
Diccionario de Datos
CmosedeclaraunaTablainterna?
EnelprximoejemplodeclaramoslatablainternaTI_PROVEEDORES.
Otraformadedeclararlamismatablasera:
Diccionario de Datos
Llenadodeunatablainterna
Parallenarcondatosunatablainternautilizamos:
APPEND <estructura> TO <tabla>: se aade un registro a la tablainterna en la
ltima posicin con los valores que tengamos en el areadetrabajo. Veamos un
ejemplo:
Llenamoslatablainternaconelcontenidodeunabasededatos.Estoloharemoscon
lasentenciaSELECTqueveremosendetalleenlaprximaleccin.
Diccionario de Datos
Ordenamientodeunatablainterna
ParaordenarunatablainternautilizamoslasentenciaSORT.
EnelejemploanteriorordenamoslatablaTI_PROVEEDORESdeformadescendente
por DNI lo cual invertir el orden en el que fueron cargados originalmente los
registros.ParaordenardemenoramayorhayqueutilizarlaclasulaASCENDING.
Procesamientodeunatablainterna
Pararecorrerunatablainternayprocesarregistroaregistroutilizaremoslasentencia
LOOPENDLOOP.
Diccionario de Datos
Lecturadeunatablainterna
Para leer un registro concreto de una tablainterna sin necesidad de recorrerla
utilizamoslasentenciaREADTABLE.
.
Diccionario de Datos
Modificandounatablainterna
Paramodificarelcontenidodeunregistrodeunatablainternautilizamoslasentencia
MODIFY.EnelsiguienteejemplomodificamoselcampoDNIcorrespondienteal
primerregistrodelatablainterna.
.
Parainsertarunregistroenunaposindeterminadadeunatablainternautilizamosla
sentenciaINSERT.Enelsiguienteejemploinsertamosunregistroenlaposicin2.
Diccionario de Datos
Modificandounatablainterna
Parainsertarunregistroenunaposicindeterminadadeunatablainternautilizamosla
sentenciaINSERT.Enelsiguienteejemploinsertamosunregistroenlaposicin2.
Paraborrarelcontenidodeunregistrodeunatablainternautilizamoslasentencia
DELETE.Enelsiguienteejemploborramoselregistrodelatablainternade
proveedoresconDNIiguala20857492.
Diccionario de Datos
Modificandounatablainterna
ParaborrartodoelcontenidodeunatablainternautilizamoslasentenciaREFRESH.
EnelsiguienteejemploinicializamoslatablainternaTI_PROVEEDORES.
Parasabercuantosregistrostieneunatablainternautilizamoslasentencia
DESCRIBETABLE.EnelsiguienteejemplodeclaramosV_LINEASqueesla
variablequevaacontenerlacantidaddefilasdelatablainternaTI_PROVEEDORES
luegodeejecutarlasentenciaDESCRIBETABLE.
Diccionario de Datos
LasentenciaSELECT
ExistenenAbapunconjuntodesentenciasqueseutilizanparaaccederalasbasesde
datos.LaprincipalsentenciaesSELECT,cuyasintaxiseslasiguiente:
Diccionario de Datos
LasentenciaSELECT
SiquisiramosobtenertodoslosregistrosdelatablaZTABLA_USUARIOSusaramos
elsiguientecdigo:
Diccionario de Datos
LasentenciaSELECT
Si quisiramos obtener de todos los campos de la tabla ZTABLA_USUARIOS el
campoDNIdeberamoscrearunatablaauxiliarsoloconelcampoDNIparaalojarel
resultadodelaconsulta.
SiquisiramosobtenerlaprimeraocurrenciadelatablaZTABLA_USUARIOSdonde
secumpladeterminadacondicindebemosusarlaclasulaSINGLEcomovemosa
continuacin:
ElresultadodeestaconsultaserguardadoenlaestructuraWA_USUARIOSquees
delmismotipoquelatablaZTABLA_USUARIOS.
SiempredespusdeunSELECTsedebepreguntarporelSYSUBRCparasabercomoproseguir.
Diccionario de Datos
LasentenciaSELECT
Si quisiramos hacer la misma consulta anterior pero necesitamos obtener solo el
campo DNI entonces ya no sera necesaria la estructura WA_USUARIOSsino que
guardaramos el resultado en la variable V_DNI tal comovemos en el siguiente
ejemplo:
Si quisieramos obtener de una tabla los registros que cumplan una condicin pero
queremosguardarlosenunatablainternaquenotienelamismaestructuraquelatabla,
entonces
tenemos
que
usar
la
clasula
INTOCORRESPONDINGFIELDSOFTABLE.
Diccionario de Datos
LasentenciaSELECT
Supongamosquetenemosunreportequetienelapantalladeseleccin:
LaclusulaINseutilizaparalosselectoptionsenlascondicionesdeunselect.
Diccionario de Datos
LasentenciaSELECT
Ahora, si quisiramos obtener el usuario activo con DNI ms alto tendramos que
usarlaclusulaMAXdelasiguienteforma:
Diccionario de Datos
LasentenciaSELECT
Siquisiramosobtenerdeunatablatodoslosregistrosqueexistanenunatablainterna
cargadacondatos,entoncesdebemosutilizarlasentenciaFORALLENTRIESINque
nospermiteespecificarcondicionesentiempodeejecucin.Veamosunejemplo:
Diccionario de Datos
LasentenciaINSERT
La sentencia INSERT permite introducir nuevos registros a una base de datos.Por
ejemplo, si quisiramos introducirun nuevo registro en latabla
ZTABLA_USUARIOSharamoslosiguiente:
Diccionario de Datos
LasentenciaINSERT
Siquisiramosintroducirtodoslosregistrosdeunatablainternaharamoslosiguiente:
Siexistealgnregistroenlabasededatosconigualclavequeunregistroenla tabla
internaseproducirunerrordeejecucinenelprograma.
Diccionario de Datos
LasentenciaUPDATE
LasentenciaUPDATEpermiteactualizarelcontenidodeunoovariosregistrosde
unatablabasededatos.Porejemplo,siquisiramosactualizarunregistrodeunatabla
basededatosharamoslosiguiente:
Diccionario de Datos
LasentenciaUPDATE
SiquisiramosactualizarlosregistrosdelatablaZTABLA_USUARIOSquecumplan
determinadacondicin,haramoslosiguiente:
SiquisiramosactualizartodoslosregistrosdelatablaZTABLA_USUARIOSapartir
delcontenidodeunatablainternaharamoslosiguiente:
Diccionario de Datos
LasentenciaMODIFY
La sentencia MODIFY permitemodificar el contenido de uno o varios registros de
unatablabasededatos.Porejemplo,siquisiramosmodificarunregistrodeunatabla
basededatosharamoslosiguiente:
Diccionario de Datos
LasentenciaMODIFY
SiquisiramosmodificartodoslosregistrosdelatablaZTABLA_USUARIOSapartir
delcontenidodeunatablainternaharamoslosiguiente:
Sielregistroqueseintentamodificar,noexisteenlatabla,estesecrea.
Diccionario de Datos
LasentenciaDELETE
La sentencia DELETE permiteborrar el contenido de uno o varios registros de
unatablabase de datos.Por ejemplo, si quisiramosborrar un registro de una tabla
basededatosharamoslosiguiente:
Diccionario de Datos
LasentenciaDELETE
Si quisiramosborrar los registros de la tabla ZTABLA_USUARIOS que cumplan
determinadacondicin,haramoslosiguiente:
SiquisiramosborrartodoslosregistrosdelatablaZTABLA_USUARIOSapartirdel
contenidodeunatablainternaharamoslosiguiente:
Diccionario de Datos
Actualizacinyrecuperacindeunabasededatos
ParafinalizarunaunidaddeprocesamientolgicoLUWdebasededatosseutilizaun
COMMIT WORK,querealiza un update fsico en la base de datos,haciendo
irrevocablecualquiermodificacinenlabasededatos.
Sideseamosdeshacertodaslasoperacionesrealizadassobrelabasededatosdesdeel
ltimoCOMMITWORK,realizaremosunROLLBACKWORK.Veamosunejemplo
alinsertarregistrosenlabasededatosZTABLA_USUARIOS:
Esconveniente,despusdeunINSERT,MODIFY,UPDATEoDELETErealizar
unCOMMITWORKyROLLBACKWORK.
Diccionario
de Datos SAP
ABAP
TM
Diccionario de Datos
DominiosCreacin/Modificacin/Visualizacin.
En el men diccionario, introducimos el nombre del Dominio de datos que vamos a
crear,ennuestrocasoZMESESXX,seleccionamoslaopcinDominios.Pulsamosel
botn de Crear (El procedimiento es similar para visualizar y
modificar),tambinpodemosaccederaestasopcionesatravsdelmen
ObjetoDict.Llegaremosalasiguientepantalla:
Diccionario de Datos
DominiosCreacin/Modificacin/Visualizacin.
EnlapestaaDefinicin:
Longitud:Secorresponderaltamaodeseado.Ennuestrocasopondremos10.
Diccionario de Datos
DominiosCreacin/Modificacin/Visualizacin.
EnlapestaaDefinicin:
Los elementos del marco Atributos de salida, varan dependiendo del tipo
datosseleccionadoasporejemploparaeltipoCHARtendremoslaopcin
deminsculasyparauntipoCURRtendremoslaopcindelsigno
Longituddesalida:Representalalongitudenlaquesevaarepresentarelvalorala
hora de imprimirse en un informe, visualizarse en una pantalla, etc. (Dejamos en
valorespropuestos10)
Rutinadeconversin:Esunareferenciaalosprocedimientosdeconversinentreel
formatointernodeldatoysurepresentacinexterna.(Enblanco)
Flag de Minsculas:
Se permite la utilizacin de letras minsculas (No
marcado).
Diccionario de Datos
DominiosCreacin/Modificacin/Visualizacin.
EnlapestaadembitoVal:
Representaelrangodedatosvlidosquepuedetomardichoatributo(Elsistemarealiza
comprobaciones automticas verificando que el valor introducido por pantalla est
dentrodelosvaloresvlidos).Paradefinirestosvalores(nosiempreesnecesario)hay
dosposibilidades:
Queestosvaloresestnalmacenadosenunatabla,encuyocasointroduciremosaquel
nombredelatabla.
O bien fijar los valores directamente, bien valores individuales, bien rangos o
intervalosdevalores
Diccionario de Datos
DominiosCreacin/Modificacin/Visualizacin.
Diccionario de Datos
DominiosCreacin/Modificacin/Visualizacin.
PracticaCrearemoslossiguientesdominios:
Dominio
Tipo
Long.
Descripcin
ZNCLIEXX
CHAR
10
Nmero de cliente
ZNOMBXX
CHAR
20
Nombre cliente
ZAPELLXX
CHAR
25
Apellidos
ZNFACTXX
CHAR
10
Nmero de factura
ZFECHAXX
DATS
Fecha
ZIMPNTXX
CURR
13
Importe
Elementosdedatos
Diccionario de Datos
Elementosdedatos
Diccionario de Datos
Descripcinbreve:Introduciremosunadescripcinrepresentativadelobjeto.(Mes
delafactura).
EnlapestaaDefinicin:
OpcinTipoelemental:
Dominio: Dominio al que hace referencia el
elementodedatos.(ZMESESXX).
Tipo Instalado: Tipo de datos y longitud con el
mismo significado que el que se define en los
dominios.
ID parmetro: Permite referenciar a un
parmetro de memoria SAP. Ser til para
mostrarvalorespordefectoenpantallas,yaque
estecamposecompletarconelvalorquetenga
el parmetro de memoria SAP al mostrar la
pantalla. (En nuestro caso lo dejamos en
blanco.)
Elementosdedatos
Diccionario de Datos
EnlapestaaDenom.Campo
Estoscamposcorrespondenaladescripcindelobjeto,estos,sonlostextosquese
mostrarnenlosdiferenteslugaresdondesehaganreferenciaalcampoqueutilicenel
elementodedatos,porejemploencabecerasdeinformesalvisualizarcontenidosde
tablas,enpantallasElcampolongitudrepresentaelespacioenelquesevaaescribir
eltexto.
(Ennuestrocaso: MesFac.,Mesdefactura,Mesdelafactura.
Enelcampolongitudpondremoslosvalorespropuestos:10,15,20).
Unavezcompletado,grabamos(F11),verificamos
Ctrl.+F2)yactivamos(Ctrl.+F3).
Elementosdedatos
Diccionario de Datos
PracticaCrearemoslossiguienteselementosdedatos:
Elem. Datos
Dominio
Descripcin
ZNCLIEXX
ZNCLIEXX
Nmero de cliente
ZNOMBXX
ZNOMBXX
Nombre cliente
ZAPEL1XX
ZAPELLXX
Primer Apellido
ZAPEL2XX
ZAPELLXX
Segundo Apellido
ZNFACTXX
ZNFACTXX
Nmero de factura
ZFECHAXX
ZFECHAXX
Fecha factura
ZIMPNTXX
ZIMPNTXX
Importe neto
Tablas
Diccionario de Datos
Unatablarepresentaunconjuntodeatributosdeunaentidad.Estaformadaporcampos
quesecorrespondenconcadaunodelosatributos.Cadaunodeellosharreferenciaa
unelementodedatos.
Creacin/Modificacin/Visualizacin
Enelmendiccionario
Introducimoselnombredelatablaquevamosacrear,ennuestrocasoZCLIENXX,
seleccionamoslaopcinTablas
ypulsamoslaopcindeCrear.
Descripcinbreve:
clientes)
Descripcinsignificativadelatabla.(Maestrode
Tablas
Diccionario de Datos
PestaaAtributos:
Clasedeentrega:Indicaquineselresponsabledelmantenimientodelatabla,si
esunatabla
deparametrizacin,(PondremosdetipoA(Aplicacin)).
Permitida Actualizacin tabla: Habilita/ Deshabilita la posibilidad de que el
contenido de la tabla pueda ser modificado en la transaccin de visualizacin del
contenido de la tabla. (Si no se marca no se podrn modificar los registros de la
tablaporestatransaccin).(MarcamosconunaX)
PestaaCampos:
Nombrecampo:Nombredelcampo.
Clave:Indicasielcampoformapartedelaclaveprimariadelatabla.Uncampoo
conjuntodecampossonclaveenunatablasideterminandeformaunvocaunnico
registrodedichatabla.Todatablatienequetenerclaveprimaria.
Tipodedatos:Nombredelelementodedatosquedescribealcampo.(*)
Tipoylongitud:Tipodedatoylongitud.(*)
Tabla de Verificac.: En est tabla aparecer un * cuando el elemento de datos
introducido, haga referencia a un dominio que tenga una tabla de valores
permitidos,obiencuandoseasocieunaclaveexterna(Vistomsadelante).
Descripcinbreve:Descripcindelcampo.(*)
Tablas
Diccionario de Datos
(*)Podemoscrearcamposenlatablaquenonecesariamentehandeestarvinculadosa
unelementodedatos, sinoquedirectamentele podemos asignar untipo,longitud y
descripcin.Medianteelbotndeestamanerasehabilitanpara
entradaestoscampos.Paravolveraintroducirtiposdedatospulsaremosnuevamente
estaopcin.(Aunqueexisteestaposibilidad,noesmuyrecomendable).
PestaaCamposmoneda/cantidad:
TabRefyCpoRef.: Solamentelostiposdedatosdeimporte(CURR)ycantidad
(QUAN),necesitanserreferenciadosaotroscamposdeldiccionario.Paraelloses
obligatorio completar estos valores (tabla + campo). Estos campos de referencia
debern de ser del tipo Moneda (CUKY) para importes y Unidad (UNIT) para
cantidades De esta forma, cuando se visualicen datos (en pantallas, pantallas de
seleccin)sernformateadosconelvalorquecontengaelcampoalquehansido
referenciados.
Diccionario de Datos
Tablas
Aadimosalatablaloscampos:
Campo
Cl. Elem. Datos
MANDT X
MANDT
BUKRS
X
BUKRS
NCLIE
X
ZNCLIEXX
NOMBR
APEL1
APEL2
FNACI
Tipo
Long
ZNOMBXX
ZAPEL1XX
ZAPEL2XX
DATS
Descripcin
Mandante
Sociedad
N de identificacin
cliente
Nombre cliente
Primer apellido
Segundo apellido
Fecha de nacimiento
Nota:ElcampoMANDT,mandante,seaadecomounatributoenlastablasdeesta
forma,sepuedentenervariascoleccionesdedatosdistintassegnelmandante.Enlas
selecciones, actualizaciones de la tabla este campo es trasparente ya que tendr
siempreelvalorindicadoaliniciarlasesinenelsistema.(Noesobligatoriodefinirel
mandanteentodaslastablasaunquesieslomshabitual).
Tablas
Diccionario de Datos
Unavezcompletadostodosloscampos,grabamoslatabla(F11).Posteriormente
sernecesariocompletarlasdefinicionestcnicasdelatablaparaelloseleccionaremos
laopcindemenPasaraOpcionestcnicasoelbotnAparecerla
siguientepantalla,dondehayquecompletarloscampos:
Clase Datos: Con la clase de datos se define
deformalgicaelmbitofsicoenlabasede
datosenelquesegrabarlatabla.Estelugar
fsicodondeseubicarlatablasedeterminar
en funcin del tipo de utilizacin de la tabla,
es decir, predominio de actualizaciones
consultas. Por ejemplo una tabla con datos
maestros sufrir pocas actualizaciones y
muchas consultas (Para nuestro ejemplo
seleccionaremosAPPL0)
Categora tamao: Determina el nmero
aproximado de registros que va a albergar la
tabla.(Seleccionamostamao3)
Unavezcompletados,pulsamoselbotnverificar(Ctrl.+F2)ygrabamosbotn
(F11).Volveremosalapantallainicialconelbotn(F3)verificamos
(Ctrl.+F2)yactivamoslatabla(Ctrl.+F3).
ndices
Diccionario de Datos
Unndiceeslaordenacindelosregistrosdeunatabla,porunoovariosdeloscampos
quelacomponenPortantoladefinicindeunndiceconsistenenlaenumeracinde
loscamposquelocomponen.
Paracrearunndiceaunatabla,enlapantalla:
PulsamoslaopcindemenPasarandicesoelbotn
Diccionario de Datos
ndices
Sinohayningnndicecreadoparalatablaaparecerlasiguienteventana:
AlpulsarlaopcinSiaparecerlaventanadondenospideunidentificadorparael
ndice.(PondremosZ01).
PulsaContinuar.
ndices
Diccionario de Datos
Descripcinbreve:Descripcindelndice.(ndiceporfechadenacimiento.)
ndice nico / no nico: Si marcamos la opcin ndice nico haremos que el ndice sea
nico, es decir que no se podrn repetir entradas iguales en la tabla para los campos que
formenelndice.Ennuestroejemplosimarcamoselndicecomoniconosepodrninsertar
enlatabladosclientesquenacieranelmismoda.(Marcamoselndicecomononico).
Campos:Camposqueformanelndice.Pondremoselnombredeloscamposobienpodemos
seleccionarlosmedianteelbotn.(Ennuestrocasoseleccionaremosloscampos
MANDTyFNACI).
ndices
Diccionario de Datos
Cuandosehancompletadolosdatosgrabamos(F11),verificamos(Ctrl.+
F2)yactivamos(Ctrl.+F3).
Paramodificarelndicepulsaremoselbotnnosmostrarunaventana
conlosndicesexistentes:
Podremosseleccionarunodelosexistentesparamodificarloocrearuno
nuevo
En general los ndices permiten acelerar las operaciones de consulta, pero en
contraposicin ralentizanlas actualizaciones yaque cada actualizacin de algunode
losregistrosdelatablahadeactualizarel/losndicesdelamisma.Portantoalahora
decrearndiceshayquevalorarbiensuutilidadyrepercusiones.
Toda tabla est ordenada por los campos clave, luego hay un ndice implcito por
estos campos, y no tendr sentido definir un ndice con los todos los campos clave.
(En el ejemplo sera absurdo definir un ndice con los campo MANDT, BUKRS y
NCLIE).
ndices
Diccionario de Datos
Visualizar/ModificarContenidodetabla.
Unavezquelatablaestdefinida,podemosalmacenarinformacinparaellodentro
delapantalladedefinicindelatablaseleccionamoslaopcindemenUtilidades
ContenidotablaRegistrarentradasaparecerunapantallaenlaqueintroducir
cadaunodelosregistros:
Introducimoslosdatosypulsamos(F11).
Paravisualizarlosregistrosdelatablaseleccionaremoslaopcindemen
UtilidadesContenidotablaVisualizar.
Aparecera una pantalla de seleccin de la tabla donde se podrn indicar
loscriteriosdebsqueda.
ndices
Diccionario de Datos
Visualizar/ModificarContenidodetabla.
Pulsandovisualizaremoselcontenidodelatablaenformadelistado.
ndices
Diccionario de Datos
Visualizar/ModificarContenidodetabla.
Diccionario de Datos
Vistas/Dilogodeactualizacin.
Undilogodeactualizacindeunatablaesunconjuntodeprogramascuyautilidades
elmantenimientodelcontenidodelatabla.Cuandocreamoseldilogosobreunatabla,
segeneranestosprogramasdeformaautomtica.
Aunquenoesestrictamentenecesariocrearestedilogoparamantenerlastablassies
muyaconsejableparaaquellastablasqueelusuariomantieneyaquedeestaformase
puedecontrolardemanerasencillalaseguridaddelatabla.(Estaopcinesmuy
utilizadaenlastablasdeparametrizacin,porejemplo).
Paragenerareldilogo,latablahadeestaractivada.Unavezactivadaseleccionamos
laopcindemenUtilidadesGeneradorActualiz.Tab.llegaremosalasiguiente
pantalla
Diccionario de Datos
Vistas/Dilogodeactualizacin.
Paragenerareldilogo,latablahadeestaractivada.Unavezactivadaseleccionamos
laopcindemenUtilidadesGeneradorActualiz.Tab.llegaremosalasiguiente
pantalla
Diccionario de Datos
Vistas/Dilogodeactualizacin.
Diccionario de Datos
Vistas/Dilogodeactualizacin.
Imgenesactualizacin:Representanelnmerodedynproqueseasignaracadauna
delasdospantallasquesegeneran.Podemosindicardosnmerosdedynproqueno
existanengrupodefuncioneselegidoaunqueexisteunautilidadparaqueelsistema
elijademaneraautomticaestosvaloresparaellopulsamoselbotnnos
llevaralasiguienteventana
Para introducir(F3).
entradas y visualizar el contenido de la tabla seguiremos los mismos
pasos que en el apartado anterior. (Veremos como las pantallas han cambiado ya que
ahorasevernlaspantallasdedilogogeneradas).
Diccionario de Datos
Vistas/Dilogodeactualizacin.
Imgenesactualizacin:Representanelnmerodedynproqueseasignaracadauna
delasdospantallasquesegeneran.Podemosindicardosnmerosdedynproqueno
existanengrupodefuncioneselegidoaunqueexisteunautilidadparaqueelsistema
elijademaneraautomticaestosvaloresparaellopulsamoselbotnnos
llevaralasiguienteventana
Para introducir(F3).
entradas y visualizar el contenido de la tabla seguiremos los mismos
pasos que en el apartado anterior. (Veremos como las pantallas han cambiado ya que
ahorasevernlaspantallasdedilogogeneradas).
Diccionario de Datos
ClavesExternas.
Uncampodeunatablatieneasociadaunaclaveexternacuandolosvaloresposiblesque
puedetomarelcampoendichatabla,handeestarenotratabla/squellamaremostabla
maestra.
Vamosacrearlasiguientetablateniendoencuentalasindicacionesquesedetallana
continuacinparaloscamposNCLIEeIMPNT
Nombretabla:ZFACTUXX:
Campo
MANDT
BUKRS
NFACT
NCLIE
FECHA
MESFA
IMPNT
MONED
Cl.
X
X
X
Elem. Datos
MANDT
BUKRS
ZNFACT XX
ZNCLIE XX
ZFECHAXX
ZMESFAXX
ZIMPNTXX
WAERS
Tipo
Long
Descripcin
Mandante
Sociedad
N de factura
Nmero de cliente
Fecha de la factura
Mes de la factura
Importe neto de la factura
Clave de moneda
ClavesExternas.
Diccionario de Datos
EnestatablaelcampoNCLIEtendrunosvaloreslimitadosalosexistentesenlatabla
maestro de clientes. (No deberamos tener facturas de clientes que no existen) Para
asociar esta clave externa, situados sobre este campo seleccionamos la opcin de men
PasaraClavesExternasobotnnosaparecerlaventana:
DescripcinBreve:Descripcindelaclaveexterna.(PondremosMaestrode
clientes).
Tabladeverificacin:Tablamaestraquecontieneelcampoconlosvaloresvlidos
(PondremosZCLIENXX).
ClavesExternas.
Diccionario de Datos
Unavezindicadalatabla,nosaparecerlaventana:
SeleccionamoslaopcinSiynolapantallasecompletarconloscamposclavesdela
tablaintroducida:
ClavesExternas.
Diccionario de Datos
Cardinalidad:Lacardinalidadentredostablas,representaelgradodelarelacinentre
lasmismas,esdecir,cuantasocurrenciasdeunatablaestnrelacionadasconunaentrada
delaotra.Porejemploenlarelacinentremadresehijoslacardinalidadser1aNya
que una madre puede tener cero ms hijos pero un hijo tendr una y solamente una
madre. Por tanto introduciremos aqu los valores oportunos en funcin de la relacin
entre las tablas. (En nuestro caso seleccionaremos 1: CN ya que una un cliente puede
tenervariasfacturas,perounafacturanicamentepuedepertenecerauncliente).
Unavezintroducidoslovaloresoportunosverificamos(Ctrl.+F2)validamos
Estructuras
Diccionario de Datos
Unaestructuraessimilaraunatablaencuantoasudefinicinperoconladiferencia
que una estructura no puede albergar registros. Una estructura es simplemente la
definicindeunaentidad.
Para crear una estructura, desde la pantalla de diccionario, seleccionamos la opcin
Tipo de datos ponemos el nombre de la estructura a crear (En nuestro caso
ZDATPERXX)ypulsamoscrear,seleccionamoslaopcinEstructura.Llegaremosa
lapantalla:
Dondeintroduciremosloscamposysudefinicin,bienatravsdelcampoelementode
datosobienintroduciendoeltipo,longitudydescripcin(Delmismomodoqueenla
creacin de tablas). (Introduciremos, los campos Nombr, Apel1, Apel2, con sus
respectivos elementos de datos ZNOMBRXX, ZAPELLXX. En el texto pondremos
Datospersonales).
Vistas
Diccionario de Datos
Cuandosetratadeunavistademsdeunatabla,esnecesariodefinirlascondiciones
por las que se unen las tablas, es decir, los camposde interseccin de las tablas. Las
vistas no contienen datos sino que los datos se obtienen en tiempo de ejecucin al
realizarconsultassobreellas.
Diccionario de Datos
Vistas
Por ejemplo: Si quisiramos ver todas las facturas de un cliente (Nombre y primer
apellido),deberemosrealizarunainterseccinentrelatabladeclientesylatablade
facturasparaobtenerunavistaconloscampos:
Facturas/Cliente.
Campo
Descripcin
NFACT
N de factura
NCLIE
N de cliente
NOMBR
Nombre cliente
APEL1
Primer apellido
IMPNT
Importe Neto
MONEDA Moneda
Vistas
Diccionario de Datos
Crear/Modificar/Visualizar
EnlapantallaprincipaldeldiccionariodedatosponemoselnombredelavistaaCrear
(ZFACLIXX) seleccionamos Vistas y pulsamos el botn crear. Seleccionaremos el
tipoVistadebasededatos.Llegaremosalapantalla:
Vistas
Diccionario de Datos
Crear/Modificar/Visualizar
Tablas:Seleccionaremoslastablasdelasquesedeseeobtenerinformacin.(En
nuestrocasolatablasZCLIENXXyZFACTUXX).
CondicionesJoin:Definenloscamposporlosqueserealizalainterseccinentrelas
tablas seleccionadas. Para indicar las relaciones podemos utilizar el botn o escribir
directamentelasrelaciones
Ennuestrocaso:
ZCLIENXXMANDT=ZFACTUXXMNADT
ZCLIENXXBUKRS=ZFACTUXXBUKRS)
ZCLIENXXCLIEN=ZFACTUXXCLIEN
Campos Vista: Se seleccionanloscamposdeseados.Podemosrenombrarelcampo
en la vista ser el que pongamos en Campos Vista. (Por defecto ser el nombre
original del campo seleccionado). (En nuestro caso NFACT, NCLIE, IMPNT y
MONEDAdelatablaZFACTUXXyNOMBRyAPEL1delatablaZCLIENXX).
Para facilitar la seleccin de campos de una tabla, situados sobre la tabla pulsamos el
botn donde marcaremos los campos deseados , una vez seleccionados
aparecernautomticamenteenlapantalla.Unavezcompletadalavistagrabamos
F11),verificamos(Ctrl.+F2)yactivamosCtrl.+F3).
Para ver el contenido de la vista seleccionamos el men Utilidades Contenido. Aparecer la
pantalladeseleccindelavistadelamismaformaqueenlavisualizacindelosdatosdeunatabla.
Diccionario de Datos
Matchcode.(Ayudasparabsqueda)
Unmatchcodeesuninstrumentodebsquedaderegistrosalmacenadosenelsistema.
Permiteenpantallasdeseleccinfiltrarlainformacinexistentepordeterminados
criteriosparafacilitarlabsqueda.PorejemplonosabemoselDNIdeunapersona
perosisunombre,medianteeste,podremosobtenerelDNI.
Crear/modificar/Visualizar:
EnlapantallaprincipaldeldiccionarioseleccionamoslaopcinMatchcode(Ayudasde
bsqueda)introducimoselnombredelmatchcodeacrear,(ZCXX),ypulsamoselbotn
decrear,seleccionamoseltipoparaayudaelemental,llegaremosalapantalla:
Diccionario de Datos
Matchcode.(Ayudasparabsqueda)
Descripcinbreve:Descripcindelmatchcode(PodremosBsquedadeclientes).
Mtodo de seleccin: Nombre de tabla o vista del diccionario de datos de donde se
obtendrnlosdatosamostrarenlaayuda.(PondremosZCLIENXX).
Parm.Ayudabusq:Formadoporcadaunodeloscamposqueseutilizarnparala
bsqueda.
IMP:FlagdeparmetroEXPORT,estecamposeutilizarcomocampoenelque
informarvaloresdecondicinparalabsquedaderegistros.
EXP: Flag de parmetro IMPORT, este campo se utilizar como parmetro de
salida,esdecir,sevolcarelvalordelregistroseleccionadosobreelcampo.
P.I: Posicin del campo para lista de aciertos, indica la posicin que ocupar el
campoenlaventanadeayudadondesemostrarnlosregistrosseleccionados.(Sise
indica0oBlanco,significarqueelcamponosemuestraenlalistadeaciertos).
PoS:Posicindelcampoparalapantalladecondicionesdelaseleccin.
V.s:Valornomodificableenlaseleccin.
ValorPropuesta:Valordepropuestaparalaseleccin.
(SeleccionaremoselcampoNCLIE,NOMBRyAPEL1comocamposdelabsqueda,
seleccionaremoselNOMBRyAPEL1comocamposparacondicinyNCLIEcomo
parmetroEXPORT).
Acontinuacingrabamos(F11),verificamos(Ctrl.+F2)yactivamos
(Ctrl.+F3).
Objetosdebloqueo.
Diccionario de Datos
Sirvenparacontrolarlaconcurrenciadeprocesossobreunmismoobjeto,siempreestn
asociados a tablas del diccionario. Un objeto de bloqueo es un semforo sobre una
tabla.
Cuandosedefineunobjetodebloqueosegeneranautomticamentedosfuncionesque
controlandichosemforo:
ENQUEUE_Nombre:Controlalapeticindebloqueosobreelobjeto.
DEQUEUE_Nombre:Controlalaliberacindelbloqueosobreelobjeto.
Losargumentosconlosquesedefinaelobjetodebloqueopermitirnquesecontrolela
totalidadderegistrosdelatabla,unconjuntodeellosunnicoregistro.
Bsicamenteelfuncionamientoeselsiguiente:
Necesitamosquedosprocesosnocompartanunobjetodeformaconcurrente,porejemplo
que dos usuarios no accedan a la misma transaccin simultneamente, lo que haremos
serprogramarunobjetodebloqueo,yaliniciodelatransaccinpodremoslallamadaa
la funcin ENQUEUE_XXXX si el recurso esta ya siendo utilizado (encontramos
semforo rojo), no podremos bloquearlo y podremos obrar en consecuencia, mostrando
unmensajeyterminar,mostrarunaopcindereintentoSisepuedebloquearelobjeto
ser seal que no hay otro proceso utilizndolo (semforo verde) por tanto el proceso
puede continuar (pondr el semforo en rojo para otros procesos), antes de terminar el
procesosedeberllamaralafuncinDEQUEUE_XXXXparaliberarelobjetoqueseha
bloqueado(debeponerelsemforoenverdeparaqueotrosprocesospuedanutilizarlo.
Objetosdebloqueo.
Diccionario de Datos
Descripcinbreve:Descripcindelobjetodebloqueo.(Bloqueomaestroclientes)
EnlapestaaTablas.
Nombre:Nombredelatabla(ZCLIENXXennuestrocaso).
MododeBloqueo:Modoenelqueserealizaelbloqueo,lectura,escritura,(E)
EnlapestaaParm.bloqueo.
Parm.bloqueo:Correspondenalosparmetrosdelargumentodebloqueo.
(Dejamoslosvalorespordefecto)
Unavezcompletadostodosloscampos,grabamos(F11).,verificamos(Ctrl.+
F2)yactivamos(Ctrl+F3).