¡Esta es una revisión vieja del documento!
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.
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
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
MAYUSCULAS: Los nombres de la metadata deben generarse en mayusculas.
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_ENTITY_TYPE: Define el tipo de entidad.
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_VISIBLE