Definiendo Diccionario de Datos de Padres

Anuncio
Guía de Diccionario de Datos
Definiendo Diccionarios de Datos de
Padres, Hijos y relaciones externas
Los Diccionarios de Datos tienen que saber cómo modelar relaciones. Esto se obtiene:
•
Definiendo todas las tablas “Padre” con las que se está relacionando.
•
Definiendo todas las tablas “Hijo” desde las que se está relacionando.
•
Definiendo todas las tablas extra que puedan ser necesarias.
Una vez definido, sus objetos del Diccionario de Datos pueden usar esta información para
verificar que las estructuras de DDO están configurados adecuadamente para operaciones de
grabación y borrado.
Consulte lo siguiente
•
Definiendo “tablas padre”
•
Definiendo “tablas hijo”
•
Requisitos para las grabaciones
•
Requisitos para los borrados
•
Cómo funcionan las estructuras de DDO de grabación.
•
Tablas sistema y tablas externas
Definiendo “tablas Padre” requeridas
Send Add_Server_File Customer.File_Number
Un Diccionario de Datos tiene que estar al tanto de las tablas con las que está relacionado
(también llamadas “tablas padre”). Identificando todas las “tablas padre” el Diccionario de Datos
puede determinar si los DDOs (Objeto de Diccionario de Datos) han sido creados para todos estos
padres y si esos DDOs padre están apropiadamente conectados con el DDO principal. El DDO
padre también tiene una lista de “tablas padre” y estos DDOs padre hacen lo mismo para
asegurarse de que sus DDOs padre existen y de que están apropiadamente conectados dentro de
la estructura. Este proceso ocurre hacia la parte superior (hacia arriba) de la jerarquía de toda la
base de datos.
www.VisualDataflex.es
Página 3 de 5
Guía de Diccionario de Datos
Propagando esta comprobación hacia arriba se puede verificar si una estructura de Diccionario de
Datos está completa. Si la estructura no está completa, ese DDO no podrá grabar o borrar
registros.
La información de la “tabla padre” también es utilizada por el Studio y por varios asistentes para
ayudarle a construir sus aplicaciones. Por lo tanto es importante que esta información sea
mantenida correctamente en su clase de Diccionario de Datos.
Se añaden tablas a la lista de “tablas padre” relacionadas con el mensaje “Add_Server_File”.
Envíe este mensaje a cada una de las “tablas padre” requerida.
Consulte lo siguiente
Definir relaciones externas Padre-hijo de Diccionario de Datos.
Definiendo “tablas Hijo” requeridas
Send Add_Client_File Orderdtl.File_Number
Un Diccionario de Datos tiene que estar al tanto de las tablas que están relacionadas con él
(también llamadas “tablas Hijo”). Identificando todas las “tablas hijo” el Diccionario de Datos
puede determinar si los DDOs (Objetos de Diccionario de Datos) han sido creados para todos
estos hijos y si esos DDOs hijo están apropiadamente conectados con el DDO principal. El DDO
hijo también tiene una lista de “tablas hijo” y estos DDOs hijo hacen lo mismo para asegurarse de
que sus DDOs hijo existen y de que están apropiadamente conectados dentro de la estructura.
Este proceso ocurre hacia la parte inferior (hacia abajo) de la jerarquía de toda la base de datos.
Propagando esta comprobación hacia abajo se puede verificar si una estructura de Diccionario de
Datos está completa. Si la estructura no está completa, ese DDO no podrá borrar registros,
puesto que no tiene los DDOs hijos para borrar en cascada los registros de las tablas hijos.
La información de la “tabla hijo” también es utilizada por el Studio y por varios asistentes para
ayudarle a construir sus aplicaciones. Por lo tanto es importante que esta información esté
mantenida correctamente en su clase de Diccionario de Datos.
Se añaden tablas a la lista de “tablas hijo” relacionadas con el mensaje Add_Client_File. Envíe
este mensaje a cada una de las “tabla hijo”.
Consulte lo siguiente
Definir relaciones externas Padre-hijo de Diccionario de Datos.
www.VisualDataflex.es
Página 4 de 5
Guía de Diccionario de Datos
Requisitos para grabar (save)
El requisito de estructura de DDO para una grabación es simple. Para cada “tabla padre” definida
en el DDO (con el método Add_Server_File) debe estar representado como un DDO en la
estructura de objetos y deben estar conectados apropiadamente (con la propiedad DDO_Server).
Los siguientes fragmentos de código muestran una clase de Diccionario de Datos y una estructura
de DDO válida que admitiría grabaciones.
Procedure Define_Fields
Forward Send Define_Fields
Set Main_File to Orderhea.File_Number
:
Send Add_Server_File Customer.File_Number
Send Add_Server_File SalesP.File_Number
Send Add_Client_File Orderdtl.File_Number
End_Procedure
:
:
Object oCustomer_DD is a Customer_DataDictionary
End_Object // oCustomer_DD
Object oSalesp_DD is a Salesp_DataDictionary
End_Object // oSalesp_DD
Object oOrderhea_DD is a Orderhea_DataDictionary
Set DDO_Server to oCustomer_DD
Set DDO_Server to oSalesp_DD
End_Object // oOrderhea_DD
Es un caso sencillo. Si cualquiera de los DDOs padre necesitase de padres”, sus DDOs también
tendrían que estar presentes antes de permitir una grabación. Por ejemplo, suponga que el
Diccionario de Datos del cliente haya sido definido de la siguiente manera:
// Define_Fields in the customer DD class
Procedure Define_Fields
Forward Send Define_Fields
set Main_File to Customer.File_Number
:
Send Add_Server_File Region.File_Number
End_Procedure
Ahora, la estructura del DDO de la lista de arriba ahora está incompleta. Está incompleta para
Customer y por lo tanto está incompleta para OrderHea. No se admiten grabaciones en ninguno
de los dos DDOs. Para que una estructura DDO sea válida necesitaría mostrarse así:
www.VisualDataflex.es
Página 5 de 5
Guía de Diccionario de Datos
Object oRegion_DD is a Region_DataDictionary
End_Object // oCustomer_DD
Object oCustomer_DD is a Customer_DataDictionary
Set DDO_Server to oRegion_DD
End_Object // oCustomer_DD
Object oSalesp_DD is a Salesp_DataDictionary
End_Object // oSalesp_DD
Object oOrderhea_DD is a Orderhea_DataDictionary
Set DDO_Server to oCustomer_DD
Set DDO_Server to oSalesp_DD
End_Object // oOrderhea_DD
Note que Add_Server_File se emplea para definir una “tabla padre” requerida dentro de un
Diccionario de Datos y que esto ocurre en el nivel de clase. El uso de DDO_Server crea la
conexión en el nivel de objeto. Add_Server_File define el requisito y DDO_Server lo cumple.
Consulte lo siguiente
Definir las relaciones externas Padre-hijo de Diccionario de Datos.
Requisitos para eliminar
El requisito de estructura de DDO para un borrado es algo más complicado. Debido a que los
borrados pueden modificar los “registros padre”, la estructura “padre” del DDO debe estar
completa. Si desea admitir borrados en cascada (el borrado de registros “hijo”) entonces la
estructura de su DDO debe contener también todos los DDOs hijos requeridos para poder llevar a
cabo el borrado en cascada. Por ejemplo:
Procedure Define_Fields
Forward Send Define_Fields
Set Main_File to Orderhea.File_Number
:
Send Add_Server_File Customer.File_Number
Send Add_Server_File Sales.File_Number
Send Add_Client_File Orderdtl.File_Number
End_Procedure
:
:
Object oCustomer_DD is a Customer_DataDictionary
End_Object // oCustomer_DD
Object oSalesp_DD is a Salesp_DataDictionary
End_Object // oSalesp_DD
www.VisualDataflex.es
Página 6 de 5
Guía de Diccionario de Datos
Object oOrderhea_DD is a Orderhea_DataDictionary
Set DDO_Server to oCustomer_DD
Set DDO_Server to oSalesp_DD
End_Object // oOrderhea_DD
Object oOrderdtl_DD is a Orderdtl_DataDictionary
Set DDO_Server to oOrderhea_DD
End_Object // oOrderhea_DD
Esta estructura de DDO ahora contiene los DDOs hijos requeridos y, por tanto, los borrados de los
registros de OrderHea serán admitidos. Sin embargo estas estructuras, generalmente, no son tan
simples. Si el DDO hijo (OrderDtl) contuviera “tablas padre” adicionales requeridas, entonces
tienen que estar presentes esos DDOs hijos y sus respectivos DDOs padres. La estructura de DDO
podría ser:
Object oVendor_DD is a Vendor_DataDictionary
End_Object // oVendor_DD
Object oInvt_DD is a Invt_DataDictionary
Set DDO_Server to oVendor_DD
End_Object // oInvt_DD
Object oCustomer_DD is a Customer_DataDictionary
End_Object // oCustomer_DD
Object oSalesp_DD is a Salesp_DataDictionary
End_Object // oSalesp_DD
Object oOrderhea_DD is a Orderhea_DataDictionary
Set DDO_Server to oCustomer_DD
Set DDO_Server to oSalesp_DD
End_Object // oOrderhea_DD
Object oOrderdtl_DD is a Orderdtl_DataDictionary
Set DDO_Server to oOrderhea_DD
Set DDO_Server to oInvt_DD
End_Object // oOrderdtl_DD
Consulte lo siguiente
Definir relaciones externas Padre-hijo de Diccionario de Datos.
www.VisualDataflex.es
Página 7 de 5
Descargar