Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Personalización y
ampliación
PowerDesigner
PowerDesigner 16.5
Contenido
xii PowerDesigner
CAPÍTULO 1 Archivos de recursos de
PowerDesigner
funciones principales > Modelado con PowerDesigner > Personalización del entorno
de modelado > Perfiles de usuario).
• Conjuntos de categorías de modelo (.mcc): personalice el cuadro de diálogo Nuevo
modelo para guiar la creación del modelo (consulte Guía de funciones principales >
Administración de PowerDesigner > Personalización de la interfaz de PowerDesigner
> Personalización del cuadro de diálogo Nuevo modelo).
• Tablas de conversión (.csv): defina conversiones entre el nombre y el código de un
objeto (consulte la Guía de características principales > Modelado con
PowerDesigner > Objetos > Convenciones de nomenclatura).
Puede revisar todos los archivos de recursos disponibles de las listas de archivos de recursos,
disponibles seleccionando Herramientas > Recursos > tipo.
2 PowerDesigner
CAPÍTULO 1: Archivos de recursos de PowerDesigner
Ruta: especifica los directorios que contienen archivos de recursos para completar
esta lista y otros lugares en la interfaz de PowerDesigner donde se pueden
seleccionar recursos de este tipo. De manera predeterminada, solo se especifica el
directorio que contiene los archivos de recursos entregados en la instalación de
PowerDesigner, pero puede agregar tantos directorios adicionales como sea
necesario.
Si planea modificar los archivos de recursos entregados o crear los suyos propios,
le recomendamos que almacene estos archivos en un directorio fuera del directorio
de instalación de PowerDesigner.
La raíz de la biblioteca que pertenece a su conexión de repositorio más reciente se
incluye implícitamente al principio de la lista y se explora de forma recursiva
(verGuía de funciones principales > Administración de PowerDesigner >
Implementación de un glosario y una biblioteca empresariales ).
Cuando trabaje con un BPM, PDM, OOM o XSM, puede abrir el archivo de definición que
controla los objetos disponibles en su modelo en el Editor de recursos para verlos y
editarlos. También puede abrir y editar cualquier archivo de extensión actualmente adjunto
o incrustado en su modelo o acceder a la lista adecuada de archivos de recursos y abrir
cualquier archivo de recursos de PowerDesigner.
Nota:Nunca debe modificar los archivos de recursos enviados con PowerDesigner. Si desea
modificar un archivo, cree una copia con la herramienta Nuevo (consulte Creación y copia
de archivos de recursos en la página 7).
4 PowerDesigner
CAPÍTULO 1: Archivos de recursos de PowerDesigner
Puede arrastrar y soltar categorías o entradas en la vista de árbol del editor de recursos y
también entre dos editores de recursos del mismo tipo (por ejemplo, dos editores XOL).
Las herramientas en la parte superior del Editor de recursos lo ayudan a navegar y buscar en
el archivo de recursos.
Herramienta Descripción
Nota:Para saltar a la definición de una plantilla desde una referencia en otra plantilla (ver
Plantillas (Perfil) en la página 84) u otra extensión, coloque el cursor entre los signos de
porcentaje y presione F12. Si una extensión anula otro elemento, haga clic con el botón
derecho y seleccione Ir a superdefinición para ir al elemento anulado.
Puede agregar elementos en el editor de recursos haciendo clic con el botón derecho en una
categoría o una entrada en la vista de árbol. Están disponibles las siguientes opciones de
edición:
Opción de Descripción
edición
Nuevo Agrega una entrada o categoría definida por el usuario.
Añadir Abre un cuadro de diálogo de selección que le permite seleccionar una o más
artículos... de las categorías o entradas de metamodelo predefinidas para agregar al nodo
actual. No puede editar los nombres de estos elementos, pero puede cambiar sus
comentarios y valores seleccionando su nodo.
Nota:Puede cambiar el nombre de una categoría o una entrada directamente desde el árbol
de archivos de recursos seleccionándola y presionando la tecla F2.
6 PowerDesigner
CAPÍTULO 1: Archivos de recursos de PowerDesigner
Guardando cambios
Si realiza cambios en un archivo de recursos y luego hace clic en Aceptar para cerrar el editor
de recursos sin haber hecho clic en la herramienta Guardar, los cambios se guardan en la
memoria, el editor se cierra y vuelve a la lista de archivos de recursos. Cuando hace clic en
Cerrar en la lista de archivos de recursos, se muestra un cuadro de confirmación que le
pregunta si realmente desea guardar el archivo de recursos modificado. Si hace clic en Sí,
los cambios se guardan en el propio archivo de recursos. Si hace clic en No, los cambios se
guardan en la memoria hasta que cierre la sesión de PowerDesigner.
La próxima vez que abra cualquier modelo que utilice el archivo de recursos personalizado,
el modelo tendrá en cuenta las modificaciones. Sin embargo, si anteriormente modificó las
mismas opciones directamente en el modelo, los valores en el archivo de recursos no cambian
estas opciones.
Los archivos de recursos pueden ser compartidos y referenciados por múltiples modelos o
copiados e incrustados en un solo modelo. Cualquier modificación que realice en un recurso
compartido está disponible para todos los modelos que utilizan el recurso, mientras que las
modificaciones en un recurso incrustado solo están disponibles para el modelo en el que está
incrustado. Los archivos de recursos integrados se guardan como parte de su modelo y no
como un archivo separado.
Nota:Nunca debe modificar las extensiones originales enviadas con PowerDesigner. Para
crear una copia del archivo para modificar, abra la Lista de extensiones, haga clic en la
herramienta Nuevo, especifique un nombre para el nuevo archivo y luego seleccione el .xem
que desea modificar en el campo Copiar desde.
El campo Nombre de archivo muestra la ubicación definida del archivo de recursos que está
modificando.
Este campo está vacío si el archivo de recursos está incrustado.
Puede crear un nuevo archivo de recursos en la lista de archivos de recursos adecuada. Para
crear una copia de un archivo de recursos existente, selecciónelo en el campo Copiar desde
del cuadro de diálogo Nuevo....
¡Advertencia!Dado que cada archivo de recursos tiene una identificación única, solo debe
copiar los archivos de recursos dentro de PowerDesigner y no en el Explorador de Windows.
1. Seleccione Herramientas > Recursos > Tipo para abrir la lista de archivos de recursos
adecuada.
2. Haga clic en la herramienta Nuevo, ingrese un nombre para el nuevo archivo y seleccione
un archivo existente para copiar. Seleccione el elemento <Plantilla predeterminada> para
crear un archivo de recursos mínimamente completado.
3. Haga clic en Aceptar para crear el nuevo archivo de recursos y luego especifique un
nombre de archivo y haga clic en Guardar para abrirlo en el Editor de recursos.
Puede seleccionar dos archivos de recursos y compararlos para resaltar las diferencias entre
ellos.
1. Seleccione Herramientas > Recursos > Tipo para abrir la lista de archivos de recursos
adecuada.
2. Seleccione el primer archivo de recursos que desea comparar en la lista y luego haga clic
en la herramienta Comparar para abrir un cuadro de diálogo de selección.
El archivo seleccionado se muestra en el segundo campo de comparación.
3. Seleccione el otro archivo de recursos para comparar en el primer campo de comparación.
Si el archivo de recursos que desea comparar no está en la lista, haga clic en la
herramienta Seleccionar ruta y busque su directorio.
8 PowerDesigner
CAPÍTULO 1: Archivos de recursos de PowerDesigner
4. Haga clic en Aceptar para abrir el cuadro de diálogo Comparar..., que le permite revisar
todas las diferencias entre los archivos.
Para obtener información detallada sobre esta ventana, consulte la Guía de funciones
principales > Modelado con PowerDesigner > Comparación y combinación de modelos.
5. Revise las diferencias y luego haga clic en Cerrar para cerrar la ventana de comparación
y volver a la lista.
Puede seleccionar dos archivos de recursos del mismo tipo y fusionarlos. La combinación se
realiza de izquierda a derecha, el archivo de recursos del panel derecho se compara con el
archivo de recursos del panel izquierdo, las diferencias se resaltan y se proponen acciones
de combinación en el archivo de recursos de la derecha.
1. Seleccione Herramientas > Recursos > Tipo para abrir la lista de archivos de recursos
adecuada.
2. Seleccione el archivo de recursos en el que desea realizar cambios de combinación en la
lista y luego haga clic en la herramienta Combinar para abrir un cuadro de diálogo de
selección.
El archivo seleccionado se muestra en el campo Para.
3. Seleccione el archivo de recursos desde el que desea fusionar en el campo De.
Si el archivo de recursos que desea fusionar no está en la lista, haga clic en la herramienta
Seleccionar ruta y busque su directorio.
4. Haga clic en Aceptar para abrir el cuadro de diálogo Combinar..., que le permite revisar
todas las acciones de combinación antes de completarlas.
Para obtener información detallada sobre esta ventana, consulte la Guía de funciones
principales > Modelado con PowerDesigner > Comparación y combinación de modelos.
5. Seleccione o rechace las acciones de combinación propuestas según sea necesario y luego
haga clic en Aceptar para realizar la combinación.
10 PowerDesigner
CAPÍTULO 1: Archivos de recursos de PowerDesigner
Nota:Dado que puede adjuntar varios archivos de recursos a un modelo (por ejemplo, un
idioma de destino y uno o más archivos de extensión), puede crear conflictos, donde se
definen múltiples extensiones con nombres idénticos (por ejemplo, dos definiciones de
estereotipo diferentes) en la misma metaclase. en archivos de recursos separados. En caso de
tales conflictos, generalmente prevalece la extensión del archivo de extensión. Cuando dos
XEM están en conflicto, se da prioridad al más alto en la Lista de extensiones.
Nota:Para obtener información sobre cómo crear un archivo de extensión a partir de la lista
de archivos de extensión, consulte Creación y copia de archivos de recursos en la página 7.
1. Abra su modelo y luego seleccione Modelo > Extensiones para abrir la Lista de
extensiones.
2. Haga clic en la herramienta Agregar una fila e ingrese un nombre para el nuevo archivo
de extensión.
Las extensiones pueden estar en archivos *.xem independientes que se adjuntan a modelos
o se pueden incrustar en archivos de modelo. Múltiples modelos pueden hacer referencia a
los archivos de extensión independientes, y todos los modelos que lo adjuntan comparten
cualquier cambio realizado en dicho archivo. Los cambios realizados en las extensiones
incrustadas en un archivo de modelo afectan solo a ese modelo.
Nota:Nunca debe modificar las extensiones originales enviadas con PowerDesigner. Para
crear una copia del archivo para modificar, abra la Lista de extensiones, haga clic en la
herramienta Nuevo, especifique un nombre para el nuevo archivo y luego seleccione el
.xem que desea modificar en el campo Copiar desde.
14 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Los archivos de extensión enumerados en gris están adjuntos al modelo, mientras que los
que están en negro están incrustados en el modelo.
Nombre / Especifique el nombre y el código del archivo de extensión, que debe ser único
Código en un modelo.
Nombre del [solo lectura] Especifica la ruta al archivo de extensión. Si el XEM se ha copiado
archivo en su modelo, este campo está vacío.
Categoría Agrupa los XEM por tipo para la generación y en el cuadro de diálogo
Seleccionar extensiones. Las extensiones que tienen la misma categoría no se
pueden generar simultáneamente. Si no especifica una categoría, el XEM se
muestra en la categoría Uso general y se trata como un objetivo de generación.
Habilitar Le permite obtener una vista previa de las plantillas utilizadas durante la
seguimiento generación (verPlantillas (Perfil)en la página 84). Antes de comenzar la
Modo generación, haga clic en la página Vista previa del objeto relevante y haga clic
en la herramienta Actualizar para mostrar las plantillas.
Cuando hace doble clic en una línea de seguimiento desde la página Vista previa,
el Editor de recursos se abre en la definición de plantilla correspondiente.
Propiedad Descripción
16 PowerDesigner
CAPÍTULO 2: Archivos de extensión
18 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Un cliente desea saber el valor de sus acciones para decidir vender o no, y envía una consulta
de valor de acciones desde su navegador de Internet, que se transfiere desde su navegador al
servidor de la base de datos a través del servidor de aplicaciones.
El primer paso para definir extensiones es crear un archivo de extensión (.xem) para
guardarlas en:
1. Cree o abra un OOM y seleccione Modelo > Extensiones para abrir la lista de extensiones
adjuntas al modelo.
2. Haga clic en la herramienta Agregar una fila para crear un nuevo archivo de extensión y
luego haga clic en la herramienta Propiedades para abrirlo en el Editor de recursos.
3. Ingrese Extensiones de análisis de solidez en el campo Nombre y desmarque la casilla
Complementar generación de lenguaje, ya que estas extensiones no pertenecen a ninguna
familia de lenguajes de objetos y no se usarán para complementar ninguna generación de
lenguajes de objetos.
4. Expande la categoría Perfil, en la que crearemos las extensiones:
1. Haga clic con el botón derecho en la categoría Perfil y seleccione Agregar metaclases
para abrir el cuadro de diálogo Selección de metaclases.
2. Seleccione UMLObject en la pestaña PdOOM y haga clic en Aceptar para agregar esta
metaclase al archivo de extensión.
3. Haga clic con el botón derecho en la categoría UMLObject y seleccione Nuevo >
Estereotipo para crear un estereotipo para ampliar esta metaclase.
4. Ingrese Límite en el campo Nombre, y los objetos de Límite son utilizados por los actores
cuando se comunican con el sistema; pueden ser ventanas, pantallas, cuadros de diálogo
o menús. en el campo Comentario.
5. Seleccione la casilla de verificación Usar como metaclase para promocionar el tipo de
objeto en la interfaz para que tenga su propia lista de objetos y categoría de navegador.
6. Haga clic en la herramienta Seleccionar icono para abrir el cuadro de diálogo de la
biblioteca de imágenes de PowerDesigner, seleccione la pestaña Buscar imágenes,
ingrese el límite en el campo Buscar y haga clic en el botón Buscar.
7. Seleccione la imagen Boundary.cur en los resultados y haga clic en Aceptar para asignarla
para representar objetos de límite en el navegador y otros elementos de la interfaz. Haga
clic en la casilla de verificación de la herramienta personalizada Caja de herramientas
para crear una herramienta con el mismo icono para crear el nuevo objeto en la Caja de
herramientas.
8. Repita estos pasos para crear los siguientes estereotipos e íconos:
Estereotipo Comentario Archivo de
imagen
20 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en Estereotipo de límite y seleccione Nuevo > Símbolo
personalizado para crear un símbolo personalizado debajo del estereotipo.
2. Haga clic en el botón Modificar para abrir el cuadro de diálogo Formato de símbolo y
seleccione la pestaña Forma personalizada.
3. Seleccione la casilla de verificación Habilitar forma personalizada y seleccione Objeto
de contorno en la lista Nombre de forma.
4. Haga clic en Aceptar para completar la definición del símbolo personalizado y volver al
Editor de recursos.
5. Repita estos pasos para los otros estereotipos:
Estereotipo Nombre de forma
22 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en la categoría Perfil, seleccione Agregar metaclases para
abrir el cuadro de diálogo Selección de metaclases, seleccione InstanceLink en la pestaña
PdOOM y haga clic en Aceptar para agregarlo al archivo de extensión.
2. Haga clic con el botón derecho en la categoría InstanceLink y seleccione Nuevo >
Comprobación personalizada para crear una comprobación en la metaclase.
3. Ingrese los siguientes valores para las propiedades en la pestaña General:
Campo Valor
Campo Valor
Gravedad Error
predeterminada
Ejecutar la [seleccionado]
verificación
por defecto
24 PowerDesigner
CAPÍTULO 2: Archivos de extensión
%Comprobar% = Falso
Terminara si
ElseIf CompareObjectKind(dst, PdOOM.Cls_Actor) Entonces
' Comprobar si la fuente es un objeto UML con estereotipo
"límite"
Si no es CompareStereotype(src, PdOOM.Cls_UMLObject,
"Límite") Entonces
%Comprobar% = Falso
Terminara si
Terminara si
función final
5. Seleccione la pestaña Global Script (donde almacena funciones y atributos estáticos que
pueden reutilizarse entre diferentes funciones) e ingrese el siguiente script en el campo
de texto:
'Comprobar objeto
Si Obj es Nada Entonces
Función de salida
Terminara si
' Caso específico de acceso directo, preguntar a su objeto de
destino
Si Obj.IsShortcut() Entonces
CompareObjectKind = CompareObjectKind(Obj.TargetObject, Kind)
Función de salida
Terminara si
Si Obj.IsKindOf(Tipo) Entonces
' Tipo de objeto correcto
CompareObjectKind = Verdadero
Terminara si
función final
'Comprobar objeto
Si Obj es Nada entonces
Salir Función Finalizar
si
if (no Obj.IsShortcut() y no Obj.HasAttribute("Stereotype"))
Entonces
Función de salida
Terminara si
' Caso específico de acceso directo, preguntar a su objeto de
destino
Si Obj.IsShortcut() Entonces
CompareStereotype = CompareStereotype(Obj.TargetObject,
tipo, valor)
Función de salida
Terminara si
Si Obj.IsKindOf(Tipo) Entonces
' Tipo de objeto correcto
Si Obj.Estereotipo = Valor Entonces
' Valor de estereotipo correcto
Comparar estereotipo = verdadero
Terminara si
26 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Terminara si
función final
trgt.comment = src.comment
trgt.description = src.description
trgt.annotation = src.annotation Dim
b, d
para cada b en src.AttachedRules
trgt.AttachedRules.insert -1,b siguiente
para cada d en src.RelatedDiagrams
trgt.RelatedDiagrams.insert -1,d
siguiente salida " "
salida trgt.Classname & " " & trgt.name & " ha sido creado." Salida
" " Función final
6. Repita estos pasos para crear un segundo cheque ingresando los siguientes valores:
Campo Valor
Gravedad Error
predeterminada
Ejecutar la [seleccionado]
verificación por
defecto
Campo Valor
Comprobar guión
28 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Función %Comprobar%(enlace)
' El retorno predeterminado es Verdadero
%Comprobar% = Verdadero
7. Repita estos pasos para crear un tercer cheque ingresando los siguientes valores:
Campo Valor
Gravedad Error
predeterminada
Ejecutar la [seleccionado]
verificación por
defecto
Campo Valor
Comprobar guión
Función %Comprobar%(enlace)
' El retorno predeterminado es Verdadero
%Comprobar% = Verdadero
30 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en la categoría Perfil, seleccione Agregar metaclases para
abrir el cuadro de diálogo Selección de metaclases, seleccione Diagrama de
comunicación y Mensaje en la pestaña PdOOM y haga clic en Aceptar para agregarlos al
archivo de extensión.
2. Haga clic con el botón derecho en la categoría Mensaje y seleccione Nuevo > Plantilla
para crear una plantilla en la metaclase.
3. Ingrese la descripción en el campo Nombre y luego ingrese el siguiente código GTL en
el área de texto:
.set_value(_tabs, "", nuevo)
La primera línea de esta plantilla genera el título del escenario a partir del nombre del
diagrama de comunicación. Luego, la macro .foreach_item se repite en cada símbolo de
mensaje y llama a las otras plantillas para formatear y generar la información del
mensaje.
32 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en la categoría Perfil, seleccione Agregar metaclases para
abrir el cuadro de diálogo Selección de metaclases, haga clic en la herramienta Modificar
filtro de metaclases, seleccione Mostrar metaclases de modelado abstracto y haga clic en
la pestaña PdCommon.
2. Seleccione BasePackage y haga clic en Aceptar para agregarlo al archivo de extensión.
3. Haga clic con el botón derecho en la categoría Paquete base y seleccione Nuevo >
Archivo generado para crear un archivo en la metaclase.
4. Ingrese los siguientes valores para las propiedades del archivo:
Campo Valor
6. Haga clic en Aplicar para guardar los cambios y luego en Aceptar para cerrar el editor de
recursos.
7. Haga clic en Aceptar para cerrar la Lista de extensiones.
Para obtener información detallada sobre la creación de archivos generados, consulte
Archivos generados (perfil) en la página 85.
34 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Haga clic en Aceptar para probar la validez de los enlaces de instancia que hemos creado.
6. Haga clic con el botón derecho en el nodo del modelo en el navegador y seleccione
Propiedades para abrir la hoja de propiedades del modelo. Haga clic en la pestaña Vista
previa para revisar los mensajes enviados para nuestro caso de uso:
36 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Metaclases (Perfil)
2. Seleccione una o más metaclases para agregar al perfil. Las subpestañas enumeran las
metaclases que pertenecen al módulo actual (por ejemplo, el OOM) y las metaclases
estándar que pertenecen al módulo PdCommon.
38 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Propiedad Descripción
"/!=<>""'()"
Cuando se trabaja con un OOM, esta lista específica de objeto anula cualquier
valor especificado en la propiedad IllegalChar para el idioma del objeto
(verConfiguración Categoría: Lenguaje de objetos en la página 110).
40 PowerDesigner
CAPÍTULO 2: Archivos de extensión
• Objetos extendidos: defina nuevos tipos de objetos que se pueden crear en cualquier
lugar.
• Subobjetos extendidos: defina nuevos tipos de objetos secundarios que solo se pueden
crear en la hoja de propiedades de su elemento principal a través de una composición
extendida (consulte Colecciones y composiciones extendidas (perfil) en la página 48).
• Enlaces extendidos: defina nuevos tipos de enlaces entre objetos.
1. Haga clic con el botón derecho en la categoría Perfil, seleccione Agregar metaclases y
haga clic en la subpestaña PdCommon en el cuadro de diálogo para mostrar la lista de
objetos comunes a todos los modelos.
2. Seleccione uno o más de ExtendedLink, ExtendedSubObject y ExtendedObject y haga
clic en Aceptar para agregarlos a su perfil.
Nota:Para que las herramientas para crear objetos extendidos y enlaces extendidos estén
disponibles en la Caja de herramientas de modelos que no sean el modelo libre, debe
agregarlos a través del cuadro de diálogo de personalización disponible en Herramientas
> Personalizar menús y herramientas.
Estereotipos (Perfil)
Los estereotipos subclasifican las metaclases para que las extensiones se apliquen a los
objetos solo si llevan el estereotipo. Los estereotipos se pueden promover al estado de
metaclases con una lista específica, una categoría de navegador y un símbolo personalizado
y una herramienta de caja de herramientas.
Nota:Puede definir más de un estereotipo para una metaclase dada, pero solo puede aplicar
un único estereotipo a cada instancia. Al igual que otras extensiones, los estereotipos admiten
la herencia, por lo que los estereotipos secundarios heredan las extensiones de un estereotipo
principal.
1. Haga clic con el botón derecho en una metaclase, criterio o estereotipo y seleccione
Nuevo > Estereotipo.
2. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
Nombre Especifica el nombre interno del estereotipo, que se utiliza para las secuencias
de comandos.
Etiqueta Especifica el nombre para mostrar del estereotipo, que aparecerá en la interfaz
de PowerDesigner.
Usar como Promueve el estereotipo al mismo estado que las metaclases estándar de
metaclase PowerDesigner, para darle su propia lista de objetos, categoría de navegador y
su propia pestaña en cuadros de selección de varios paneles, como los que se
utilizan para la generación (verPromoción de un estereotipo al estado de
metaclaseen la página 39).
Sin símbolo [disponible cuando se selecciona Usar como metaclase] Especifica que las
instancias de la metaclase estereotipada no se pueden mostrar en un diagrama y
solo son visibles en el navegador. Deshabilita la herramienta personalizada Caja
de herramientas.
Propiedad Descripción
42 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Herramienta [disponible para objetos que admiten símbolos] Especifica una herramienta de
personalizada Caja de herramientas que le permite crear objetos en un diagrama. Si no
de la caja de selecciona esta opción, los usuarios solo podrán crear objetos con el
herramientas estereotipo desde el menú Explorador o Modelo. Las herramientas
personalizadas aparecen en un grupo de Caja de herramientas separado que
lleva el nombre del archivo de recursos en el que están definidas.
Nota:Si no ha especificado un icono, la herramienta utilizará un icono de
martillo de forma predeterminada.
etiqueta plural [disponible cuando se selecciona Usar como metaclase] Especifica la forma
plural del nombre para mostrar que aparecerá en la interfaz de
PowerDesigner.
Nombre [disponible cuando se selecciona Usar como metaclase o Herramienta
predeterminad personalizada de Toolbox] Especifica un nombre predeterminado para los
o objetos creados. Se agregará automáticamente un contador al nombre
especificado para generar nombres únicos.
Un nombre predeterminado puede ser útil cuando se diseña para un idioma de
destino o una aplicación con convenciones de nomenclatura estrictas. Tenga
en cuenta que el nombre predeterminado no prevalece sobre las convenciones
de nomenclatura del modelo, por lo que si un nombre no es correcto, se
modifica automáticamente.
Comentario Proporciona una descripción o información adicional sobre el estereotipo.
Criterios (Perfil)
Los criterios subclasifican las metaclases para que las extensiones se apliquen a los objetos
solo si cumplen las condiciones. Puede probar una instancia de objeto con varios criterios y,
44 PowerDesigner
CAPÍTULO 2: Archivos de extensión
para los subcriterios, se deben cumplir su condición y las condiciones especificadas por sus
padres para que sus extensiones se apliquen a la instancia.
1. Haga clic con el botón derecho en una metaclase y seleccione Nuevo > Criterio.
2. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
Condición Especifica la condición que deben cumplir las instancias para acceder a las
extensiones de criterio. Puede utilizar cualquier expresión válida para la macro
PowerDesigner GTL .if (ver.si Macroen la página 275). Puede hacer referencia
a cualquier atributo extendido definido en el nivel de la metaclase en la
condición, pero no a los definidos en el criterio mismo.
Por ejemplo, en un PDM, puede personalizar los símbolos de las tablas de hechos
creando un criterio que probará el tipo de tabla usando la siguiente condición:
(%TipoDimensional% == "1")
%DimensionalType% es un atributo del objeto
BaseTable, que tiene un conjunto de valores
definidos, incluido "1", que corresponde a
"hecho". Para obtener más información, seleccione
Ayuda > Ayuda de objetos de metamodelo y vaya a
Bibliotecas > PdPDM > Clases abstractas > Tabla
base.
Padre Especifica el criterio principal del criterio. Para mover el criterio debajo de otro
padre, seleccione el padre en la lista. Haga clic en la herramienta Propiedades
para abrir el padre y ver sus propiedades.
Los atributos extendidos definen metadatos adicionales para capturar para instancias de
objetos. Puede especificar un valor predeterminado, permitir que los usuarios ingresen
libremente datos numéricos, de cadena u otros tipos de datos (o seleccionar objetos),
proporcionar una lista abierta o cerrada de valores posibles o calcular un valor.
1. Haga clic con el botón derecho en una metaclase, estereotipo o criterio en la categoría
Perfil y seleccione Nuevo > Atributo extendido.
2. Especifique las siguientes propiedades según corresponda:
46 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Propiedad Descripción
Nombre Especifica el nombre interno del atributo, que se puede utilizar para
secuencias de comandos.
Etiqueta Especifica el nombre para mostrar del atributo, que aparecerá en la interfaz
de PowerDesigner.
Propiedad Descripción
Tipo de datos Especifica la forma de los datos que debe contener el atributo extendido. Puedes
elegir entre:
• Booleano - VERDADERO o Falso.
• Color: xxx xxx xxx donde x es un número entero entre 0 y 255.
• Fecha u Hora: su formato local como se especifica en la configuración
regional de Windows
• Archivo o ruta: no puede contener /// ni ninguno de los siguientes
caracteres: ?"<>|.
• Entero o Flotante: el formato local apropiado.
• Hexadecimal - un hexadecimal.
• Fuente: nombre de fuente, tipo de fuente, tamaño de fuente.
• Nombre de fuente o estilo de fuente: una cadena de 1 a 50 caracteres.
• Tamaño de fuente: un número entero entre 1 y 400.
• Objeto: un objeto del tipo correcto y, si corresponde, con el estereotipo
correcto. Al seleccionar este tipo, debe especificar un tipo de Objeto y, si
corresponde, un estereotipo de Objeto, y también puede especificar un
nombre de colección Inverso (verVinculación de objetos a través de
atributos extendidosen la página 48).
• Contraseña - sin restricciones.
• Cadena (línea única) o Texto (líneas múltiples): sin restricciones.
Seleccione la casilla de verificación Validar a la derecha de la lista para aplicar
la validación de los valores ingresados para el atributo.
Para crear su propio tipo de datos, haga clic en la herramienta Crear tipo de
atributo extendido a la derecha del campo (verCrear un tipo de atributo
extendidoen la página 45).
Propiedad Descripción
Valor por [si no se calcula] Especifica un valor predeterminado para el atributo. Puede
defecto especificar el valor de cualquiera de las siguientes maneras:
• Introduzca el valor directamente en la lista.
• [tipos de datos predefinidos] Haga clic en el botón Puntos suspensivos
para abrir un cuadro de diálogo que enumera los valores posibles. Por
ejemplo, si el tipo de datos se establece en Color, el botón Puntos
suspensivos abre una ventana de paleta.
• [tipos de datos definidos por el usuario] Seleccione un valor de la lista.
Plantilla [si no se calcula] Especifica que el valor del atributo se evaluará como una
plantilla GTL en el momento de la generación. Por ejemplo, si el valor del
atributo se establece en %Código%, se generará como el valor del atributo de
código del objeto relevante.
De forma predeterminada (cuando esta casilla de verificación no está
seleccionada), el atributo se evalúa literalmente y se generará un valor de
%Código% como la cadena %Código%.
48 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Lista de Especifica una lista de valores posibles para el atributo de una de las
valores siguientes maneras:
• Introduzca una lista estática de valores delimitados por punto y coma
directamente en el campo.
• Utilice las herramientas a la derecha de la lista para crear o seleccionar
una plantilla GTL para generar la lista dinámicamente.
Si el tipo de atributo es Objeto y no desea filtrar la lista de objetos
disponibles de ninguna manera, puede dejar este campo en blanco.
Para realizar un filtro simple de la lista de objetos, use la macro .collection
(verMacros .objeto y .colecciónen la página 278). En el siguiente
ejemplo, solo las tablas con el atributo Generado establecido en verdadero
estarán disponibles para su selección:
.colección(Modelo.Tablas, %Generado%==verdadero)
Para un filtrado más complejo, utilice la macro foreach_item
(consulteMacro .foreach_itemen la página 271):
.foreach_item (Modelo.Tablas)
.if %Generado%
.// (o criterios más complejos)
%IDObjeto%
.terminara si
.siguiente (\n)
Si el atributo se basa en un tipo de atributo ampliado (consulteCrear un tipo de
atributo extendidoen la página 45), este campo no está disponible ya que se
utilizarán los valores del tipo de atributo ampliado.
Completo Especifica que todos los valores posibles para el atributo se definen en la Lista
de valores y que el usuario no puede ingresar ningún otro valor.
Propiedad Descripción
Editar método [si no está completo] Especifica un método para anular la acción
predeterminada asociada con la herramienta a la derecha del campo.
Este método se usa a menudo para aplicar un filtro definido en el campo Lista
de valores en el selector de objetos. En el siguiente ejemplo, solo las tablas con
el atributo Generado establecido en verdadero estarán disponibles para su
selección:
Sub %Método%(obj)
Mdl tenue
Establecer Mdl = obj.Modelo
Sel tenue
Establecer Sel = Mdl.CreateSelection
Sel.Borrar
Terminara si
Finalizar sub
Tipo de objeto [solo para tipos de datos de objeto] Especifica el tipo de objeto que contiene el
atributo (por ejemplo, Usuario, Tabla, Clase).
Estereotipo de [solo para tipos de datos de objeto] Especifica el estereotipo que deben tener
objeto los objetos de este tipo para poder seleccionarlos.
Propiedad Descripción
50 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nombre de [solo para tipos de datos de objeto, si no se calculan] Especifica el nombre con
colección el que se enumerarán los enlaces al objeto en la pestaña Dependencias del
inversa objeto de destino.
Una colección extendida con el mismo nombre que el atributo extendido, que
maneja estos enlaces, se crea automáticamente para todos los atributos
extendidos no calculados del tipo Objeto y se elimina cuando elimina el
atributo extendido, cambia su tipo o selecciona el atributo Calculado. caja.
Opción física [solo para tipos de datos [Opción física]] Especifica la opción física con la que
está asociado el atributo. Haga clic en los puntos suspensivos a la derecha de
este campo para seleccionar una opción física. Para más información,
verAdición de opciones físicas de DBMS a sus formulariosen la página 210.
1. Haga clic con el botón derecho en la categoría Perfil\Compartido y seleccione Nuevo >
Tipo de atributo extendido.
2. Ingrese las propiedades apropiadas, incluida una lista de valores y un valor
predeterminado.
52 PowerDesigner
CAPÍTULO 2: Archivos de extensión
5. Para cada valor de la lista, haga doble clic en él y haga clic en la herramienta Icono para
seleccionar un icono para representar este valor en los símbolos de objetos:
Las colecciones extendidas definen la posibilidad de asociar una instancia de objeto con un
grupo de otros objetos del tipo especificado. Las composiciones extendidas definen una
conexión padre-hijo entre una instancia de objeto y un grupo de subobjetos derivados de la
metaclase ExtendedSubObject.
Para las colecciones extendidas, la asociación entre los objetos principal y secundario es
relativamente débil, de modo que si copia o mueve el objeto principal, los objetos
relacionados no se copian ni mueven, pero se mantiene la conexión (usando accesos directos
si es necesario). Por ejemplo, podría asociar documentos que contengan especificaciones de
casos de uso con los diferentes paquetes de un modelo creando una colección extendida en
la metaclase Package y especificando FileObject como la metaclase de destino.
Para composiciones extendidas, la asociación es más fuerte. Los subobjetos solo se pueden
crear dentro del objeto principal y se mueven, copian y/o eliminan junto con su objeto
principal.
54 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en una metaclase, estereotipo o criterio y seleccione
Nuevo > Colección extendida o Composición extendida.
Puede ver la pestaña asociada con la colección abriendo la hoja de propiedades de una
instancia de metaclase. La pestaña contiene una herramienta Agregar objetos (y, si la
metaclase pertenece al mismo tipo de modelo, Crear un objeto), para completar la
colección.
Las colecciones calculadas definen una conexión de solo lectura entre una instancia de objeto
y un grupo de otros objetos del tipo especificado. La lógica de la colección se define mediante
VBScript.
El usuario no puede modificar las colecciones calculadas, a diferencia de las colecciones
extendidas (consulte Colecciones y composiciones extendidas (perfil) en la página 48).
Puede crear colecciones calculadas para:
56 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en una metaclase, un estereotipo o un criterio y seleccione
Nuevo > Colección calculada.
2. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
3. Haga clic en la pestaña Script de colección calculado e ingrese un script que calculará
qué objetos formarán la colección.
Si corresponde, puede reutilizar funciones en la pestaña Global Script, que se usa para
compartir funciones de biblioteca y atributos estáticos en el archivo de recursos. Puede
declarar variables globales en esta pestaña, pero debe tener en cuenta que no se
reinicializarán cada vez que se calcule la colección y mantendrán su valor hasta que
modifique el archivo de recursos o finalice la sesión de PowerDesigner. Esto puede
causar errores, especialmente cuando las variables hacen referencia a objetos que se
pueden modificar o eliminar. Asegúrese de reinicializar la variable global si no desea
conservar el valor de una ejecución anterior.
Para obtener más información sobre la definición de un script y el uso de la pestaña
Global Script, consulte Ejemplo: Comprobación personalizada de PDM en la página 73
y Global Script (perfil) en la página 105.
4. Haga clic en Aplicar para guardar sus cambios.
Puede ver la pestaña asociada con la colección abriendo la hoja de propiedades de una
instancia de metaclase.
58 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Las matrices de dependencia le permiten revisar y crear vínculos entre cualquier tipo de
objetos. Especifique una metaclase para las filas de la matriz y la misma u otra metaclase
para las columnas. A continuación, el contenido de las celdas se calcula a partir de un objeto
de enlace o colección.
Por ejemplo, podría crear matrices de dependencia que muestren vínculos entre:
• Clases OOM y clases: conectadas por objetos de enlace de asociación
• Tablas y usuarios de PDM: conectados por la colección Owner
1. Haga clic con el botón derecho en la categoría Perfil y seleccione Agregar matriz de
dependencia para agregar la metaclase DependencyMatrix al perfil y crear un estereotipo
debajo de él, en el que definirá las propiedades de la matriz.
2. En la pestaña General, ingrese un nombre para la matriz (por ejemplo, Matriz de
propietarios de tablas) junto con una etiqueta y una etiqueta plural para usar en la interfaz
de PowerDesigner, así como un nombre predeterminado para las matrices que los
usuarios crearán en función de esta definición.
3. Haga clic en la pestaña Definición para especificar las filas y columnas de su matriz y
cómo se asocian usando las siguientes propiedades.
Propiedad Descripción
filas Especifica el tipo de objeto con el que rellenar las filas de la matriz.
columnas Especifica el tipo de objeto con el que rellenar las columnas de su matriz. Haga
clic en el botón Seleccionar metaclase a la derecha de la lista para seleccionar
una metaclase de otro tipo de modelo.
Células de Especifica cómo se asociarán las filas y columnas de su matriz. Debe especificar
matriz una Dependencia de la lista, que incluye todas las colecciones y enlaces
disponibles para el objeto.
Haga clic en el botón Crear a la derecha de la lista para crear una nueva colección
extendida (verColecciones y Composiciones Extendidas (Perfil)en la página
48) conectando sus objetos, o el botón Avanzado para especificar una ruta de
dependencia compleja (verEspecificación de dependencias avanzadasen la
página 54).
Para ciertas dependencias, se mostrará el tipo de objeto en el que se basa la
dependencia, y puede seleccionar un atributo de objeto para mostrar en las celdas
de la matriz junto con el símbolo Sin valor, que se muestra si ese atributo no está
configurado en una instancia particular. .
60 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Dependencia Especifica la dependencia de este paso en la ruta. La lista se completa con todas
las dependencias posibles para el tipo de objeto anterior.
Tipo de objeto Especifica el tipo de objeto específico que está vinculado al tipo de objeto anterior
por la dependencia seleccionada. Este campo se rellena automáticamente si solo
hay un tipo de objeto disponible a través de la dependencia seleccionada.
En el siguiente ejemplo, se identifica una ruta entre funciones comerciales y roles, pasando
de la función comercial a través de los procesos que contiene, al rol vinculado a ella por una
asociación de roles:
Formularios (Perfil)
Nota:A menos que los agregue a un formulario, los atributos extendidos se enumeran
alfabéticamente en la
Atributos extendidosficha de la hoja de propiedades del objeto. Al crear su propio
formulario, puede hacer que estos atributos sean más visibles y fáciles de usar,
organizándolos lógicamente, agrupando los relacionados y enfatizando aquellos que son más
importantes. Si asocia todos sus atributos extendidos con un formulario, la pestaña Atributos
extendidos no se muestra.
1. Haga clic con el botón derecho en una metaclase, estereotipo o criterio y seleccione
Nuevo > Formulario para crear un formulario vacío.
Nota:Si define una pestaña de propiedad bajo un estereotipo o criterio, solo se muestra
cuando la instancia de la metaclase lleva el estereotipo o cumple el criterio.
62 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nombre Especifica el nombre interno del formulario, que se puede utilizar para
secuencias de comandos.
Etiqueta Especifica el nombre para mostrar del formulario, que se mostrará en la pestaña
de la pestaña de propiedades o en la barra de título del cuadro de diálogo.
Propiedad Descripción
C:\PD1500\pddoc15.chm 26204
Si no se encuentra ninguna extensión de archivo de ayuda, la cadena se tratará
como un comando de shell para ejecutar. Por ejemplo, podría indicarle a
PowerDesigner que abra un archivo de texto simple:
notepad.exe C:\Temp\Readme.txt
64 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Propiedad Definición
Nombre Nombre interno del control. Este nombre debe ser único dentro del formulario. El
nombre se puede utilizar en secuencias de comandos para obtener y establecer
valores de control de cuadro de diálogo (verEjemplo: abrir un cuadro de diálogo
desde un menúen la página 82).
Propiedad Definición
Etiqueta Especifica una etiqueta para el control en el formulario. Si este campo se deja en
blanco, se utiliza el nombre del control. Si ingresa un espacio, no se muestra
ninguna etiqueta. Puede insertar saltos de línea con \n.
Para crear métodos abreviados de teclado para navegar entre los controles, prefije
la letra que servirá como método abreviado con un ampersand. Si no especifica
una tecla de método abreviado,
PowerDesigner elegirá uno por defecto. Para mostrar un ampersand en una
etiqueta, debe colocarle un segundo ampersand (por ejemplo: &Johnson && Son
se mostrará como Johnson & Son.
Atributo [formularios incluidos] Especifica el objeto sobre el que se define el formulario a
incluir.
La lista se completa con todos los atributos de tipo objeto y los siguientes
objetos:
66 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Propiedad Definición
Mostrar [cuadros de grupo] Use el primer control contenido dentro del cuadro de grupo
control como como su etiqueta.
etiqueta
Mostrar oculto [atributos extendidos] Muestra los controles que no son válidos para un
Atributo formulario en particular (porque no tienen el estereotipo relevante o no cumplen
con los criterios) en gris. Si esta opción no está configurada, las opciones
irrelevantes se ocultan.
Valor [campos de entrada del cuadro de diálogo] Especifica un valor predeterminado para
el control. Para los atributos extendidos, los valores predeterminados deben
especificarse en las propiedades del atributo (verAtributos extendidos (perfil)en
la página 41).
Lista de [cuadros combinados y de lista] Especifica una lista de valores posibles para el
valores control. Para atributos extendidos, las listas de valores deben especificarse en las
propiedades del atributo (verAtributos extendidos (perfil)en la página 41).
Exclusivo [cuadros combinados] Especifica que solo los valores definidos en la Lista de
valores se pueden ingresar en el cuadro combinado.
Propiedad Definición
Talla minima Especifica el ancho mínimo (en caracteres) al que se puede reducir el control
(caracteres) cuando se cambia el tamaño de la ventana.
Mínimo Especifica el número mínimo de líneas a las que se puede reducir un control de
Número de varias líneas cuando se cambia el tamaño de la ventana.
línea
Horizontal / Especifica que se puede cambiar el tamaño del control horizontalmente o, para los
Cambio de controles multilínea, verticalmente, cuando se cambia el tamaño de la hoja de
tamaño vertical propiedades o del cuadro de diálogo.
Solo lectura [incluidos formularios y campos de entrada de cuadros de diálogo] Especifica que
el control es de solo lectura y aparecerá atenuado en el formulario.
68 PowerDesigner
CAPÍTULO 2: Archivos de extensión
la página 33) y defina cinco atributos extendidos (consulte Atributos extendidos (perfil)
en la página 41) para contener los datos de contacto de la casa:
2. Haga clic con el botón derecho en la metaclase Persona y seleccione Nuevo > Formulario,
ingrese Detalles personales en el campo Nombre, seleccione la pestaña Propiedad en la
lista Tipo y haga clic en la herramienta Agregar atributo para seleccionar todos los nuevos
atributos extendidos para incluirlos en el formulario:
3. Haga clic en Aceptar para agregar los atributos al formulario y organícelos en un cuadro
de grupo, utilizando diseños horizontales para alinearlos perfectamente. Aquí, estoy
usando el campo Etiqueta para anular el nombre predeterminado del atributo en el
formulario por brevedad:
4. Haga clic en Aceptar para guardar los cambios y volver al modelo. La próxima vez que
abra la hoja de propiedades de una persona, estará disponible una nueva pestaña de
Detalles personales que contiene los atributos ampliados:
70 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Agregue la metaclase Sitio y cree un formulario llamado Dirección del sitio. Seleccione
la pestaña de propiedades de la lista Tipo y anule la selección de la opción Agregar a
pestañas favoritas (ya que no queremos este formulario, que duplica las propiedades
estándar del sitio que se muestran en las hojas de propiedades del sitio).
2. Rellene el formulario con atributos estándar para mostrar la dirección completa del sitio:
72 PowerDesigner
CAPÍTULO 2: Archivos de extensión
6. Haga clic en Aceptar para guardar las extensiones y volver a su modelo. La próxima vez
que abra la hoja de propiedades de una persona, la pestaña General se reemplaza por la
pestaña personalizada Detalles de contacto, y cuando la persona se asigna a un sitio, los
detalles de la dirección del sitio se muestran como de solo lectura en la parte inferior del
formulario:
74 PowerDesigner
CAPÍTULO 2: Archivos de extensión
2. Haga clic con el botón derecho en la metaclase Person y seleccione New > Method.
Introduce el nombre
ShowPersonalDetails y luego haga clic en la pestaña Method
Script e ingrese el siguiente script:
Sub %Método%(obj)
' Mostrar cuadro de diálogo personalizado para atributos
extendidos avanzados
tenue dlg
Establecer dlg =
obj.CreateCustomDialog("%CurrentTargetCode%.Personal
Detalles")
Si no dlg es Nothing Entonces dlg.ShowDialog()
Terminara si
Finalizar sub
4. Ingrese Personal... en el campo Etiqueta y luego haga clic en Aceptar para guardar los
cambios y volver al modelo. Ahora, cuando abre la hoja de propiedades de una persona,
el Contacto
DetallesLa pestaña contiene un botón Personal... que abre el cuadro de diálogo Información
personal:
76 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en una metaclase, un estereotipo o un criterio y seleccione
Nuevo > Símbolo personalizado.
2. Especifique un ancho y una altura predeterminados para el símbolo y luego haga clic en
el botón Modificar para abrir el cuadro de diálogo Formato de símbolo y establezca las
propiedades apropiadas en las distintas pestañas.
Nota:Si personaliza el estilo de línea y las flechas de un símbolo de enlace (como una
referencia de PDM), sus estilos anularán los seleccionados en el cuadro de diálogo
Preferencias de visualización y pueden causar confusión e inconsistencia en el modelo.
Para garantizar la coherencia en un modelo regido por una notación, seleccione Notación
para las propiedades Estilo y Flechas en la pestaña Estilo de línea.
Para obtener más información sobre el cuadro de diálogo Formato de símbolo (incluidas
las opciones de símbolo personalizadas que le permiten controlar las opciones de formato
predeterminadas para el símbolo y si los usuarios pueden editarlas, por ficha), consulte
la Guía de funciones principales > Modelado con PowerDesigner > Diagramas , matrices
y símbolos > Símbolos > Propiedades de formato de símbolo.
3. Haga clic en Aceptar para volver al editor de recursos y ver sus cambios en el campo
Vista previa.
4. Haga clic en Aplicar para guardar sus cambios.
78 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en una metaclase, un estereotipo o un criterio y seleccione
Nuevo > Comprobación personalizada.
2. Introduzca las siguientes propiedades según corresponda:
Parámetro Descripción
4. Si desea definir una autocorrección, haga clic en la pestaña Autofix Script e ingrese su
secuencia de comandos (consulte Ejemplo: PDM Autofix en la página 74.
5. Haga clic en Aplicar para guardar sus cambios.
Todas las comprobaciones personalizadas definidas en los archivos de recursos adjuntos
al modelo se fusionan y todas las funciones para todas las comprobaciones
personalizadas se agregan para crear un solo script. Sus comprobaciones personalizadas
se muestran en el cuadro de diálogo Comprobar parámetros del modelo junto con las
comprobaciones del modelo estándar. Si hay errores en sus scripts de verificación
personalizados, se le solicitará al usuario las siguientes opciones:
• Ignorar: omita el script problemático y continúe con las otras comprobaciones.
• Ignorar todo: omita este y cualquier script futuro con problemas y continúe con las
otras comprobaciones.
• Abortar: detiene la comprobación del modelo.
• Depuración: detenga la verificación del modelo y abra el Editor de recursos en la
línea de secuencia de comandos con el problema.
80 PowerDesigner
CAPÍTULO 2: Archivos de extensión
posición = InStr(col.tipodatos,"(")
si la posición <> 0 entonces
DT_col = izquierda (col.tipo de datos, posición
-1) más
DT_col = col.tipo de datos
final si
si ucase(DT_col) = "VARCHAR" y col.length > 255 entonces genera
"Tabla" & col.parent.name & "Columna" & col.name & " : El tipo de
datos no es compatible con Index " & obj.name & "tipo" & tipo.obj.
%Check% = Fin falso si
82 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Los controladores de eventos definen reglas de validación u otros scripts para ejecutar
cuando ocurre un evento en un objeto. La lógica del controlador de eventos se define
mediante VBScript. Los criterios no admiten controladores de eventos.
1. Haga clic con el botón derecho en una metaclase o un estereotipo y seleccione Nuevo >
Controlador de eventos para abrir un cuadro de selección, enumerando los tipos de
controladores de eventos disponibles:
Controlador de Descripción
eventos
Puede crear Implementa una regla de validación para evitar que se creen objetos en
un contexto no válido. Por ejemplo, en un BPM para ebXML, un
proceso con un
El estereotipo de transacciones comerciales solo se puede crear en un
proceso con un estereotipo de colaboración binaria. El script del
manejador de eventos CanCreate asociado al estereotipo del proceso
Business Transaction es el siguiente:
Función %CanCreate%(padre) si
el padre es Nada o
padre.IsKindOf(PdBpm.Cls_Process) entonces
%CanCreate% = Falso si
no
%CanCreate% = Verdadero
terminara si
función final
Si el controlador de eventos devuelve True en un estereotipo, puede usar
la herramienta personalizada para crear el objeto estereotipado y el
estereotipo estará disponible en la lista de estereotipos en la hoja de
propiedades del objeto. Si devuelve True en una metaclase, puede crear
el objeto desde la caja de herramientas, desde el navegador o en una lista.
Controlador de Descripción
eventos
Inicializar Instancia objetos con una plantilla predefinida. Por ejemplo, en un BPM,
una transacción comercial debe ser un proceso compuesto con un
subgráfico predefinido. El script del controlador de eventos Initialize
asociado con el estereotipo del proceso Business Transaction contiene
todas las funciones necesarias para crear el subgráfico. El siguiente
fragmento de secuencia de comandos es del controlador de eventos
Initialize para una transacción comercial.
84 PowerDesigner
CAPÍTULO 2: Archivos de extensión
...
' Buscar un símbolo de actividad solicitante
existente Dim ReqSym
Establecer ReqSym = Nada
Si no ReqBizAct es nada, entonces
Si ReqBizAct.Symbols.Count > 0 Entonces
Establecer ReqSym = ReqBizAct.Symbols.Item(0)
Terminara si
Terminara si
función final
86 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Métodos (Perfil)
Los métodos están escritos en VBScript y realizan acciones en objetos cuando son invocados
por otras extensiones, como elementos de menú o botones de formulario.
1. Haga clic con el botón derecho en una metaclase, un estereotipo o un criterio y seleccione
Nuevo > Método.
2. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
88 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Intf.Code = ClassCode
Finalizar sub
Los menús especifican los comandos que aparecen en los menús estándar Archivo,
Herramientas y Ayuda de PowerDesigner o en los menús contextuales.
1. Haga clic con el botón derecho en una metaclase, un estereotipo o un criterio y seleccione
Nuevo > Menú.
2. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
Ubicación [solo modelo y diagrama] Especifica dónde se mostrará el menú. Puede elegir
entre: • Menú Archivo > Exportar
• Menú de ayuda
• Menú contextual de objetos
• Menú de herramientas
Los menús creados en otras metaclases solo están disponibles en el menú
contextual y no muestran un campo de ubicación.
3. Use las herramientas en la subpestaña Menú para crear los elementos en su menú:
Herramient Función
a
Agregar comando: abre un cuadro de diálogo de selección que enumera los
métodos (verMétodos (Perfil)en la página 79) y transformaciones
(verTransformaciones (Perfil)en la página 92) definida en la metaclase actual
y sus padres para agregar al menú como comandos. Seleccione uno o más y
haga clic en Aceptar.
Los elementos se agregan a su menú en el formato:
MenúEntrada(Método/nombre de transformación)
Puedes modificar elMenúEntrada(y defina una tecla de método abreviado
agregando un ampersand antes de la letra de la tecla de método abreviado), pero
no debe editar elMétodo/nombre de transformación.
90 PowerDesigner
CAPÍTULO 2: Archivos de extensión
4. [opcional] Haga clic en la subpestaña XML para revisar el XML generado desde la
subpestaña Menú.
5. Haga clic en Aplicar para guardar sus cambios.
4. Haga clic con el botón derecho en la metaclase Tabla y seleccione Nuevo > Método.
Ingrese Exportar en el campo Nombre, haga clic en la pestaña Method Script e ingrese el
siguiente código:
Sub %Método%(obj)
' Exporta un objeto a un archivo
' Crea un cuadro de diálogo para ingresar el nombre del
archivo de exportación
tenue dlg
Establecer dlg =
obj.CreateCustomDialog("%CurrentTargetCode%.Export")
Si no dlg es Nada Entonces
' Inicializa el valor de control de nombre de archivo
dlg.SetValue "Nombre de archivo", "c:\temp\MyFile.xml"
'Mostrar diálogo
Si dlg.ShowDialog() Entonces
' Recuperar el valor del cliente para el control de
nombre de archivo Dim nombre de archivo
nombre de archivo = dlg.GetValue("Nombre de archivo")
92 PowerDesigner
CAPÍTULO 2: Archivos de extensión
6. Haga clic en Aceptar para guardar los cambios y volver a su modelo. La próxima vez que
haga clic con el botón derecho en una tabla en un diagrama o en el navegador, el comando
Exportar estará disponible en el menú contextual.
Plantillas (Perfil)
Las plantillas GTL extraen texto de los valores de propiedad de PowerDesigner para usarlos
en archivos generados u otros contextos.
Los archivos generados ensamblan plantillas GTL para generarlas como archivos o para
obtener una vista previa en la ficha Vista previa de la hoja de propiedades del objeto.
1. Haga clic con el botón derecho en una metaclase, un estereotipo o un criterio y seleccione
Nuevo > Archivo generado.
Solo los objetos, como tablas o clases, admiten la generación de archivos. Sin embargo,
aún puede crear archivos generados para subobjetos, como columnas y atributos, para
obtener una vista previa del código generado para ellos en la ficha Vista previa de su
hoja de propiedades.
2. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
94 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nombre del Especifica el nombre del archivo que se generará. Este campo puede contener
archivo variables GTL. Por ejemplo, para generar un archivo XML con el código del
objeto para su nombre, ingresaría %code%.xml.
Si deja este campo vacío, no se generará ningún archivo, pero puede ver el
código producido en la pestaña Vista previa del objeto.
Si este campo contiene una extensión reconocida, el código se muestra con
el editor de idioma correspondiente y el color sintáctico.
Usar jerarquía Especifica que la jerarquía de paquetes debe usarse para generar una jerarquía
de paquetes de directorios de archivos.
como ruta de
archivo
3. Ingrese el código GTL (consulte el Capítulo 5, Generación personalizada con GTL en la
página 245) o el nombre de una plantilla para completar el archivo en la zona de texto.
En el siguiente ejemplo, se define un archivo generado para las clases OOM. Se
generará un archivo para cada clase en el modelo con un nombre derivado de la clase
%Name% y con el contenido generado a partir de la plantilla %myTemplate% (ver
Plantillas (Perfil) en la página 84):
4. Haga clic en Aceptar para guardar los cambios y cerrar el editor de recursos.
El archivo está inmediatamente disponible como una subpestaña en la pestaña Vista
previa de la hoja de propiedades del objeto:
96 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nota:Si coloca el cursor entre los signos de porcentaje que rodean este o cualquier otro
nombre de plantilla y presiona F12, saltará directamente a la plantilla a la que se hace
referencia o, si varias plantillas comparten el mismo nombre, a un cuadro de diálogo
Resultados en el que selecciona la plantilla para navegar a.
La plantilla a la que se hace referencia, la fuente, contiene código GTL, incluidas las
referencias a otras plantillas denominadas %isSourceGenerated%, %sourceHeader%,
%package% y %imports%:
98 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Finalizar sub
Para obtener más información acerca de los métodos, consulte Métodos (perfil) en la
página 79.
b. Cree un menú en Perfil\Modelo y seleccione el menú Herramientas en la lista
Ubicación (consulte Menús (Perfil) en la página 81).
c. Agregue el método al menú usando la herramienta Agregar comando:
100 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Transformaciones (Perfil)
Las transformaciones definen conjuntos de acciones para modificar objetos antes o después
de la generación de un modelo o bajo pedido. Las transformaciones suelen agruparse en
perfiles de transformación.
Las transformaciones se pueden utilizar para:
• Implemente Model Driven Architecture (MDA), que utiliza el modelado UML para
describir una aplicación en diferentes niveles de detalle. PowerDesigner le permite crear
una primera
modelo independiente de la plataforma (PIM) (que modela la lógica y la
funcionalidad de negocios básicas) y lo refina progresivamente en diferentes
modelos que contienen niveles crecientes de implementación e información
dependiente de la tecnología a través de una plataforma específica
modelo (PSM). Puede definir transformaciones que generarán una versión más
refinada de un modelo, en función de la plataforma de destino deseada, y los cambios
realizados en el PIM se pueden aplicar en cascada a los modelos generados.
102 PowerDesigner
CAPÍTULO 2: Archivos de extensión
1. Haga clic con el botón derecho en una metaclase o estereotipo y seleccione Nuevo >
Transformación.
2. Ingrese un Nombre apropiado y, opcionalmente, un Comentario para explicar su
propósito.
3. En la pestaña Script de transformación, ingrese un VBscript para realizar la
transformación.
En este ejemplo, que se crea en una extensión adjunta a un CDM bajo la metaclase
DataItem, el script prueba para ver si el elemento de datos tiene una lista de valores
definida y, si este es el caso (y un dominio con esta misma lista de valores). valores no
existe ya en el CDM), crea un nuevo dominio con la lista de valores:
lista tenue
lista = obj.ListOfValues si
no lista = "" entonces
salida "transformando" & cstr(obj)
Finalizar sub
Esta transformación se puede agregar a un perfil de transformación como:
• Transformación previa a la generación: la transformación se llama desde el cuadro
de diálogo Opciones de generación. Los dominios se crean temporalmente en el
CDM antes de la generación y luego se generan en el modelo de destino (por
ejemplo, en un PDM).
• Transformación posterior a la generación: se puede llamar a la transformación desde
el cuadro de diálogo Opciones de generación (para una generación CDM-CDM).
Los dominios se crean en el CDM de destino después de la generación. Como
alternativa, se puede llamar a la transformación en cualquier momento
seleccionando Herramientas > Aplicar transformaciones para crear los dominios en
el modelo existente.
4. [opcional] Revise la pestaña Global Script (consulte Global Script (Perfil) en la página
105), que brinda acceso a las definiciones compartidas por todas las funciones de
VBscript definidas en el perfil, y la pestaña Dependencias, que enumera los perfiles de
transformación en los que se encuentra la transformación. usado.
1. [si la categoría Perfiles de transformación no está presente] Haga clic con el botón
derecho en el nodo raíz, seleccione Agregar elementos, seleccione Perfiles de
transformación y haga clic en Aceptar para crear esta carpeta.
104 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Tipo de [opcional] Especifique el tipo de modelo con el que se puede usar el perfil de
modelo / transformación durante la generación y (si el tipo admite un archivo de
Familia / definición de idioma) la familia y la subfamilia. Si se completa uno o más de
Subfamilia estos campos, el perfil solo se mostrará si el modelo a generar se ajusta a ellos.
Por ejemplo, si define la transformación en un PDM o una extensión de PDM y
especifica el modelo orientado a objetos y Java, el perfil solo estará disponible
cuando seleccione generar el PDM en un OOM de Java.
1. [si la categoría Importaciones XML no está presente] Haga clic con el botón derecho en
el nodo raíz, seleccione Agregar elementos, seleccione Importaciones XML y haga clic
en Aceptar para crear esta carpeta.
106 PowerDesigner
CAPÍTULO 2: Archivos de extensión
2. Haga clic con el botón derecho en la carpeta Importaciones XML y seleccione Nuevo
para crear una importación XML.
3. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
primer diagrama Especifica el primer diagrama que debe inicializarse en el modelo creado a
partir del archivo importado.
Extensión de Especifica la extensión de archivo que identifica los documentos XML que
archivo se ajustan al esquema.
Puede hacer clic en la herramienta Ver como modelo para abrir el esquema como un
modelo de esquema XML.
5. [opcional] Haga clic en la pestaña Extensiones y seleccione archivos de extensión que
contengan extensiones al metamodelo estándar de PowerDesigner para proporcionar
metaclases adicionales (consulte Extended
Objetos, Sub-Objetos y Vínculos (Perfil) en la página 36), atributos (ver Atributos
Extendidos
(Perfil) en la página 41) y colecciones (consulte Colecciones y composiciones
extendidas (Perfil) en la página 48) para mapear su esquema XML.
Nota:No es necesario mapear todas las metaclases (o todo su contenido), sino solo aquellas
con las que se quiere trabajar. Si el metamodelo de PowerDesigner no contiene las
metaclases, los atributos, las composiciones o las agregaciones adecuadas para mapear,
puede crearlas dinámicamente aquí o guardar las asignaciones existentes, cerrar el Editor de
asignaciones, definir o adjuntar las extensiones apropiadas y luego volver a abrir el Editor
de asignaciones para mapa para ellos.
1. Arrastre y suelte una metaclase externa en una metaclase de PowerDesigner para crear
una asignación de importación. Todos los atributos y colecciones externos se asignan
automáticamente a los atributos de PowerDesigner con los que comparten un nombre:
108 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nota:Si no existe una metaclase adecuada, para crear y asignar una nueva metaclase
extendida basada en la metaclase ExtendedObject, arrastre y suelte la metaclase externa
en la raíz del metamodelo de PowerDesigner.
Nota:Si no existe un atributo adecuado, para crear y asignar un nuevo atributo extendido,
arrastre y suelte el atributo externo en la metaclase de PowerDesigner a la que está
asignado su padre.
110 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nota:Para controlar el orden en que los atributos, las composiciones y las agregaciones
se importan dentro de los objetos, seleccione la metaclase de destino para mostrar sus
asignaciones en el panel Asignaciones y use las flechas en la parte inferior de las listas
en las Asignaciones de atributos, Asignaciones de colección y Sub -Subpestañas
Asignaciones de objetos.
Objeto de Especifica el objeto del metamodelo que se está asignando desde el objeto de
destino origen. Este objeto es el padre de la propia asignación.
Propiedad Descripción
112 PowerDesigner
CAPÍTULO 2: Archivos de extensión
de propiedades. Para controlar el orden en que se crean los atributos, con el fin de respetar
las dependencias entre ellos, utilice las flechas en la parte inferior de la lista.
• Asignaciones de colecciones- Muestra las asignaciones de colecciones bajo la metaclase.
• Proceso después de- Especifica un script para modificar la metaclase después de la
creación y ejecución de asignaciones. En el siguiente ejemplo, el valor del atributo
Código se copia en el atributo Nombre:
Sub %PostProcess%(obj)
' Copia el código en el
nombre obj.Name =
obj.Code End Sub
identificador [metaatributos] Especifica que el atributo se usa para identificar la metaclase para
hacer referencia a otra metaclase.
único [metaclases] Especifica que solo es posible una instancia de la metaclase en cada
objeto principal.
1. [si la categoría Generaciones de objetos no está presente] Haga clic con el botón derecho
en el nodo raíz, seleccione Agregar elementos, seleccione Generaciones de objetos y haga
clic en Aceptar para crear esta carpeta.
2. Haga clic con el botón derecho en la carpeta Generaciones de objetos y seleccione Nuevo
para crear una generación de objetos.
3. Introduzca las siguientes propiedades según corresponda:
Propiedad Descripción
114 PowerDesigner
CAPÍTULO 2: Archivos de extensión
5. Haga clic en el botón Asignaciones para definir asignaciones desde su origen a las
metaclases de destino en el Editor de asignaciones (consulte Asignaciones de generación
de modelo a modelo en la página 103).
6. Haga clic en Aplicar para guardar sus cambios.
Nota:No es necesario mapear todas las metaclases (o todo su contenido), sino solo aquellas
con las que se quiere trabajar. Si el metamodelo de PowerDesigner no contiene las
metaclases, los atributos, las composiciones o las agregaciones adecuadas para mapear,
debe guardar las asignaciones existentes, cerrar el Editor de asignaciones, definir o adjuntar
las extensiones apropiadas y luego volver a abrir el Editor de asignaciones para asignarlas.
1. Arrastre y suelte una metaclase desde el panel de origen de la izquierda a una metaclase
en el panel de destino de la derecha. Todos los atributos de origen se asignan
automáticamente a los atributos de destino con los que comparten un nombre:
Nota:En ciertas circunstancias, puede ser apropiado mapear una metaclase de subobjeto
de origen a una metaclase de objeto de destino, por lo que también se permiten tales
mapeos.
Nota:Para controlar el orden en que se generan los atributos, las composiciones y las
agregaciones, seleccione la metaclase de destino para mostrar sus asignaciones en el
panel Asignaciones y use las flechas en la parte inferior de las listas en Asignaciones de
atributos, Asignaciones de colecciones y Subobjetos. Subpestañas de Mapeos.
El perfil contiene una secuencia de comandos global, que puede usar para almacenar
funciones y variables para reutilizarlas en sus secuencias de comandos definidas para
extensiones.
Por ejemplo, podríamos imaginar escribir una función para obtener el tipo de datos de un
elemento y reutilizarlo en las secuencias de comandos para los ejemplos de comprobación
116 PowerDesigner
CAPÍTULO 2: Archivos de extensión
Nota:Las variables definidas en la pestaña Global Script se reinicializan cada vez que se
hace referencia a ellas en otro script.
Nota:El PDM utiliza una forma diferente de archivo de definición (consulte el Capítulo 4,
Archivos de definición de DBMS en la página 119), y otros tipos de modelos no tienen
archivos de definición pero se pueden ampliar con archivos de extensión (consulte el
Capítulo 2, Archivos de extensión en la página 11).
Todos los idiomas de destino tienen la misma estructura de categoría básica, pero los detalles
y valores de las entradas difieren para cada idioma:
• Configuración: contiene tipos de datos, constantes, nombres y categorías de eventos que
se utilizan para personalizar y administrar las funciones de generación. Los tipos de
elementos de esta categoría difieren según el tipo de archivo de recursos.
• Generación: contiene comandos, opciones y tareas de generación.
• Perfil: contiene extensiones en metaclases.
Familia / Especifica la familia y la subfamilia del idioma, lo que puede habilitar ciertas
Subfamilia funciones no predeterminadas en el modelo. Por ejemplo, lenguajes de objetos
de Java, XML, IDL y PowerBuilder®las familias apoyan la ingeniería inversa.
Habilitar Le permite obtener una vista previa de las plantillas utilizadas durante la
seguimiento generación (verPlantillas (Perfil)en la página 84). Antes de comenzar la
Modo generación, haga clic en la página Vista previa del objeto relevante y haga clic
en la herramienta Actualizar para mostrar las plantillas.
Cuando hace doble clic en una línea de seguimiento desde la página Vista previa,
el Editor de recursos se abre en la definición de plantilla correspondiente.
La categoría Configuración contiene los siguientes elementos que se utilizan para controlar
los tipos de datos, las constantes, los nombres y las categorías de eventos que se utilizan para
personalizar y administrar las funciones de generación de BPM:
• Implementación – [solo BPM ejecutable] Reúne opciones que influyen en las
posibilidades de implementación del proceso. Las siguientes constantes están
definidas por defecto:
• LoopTypeList: esta lista define el tipo de bucle admitido por el idioma. El valor
debe ser un número entero.
• OperationTypeList: esta lista define el tipo de operación admitida por el idioma.
Un tipo de operación no admitido no se puede asociar con un proceso. El valor
debe ser un número entero.
• EnableEmissionCorrelation: habilita la definición de una correlación para un
mensaje emitido
• EnableProcessReuse: permite que otro proceso implemente un proceso
• AutomaticInvokeMode: indica si el tipo de acción de un proceso implementado
por una operación se puede deducir automáticamente del tipo de operación. Puede
especificar: • 0 (predeterminado): el tipo de acción no se puede deducir y
debe especificarse
• 1 - el lenguaje impone una solicitud-respuesta y una operación unidireccional para
ser recibida por el proceso y una solicitud-respuesta y una operación de notificación
para ser invocada por el proceso
• 2 el lenguaje garantiza que el proceso siempre reciba una operación de Solicitud-
Respuesta y de Notificación, mientras que el proceso siempre invoca las operaciones
de Solicitud-Respuesta y Unidireccional
120 PowerDesigner
CAPÍTULO 3: Archivos de definición de objetos, procesos y lenguaje XML
• Manejo de datos: [solo BPM ejecutable] Reúne opciones para administrar datos
en el idioma. Los siguientes valores constantes están definidos por defecto:
• EnableMessageOnFlow: indica si un formato de mensaje se puede asociar a un
flujo o no. El valor predeterminado es Sí
• EnableMessageVariable: permite que un objeto variable almacene todo el
contenido de un formato de mensaje. En este caso, los objetos de formato de
mensaje aparecerán en el cuadro combinado de tipo de datos de la variable
• Coreografía - Reúne objetos que permiten el diseño del gráfico de actividades
(inicio, final, decisión, sincronización, transición...) Contiene los siguientes
valores constantes definidos por defecto:
• EnableMultipleStarts: cuando se establece en No, garantiza que no se defina más
de un inicio en un proceso compuesto
• EnableTopLevelChoreography: cuando se establece en No, garantiza que ningún
objeto de flujo o coreografía (inicio, fin, decisión...) se defina directamente bajo
el modelo o paquete. Estos objetos solo se pueden definir bajo un proceso
compuesto.
La categoría Configuración contiene los siguientes elementos que se usan para controlar los
tipos de datos, las constantes, los nombres y las categorías de eventos que se usan para
personalizar y administrar las funciones de generación de OOM:
• Tipos de datos: tablas para mapear tipos de datos internos con tipos de datos de
lenguaje de objetos. Los siguientes valores de tipos de datos se definen de forma
predeterminada:
• BasicDataTypes: enumera los tipos de datos más utilizados. La columna Valor
indica el tipo de datos conceptuales utilizados para las generaciones de modelos
CDM y PDM.
• ConceptualDataTypes: enumera los tipos de datos internos de PowerDesigner. La
columna Valor indica el tipo de datos del idioma del objeto utilizado para las
generaciones de modelos CDM y PDM.
• AdditionalDataTypes: enumera los tipos de datos adicionales agregados a las
listas de tipos de datos. Puede usarse para agregar o cambiar sus propios tipos de
datos. La columna Valor indica el tipo de datos conceptuales utilizados para las
generaciones de modelos CDM y PDM.
• DefaultDataType: especifica el tipo de datos predeterminado.
122 PowerDesigner
CAPÍTULO 3: Archivos de definición de objetos, procesos y lenguaje XML
La categoría Configuración contiene la categoría Tipos de datos que muestra una asignación
de tipos de datos internos con tipos de datos de lenguaje XML.
Los siguientes valores de tipos de datos se definen de forma predeterminada:
• Tipos de datos conceptuales: la columna Valor indica el tipo de datos del lenguaje XML
utilizado para las generaciones de modelos. Los tipos de datos conceptuales son los tipos
de datos internos de PowerDesigner y no se pueden modificar.
• XsmDataTypes: tipos de datos para generaciones del modelo XML.
Categoría de generación
1. Seleccione Idioma > Editar idioma del objeto actual para abrir el archivo de recursos de
Java.
2. Expanda la categoría Generación y luego haga clic con el botón derecho en la categoría
Opciones y seleccione Nuevo:
124 PowerDesigner
CAPÍTULO 3: Archivos de definición de objetos, procesos y lenguaje XML
3. Haga clic en Aceptar para guardar los cambios y volver al modelo. A continuación,
seleccione Idioma > Generar código Java para abrir el cuadro de diálogo Generación y
haga clic en la pestaña Opciones. La nueva opción aparece en la pestaña debajo de su
comentario (o su nombre, si no se ha proporcionado ningún comentario):
1. Cree un nuevo OOM para Java y luego seleccione Idioma > Editar idioma del objeto
actual.
2. Expanda la categoría Generación y luego haga clic con el botón derecho en la categoría
Comandos y seleccione Nuevo.
3. Nombre el comando DoCommand e ingrese una plantilla apropiada:
126 PowerDesigner
CAPÍTULO 3: Archivos de definición de objetos, procesos y lenguaje XML
4. Haga clic con el botón derecho en la categoría Tareas y seleccione Nuevo. Nombre la
tarea Ejecutar, haga clic en la herramienta Agregar comandos, seleccione DoCommand
de la lista y luego haga clic en Aceptar para agregarlo a la nueva tarea:
5. Haga clic en Aceptar para guardar los cambios y volver al modelo. Luego seleccione
Idioma >
Generar código Javapara abrir el cuadro de diálogo Generación y haga clic en la pestaña
Tareas. La nueva tarea aparece en la pestaña debajo de su comentario (o su nombre, si no
se ha proporcionado ningún comentario):
128 PowerDesigner
CAPÍTULO 3: Archivos de definición de objetos, procesos y lenguaje XML
130 PowerDesigner
CAPÍTULO 4Archivos de definición DBMS
• Objetos: contiene comandos para crear, eliminar o modificar todos los objetos de la
base de datos. También incluye comandos que definen el comportamiento de los
objetos, los valores predeterminados, las consultas SQL necesarias, las opciones de
ingeniería inversa, etc. (consulte Categoría de secuencias de comandos/objetos
(DBMS) en la página 142).
• Tipo de datos: contiene la lista de tipos de datos válidos para el DBMS especificado
y los tipos correspondientes en PowerDesigner (consulte Categoría de secuencia de
comandos/tipo de datos (DBMS) en la página 197).
• Personalizar: recupera información de los archivos de definición DBMS de
PowerDesigner versión 6. No se utiliza en versiones posteriores.
• ODBC: presente solo si el DBMS no admite declaraciones estándar para la
generación. En este caso, la categoría ODBC contiene elementos adicionales
necesarios para la generación de conexiones de bases de datos en vivo.
• Perfiles de transformación: contiene un grupo de transformaciones utilizadas durante
la generación del modelo cuando necesita aplicar cambios a los objetos en los
modelos de origen o de destino (consulte Transformaciones (perfil) en la página 92).
• Perfil: le permite definir tipos de atributos extendidos y atributos extendidos para
objetos de base de datos (consulte Categoría de perfil (DBMS) en la página 200).
Las siguientes propiedades están disponibles en la raíz de un archivo de definición de DBMS:
Propiedad Descripción
132 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Generación de guiones
PowerDesigner puede generar un script SQL desde un PDM para crear o modificar una base
de datos. Las sentencias que controlan la generación de scripts están disponibles en la
categoría Script/Objetos.
Al generar un script SQL, PowerDesigner toma cada objeto que se va a crear por turnos y
aplica la instrucción Create adecuada u otra declaración para crear o modificar el objeto:
Por ejemplo, en Sybase ASE 15.7, la instrucción Crear en la categoría Tabla es la siguiente:
crear tabla [%CALIFICADOR%]%TABLA%
(
%TABLDEFN%
)
[%OPCIONES%]
Esta declaración contiene los parámetros para crear la tabla junto con su propietario y
opciones físicas usando variables (ver Variables para Tablas y Vistas en la página 216) que
extraen la información necesaria de las propiedades del objeto. La variable %TABLDEFN%
recopila los elementos Agregar en las categorías Columna, PKey, Clave y Referencia, y el
elemento AddTableCheck en la categoría Tabla.
Se utilizan otras declaraciones en las categorías de objetos para personalizar la interfaz y el
comportamiento de PowerDesigner de acuerdo con las características de la base de datos,
como Maxlen, Permission, EnableOwner y AllowedADT.
Nota:Le recomendamos que evite el uso de macros GTL (que no sean .if) en los scripts de
generación, ya que es posible que no se puedan resolver con la ingeniería inversa por script.
La generación y la ingeniería inversa a través de una conexión de base de datos activa no
están sujetas a esta limitación.
134 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Este elemento genera la instrucción para crear el número de particiones de tabla especificado
en
%ExtTablePartition%.
Por ejemplo, puede verificar que el valor del atributo extendido ExtTablePartition se haya
modificado usando la siguiente sintaxis GTL:
.if (%OLDOBJECT.ExtTablePartition% != %NEWOBJECT.ExtTablePartition%)
Si se cambió el valor del atributo extendido, se generará una declaración extendida para
actualizar la base de datos. En la sintaxis de Sybase ASE, la declaración extendida
136 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
138 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Nota:También puede crear sus propias consultas (consulte Creación de consultas para
recuperar atributos adicionales en la página 128).
Cada tipo de consulta tiene la misma estructura básica que consta de una lista separada por
comas de variables de PowerDesigner encerradas entre llaves { } seguidas de una declaración
de selección para extraer valores para completar estas variables. Los valores de los registros
devueltos se almacenan en estas variables, que luego se confirman como valores de atributo
de objeto.
Por ejemplo, SqlListQuery en la categoría Ver de Oracle 11g R1 extrae valores para ocho
variables:
seleccionar
v.propietario,
v.ver_nombre,
decodificar (v.view_type, 'XMLTYPE', 'XML', 'View'),
v.view_type,
v.oid_text,
v.superview_name,
decodificar (v.view_type, 'XMLTYPE',
'%SqlXMLView.'||v.propietario||
v.nombre_vista||'1%', ''),
decodificar (v.view_type, 'XMLTYPE',
'%SqlXMLView.'||v.propietario||
v.view_name||'2%', '') de
sys.all_views v
[donde v.propietario = %.q:SCHEMA%]
Cada parte del encabezado separada por comas puede contener lo siguiente:
• Nombre de la variable: [obligatorio] puede ser cualquier variable de PDM estándar
(consulte Variables de PDM y
Macros en la página 212), nombre público del metamodelo (ver Navegación en el
Metamodelo en la página
344) o el nombre de un atributo extendido definido bajo la metaclase en el perfil (ver
Categoría de perfil (DBMS) en la página 200).
• ID - [opcional] la variable es parte del identificador.
• ... - [opcional] la variable debe estar concatenada para
todas las líneas devueltas por la consulta SQL que tengan
los mismos valores para las columnas ID. Las palabras clave
ID y ... (puntos suspensivos) se excluyen mutuamente.
• Pares de valores: [opcional] enumera las conversiones entre los valores recuperados y los
valores de PowerDesigner en el siguiente formato (donde * significa todos los demás
valores):
(valor1 = PDvalor1, valor2 = PDvalor2, * = PDvalor3)
140 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
seleccionar
c.propietario,
c.nombre_tabla,
c.nombre_columna||', ' de
sys.all_tab_columns c donde
1 = 1
[y c.propietario=%.q:PROPIETARIO%]
[y c.table_name=%.q:VER%]
ordenar por
1, 2, c.column_id
Esta consulta recupera columnas de vista y se habilita al agregarla a ReversedQueries en la
categoría Vista.
Nota:Las subconsultas que se llaman con la palabra clave EX desde SqlAttrQuery u otras
consultas (consulte Llamar a subconsultas con la palabra clave EX en la página 128) no
necesitan agregarse a ReversedQueries.
Estas variables definidas por el usuario se evalúan mediante subconsultas que escribe.
En el siguiente ejemplo, el valor de OPCIONES está marcado como que contiene una
consulta definida por el usuario, y vemos en el cuerpo de la consulta que la opción 'partición
global por rango' contiene una consulta definida por el usuario llamada: 'SqlPartIndexDef',
que busca valores para las variables 'i.propietario' y 'i.index_name':
{PROPIETARIO, TABLA, CONSTNAME, OPCIONES EX}
seleccionar
c.propietario,
c.nombre_tabla,
c.restricción_nombre,
...
'partición global por rango
(%SqlPartIndexDef.'||i.propietario||i.index_name||'%)', ...
142 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Variable 3 3 variable 4 4
Variable 5 5 variable 6 6
3. Estos valores reemplazan las variables definidas por el usuario en la consulta original.
informix.sysfragments f donde
t.partnum = 0 y
t.tabid=f.tabid
[ y t.propietario = '%SCHEMA%']
[ y t.tabname='%TABLE%']
Solo se utilizarán las reglas de traducción definidas entre paréntesis durante la concatenación
de cadenas: "FragSprt0", que contiene 0 (f.evalpos), se reemplazará por " ", y "FragSprt1",
que contiene 1, se reemplazará por ","
144 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
SqlFragQuery genera un conjunto de resultados numerado que
contiene tantos pares de nombre de variable definido por el
usuario (sin %) y valor de variable como sea necesario, si
hay muchas variables para evaluar.
Los nombres de las variables definidas por el usuario se reemplazan por sus valores en la
declaración de cadena para las opciones físicas de los fragmentos en la base de datos.
seleccionar
'Xpr'||nombre_tabla||nombre_índice||posición_columna,
Puede agregar una sección calificadora cuando personaliza su DBMS. Esta sección debe
contener los siguientes elementos:
• habilitar: SÍ/NO
• SqlListQuery (script): este elemento contiene la consulta SQL que se ejecuta para
recuperar la lista de calificadores. No debe agregar un encabezado a esta consulta. El
efecto de estos elementos se muestra en la siguiente tabla:
Permitir SqlListQuery Resultado
presente?
146 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Ejemplo
En Adaptive Server Anywhere 7, una consulta de calificador típica es:
.Qualifier.SqlListQuery:
seleccione dbspace_name de
sysfile
4. [opcional] Para controlar el orden en que se generarán este y otros objetos, utilice el
elemento Orden de generación (consulte Categoría de script/objetos (DBMS) en la página
142).
148 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
La categoría SQL se encuentra en la categoría Raíz > Script y contiene subcategorías que
definen la sintaxis SQL para DBMS.
Categoría de sintaxis
La categoría Sintaxis se encuentra en la categoría Raíz > Script > SQL y contiene los
siguientes elementos que definen la sintaxis específica de DBMS:
Artículo Descripción
Bloque Terminator Especifica el carácter de fin de bloque, que se utiliza para finalizar
expresiones para activadores y procedimientos almacenados.
UseBlockTerm
Especifica el uso de BlockTerminator. Están disponibles los siguientes
ajustes:
Categoría de formato
La categoría Formato se encuentra en la categoría Raíz > Script > SQL y contiene los
siguientes elementos que definen el formato del script:
Artículo Descripción
150 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Añadir Presupuesto Especifica que los códigos de objeto se citan sistemáticamente durante
la generación. Están disponibles los siguientes ajustes:
• Sí: las cotizaciones se agregan sistemáticamente a los códigos de
objeto durante la generación
• No: los códigos de objeto se generan sin comillas
CaseSensitivityUsingQu Especifica si la distinción entre mayúsculas y minúsculas para los
ote identificadores se gestiona mediante comillas dobles. Habilite esta
opción si el DBMS que está utilizando necesita comillas dobles para
preservar el caso de los códigos de objeto.
Formatos de fecha y hora VerFormato de fecha y horaen la página 137.
EnableOwnerPrefix / Especifica que los códigos de objeto pueden tener como prefijo el
EnableDtbsPrefix propietario del objeto (%OWNER%), el nombre de la base de datos
(%DBPREFIX%) o ambos (%QUALIFIER%). Están disponibles los
siguientes ajustes:
• Sí: habilita las opciones Prefijo de propietario y/o Prefijo de base
de datos en el cuadro de diálogo Generación de base de datos para
solicitar uno o ambos prefijos para los objetos.
• No: las opciones Prefijo de propietario y Prefijo de base de datos
no están disponibles
Artículo Descripción
Solo en minúsculas / Solo Al generar un script, todos los objetos se generan en minúsculas o
en mayúsculas mayúsculas, independientemente de las convenciones de nomenclatura
del modelo y los códigos PDM. Están disponibles los siguientes
ajustes:
• Sí: obliga a que todos los caracteres de script generados estén en
minúsculas o mayúsculas.
• No: genera todos los scripts sin modificar la forma en que se
escriben los objetos en el modelo.
152 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
yy Año en 2 dígitos
milímetro Mes
dd Día
S.S Hora
milímetro Minuto
SS Segundo
Por ejemplo, puede definir el siguiente valor para el elemento DateTimeFormat para SQL:
aamm-dd HH:MM. Para conexiones de base de datos en vivo, este elemento debe tener el
siguiente valor:
{ts 'aa-mm-dd HH:MM'}.
Categoría de archivo
La categoría Archivo se encuentra en la categoría Raíz > Script > SQL y contiene los
siguientes elementos que definen el formato del script:
Artículo Descripción
Artículo Descripción
Habilitar Especifica que se permiten varios scripts. Están disponibles los siguientes
multiarchivo ajustes:
• Sí: habilita la casilla de verificación Un solo archivo en las ventanas
Generar base de datos, Generar disparadores y procedimientos y
Modificar parámetros de la base de datos. Si anula la selección de esta
opción, se crea una secuencia de comandos independiente para cada tabla
(nombrada según la tabla y con la extensión definida en el elemento
TableExt) y una secuencia de comandos global resume todos los
elementos de la secuencia de comandos de una sola tabla.
• La casilla de verificación Un solo archivo no está disponible y un solo
script incluye todas las declaraciones.
El nombre de archivo del script global se puede personalizar en el campo
Nombre de archivo de las ventanas de generación o modificación y tiene la
extensión especificada en el
Elemento ScriptExt.
El nombre predeterminado para el script global es CREBAS para la
generación de la base de datos, CRETRG para la generación de
desencadenadores y procedimientos almacenados, y ALTER para la
modificación de la base de datos.
Pie de página Especifica el texto para el pie de página del script de generación de la base
de datos.
Encabezamiento Especifica el texto del encabezado del script de generación de la base de
datos.
ScriptExt Especifica la extensión de secuencia de comandos predeterminada cuando
genera una base de datos o modifica una base de datos por primera vez.
Ejemplo:
sql
Comando de inicio Especifica la instrucción para ejecutar un script. Se utiliza dentro del archivo
de encabezado de una generación de varios archivos para llamar a todos los
demás archivos generados desde el archivo de encabezado.
Ejemplo (Sybase ASE 11):
isql %NAMESCRIPT%
Corresponde a la variable %STARTCMD% (verVariables y macros de
PDMen la página 212).
TableExt Especifica la extensión de los scripts usados para generar cada tabla cuando
el elemento EnableMultiFile está habilitado y la casilla de verificación "One
File Only" no está seleccionada en las ventanas Generar o Modificar.
Ejemplo:
154 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
sql
TrgPie de página Especifica el texto del pie de página para una secuencia de comandos de
generación de desencadenantes y procedimientos.
TrgHeader Script de cabecera para la generación de disparadores y procedimientos.
trg
CharFunc Especifica una lista de funciones SQL para usar con caracteres y
cadenas.
Ejemplo:
char()
charindex()
char_length()
etc.
ConvertDateToMonth, Especifica una función para extraer el período relevante de una fecha.
ConvertDateToQuarter,
ConvertDateToYear
ConvertFunc Especifica una lista de funciones SQL para usar al convertir valores
entre hexadecimales y enteros y manejar cadenas.
Ejemplo:
convert()
hextoint()
inttohex() etc.
Artículo Descripción
156 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
et
c.
a
,
e
t
c
.
d
b
_
i
d
(
)
d
158 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
b
_
n
a
m
e
(
)
h
o
s
t
_
i
d
(
)
e
t
c
.
Artículo Descripción
La categoría Objetos se encuentra en la categoría Raíz > Script > SQL (y, posiblemente,
dentro de Raíz > ODBC > SQL) y contiene los siguientes elementos que definen los objetos
de la base de datos que estarán disponibles en su modelo.
Los siguientes elementos se encuentran en las categorías Raíz > Script > Objetos y Raíz >
ODBC > Objetos y se aplican a todos los objetos:
• MaxConstLen: especifica la longitud máxima de nombre de restricción admitida por la
base de datos de destino para tablas, columnas, claves primarias y externas. Este valor se
usa durante la verificación del modelo y devuelve un error si el código excede el valor
definido. El nombre de la restricción también se trunca en el momento de la generación.
160 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Nota:Si un objeto no aparece en la lista, aún se generará, pero después de los objetos
enumerados. Puede agregar y eliminar elementos usando las herramientas en la pestaña.
Los subobjetos, como Sequence::Permissions, se pueden colocar directamente debajo de
su objeto principal en la lista (donde se sangrarán para demostrar su parentesco) o por
separado, en cuyo caso se mostrarán sin sangría. Los objetos extendidos (consulte
Generación e ingeniería inversa de objetos extendidos de PDM en la página 133) no se
pueden agregar a esta lista y se generan después de todos los demás objetos.
Antes de crear/ Antes de soltar/ Especifique sentencias extendidas ejecutadas antes de las
Antes de modificar sentencias principales Create, Drop o Modify. Para más
información, verGeneración de guionesen la página 121.
Artículo Descripción
162 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Pie de página / Especifique el pie de página y el encabezado del objeto. Los contenidos se
Encabezado insertan directamente después o antes de cada declaración de creación de
objeto.
Artículo Descripción
164 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
SqlAttrQuery Especifica una consulta SQL para recuperar información adicional sobre
objetos invertidos por SQLListQuery.
Ejemplo (Índice de unión en Oracle 10g):
{ID DEL PROPIETARIO, ID DE JIDX, JIDXWHERE ...}
seleccione propietario_índice, nombre_índice,
propietario_tabla_externa || '.' ||
nombre_tabla_externa || '.'
|| columna_tabla_exterior || '=' ||
propietario_tabla_interna || '.' ||
nombre_tabla_interna || '.' || interior_ta-
columna_ble || ',' de
all_join_ind_columns
donde 1=1
[ y propietario_índice=%.q:PROPIETARIO%]
[ y nombre_índice=%.q:JIDX%]
Artículo Descripción
SqlListQuery Especifica una consulta SQL para enumerar objetos en el cuadro de diálogo
de ingeniería inversa.
La consulta se ejecuta para llenar variables de encabezado y crear objetos en
la memoria.
Ejemplo (Dimensión en Oracle 10g):
{ PROPIETARIO, DIMENSIÓN }
seleccione d.propietario,
d.dimension_name de
sys.all_dimensions d donde 1=1
[ y d.dimension_name=%.q:DIMENSION%]
[ y d.propietario=%.q:SCHEMA%]
pedido por d.propietario,
d.dimension_name
SqlOptsQuery Especifica una consulta SQL para recuperar opciones físicas de objetos
invertidos por SqlListQuery. El resultado de la consulta llenará la variable
%OPCIONES% y deberá respetar la sintaxis SQL.
Ejemplo (Tabla en SQL Anywhere 10):
{PROPIETARIO, MESA, OPCIONES}
seleccione u.nombre_usuario, t.nombre_tabla,
'in'+ f.dbspace_name de
sys.sysuserperms u
unirse a sys.systab t en (t.creator = u.user_id)
unirse a sys.sysfile f en (f.file_id = t.file_id)
donde f.dbspace_name <> 'SYSTEM'
y t.table_type en (1, 3, 4) [ y
t.table_name = %.q:TABLE%]
[ y u.nombre_usuario = %.q:PROPIETARIO%]
SqlPermQuery Especifica una consulta SQL para aplicar ingeniería inversa a los permisos
otorgados en el objeto.
Ejemplo (Procedimiento en SQL Anywhere 10):
{ CONCESIONARIO, PERMISO}
seleccione
u.nombre_de_usuario beneficiario, 'EJECUTAR'
de sysuserperms u, sysprocedure s, sysprocperm p
donde (s.proc_name = %.q:PROC% ) y
(s.proc_id = p.proc_id) y
(u.user_id = p.beneficiario)
Variable predeterminada
En una columna, si el tipo de variable predeterminada es texto o cadena, la consulta debe
recuperar el valor de la variable predeterminada entre comillas. La mayoría de los DBMS
agregan automáticamente estas comillas al valor de la variable predeterminada. Si el DBMS
que está utilizando no agrega comillas automáticamente, debe especificarlo en las diferentes
consultas utilizando la variable predeterminada.
Por ejemplo, en IBM DB2 UDB 8 para OS/390, se ha agregado la siguiente línea en
SqlListQuery para agregar comillas al valor de la variable predeterminada:
... caso (predeterminado) cuando '1' luego '''' concat valor
predeterminado concat '''' cuando '5' luego '''' concat valor
predeterminado concat '''' else valor predeterminado final, ...
Mesa
La categoría Tabla se encuentra en la categoría Raíz > Script > Objetos y puede contener los
siguientes elementos que definen cómo se modelan las tablas para su DBMS.
Artículo Descripción
166 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
tablas:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• NombreConst
• Crear, Soltar
• Habilitar, HabilitarSinónimo
• Encabezado, pie de página
• Maxlen, MaxConstLen
• Atributos modificables
• Opciones, OpcionesDef
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
AddTableCheck Especifica una declaración para personalizar el script para modificar las
restricciones de la tabla dentro de una declaración de modificación de tabla.
Ejemplo (SQL en cualquier lugar 10):
alterar la tabla [%QUALIFIER%]%TABLE%
agregar [restricción %CONSTNAME% ]verificar
(%.A:CON-
TENSIÓN%)
PermitidoADT Especifica una lista de tipos de datos abstractos en los que se puede basar
una tabla. Esta lista rellena el campo Basado en de la hoja de propiedades
de la tabla.
Puede asignar un tipo de datos abstracto a una tabla, la tabla utilizará las
propiedades del tipo y los atributos de tipo se convertirán en columnas de la
tabla.
Ejemplo (Oracle 10g):
OBJETO
Artículo Descripción
Encabezado de tabla Especifica una declaración que se colocará antes de las declaraciones
alterada de modificación de la tabla. Puede colocar un encabezado de tabla
modificado en sus scripts para documentar o realizar la lógica de
inicialización.
Ejemplo:
AlterTableHeader = /* Nombre de la tabla: %TABLE%
*/
Comprobación de Especifica una declaración para personalizar la secuencia de
definición de tabla comandos de las restricciones de tabla (comprobaciones) dentro de
una declaración de creación de tabla.
Ejemplo:
comprobar (% RESTRICCIÓN%)
Artículo Descripción
Rebautizar [modificar] Especifica una declaración para cambiar el nombre de una tabla.
Si no se especifica, el proceso de modificación de la base de datos descarta
las restricciones de clave externa, crea una nueva tabla con el nuevo nombre,
inserta las filas de la tabla anterior en la nueva tabla y crea los índices y
restricciones en la nueva tabla utilizando tablas temporales. Ejemplo (Oracle
10g):
cambiar el nombre de %OLDTABL% a %NEWTABL%
La variable %OLDTABL% es el código de la tabla antes de renombrarla y
la variable %NEWTABL% es el nuevo código.
168 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
SqlCheckQuery Especifica una consulta SQL para aplicar ingeniería inversa a las
comprobaciones de tablas.
Ejemplo (SQL en cualquier lugar 10):
{PROPIETARIO, TABLA, NOMBRE CONSTANTE,
RESTRICCIÓN} seleccione u.nombre_usuario,
t.nombre_tabla,
k.restricción_nombre,
case(lcase(left(h.check_defn, 5))) when 'check'
then substring(h.check_defn, 6) else h.check_defn
end
de sys.sysconstraint k
unirse a sys.syscheck h en (h.check_id =
k.constraint_id)
unirse a sys.systab t en (t.object_id =
k.table_object_id)
únase a sys.sysuserperms u en (u.user_id =
t.creator) donde k.constraint_type = 'T' y
t.table_type en (1, 3, 4) [ y u.user_name =
%.q:OWNER%]
[ y t.table_name = %.q:TABLE%]
ordenar por 1, 2, 3
Artículo Descripción
Tablas SqlListRefr Especifica una consulta SQL utilizada para enumerar las tablas a las
que hace referencia una tabla.
Ejemplo (Oracle 10g):
{PROPIETARIO, TABLA, POWNER,
PADRE} seleccione c.propietario,
c.table_name, r.propietario,
r.table_name
de sys.all_constraints c,
sys.all_constraints r
donde (c.tipo_restricción = 'R' y
c.r_nombre_restricción = r.nombre_restricción
y c.r_propietario =
r.propietario)
[ y c.propietario =
%.q:SCHEMA%] [ y c.table_name
= %.q:TABLE%] union select
c.propietario, c.table_name,
r.propietario,
r.nombre_tabla de
sys.all_constraints c,
sys.all_constraints r
donde (r.tipo_restricción = 'R' y
r.r_nombre_restricción = c.nombre_restricción
y r.r_propietario =
c.propietario)
[ y c.propietario = %.q:SCHEMA%]
[ y c.table_name = %.q:TABLE%]
SqlStatistics Especifica una consulta SQL para aplicar ingeniería inversa a las
estadísticas de columnas y tablas. Ver SqlStatistics enColumnaen la
página 152.
SqlXMLTable Especifica una subconsulta utilizada para mejorar el rendimiento de
SqlAttrQuery (verElementos de objetos comunesen la página 144).
170 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
lista de tipos Especifica una lista de tipos (por ejemplo, DBMS: relacional, objeto,
XML) para tablas. Esta lista completa la lista Tipo de la hoja de
propiedades de la tabla.
El tipo XML se utilizará con el elemento SqlListSchema.
UniqConstraint Especifica si se puede usar el mismo nombre para el índice y el nombre
Nombre de la restricción en la misma tabla. Están disponibles los siguientes
ajustes:
• Sí: la restricción de tabla y los nombres de índice deben ser
diferentes, y esto se probará durante la verificación del modelo.
• No: la restricción de tabla y los nombres de índice pueden ser
idénticos
Columna
La categoría Columna se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan las columnas para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
columnas:
• Agregar
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• NombreConst
• Crear, Soltar
• Permitir
• Maxlen, MaxConstLen
• Atributos modificables
• Opciones, OpcionesDef
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
AñadirColnCheck Especifica una declaración para personalizar la secuencia de comandos
para modificar las restricciones de columna dentro de una declaración de
modificación de tabla.
Ejemplo (Oracle 10g):
alterar la tabla [%QUALIFIER%]%TABLE%
agregar [restricción %CONSTNAME%] comprobar
(%.A:CONSTRAINT %)
Artículo Descripción
172 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
Artículo Descripción
174 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
Habilitar identidad Especifica si se admite la palabra clave Identidad. Las columnas de identidad
son contadores en serie mantenidos por la base de datos (por ejemplo, Sybase
y Microsoft SQL Server). Están disponibles los siguientes ajustes:
• Sí: activa la casilla de verificación Identidad en la hoja de propiedades
de la columna.
• No: la casilla de verificación Identidad no está disponible.
Cuando se selecciona la casilla de verificación Identidad, la palabra clave
Identidad se genera en el script después del tipo de datos de la columna. Una
columna de identidad nunca es nula, por lo que la casilla de verificación
Obligatorio se selecciona automáticamente. PowerDesigner asegura que:
• Solo se define una columna de identidad por tabla
• Una clave externa no puede ser una columna de identidad
• La columna Identidad tiene un tipo de datos apropiado. Si la casilla de
verificación Identidad está seleccionada para una columna con un tipo
de datos no compatible, el tipo de datos se cambia anumérico. Si el
tipo de datos de una columna de identidad se cambia a un tipo no
admitido, se muestra un error.
Tenga en cuenta que, durante la generación, la variable %IDENTITY%
contiene el valor "identidad", pero puede cambiarlo fácilmente, si es
necesario, utilizando la siguiente sintaxis:
[%IDENTITY%?nueva palabra clave de identidad]
EnableNotNull Especifica si los valores predeterminados se asignan a las columnas que
WithDflt contienen valores nulos. Están disponibles los siguientes ajustes:
• Sí: la casilla de verificación Con predeterminado está habilitada en la
hoja de propiedades de la columna. Cuando se selecciona, se asigna un
valor predeterminado a una columna cuando se inserta un valor Nulo.
• No: la casilla de verificación Con valor predeterminado no está
disponible.
176 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
ModifyColn Check Especifica una sentencia para modificar una comprobación de columna en
una sentencia de modificación de tabla. Esta declaración se usa en el script
de modificación de la base de datos cuando los parámetros de verificación
de una columna se han modificado en la tabla.
Si AddColnChck está vacío, PowerDesigner copia los datos en una tabla
temporal antes de volver a crear la tabla con las nuevas restricciones.
Ejemplo (AS IQ 12.6):
alterar la tabla [%QUALIFIER%]%TABLE%
modificar %COLUMN% comprobar
(%.A:CONSTRAINT%)
La variable %COLUMN% es el nombre de la columna definida en la hoja
de propiedades de la tabla. La variable % CONSTRAINT % es la restricción
de verificación creada a partir de los nuevos parámetros de verificación.
AltEnableAddColnChk debe establecerse en SÍ
para permitir el uso de esta instrucción.
Artículo Descripción
ModifyColn Comp Especifica una declaración para modificar una expresión calculada para una
columna en una tabla de modificación.
Ejemplo (ASA 6):
alterar la tabla [%QUALIFIER%]%TABLE%
alterar %COLUMN% establecer cálculo
(%COMPUTE%)
ModificarColnDflt Especifica una declaración para modificar un valor predeterminado de
columna en una declaración de modificación de tabla. Esta instrucción se
utiliza en el script de modificación de la base de datos cuando se ha
modificado el valor predeterminado de una columna en la tabla.
Si ModifyColnDflt está vacío, PowerDesigner copia los datos en una tabla
temporal antes de volver a crear la tabla con las nuevas restricciones.
Ejemplo (ASE 15):
alterar la tabla [%QUALIFIER%]%TABLE%
reemplazar %COLUMN% default %DEFAULT%
La variable %COLUMN% es el nombre de la columna definida en la hoja
de propiedades de la tabla. La variable %DEFAULT% es el nuevo valor
predeterminado de la columna modificada.
ModificarColnNull Especifica una sentencia para modificar el estado nulo/no nulo de una
columna en una sentencia de modificación de tabla.
Ejemplo (Oracle 10g):
alterar la tabla [%QUALIFIER%]%TABLE%
modificar %COLUMN% %MAND%
ModificarColumna Especifica una sentencia para modificar una columna. Esta es una
declaración diferente de la declaración de modificación de la tabla y se usa
en el script de modificación de la base de datos cuando se ha modificado la
definición de la columna.
Ejemplo (SQL en cualquier lugar 10):
alterar la tabla [%QUALIFIER%]%TABLE%
modificar %COLUMN% %DATATYPE%
%NOTNULL%
NullObligatorio Especifica el estado obligatorio de una columna. Este elemento se utiliza
con la variable de columna NULLNOTNULL, que puede tomar valores
"nulo", "no nulo" o vacíos. Para más información, verTrabajar con valores
nulosen la página 159.
Rebautizar Especifica una declaración para cambiar el nombre de una columna dentro
de una declaración de modificación de tabla.
Ejemplo (Oracle 10g):
modificar la tabla
[%QUALIFIER%]%TABLE% cambiar el nombre
de la columna %OLDCOLN% a %NEWCOLN%
Artículo Descripción
178 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
SqlCheckQuery Especifica una consulta SQL para aplicar ingeniería inversa a los parámetros de
comprobación de columnas. El resultado debe ajustarse a la sintaxis SQL
adecuada.
Ejemplo (SQL en cualquier lugar 10):
{PROPIETARIO, TABLA, COLUMNA, CONSTNAME,
RESTRICCIÓN} seleccione u.nombre_usuario,
t.nombre_tabla, c.nombre_columna,
k.nombre_restricción,
case(lcase(left(h.check_defn, 5))) when 'check' then
substring(h.check_defn, 6) else h.check_defn end
de sys.sysconstraint k
unirse a sys.syscheck h en (h.check_id =
k.constraint_id)
unirse a sys.systab t on (t.object_id =
k.table_object_id) unirse a sys.sysuserperms u on
(u.user_id = t.creator) unirse a sys.syscolumn c on
(c.object_id = k.ref_object_id)
donde k.tipo_restricción = 'C' [ y
u.nombre_usuario=%.q:PROPIETARIO%]
[ y t.table_name=%.q:TABLE%]
[ y c.column_name=%.q:COLUMN%] ordenar por
1, 2, 3, 4
SqlStatistics Especifica una consulta SQL para aplicar ingeniería inversa a las estadísticas de
columnas y tablas.
Ejemplo (ASE 15):
[%ISLONGDTTP%?{ AverageLength } seleccione
[%ISLONGDTTP%?[%ISSTRDTTP%?
avg(char_length(%COLUMN%)):avg(datalength(%COLUMN
%))]:null] como longitud_promedio de
[%QUALIFIER%]%TABLE%
:{ NullValuesRate, DistinctValues, AverageLength }
seleccione
[%ISMAND%?null:(count(*) - count(%COLUMN%)) * 100 /
count(*)] como valores_nulos,
[%ISMAND%?null:count(distinto %COLUMN%)] como
valores_distintos,
[%ISVARDTTP%?[%ISSTRDTTP%?avg(char_length(%COLUMN
%)):avg(datalength(%COLUMN%))]:null] como
promedio_longitud
de [%CALIFICADOR%]%TABLA%]
Desatar Especifica una declaración para desvincular una regla a una columna.
Ejemplo (ASE 15):
[%R%?[exec]][ejecutar] sp_unbindrule
'%TABLE%.%COLUMN%'
180 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para los
índices:
• Agregar
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario
• Encabezado, pie de página
• Maxlen
• Atributos modificables
• Opciones, OpcionesDef
• Consultas invertidas
• DeclaracionesRevertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
AddColIndex Especifica una instrucción para agregar una columna en la instrucción Crear
índice. Este parámetro define cada columna en la lista de columnas de la
instrucción Create Index.
Ejemplo (ASE 15):
%COLUMNA%[ %ASC%]
%COLUMN% es el código de la columna definida en la lista de columnas
de la tabla. %ASC% es ASC (orden ascendente) o DESC (orden
descendente) según el estado del botón de opción Ordenar para la columna
de índice.
Artículo Descripción
Artículo Descripción
182 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Consulta Especifica una consulta SQL utilizada para enumerar los índices del
SqlSysIndex sistema creados por la base de datos. Estos índices se excluyen durante la
ingeniería inversa.
Ejemplo (AS IQ 12.6):
{PROPIETARIO, TABLA, ÍNDICE, ÍNDICE TIPO}
seleccione u.user_name, t.table_name,
i.index_name,
i.index_type
from sysindex i, systable t, sysuserperms
u donde t.table_id = i.table_id y
u.user_id = t.creator and i.index_owner !=
'USUARIO' [y u.user_name=%.q:OWNER%]
[y t.table_name=%.q:TABLE%]
Unión
seleccione u.user_name, t.table_name,
i.index_name,
i.index_type
from sysindex i, systable t, sysuserperms
u donde t.table_id = i.table_id y
u.user_id = t.creator and i.index_type =
'SA' [y u.user_name=%.q:OWNER%]
[y t.table_name=%.q:TABLE%]
UniqNombre Especifica si los nombres de índice deben ser únicos dentro del ámbito global
de la base de datos. Están disponibles los siguientes ajustes:
• Sí: los nombres de índice deben ser únicos dentro del ámbito global de
la base de datos.
• No: los nombres de índice deben ser únicos por objeto
Clave
La categoría Pkey se encuentra en la categoría Raíz > Script > Objetos y puede contener los
siguientes elementos que definen cómo se modelan las claves primarias para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para claves
primarias:
• Agregar
• NombreConst
• Crear, Soltar
• Permitir
• Opciones, OpcionesDef
• Consultas invertidas
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Habilitar clúster Especifica si se permiten restricciones agrupadas en claves primarias.
• Sí: se permiten restricciones agrupadas.
• No: las restricciones agrupadas no están permitidas.
Artículo Descripción
184 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
claves:
• Agregar
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• NombreConst
• Crear, Soltar
• Permitir
• MaxConstLen
• Atributos modificables
• Opciones, OpcionesDef
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Artículo Descripción
Un comentario clave Especifica una declaración para agregar un comentario clave alternativo.
Permitir columna Especifica si se permiten las columnas no obligatorias. Están disponibles los
anulable siguientes ajustes:
• Sí: se permiten columnas no obligatorias.
• No: las columnas no obligatorias no están permitidas.
SqlAkeyIndex Especifica una consulta de ingeniería inversa para obtener los índices clave
alternativos de una tabla mediante una conexión en vivo. Ejemplo (SQL en
cualquier lugar 10):
seleccione distinto i.index_name
de sys.sysuserperms u únase a
sys.systable t en
(t.creator=u.user_id) únase a
sys.sysindex i en
(i.table_id=t.table_id) donde
i."unique" no está en (' Y', 'N')
[ y t.table_name = %.q:TABLE%]
[ y u.nombre_usuario = %.q:ESQUEMA%]
Índice Determina si se genera una sentencia Crear índice para cada sentencia
UniqConstAuto clave. Están disponibles los siguientes ajustes:
• Sí: genera automáticamente un índice de clave alternativo dentro de la
instrucción de clave alternativa. Si selecciona la casilla de verificación
de clave alternativa en crear índice al generar o modificar una base de
datos, la casilla de verificación de clave alternativa de la tabla de
creación se borrará automáticamente, y viceversa.
• No: los índices de clave alternativos no se generan automáticamente. Las
casillas de verificación Clave alternativa y Crear índice se pueden
seleccionar al mismo tiempo.
Referencia
La categoría Referencia se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan las referencias para su
DBMS.
186 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
referencias:
• Agregar
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• NombreConst
• Crear, Soltar
• Permitir
• MaxConstLen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Comprobación de Especifica que la prueba de integridad referencial se realiza solo después
compromiso de COMMIT. Contiene la palabra clave utilizada para especificar una
referencia con la opción CheckOnCommit.
Ejemplo:
COMPROBAR EN COMPROMISO
Artículo Descripción
188 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
Consulta Especifica una consulta SQL utilizada para enumerar las uniones en una
SqlListChildren referencia.
Ejemplo (Oracle 10g):
{COLUMN CLAVE, COLUMNA FCLAVE}
[%ISODBCUSER%?seleccionar
p.column_name, f.column_name
from sys.user_cons_columns
f, sys.all_cons_columns p
donde f.position =
p.position y
f.table_name=%.q:TABLE%
[ y
p.propietario=%.q:POWNER%] y
p.table_name=%.q:PARENT%
y f.constraint_name=%.q:FKCONSTRAINT% y
p.constraint_name=%.q:PKCONSTRAINT%
ordenar por posición f
:seleccione p.column_name,
f.column_name from
sys.all_cons_columns f,
sys.all_cons_columns p donde
f.position = p.position and
f.owner=%.q:SCHEMA% and
f.table_name=%.q:TABLE%
[ y
p.propietario=%.q:POWNER%] y
p.table_name=%.q:PARENT%
y f.constraint_name=%.q:FKCONSTRAINT% y
p.constraint_name=%.q:PKCONSTRAINT%
ordenar por f.posición]
Vista
La categoría Vista se encuentra en la categoría Raíz > Script > Objetos y puede contener los
siguientes elementos que definen cómo se modelan las vistas para su DBMS.
Artículo Descripción
190 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
las vistas:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, HabilitarSinónimo
• Encabezado, pie de página
• Atributos modificables
• Opciones
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Habilitar índice Especifica una lista de tipos de vista para los que hay un índice de
vista disponible.
Ejemplo (Oracle 10g):
MATERIALIZADO
Artículo Descripción
espacio de mesa
La categoría Tablespace se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan los tablespaces para su
DBMS.
Artículo Descripción
192 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
espacios de tabla:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Atributos modificables
• Opciones, OpcionesDef
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Comentario de Especifica una declaración para agregar un comentario de espacio de
espacio de tablas tablas.
Almacenamiento
La categoría Almacenamiento se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan los almacenamientos para
su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para los
almacenamientos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Atributos modificables
• Opciones, OpcionesDef
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Comentario de Especifica una declaración para agregar un comentario de almacenamiento.
almacenamiento
Base de datos
La categoría Base de datos se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan las bases de datos para su
DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
bases de datos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Atributos modificables
• Opciones, OpcionesDef
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery, SqlPermQuery
CerrarBase de datos Especifica el comando para cerrar la base de datos. Si este parámetro está
vacío, la opción Base de datos/Cerrar en la pestaña Opciones del cuadro
Generar base de datos no está disponible.
Habilitar muchas Habilita el soporte para múltiples bases de datos en el mismo modelo.
bases de datos
Abrir base de datos Especifica el comando para abrir la base de datos. Si este parámetro está
vacío, la opción Base de datos/Abrir en la pestaña Opciones del cuadro
Generar base de datos no está disponible.
Ejemplo (ASE 15):
usar %BASE DE DATOS%
La variable %DATABASE% es el código de la base de datos asociada al
modelo generado.
Dominio
La categoría Dominio se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan los dominios para su DBMS.
Artículo Descripción
194 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para los
dominios:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Unir Especifica la sintaxis para vincular una regla comercial a un dominio.
Ejemplo (ASE 15):
[%R%?[exec]][ejecutar]sp_bindrule [%R%?['[%QUALI-
FIER%]%REGLA%'][[%CALIFICADOR%]%REGLA%]:['[%CALIF
ICADOR %]%REGLA%']], %DOMINIO%
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para tipos
de datos abstractos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Atributos modificables
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
ADTComentario Especifica una instrucción para agregar un comentario de tipo de datos
abstracto.
196 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
PermitidoADT Especifica una lista de tipos de datos abstractos que se pueden utilizar
como tipos de datos para tipos de datos abstractos.
Ejemplo (Oracle 10g):
OBJETO
MESA
VARRAY
Artículo Descripción
Autorizaciones Especifica una lista de aquellos usuarios que pueden invocar tipos de datos
abstractos.
Crear cuerpo Especifica una instrucción para crear un cuerpo de tipo de datos abstracto.
Ejemplo (Oracle 10g):
crear [o reemplazar] tipo de cuerpo
[%QUALIFIER%]%ADT%
[.Oasis]]
%ADTBODY%
fin;
HabilitarAdtEn Especifica si los tipos de datos abstractos están habilitados para las
columna columnas. Están disponibles los siguientes ajustes:
• Sí: los tipos de datos abstractos se agregan a la lista de tipos de
columna siempre que tengan el tipo válido.
• No: los tipos de datos abstractos no están permitidos para las columnas.
HabilitarAdtOn Especifica si los tipos de datos abstractos están habilitados para los
Domn dominios. Están disponibles los siguientes ajustes:
• Sí: los tipos de datos abstractos se agregan a la lista de tipos de
dominio siempre que tengan el tipo válido
• No: los tipos de datos abstractos no están permitidos para los dominios
Instalar Especifica una declaración para instalar una clase de Java como una clase
de datos abstractos (en ASA, los tipos de datos abstractos se instalan y
eliminan en lugar de crearlos y eliminarlos). Este elemento es equivalente a
una declaración de creación.
Ejemplo (SQL en cualquier lugar 10):
instale la ACTUALIZACIÓN DE JAVA desde el archivo
%.q:FILE%
Eliminar Especifica una declaración para instalar una clase Java como una clase de
datos abstractos.
Ejemplo (SQL en cualquier lugar 10):
eliminar la clase JAVA %ADT%
Atributo de tipo de datos abstractos
La categoría Atributo de tipos de datos abstractos se encuentra en la categoría Raíz > Script
> Objetos y puede contener los siguientes elementos que definen cómo se modelan los
atributos de tipos de datos abstractos para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes pueden definirse para
atributos de tipos de datos abstractos:
• Agregar
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar, Modificar
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
PermitidoADT Especifica una lista de tipos de datos abstractos que se pueden utilizar
como tipos de datos para atributos de tipos de datos abstractos.
Ejemplo (Oracle 10g):
OBJETO
MESA
VARRAY
Si selecciona el tipo OBJETO para un tipo de datos abstracto, aparece una
pestaña Atributos en la hoja de propiedades del tipo de datos abstractos,
que le permite especificar los atributos del tipo de datos del objeto.
Usuario
La categoría Usuario se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan los usuarios para su DBMS.
Artículo Descripción
198 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para los
usuarios:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Maxlen
• Atributos modificables
• Opciones, OpcionesDef
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Comentario de Especifica una declaración para agregar un comentario de usuario.
usuario
Regla
La categoría Regla se encuentra en la categoría Raíz > Script > Objetos y puede contener los
siguientes elementos que definen cómo se modelan las reglas para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
reglas:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Artículo Descripción
200 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objeto común se pueden definir para los
procedimientos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario, Habilitar sinónimo
• Maxlen
• Atributos modificables
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
CreateFunc Especifica la instrucción para crear una función.
Ejemplo (SQL en cualquier lugar 10):
crear función [%QUALIFIER%]%FUNC%[%PROCPRMS%?
([%PROCPRMS%])] %TRGDEFN%
CustomFunc Especifica la sentencia para crear una función definida por el usuario, una
forma de procedimiento que devuelve un valor al entorno de llamada para
utilizarlo en consultas y otras sentencias de SQL.
Ejemplo (SQL en cualquier lugar 10):
crear función [%QUALIFIER%]%FUNC% (<arg> <tipo>)
DEVOLUCIONES <tipo>
empezar
terminar
Artículo Descripción
202 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
EnableFunc Especifica si las funciones están permitidas. Las funciones son formas de
procedimiento que devuelven un valor al entorno de llamada para su uso en
consultas y otras declaraciones SQL.
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
disparadores:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Desencadenador Especifica una plantilla para definir nombres de disparadores
predeterminado predeterminados.
Nombre
Ejemplo (SQL en cualquier lugar 10):
%PLANTILLA%_%.L:TABLA%
Artículo Descripción
Artículo Descripción
204 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Usar tabla de Especifica una macro para acceder a mensajes de error desencadenantes
mensajes de error desde una tabla de mensajes en su base de datos.
Habilita el uso del botón de opción Definido por el usuario en la pestaña
Mensajes de error del cuadro de diálogo Trigger Rebuild (consulteModelado
de datos > Creación de modelos de datos > Desencadenadores y
procedimientos > Generación de desencadenadores y procedimientos >
Creación de mensajes de error definidos por el usuario ).
Si un número de error en el script de activación corresponde a un número de
error en la tabla de mensajes, el mensaje de error predeterminado de la macro
.ERROR se reemplaza por su mensaje.
Ejemplo (ASE 15):
comenzar
seleccione @errno =
%ERRNO%, @errmsg =
%MSGTXT% de %MSGTAB%
donde %MSGNO% = %ERRNO% ir a
error
fin
Dónde:
• %ERRNO% - parámetro de número de error para la macro
.ERROR
• %ERRMSG% - parámetro de texto de mensaje de error para la
macro .ERROR
• %MSGTAB% - nombre de la tabla de mensajes
• %MSGNO% - nombre de la columna que almacena el número del
mensaje de error
• %MSGTXT%: nombre de la columna que almacena el texto del
mensaje de error Consulte también UseErrorMsgText.
Usar texto de Especifica una macro para acceder a los mensajes de error del disparador
mensaje de error desde la definición de la plantilla del disparador.
Habilita el uso del botón de opción Estándar en la pestaña Mensajes de error
del cuadro de diálogo Trigger Rebuild.
Se utilizan el número de error y el mensaje definidos en la definición de la
plantilla.
Ejemplo (ASE 15):
comenzar
seleccione @errno =
%ERRNO%, @errmsg =
%MSGTXT% ir al error
fin
Consulte también UseErrorMsgTable.
Desencadenador DBMS
La categoría Desencadenador de DBMS se encuentra en la categoría Raíz > Script > Objetos
y puede contener los siguientes elementos que definen cómo se modelan los
desencadenadores de DBMS para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
disparadores de DBMS:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Modificar, AlterStatementList, AlterDBIgnorado
• Habilitar, Habilitar propietario
• Encabezado, pie de página
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
EventDelimiter Especifica un carácter para separar varios eventos desencadenantes.
206 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
índices de combinación:
• Agregar
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario
• Encabezado, pie de página
• Maxlen
• Atributos modificables
• Opciones, OpcionesDef
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlOptsQuery
[Artículos comunes] Se pueden definir los siguientes elementos de objeto común para los
calificadores:
• Permitir
• Consultas invertidas
• SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
secuencias:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario, Habilitar sinónimo
• Maxlen
• Atributos modificables
• Opciones, OpcionesDef
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlPermQuery
208 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir como
sinónimos:
• Crear, Soltar
• Habilitar, HabilitarSinónimo
• Maxlen
• Consultas invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Habilitar alias Especifica si los sinónimos pueden tener un tipo de alias.
Grupo
La categoría Grupo se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan los grupos para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
grupos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Unir Especifica un comando para agregar un usuario a un grupo.
Ejemplo (SQL en cualquier lugar 10):
otorgar membresía en el grupo %GROUP% a %USER%
Artículo Descripción
Consulta Especifica una consulta SQL para enumerar los miembros de un grupo.
SqlListChildren
Ejemplo (ASE 15):
{ID DE GRUPO, MIEMBRO}
seleccione g.name,
u.name de
[%CATALOG%.]dbo.sysusers u,
[%CATALOG%.]dbo.sysusers g donde
u.suid > 0 y
u.gid = g.gid y
g.gid = g.uid
ordenar por 1, 2
Role
La categoría Rol se encuentra en la categoría Raíz > Script > Objetos y puede contener los
siguientes elementos que definen cómo se modelan los roles para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para roles:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlPermQuery
Artículo Descripción
210 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Consulta Especifica una consulta SQL para enumerar los miembros de un grupo.
SqlListChildren
Ejemplo (ASE 15):
{ IDENTIFICADOR DE FUNCIÓN, MIEMBRO }
SELECCIONE r.nombre,
u.nombre DE
master.dbo.sysloginroles l,
[%CATALOG%.]dbo.sysroles s,
[%CATALOG%.]dbo.sysusers u,
[%CATALOG%.]dbo.sysusers r donde
l.suid = u.suid y
s.id =l.srid y
r.uid = s.lrid
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
paquetes de base de datos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, HabilitarSinónimo
• Maxlen
• Atributos modificables
• Permiso
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery, SqlPermQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Autorizaciones Especifica una lista de aquellos usuarios que pueden invocar paquetes de
bases de datos.
Artículo Descripción
Crear cuerpo Especifica una plantilla para definir el cuerpo del paquete de la base de
datos. Esta declaración se usa en la declaración de extensión AfterCreate.
Ejemplo (Oracle 10g):
crear [o reemplazar] el cuerpo del paquete
[%QUALIFIER%] %DBPACKAGE% [.O:[as][is]][%IsPragma%
? pragma serially_reusable] %DBPACKAGEBODY%
[comenzar
%DBPACKAGEINIT%
]fin[ %DBPACKAGE%];
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
paquetes de base de datos:
• Agregar
• Consultas invertidas
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Cuerpo del [Solo procedimientos de paquete de base de datos] Especifica una plantilla
procedimiento DB para definir el cuerpo del procedimiento de paquete en la pestaña Definición
de su hoja de propiedades.
Ejemplo (Oracle 10g):
empezar
terminar
Artículo Descripción
212 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Tipos de parámetros [solo procedimientos y cursores del paquete de base de datos] Especifica los
tipos disponibles para procedimientos o cursores.
Ejemplo (Oracle 10g: procedimiento):
adentro en
nocopia
adentro
afuera
adentro
afuera
nocopia
fuera
fuera
nocopia
Parámetro
La categoría Parámetro se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan los parámetros para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
paquetes de base de datos:
• Agregar
• Consultas invertidas
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Privilegio
La categoría Privilegio se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan los privilegios para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
privilegios:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Artículo Descripción
Permiso
La categoría Permiso se encuentra en la categoría Raíz > Script > Objetos y puede contener
los siguientes elementos que definen cómo se modelan los permisos para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para los
permisos:
• Crear, Soltar
• Permitir
• Consultas invertidas
• SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
GrantOption Especifica la opción de concesión para una declaración de permisos.
Ejemplo (ASE 15):
con opción de subvención
214 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Por defecto
La categoría Predeterminado se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan los valores predeterminados
para su DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir por
defecto:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Unir Especifica el comando para vincular un objeto predeterminado a un
dominio o una columna.
Cuando un dominio o una columna utilizan un objeto predeterminado,
unenlazar por defectoLa declaración se genera después de la declaración
de creación de dominio o tabla. En el siguiente ejemplo, la columna
Dirección en la tabla Cliente usa el objeto predeterminado CITYDFLT:
crear tabla CLIENTE (DIRECCIÓN
char(10) nulo
)
sp_bindefault CIUDADDFLT,
'CLIENTE.DIRECCIÓN'
Si el dominio o la columna utilizan un valor predeterminado ingresado
directamente en la lista Predeterminado, el valor predeterminado se declara
en la línea de creación de la columna:
DIRECCIÓN char(10) predeterminado 'StdAddr' nulo
PúblicoPropietario Permite a PUBLIC poseer sinónimos públicos.
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
servicios web y operaciones web:
• AfterCreate, AfterDrop, AfterModify
• Alterar
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Habilitar, Habilitar propietario
• Encabezado, pie de página
• MaxConstLen (solo operaciones web)
• Maxlen
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Lista de tipos de [solo operación web] Especifica una lista de tipos de operaciones de
operaciones servicios web.
Ejemplo (DB2 UDB 8.x CS):
consul
ta
actual
izació
n
storeX
ML
recupe
rarXML
llamad
a
216 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
ServiceTypeListServiceTyp [solo servicio web] Especifica una lista de tipos de servicios web.
eList
Ejemplo (SQL en cualquier lugar 10):
CRUDO
HTML
XML
PLATO
UniqNombre Especifica si los nombres de las operaciones del servicio web deben
ser únicos en la base de datos.
Artículo Descripción
Parámetro web
La categoría Parámetro web se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan los parámetros web para su
DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
parámetros web:
• Agregar
• Permitir
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
HabilitarPredeterminado Permite valores predeterminados para los parámetros del servicio web.
Lista de Parámetros Especifica una lista de tipos de datos que se pueden usar como
Dttp parámetros de servicios web.
Columna de resultados
La categoría Columna de resultados se encuentra en la categoría Raíz > Script > Objetos y
puede contener los siguientes elementos que definen cómo se modelan los servicios web y
las operaciones web para su DBMS.
Artículo Descripción
ResultColumn Especifica una lista de tipos de datos que se pueden usar para las columnas
DttpList de resultados.
Dimensión
La categoría Dimensión se encuentra en la categoría Raíz > Script > Objetos y puede
contener los siguientes elementos que definen cómo se modelan las dimensiones para su
DBMS.
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para las
dimensiones:
• AfterCreate, AfterDrop, AfterModify
• Alterar
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• Permitir
• Encabezado, pie de página
• Maxlen
• Consultas invertidas
• SqlAttrQuery, SqlListQuery
Jerarquía AddJoin Especifica la sintaxis para definir una lista de uniones para atributos de
jerarquía.
Ejemplo (Oracle 10g):
clave de combinación [.O:[(%DIMNKEYLIST%)][%DIMNKEYLIST%]]
hace referencia a %DIMNPARENTLEVEL%
218 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Artículo Descripción
[Artículos comunes] Los siguientes elementos de objetos comunes se pueden definir para
objetos extendidos:
• AfterCreate, AfterDrop, AfterModify
• BeforeCreate, BeforeDrop, BeforeModify
• Crear, Soltar
• EnableSynonym
• Encabezado, pie de página
• Atributos modificables
• Consultas invertidas, declaraciones invertidas
• SqlAttrQuery, SqlListQuery
Para obtener una descripción de cada uno de estos elementos comunes,
consulteElementos de objetos comunesen la página 144.
Lista de Especifica una lista de elementos de texto que representan declaraciones
declaraciones que modifican los atributos correspondientes
alteradas
Comentario Especifica la sintaxis para agregar un comentario a un objeto extendido.
Artículo Descripción
AmcdAmcdType Enumera asignaciones para convertir tipos de datos especializados (como XML,
IVL, MEDIA, etc.) a tipos de datos estándar de PowerDesigner. Estas
asignaciones se utilizan para ayudar a la conversión de un DBMS a otro, cuando
el nuevo DBMS no admite uno o más de estos tipos especializados. Por ejemplo,
si no se admite el tipo de datos XML, se utiliza TXT.
PhysDataType Enumera las asignaciones para convertir tipos de datos de DBMS (modelo
físico) a tipos de datos de PowerDesigner (internos).
Estas asignaciones se utilizan durante la generación de PDM a CDM y con el
comando Cambiar DBMS actual.
Ejemplos (ASE 15):
220 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
OdbcPhysTipo Enumera las asignaciones para convertir tipos de datos de base de datos en
de datos vivo (ODBC) a tipos de datos DBMS (modelo físico) durante la ingeniería
inversa de la base de datos.
Estas asignaciones se utilizan cuando los tipos de datos se almacenan de
manera diferente en la base de datos (a menudo debido a la inclusión de un
tamaño predeterminado) que en la notación DBMS.
Ejemplos (ASE 15):
Artículo Descripción
PhysOdbcTipo Enumera las asignaciones de tipos de datos de DBMS (modelo físico) a tipos de
de datos datos de base de datos (ODBC) para su uso al actualizar y aplicar ingeniería
inversa a una base de datos.
Estas asignaciones se utilizan cuando los tipos de datos que son funcionalmente
equivalentes pero diferentes a los especificados en el PDM se encuentran en una
base de datos existente para evitar la visualización de diferencias innecesarias e
irrelevantes en el cuadro de diálogo Fusionar.
Ejemplos (ASE 15):
PermitidoADT Enumera los tipos de datos abstractos que se pueden usar como tipos para
columnas y dominios en el DBMS. Ejemplo (ASE 15):
• JAVA
Artículo Descripción
HostDataType Enumera las asignaciones para convertir tipos de datos DBMS (Modelo físico)
a tipos de datos permitidos como parámetros de procedimiento
(Desencadenador).
Estas asignaciones se utilizan para completar el campo Tipo de datos en las
hojas de propiedades de parámetros del procedimiento ADT. Ejemplos
(Oracle 11g):
La categoría Perfil se utiliza para ampliar los objetos estándar de PowerDesigner. Puede
refinar la definición, el comportamiento y la visualización de objetos existentes creando
atributos extendidos, estereotipos, criterios, formas, símbolos, archivos generados, etc. y
agregar nuevos objetos creando y estereotipando objetos y subobjetos extendidos.
Puede agregar extensiones en:
• su archivo de definición DBMS: debe guardar una copia de seguridad de este archivo
antes de editarlo.
• un archivo de extensión separado, que se adjunta a su modelo.
Para obtener información detallada sobre cómo trabajar con perfiles, incluida la adición de
atributos y objetos extendidos, consulte el Capítulo 2, Archivos de extensión en la página 11.
222 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Puede crear tantos atributos extendidos como necesite, para cada objeto compatible con
DBMS.
Ejemplo
Por ejemplo, en DB2 UDB 7 OS/390, el atributo extendido WhereNotNull le permite agregar
una cláusula que impone la exclusividad de los nombres de índice si no son nulos.
En el orden de creación del índice, WhereNotNull se evalúa de la siguiente manera:
cree [%INDEXTYPE% ][%UNIQUE% [%WhereNotNull%?where not null]]index
[%QUALIFIER%]%INDEX% en [%TABLQUALIFIER%]%TABLE% (
Si el nombre del índice es único y establece el tipo del atributo extendido WhereNotNull en
True, la cláusula "where not null" se inserta en la secuencia de comandos.
En el elemento SqlListQuery:
{PROPIETARIO, TABLA, ÍNDICE, INDEXTYPE, ÚNICO, INDEXKEY, CLUSTER,
donde no es nulo}
seleccione
tbcreator, tbname,
nombre,
case indextype when '2' then 'type 2' else 'type 1' end,
case uniquerule when 'D' then '' else 'unique' end,
caso regla única cuando 'P' entonces 'primario' cuando 'U' entonces
'único' más
'' fin,
agrupamiento de casos cuando 'Y' luego 'cluster' else ''
finaliza, caso de regla única cuando 'N' luego
'VERDADERO' más 'FALSO' finaliza desde
sysibm.sysindexes donde
1=1
[ y tbname=%.q:TABLA%]
[ y tbcreator=%.q:PROPIETARIO%]
[ y dbname=%.q:CATALOGO%]
ordenar
por 1 ,2
,3
Modificación del mecanismo de estimación del tamaño de la base de
datos
De forma predeterminada, el mecanismo Estimar el tamaño de la base de datos utiliza
algoritmos estándar para calcular los tamaños de espacios de tabla, tablas, columnas e índices
y los suma para proporcionar una indicación del tamaño que requerirá la base de datos. Puede
anular el algoritmo para uno o más de estos tipos de objetos o incluir objetos adicionales en
el cálculo agregando el controlador de eventos GetEstimatedSize al objeto apropiado en la
categoría Perfil e ingresando un script para calcular su tamaño.
1. Seleccione Base de datos > Editar DBMS actual para abrir el archivo de definición de
DBMS y expanda la categoría de perfil.
2. Haga clic con el botón derecho en la metaclase para la que desea proporcionar una
secuencia de comandos para calcular el tamaño del objeto, seleccione Nuevo >
Controlador de eventos para abrir un cuadro de diálogo de selección, seleccione el
controlador de eventos GetEstimatedSize y, a continuación, haga
clic en Aceptar para agregarlo en la metaclase.
224 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
226 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
%GetEstimatedSize% = RawDataSize
función final
Una vez procesadas todas las tablas, PowerDesigner calcula e imprime el tamaño total
estimado de la base de datos.
Llamar al controlador de eventos GetEstimatedSize en otra metaclase
Puede llamar a un controlador de eventos GetEstimatedSize definido en otra metaclase para
usar este tamaño en su cálculo. Por ejemplo, puede definir GetEstimatedSize en la metaclase
Table y realizar una llamada a GetEstimatedSize definida en las metaclases Column e Index
para usar estos tamaños para calcular el tamaño total de la tabla.
La sintaxis de la función es la siguiente, donde mensaje es el nombre de su variable que
contiene los resultados para imprimir:
ObtenerTamañoEstimado(mensaje[,verdadero|falso])
El uso del parámetro falso (que es el predeterminado, pero que se muestra aquí para mayor
claridad) significa que llamamos al controlador de eventos GetEstimatedSize en la otra
metaclase y usamos el mecanismo predeterminado solo si el controlador de eventos no está
disponible.
Establecer el parámetro en verdadero forzará el uso del mecanismo predeterminado para
calcular el tamaño de los objetos (solo es posible para tablas, columnas e índices de
combinación):
GetEstimatedSize(mensaje, verdadero)
dónde:
• object-size - es el tamaño del objeto.
• compartimento: es un número de un dígito que indica que el tamaño del objeto debe
excluirse del tamaño total de la base de datos y debe imprimirse después de calcular
el tamaño de la base de datos. Por ejemplo, puede incluir el tamaño de las tablas
individuales en su cálculo del tamaño de la base de datos e imprimir los tamaños de
los espacios de tabla por separado después del cálculo.
• ObjectID: no es necesario para objetos, como tablas, pero
es necesario para subobjetos si desea imprimirlos en la
Lista de resultados.
• etiqueta: es cualquier cadena de identificación adecuada y, por lo general, se
establece en
ShortDescription, que imprime el tipo y el nombre del objeto
seleccionado.
Luego agregamos una línea que imprime el tamaño total de todas las columnas de tipo
LARGO en la tabla:
mensaje = mensaje & CStr(TamañoLargo) & "||Columnas de tipo LARGO"
& vbCrLf
228 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Luego agregamos una línea que imprime el tamaño de cada índice en la tabla:
mensaje = mensaje & CStr(IndexSize) & "|" & objIndex.ObjectID &
vbCrLf
Luego agregamos una línea que imprime el tamaño de cada tablespace en la tabla
mensaje = mensaje + CStr(tablespaceSize) & ":1||" &
objTablespace.ShortDescription
[...etc...]
[...etc...]
La categoría ODBC contiene elementos para la generación de bases de datos en vivo cuando
el DBMS no admite las declaraciones de generación definidas en la categoría Script.
Por ejemplo, el intercambio de datos entre PowerDesigner y MSACCESS funciona con
scripts de VB y no con SQL, por lo que estas sentencias se ubican en la categoría ODBC.
Tiene que usar un programa especial (access.mdb) para convertir estos scripts en objetos de
base de datos MSACCESS.
Para algunos DBMS, se utilizan opciones adicionales para especificar cómo se optimiza o
almacena un objeto en una base de datos. En PowerDesigner, estas opciones se denominan
opciones físicas y se muestran en las pestañas Opciones físicas y Opciones físicas (comunes)
de las hojas de propiedades del objeto.
Para que aparezca en la pestaña Opciones físicas, se debe definir una opción en el elemento
Script\Objects\object\Options (consulte Elementos de objetos comunes en la página 144).
Los valores predeterminados se pueden almacenar en Opciones o en DefOptions. Para
aparecer en la pestaña Opciones físicas (comunes) (o en cualquier otra pestaña de la hoja de
propiedades), la opción física debe estar asociada adicionalmente con un atributo extendido
(consulte Agregar opciones físicas de DBMS a sus formularios en la página 210).
Durante la generación, las opciones seleccionadas en el modelo para cada objeto se
almacenan como una cadena SQL en la variable %OPTIONS%, que debe aparecer al final
de la sentencia Create del objeto, y no puede ir seguida de nada más. El siguiente ejemplo
utiliza la sintaxis correcta:
crear tabla [%OPTIONS%]
Durante la ingeniería inversa por script, la sección de la consulta SQL determinada como
opciones físicas se almacena en %OPTIONS% y luego se analizará cuando lo requiera una
hoja de propiedades del objeto.
Durante la ingeniería inversa de la base de datos en vivo, la instrucción SQL SqlOptsQuery
se ejecuta para recuperar las opciones físicas que se almacenan en %OPTIONS% para
analizarlas cuando lo requiera una hoja de propiedades del objeto.
Puede utilizar las variables de PowerDesigner (consulte Variables y macros de PDM en la
página 212) para configurar las opciones físicas de un objeto. Por ejemplo, en Oracle, puede
establecer la siguiente variable para un clúster para que el clúster tome el mismo nombre que
la tabla.
Clúster %TABLE%
230 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
max_rows_per_page=%d max_rows_per_page=valor
<nombre-partición> %s nombre
Puede insertar dos puntos seguidos de palabras clave separadas por comas para controlar sus
opciones:
Palabra clave valor y resultado
Ejemplos
Opción física genera como
232 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Todo lo ingresado antes de los dos puntos se genera en scripts. El nombre es requerido por
PowerDesigner, pero puede colocarlo entre signos de intercalación (<nombre>) si necesita
excluirlo del script final. Las variables %d o %s requieren un valor numérico o de cadena, y
también puede usar una variable de PowerDesigner o un fragmento de código GTL.
La palabra clave composite=yes es necesaria para las opciones compuestas y se puede
utilizar junto con cualquiera de las palabras clave de opciones físicas simples o cualquiera
de las siguientes:
Palabra clave valor y resultado
compuesto=sí Especifica que la opción es una opción compuesta que contiene opciones
dependientes rodeadas por llaves.
separador=sí Especifica que las opciones dependientes están separadas por comas.
Ejemplos
Opción física genera como
<lista> : compuesto=sí,
múltiple=sí
{ frag-expresión en
<frag-expresión> %s en almacenamiento
%s:
categoría=almacenamiento frag-
} expression2en
almacenamiento2
etc.
Para que una opción física se muestre en un formulario, debe estar asociada a un atributo
extendido de tipo opción física.
1. Haga clic con el botón derecho en la metaclase y seleccione Nuevo atributo extendido de
Opciones físicas para abrir el cuadro de diálogo Seleccionar opciones físicas:
234 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
2. Seleccione la opción física requerida y haga clic en Aceptar para crear un atributo
extendido asociado con ella.
3. Especifique cualquier otra propiedad adecuada.
4. Seleccione el formulario en el que desea insertar la opción física y haga clic en la
herramienta Agregar atributo para insertarlo como control (consulte Agregar atributos
extendidos y otros controles a su formulario en la página 57).
Nota:Para cambiar la opción física asociada con un atributo extendido, haga clic en los
puntos suspensivos a la derecha del campo Opciones físicas en la hoja de propiedades de
Atributo extendido.
Las consultas SQL registradas en los elementos del archivo de definición DBMS utilizan
varias variables PDM, que se escriben entre signos de porcentaje. Estas variables se
reemplazan con valores de su modelo cuando se generan los scripts y se evalúan para crear
objetos de PowerDesigner durante la ingeniería inversa.
Por ejemplo, en la siguiente consulta, la variable %TABLE% será reemplazada por el código
de la tabla que se está creando:
Nota:Puede usar estas variables libremente en sus propias consultas, pero no puede cambiar
el método de su evaluación (es decir, %TABLE% solo puede evaluar el código de la tabla).
Alternativamente, puede acceder a las propiedades de cualquier objeto utilizando GTL
(consulte el Capítulo 5, Personalización
Generación con GTL en la página 245) y los nombres públicos disponibles a través de
la
Metamodelo de PowerDesigner (consulte el Capítulo 8, El metamodelo público de
PowerDesigner en la página 343).
%OPCIONESEXO% El texto SQL analizado que define las opciones físicas del objeto.
%RESTRICCIÓN% Restricción del cuerpo SQL del objeto. Ej: (A <= 0) Y (A >= 10)
236 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Variable Comentario
Variable Generación
Ejemplos
• [%OPCIONES%]
Si %OPCIONES% (opciones físicas para los objetos visibles en la hoja de propiedades
del objeto) existe y no se le asigna NO o FALSO, se genera al valor de %OPCIONES%.
• [predeterminado %DEFAULT%]
238 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Salida de plantilla
(%.3:Nombre%) da (abc)
(%.-3:Nombre%) da (xyz)
(%10.3:Nombre%) da (abc) (%10.-3:Nombre%) da
(xyz)
(%-10.3:Nombre%) da (abc)
(%-10.-3:Nombre%) da (xyz)
(%10.3M:Nombre%) da (jkl)
240 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Variable Comentario
%NULLNOTNULL% Estado obligatorio de una columna. Esta variable siempre se usa con
el elemento NullRequired, consulteTrabajar con valores nulosen la
página 159
%PCLAVE% Palabra clave CLUSTER para la clave principal cuando se define en
la misma línea
Variable Comentario
%UNA CLAVE% Palabra clave CLUSTER para la clave alternativa cuando se define
en la misma línea
242 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Variable Comentario
%MÍNIMO MÁXIMO% Restricción de SQL asociada con valores mínimos y máximos. Ej:
(C1 <= 0) Y (C1 >= 5)
244 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
%MESA% Código generado del padre de un índice, puede ser una tabla o una tabla
de consulta (vista)
Variable Comentario
Variable Comentario
246 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
%ORDEN% Número de pedido del disparador (en caso de que DBMS admita más de
un disparador de un tipo)
Variable Comentario
%CUERPOTRG% Cuerpo del disparador (solo para ingeniería inversa de la base de datos
en vivo de Oracle)
%TRGDESC% Descripción del activador (solo para la ingeniería inversa de la base de
datos en vivo de Oracle)
%TRGDEFN% Definición de disparador
248 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Variable Comentario
250 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Las siguientes variables están disponibles para atributos de tipos de datos abstractos:
Variable Comentario
Las siguientes variables están disponibles para procedimientos de tipos de datos abstractos:
Variable Comentario
252 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
%JIDXFROM% De la cláusula
%NUEVO DUEÑO% Nombre del nuevo propietario del Objeto. Véase también
PROPIETARIO
%CALIFICADOR Antiguo calificador de Objeto. Ver también CALIFICADOR
ANTIGUO%
%NUEVOCALIFICADOR% Nuevo calificador de Objeto. Ver también CALIFICADOR
Variable Comentario
254 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Las siguientes variables están disponibles para los procedimientos del paquete de base de
datos:
Variable Comentario
Variable Comentario
Las siguientes variables están disponibles para las variables del paquete de base de datos:
Variable Comentario
Las siguientes variables están disponibles para los tipos de paquetes de bases de datos:
Variable Comentario
Las siguientes variables están disponibles para los cursores del paquete de base de datos:
Variable Comentario
Las siguientes variables están disponibles para las excepciones de paquetes de base de datos:
Variable Comentario
Las siguientes variables están disponibles para los parámetros del paquete de base de datos:
Variable Comentario
Las siguientes variables están disponibles para pragmas de paquetes de base de datos:
Variable Comentario
256 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Las siguientes variables están disponibles para las operaciones del servicio web:
Variable Comentario
Las siguientes variables están disponibles para la seguridad del servicio web:
258 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Variable Comentario
Las siguientes variables están disponibles para los parámetros del servicio web:
Variable Comentario
Variable Comentario
Variable Comentario
260 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
%S% Permitir saltar una palabra. La cadena se analiza para revertir pero no
se genera
%D% Permitir saltar un valor numérico. El valor numérico se analiza para
revertir pero no se genera
%A% Permitir omitir todo el texto. El texto se analiza para revertir pero no se
genera
%USUARIOISODBC% Verdadero si el usuario actual está conectado
%NOMBRESCRIPT% Nombre del script de archivo donde se van a escribir las órdenes
SQL
%STARTCMD% Descripción para explicar cómo ejecutar el script generado
Variable Comentario
%USE_SP_FKEY% Use la clave externa del procedimiento almacenado para crear claves
primarias (específicas de SQL Server)
Sintaxis
.AKCOLN("declaración","prefijo","sufijo","último_sufijo",
"condición")
.FKCOLN("declaración","prefijo","sufijo","último_sufijo")
.PKCOLN("declaración","prefijo","sufijo","último_sufijo")
Argumento Descripción
262 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
condición Código de tecla alternativa (si el argumento de condición se deja vacío, la macro
devuelve una declaración para cada tecla alternativa en la tabla)
Ejemplo
En un disparador para la tabla TITLEAUTHOR:
mensaje .AKCOLN("'%COLUMN% es una columna de clave
alternativa'","", "", "", "AKEY1")
• genera el siguiente script de activación:
Macro .ALLCOL
Repite una declaración para cada columna en una tabla
Sintaxis
.ALLCOL("declaración","prefijo","sufijo","último_sufijo")
Argumento Descripción
Ejemplo
En un disparador para la tabla AUTOR, la siguiente macro:
.ALLCOL("%COLUMN% %COLTYPE%","",",",";")
.DEFINIR Macro
Define una variable e inicializa su valor
Sintaxis
.DEFINIR "variable" "valor"
Argumento Descripción
Ejemplo
En un disparador para la tabla AUTOR, la siguiente macro:
.DEFINE "DISPARADOR" "T_%TABLA%"
mensaje 'Error: Trigger(%TRIGGER%) de la tabla %TABLE%'
.DEFINIR Macro
Define una variable e inicializa su valor si el valor de prueba no es nulo
Sintaxis
.DEFINIR SI "valor_prueba" "variable" "valor"
Argumento Descripción
264 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Ejemplo
Por ejemplo, para definir una variable para un tipo de datos predeterminado:
%POR DEFECTO%
.DEFINEIF "%DEFAULT%" "_DEFLT"" "%DEFAULT%" Agregar
%COLUMN% %DATATYPE% %_DEFLT%
.ERROR Macro
Maneja errores.
Sintaxis
.ERROR (error, "errmsg")
Argumento Descripción
Ejemplo
.ERROR(-20001, "El padre no existe, no se puede insertar el hijo")
Macro .FOREACH_CHILD
Repite una declaración para cada referencia de padre a hijo en la tabla actual que cumple una
condición.
Sintaxis
.PARA CADA_NIÑO ("condición")
"declaración"
.ENDFOR
Argumento Descripción
Condición Selecciona
Macro .FOREACH_COLUMN
Repite una instrucción para cada columna de la tabla actual que cumple una condición.
Sintaxis
.FOREACH_COLUMN ("condición")
"declaración"
.ENDFOR
Argumento Descripción
266 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Condición Selecciona
Ejemplo
En un disparador para la tabla TITLE, la siguiente macro:
.FOREACH_COLUMN("NMFCOL")
-- "%COLUMN%" no se puede modificar
.ENDFOR
Sintaxis
.PARA CADA PADRE ("condición")
"declaración"
.ENDFOR
Argumento Descripción
Ejemplo
En un disparador para la tabla VENTA, la siguiente macro:
.FOREACH_PARENT("FKCANTCHG")
-- No se puede modificar el código principal de "%PARENT%" en el
secundario "%CHILD%"
.ENDFOR
Macro .INCOLN
Repite una instrucción para cada columna de clave principal, columna de clave externa,
columna de clave alternativa o columna no modificable de una tabla.
Sintaxis
.INCOLN("declaración","prefijo","sufijo","último_sufijo")
Argumento Descripción
Ejemplo
En un disparador para la tabla TITLE, la siguiente macro:
.INCOLN("%COLUMN% %COLTYPE%","",",",";")
268 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
CARÁCTER TITLE_ISBN(12),
PUB_ID char(12);
Macro .JOIN
Repite una declaración para el par de columnas en una combinación.
Sintaxis
.JOIN("declaración","prefijo","sufijo","último_sufijo")
Argumento Descripción
Ejemplo
En un disparador para la tabla TITLE, la siguiente macro:
.PARA CADA PADRE()
donde .JOIN("%PK%=%FK%", " y", "", ";")
mensaje 'Referencia %REFR% vincula la tabla %PARENT% a %CHILD%'
.ENDFOR
Nota:Para las columnas, la macro JOIN solo acepta las variables %PK%, %AK% y %FK%.
Macro .NMFCOL
Repite una instrucción para cada columna no modificable de una tabla. Las columnas no
modificables tienen seleccionado No se puede modificar como parámetro de verificación.
Sintaxis
.NMFCOL("declaración","prefijo","sufijo","último_sufijo")
Argumento Descripción
Ejemplo
En un disparador para la tabla TITLE, la siguiente macro:
.NMFCOL("%COLUMN% %COLTYPE%","",",",";")
Sintaxis
.CLIENTEXPRESSION(código de la regla de negocio)
Ejemplo
La regla de negocio ACTIVITY_DATE_CONTROL tiene la siguiente expresión de servidor:
actividad.fecha de inicio < actividad.fecha de finalización
270 PowerDesigner
CAPÍTULO 4: Archivos de definición DBMS
Macro .SQLXML
Representa una consulta SQL/XML en la definición de un disparador, un procedimiento o
una función.
Utilice una de las siguientes herramientas:
• La herramienta Insertar macro SQL/XML abre un cuadro de diálogo de selección en el
que elige un elemento global de un modelo XML. El modelo XML debe estar abierto en
el espacio de trabajo, asignado a un PDM y tener adjunto el archivo de extensión
SQL/XML. Haga clic en Aceptar en el cuadro de diálogo y la macro SQLXML se muestra
en el código de definición, con el código del modelo XML (opcional) y el código del
elemento global.
• La herramienta Macros, donde selecciona .SQLXML( ) en la lista. La macro SQLXML
se muestra vacía en el código de definición. Debes llenar los paréntesis con el código de
un modelo XML (opcional), seguido de :: y el código de un elemento global. El modelo
XML, del que elige un elemento global, debe estar abierto en el espacio de trabajo,
asignado a un PDM y tener adjunto el archivo de extensión SQL/XML.
Después de la generación, la macro SQLXML se reemplaza por la consulta SQL/XML del
elemento global.
Sintaxis
.SQLXML(código de un modelo XML::código de un elemento global)
272 PowerDesigner
CAPÍTULO 5 Customización de Generación
con GTL
Las plantillas GTL se usan comúnmente para generar archivos. Si su plantilla se va a utilizar
en la generación, debe estar referenciada en un archivo generado.
4. Vuelva a hacer clic con el botón derecho en la metaclase y seleccione Nuevo > Archivo
generado (consulte Archivos generados (perfil) en la página 85).
5. Ingrese myFile como el nombre del archivo generado e ingrese el siguiente código en el
cuadro de texto para llamar a su plantilla:
%Hola Mundo%
6. Haga clic en Aceptar para guardar los cambios en el archivo de recursos y volver a su
modelo.
7. Cree una instancia de la metaclase en la que definió la plantilla y el archivo generado,
abra su hoja de propiedades y haga clic en la pestaña Vista previa.
8. Seleccione la subpestaña myFile para obtener una vista previa de lo que se generaría para
este objeto.
Las propiedades del objeto se referencian como variables y se encierran entre signos de
porcentaje: %variable%. Los nombres de variables distinguen entre mayúsculas y
minúsculas y los nombres de propiedades se definen, por convención, en CamelCase.
Las propiedades se extraen como los siguientes tipos:
• Cadena: devuelve texto.
• Booleano: devuelve verdadero o falso.
• Objeto: devuelve el ID del objeto o nulo.
Ejemplo
274 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
%Nombre% contiene:
.foreach_item(Widgets)
\n\t%Nombre% (%Color% %Forma%)
.siguiente
Resultado:
MiObjeto contiene:
Widget1 (Triángulo rojo)
Widget2 (cuadrado amarillo)
Widget3 (círculo verde)
Esta (booleano) Devuelve True si la colección está vacía o false si contiene uno o más
vacio miembros.
Ejemplo
Formateando su salida
276 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Opción Descripción
Ejemplos
%12.3QMFU:Nombre%
Resultado:
"Lmn"
278 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
El texto y las líneas nuevas en el encabezado y el final de cada bucle .foreach_item solo se imprimen
si la colección no está vacía. Cuando esta plantilla se aplica a una clase con atributos pero sin
operaciones, el texto // Operaciones y las nuevas líneas especificadas antes y después de la lista de
operaciones no se imprimirán:
código de clase%" {
.foreach_item(Atributos, // Atributos\n,\n\n)
%Tipo de datos% %Código%
.if (%ValorInicial%)
= %ValorInicial%
.terminara si
.siguiente(\n)
.foreach_item(Operaciones, // Operaciones\n,\n\n)
%ReturnType% %Code%(...)
.siguiente(\n)
<Fuente>
}
Resultado:
<Fuente>
}
Nota:Para imprimir un espacio en blanco entre la llave y la cadena // Atributos, debe encerrar la
cadena principal entre comillas dobles:
.foreach_item(Atributos," // Atributos\n",\n)
Bloques Condicionales
Coloque el texto que contiene una variable entre corchetes para que aparezca solo si la
variable se resuelve en un valor no nulo.
También puede usar un formulario similar a las expresiones ternarias de C y Java para
imprimir una cadena si la variable es verdadera o no es nula:
[variable ? si no es nulo]
Opcionalmente, puede incluir una cadena para imprimir si la variable se evalúa como falsa,
nula o la cadena vacía:
[variable ? si no es nulo: si es nulo]
Ejemplos
Atributo A1 =0;
Atributo A2 =100;
Atributo A3;
Atributo A4 =10;
Puede insertar información como su nombre de usuario y la fecha actual con variables globales.
Nombre Descripción
%Modo de vista (booleano) Devuelve verdadero en la pestaña Vista previa, falso cuando
previa% se genera en un archivo.
%Fecha actual% (cadena) Devuelve la fecha y la hora del sistema actual formateadas
usando la configuración local.
Ejemplo
280 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Operadores GTL
GTL admite operadores aritméticos y lógicos estándar junto con algunos operadores de
plantilla avanzados.
Se admiten los siguientes operadores aritméticos y lógicos estándar, donde x e y pueden ser
números o plantillas que se resuelven en números:
Operador Descripción
= Operador de asignación.
%*plantilla [(P1,P2...)]%
Para obtener información sobre los parámetros de la plantilla, consultePasar
parámetros a una plantillaen la página 260.
En el siguiente ejemplo, una variable local se devuelve normalmente y en forma
desreferenciada:
.set_value(C, Código)
%C%
%*C%
Resultado:
Código
%Código%
.set_value(C, %%MiAtributo%%)
%C%
%!C%
Resultado:
%MiAtributo%
Rojo
282 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
%!!t%
Operador Descripción
?
Operador de existencia: comprueba si una plantilla, una variable local o una
propiedad está presente y devuelve falso si no lo está.
Por ejemplo:
.set_value (miVariable, 20, nuevo)
%miVariable?%
.unset (miVariable)
%miVariable?%
Resultado:
verdadero
Falso
Alcance de la traducción
El alcance inicial de una plantilla es siempre la metaclase en la que se define. Todos los
atributos, colecciones y plantillas estándar y extendidos definidos en la metaclase del objeto
activo y sus padres son visibles, pero solo un objeto está activo en un momento dado.
Ejemplos
La siguiente plantilla se aplica a un paquete P1, que contiene una clase C1, que contiene las
operaciones O1 y O2, cada una de las cuales contiene los parámetros P1 y P2. El alcance cambia, lo
que afecta el valor de la variable %Name%, a medida que se recorre cada colección. La palabra
clave Outer se utiliza para volver temporalmente a los ámbitos anteriores:
%Nombre%
.foreach_item(Clases)
\n\t*%Nombre% en %Externo.Nombre%
.foreach_item(Operaciones)
\n\t*%Nombre% en %Externo.Nombre% en %Externo.Nombre.Externo%
.foreach_item(Parámetros)
\n\t\t*%Name% en %Outer.Name% en %Outer.Outer.Name% en
%exterior.exterior.exterior.nombre%
.próximo
.próximo
.próximo
Resultado:
P1
*C1 en P1
*O1 en C1 en P1
*P1 en O1 en C1 en P1
*P2 en O1 en C1 en P1
*O2 en C1 en P1
*P1 en O2 en C1 en P1
*P2 en O2 en C1 en P1
El alcance externo se restaura cuando deja un bloque .foreach_item. Los ámbitos anidados forman
una jerarquía que se puede ver como un árbol, siendo el ámbito de nivel superior la raíz. Use Parent
en lugar de Outer para subir por encima del alcance del objeto original. Por ejemplo, no se generará
nada si se aplica la siguiente plantilla al parámetro P1:
284 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Resultado:
P1 en O1 en C1
Traducción de atajos
Los accesos directos se desreferencian durante la traducción, de modo que el alcance del
objeto de destino reemplaza el alcance del acceso directo. Esto es diferente de VB Script,
donde la traducción de atajos recupera el atajo en sí. Puede utilizar la variable %IsShortcut%
para comprobar si un objeto es un acceso directo y la palabra clave Shortcut para acceder a
las propiedades del propio acceso directo.
Plantilla
En este ejemplo, la plantilla se aplica a un paquete OOM P1 que contiene dos clases y dos accesos
directos a clases en P2:
.foreach_item(Clases)
\n*Clase %Código% [%IsShortcut% ? Del paquete %Package.Name% : Local
Objeto]
.próximo
Resultado:
Nota:Si su modelo contiene accesos directos a objetos en otro modelo que no está abierto,
un cuadro de diálogo lo invita a abrir el modelo de destino. Puede usar la macro
.set_interactive_mode para cambiar este comportamiento (consulte Macro
.set_interactive_mode en la página 278).
Secuencias de escape
GTL admite varias secuencias de escape para simplificar el diseño de sus plantillas y
archivos generados, y para hacer accesibles los caracteres reservados.
\\ barra invertida
Secuencia de Descripción
escape
.. al principio de la línea Carácter de punto (para generar una macro).
%% Carácter de porcentaje.
Plantillas de llamadas
Puede llamar a una plantilla desde un archivo generado o desde otra plantilla ingresando su
nombre entre signos de porcentaje. Las propiedades de objeto, las colecciones y las variables
locales y globales se llaman de la misma manera. En el momento de la generación, una
llamada de plantilla se reemplaza por el contenido de la plantilla, que luego se resuelve en
su valor textual final.
Ejemplos:
.bool (%ContainerClassifier%!=null)
286 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
La plantilla %QualifiedCode% llama a la plantilla %isInner% para probar si la clase es una clase
interna:
.if (%isInner%)
%ContainerClassifier.QualifiedCode%::%Code%
.demás
%Código%
.terminara si
Resultado:
C2::C1
La plantilla %QualifiedCode% se aplica a la clase C1, que es una clase interna de C2.
Herencia y polimorfismo
Las plantillas se definen en una metaclase particular en un archivo o extensión de definición
de lenguaje y son heredadas y están disponibles para los hijos de la metaclase. Por ejemplo,
una plantilla definida en la metaclase Classifier está disponible para plantillas o archivos
generados definidos en las metaclases Class e Interface.
GTL admite los siguientes conceptos OO como parte de la herencia:
• Polimorfismo: la elección de la plantilla a evaluar se realiza en el momento de la
traducción. Una plantilla definida en un clasificador puede acceder a plantillas
definidas en sus hijos (clase, interfaz). En el siguiente ejemplo, el contenido de
%definition% depende de si se está procesando una clase o una interfaz:
• Anulación de plantilla: una plantilla definida en una metaclase dada puede ser
anulada por una plantilla del mismo nombre definida en una clase secundaria. En el
siguiente ejemplo, la plantilla definida en la metaclase Classifier se reemplaza por la
definida en la metaclase Class:
Puede ver el elemento principal anulado haciendo clic con el botón derecho en la plantilla
secundaria y seleccionando Ir a superdefinición. Puede especificar el uso de la plantilla
principal anteponiendo la llamada de plantilla con el operador calificador ::. Por ejemplo:
%Clasificador::isAbstract%.
• Sobrecarga de plantillas: puede sobrecargar las definiciones de su plantilla y probar
diferentes condiciones. Las plantillas también se pueden definir según criterios (ver
Criterios (Perfil) en la página 40) o estereotipos (ver Estereotipos (Perfil) en la página
37), y las condiciones correspondientes se combinan. En el momento de la
traducción, se evalúa cada condición y se aplica la plantilla adecuada (o, en caso de
que no coincida, la plantilla predeterminada). Por ejemplo:
288 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
%t% o miLang/Clase/t
%myLang::t%
%Clasificador::t% o myLang/Clasificador/t
%myLang::Clasificador::t%
%t% o miExtensión/Clase/t
%miExtensión::t%
%Clasificador::t% o miExtensión/Clasificador/t
%miExtensión::Clasificador::t%
%miIdioma::t% o miLang/Clase/t
%miLang::Clase::t%
%myLang::Clasificador::t% myLang/Clasificador/t
%myTemplate(bien,soleado,24,12)%
llama a %myTemplate%:
El clima hoy es %@1% y %@2%, con una máxima de %@3% y una mínima
de %@4%.
Resultado:
290 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Ejemplos
.foreach_item(Atributos)
.if (%Visibilidad% == %@1%)
%Tipo de datos% %Código%
.terminara si
.siguiente(\n)
La plantilla %AttributeList% llama a %Attributes% tres veces, pasando un valor de visibilidad
diferente cada vez para recorrer solo los atributos que tienen esta visibilidad:
// Protegido
%atributos(#)%
// Privado
%atributos(-)%
Resultado:
// Forma int
protegida
// Costo
int privado
precio int
Plantillas recursivas
Una plantilla puede llamarse a sí misma, pero dicha plantilla debe contener algún tipo de
criterio o cambio de alcance para evitar un bucle infinito.
Ejemplo
La clase C1 es interna a la clase C2, que a su vez es interna a C3. La plantilla %topContainerCode
% prueba si el clasificador actual es interno a otro y, de ser así, se llama a sí mismo en el clasificador
de contenedores para realizar la misma prueba hasta que llega a un clasificador que no es interno,
momento en el que imprime el código de la parte superior. envase:
.if (%isInner%)
%ContainerClassifier.topContainerCode%
.demás
%Código%
.terminara si
Resultado:
C3
PdCommon.BaseObject
• isSelected (booleano): verdadero si el objeto es parte de la
selección en el cuadro de diálogo de generación
• isShorctut (booleano): verdadero si se accedió al objeto
eliminando la referencia de un acceso directo
PdCommon.BaseModel
• GenOptions (struct): da acceso a las opciones de generación
definidas por el usuario
PdOOM.*
• ActualComment (cadena): comentario limpio (con /**, /*, */ y //
eliminados)
PdOOM.Asociación
• RoleAMinMultiplicity (cadena)
• RoleAMaxMultiplicity (cadena)
• RoleBMinMultiplicity (cadena)
• RoleBMaxMultiplicity (cadena)
292 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
PdOOM.Atributo
• MinMultiplicity (cadena)
• MaxMultiplicity (cadena)
• Anulado (booleano)
• Prefijo de modificador de tipo de datos (cadena)
• DataTypeModifierSuffix (cadena)
• @<etiqueta> [específico de Java] (cadena) -
Javadoc@<etiqueta> atributo extendido con formato adicional
PdOOM.Clase
• MinCardinalidad (cadena)
• MaxCardinalidad (cadena)
• SimpleTypeAttribute [específico de XML]
• @<etiqueta> [específico de Java] (cadena) -
Javadoc@<etiqueta> atributo extendido con formato adicional
PdOOM.Interfaz
• @<etiqueta> [específico de Java] (cadena) -
Javadoc@<etiqueta> atributo extendido con formato adicional
PdOOM.Operación
• DeclaringInterface (objeto)
• GetSetAttribute (objeto)
• Anulado (booleano)
• ReturnTypeModifierPrefix (cadena)
• ReturnTypeModifierSuffix (cadena)
• @<tag> [específico de Java] (cadena) - Javadoc@<tag>
atributo extendido con formato adicional (especialmente para
@throws, @exception, @params)
PdOOM.Parámetro
• Prefijo de modificador de tipo de datos (cadena)
• DataTypeModifierSuffix (cadena)
GTL admite macros para expresar la lógica de la plantilla y hacer un bucle en las colecciones
de objetos. Las palabras clave de macro tienen el prefijo . (punto), que debe ser el primer
carácter que no esté en blanco en la línea, y debe respetar el uso de saltos de línea en la
sintaxis de la macro.
Nota:Los parámetros de macro se pueden delimitar con comillas dobles, y esto es necesario
si el valor del parámetro incluye comas, llaves, espacios en blanco al principio o al final. La
secuencia de escape para comillas dobles dentro de un valor de parámetro es \". Cuando los
parámetros de macro especifican que un parámetro es de tipo plantilla simple, esto significa
que puede contener texto, variables y bloques condicionales, pero no macros. Parámetros de
tipo complejo la plantilla también puede incluir macros.
294 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Macro .abort_command
Esta macro detiene un comando de generación.
Ejemplo
.si %_JAVAC%
.execute_command (%_JAVAC%,%Nombre de archivo%)
.demás
.abortar_comando
.terminara si
.bloque macro
Esta macro envuelve un bloque de salida con un encabezado y/o un pie de página, si la salida
no está vacía.
.bloquear [(cabeza)]
entrada de bloque
.endblock[(cola)]
Ejemplo Resulta
do
.bloque (<b>) <b>¡Mi comentario está en >
%Comentario negrita!<b
.bloque
% final (</b>) Nota:El <b>las etiquetas no se generarían si no
se ingresaron comentarios para un objeto en particular.
Macro .bool
Esta macro devuelve verdadero o falso según el valor de la condición especificada.
.bool (condición)
Ejemplo Resultado
.romper macro
Esta macro se puede usar para salir de los bucles .foreach.
Ejemplo
296 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
.create_path (camino)
Ejemplo Resultado
Parámetro Descripción
298 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
.reemplazar
(cadena,cadena nueva)entrada
de bloque.endreplace
Ejemplos Resulta
do
.replace(Obtener,Estab EstablecerNombreDeC
ObtenerNombreDeClie
lecer) liente
.endreplace
nte
Ejemplo
Macro .execute_command
Esta macro lanza ejecutables como parte de un comando de generación. Si hay una falla por
cualquier motivo (ejecutable no encontrado o salida enviada a stderr), entonces se detiene la
ejecución del comando.
.Ejecutar comando (cmd[,argumentos[,modo]])
300 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Parámetro Descripción
Macro .execute_vbscript
Esta macro se usa para ejecutar un script de VB especificado en un archivo separado como
parte de un comando de generación.
.ejecutar_vbscript (archivo vbs[,script-parámetro])
Ejemplo
cabeza [opcional] Especifica el texto que se generará antes de la salida, a menos que la
colección esté vacía. Teclee el texto
cola [opcional] Especifica el texto que se generará después de la salida, a menos que la
colección esté vacía.
Teclee el texto
filtrar [opcional] Especifica un filtro para aplicar a la colección antes de la iteración.
Tipo: Condición simple
302 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
separador [opcional] Especifica el texto que se generará entre cada instancia deproducción.
Teclee el texto
Nota:Si los valores de los parámetros contienen comas, llaves o espacios en blanco al
principio o al final, se deben delimitar con comillas dobles. Para escapar de las comillas
dobles dentro de un valor de parámetro, utilice \".
Ejemplos
lista sencilla:
.foreach_item(Atributos)
*%Código% (%TipoDeDatos%)[ = %ValorInicial%];
.siguiente(\n)
Resultado:
.foreach_item(Atributos,Atributos:\n,\n\nFin de la lista de
atributos)
*%Código% (%TipoDeDatos%)[ = %ValorInicial%];
.siguiente(\n)
Resultado:
Atributos:
*disponible (booleano) = verdadero;
*costoreal (int);
*coste base (int);
*color (Cadena);
*altura (int) = 10;
*ancho (int) = 5;
*nombre (int);
Con filtro:
.foreach_item(Atributos,,,%.1:Código%==a)
*%Código% (%TipoDeDatos%)[ = %ValorInicial%];
.siguiente(\n)
Resultado:
Ejemplos
*ancho (int) = 5;
*nombre (int);
*altura (int) = 10;
*color (Cadena);
*coste base (int);
*disponible (booleano) = verdadero;
*costoreal (int);
Macro .foreach_line
Esta macro itera sobre las líneas del bloque de texto de varias líneas utilizando la variable
local especial %CurrentLine%.
.foreach_line (aporte[,cabeza[,cola]])producción
.próximo [(separador)]
304 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
separador [opcional] Especifica el texto que se generará entre cada línea deproducción.
Teclee el texto
Ejemplo
.foreach_line(%Comentario%,"/**\n","\n*/")
* %LíneaActual%
.siguiente("\n")
Resultado:
/**
* Este es mi comentario.* Es
un comentario de documentación de
estilo Java.
* Abarca varias líneas.*/
Macro .foreach_part
Esta macro itera sobre las partes de una cadena dividida por un delimitador utilizando la
variable local especial %CurrentPart%.
.foreach_part (aporte[,"delimitador"
[,cabeza[,cola]]])producción
.próximo[(separador)]
delimitador Especifica la subcadena que divide la entrada en partes. Puede especificar varios
caracteres, incluidos rangos. Por ejemplo [AZ] especifica que cualquier letra
mayúscula actúa como delimitador.
De forma predeterminada, el delimitador se establece en ' -_,\t' (espacio, guión,
guión bajo, coma o tabulación).
Nota:El delimitador debe estar entre comillas simples si contiene un espacio.
Teclee el texto
Parámetro Descripción
separador [opcional] Especifica el texto que se generará entre cada parte deproducción.
Teclee el texto
Por ejemplo:
Ejemplos
Mi clase
306 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Resultado:
tbl_mi_clase
mi clase
.si Macro
Esta macro se utiliza para la generación
condicional.
.si no]condición
producción
[(.elsif[no]condición producción)*]
[.demásproducción
] .terminara si
[(cola)]
Están disponibles los siguientes parámetros:
Parámetro Descripción
condición Especifica la condición a evaluar, en la forma:
variable[operador comparación]
Dóndecomparacióntal vez :
• Texto o una plantilla simple
• verdadero o falso
• nulo o no nulo
Si no se especifica ningún operador ni condición, la condición se evalúa como
verdadera a menos que el valor de la variable sea falso, nulo o la cadena vacía.
Sivariableycomparaciónno son enteros, los operadores realizan una
comparación de cadenas que tiene en cuenta los números incrustados. Por
ejemplo:
Clase_10 > Clase_2
Ejemplos
Ejemplos
308 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
.macro de registro
Esta macro registra un mensaje en la pestaña Generación de la ventana Salida como parte de
un comando de generación.
.registromensaje
Ejemplo
.mayúsculas
entrada de bloque
.enduppercase
Ejemplo Resultado
Aplicado a
.minúsculas
%Comentario%
.endlowercase Este es mi comentario.
Produce:
este es mi comentario
.objeto (alcance[,filtrar])
Ejemplos
C73C03B7-CD73-466A-B323-0B90B67E82FC
C73C03B7-CD73-466A-B323-0B90B67E82FC;77E3F55C-
CF24-440F-84E7-5AA7B3399C00;F369CD8C-0C16-4896-9C2D-
0CD2F80D6980;0
0ADD959-0705-4061-BF77-BB1914EDC018;
Macro .set_interactive_mode
Esta macro se utiliza para definir si la ejecución de GTL debe interactuar con el usuario o
no.
.set_modo_interactivo(modo)
310 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Parámetro Descripción
nombre Especifica el nombre del objeto o variable, al que puede hacer referencia en
cualquier otro lugar de la plantilla en forma de %name%.
Parámetro Descripción
Ejemplos:
Ejemplos
.set_object(Atributo1, Atributos.Primero)
.set_value(FirstAttributeCode, %Attributes.First.Code%)
%FirstAttributeCode% (OID: %Attribute1%)
Resultado:
a1 (OID: 63442F85-48DF-42C8-92C1-0591F5D34525)
.set_value(this.key, %Code%-%ObjectID%)
Resultado:
C1-40D8F396-EE29-4B7B-8C78-E5A0C5A23325
312 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
.set_value(i, 1, nuevo)
%¿i?%
.unset(yo)
%¿i?%
Resultado:
verdadero
Falso
La primera llamada a %i?% da como resultado verdadero ya que la variable i está definida, y la
segunda da como resultado falso, porque no se ha configurado.
cola [opcional] Especifica el texto que se generará después de la salida, a menos que
la colección esté vacía. Teclee el texto
Ejemplo
.único
importar java.util.*;
importar java.lang.String;
%importaciones%
.endunique
Macro .vbscript
Esta macro se usa para incrustar código VBScript dentro de una plantilla como parte de un
comando de generación. El resultado del script está disponible como matriz ScriptResult.
.vbscript [(script-param-list)]entrada de bloque
.endvbscript [(cola)]
Parámetro Descripción
Ejemplos
Este sencillo script acepta las dos palabras hola y mundo como parámetros de entrada y las devuelve
como una sola cadena con un espacio entre ellas:
.vbscript(hola, mundo)
ScriptResult = ScriptInputArray(0) + " " + ScriptInputArray(1)
.endvbscript
Resultado:
Hola Mundo
314 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Ejemplos
Este script acepta un código de atributo, lo compara con todos los códigos de atributo del modelo
actual y le agrega un 1 si coincide con cualquier otro código:
.set_value(_código,%@1%,nuevo)
.vbscript(%_código%)
Código de atributo atenuado
códigoatributo = ScriptInputArray(0)
Función atributoEncontrado(códigoatributo)
Dim encontrado, atributo
encontrado = Falso
Para cada atributo en ActiveSelection.Item(0).Attributes
Si código.atributo = códigoatributo Entonces
encontrado = Verdadero
Salir por
Terminara si
Próximo
ScriptResult = códigoatributo
.endvbscript
Nota:Se accede al objeto activo del ámbito de traducción actual como ActiveSelection.Item(0)
(verManipulación de modelos, colecciones y objetos (secuencias de comandos) en la página
312).
Los mensajes de error detienen la generación del archivo en el que se han encontrado errores,
estos errores se muestran en la pestaña Vista previa de la hoja de propiedades del objeto
correspondiente.
Los mensajes de error tienen el siguiente formato:
target::catg-path full-template-name(line-number)
active-object-metaclass active-object-code): tipo de
error mensaje de error
Puede encontrar los siguientes errores de sintaxis:
Mensaje de error de sintaxis Descripción y corrección
316 PowerDesigner
CAPÍTULO 5: Personalización de Generación con GTL
Los errores de traducción son errores de evaluación de una variable al evaluar una plantilla:
Mensaje de error de traducción Descripción y corrección
318 PowerDesigner
CAPÍTULO 6 Traducir informes con Report
Archivos de lenguaje
Cuando crea un informe, selecciona un idioma de informe, que contiene todo el texto de
marco utilizado en la generación del informe para el idioma seleccionado, como los títulos
de las secciones del informe, los tipos de objetos de modelo y sus propiedades.
PowerDesigner se envía con soporte para inglés (predeterminado), francés y chino
simplificado y tradicional. Puede editar estos archivos o utilizarlos como base para crear sus
propios archivos para traducirlos a otros idiomas.
Los archivos de idioma del informe tienen una extensión .xrl y se almacenan en
install_dir/Resource
Archivos/Idiomas del informe. Para ver la lista de idiomas
del informe, seleccione Herramientas > Recursos > Idiomas del
informe. Para obtener información sobre las herramientas
disponibles en las listas de archivos de recursos, consulte
el Capítulo 1, Archivos de recursos de PowerDesigner en la
página 1.
En el siguiente ejemplo, la tarjeta de entidad, la descripción de la entidad y la anotación de
la entidad se muestran en inglés y francés tal como aparecerán en el panel Elementos del
informe:
Los archivos de idioma del informe utilizan plantillas GTL (consulte el Capítulo 5,
Personalización de la generación con GTL en la página 245) para factorizar el trabajo de
traducción. Las plantillas de elementos de informe interactúan con sus traducciones de los
nombres de los objetos modelo y las variables lingüísticas (que manejan peculiaridades
sintácticas como formas plurales y artículos definidos) para generar automáticamente todos
los elementos textuales en un informe y reducir drásticamente (alrededor del 60%) el número
de cadenas que deben traducirse para generar informes en un nuevo idioma.
Por ejemplo, el título del informe francés Liste des données de l'entité MyEntity se genera
automáticamente de la siguiente manera:
• la lista - plantilla de elemento de informe de colecciones de objetos (consulte
Perfil/Categoría de plantillas de elementos de informe en la página 303) se traduce
como:
Lista de %@Value% %ParentMetaClass.OFTHECLSSNAME% %%PARENT%%
320 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
Puede revisar y editar los archivos de idioma del informe en el Editor de recursos.
1.Seleccione Herramientas > Recursos > Idiomas del informe para abrir la Lista de idiomas
del informe, que enumera todos los archivos .xrl disponibles:
Para obtener más información sobre las herramientas disponibles en la Lista de idiomas
de informes, consulte el Capítulo 1, Archivos de recursos de PowerDesigner en la página
1.
Puede traducir informes y otros elementos de texto utilizados para generar informes de
PowerDesigner a un nuevo idioma.
1. Seleccione Herramientas > Recursos > Idiomas de informes para abrir la Lista de idiomas
de informes, que muestra todos los archivos de recursos de idiomas de informes
disponibles.
2. Haga clic en la herramienta Nuevo e ingrese el nombre que desea que aparezca en la Lista
de idiomas del informe.
3. [opcional] Seleccione un idioma de informe en la lista Copiar de.
4. Haga clic en Aceptar para abrir el nuevo archivo en el Editor de idioma del informe.
5. Abra la categoría Asignación de valores y traduzca cada uno de los valores de palabra
clave (consulte Categoría Asignación de valores en la página 291).
6. Abra la categoría Perfil > Variables lingüísticas para crear las reglas gramaticales
necesarias para la correcta evaluación de las plantillas de elementos de informe (consulte
Categoría Perfil/Variables lingüísticas en la página 300).
7. Abra la categoría Perfil > Plantillas de elementos de informe y traduzca las distintas
plantillas (consulte Categoría Plantillas de elementos de perfil/informe en la página 303).
A medida que traduce, puede descubrir variables lingüísticas adicionales que debe crear.
8. Haga clic en la pestaña Todas las clases para ver una lista que se puede ordenar de todas
las metaclases disponibles en el metamodelo de PowerDesigner (consulte la pestaña
Todas las clases en la página 299). Traduce cada uno de los nombres de las metaclases.
9. Haga clic en la pestaña Todos los atributos y colecciones para ver una lista ordenable de
todos los atributos y colecciones disponibles en el metamodelo de PowerDesigner
(consulte la pestaña Todos los atributos y colecciones en la página 300). Traduce cada
uno de los nombres de atributos y colecciones.
10Haga clic en la pestaña Todos los títulos de informes y revise los títulos de informes
generados automáticamente (consulte Pestaña Todos los títulos de informes en la página
297). Esta pestaña puede tardar varios segundos en mostrarse.
11Haga clic en la herramienta Guardar y haga clic en Aceptar para cerrar el Editor de idioma
del informe. El archivo de idioma del informe ahora está listo para adjuntarse a un
informe.
Propiedades del archivo de idioma del informe
Todos los archivos de idioma del informe se pueden abrir en el Editor de recursos y tienen
la misma estructura de categoría básica.
322 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
Formularios Contiene una tabla de mapeo estándar para palabras clave de propiedades de
objetos en tarjetas y cheques, que está disponible para todos los modelos.
Debe proporcionar traducciones para los valores de las palabras clave en la
columna Valor.
Ejemplo: Archivos Embebidos.
Liza Contiene una tabla de mapeo estándar para palabras clave de propiedades de
objetos en listas, que está disponible para todos los modelos. Debe
proporcionar traducciones para los valores de las palabras clave en la
columna Valor.
Ejemplo: Verdadero.
Puede crear nuevas tablas de mapeo que contengan valores de palabras clave específicos
para tipos particulares de objetos modelo.
Ejemplo: crear una tabla de asignación y adjuntarla a un objeto de modelo
específico
Puede anular los valores en las tablas de asignación estándar para un objeto de modelo
específico creando una nueva tabla de asignación y asociándola al objeto.
324 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
VERDADERO Desplegado
FALSO No mostrado
4. Haga clic con el botón derecho en la categoría Listas, seleccione Nuevo > Categoría,
nombre la categoría Modelo de datos físicos y haga clic en Aplicar.
5. Para completar la recreación del árbol de Atributos de objetos de PDM, haga clic con el
botón derecho en el nuevo Físico
categoría Modelo de datos, seleccione Nuevo > Elemento de mapa, asigne un nombre a
la categoría Columna y haga clic en Aplicar.
6. Haga clic en la columna Nombre para crear un valor e ingrese Mostrado, que es el nombre
del atributo (propiedad) de la columna PDM.
7. Haga clic en la columna Valor e ingrese DisplayMap para especificar la tabla de mapeo
que se usará para ese atributo.
8. Haga clic en Aplicar para guardar sus cambios. Cuando genera un informe, la propiedad
Mostrado se mostrará usando los valores especificados:
326 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
ob- común Contiene los elementos de texto disponibles para todos los modelos. Debe
proyectos proporcionar traducciones de estos elementos aquí.
Ejemplo: HTMLNext proporciona el texto para el botón Siguiente en un
informe HTML.
Asistente para Contiene los títulos de los informes generados con el Asistente para informes.
informes Debe proporcionar traducciones de estos elementos aquí.
Ejemplo: El título de descripción breve proporciona el texto para una sección
de descripción breve cuando genera un informe con el Asistente de informes.
Subcategoría Descripción
[Modelos] Contiene los títulos de los informes y otros elementos de texto disponibles
para cada modelo. Estos se generan automáticamente, pero puede anular los
valores predeterminados.
Ejemplo: la lista DataTransformationTasks proporciona el texto para la lista
de tareas de transformación de datos de un proceso de transformación
determinado en el modelo de movimiento de datos.
De manera predeterminada (con la excepción de las subcategorías Objetos comunes y
Asistente de informes), estas traducciones se generan automáticamente a partir de las
plantillas en la categoría Perfil (consulte Categoría de plantillas de elementos de
perfil/informe en la página 303). Puede anular los valores generados automáticamente
ingresando su propio texto en el campo Nombre localizado, que presionará el botón Definido
por el usuario para indicar que el valor ya no se genera.
Nota:La pestaña Todos los títulos de informes (ver Pestaña Todos los títulos de informes en
la página 297) muestra las mismas traducciones que se muestran en esta categoría en un
formulario de lista simple y ordenable. Puede que le resulte más conveniente verificar y,
cuando corresponda, anular las traducciones generadas en esta pestaña.
328 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
Para cada informe enumerado en la columna Nombre, puede revisar o anular una traducción
en el
Nombre localizadocolumna. Puede ordenar la lista para agrupar objetos con nombres
similares y traducir elementos idénticos seleccionando varias líneas.
Categoría de atributos de objeto
La categoría Atributos de objetos contiene todas las metaclases, colecciones y atributos
disponibles en el metamodelo de PowerDesigner, organizados en forma de árbol:
330 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
Para cada metaclase enumerada en la columna Nombre, debe ingresar una traducción en la
columna Nombre localizado. Puede ordenar la lista para agrupar objetos con nombres
similares y traducir elementos idénticos seleccionando varias líneas.
Pestaña Todos los atributos y colecciones
Todos los atributos y colecciones enumera todas las colecciones y atributos disponibles en
la categoría Atributos de objetos en la pestaña General, pero la estructura plana hace que sea
más conveniente trabajar con ellos.
332 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
Para cada atributo o colección enumerados en la columna Nombre, debe ingresar una
traducción en la columna Nombre localizado. Puede ordenar la lista para agrupar objetos con
nombres similares y traducir elementos idénticos seleccionando varias líneas.
Especificar las reglas gramaticales apropiadas para su idioma e insertarlas en las plantillas
de elementos de su informe mejorará drásticamente la calidad de la generación automática
de los títulos de su informe. Puede crear tantas variables como requiera su idioma.
Cada variable lingüística y el resultado de su evaluación se muestran para cada metaclase en
la categoría Atributos de objeto (ver Categoría de atributos de objeto en la página 312).
Los siguientes son ejemplos de reglas gramaticales especificadas como variables lingüísticas
para completar plantillas de elementos de informe en el archivo de recursos de idioma del
informe en francés:
• GÉNERO: identifica como femenino un nombre de metaclase %Valor%, si termina con
"e" y como masculino en todos los demás casos:
.si (%.-1:@Valor% == e)
F
.demás
METRO
.terminara si
334 PowerDesigner
CAPÍTULO 6: Traducción de informes con archivos de idioma de informes
.if (%.-3:@Valor% == eau) o (%.-2:@Valor% == au) %@Valor%x
.demás
%@Valores
.terminara si
Debe proporcionar traducciones para cada plantilla ingresando su propio texto. Las variables
(como %texto%) no deben traducirse.
Por ejemplo, la sintaxis de la plantilla para la lista de subobjetos contenidos dentro de una
colección que pertenece a un objeto es la siguiente:
Lista de %@Value% de %ParentMetaClass.@Value% %%PARENT%%
Cuando se evalúa esta plantilla, la variable %@Value% se resuelve en el valor del nombre
localizado del objeto, %ParentMetaClass.@Value% se resuelve en el valor del nombre
localizado del padre del objeto y %% PARENT%% se resuelve en el nombre del padre del
objeto.
En este ejemplo, traduce esta plantilla de la siguiente manera:
• Traduce los elementos no variables de la plantilla. Por ejemplo:
• Cree una variable lingüística denominada OFTHECLSSNAME para especificar la regla
gramatical utilizada en la plantilla (consulte Perfil/Categoría de variables lingüísticas en
la página 300).
Esta plantilla se reutilizará para crear títulos de informes para todas las listas de subobjetos
contenidos dentro de una colección perteneciente a un objeto.
Nota:No puede crear ni eliminar plantillas.
336 PowerDesigner
CAPÍTULO 7 Scripting PowerDesigner
Cuando se trabaja con modelos grandes o múltiples, puede ser tedioso realizar tareas
repetitivas, como modificar objetos usando reglas globales, importar o generar nuevos
formatos o verificar modelos. Tales operaciones se pueden automatizar a través de scripts.
Puede acceder a cualquier objeto de PowerDesigner y modificarlo mediante Java, VBScript,
C# o muchos otros lenguajes. En este capítulo, nos enfocamos principalmente en escribir
VBScript para ejecutar en el cuadro de diálogo Editar/Ejecutar script de PowerDesigner,
pero también puede llamar complementos desde los menús de PowerDesigner (consulte
Iniciar scripts y complementos desde los menús en la página 338) o crear un script para la
aplicación PowerDesigner. a través de la automatización OLE (consulte Automatización
OLE y complementos en la página 332).
El siguiente script ilustra la sintaxis básica de VBScript aplicada a la manipulación de
modelos y objetos de PowerDesigner, que incluye:
• Declaración de variable local
• Asignación de valor a una variable local (con el caso específico de objeto)
• Operador de condición: If Then / Else / End If
• Iteración en una lista: Para Cada / Siguiente
• Definición y convocatoria de un procedimiento: Sub
• Definición y llamada de una función: Función
• Manejo de errores usando sentencias On Error
338 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Los ejemplos de este capítulo pretenden presentar los conceptos y técnicas básicos para
controlar PowerDesigner mediante secuencias de comandos. Para obtener la documentación
completa del metamodelo de PowerDesigner, seleccione Ayuda > Ayuda de objetos del
metamodelo. Para obtener la documentación completa de VBScript, consulte el sitio MSDN
de Microsoft.
Ejecución de secuencias de comandos en PowerDesigner
Herramientas Descripción
Cortar [Ctrl+X], Copiar [Ctrl+C] y Pegar [Ctrl+V]: realiza las acciones estándar
del portapapeles.
340 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
¡Advertencia!Siempre debe hacer una copia de seguridad del script de muestra antes de
realizar cambios en él.
342 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
344 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
cuerpo = cuerpo + " Nombre = nuevoNombre;" + vbCrLf
cuerpo = cuerpo + "}" oper.Body = cuerpo
CreateOperations = True
función final
346 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Este script crea un nuevo OOM dirigido al lenguaje de análisis, crea algunas clases en él, las
muestra en el diagrama y luego guarda el modelo y lo cierra:
Dim nuevo modelo
establecer NewModel = CreateModel(PdOOM.Cls_Model,
"Idioma=Análisis|
Diagram=ClassDiagram|Copy")
Si NewModel es Nothing,
entonces
msgbox "Error al crear el modelo UML", vbOkOnly, "Error" ' Muestra
un mensaje de error
Demás
salida "El modelo UML ha sido creado" ' Mostrar un mensaje en
Salida
NewModel.SetNameAndCode "MyOOM", "MyOOM" 'Inicializa el nombre y el
código del modelo
For idx = 1 to 12 'Crea clases y muéstralas Set
obj=NewModel.Classes.CreateNew()
obj.SetNameAndCode "C" & idx, "C" & idx Set
sym=ActiveDiagram.AttachObject (obj)
Próximo
ActiveDiagram.AutoLayoutWithOptions(2)
NewModel.Save "c:\temp\MyOOM.oom" ' Guarda el modelo
NewModel.Close ' Cierra el modelo
Este script verifica que el modelo creado anteriormente existe y luego lo abre en el espacio
de trabajo:
Atenuar mi modelo, nombre de archivo
Nombre de archivo = "c:\temp\MyOOM.oom"
On Error Resume Next 'Evitar el mensaje de error de secuencias de
comandos genérico
Establecer MiModelo = OpenModel(Nombre de archivo)
Si MyModel no es nada, entonces ' Muestra un cuadro de mensaje
de error msgbox "Error al abrir el modelo:" + vbCrLf +
FileName, vbOkOnly,
"Error"
Else ' Muestra un mensaje en la salida
de salida "El OOM se ha abierto".
Terminara si
Exploración y modificación de colecciones (secuencias de
comandos)
La mayor parte de la navegación por metamodelos se realiza descendiendo desde la raíz del
modelo a través de colecciones de objetos a colecciones de subobjetos u objetos asociados.
Un OOM contiene una colección de clases y las clases contienen colecciones de atributos y
operaciones. Puede obtener información y explorar los miembros de una colección a través
de secuencias de comandos, así como agregar, eliminar y mover objetos en la colección.
Para explorar los miembros de una colección, navegue hasta el objeto principal y luego use
un bucle For each. Este script imprime los nombres de todas las tablas en un PDM abierto:
Atenuar mi modelo
Establecer MiModelo=ModeloActivo
Para cada t en MyModel.Tables
Salida "*" & t.Nombre
348 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Próximo
Cuando explore una colección, se recuperarán tanto los objetos completos de la colección
como los accesos directos.
Nota:Para obtener información sobre cómo acceder a las colecciones definidas en las
extensiones, consulte Crear y acceder a extensiones (secuencias de comandos) en la página
329.
350 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Nombre/Código/Camino Especifica el nombre o código de, o la ruta al objeto. Por ejemplo, para
encontrar la columna Dirección en la tabla Cliente en el paquete
Ventas desde el contexto del nodo del modelo, puede buscar por
nombre Dirección o por ruta
Ventas/Cliente/Dirección.
Amable Especifica la metaclase del objeto a buscar en el formulario
cls_PublicName. Por ejemplo, para buscar una columna, seleccione
cls_Column.
Estos identificadores de metaclases son únicos dentro de su biblioteca
de modelos pero, en casos como los paquetes, que aparecen en varios
tipos de modelos, debe prefijar el identificador con el nombre del
módulo (PdOOM.cls_Package). Cuando crea un modelo, debe usar el
prefijo del módulo (por ejemplo, PdPDM.cls_Model).
Parámetros opcionales Los siguientes parámetros son opcionales:
• "Estereotipo"- Especifica que el objeto a buscar debe tener el
estereotipo especificado.
• "Último encontrado"- Especifica comenzar la búsqueda después
de este objeto. Este parámetro se usa cuando varios objetos tienen
el mismo valor de ruta y se puede usar para iniciar una búsqueda
en un ciclo while que usa la coincidencia anterior como el último
parámetro encontrado.
• Sensible a mayúsculas y minúsculas=y|n- [predeterminado: y]
Especifica que la búsqueda distingue entre mayúsculas y
minúsculas.
• Incluir accesos directos- [predeterminado: n] Especifica que se
pueden encontrar accesos directos.
• UseCodeInPlaceOfName- [ByPath, predeterminado: n] Especifica
que el objeto puede ser encontrado por su código
(Predeterminado=n).
• separador de ruta- [ByPath, default= /, \ o ::)] Especifica el
carácter para separar los nodos en la ruta.
Puede obtener valores de atributo estándar utilizando la notación de puntos (objeto.atributo)
o utilizando los siguientes métodos:
352 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
El siguiente script abre un OOM de muestra, encuentra una clase por nombre y un parámetro
por ruta y luego imprime y modifica algunas de sus propiedades:
Atenuar mi modelo, C, P
'Abrir archivo modelo
Establezca MyModel=OpenModel(EvaluateNamedPath("%_EXAMPLES%\" &
"UML2
Muestra.oom"))
'Obtener clase y parámetro
Establecer C=MiModelo.FindChildByName("OrderManager",cls_Class)
Establezca
P=Mimodelo.FindChildByPath("SecurityManager/CheckPassword/login",Pd
OOM.cls_Parameter)
MyClass.GetAttributeText("PersistentGenerationMode")
muestra "Parámetro: " & MyParam.Parent & "". &
MiParam.Nombre
salida vbTab & "Tipo de datos: " & MyParam.DataType
salida vbTab & "Tipo de parámetro: " &
MyParam.GetAttributeText("ParameterType")
Finalizar sub
354 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Atenuar mi modelo
Establecer MiModelo = ModeloActivo
Atenuar mi clase
' Crear una clase
Establecer MiClase = MiModelo.Clases.CrearNuevo()
Si MyClass no es nada Entonces
' Mostrar un cuadro de mensaje
de error
msgbox "Error al crear una clase", vbOkOnly, "Error" Else
salida "La clase ha sido creada".
' Establecer nombre, código, comentario, estereotipo y
atributos finales
MyClass.SetNameAndCode "Cliente", "cliente"
MyClass.Comment = "Creado por script"
MiClase.Estereotipo = "MiEstereotipo"
MiClase.Final = verdadero
'Crear un atributo dentro de la clase
Dim MyAttr
Establecer MyAttr =
MyClass.Attributes.CreateNew() Si no MyAttr no
es nada Entonces
salida "El atributo ha sido creado". MyAttr.SetNameAndCode
"Nombre", "nombre del cliente"
MiAttr.TipoDeDatos = "Cadena"
' Restablecer la variable para evitar pérdidas de memoria
Terminara si
Terminara si
También puede crear objetos utilizando el método CreateObject(kind). Este script crea una
clase dentro de un OOM y establece algunas de sus propiedades:
Atenuar mi modelo
Establecer MiModelo = ModeloActivo
Atenuar mi clase
' Crear una clase
Establecer MiClase = MiModelo.CrearObjeto(cls_Clase)
MyClass.SetNameAndCode "Otra clase", "Clase2"
MiClase.Comentario = "Creado por CreateObject"
Al crear un objeto de vínculo, debe definir sus extremos. Este script crea dos clases y las une
mediante un enlace de asociación:
Atenuar mi modelo
Establecer MiModelo = ModeloActivo
Dim MiPrimeraClase, MiSegundaClase, MiAsociación
'Crear clases
Establecer MiPrimeraClase = MiModelo.Clases.CrearNuevo()
MiPrimeraClase.SetNameAndCode "Clase1", "C1"
Establecer MySecondClass = MyModel.Classes.CreateNew()
MiSegundaClase.SetNameAndCode "Clase2", "C2"
'Crear asociación
Establezca MyAssociation = MyModel.Associations.CreateNew()
El siguiente script crea un EAM y cuatro áreas de arquitectura, las alinea en un cuadrado y
formatea el área superior izquierda:
356 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
358 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Opción explícita
' Cierra el espacio de trabajo existente y guárdalo en Temp
Dim workspace, currentFolder Set
workspace = ActiveWorkspace
workspace.Load "%_EXAMPLES%\mywsp.sws"
Salida "Guardando el espacio de trabajo actual en "" Directorio de
ejemplo:
"+EvaluateNamedPath("%_EXAMPLES%\temp.sws") espacio
de trabajo.Guardar "%_EXAMPLES%\Temp.SWS" espacio de
trabajo.Cerrar
workspace.Name = "VBS WSP"
workspace.FileName = "VBSWSP.SWS"
workspace.Load "%_EXAMPLES%\Temp.SWS"
dim Elemento, subelemento
para cada elemento en el espacio de trabajo.niños
Si item.IsKindOf(PdWsp.cls_WorkspaceFolder) Entonces
ShowFolder (elemento)
renombrar elemento de carpeta,"CarpetaParaRenombrar",
"CarpetaRenombrada" deleteFolder elemento,"CarpetaParaEliminar"
carpetaactual = elemento
ElsIf item.IsKindOf(PdWsp.cls_WorkspaceModel) Entonces
ElsIf elemento.IsKindOf(PdWsp.cls_WorkspaceFile) Entonces
Terminar si
es el
siguiente
subcarpeta tenue
'insertar carpeta en
raíz Establecer
subcarpeta =
espacio de trabajo.Children.CreateNew(PdWsp.cls_WorkspaceFolder)
subfolder.name = "Nueva carpeta (VBS)"
'insertar carpeta en raíz en pos 6
Establecer subcarpeta = espacio de trabajo.Children.CreateNewAt(5,
PdWsp.cls_WorkspaceFolder)
subcarpeta.nombre = "Nueva carpeta (VBS) insertada en Pos5"'
' agregar una nueva carpeta en esta carpeta
Establecer subcarpeta =
subfolder.Children.CreateNew(PdWsp.cls_WorkspaceFolder)
subfolder.name = "NewSubFolder(VBS)"
subcarpeta.AddDocument EvaluateNamedPath("%_EXAMPLES%\pdmrep.rtf")
subcarpeta.AddDocument EvaluateNamedPath("%_EXAMPLES%\cdmrep.rtf")
subcarpeta.AddDocument
EvaluateNamedPath("%_EXAMPLES%\project.pdm")
subcarpeta.AddDocument EvaluateNamedPath( "%_EXAMPLES%\demo.oom")
atenuar último modelo
establecer último modelo = subcarpeta.AddDocument
(EvaluateNamedPath("%_EXAMPLES%\Ordinateurs.fem"))
lastmodel.abierto
lastmodel.name = "Computadoras"
lastmodel.close
'separando el modelo del espacio de trabajo
lastmodel.delete
espacio de trabajo. Guardar "%_EXAMPLES%\Final.SWS"
360 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Para obtener más información sobre las propiedades y los métodos disponibles en el espacio
de trabajo, seleccione Ayuda > Ayuda de objetos de MetaModel y vaya a
Bibliotecas/PdWSP/Espacio de trabajo.
Puede crear orígenes de datos en un modelo y, a partir de ahí, crear asignaciones desde
objetos de origen en otros modelos a objetos en el primer modelo mediante scripts.
El siguiente script crea un OOM y un PDM, los completa con clases y tablas, luego crea una
fuente de datos en el OOM, asocia el PDM con él y crea asignaciones:
Atenuar MiOOM, MiPDM
'Crear un OOM y un PDM
establecer MyOOM = CreateModel(PdOOM.Cls_Model, "|Idioma=Análisis|
Diagrama=ClassDiagram|Copiar")
MiOOM.SetNameAndCode "MiOOM", "OOM"
establecer MyPDM = CreateModel(PdPDM.Cls_Model, "|DBMS=Sybase SQL
Anywhere 12|Copiar")
MiPDM.EstablecerNombreYCódigo "MiPDM", "PDM"
'Crear clases y tablas
Para idx = 1 a 6
Establecer c=MiOOM.Clases.CrearNuevo()
c.SetNameAndCode "Clase" e idx, "C" e idx
Establezca t=MyPDM.Tables.CreateNew()
t.SetNameAndCode "Tabla" & idx, "T" & idx
Próximo
'Cree una fuente de datos en el OOM y agregue el PDM como su fuente
Dim ds, m1
Establecer ds =
MyOOM.DataSources.CreateNew()
ds.SetNameAndCode "MyPDM", "PDM"
ds.AddSource MyPDM
362 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Puede crear un informe, examinar su contenido y generarlo como HTML o RTF mediante
secuencias de comandos.
Para crear un informe, utilice el método CreateReport() en un modelo. Por ejemplo:
modelo tenue
Establecer modelo = modelo
ActiveModel.CreateReport("MyReport")
Para examinar los informes de un modelo, utilice la colección Informes. Por ejemplo:
modelo tenue
Establecer modelo = ActiveModel
Para cada m en modelo.Informes
Salida m.Nombre
Próximo
tenue rc
Establecer rc = RepositoryConnection
rc.Open "NOMBRE DEL REPOSITOR", "USUARIO", "PW", "DBUSER", "DBPW"
Salida "Antes de la consolidación"
ListChildren rc
Dim nuevo modelo
Establecer NewModel = CreateModel(PdPDM.Cls_Model,
"|Idioma=SYASIQ1540")
NewModel.Name = "Mi PDM"
NewModel.ConsolidateNew rc
Para i = 1 a 5
Para j = 1 a 5
NuevoModelo.Tablas.CrearNuevo()
Próximo
NuevoModelo.Consolidar
Próximo
Salida "Después de la consolidación"
ListChildren rc
rc.Cerrar
SublistaNiños(rc)
Para cada c en rc.ChildObjects
Salida c.Nombre & "(Modificado: " & c.ModificationDateInRepository &
")"
Próximo
Finalizar sub
Para comprobar un modelo, utilice el método CheckOut.
Para obtener información detallada sobre los miembros, las colecciones y los métodos
disponibles para generar secuencias de comandos en el repositorio, seleccione Ayuda >
Ayuda de objetos de MetaModel y navegue hasta Bibliotecas/PdRMG.
Puede generar un PDM como un script SQL o directamente a una conexión de base de datos
en vivo usando el
Método GenerarBase de Datos(). Puede generar datos de prueba
con el método GenerateTestData().
El siguiente fragmento de secuencia de comandos abre un PDM de ejemplo y luego llama a
procedimientos para generar varias secuencias de comandos:
364 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Nota:Para obtener más información sobre las opciones de generación, seleccione Ayuda >
Ayuda de MetaModel Objects y vaya a Bibliotecas/PdPDM/BasePhysicalPackageOptions.
Este procedimiento modifica el modelo agregando una nueva columna a cada tabla:
Sub ModifyModel(m)
dim pTable, pCol
Para cada pTable en m.Tables
Establecer pCol = pTable.Columns.CreateNew()
pCol.SetNameAndCode "az" y pTable.Name, "AZ" y pTable.Code
pCol.Obligatorio = Falso
Próximo
Finalizar sub
Este procedimiento genera un script alter para modificar la base de datos:
Sub GenerarAlterScripts(m)
Opciones de atenuación
Establecer pOpts = m.GetPackageOptions()
InteractiveMode = im_Batch ' Evite mostrar la ventana de generación
' establecer las opciones de generación usando las opciones del
paquete del modelo
pOpts.GenerateODBC = False ' Forzar la generación de secuencias de
comandos sql en lugar de ODBC
pOpts.GenerationPathName = GenDir
pOpts.DatabaseSynchronizationChoice = 0 'forzar apm ya guardado
como fuente
pOpts.DatabaseSynchronizationArchive = GenDir & "model.apm"
pOpts.GenerationScriptName = "MyAlterScript.sql"
m.ModifyDatabase ' Iniciar la función Modificar base de
datos End Sub
Este procedimiento genera datos de prueba para cargar en la base de datos:
Sub GenerarTestDataScript(m)
Opciones de atenuación
Establecer pOpts = m.GetPackageOptions()
InteractiveMode = im_Batch ' Evitar mostrar la ventana de
generación ' configurar las opciones de generación usando las
opciones del paquete modelo
pOpts.TestDataGenerationByODBC = False ' Forzar la generación de
secuencias de comandos sql en lugar de ODBC
pOpts.TestDataGenerationDeleteOldData = False
pOpts.TestDataGenerationPathName = GenDir
pOpts.TestDataGenerationScriptName = "MyTestData.sql"
m.GenerateTestData ' Inicia la función Generar datos de
prueba End Sub
Para usar un archivo de origen de datos, defina una constante con la ruta completa al archivo
DSN. Por ejemplo:
Const cnxDSN = "\\romeo\public\DATABASES\_filedsn
\sybase_asa9_muestra.dsn"
Este script crea un nuevo PDM, se conecta a una base de datos a través de una fuente de
datos del sistema, establece opciones de reversión y revierte todos los objetos al PDM:
366 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Puede crear extensiones por script para definir propiedades adicionales, nuevas metaclases,
formularios y cualquier otro tipo de extensión al metamodelo estándar.
El siguiente ejemplo crea un EAM, luego crea una extensión dentro de él, define un nuevo
tipo de objeto llamado tableta derivado de la metaclase MobileDevice y crea un atributo
extendido y un nuevo formulario personalizado para él:
Puede acceder a colecciones definidas en una extensión usando los siguientes métodos:
368 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
El siguiente script localiza la raíz de BaseClass y muestra los primeros dos niveles de
herencia debajo de ella:
establecer root =
MetaModel.GetMetaClassByPublicName("PdCommon.BaseObject") para cada
c en root.Children salida c.PublicName para cada cc en c.Children
salida " " + cc.PublicName siguiente siguiente
El siguiente script obtiene una tabla en un PDM y luego muestra la metaclase de la cual el
objeto es una instancia, la metaclase principal y la metabiblioteca de la metaclase, y todos
los atributos y colecciones que están disponibles en esa metaclase:
objeto tenue
Establecer objeto =
ActiveModel.FindChildByName("myTable",cls_Table)
Salida "Objeto:" + objeto.Nombre
metaclase tenue
Establecer metaclase = objeto.MetaClase
Salida "Metaclase:" + metaclase.PublicName
Salida "Padre:" + metaclase.Padre.PublicName
Salida "Metalibrary:" + metaclass.Library.PublicName
Salida "Atributos:"
Para cada atributo en metaclass.attributes
Salida " - " + attr.PublicName
Próximo
Salida "Colecciones:"
Para cada col en metaclass.colecciones
370 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Las propiedades y las colecciones son de solo lectura para todos los objetos del metamodelo.
Complementos y automatización OLE
OLE Automation proporciona una forma de comunicarse con PowerDesigner desde otra
aplicación utilizando la arquitectura COM. Puede escribir un programa utilizando cualquier
lenguaje compatible con COM, como macros de Word o Excel, VB, C++ o PowerBuilder.
Puede crear ejecutables que llamen a PowerDesigner o complementos que llame
PowerDesigner.
Los programas de VBScript que se ejecutan desde dentro de PowerDesigner y los programas
de automatización OLE son muy similares, pero OLE requiere que trabaje a través de un
objeto de aplicación de PowerDesigner y use una escritura más fuerte. Usted debe:
• Cree una instancia del objeto de la aplicación PowerDesigner y suéltelo cuando finalice
su secuencia de comandos:
Dim PD como PdCommon.Application
Establecer PD = CreateObject("PowerDesigner.Application")
'Ingrese el guión aquí
'Una vez que finaliza el script, libera el
objeto PD Establecer PD = Nada
Si PowerDesigner se está ejecutando actualmente, se utilizará esta instancia; de lo
contrario, se lanzará una nueva instancia. Si no especifica un número de versión, se utiliza
la versión más reciente. Para especificar una versión específica, utilice la sintaxis:
Establecer PD = CreateObject("PowerDesigner.Application.versión")
• Prefije todas las propiedades y funciones globales (consulte Manipulación de modelos,
colecciones y objetos (secuencias de comandos) en la página 312) con el objeto
Aplicación de PowerDesigner. Por ejemplo, para acceder al modelo con foco usando un
objeto de aplicación de PowerDesigner llamado PD, use la siguiente sintaxis:
PD.ActiveModel
• Especifique los tipos de objetos siempre que sea posible. Por ejemplo, en lugar de
simplemente usar Dim cls, debe usar:
Dim cls como PdOOM.Class
Este script se inicia desde fuera de PowerDesigner, crea una instancia del objeto Aplicación
de PowerDesigner y luego lo usa para crear dos OOM a través de OLE Automation:
372 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
374 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
debe devolver verdadero para habilitar un comando y falso
para deshabilitarlo.
• HRESULT DoCommand(en BSTR sMenu, en IDispatch *pObj, en
BSTR sCommandName): implementa la ejecución de un comando
designado por su nombre. Por ejemplo:
DoCommand ("Objeto", pModel, "Ingresar")
Nota:
• Un elemento Shared, que define los menús que siempre están disponibles y sus
métodos asociados, junto con un atributo GlobalScript, que puede contener un script
global para funciones compartidas.
• Uno o más elementos de metaclase, que definen comandos y menús para una
metaclase específica, identificados por su nombre público precedido por su nombre
público de biblioteca de tipos.
Ambos elementos pueden contener subelementos de la siguiente manera:
• Los menús contienen elementos de menú que especifican una
ubicación, que puede ser una de las siguientes:
• FileImport - solo compartido
• FileExport - solo metaclase
• FileReverse: solo compartido
• Herramientas
376 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
• Ayuda
• Objeto: solo metaclases (predeterminado) Cada elemento del menú puede contener:
• Un elemento Command - cuyo Nombre debe ser igual al nombre de un Método, y
cuyo Caption define el nombre del comando que aparece en el menú.
• Un elemento Separador, que indica que desea insertar una línea en el menú.
• Un elemento emergente, que define un elemento de submenú que, a su vez, puede
contener comandos, separadores y ventanas emergentes.
• Métodos contiene elementos Método, que definen los métodos
utilizados en los menús, y que se definen mediante un
nombre y un VBScript. Un método definido bajo una
metaclase tiene el objeto actual como parámetro. Se tiene
en cuenta la herencia, por lo que un menú definido en la
metaclase PdCommon.NamedObject estará disponible en
PdOOM.Class.
El siguiente ejemplo define dos elementos de menú para el repositorio de Perforce y los
métodos que llaman:
<?versión xml="1.0" codificación="UTF-8"?>
<Perfil>
<Metaclase Nombre="PdOOM.Modelo">
<Menús>
<Ubicación del menú="Herramientas">
<Popup Caption="Forzar">
<Command Name="Ingresar" Caption="Ingresar"/>
<Separador/>
<Command Name="Pagar" Caption="Pagar"/>
</Ventana emergente>
</Menú>
</Menús>
<Métodos>
<Method Name="CheckIn"> Sub
%Method%(obj)
ejecutar_comando(p4, enviar %Nombre de archivo%, cmd_PipeOutput)
Finalizar Sub </Método>
<Method Name="CheckOut"> Sub
%Method%(obj)
ejecutar_comando( p4, editar %Nombre de archivo%, cmd_PipeOutput)
Finalizar Sub </Método>
</Métodos>
</Metaclase>
</Perfil>
El siguiente ejemplo define un script global al que hace referencia un método definido en
una metaclase:
<?versión xml="1.0" codificación="UTF-8"?>
<Perfil>
<Compartido>
<GlobalScript>
Puede ampliar los menús de PowerDesigner para agregar comandos para invocar scripts
definidos en archivos de recursos o externamente y para iniciar ejecutables y complementos
ActiveX. Los complementos XML se pueden usar para agrupar y organizar varios comandos.
Puede ampliar los menús Archivo, Herramientas y Ayuda, y los menús contextuales
disponibles en los objetos del Navegador y los diagramas.
Puede modificar los menús de PowerDesigner de las siguientes formas:
378 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Nota:La sintaxis XML que se usa para definir menús en un complemento ActiveX o
XML es la misma que se usa en la creación de una extensión de menú, y puede usar la
página XML del menú del editor de recursos (consulte Menús (Perfil) en la página 81)
como ayuda. usted construye la sintaxis para sus complementos.
1. Seleccione Herramientas > Ejecutar comandos > Personalizar comandos y haga clic en
la herramienta Agregar una fila.
2. Introduzca las siguientes propiedades:
Propiedad Descripción
Propiedad Descripción
380 PowerDesigner
CAPÍTULO 7: Scripting PowerDesigner
Tecla aceleradora Asocia uno de los diez atajos de teclado reservados Ctrl-Shift-0 a
CtrlShift-9 con el comando.
Si desea insertar una tubería dentro de un comando, debe escapar con una segunda
tubería.
382 PowerDesigner
CAPÍTULO 8El metamodelo público de
PowerDesigner
384 PowerDesigner
CAPÍTULO 8: El metamodelo público de PowerDesigner
Navegando en el Metamodelo
Puede expandir y contraer los paquetes en el navegador para explorar su contenido. Haga
doble clic en un diagrama para mostrarlo en el lienzo.
Cada metaclase tiene un nombre, contiene cero o más atributos y asume cero o más roles en
asociaciones con otras clases, lo que le permite identificar colecciones. El metamodelo
público de PowerDesigner utiliza conceptos UML estándar:
• Nombres públicos: cada objeto en el metamodelo tiene un nombre y un código
correspondiente al nombre público del objeto, que es el identificador único del objeto
en una biblioteca o paquete modelo. Se hace referencia a los nombres públicos en los
archivos de modelo XML de PowerDesigner y cuando se utilizan GTL y secuencias
de comandos. El nombre público a menudo coincide con el nombre del objeto en la
interfaz de PowerDesigner, pero donde los dos divergen, el nombre público debe
usarse en scripts y plantillas GTL.
• Clases: se utilizan para representar metadatos de las siguientes maneras:
• Clases abstractas: se usan solo para compartir atributos y comportamientos, y no son
visibles en la interfaz de PowerDesigner.
• Clases instanciables/concretas: corresponden a los objetos que se muestran en la
interfaz. Tienen sus propios atributos y comportamientos además de los que heredan
de las clases abstractas a través de enlaces de generalización. Por ejemplo,
NamedObject es una clase abstracta que contiene atributos estándar como Nombre,
Código, Comentario,
Anotación y Descripción, que son heredados por la mayoría
de los objetos de diseño de PowerDesigner.
• Atributos de clase - son propiedades de objetos. Las clases vinculadas a otras clases
con vínculos de generalización suelen contener atributos derivados que se calculan a
Cuando las asociaciones tienen dos roles, solo la colección con el rol navegable se
guardará en el archivo XML. En el caso, solo se guarda la colección AttachedRules.
• Composiciones: expresa una asociación en la que los hijos viven y mueren con el
padre y, cuando se copia al padre, también se copia al hijo. Por ejemplo, Table tiene
una asociación de composición con la clase Column:
• Generalizaciones: muestra los vínculos de herencia existentes entre una clase más
general, generalmente abstracta, y una clase más específica, generalmente
instanciable. La clase más específica hereda de los atributos de la clase más genérica,
estos atributos se denominan atributos derivados. Por ejemplo, Class hereda de
Classifier
Cada diagrama muestra clases las conexiones entre metaclases a través de asociaciones y
generalizaciones. Las clases en verde se definen en el diagrama actual, mientras que las
clases en púrpura están presentes solo para brindar contexto. Para investigar una clase
morada, haga clic con el botón derecho en ella y seleccione Diagramas relacionados >
diagrama para abrir el diagrama donde está definido.
En el siguiente ejemplo, se define BusinessRule, mientras que NamedObject y BaseModel
están presentes solo para mostrar enlaces de herencia y composición:
386 PowerDesigner
CAPÍTULO 8: El metamodelo público de PowerDesigner
Haga doble clic en cualquier clase para mostrar su hoja de propiedades y revise las siguientes
pestañas:
• General- proporciona el nombre público en los campos Nombre y Código, un
Comentario que proporciona una breve descripción de la clase y muestra si es Resumen.
• Atributos- enumera las propiedades definidas directamente en la clase, pero no las que
hereda a través de las clases principales.
• Asociaciones- enumera las asociaciones migradas para la clase, que representan
colecciones. La columna Rol B enumera las colecciones de la clase, mientras que la
columna Rol A enumera las colecciones en las que figura la clase.
• Operaciones- enumera los métodos disponibles para secuencias de comandos.
• dependencias- contiene las siguientes subpestañas (entre otras):
• Asociaciones
• generalizaciones- enumera los enlaces de generalización donde la clase actual es la
secundaria y hereda los atributos de una clase principal.
• Especializaciones- enumera los enlaces de generalización donde la clase actual es el
padre y sus hijos heredan atributos de ella.
• Atajos- enumera los accesos directos creados para el objeto actual.
• notas- puede incluir más información sobre las subpestañas Descripción o Anotación.
Usando el archivo de ayuda de Metamodel Objects
388 PowerDesigner
CAPÍTULO 8: El metamodelo público de PowerDesigner
390 PowerDesigner
CAPÍTULO 8: El metamodelo público de PowerDesigner
• Los atributos con el tipo de datos IOBJECT son atributos en el metamodelo mientras
aparecen como colecciones que contienen un único objeto en el archivo XML. Esto no
es cierto para Padres y Carpetas que no contienen ninguna colección.
Ejemplo: archivo XML OOM simple
En este ejemplo, exploraremos la estructura de un archivo de modelo OOM simple que
contiene dos clases y una asociación.
El archivo comienza con varias líneas que indican XML y detalles relacionados con el
modelo.
El primer objeto que aparece es la raíz del modelo <o:RootObject Id="01">. RootObject es
un contenedor de modelos que se define de forma predeterminada cada vez que crea y guarda
un modelo. RootObject contiene una colección denominada Children que se compone de
modelos.
En nuestro ejemplo, Children contiene solo un objeto modelo que se define de la siguiente
manera:
<o:Identificación del modelo="o2">
<a:Id. de objeto>3CEC45F3-A77D-11D5-BB88-0008C7EA916D</a:Id. de
objeto>
<a:Name>Modelo orientado a objetos_1</a:Name>
<a:Código>OBJECTORIENTEDMODEL_1</a:Código>
<a:FechaCreación>1000309357</a:FechaCreación>
<a:Creador>arturo</a:Creador>
<a:ModificationDate>1000312265</a:ModificationDate>
<a:Modifier>arturo</a:Modifier>
<a:Texto de opciones del modelo>
[Opciones de
modelo] ...
Debajo de la definición del objeto modelo, puede ver la serie de atributos ModelOptions.
Tenga en cuenta que ModelOptions no se limita a las opciones definidas en el cuadro de
diálogo Opciones de modelo de un modelo, reúne todas las propiedades guardadas en un
modelo, como las opciones de generación entre modelos.
Después de ModelOptions, puede identificar la colección <c:ObjectLanguage>. Este es el
lenguaje objeto vinculado al modelo. La segunda colección del modelo es
<c:ClassDiagrams>. Esta es la colección de diagramas vinculados al modelo, en nuestro
ejemplo, solo hay un diagrama definido en el siguiente párrafo:
392 PowerDesigner
CAPÍTULO 8: El metamodelo público de PowerDesigner
<o:ID de diagrama de clase="o4">
<a:Id. de objeto>3CEC45F6-A77D-11D5-BB88-0008C7EA916D</a:Id. de
objeto>
<a:Nombre>Diagrama de clases_1</a:Nombre>
<a:Código>CLASSDIAGRAM_1</a:Código>
<a:FechaCreación>1000309357</a:FechaCreación>
<a:Creador>arturo</a:Creador>
<a:ModificationDate>1000312265</a:ModificationDate>
<a:Modifier>arturo</a:Modifier>
<a:Preferencias de
visualización> ...
Al igual que para las opciones de modelo, la definición de ClassDiagram va seguida de una
serie de atributos de preferencias de visualización.
Dentro de la colección ClassDiagram, se encuentra una nueva colección llamada
<c:Symbols>. Esta colección reúne todos los símbolos del diagrama del modelo. El primer
objeto que se definirá en la colección Símbolos es AssociationSymbol:
<o:AssociationSymbol Id="o5">
<a:CenterTextOffset>(1, 1)</a:CenterTextOffset>
<a:FuenteTextOffset>(-1615, 244)</a:SourceTextOffset>
<a:DesviaciónTextoDestino>(974, -2)</a:DesviaciónTextoDestino>
<a:Rect>((-6637,-4350), (7988,1950))</a:Rect>
<a:ListaDePuntos>((-6637,1950),(7988,-4350))</a:ListaDePuntos>
<a:Estilo de flecha>8</a:Estilo de flecha>
<a:ShadowColor>13158600</a:ShadowColor>
<a:FontList>DISPNAME 0 Arial,8,N
El atributo es un objeto terminal: no se requiere más ramificación para definir este objeto.
Cada colección que pertenece a un objeto analizado se expande y analiza y lo mismo ocurre
con las colecciones dentro de las colecciones.
Una vez que se examinan todos los objetos y colecciones, aparecen las siguientes marcas:
</o:ObjetoRaíz>
</Modelo>
394 PowerDesigner
CAPÍTULO 8: El metamodelo público de PowerDesigner
Eliminar 174
Índice Propiedad global ActiveDiagram 312, 320
Operador de resta %-(x,y)% 252 %ActiveModel% variable global 251
! operador de evaluación de Propiedad global ActiveModel 312, 313
potencia 252 != no igual al Colección global ActiveSelection 312
operador 252 Propiedad global ActiveWorkspace 312, 322
? operador de existencia 252 Complemento
.foreach_item ActiveX 334
ejemplo 27 .xems DoCommand
Ver archivos de extensión 334
[ ] operadores 213 Inicializar 334
[] bloque condicional 250 IsCommandSupported 334
* operador de desreferenciación 252 método 334
%*(x,y)% operador de multiplicación 252 ProvideMenuItems 334
operador de división %/(x,y)% 252 Desinicializar
.// macro 267 334 Agregar 144
\\ secuencia de escape 256 complementos 305
\n secuencia de escape 256 ActiveX 334 iniciar
\t secuencia de escape 256 338 Archivo XML
%&(x,y)% campo de bits lógico y operador 335 Método Add()
252 314
&& operador lógico AND 252 AñadirColIndex 160
%% secuencia de escape 256 AddColnCheck 152
+ operador de visibilidad 252 AddColnCheck 152
Operador de suma %+(x,y)% 252 agregar elementos en archivos de recursos 6
< menos que operador 252 Tipos de datos adicionales 110
<= menor o igual que el operador 252 AgregarÚnete 185
= operador de asignación 252 AddMetaExtension() método 329
== igual al operador 252 Método AddObjects() 321
> mayor que el operador 252 Añadir Cotización 136
>= mayor o igual que el operador 252 || Método AddSource() 324
operador lógico OR 252 AddTableCheck 148
ADTComentario 174
Después de crear 144, 189
A Controlador de eventos AfterDatabaseGenerate
Una opción de formato (alinear a la 75, 133
izquierda) 248 .abort_command Controlador de eventos
macro 265 clases abstractas 344 AfterDatabaseReverseEngineer 75,
atributos de tipo de datos 133
abstractos Después de la caída 144
PermitidoADT 176 Después de modificar 144
tipos de datos abstractos .AKCOLN PDM macro 235
ADTComentario 174 Un comentario clave 164
PermitidoADT 174 Pestaña Todos los atributos y colecciones 300
HabilitarAdtOnColn 174 Pestaña Todas las clases 299
HabilitarAdtOnDomn 174 Pestaña Todos los títulos de informes 297
Instalar 174 .ALLCOL PDM macro 236
Variables PDM 224
396 PowerDesigner
Índice
398 PowerDesigner
Índice
400 PowerDesigner
Índice
402 PowerDesigner
Índice
404 PowerDesigner
Índice
406 PowerDesigner
Índice
408 PowerDesigner
Índice
410 PowerDesigner
Índice
412 PowerDesigner
Índice
414 PowerDesigner
Índice
416 PowerDesigner
Índice
W
.warning macro 269
advertencias
en GTL 269
.warning macro 269
Operaciones web 194
Parámetros web 195
Servicios web 194
Variables de PDM 231 acceso al espacio
de trabajo por secuencia de comandos 322
Propiedad global ActiveWorkspace 312, 322
Colección secundaria 322 modificación por
secuencia de comandos 322 guardado por
secuencia de comandos 322
X
Opción de formato X (caracteres XML de
escape) 248 xdb (archivos de definición DBMS)
1
xem (archivos de extensión) 1
xems
Ver archivos de extensión
XML
extensiones para importar 96 importar
objetos desde 97
Complemento de
archivo XML 335
estructura 335
Importaciones XML 96
scripts de inicialización 100
propiedades de mapeo 100 mapeos
97 scripts de posprocesamiento 100
Archivos de definición de lenguaje XML 1
Categoría de tipos de datos 112 extensiones
117 categoría de generación 112 comandos de
generación 112, 114 opciones de generación
112, 113 tareas de generación 112, 114
418 PowerDesigner