Você está na página 1de 94

Diccionario

de Datos SAP
ABAP
Bsico ABAP

TM

Objetivos

Dar conocer el Diccionario de Datos


(DD) de SAP

2004 SofOS c.a Prohibida su reproduccin sin autorizacin

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:

Aqu, podemoscrear, modificar y visualizar tablas base de datos,


Vistas,Estructuras, Elementos de datos,Grupos de tipos, Dominios, Ayudas para
bsquedayObjetosdebloqueo.

Diccionario de Datos

Cmo crear una tabla base de datos, un elemento de


datosyundominio?

Vamos a crear la tabla ZTABLA_USUARIOS. Para esto ingresamos el nombre


de la nueva tabla a la derecha del texto "Database table" y presionamos el
botn
. Aqu, veremos la siguiente pantalla

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.

. Un dominio es el objeto que define las caractersticas tcnicas de un atributo.


Medianteeldominiosedefineneltipodedatos,longitud,valoresposibles,propiedades
desalida(Porpantalla,impresin)

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.

Luego iremos a la solapa Field Label o Denom.campo y actualizaremos los


denominadores de campo que son los ttulos con los que se ver el campo cuando se
visualiceenunatransaccinoreporte.

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?

El objetivo de crear un dominio es asociarle un mbito de


valores,sinoespreferibleutilizaruntipoinstalado.

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.

Finalmente activamos la tabla


ZTABLA_USUARIOS
y
felicitaciones acabamos de crear
nuestraprimeratablaZ.

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

Al finalizar la carga presionamos el botn

Diccionario de Datos
Visualizacindelosregistrosdeunatabla
ParavisualizarlosdatosqueacabamosdecrearvamosautilizarlatransaccinSE16.
Allvamosaescribirelnombredenuestratablaypresionamosenter.

Inmediatamente despus, veremos la siguiente pantalla en donde podremos


filtrar los datos a mostrar por cualquiera de los campos que componen
nuestra tabla. Tambin podremos saber la cantidad de registros de nuestra
tablaconelbotn
Aqu presionamos F8y visualizaremos el
contenido de la tabla ZTABLA_USUARIOS
talcomovemos:

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:

Y queremos que al presionar F4 sobre


el campo de entrada de la pantalla se
muestrenlosnombreyapellidosdelos
usuarios.
Para esto, tenemosque crearla ayudadebusquedaZ_AYUDA_USUARIOS en
la transaccin SE11.Ingresamos el nombre Z_AYUDA_USUARIOS o la
derecha del texto Search help, presionamos el botn Create y veremos la
siguienteventanadedilogo:

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.

Si no existe ningn registro que cumpla la condicin especificada en la clusula


WHERE,elSYSUBRCserdistintodecero.

Diccionario de Datos
Lecturadeunatablainterna
Para leer un registro concreto de una tablainterna sin necesidad de recorrerla
utilizamoslasentenciaREADTABLE.
.

Si se encuentra el registro buscado, el SYSUBRC ser cero, caso contrario, ser


distintodecero.Sisedesealeerlosdatosqueseencuentranenunaposicinparticular
delatablaseutilizarlaclasulaINDEXtalcomovemosenelsiguienteejemplo.

El agregado de la Clasula BINARY SEARCH en la sentencia READ TABLE hace


que la bsqueda sea ampliamente ms eficiente. Para ms informacin sobre la
sentenciapresionarF1..

Diccionario de Datos
Modificandounatablainterna
Paramodificarelcontenidodeunregistrodeunatablainternautilizamoslasentencia
MODIFY.EnelsiguienteejemplomodificamoselcampoDNIcorrespondienteal
primerregistrodelatablainterna.
.

Parainsertarunregistroenunaposindeterminadadeunatablainternautilizamosla
sentenciaINSERT.Enelsiguienteejemploinsertamosunregistroenlaposicin2.

Si el registro que se intenta modificar con MODIFY no existe, se crear un nuevo


registroenlatabla.

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:

Donde TI_USUARIOS es una tablainterna del mismo tipo de la tabla


ZTABLA_USUARIOS. El asterisco indica que se obtendrn todos los campos de la
tabla.LaclusulaINTOTABLEseutilizacuandoelresultadodelaconsultaseguarda
enunatablainterna.
Enlasentenciaanterior,encasodeexistirregistrosenlatablaZTABLA_USUARIOS,
estospisarnelcontenidodelatablainternaTI_USUARIOS.Podraocurrirque
queramosconservarelcontenidodelatablainternaTI_USUARIOSluegode
reiteradasselecciones.Enestecasotendramosqueusarlaclusula
APPENDINGTABLEenlugardeINTOTABLE.
Evitarelusodel*cuandosoloserequieraobteneralgunoscamposdelatablaorigen.
EsrecomendablehacerCLEARyREFRESHdelatablainternaantesderealizarlaseleccin.

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.

En el ejemplo anterior, la tablainterna TI_USUARIOS2est compuesta por los


camposNOMBRE_APEyESTADO_USU.

Diccionario de Datos

LasentenciaSELECT
Supongamosquetenemosunreportequetienelapantalladeseleccin:

Donde Nombre y Apellido esel parameter P_NOMAPEy Estado Usuarioes el


selectoptions S_ESTADO.Si quisiramos hacer una seleccin a la tabla
ZTABLA_USUARIOSenbasealoquelosusuariosingresanporpantallaharamoslo
siguiente:

LaclusulaINseutilizaparalosselectoptionsenlascondicionesdeunselect.

Diccionario de Datos

LasentenciaSELECT
Ahora, si quisiramos obtener el usuario activo con DNI ms alto tendramos que
usarlaclusulaMAXdelasiguienteforma:

Si quisiramos saber la cantidad de usuarios con estado ="activo", debemos usar la


clusulaCOUNTdelasiguientemanera:

Diccionario de Datos

LasentenciaSELECT
Siquisiramosobtenerdeunatablatodoslosregistrosqueexistanenunatablainterna
cargadacondatos,entoncesdebemosutilizarlasentenciaFORALLENTRIESINque
nospermiteespecificarcondicionesentiempodeejecucin.Veamosunejemplo:

Si quisiramos obtenertodos los registros que cumplan con un patrn detexto


enalguno de sus campos, debemos utilizar la sentencia LIKE como vemos en el
siguienteejemplo:

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:

Siempre despus de un INSERT se debe preguntar por el SYSUBRC. Si es cero, el


registroseinsertocorrectamente,casocontrario,seprodujounerroryelregistronose
inserto.

Diccionario de Datos

LasentenciaINSERT
Siquisiramosintroducirtodoslosregistrosdeunatablainternaharamoslosiguiente:

Siexistealgnregistroenlabasededatosconigualclavequeunregistroenla tabla
internaseproducirunerrordeejecucinenelprograma.

Diccionario de Datos

LasentenciaUPDATE
LasentenciaUPDATEpermiteactualizarelcontenidodeunoovariosregistrosde
unatablabasededatos.Porejemplo,siquisiramosactualizarunregistrodeunatabla
basededatosharamoslosiguiente:

Siempre despus de unUPDATE se debe preguntar por el SYSUBRC. Si es cero, el


registroseactualizocorrectamente,casocontrario,seprodujounerroryelregistrono
seactualizo.

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:

Siempre despus de unMODIFY se debe preguntar por el SYSUBRC. Si es cero, el


registro semodifico correctamente, caso contrario, se produjo un error y el registro
nosemodifico.

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:

Siempre despus de unDELETE se debe preguntar por el SYSUBRC. Si es cero, el


registroseborrocorrectamente,casocontrario,seprodujounerroryelregistronose
borro.
LacantidadderegistrosborradosseguardaenSYDBCNT.

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:

Descripcin breve: Descripcin del dominio a crear, ha de ser un texto explicativo


deldominio.EnnuestrocasoescribiremosMesesdeAo.
Tipodedatos:Seleccionaremosunodelostiposexistenteseligiendoelquemejorse
adapte a las caractersticas del objeto que estamos definiendo. En nuestro caso
seleccionaremosCHAR
Los tipos de datos existentes se pueden visualizar (F4) nos mostrar la siguiente
ventana:

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.

Como vemos, podemos introducir valores fijos junto con su descripcin as


como introducir intervalos de valores introduciendo el lmite inferior y
superior.

Una vez completados todos los campos deseados grabamos el dominio


mediantelaopcingrabar(F11).
Cuandograbemosporprimeravez(noasenlasmodificaciones)nospreguntarporlaclase
dedesarrolloalaqueperteneceelobjeto.Laclasededesarrollosirveparaagruparobjetos
pertenecientes a una misma aplicacin y de esta manera poder transportar los objetos.
Utilizaremoslaclasededesarrollo$TMPqueeslacorrespondientealosobjetoslocalesy
pulsamoselbotndegrabarobienpulsamosqueasignardirectamentelaclase
desarrollotemporal(Estoesextensibleatodoslosobjetosposibles,dominios,elementos
dedatos,tablas,programas).
Una vez grabado el dominio, verificamos que no contiene errores para ello pulsamos el
botndeverificar(Ctrl.+F2),posteriormentesernecesarioactivarloparapoderser
utilizadopulsaremoselbotnde(Ctrl.+F3).(Esnecesarioactivarlosobjetosquese
crean ya que hasta que no son activados no podrn ser utilizados en otros objetos). La
modificacindeundominio,sehacedemanerasimilar.

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

Si el dominio representa la parte tcnica de un atributo, el elemento de datos


representalapartefuncionaldelatributo,esdecir,sudescripcinsemntica.
Creacin/Modificacin/Visualizacin.
Enelmendiccionario:
SeleccionamoslaopcinTipodeDatos,introducimoselnombredelElementode
datosquevamosacrear,(ennuestrocasoZMESFAXX).
PulsamoslaopcindeCrear.
SeleccionamoslaopcinElem.Datos,llegaremosalasiguientepantalla:

Elementosdedatos

Diccionario de Datos

Si el dominio representa la parte tcnica de un atributo, el elemento de datos


representalapartefuncionaldelatributo,esdecir,sudescripcinsemntica.
Creacin/Modificacin/Visualizacin.

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

A continuacin aparece la pantalla donde se introducen los campos que forman en


ndice.

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.

Desde esta pantalla podremos, crear nuevas entradas y visualizar ,


modificaryborrar(EntradaenTablaBorrar)lasexistentes.
Existenotrasformasdellegaralavisualizacindelcontenidodeunatablasinpasar
porlatransaccindeldiccionariodedatos.
ConlatransaccinSE16,indicaremoselnombredelatablayllegaremosdirectamente
alapantalladeseleccindedatosdelatabla.
Con la transaccin SM30 (slo si hemos generado las vistas de dilogo de
actualizacindelatabla).

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.

Grupo de autorizaciones: Mediante este campo, se puede controlar la seguridad


sobre el mantenimiento de la tabla, es decir, limitar los usuarios que puedan
modificarelcontenidodelatabla.Solamentepodrnrealizarmodificacionesaquellos
usuarios que tengan autorizacin sobre el grupo de autorizaciones indicado. Si
deseamosnocontrolarlaautorizacinpondremosenestecampoelvalorpordefecto
&NC&.(Ennuestrocasopondremosestevalor).
Grupo de funciones: Es necesario indicar un grupo de funciones en el que se
incluirnlasfunciones,dynprosydemsobjetosdeldilogodeactualizacin.Aunque
podemos indicar aqu cualquier grupo de funciones ya existente, es conveniente
indicarunonuevoobienungrupoquecontengaunafuncionalidadsimilar,eldilogo
deactualizacindeotratabla,porejemplo.(EnnuestrocasopondremosZGXX).
Tipo de actualizacin: Marcar uno o dos niveles har que se generen una o dos
pantallasdemantenimiento.Simarcamosunnivelsolamentesegenerarunapantalla
(imagenresumen)quemuestraelcontenidodetodoslosregistrosdelapantalla,sidos
niveles adems de la pantalla anterior (imagen resumen) se genera una segunda
(imagen sencilla) con el detalle de cada uno de los registros. (Seleccionamos dos
niveles).

Diccionario de Datos

Vistas/Dilogodeactualizacin.

Imgenesactualizacin:Representanelnmerodedynproqueseasignaracadauna
delasdospantallasquesegeneran.Podemosindicardosnmerosdedynproqueno
existanengrupodefuncioneselegidoaunqueexisteunautilidadparaqueelsistema
elijademaneraautomticaestosvaloresparaellopulsamoselbotnnos
llevaralasiguienteventana

Con la primera opcin nos propondr unos nmeros no existentes. Las


otrasopcionespermitenvisualizarlosntodavalibresylosyaasignados.
Alseleccionarlaprimeraopcinvolveremosalapantallaanterior,donde
se habrn informado los campos de la imagen resumen y sencilla.
Pulsamoselbotncrear(Sielgrupodefuncionesindicadonoesta
creado,nospedirunaclasededesarrollo pondremosseleccionaremos
objetolocal).Grabamos(F11)yretornamosalapantallaanterior

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

Con la primera opcin nos propondr unos nmeros no existentes. Las


otrasopcionespermitenvisualizarlosntodavalibresylosyaasignados.
Alseleccionarlaprimeraopcinvolveremosalapantallaanterior,donde
se habrn informado los campos de la imagen resumen y sencilla.
Pulsamoselbotncrear(Sielgrupodefuncionesindicadonoesta
creado,nospedirunaclasededesarrollo pondremosseleccionaremos
objetolocal).Grabamos(F11)yretornamosalapantallaanterior

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

Podemos ver como se indica el valor de la tabla en la columna de tabla de


verificacin.
En esta tabla tenemos un campo IMPNT que es de tipo importe (CURR) por tanto es
necesario referenciarlo. Para ello podemos seleccionar la pestaa Campos moneda /
Cantidad)einformardirectamenteloscampoTabRefyCpoRef.obiensituadossobreel
campohacemosDobleClick(F2)aparecerlaventanadondetambinpodemosindicar
estosdatos:
Tab.Referencia:Nombredelatabla.(PondremosZFACTUXX).
Cpo.Referencia:Campodelatablaindicada.(PondremosMoned)..
DeestamanerahemosreferenciadoelimporteIMPNTalamonedaMONED

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

Una vista es una particularizacin de una o varias tablas en la que se pueden


seleccionarunoovariosdeloscamposdelastabla/s.Porejemplopodemosrealizar
una vista para seleccionar nicamente algunos campos de una tabla pero
principalmenteutilizaremosvistasparaobtenerdatosdetablasrelacionadas.Bajouna
vista podemos unir dos o ms tablas y poder ver la interseccin entre dichas tablas
comosisetratardeunanicatabla.

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

Para crear objetos de bloqueo, en la pantalla principal del diccionario de datos,


seleccionamos la opcin Objeto de bloqueo (En nuestro caso, vamos a crear un
objetodebloqueoparalatablaZCLIENXX,escribiremosEZCLIENXX).Traspulsarla
opcindecrear,nosaparecerlapantalla:

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).

Você também pode gostar