Herramientas de usuario

Herramientas del sitio


ada:tips:sicoferp:general:pbtows:procesos:developmentstandards:nomenclature:metadataservice

PBtoWS - Procesos - Backend Powerbuilder (WS-SOAP) - Estándares de Desarrollo - Nomenclatura: Metadata de Servicios SOAP (Expuestos)

Este capitulo contiene información relacionada con la nomenclatura de códificación para la metadata de los servicios SOAP expuestos, la cual ha sido definida por la organización.

Consideraciones

  • Se implementará nomenclatura en profundida, es decir, cada estructura json será descrita por una metadata.
  • Las metadatas se pueden asociar segun estructura del servicios (consumo/respuesta)
  • Toda respuesta (return_object) debe tener su metadata
  • Toda metadata debe estar relacionada con un componente.

Estructura de Respuesta de Servicio

A continuación se describe la estructura de devolución de servicio la cual aplica para todas las respuestas de los servicios SOAP expuestos por los componentes Powerbuilder, se toma como ejemplo el servicio de login:

{
    "return_component_code": "LOGIN",
    "return_code": "0",
    "return_user_message": "sesión vigente",
    "return_technical_message": "sesión vigente",
    "return_response_date": "16/10/2019 13:38:58",
    "return_object":     {
        "login": "SICOF",
        "company": [
        {
            "codigo_empresa": "9999999999",
            "nit": 892000757,3,
            "razon_social": "UNIVERSIDAD DE LOS LLANOS (PRINCIPAL)",
            "_metadata_json_": "LOGIN_RESPONSE_COMPANY"
        }
        ],
        "dependence": [
        {
            "codigo_dependencia": 67,
            "descripcion_dependencia": "ADMINISTRATIVA",
            "_metadata_json_": "LOGIN_SECOND_PHASE_DEPENDENCE_RESPONSE"
        }
        ],
        "token_session": "c6e612d569abed936d2abc1f61de85d415509acbbc1645e67b162388a87760c8",
        "multiempresa": "S",
        "_metadata_json_": "LOGIN_RENEW_RESPONSE"
    },
    "return_execution_time": "157"
}

Definición de la Respuesta de Servicio

  • return_component_code: Código del componente al cual pertenece la operación del servicio SOAP expuesto.
  • return_code: Código de retorno del consumo. [0:Cancel,1:Ok,-1:Error,2:Continue]
  • return_user_message: Mensaje destinado al usuario.}
  • 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_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).
  • _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.

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.

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

  1. Mayusculas: Los nombres de la metadata deben generarse en mayusculas.
  2. 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
  3. 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

Consiste en registrar la configuración de la estructura de la metadata la cual se debe realizar en las siguientes tablas de la base de datos de configuración:

  • 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_COMPONENT_SERVICE: Asocia las metadatas raíz a las operaciones (servicios) registradas de los componentes.

Estructura de las tablas de configuración

USER_ADM.TBL_ENTITY

Contiene el encabezado de la metadata o CRUD;

  • USER_ADM.TBL_ENTITY.ID: Identificador de registro
  • USER_ADM.TBL_ENTITY.ENTITY_NAME: Nombre de la metadata
  • USER_ADM.TBL_ENTITY.ENTITY_SQL: Sentencia de la metadata (Por lo general son consultas estáticas que describen la estructura general de la metadata)
  • USER_ADM.TBL_ENTITY.ENTITY_DESCRIPTION: Descripción asociada a la metadata
  • USER_ADM.TBL_ENTITY.ENTITY_TABLE: Tabla de actualiziación asociada a la metadata (Por lo general en las estructuras de definición estatica se utiliza DUAL)
  • USER_ADM.TBL_ENTITY.ENTITY_LOCAL: Identifica el origen de la estrcutura descrita (Local/Cliente)
  • USER_ADM.TBL_ENTITY.ESTADO: Estado del registro
  • USER_ADM.TBL_ENTITY.FECHA_REGISTRO: Fecha registro
  • USER_ADM.TBL_ENTITY.USUARIO_REGISTRO: Usuario registro
  • USER_ADM.TBL_ENTITY.ENTITY_TYPE_CODE: Tipo de entidad *
Ejemplo Registro: USER_ADM.TBL_ENTITY

USER_ADM.TBL_ENTITY_COLUMN

Contiene la definición de la estructura de la metadata/CRUD

  • USER_ADM.TBL_ENTITY_COLUMN.ID: Identificador de registro
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_NAME: Nombre de la metadata
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_COLUMN: Nombre del a columna o atributo
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_UPDATE: Indica si el atributo es actualizable (CRUD)
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_PK: Indica si el atributo hace parte del a llave primaria (CRUD)
  • COLUMN USER_ADM.TBL_ENTITY_COLUMN.ENTITY_REQUIRED_INSERT: Indica si el atributo es requerido en el proceso de inserción
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_REQUIRED_DELETE: Indica si el atributo es requerido en el proceso de eliminación
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_REQUIRED_UPDATE: Indica si el atributo es requerido en el proceso de actualización
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_DEFAULT_VALUE: Valor por defecto
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_VALIDATION: Validación de datawindow
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_MESSAGE_CODE: Mensaje de validación
  • USER_ADM.TBL_ENTITY_COLUMN.ESTADO: Estado del registro
  • USER_ADM.TBL_ENTITY_COLUMN.FECHA_REGISTRO: Fecha registro
  • USER_ADM.TBL_ENTITY_COLUMN.USUARIO_REGISTRO: Usuario registro
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_DATATYPE: Tipo de dato
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_DATALENGTH: Longitud del tipo de datos
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_DATAPRECISION: Precisión del tipo de datos
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_NULLABLE: Indica si el tipo de datos es nulo
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_LABEL: Etiqueta asociada a la columna
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_MIN_VALUE: Valor minimo permitido para el tipo de datos
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_MAX_VALUE: Valor máximo permitido para el tipo de datos
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_OBFUSCATE_COLUMN: Indica si la columna se ofusca para devolución de información
  • USER_ADM.TBL_ENTITY_COLUMN.ENTITY_CONTEXT_VIEW: Contexto de visualización de la entidad
  • USER_ADM.TBL_ENTITY_COLUMN.REF_ENTITY_COLUMN: Identificador de la columna referenciada como dependencia
  • 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.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

USER_ADM.TBL_COMPONENT_SERVICE

Contiene las operaciones de los servicios registrados a los componentes

  • 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)
Ejemplo Registro: USER_ADM.TBL_COMPONENT_SERVICE

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.

Ejemplo Asignación de metadata en powerbuilder

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).
ada/tips/sicoferp/general/pbtows/procesos/developmentstandards/nomenclature/metadataservice.txt · Última modificación: 2019/10/18 19:44 por administraidor