Tabla de Contenido

Valores de Retorno del Método

Richard Smith Actualizado por Richard Smith

El JSON de respuesta del webservice BANCOS_INTEGRACION contiene los siguientes atributos:

  • servicio: Nombre del servicio web que se está ejecutando. Ejemplo: "BANCOS_INTEGRACION"
  • fecha_procesado: Contiene la fecha y hora en que fue consumido el servicio. Ejemplo: "2021-12-23T12:57:39Z",
  • status: Devuelve el estado de la solicitud. Este campo devuelve 0 (cero) si la solicitud pudo ser procesada, y devuelve 1 (uno) si se produjo algún error general. Cabe destacar este valor de estado indica si se produjo un error consumiendo el WS, pero no indica si los registros fueron insertados o no, ya que los mismo poder ser rechazados por validación de la información.
  • success_count: Esta variable indica la cantidad de registros que fueron procesados satisfactoriamente.
  • error_count: Esta variable indica le cantidad de errores que se produjeron. Cuando la variable error_count es mayor a cero, se devuelve un arreglo llamado errors con el detalle de los errores producidos. El campo error_count tendrá el número total de registros con error, no se toma en cuenta si un mismo registro tiene varios errores.
  • errors: La variable errors contiene un arreglo con el detalle de los registros que produjeron error. El arreglo de errores contiene el primer error encontrado en el registro.

Los campos de los registros de errores son los siguientes:

  • record: Número de registro que presentó el error.
  • cod_empresa: Código de la empresa asociado al registro.
  • cod_trabajador: Código del trabajador asociado al registro.
  • vlote: Número de lote. Si no se especifica ningún número de lote en el registro, devuelve los caracteres na.
  • error: Código de error Oracle.
  • vsqlerrm: Detalle del error Oracle.
  • fecha_integracion: Valor del campo “FECHA_INTEGRACION” asociado al registro.
  • fecha_procesado: Contiene la fecha y hora en que fue consumido el servicio.
  • usuario: usuario asociado a la implementación del webservice. Usuario WEBSERVICE.
  • servicio: Nombre del servicio web que se está ejecutando.

Tipos de errores devueltos por el WS

Errores generales: Los errores generales son los que impiden que se procese la totalidad del JSON. Los errores generales pueden deberse a un error en el JSON, al envío de un tipo de dato incorrecto o con un formato incorrecto, etc. Un error general detiene la ejecución del WS y devuelve un mensaje de error con un status 1 sin procesar ningún registro.

Errores de integridad de información: Los errores de integridad de informaciones son errores devueltos por Oracle. Dos ejemplos de este tipo de error pueden ser el error “ORA-00001: unique constraint” que indica que el registro que se está insertando ya existe en la tabla (según la clave primaria), o el error “ORA-02291: integrity constraint” que indica que se está rompiendo un constraint de integridad o foring key. Este tipo de errores no detienen la ejecución del WS y son devueltos en el arreglo errors del JSON de respuesta.

{
"servicio": "BANCOS_INTEGRACION",
"fecha_procesado": "2021-12-28T17:50:43Z",
"status": 0,
"success_count": 2,
"error_count": 0
}

Ejemplo de archivo JSON de respuesta con un registro procesado satisfactoriamente y un registro procesado con error. Se puede ver que el arreglo errors contiene el registro de error. Nótese que el valor de la variable status es igual a 0, ya que, a pesar de existir errores de validación, el JSON enviado en el body si pudo ser procesado.

{
"servicio": "BANCOS_INTEGRACION",
"fecha_procesado": "2021-12-28T17:51:57Z",
"status": 0,
"success_count": 1,
"error_count": 1,
"errors": [
{
"record": "2",
"cod_empresa": "4501",
"cod_trabajador": "7",
"vlote": "lote",
"error": "ORA-06512: at line 110\n",
"vsqlerrm": "ORA-06502: PL/SQL: numeric or value error: number precision too large",
"fecha_integracion": "2020-01-15T10:10:10Z",
"fecha_procesado": "2021-12-28T17:51:57Z",
"usuario": "WEBSERVICES",
"servicio": "BANCOS_INTEGRACION"
}
]
}

Ejemplo de archivo JSON de respuesta con los dos registros rechazados por validación de la información. Se puede ver que el arreglo errors contiene los dos registros de error.

{
"servicio": "BANCOS_INTEGRACION",
"fecha_procesado": "2021-12-28T17:54:44Z",
"status": 0,
"success_count": 0,
"error_count": 2,
"errors": [
{
"record": "1",
"cod_empresa": "4501",
"cod_trabajador": "7",
"vlote": "lote",
"error": "ORA-06512: at line 139\n",
"vsqlerrm": "ORA-00001: unique constraint (RPSCLIENTE.BANCOS_INTEGRACION_PK) violated",
"fecha_integracion": "2020-01-15T10:10:10Z",
"fecha_procesado": "2021-12-28T17:54:44Z",
"usuario": "WEBSERVICES",
"servicio": "BANCOS_INTEGRACION"
},
{
"record": "2",
"cod_empresa": "450",
"cod_trabajador": "13",
"vlote": "na",
"error": "ORA-06512: at line 139\n",
"vsqlerrm": "ORA-00001: unique constraint (RPSCLIENTE.BANCOS_INTEGRACION_PK) violated",
"fecha_integracion": "2020-01-15T10:10:10Z",
"fecha_procesado": "2021-12-28T17:54:44Z",
"usuario": "WEBSERVICES",
"servicio": "BANCOS_INTEGRACION"
}
]
}

Ejemplo de errores generales:

En el siguiente ejemplo se envió un JSON con un formato incorrecto en el body del WS, y se obtiene el siguiente error:

{
"servicio": "BANCOS_INTEGRACION",
"fecha_procesado": "2021-12-28T17:56:00Z",
"status": "1",
"error": "exception general ORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1163\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 401\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 736\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1083\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 898\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1019\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 889\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1087\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1145\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1222\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1256\nORA-06512: at line 103\n-ORA-20987: Error at line 25, col 8: strict mode JSON parser does not allow unquoted literals"
}

En el siguiente ejemplo se envió un carácter no numérico en un campo que solo acepta caracteres numéricos, y se devolvió el siguiente error:

{
"servicio": "BANCOS_INTEGRACION",
"fecha_procesado": "2021-12-28T17:56:41Z",
"status": "1",
"error": "exception general ORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1163\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 401\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 736\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 946\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1087\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 898\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1019\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 889\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1087\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1145\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1222\nORA-06512: at \"APEX_200100.WWV_FLOW_JSON\", line 1256\nORA-06512: at line 103\n-ORA-20987: Error at line 26, col 27: strict mode JSON parser does not allow unquoted literals"
}

¿Te resultó útil este artículo?

Body del Método

Contact