Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:metadataservice [2019/10/18 14:21] administraidor |
ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:metadataservice [2019/10/18 19:44] (actual) administraidor [Check List de Implementación] |
||
---|---|---|---|
Línea 47: | Línea 47: | ||
* **return_user_message**: Mensaje destinado al usuario.} | * **return_user_message**: Mensaje destinado al usuario.} | ||
* **return_technical_message**": Mensaje Técnico. | * **return_technical_message**": Mensaje Técnico. | ||
+ | * **return_number**: Variable de respuesta númerica. | ||
+ | * **return_string**: Variable de respuesta string. | ||
+ | * **return_datetime**: Variable de respuesta fecha/hora. | ||
* **return_response_date**: Fecha de respuesta del servicio (Es retornada desde el servidor). | * **return_response_date**: Fecha de respuesta del servicio (Es retornada desde el servidor). | ||
- | * **return_object**: Objeto Json de retorno. | + | * **return_object**: Objeto Json de retorno (Es el campo donde se debe configurar la metadata). |
* **return_execution_time**: Tiempo de procesamiento del servicio (Es diferente al tiempo de respuesta del servicio). | * **return_execution_time**: Tiempo de procesamiento del servicio (Es diferente al tiempo de respuesta del servicio). | ||
+ | * **_metadata_json_**: Metadata generica asociada a la operación del servicio. | ||
La metadata debe relacionarse en un atributo llamado **_metadata_json_** el cual debe estar contenido en cada estructura json de la respuesta y esa metadata debe estar previamente registrada en la base de datos de configuración. | La metadata debe relacionarse en un atributo llamado **_metadata_json_** el cual debe estar contenido en cada estructura json de la respuesta y esa metadata debe estar previamente registrada en la base de datos de configuración. | ||
+ | |||
===== Proceso de configuración de la Metadata ===== | ===== Proceso de configuración de la Metadata ===== | ||
El proceso de metadata requiere que se realicen varios tipos de configurción las cuales se describen a continuación. | El proceso de metadata requiere que se realicen varios tipos de configurción las cuales se describen a continuación. | ||
+ | |||
+ | ==== Definición de Nombramiento ==== | ||
+ | |||
+ | === Acciones de Operación === | ||
+ | Se definen como las acciones que pueden presentarse en la exposición de servicios generados por los componentes powerbuilder: | ||
+ | |||
+ | * **CONSUME**: Acción asociada a los consumos o invocaciones de las operaciones expuestas en los servicios. | ||
+ | * **RESPONSE**: Acción asociada a las respuestas o salidas generadas por las operaciones expuestas de lso servicios. | ||
+ | |||
+ | Las metadatas deben configurarse teniendo presente las siguientes reglas | ||
+ | |||
+ | - **Mayusculas**: Los nombres de la metadata deben generarse en mayusculas. | ||
+ | - **Nombres**: Toda metadata debe respetar la siguiente estructura en su nombramiento [**Componente]_[Accion de Operación]_[Nombre de proceso]**. Ejemplo: LOGIN_CONSUME_COMPANY, LOGIN_RESPONSE_COMPANY | ||
+ | - **Columnas**: Cuando una metadata represente tablas de una base de datos, el nombramiento de las columnas debe ser igual al de los campos de las tablas que mapea y debe reflejar las condiciones y/o restricciones de la columna como Nulos, tipos de datos, etc. | ||
==== Configuración DB ==== | ==== Configuración DB ==== | ||
Línea 60: | Línea 79: | ||
* **USER_ADM.TBL_ENTITY**: Tabla principal, contiene el encabezado de la configuración de la metadata. | * **USER_ADM.TBL_ENTITY**: Tabla principal, contiene el encabezado de la configuración de la metadata. | ||
* **USER_ADM.TBL_ENTITY_COLUMN**: Contiene el detalle ó descripción del contenido de la metadata. | * **USER_ADM.TBL_ENTITY_COLUMN**: Contiene el detalle ó descripción del contenido de la metadata. | ||
- | * **USER_ADM.TBL_ENTITY_TYPE**: Define el tipo de entidad. | + | * **USER_ADM.TBL_COMPONENT_SERVICE**: Asocia las metadatas raíz a las operaciones (servicios) registradas de los componentes. |
==== Estructura de las tablas de configuración ==== | ==== Estructura de las tablas de configuración ==== | ||
- | ==== USER_ADM.TBL_ENTITY ==== | + | === USER_ADM.TBL_ENTITY === |
Contiene el encabezado de la metadata o CRUD; | Contiene el encabezado de la metadata o CRUD; | ||
Línea 78: | Línea 97: | ||
* **USER_ADM.TBL_ENTITY.ENTITY_TYPE_CODE**: Tipo de entidad * | * **USER_ADM.TBL_ENTITY.ENTITY_TYPE_CODE**: Tipo de entidad * | ||
- | === Ejemplo Registro: USER_ADM.TBL_ENTITY === | + | == Ejemplo Registro: USER_ADM.TBL_ENTITY == |
{{ :ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:view_record_tbl_entity.png?600 |}} | {{ :ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:view_record_tbl_entity.png?600 |}} | ||
- | ==== USER_ADM.TBL_ENTITY_COLUMN ==== | + | === USER_ADM.TBL_ENTITY_COLUMN === |
Contiene la definición de la estructura de la metadata/CRUD | Contiene la definición de la estructura de la metadata/CRUD | ||
Línea 110: | Línea 129: | ||
* **USER_ADM.TBL_ENTITY_COLUMN.REF_COMPONENT_CODE**: Dependencia componente | * **USER_ADM.TBL_ENTITY_COLUMN.REF_COMPONENT_CODE**: Dependencia componente | ||
* **USER_ADM.TBL_ENTITY_COLUMN.REF_SERVICE_CODE**: Dependencia servicio | * **USER_ADM.TBL_ENTITY_COLUMN.REF_SERVICE_CODE**: Dependencia servicio | ||
+ | * **USER_ADM.TBL_ENTITY_COLUMN.ENTITY_REQUIRED**: Indica si la columna es requerida | ||
+ | * **USER_ADM.TBL_ENTITY_COLUMN.REF_PARAM_CONSUME_SERVICE**: Parametros de consumo del servicio dependencia de la columna | ||
+ | * **USER_ADM.TBL_ENTITY_COLUMN.ENTITY_SUB**: Referencia de la dependencia que soporta el atributo (solo para tipo JSON) | ||
+ | * **USER_ADM.TBL_ENTITY_COLUMN.ENTITY_SECTION**: Sección de agrupación para atributos (campos) de las entidades de consumo y respuesta de servicios | ||
+ | * **USER_ADM.TBL_ENTITY_COLUMN.MESSAGE_REFERENCE_CODE**: Código de mensajeria para soporte multilenguaje | ||
+ | * **USER_ADM.TBL_ENTITY_COLUMN.ENTITY_COLUMN_VISIBLE**: Indica si la columna de la entidad es visible | ||
+ | |||
+ | == Ejemplo Registro: USER_ADM.ENTITY_COLUMN == | ||
+ | {{ :ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:view_record_tbl_entity_column.png?600 |}} | ||
+ | |||
+ | === USER_ADM.TBL_COMPONENT_SERVICE=== | ||
+ | Contiene las operaciones de los servicios registrados a los componentes | ||
- | COMMENT ON COLUMN USER_ADM.TBL_ENTITY_COLUMN.ENTITY_REQUIRED IS 'Indica si la columna es requerida'; | + | * **USER_ADM.TBL_COMPONENT_SERVICE.ID**: Identificador de registro |
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.CODIGO**: Código de identificador externo | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.COMPONENT_CODE**: Código del Componente | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.DESCRIPCION**: Descripción del servicio | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.ESTADO**: Estado del registro | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.METHOD_DEFINITION**: Método o servicio | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.OPCION**: Opción de Menu | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.FECHA_REGISTRO**: Fecha de registro | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.USUARIO_REGISTRO**: Usuario registro | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.INVOCATION_CONTEXT**: Indica el contexto de invocación del servicio | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.ENTITY_CONSUME**: Entidad que representa la metadata de consumo | ||
+ | * **USER_ADM.TBL_COMPONENT_SERVICE.ENTITY_RESPONSE**: Entidad que representa la metadata de retorno del consumo return_object) | ||
- | COMMENT ON COLUMN USER_ADM.TBL_ENTITY_COLUMN.REF_PARAM_CONSUME_SERVICE IS 'Parametros de consumo del servicio dependencia de la columna'; | + | == Ejemplo Registro: USER_ADM.TBL_COMPONENT_SERVICE == |
+ | {{ :ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:view_record_tbl_component_service.png?600 |}} | ||
- | COMMENT ON COLUMN USER_ADM.TBL_ENTITY_COLUMN.ENTITY_SUB IS 'Referencia de la dependencia que soporta el atributo (solo para tipo JSON)'; | ||
- | COMMENT ON COLUMN USER_ADM.TBL_ENTITY_COLUMN.ENTITY_SECTION IS 'Sección de agrupación para atributos (campos) de las entitdades de consumo y respusta de servicios'; | + | ==== Configuración Powerbuilder ==== |
+ | Una vez configurada la metadata en la base de datos, se debe habilitar mediante código powerbuilder al procesar las respuestas de los servicios. Para hacerlo solo debe asignar en los objetos json la propiedad is_metadata_name con el nombre de la metadata que describe la estructura del json y que previamente fue definida. | ||
- | COMMENT ON COLUMN USER_ADM.TBL_ENTITY_COLUMN.MESSAGE_REFERENCE_CODE IS 'Código de mensajeria para soporte multilenguaje'; | + | == Ejemplo Asignación de metadata en powerbuilder == |
+ | {{ :ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:view_set_metada_pb.png?600 |}} | ||
- | COMMENT ON COLUMN USER_ADM.TBL_ENTITY_COLUMN.ENTITY_COLUMN_VISIBLE IS 'Indica si la columna de la entidad es visible'; | + | ==== Observaciones ==== |
+ | * Las metadata raíz de consumo (**CONSUME**) y respuesta (**RESPONSE**) se asocian en la tabla **USER_ADM.TBL_COMPONENT_SERVICE** | ||
+ | * Las metadatas internas se asignan en el código de componente. | ||
+ | * Por lo general las metadata se deben devolver en las respuestas de los servicios. | ||
+ | * Las metadatas de consumo no se devuelven en los componentes, sin embargo es posible consultarlas por medio de las operaciones de cada componente y se encuentran en la tabla **USER_ADM.TBL_COMPONENT_SERVICE**. | ||
+ | * Todas las operaciones (servicios) deben tener una metadata raíz que describa la estructura de retorno. | ||
+ | * Toda metadata debe describir en su totalidad el contenido de la respuesta y cada json en la respuesta debe tener su propia metadata. | ||
+ | ==== Check List de Implementación ==== | ||
+ | La siguiente lista es una guía de implementación de metadatas en los componentes powerbuilder y su uso debe tomarse como una referencia. | ||
+ | * Identificar la estructura de la respuesta que se quiere describir en la metadata. | ||
+ | * Separar cada json de la respuesta ya que cada uno representará una configuración de metadata | ||
+ | * Iniciar la configuración de las metadatas, se recomienda empezar con las metadatas externas e ir profundizando en las internas de esta forma se facilita la identificación y configuración ya que se resulve cada profundidad por separado. | ||
+ | * Una vez finalizadas los registros en las tablas de configuración proceda en asociar la metadata a la operación del servicio del componente que representa. | ||
+ | * Por último en el código powerbuilder (de respuesta) asocie al objeto json que describe la metadata el nombre que registro en la configuración (teniendo presente el nombramiento). |