¡Esta es una revisión vieja del documento!
El proceso de reconstrucción de documentos se presenta cuando ocurren demoras en la respuesta de la DIAN ya sean por temas de red, latencia o errores no controlados. en estos casos no se obtiene respuesta exitosa de la DIAN, pero el procesamiento del documentos es realizado correctamente. La funcionalidad controla los consecutivos por medio de un consumo sincrónico razón por la cuál los consecutivos no se procesan cuando se recibe un error en la respuesta y eso genera el bloqueo de posteriores consumos.
Este proceso aplica sólo para el PST Interno en los modos de instalación:
El directorio de scripts se encuentra en la url del svn: SVN Directorio
A continuación describen los directorios (del repositorio) los cuales contienen scripts que deben se ejecutados en la implementación de la solución de reconstrucción de documentos, tener presente que algunos scripts no se ejecutarán secuencial sino dependiendo de la situación del proceso, además algunos deben ser adaptados al cliente y al documento por procesar. por lo tanto se recomienda siempre leer el archivo “Leeme.txt” de cada directorio antes de ejecutar cualquier scripts. Ademas se recomienda leer la documentación interna de cada scripts ya que define los pasos de configuración y ejecución.
No se debe estar trabajando en:
Ya el control de consecutivos y afectaciones presupuestales y contables van a ser afectados por el proceso.
A Continuación se describen los pasos según y el rol1) y el script que se debe parametrizar.
Inactivar Constante: 0000d Inactivar el Envío de Documentos.sql (Se debe preparar el script).
DECLARE --============================================================================== -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Variables de control --============================================================================== ERROR_FE EXCEPTION; PRAGMA EXCEPTION_INIT(ERROR_FE, -20999); GCVN_ERROR_NUMBER CONSTANT NUMBER := -20999; lva_msg VARCHAR2(2048) DEFAULT NULL; --============================================================================== -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Variables de procesos --============================================================================== lva_CODIGO_CLIENTE VARCHAR2(256) DEFAULT NULL; lva_COD_PST VARCHAR2(256) DEFAULT NULL; BEGIN --============================================================================== -- Fecha: 12:11 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co -- Captura de parametros de configuración del cliente --============================================================================== ROLLBACK; lva_msg := 'Captura de parametros de configuración del cliente'; --============================================================================== -- Fecha: 12:55 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co -- El codigo del cliente por lo generar se refiere al nombrede cliente sin espacios acompañado del contexto de ejecución -- Ejemplo para el cliente ADA en el ambiente de producción seria ADA_PROD -- Ejemplo para el cliente ADA en el ambiente de pruebas seria ADA_TEST --============================================================================== lva_CODIGO_CLIENTE := NULL;--REQUERIDO: código del cliente con el contexto (TEST o PROD) --============================================================================== -- Fecha: 7:20 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- El código del PST es una codificación interna que se le denota al cliente -- del servicio web que realizará el envio de documentos para los PST internos -- este código será ADA para los PST Externos este codigo será un acronimo -- del nombre del proveedor externo EJ (BytheWave = BTW, Tecnofactor = TNF) --============================================================================== lva_COD_PST := 'ADA';--REQUERIDO: código del pst --****************************************************************************** --****************************************************************************** -- NO MODIFICAR EL CODIGO FUENTE A PARTIR DE ACA --****************************************************************************** --****************************************************************************** --============================================================================== -- Fecha: 7:17 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Validaciones de control --============================================================================== lva_msg := 'Validaciones de control'; IF lva_CODIGO_CLIENTE IS NULL THEN lva_msg := 'No se ha definido el codigo del cliente en la configuración'; RAISE ERROR_FE; END IF; IF lva_COD_PST IS NULL THEN lva_msg := 'No se ha definido el codigo del pst en la configuración'; RAISE ERROR_FE; END IF; --============================================================================== -- Fecha: 10:59 a. m. martes, 29 de septiembre de 2020 - carlos.torres@ada.co -- Inactivar configuración --============================================================================== lva_msg := 'Inactivar configuración'; --============================================================================== -- Fecha: 8:12 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Inactivar el envío de documentos --============================================================================== UPDATE PRESUP01.PARAMETROS_FE_PST U SET U.ENVIAR_DOCUMENTOS = 'N' WHERE U.COD_CLIENTE = lva_CODIGO_CLIENTE AND U.COD_PST = lva_COD_PST; COMMIT; EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLCODE || ' - ' || SQLERRM || ' - msg: ' || lva_msg); ROLLBACK; SICOF.PCK_UTILIDADES.P_REGISTER_ERROR(SQLCODE, lva_msg, 'ERROR: ' || SQLERRM || dbms_utility.format_error_backtrace, 'BLOQUE ANONIMO'); raise_application_error(GCVN_ERROR_NUMBER,lva_msg); END;
Realizar la aprobación de la factura desde SICOF ERP.
Actualizar el consecutivo y prefijo de la numeración que corresponde al documentos en la cxc (Se debe preparar el script).
Activar constante: 0000a Activar Edición de Numeración.sql
--============================================================================== -- Fecha: 8:12 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Activa la opción --============================================================================== UPDATE sicof.m_constantes u SET aplica = 'S', valor_alfa = 'S' WHERE LOWER(TRIM(u.descripcion)) LIKE LOWER('%FE_ACCESO_ADMIN_TIPO_DOC%');
Actualizar el consecutivo consumido en el proceso (Desde la opción de Administración de Tipos de Documentos).
Inactivar constante: 0000a Inactivar Edición de Numeración.sql
--============================================================================== -- Fecha: 8:12 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Inactiva la opción --============================================================================== UPDATE sicof.m_constantes u SET aplica = 'N', valor_alfa = 'N' WHERE LOWER(TRIM(u.descripcion)) LIKE LOWER('%FE_ACCESO_ADMIN_TIPO_DOC%');
Recomendación: Verificar documento procesado y saldos contables.
Activar Constante: 0000d Activar el Envío de Documentos.sql (Se debe preparar el script).
DECLARE --============================================================================== -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Variables de control --============================================================================== ERROR_FE EXCEPTION; PRAGMA EXCEPTION_INIT(ERROR_FE, -20999); GCVN_ERROR_NUMBER CONSTANT NUMBER := -20999; lva_msg VARCHAR2(2048) DEFAULT NULL; --============================================================================== -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Variables de procesos --============================================================================== lva_CODIGO_CLIENTE VARCHAR2(256) DEFAULT NULL; lva_COD_PST VARCHAR2(256) DEFAULT NULL; BEGIN --============================================================================== -- Fecha: 12:11 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co -- Captura de parametros de configuración del cliente --============================================================================== ROLLBACK; lva_msg := 'Captura de parametros de configuración del cliente'; --============================================================================== -- Fecha: 12:55 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co -- El codigo del cliente por lo generar se refiere al nombrede cliente sin espacios acompañado del contexto de ejecución -- Ejemplo para el cliente ADA en el ambiente de producción seria ADA_PROD -- Ejemplo para el cliente ADA en el ambiente de pruebas seria ADA_TEST --============================================================================== lva_CODIGO_CLIENTE := NULL;--REQUERIDO: código del cliente con el contexto (TEST o PROD) --============================================================================== -- Fecha: 7:20 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- El código del PST es una codificación interna que se le denota al cliente -- del servicio web que realizará el envio de documentos para los PST internos -- este código será ADA para los PST Externos este codigo será un acronimo -- del nombre del proveedor externo EJ (BytheWave = BTW, Tecnofactor = TNF) --============================================================================== lva_COD_PST := 'ADA';--REQUERIDO: código del pst --****************************************************************************** --****************************************************************************** -- NO MODIFICAR EL CODIGO FUENTE A PARTIR DE ACA --****************************************************************************** --****************************************************************************** --============================================================================== -- Fecha: 7:17 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Validaciones de control --============================================================================== lva_msg := 'Validaciones de control'; IF lva_CODIGO_CLIENTE IS NULL THEN lva_msg := 'No se ha definido el codigo del cliente en la configuración'; RAISE ERROR_FE; END IF; IF lva_COD_PST IS NULL THEN lva_msg := 'No se ha definido el codigo del pst en la configuración'; RAISE ERROR_FE; END IF; --============================================================================== -- Fecha: 10:59 a. m. martes, 29 de septiembre de 2020 - carlos.torres@ada.co -- Inactivar configuración --============================================================================== lva_msg := 'Inactivar configuración'; --============================================================================== -- Fecha: 8:12 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co -- Inactivar el envío de documentos --============================================================================== UPDATE PRESUP01.PARAMETROS_FE_PST U SET U.ENVIAR_DOCUMENTOS = 'S' WHERE U.COD_CLIENTE = lva_CODIGO_CLIENTE AND U.COD_PST = lva_COD_PST; COMMIT; EXCEPTION WHEN OTHERS THEN dbms_output.put_line(SQLCODE || ' - ' || SQLERRM || ' - msg: ' || lva_msg); ROLLBACK; SICOF.PCK_UTILIDADES.P_REGISTER_ERROR(SQLCODE, lva_msg, 'ERROR: ' || SQLERRM || dbms_utility.format_error_backtrace, 'BLOQUE ANONIMO'); raise_application_error(GCVN_ERROR_NUMBER,lva_msg); END;
Una vez sean ejecutados todos los scripts el sistema esta preparado para el continuar con el flujo normal de envio de documentos.