Herramientas de usuario

Herramientas del sitio


ada:howto:sicoferp:factory:sicoferpscriptsdb:fe:rebuilddoc

¡Esta es una revisión vieja del documento!


Fabrica: Factura Electrónica - Reconstrucción de Documentos Electrónicos

Esta sección esta dedicada al proceso de reconstrucción de documentos electrónicos cuando se generan inconsistencias relacionadas con configuraciones de imagenes, rutas, formatos y valores.

Consideraciones previas

  • Actualmente la funcionalidad se libera en ambiente de pruebas mientras se estabiliza el proceso en la rama principal pero se puede regenerar documentos de ambientes productivos sin problemas.
  • Antes de reconstruir un doumento electrónico se debe validar que el cliente esté configurado en la base de datos centrlaizada de pruebas ADA (DB104) y este configurado el certificado en el ambiente de pruebas (10.1.20.93)
  • Se recomienda que el proceso sea realizado por un usuario que conozco el proceso de envio de documentos electrónicos.
  • Conocimientos de consumo de APis Rest (Servicios Web) en la aplicación Postman Web https://www.postman.com

Como reconstruir un documento electrónico

Se deben seguir lo siguientes pasos:

  • Ir al ambiente productivo de cliente (SicofERP/Appeon: Módulo Presupuesto)
  • Abrir la opción: Consulta de Envio de Documentos (DIAN)
  • Buscar el log de envio exitoso del documento que se desea reconstruir y extraer la url del consumo. Para los usuarios avanzados que tengan acceso a la base de datos se puede hacer esta consulta directamente de la tabla PRESUP01.FE_WS_PST_LOG_SEND en la columna SERVICIO
  • Tomar la url del envio del ambiente productivo (Ejemplo: http://10.1.20.83:8080/ADAFE/webresources/pst/ef/ADA_TESTV3/9999999999/ADA/InvoiceType/25263/990010233/0) y modificarla con la información del ambiente de la funcionalidad de reconstrucción de la siguiente forma: http://10.1.20.93:8080/ADAFEV2/webresources/pst/pdf/ADA_TESTV3/9999999999/ADA/InvoiceType/25263/990010233/0 tener presente que se cambia la ip 10.1.20.83 por 10.1.20.93 se cambia el contexto ADAFE por ADAFEV2 y se cambia el path /ef/ por /pdf/ el resto de información se mantiene.
  • Tomar la url modificada en el paso anterior y ejecutarla en el postman como una petición GET
  • Tomar de la respuesta del servicio, copiando el contenido completo (Solo lo que está entre las comillas dobles) del campo formatoPdf
  • Buscar en internet paginas que realicen conversiones de base64 a pdf y seleccionar una
  • Copiar el contenido copiar y realizar la decodificación (por lo general tienen un bonot que indica la acción)
  • Guardar el pdf en disco local para procesamiento posterior.

¿Que es un proceso de integración externo?

En la facturación electrónica es el proceso mediante el cual se realiza el proceso de notificación electrónica es decir el servicio actual ya no realiza el proceso. Este modo se implementa cuando el proceso de notificación electrónica genera documentos personalizados de acuerdo a las necesidades del cliente o procesos ya que el modelo normal utiliza un proceso de representación generica tanto para el PDF como para el correo electrónico.

  • 23/102023: Se realiza implementación de control para determinar si el servicio actual realiza el proceso de notificación electrónica o se delega a un proceso de integración externo.

Modo de Implementación

Se adicionan las siguiente propiedades:

TABLACOLUMNATIPO DATODEFAULTCOMENTARIO
TBL_FE_CONEXION_CLIENTENOTIFICACION_ELECTRONICAVARCHAR2(1)'S'El valor S indica si el servicio realiza la notificación electrónica. N indica que el proceso de notificación electrónica es delegado al proceso de integración que continuará con el proceso.
FE_WS_PST_LOG_SENDRESPUESTA_FORMAT_QRCLOBEMPTY_CLOB()Columna que almacena el código QR en base64.
FE_WS_PST_LOG_SENDFECHA_VALIDACION_DIANVARCHAR2(32)NULLFecha de validación de la DIAN.
FE_WS_PST_LOG_SENDHORA_VALIDACION_DIANVARCHAR2(32)NULLHorade validación de la DIAN.
FE_WS_PST_LOG_SENDPREFIJO_DIANVARCHAR2(32)NULLPrefijo de la resolución de la DIAN vigente.
FE_WS_PST_LOG_SENDNOMBRE_ARCHIVOVARCHAR2(256)NULLNombre base utilizado para el nombramiento de los archivos que se entregarán al adquiriente.

Flujo de Implementación

Servicio de pruebas

Se libera ambiente de pruebas de la solución con la cual se pueden hacer las integraciones de notificación electrónicas externas.

AmbientePath BaseParametrosURL Ejemplo
Desarrollohttp://10.1.20.93:8080/ADAFEV2/webresources/pst/testADA_TESTV3/9999999999/ADA/InvoiceType/25378/SETP990050719/0http://10.1.20.93:8080/ADAFEV2/webresources/pst/test/ADA_TESTV3/9999999999/ADA/InvoiceType/25378/SETP990050719/0
Notas del Servicio de Pruebas
  • SETP990050719: Es el consecutivo del documento de ejemplo el cual puede ser modificado para obtener diferentes respuestas.

Consumo/Respuesta del servicio (Notficiación electrónica = 'N')

A continuación se describe la estructura de la respuesta del servicio cuando no está habilitada el servicio de notificación electrónica.

Ejemplo Consumo/Respuesta

#Request:http://10.1.20.93:8080/ADAFEV2/webresources/pst/test/ADA_TESTV3/9999999999/ADA/InvoiceType/25378/SETP990050719/0
 
#Response:
{
    "cufe": "07f193dfaa19c4071e892553026d212aeeb56ff19ea584f18ffee458ebf168afda2d0532cc73866453d6459e9e563025",
    "fechafactura": "2023-10-23",
    "QrCode": "iVBORw0KGgoAAAANSUhEUgAAAMgAAADIAQAAAACFI5MzAAADIUlEQVR42u3XOxK0KBAAYEjwCpLg1TCBK0iCmMgVJMGrSYJXgKT5mU123Cq3Ot4da6L5rKmiX/SQ9vaQn/zkJ/9dATJc1gA9xKKPRZIVI2sepRqnlOmZRw0okTrlIRpngE2XYjhRc9GhSMu3orCioz4zIWLNfMs4WTMt+nRW6JCHG1BCmPr7ecbtTfqzNR+lNccQ0j/y8yJA5AQ67MTqGgUPKBHrZZxY6MG3aDLHSMtKcrCrv3SLA4wrRtwypWJNClny4KaGEJhvJxhvZ+Q+LzphpPmwpV5SxxR8nBJO6mWA39ea59ozF1eEAK0hBH9GA4qmbFHCiF2dWnSmd89CQYkpJqTgs+gpqOk72+9C72vw/YWLxpGe37/2Ki20PG8hbcnNrboRJXUfpZxq23Vwcs0YgblM/nQU1LpPZ6oNIe2gd+iNRSOxao5fEX0XsFaOq+O+FtUPjRM1tMgrCDZtu9A7SsZeGzdwf4gBerughGjHQ/9OzSDIUDDSez7TtgvFj9HAMqLEEXMxU4jgdx7J3BACfUz27DErFiYWazDSu37y9QSlyJyZEitGoI/jfbGWA6HFLigphBg3WmL5uVtCMALT2Q8K+jCF9pHsG0J6lc9ukT1CtEbJHhX/KrugPUKTDzDUY/6e1+9y7n3oTzWBubOB7/O8S6t1O69hn9odivmeYq8Cg89DXmg2PmT6mEiv0mpIaSd6C6A4GMAICH0JXf3eb5hsyvckf5fe79wxO4d2Wasfs+pN2sH4BnYcMpmA+h0ltaXNMV5DJPyuB0rCtfZGKUzwlqVSKKmFnudOgQMTJtwNI2faCr/IHGm903atGIlTXL2bz57Duj+i8yqwEKbvvMzF1F0yghIrpr+us8Pkxc4FI+0attOf9eg14hhbMAJsjfPFU7uhx3X9vs3ehX4KcToIMy0uZMDIp+97QSmrTDrsY4q9ymdLk/ywSgxRkscG+S7rnVqFsW/Fn49FiVTm4PUzlesnI1ipd78wz5ZgeW7R/yKSUJiz6FNsSBklfbt1epd0OyRtj03oXXp0jPtcGtpHc0iM/P5n/eQn/yP5A1niynJRikO2AAAAAElFTkSuQmCC",
    "CodResponseDian": "00",
    "DescResponseDian": "Procesado Correctamente",
    "notificar": "TRUE",
    "ok": true,
    "succes": "TRUE",
    "formatoXml": "PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9InllcyI/PjxBdHRhY2hlZERvY3VtZW50IHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczpleHQ9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkV4dGVuc2lvbkNvbXBvbmVudHMtMiIgeG1sbnM6Y2JjPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25CYXNpY0NvbXBvbmVudHMtMiIgeG1sbnM6c3RzPSJkaWFuOmdvdjpjbzpmYWN0dXJhZWxlY3Ryb25pY2E6U3RydWN0dXJlcy0yLTEiIHhtbG5zOmNhYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQWdncmVnYXRlQ29tcG9uZW50cy0yIiB4bWxucz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6QXR0YWNoZWREb2N1bWVudC0yIiB4bWxuczpuczc9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkludm9pY2UtMiI+PGV4dDpVQkxFeHRlbnNpb25zPjxleHQ6VUJMRXh0ZW5zaW9uPjxleHQ6RXh0ZW5zaW9uQ29udGVudC8+PC9leHQ6VUJMRXh0ZW5zaW9uPjwvZXh0OlVCTEV4dGVuc2lvbnM+PGNiYzpVQkxWZXJzaW9uSUQ+VUJMIDIuMTwvY2JjOlVCTFZlcnNpb25JRD48Y2JjOkN1c3RvbWl6YXRpb25JRD5Eb2N1bWVudG9zIGFkanVudG9zPC9jYmM6Q3VzdG9taXphdGlvbklEPjxjYmM6UHJvZmlsZUlEPkRJQU4gMi4xOiBGYWN0dXJhIEVsZWN0csOzbmljYSBkZSBWZW50YTwvY2JjOlByb2ZpbGVJRD48Y2JjOlByb2ZpbGVFeGVjdXRpb25JRD4yPC9jYmM6UHJvZmlsZUV4ZWN1dGlvbklEPjxjYmM6SUQ+U0VUUFNFVFA5OTAwNTA3MTg8L2NiYzpJRD48Y2JjOklzc3VlRGF0ZT4yMDIzLTEwLTIzPC9jYmM6SXNzdWVEYXRlPjxjYmM6SXNzdWVUaW1lPjE3OjIxOjM0LTA1OjAwPC9jYmM6SXNzdWVUaW1lPjxjYmM6RG9jdW1lbnRUeXBlPkNvbnRlbmVkb3IgZGUgRmFjdHVyYSBFbGVjdHLDs25pY2E8L2NiYzpEb2N1bWVudFR5cGU+PGNiYzpQYXJlbnREb2N1bWVudElEPlNFVFBTRVRQOTkwMDUwNzE4PC9jYmM6UGFyZW50RG9jdW1lbnRJRD48Y2FjOlNlbmRlclBhcnR5PjxjYWM6UGFydHlUYXhTY2hlbWU+PGNiYzpSZWdpc3RyYXRpb25OYW1lPkFEQSBTLkEuUzwvY2JjOlJlZ2lzdHJhdGlvbk5hbWU+PGNiYzpDb21wYW55SUQgc2NoZW1lSUQ9IjQiIHNjaGVtZU5hbWU9IjMxIiBzY2hlbWVBZ2VuY3lJRD0iMTk1IiBzY2hlbWVBZ2VuY3lOYW1lPSJDTywgRElBTiAoRGlyZWNjacOzbiBkZSBJbXB1ZXN0b3MgeSBBZHVhbmFzIE5hY2lvbmFsZXMpIiBzY2hlbWVWZXJzaW9uSUQ9IjEiPjgwMDE2NzQ5NDwvY2JjOkNvbXBhbnlJRD48Y2JjOlRheExldmVsQ29kZT5PLTQ3PC9jYmM6VGF4TGV2ZWxDb2RlPjxjYWM6VGF4U2NoZW1lPjxjYmM6SUQ+MDE8L2NiYzpJRD48Y2JjOk5hbWU+SVZBPC9jYmM6TmFtZT48L2NhYzpUYXhTY2hlbWU+PC9jYWM6UGFydHlUYXhTY2hlbWU+PC9jYWM6U2VuZGVyUGFydHk+PGNhYzpSZWNlaXZlclBhcnR5PjxjYWM6UGFydHlUYXhTY2hlbWU+PGNiYzpSZWdpc3RyYXRpb25OYW1lPkFEQSBTLkEuPC9jYmM6UmVnaXN0cmF0aW9uTmFtZT48Y2JjOkNvbXBhbnlJRCBzY2hlbWVJRD0iNCIgc2NoZW1lTmFtZT0iMzEiIHNjaGVtZUFnZW5jeUlEPSIxOTUiIHNjaGVtZUFnZW5jeU5hbWU9IkNPLCBESUFOIChEaXJlY2Npw7NuIGRlIEltcHVlc3RvcyB5IEFkdWFuYXMgTmFjaW9uYWxlcykiIHNjaGVtZVZlcnNpb25JRD0iMSI+ODAwMTY3NDk0PC9jYmM6Q29tcGFueUlEPjxjYmM6VGF4TGV2ZWxDb2RlPk8tNDc8L2NiYzpUYXhMZXZlbENvZGU+PGNhYzpUYXhTY2hlbWU+PGNiYzpJRD4wMTwvY2JjOklEPjxjYmM6TmFtZT5JVkE8L2NiYzpOYW1lPjwvY2FjOlRheFNjaGVtZT48L2NhYzpQYXJ0eVRheFNjaGVtZT48L2NhYzpSZWNlaXZlclBhcnR5PjxjYWM6QXR0YWNobWVudD48Y2FjOkV4dGVybmFsUmVmZXJlbmNlPjxjYmM6TWltZUNvZGU+dGV4dC94bWw8L2NiYzpNaW1lQ29kZT48Y2JjOkVuY29kaW5nQ29kZT5VVEYtODwvY2JjOkVuY29kaW5nQ29kZT48Y2JjOkRlc2NyaXB0aW9uPjwhW0NEQVRBWzw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+PEludm9pY2UgeG1sbnM9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkludm9pY2UtMiIgeG1sbnM6Y2FjPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6c2NoZW1hOnhzZDpDb21tb25BZ2dyZWdhdGVDb21wb25lbnRzLTIiIHhtbG5zOmNiYz0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6Q29tbW9uQmFzaWNDb21wb25lbnRzLTIiIHhtbG5zOmRzPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwLzA5L3htbGRzaWcjIiB4bWxuczpleHQ9InVybjpvYXNpczpuYW1lczpzcGVjaWZpY2F0aW9uOnVibDpzY2hlbWE6eHNkOkNvbW1vbkV4dGVuc2lvbkNvbXBvbmVudHMtMiIgeG1sbnM6c3RzPSJkaWFuOmdvdjpjbzpmYWN0dXJhZWxlY3Ryb25pY2E6U3RydWN0dXJlcy0yLTEiIHhtbG5zOnhhZGVzPSJodHRwOi8vdXJpLmV0c2kub3JnLzAxOTAzL3YxLjMuMiMiIHhtbG5zOnhhZGVzMTQxPSJodHRwOi8vdXJpLmV0c2kub3JnLzAxOTAzL3YxLjQuMSMiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhzaTpzY2hlbWFMb2NhdGlvbj0idXJuOm9hc2lzOm5hbWVzOnNwZWNpZmljYXRpb246dWJsOnNjaGVtYTp4c2Q6SW52b2ljZS0yICBodHRwOi8vZG9jcy5vYXNpcy1vcGVuLm9yZy91Ymwvb3MtVUJMLTIuMS94c2QvbWFpbmRvYy9VQkwtSW52b2ljZS0yLjEueHNkIj48ZXh0OlVCTEV4dGVuc2lvbnM+PGV4dDpVQkxFeHRlbnNpb24+PGV4dDpFeHRlbnNpb25Db250ZW50PjxzdHM6RGlhbkV4dGVuc2lvbnM+PHN0czpJbnZvaWNlQ29udHJvbD48c3RzOkludm9pY2VBdXRob3JpemF0aW9uPjE4NzYwMDAwMDAxPC9zdHM6SW52b2ljZUF1dGhvcml6YXRpb24+PHN0czpBdXRob3JpemF0aW9uUGVyaW9kPjxjYmM6U3RhcnREYXRlPjIwMTktMDEtMTk8L2NiYzpTdGFydERhdGU+PGNiYzpFbmREYXRlPjIwMzAtMDEtMTk8L2NiYzpFbmREYXRlPjwvc3RzOkF1dGhvcml6YXRpb25QZXJpb2Q+PHN0czpBdXRob3JpemVkSW52b2ljZXM+PHN0czpQcmVmaXg+U0VUUDwvc3RzOlByZWZpeD48c3RzOkZyb20+OTkwMDAwMDAwPC9zdHM6RnJvbT48c3RzOlRvPjk5NTAwMDAwMDwvc3RzOlRvPjwvc3RzOkF1dGhvcml6ZWRJbnZvaWNlcz48L3N0czpJbnZvaWNlQ29udHJvbD48c3RzOkludm9pY2VTb3VyY2U+PGNiYzpJZGVudGlmaWNhdGlvbkNvZGUgbGlzdEFnZW5jeUlEPSI2IiBsaXN0QWdlbmN5TmFtZT0iVW5pdGVkIE5hdGlvbnMgRWNvbm9taWMgQ29tbWlzc2lvbiBmb3IgRXVyb3BlIiBsaXN0U2NoZW1lVVJJPSJ1cm46b2FzaXM6bmFtZXM6c3BlY2lmaWNhdGlvbjp1Ymw6Y29kZWxpc3Q6Z2M6Q291bnRyeUlkZW50aWZpY2F0aW9uQ29kZS0yLjEiPkNPPC9jYmM6SWRlbnRpZmljYXRpb25Db2RlPjwvc3RzOkludm9pY2VTb3VyY2U+PHN0czpTb2Z0d2FyZVByb3ZpZGVyPjxzdHM6UHJvdmlkZXJJRCBzY2hlbWVBZ2VuY3lJRD0iMTk1IiBzY2hlbWVBZ2VuY3lOYW1lPSJDTywgRElBTiAoRGlyZWNjacOzbiBkZSBJbXB1ZXN0b3MgeSBBZHVhbmFzIE5hY2lvbmFsZXMpIiBzY2hlbWVJRD0iNCIgc2NoZW1lTmFtZT0iMzEiPjgwMDE2NzQ5NDwvc3RzOlByb3ZpZGVySUQ+PHN0czpTb2Z0d2FyZUlEIHNjaGVtZUFnZW5jeUlEPSIxOTUiIHNjaGVtZUFnZW5jeU5hbWU9IkNPLCBESUFOIChEaXJlY2Npw7NuIGRlIEltcHVlc3RvcyB5IEFkdWFuYXMgTmFjaW9uYWxlcykiPmE0ZTU0NzFmLTBhN2UtNGQwMC1hNzZiLWQ2ODY5YmNlNmQ4Nzwvc3RzOlNvZnR3YXJlSUQ+PC9zdHM6U29mdHdhcmVQcm92aWRlcj48c3RzOlNvZnR3YXJlU2VjdXJpdHlDb2RlIHNjaGVtZUFnZW5jeUlEPSIxOTUiIHNjaGVtZUFnZW5jeU5hbWU9IkNPLCBESUFOIChEaXJlY2Npw7NuIGRlIEltcHVlc3RvcyB5IEFkdWFuYXMgTmFjaW9uYWxlcykiPjJiMjA2M2FmNmRhM2JlMTVhZTlkMGJlYzE4ZTBmN2FlZmVhMmQ3NDBjZjAxZjM2YWM1NDIwYmUwMWVhMTYzYTE3NmYzMTgwYzJjYjIzYmYzOThjNzY1M2Y5ZjU0ZTliYjwvc3RzOlNvZnR3YXJlU2VjdXJpdHlDb2RlPjxzdHM6QXV0aG9yaXphdGlvblByb3ZpZGVyPjxzdHM6QXV0aG9yaXphdGlvblByb3ZpZGVySUQgc2NoZW1lQWdlbmN5SUQ9IjE5NSIgc2NoZW1lQWdlbmN5TmFtZT0iQ08sIERJQU4gKERpcmVjY2nDs24gZGUgSW1wdWVzdG9zIHkgQWR1YW5hcyBOYWNpb25hbGVzKSIgc2NoZW1lSUQ9IjQiIHNjaGVtZU5hbWU9IjMxIiBzY2hlbWVWZXJzaW9uSUQ9IjEiPjgwMDE5NzI2ODwvc3RzOkF1dGhvcml6YXRpb25Qcm92aWRlcklEPjwvc3RzOkF1dGhvcml6YXRpb25Qcm92aWRlcj48c3RzOlFSQ29kZT5Ocm9GYWN0dXJhPVNFVFA5OTAwNTA3MTgKTml0RmFjdHVyYWRvcj04MDAxNjc0OTQKTml0QWRxdWlyaWVudGU9ODAwMTY3NDk0CkZlY2hhRmFjdHVyYT0yMDIzLTEwLTIzClZhbG9yVG90YWxGYWN0dXJhPTExOTAwMDAuMDAKQ1VGRT0wN2YxOTNkZmFhMTljNDA3MWU4OTI1NTMwMjZkMjEyYWVlYjU2ZmYxOWVhNTg0ZjE4ZmZlZTQ1OGViZjE2OGFmZGEyZDA1MzJjYzczODY2NDUzZDY0NTllOWU1NjMwMjU8L3N0czpRUkNvZGU+PC9zdHM6RGlhbkV4dGVuc2lvbnM+PC9leHQ6RXh0ZW5zaW9uQ29udGVudD48L2V4dDpVQkxFeHRlbnNpb24+PGV4dDpVQkxFeHRlbnNpb24+PGV4dDpFeHRlbnNpb25Db250ZW50PjxkczpTaWduYXR1cmUgSWQ9InhtbGRzaWctOTVhYjU4MDItZmJlZC00MjU2LTlkMWQtMDhkNTY2MGI1ZTNjIj48ZHM6U2lnbmVkSW5mbz48ZHM6Q2Fub25pY2FsaXphdGlvbk1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+PGRzOlNpZ25hdHVyZU1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZHNpZy1tb3JlI3JzYS1zaGEyNTYiLz48ZHM6UmVmZXJlbmNlIElkPSJ4bWxkc2lnLTk1YWI1ODAyLWZiZWQtNDI1Ni05ZDFkLTA4ZDU2NjBiNWUzYy1yZWYwIiBVUkk9IiI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvMDkveG1sZHNpZyNlbnZlbG9wZWQtc2lnbmF0dXJlIi8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+bWZZQUZRY01qTWRIRlArbTF4WWc3WDdwQ3lTMkVtZVBTa2tZQ0lWT01oOD08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2UgVVJJPSIjeG1sZHNpZy05NWFiNTgwMi1mYmVkLTQyNTYtOWQxZC0wOGQ1NjYwYjVlM2Mta2V5aW5mbyI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+aHNjYytKdDhERXRxMVJZcnRML2lXdnI5WVlYWURKU3pQRFViSFBHOUhsST08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjxkczpSZWZlcmVuY2UgVHlwZT0iaHR0cDovL3VyaS5ldHNpLm9yZy8wMTkwMyNTaWduZWRQcm9wZXJ0aWVzIiBVUkk9IiN4bWxkc2lnLTk1YWI1ODAyLWZiZWQtNDI1Ni05ZDFkLTA4ZDU2NjBiNWUzYy1zaWduZWRwcm9wcyI+PGRzOlRyYW5zZm9ybXM+PGRzOlRyYW5zZm9ybSBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnL1RSLzIwMDEvUkVDLXhtbC1jMTRuLTIwMDEwMzE1Ii8+PC9kczpUcmFuc2Zvcm1zPjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+bnFtS3BraTNkOC90Y2FtcWdxSFZHZ2x5aVFDaDJibGR1Qit3MTdOTlJ3UT08L2RzOkRpZ2VzdFZhbHVlPjwvZHM6UmVmZXJlbmNlPjwvZHM6U2lnbmVkSW5mbz48ZHM6U2lnbmF0dXJlVmFsdWUgSWQ9InhtbGRzaWctOTVhYjU4MDItZmJlZC00MjU2LTlkMWQtMDhkNTY2MGI1ZTNjLXNpZ3ZhbHVlIj5mY2lCZ1Q5a2M4dVkrWU44QzBKbHZncmVMck9JVDdmdDQydU50cEhrSVB6enNvQ3hUSU1YTTBxdUtZT1hBY0pxR0tCMGd6SitLeVdmdmpjUnpmaTZrOU1GUWQ0UGR2MGRIZG9mSGRwQzVTOG4vVTRIdEtBZkNpMVZ4Y2cxMG5mT1J3NHA5QlZkZmxtb2k4M1ZGN3BzNGhaOXYzR2pYcFdvOFJpVkVLcG5hSjRkRVlTUERSc3BsTVUzTi92d2pSallhVStYazl1QlBBZ0NSOERDVmRxdDJaRXJOeDRmSjRVc2VoUUk0dkVxRURHVFQrd1RWekJJamVqMXJSVVg2QWRXS01Cb2lCcy9Zc2EvOHhFOWt6VW8xYkU5MWZqTXV5bDNIc0NqYnNQdU1oMHk4TjFMUElxY3RXeTQva2E3TzgwZ2J1Q0FWU3NzRzlYZzdJUUF0ZmhXNHc9PTwvZHM6U2lnbmF0dXJlVmFsdWU+PGRzOktleUluZm8gSWQ9InhtbGRzaWctOTVhYjU4MDItZmJlZC00MjU2LTlkMWQtMDhkNTY2MGI1ZTNjLWtleWluZm8iPjxkczpYNTA5RGF0YT48ZHM6WDUwOUNlcnRpZmljYXRlPk1JSUhBVENDQmVtZ0F3SUJBZ0lRSVVIRk8wQWVyZlprZUpxamhkRGFYREFOQmdrcWhraUc5dzBCQVFzRkFEQ0JxREVjTUJvR0ExVUVDUXdUZDNkM0xtTmxjblJwWTJGdFlYSmhMbU52YlRFUE1BMEdBMVVFQnd3R1FrOUhUMVJCTVJrd0Z3WURWUVFJREJCRVNWTlVVa2xVVHlCRFFWQkpWRUZNTVFzd0NRWURWUVFHRXdKRFR6RVlNQllHQTFVRUN3d1BUa2xVSURnek1EQTRORFF6TXkwM01SZ3dGZ1lEVlFRS0RBOURSVkpVU1VOQlRVRlNRU0JUTGtFeEd6QVpCZ05WQkFNTUVrRkRJRk5WUWlCRFJWSlVTVU5CVFVGU1FUQWdGdzB5TXpBMk1ERXhNekU0TWpkYUdBOHlNREkxTURVek1URXpNVGd5Tmxvd2dnRVhNUmd3RmdZRFZRUUVEQTlGUTBoRlZrVlNVa2tnVUVWU1JWb3hLVEFuQmdOVkJBa01JRXRTSURNMUlFRWdNVFVnUWlBek5TQkZSQ0JRVWtsVFRVRWdUMFlnTlRBeE1SSXdFQVlEVlFRSURBbEJUbFJKVDFGVlNVRXhJREFlQmdOVkJBc01GMFpCUTFSVlVrRkRTVTlPSUVWTVJVTlVVazlPU1VOQk1SQXdEZ1lEVlFRRkV3Y3hPRFV5TWpNeE1Sb3dHQVlLS3dZQkJBR0J0V01DQXhNS09EQXdNVFkzTkRrME5ERVlNQllHQ2lzR0FRUUJnYlZqQWdJVENEY3hOekEwTXpBd01SQXdEZ1lEVlFRS0RBZEJSRUVnVTBGVE1SRXdEd1lEVlFRSERBaE5SVVJGVEV4SlRqRU9NQXdHQTFVRUtnd0ZRMFZUUVZJeEN6QUpCZ05WQkFZVEFrTlBNUkF3RGdZRFZRUUREQWRCUkVFZ1UwRlRNSUlCSURBTkJna3Foa2lHOXcwQkFRRUZBQU9DQVEwQU1JSUJDQUtDQVFFQXRMOUxzRHdINTdWbGpydlNVb0NmOTlReTgvY2RUSyswaHJ6eDF3SkVtV2RZdi9HWlBnbjdUMU1mZG5XNFBGWUdTUllmYy8rMVlTbktkQm1iMFhqSUxYQzhmdTlIb250Sk1uQ0J3QTBUNkVjdUNVVnlmY3pKTjBOMWhCWDlRbytpMWwxWjBLQ1ZLOFEwUGNETnlpRkl0QkJGdnhSd09kUmJabklld1dvditYUmk5WW43dytpU0NKcVl2cVF5YXc2YnNSRE9oeDdQeWVKYWVwVExCNmRvTGRJSnVyRzhjUXlUVDhac0pYdjhvR2pSamlUejFWZHdmSGxyblcyQlRrZmRHeG5VZ3d5YmdpTjdTclA1VytDM3NYeDUycVFEV1hUbDRWUjBVdi9iK0FUNDU1ZWp4dHdHSnNyK2xLVUhxVmNZbkpRS1ZBZmFqWFBCZk5oNmVVeU1pd0lCQTZPQ0FyTXdnZ0t2TURZR0NDc0dBUVVGQndFQkJDb3dLREFtQmdnckJnRUZCUWN3QVlZYWFIUjBjRG92TDI5amMzQXVZMlZ5ZEdsallXMWhjbUV1WTI4d0tnWURWUjBSQkNNd0lZRWZSRWxTUlVORFNVOU9Ma0ZFVFVsT1NWTlVVa0ZVU1ZaQlFFRkVRUzVEVHpDQjV3WURWUjBnQklIZk1JSGNNSUdaQmdzckJnRUVBWUcxWXpJQkFqQ0JpVEFyQmdnckJnRUZCUWNDQVJZZmFIUjBjRG92TDNkM2R5NWpaWEowYVdOaGJXRnlZUzVqYjIwdlpIQmpMekJhQmdnckJnRUZCUWNDQWpCT0dreE1hVzFwZEdGamFXOXVaWE1nWkdVZ1oyRnlZVzUwN1dGeklHUmxJR1Z6ZEdVZ1kyVnlkR2xtYVdOaFpHOGdjMlVnY0hWbFpHVnVJR1Z1WTI5dWRISmhjaUJsYmlCc1lTQkVVRU11TUQ0R0N5c0dBUVFCZ2JWakNnb0JNQzh3TFFZSUt3WUJCUVVIQWdJd0lSb2ZSR2x6Y0c5emFYUnBkbThnWkdVZ2FHRnlaSGRoY21VZ0tGUnZhMlZ1S1RBTUJnTlZIUk1CQWY4RUFqQUFNQTRHQTFVZER3RUIvd1FFQXdJRCtEQW5CZ05WSFNVRUlEQWVCZ2dyQmdFRkJRY0RBZ1lJS3dZQkJRVUhBd1FHQ0NzR0FRVUZCd01CTUIwR0ExVWREZ1FXQkJRTUpweWxXb1JsbitYSHQwdTU5V1NqRzdRN0d6QWZCZ05WSFNNRUdEQVdnQlNBY2N3eWtsaDE5QU1oT3F1K0hOT1A4aUFWN1RDQjF3WURWUjBmQklIUE1JSE1NSUhKb0lIR29JSERobDVvZEhSd09pOHZkM2QzTG1ObGNuUnBZMkZ0WVhKaExtTnZiUzl5WlhCdmMybDBiM0pwYjNKbGRtOWpZV05wYjI1bGN5OWhZMTl6ZFdKdmNtUnBibUZrWVY5alpYSjBhV05oYldGeVlWOHlNREUwTG1OeWJEOWpjbXc5WTNKc2htRm9kSFJ3T2k4dmJXbHljbTl5TG1ObGNuUnBZMkZ0WVhKaExtTnZiUzl5WlhCdmMybDBiM0pwYjNKbGRtOWpZV05wYjI1bGN5OWhZMTl6ZFdKdmNtUnBibUZrWVY5alpYSjBhV05oYldGeVlWOHlNREUwTG1OeWJEOWpjbXc5WTNKc01BMEdDU3FHU0liM0RRRUJDd1VBQTRJQkFRQU5peWNScXlmQWlRK2IyN09OOEh6Vmc1WUFzQ0tQbmdVTmdUUkprWDhsRmkzL0plRjZNMVI1VVlUTFVKd2hKU05JRmhHRlErWE5IYkNOTHlDNHh4cGgzdFdrcWptalgwZmtpNER0RlZycDdUSlNKREpkNWpVV3c2Y0hKaEV0VHBCN3drTlVpV0w0MzJib3BVbXUzaXlVNnFoelViZHVTZm5LbW9iendHRERCR2hJbkxodmdiQnorNkQrbDVpQy9Ca1J2eGVOY011ZmlicnhYZGR0K2dHMGZYWXAydUdKZFA4M01xMi9PS016VjdVTGJKUVcwczBGbEdZN24vbnk2YktMMGNqam1JZFpvZFo4c1hXcFdKSTFLVUtKcDVoaCt0RUIrNEtZR2hWWlJTRW9LVVQ4ME83NzhRUWJ4VWJPNXd4MzlpZEF0OVp6K21DV1R0cWhvREJ0PC9kczpYNTA5Q2VydGlmaWNhdGU+PC9kczpYNTA5RGF0YT48L2RzOktleUluZm8+PGRzOk9iamVjdD48eGFkZXM6UXVhbGlmeWluZ1Byb3BlcnRpZXMgVGFyZ2V0PSIjeG1sZHNpZy05NWFiNTgwMi1mYmVkLTQyNTYtOWQxZC0wOGQ1NjYwYjVlM2MiPjx4YWRlczpTaWduZWRQcm9wZXJ0aWVzIElkPSJ4bWxkc2lnLTk1YWI1ODAyLWZiZWQtNDI1Ni05ZDFkLTA4ZDU2NjBiNWUzYy1zaWduZWRwcm9wcyI+PHhhZGVzOlNpZ25lZFNpZ25hdHVyZVByb3BlcnRpZXM+PHhhZGVzOlNpZ25pbmdUaW1lPjIwMjMtMTAtMjNUMTc6MjE6MzQuNzEwLTA1OjAwPC94YWRlczpTaWduaW5nVGltZT48eGFkZXM6U2lnbmluZ0NlcnRpZmljYXRlPjx4YWRlczpDZXJ0Pjx4YWRlczpDZXJ0RGlnZXN0PjxkczpEaWdlc3RNZXRob2QgQWxnb3JpdGhtPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxLzA0L3htbGVuYyNzaGEyNTYiLz48ZHM6RGlnZXN0VmFsdWU+VUdNTHRRcDZTRkVXQTEwenB3MXVQTzJ6ZG4rWmQyM25aQnlzbXhoNUhndz08L2RzOkRpZ2VzdFZhbHVlPjwveGFkZXM6Q2VydERpZ2VzdD48eGFkZXM6SXNzdWVyU2VyaWFsPjxkczpYNTA5SXNzdWVyTmFtZT5jbj1BQyBTVUIgQ0VSVElDQU1BUkEsbz1DRVJUSUNBTUFSQSBTLkEsb3U9TklUIDgzMDA4NDQzMy03LGM9Q08sc3Q9RElTVFJJVE8gQ0FQSVRBTCxsPUJPR09UQSxzdHJlZXQ9d3d3LmNlcnRpY2FtYXJhLmNvbTwvZHM6WDUwOUlzc3Vlck5hbWU+PGRzOlg1MDlTZXJpYWxOdW1iZXI+NDQyMDYwMjM0ODU3MDQ2MjUyNDAwNDQzNTwvZHM6WDUwOVNlcmlhbE51bWJlcj48L3hhZGVzOklzc3VlclNlcmlhbD48L3hhZGVzOkNlcnQ+PC94YWRlczpTaWduaW5nQ2VydGlmaWNhdGU+PHhhZGVzOlNpZ25hdHVyZVBvbGljeUlkZW50aWZpZXI+PHhhZGVzOlNpZ25hdHVyZVBvbGljeUlkPjx4YWRlczpTaWdQb2xpY3lJZD48eGFkZXM6SWRlbnRpZmllcj5odHRwczovL2ZhY3R1cmFlbGVjdHJvbmljYS5kaWFuLmdvdi5jby9wb2xpdGljYWRlZmlybWEvdjIvcG9saXRpY2FkZWZpcm1hdjIucGRmPC94YWRlczpJZGVudGlmaWVyPjwveGFkZXM6U2lnUG9saWN5SWQ+PHhhZGVzOlNpZ1BvbGljeUhhc2g+PGRzOkRpZ2VzdE1ldGhvZCBBbGdvcml0aG09Imh0dHA6Ly93d3cudzMub3JnLzIwMDEvMDQveG1sZW5jI3NoYTI1NiIvPjxkczpEaWdlc3RWYWx1ZT5kTW9NdnRjRzVhSXpnWW8wdElzU1FlVkpCRG5VbmZTT2ZCcHhYcm1vcjBZPTwvZHM6RGlnZXN0VmFsdWU+PC94YWRlczpTaWdQb2xpY3lIYXNoPjwveGFkZXM6U2lnbmF0dXJlUG9saWN5SWQ+PC94YWRlczpTaWduYXR1cmVQb2xpY3lJZGVudGlmaWVyPjx4YWRlczpTaWduZXJSb2xlPjx4YWRlczpDbGFpbWVkUm9sZXM+PHhhZGVzOkNsYWltZWRSb2xlPnN1cHBsaWVyPC94YWRlczpDbGFpbWVkUm9sZT48L3hhZGVzOkNsYWltZWRSb2xlcz48L3hhZGVzOlNpZ25lclJvbGU+PC94YWRlczpTaWduZWRTaWduYXR1cmVQcm9wZXJ0aWVzPjwveGFkZXM6U2lnbmVkUHJvcGVydGllcz48L3hhZGVzOlF1YWxpZnlpbmdQcm9wZXJ0aWVzPjwvZHM6T2JqZWN0PjwvZHM6U2lnbmF0dXJlPjwvZXh0OkV4dGVuc2lvbkNvbnRlbnQ+PC9leHQ6VUJMRXh0ZW5zaW9uPjwvZXh0OlVCTEV4dGVuc2lvbnM+PGNiYzpVQkxWZXJzaW9uSUQ+VUJMIDIuMTwvY2JjOlVCTFZlcnNpb25JRD48Y2JjOkN1c3RvbWl6YXRpb25JRD4xMDwvY2JjOkN1c3RvbWl6YXRpb25JRD48Y2JjOlByb2ZpbGVJRD5ESUFOIDIuMTogRmFjdHVyYSBFbGVjdHLDs25pY2EgZGUgVmVudGE8L2NiYzpQcm9maWxlSUQ+PGNiYzpQcm9maWxlRXhlY3V0aW9uSUQ+MjwvY2JjOlByb2ZpbGVFeGVjdXRpb25JRD48Y2JjOklEPlNFVFA5OTAwNTA3MTg8L2NiYzpJRD48Y2JjOlVVSUQgc2NoZW1lSUQ9IjIiIHNjaGVtZU5hbWU9IkNVRkUtU0hBMzg0Ij4wN2YxOTNkZmFhMTljNDA3MWU4OTI1NTMwMjZkMjEyYWVlYjU2ZmYxOWVhNTg0ZjE4ZmZlZTQ1OGViZjE2OGFmZGEyZDA1MzJjYzczODY2NDUzZDY0NTllOWU1NjMwMjU8L2NiYzpVVUlEPjxjYmM6SXNzdWVEYXRlPjIwMjMtMTAtMjM8L2NiYzpJc3N1ZURhdGU+PGNiYzpJc3N1ZVRpbWU+MTU6NTY6MDQtMDU6MDA8L2NiYzpJc3N1ZVRpbWU+PGNiYzpJbnZvaWNlVHlwZUNvZGU+MDE8L2NiYzpJbnZvaWNlVHlwZUNvZGU+PGNiYzpEb2N1bWVudEN1cnJlbmN5Q29kZSBsaXN0QWdlbmN5SUQ9IjYiIGxpc3RBZ2VuY3lOYW1lPSJVbml0ZWQgTmF0aW9ucyBFY29ub21pYyBDb21taXNzaW9uIGZvciBFdXJvcGUiIGxpc3RJRD0iSVNPIDQyMTcgQWxwaGEiPkNPUDwvY2JjOkRvY3VtZW50Q3VycmVuY3lDb2RlPjxjYmM6TGluZUNvdW50TnVtZXJpYz4xPC9jYmM6TGluZUNvdW50TnVtZXJpYz48Y2FjOkFjY291bnRpbmdTdXBwbGllclBhcnR5PjxjYmM6QWRkaXRpb25hbEFjY291bnRJRD4xPC9jYmM6QWRkaXRpb25hbEFjY291bnRJRD48Y2FjOlBhcnR5PjxjYWM6UGFydHlJZGVudGlmaWNhdGlvbj48Y2JjOklEIHNjaGVtZUlEPSI0IiBzY2hlbWVOYW1lPSIzMSI+ODAwMTY3NDk0PC9jYmM6SUQ+PC9jYWM6UGFydHlJZGVudGlmaWNhdGlvbj48Y2FjOlBhcnR5TmFtZT48Y2JjOk5hbWU+QURBIFMuQS5TPC9jYmM6TmFtZT48L2NhYzpQYXJ0eU5hbWU+PGNhYzpQaHlzaWNhbExvY2F0aW9uPjxjYWM6QWRkcmVzcz48Y2JjOklEPjA1MDAxPC9jYmM6SUQ+PGNiYzpDaXR5TmFtZT5NRURFTExJTjwvY2JjOkNpdHlOYW1lPjxjYmM6UG9zdGFsWm9uZT4wNTAwMjM8L2NiYzpQb3N0YWxab25lPjxjYmM6Q291bnRyeVN1YmVudGl0eT5BTlRJT1FVSUEgPC9jYmM6Q291bnRyeVN1YmVudGl0eT48Y2JjOkNvdW50cnlTdWJlbnRpdHlDb2RlPjA1PC9jYmM6Q291bnRyeVN1YmVudGl0eUNvZGU+PGNhYzpBZGRyZXNzTGluZT48Y2JjOkxpbmUgbGFuZ3VhZ2VJRD0iZXMtQ08iPkNPTDwvY2JjOkxpbmU+PC9jYWM6QWRkcmVzc0xpbmU+PGNhYzpDb3VudHJ5PjxjYmM6SWRlbnRpZmljYXRpb25Db2RlPkNPPC9jYmM6SWRlbnRpZmljYXRpb25Db2RlPjxjYmM6TmFtZSBsYW5ndWFnZUlEPSJlcyI+Q29sb21iaWE8L2NiYzpOYW1lPjwvY2FjOkNvdW50cnk+PC9jYWM6QWRkcmVzcz48L2NhYzpQaHlzaWNhbExvY2F0aW9uPjxjYWM6UGFydHlUYXhTY2hlbWU+PGNiYzpSZWdpc3RyYXRpb25OYW1lPkFEQSBTLkEuUzwvY2JjOlJlZ2lzdHJhdGlvbk5hbWU+PGNiYzpDb21wYW55SUQgc2NoZW1lQWdlbmN5SUQ9IjE5NSIgc2NoZW1lQWdlbmN5TmFtZT0iQ08sIERJQU4gKERpcmVjY2nDs24gZGUgSW1wdWVzdG9zIHkgQWR1YW5hcyBOYWNpb25hbGVzKSIgc2NoZW1lSUQ9IjQiIHNjaGVtZU5hbWU9IjMxIiBzY2hlbWVWZXJzaW9uSUQ9IjEiPjgwMDE2NzQ5NDwvY2JjOkNvbXBhbnlJRD48Y2JjOlRheExldmVsQ29kZT5PLTQ3PC9jYmM6VGF4TGV2ZWxDb2RlPjxjYWM6UmVnaXN0cmF0aW9uQWRkcmVzcz48Y2JjOklEPjA1MDAxPC9jYmM6SUQ+PGNiYzpDaXR5TmFtZT5NRURFTExJTjwvY2JjOkNpdHlOYW1lPjxjYmM6UG9zdGFsWm9uZT4wNTAwMjM8L2NiYzpQb3N0YWxab25lPjxjYmM6Q291bnRyeVN1YmVudGl0eT5BTlRJT1FVSUEgPC9jYmM6Q291bnRyeVN1YmVudGl0eT48Y2JjOkNvdW50cnlTdWJlbnRpdHlDb2RlPjA1PC9jYmM6Q291bnRyeVN1YmVudGl0eUNvZGU+PGNhYzpBZGRyZXNzTGluZT48Y2JjOkxpbmUgbGFuZ3VhZ2VJRD0iZXMtQ08iPkNPTDwvY2JjOkxpbmU+PC9jYWM6QWRkcmVzc0xpbmU+PGNhYzpDb3VudHJ5PjxjYmM6SWRlbnRpZmljYXRpb25Db2RlPkNPPC9jYmM6SWRlbnRpZmljYXRpb25Db2RlPjxjYmM6TmFtZSBsYW5ndWFnZUlEPSJlcyI+Q29sb21iaWE8L2NiYzpOYW1lPjwvY2FjOkNvdW50cnk+PC9jYWM6UmVnaXN0cmF0aW9uQWRkcmVzcz48Y2FjOlRheFNjaGVtZT48Y2JjOklEPjAxPC9jYmM6SUQ+PGNiYzpOYW1lPklWQTwvY2JjOk5hbWU+PC9jYWM6VGF4U2NoZW1lPjwvY2FjOlBhcnR5VGF4U2NoZW1lPjxjYWM6UGFydHlMZWdhbEVudGl0eT48Y2JjOlJlZ2lzdHJhdGlvbk5hbWU+QURBIFMuQS5TPC9jYmM6UmVnaXN0cmF0aW9uTmFtZT48Y2JjOkNvbXBhbnlJRCBzY2hlbWVBZ2VuY3lJRD0iMTk1IiBzY2hlbWVBZ2VuY3lOYW1lPSJDTywgRElBTiAoRGlyZWNjacOzbiBkZSBJbXB1ZXN0b3MgeSBBZHVhbmFzIE5hY2lvbmFsZXMpIiBzY2hlbWVJRD0iNCIgc2NoZW1lTmFtZT0iMzEiIHNjaGVtZVZlcnNpb25JRD0iMSI+ODAwMTY3NDk0PC9jYmM6Q29tcGFueUlEPjxjYWM6Q29ycG9yYXRlUmVnaXN0cmF0aW9uU2NoZW1lPjxjYmM6SUQ+U0VUUDwvY2JjOklEPjwvY2FjOkNvcnBvcmF0ZVJlZ2lzdHJhdGlvblNjaGVtZT48L2NhYzpQYXJ0eUxlZ2FsRW50aXR5PjxjYWM6Q29udGFjdD48Y2JjOk5hbWU+QURBIFMuQS5TPC9jYmM6TmFtZT48Y2JjOlRlbGVwaG9uZT40MDM1MjQxPC9jYmM6VGVsZXBob25lPjxjYmM6RWxlY3Ryb25pY01haWw+c2ljb2ZlcnAudGVzdEBhZGEuY288L2NiYzpFbGVjdHJvbmljTWFpbD48L2NhYzpDb250YWN0PjwvY2FjOlBhcnR5PjwvY2FjOkFjY291bnRpbmdTdXBwbGllclBhcnR5PjxjYWM6QWNjb3VudGluZ0N1c3RvbWVyUGFydHk+PGNiYzpBZGRpdGlvbmFsQWNjb3VudElEPjE8L2NiYzpBZGRpdGlvbmFsQWNjb3VudElEPjxjYWM6UGFydHk+PGNhYzpQYXJ0eUlkZW50aWZpY2F0aW9uPjxjYmM6SUQgc2NoZW1lSUQ9IjQiIHNjaGVtZU5hbWU9IjMxIj44MDAxNjc0OTQ8L2NiYzpJRD48L2NhYzpQYXJ0eUlkZW50aWZpY2F0aW9uPjxjYWM6UGFydHlOYW1lPjxjYmM6TmFtZT5BREEgUy5BLjwvY2JjOk5hbWU+PC9jYWM6UGFydHlOYW1lPjxjYWM6UGh5c2ljYWxMb2NhdGlvbj48Y2FjOkFkZHJlc3M+PGNiYzpJRD4wNTAwMTwvY2JjOklEPjxjYmM6Q2l0eU5hbWU+TWVkZWxsw61uPC9jYmM6Q2l0eU5hbWU+PGNiYzpQb3N0YWxab25lPjA1MDAyMzwvY2JjOlBvc3RhbFpvbmU+PGNiYzpDb3VudHJ5U3ViZW50aXR5PkFudGlvcXVpYTwvY2JjOkNvdW50cnlTdWJlbnRpdHk+PGNiYzpDb3VudHJ5U3ViZW50aXR5Q29kZT4wNTwvY2JjOkNvdW50cnlTdWJlbnRpdHlDb2RlPjxjYWM6QWRkcmVzc0xpbmU+PGNiYzpMaW5lIGxhbmd1YWdlSUQ9ImVzLUNPIj5DT0w8L2NiYzpMaW5lPjwvY2FjOkFkZHJlc3NMaW5lPjxjYWM6Q291bnRyeT48Y2JjOklkZW50aWZpY2F0aW9uQ29kZT5DTzwvY2JjOklkZW50aWZpY2F0aW9uQ29kZT48Y2JjOk5hbWUgbGFuZ3VhZ2VJRD0iZXMiPkNvbG9tYmlhPC9jYmM6TmFtZT48L2NhYzpDb3VudHJ5PjwvY2FjOkFkZHJlc3M+PC9jYWM6UGh5c2ljYWxMb2NhdGlvbj48Y2FjOlBhcnR5VGF4U2NoZW1lPjxjYmM6UmVnaXN0cmF0aW9uTmFtZT5BREEgUy5BLjwvY2JjOlJlZ2lzdHJhdGlvbk5hbWU+PGNiYzpDb21wYW55SUQgc2NoZW1lQWdlbmN5SUQ9IjE5NSIgc2NoZW1lQWdlbmN5TmFtZT0iQ08sIERJQU4gKERpcmVjY2nDs24gZGUgSW1wdWVzdG9zIHkgQWR1YW5hcyBOYWNpb25hbGVzKSIgc2NoZW1lSUQ9IjQiIHNjaGVtZU5hbWU9IjMxIiBzY2hlbWVWZXJzaW9uSUQ9IjEiPjgwMDE2NzQ5NDwvY2JjOkNvbXBhbnlJRD48Y2JjOlRheExldmVsQ29kZT5PLTQ3PC9jYmM6VGF4TGV2ZWxDb2RlPjxjYWM6UmVnaXN0cmF0aW9uQWRkcmVzcz48Y2JjOklEPjA1MDAxPC9jYmM6SUQ+PGNiYzpDaXR5TmFtZT5NZWRlbGzDrW48L2NiYzpDaXR5TmFtZT48Y2JjOlBvc3RhbFpvbmU+MDUwMDIzPC9jYmM6UG9zdGFsWm9uZT48Y2JjOkNvdW50cnlTdWJlbnRpdHk+QW50aW9xdWlhPC9jYmM6Q291bnRyeVN1YmVudGl0eT48Y2JjOkNvdW50cnlTdWJlbnRpdHlDb2RlPjA1PC9jYmM6Q291bnRyeVN1YmVudGl0eUNvZGU+PGNhYzpBZGRyZXNzTGluZT48Y2JjOkxpbmUgbGFuZ3VhZ2VJRD0iZXMtQ08iPkNPTDwvY2JjOkxpbmU+PC9jYWM6QWRkcmVzc0xpbmU+PGNhYzpDb3VudHJ5PjxjYmM6SWRlbnRpZmljYXRpb25Db2RlPkNPPC9jYmM6SWRlbnRpZmljYXRpb25Db2RlPjxjYmM6TmFtZSBsYW5ndWFnZUlEPSJlcyI+Q29sb21iaWE8L2NiYzpOYW1lPjwvY2FjOkNvdW50cnk+PC9jYWM6UmVnaXN0cmF0aW9uQWRkcmVzcz48Y2FjOlRheFNjaGVtZT48Y2JjOklEPjAxPC9jYmM6SUQ+PGNiYzpOYW1lPklWQTwvY2JjOk5hbWU+PC9jYWM6VGF4U2NoZW1lPjwvY2FjOlBhcnR5VGF4U2NoZW1lPjxjYWM6UGFydHlMZWdhbEVudGl0eT48Y2JjOlJlZ2lzdHJhdGlvbk5hbWU+QURBIFMuQS48L2NiYzpSZWdpc3RyYXRpb25OYW1lPjxjYmM6Q29tcGFueUlEIHNjaGVtZUFnZW5jeUlEPSIxOTUiIHNjaGVtZUFnZW5jeU5hbWU9IkNPLCBESUFOIChEaXJlY2Npw7NuIGRlIEltcHVlc3RvcyB5IEFkdWFuYXMgTmFjaW9uYWxlcykiIHNjaGVtZUlEPSI0IiBzY2hlbWVOYW1lPSIzMSIgc2NoZW1lVmVyc2lvbklEPSIxIj44MDAxNjc0OTQ8L2NiYzpDb21wYW55SUQ+PC9jYWM6UGFydHlMZWdhbEVudGl0eT48Y2FjOkNvbnRhY3Q+PGNiYzpOYW1lPkFEQSBTLkEuPC9jYmM6TmFtZT48Y2JjOlRlbGVwaG9uZT40MDM1MjQxPC9jYmM6VGVsZXBob25lPjxjYmM6RWxlY3Ryb25pY01haWw+c2ljb2ZlcnAudGVzdEBhZGEuY288L2NiYzpFbGVjdHJvbmljTWFpbD48L2NhYzpDb250YWN0PjwvY2FjOlBhcnR5PjwvY2FjOkFjY291bnRpbmdDdXN0b21lclBhcnR5PjxjYWM6UGF5bWVudE1lYW5zPjxjYmM6SUQ+MTwvY2JjOklEPjxjYmM6UGF5bWVudE1lYW5zQ29kZT4xPC9jYmM6UGF5bWVudE1lYW5zQ29kZT48Y2JjOlBheW1lbnREdWVEYXRlPjIwMjMtMTAtMjM8L2NiYzpQYXltZW50RHVlRGF0ZT48L2NhYzpQYXltZW50TWVhbnM+PGNhYzpUYXhUb3RhbD48Y2JjOlRheEFtb3VudCBjdXJyZW5jeUlEPSJDT1AiPjE5MDAwMC4wMDwvY2JjOlRheEFtb3VudD48Y2FjOlRheFN1YnRvdGFsPjxjYmM6VGF4YWJsZUFtb3VudCBjdXJyZW5jeUlEPSJDT1AiPjEwMDAwMDAuMDA8L2NiYzpUYXhhYmxlQW1vdW50PjxjYmM6VGF4QW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTkwMDAwLjAwPC9jYmM6VGF4QW1vdW50PjxjYmM6UGVyVW5pdEFtb3VudCBjdXJyZW5jeUlEPSJDT1AiPjE5MDAwMC4wMDwvY2JjOlBlclVuaXRBbW91bnQ+PGNhYzpUYXhDYXRlZ29yeT48Y2JjOlBlcmNlbnQ+MTkuMDA8L2NiYzpQZXJjZW50PjxjYWM6VGF4U2NoZW1lPjxjYmM6SUQ+MDE8L2NiYzpJRD48Y2JjOk5hbWU+SVZBPC9jYmM6TmFtZT48L2NhYzpUYXhTY2hlbWU+PC9jYWM6VGF4Q2F0ZWdvcnk+PC9jYWM6VGF4U3VidG90YWw+PC9jYWM6VGF4VG90YWw+PGNhYzpMZWdhbE1vbmV0YXJ5VG90YWw+PGNiYzpMaW5lRXh0ZW5zaW9uQW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTAwMDAwMC4wMDwvY2JjOkxpbmVFeHRlbnNpb25BbW91bnQ+PGNiYzpUYXhFeGNsdXNpdmVBbW91bnQgY3VycmVuY3lJRD0iQ09QIj4xMDAwMDAwLjAwPC9jYmM6VGF4RXhjbHVzaXZlQW1vdW50PjxjYmM6VGF4SW5jbHVzaXZlQW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTE5MDAwMC4wMDwvY2JjOlRheEluY2x1c2l2ZUFtb3VudD48Y2JjOkFsbG93YW5jZVRvdGFsQW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MC4wMDwvY2JjOkFsbG93YW5jZVRvdGFsQW1vdW50PjxjYmM6UGF5YWJsZUFtb3VudCBjdXJyZW5jeUlEPSJDT1AiPjExOTAwMDAuMDA8L2NiYzpQYXlhYmxlQW1vdW50PjwvY2FjOkxlZ2FsTW9uZXRhcnlUb3RhbD48Y2FjOkludm9pY2VMaW5lPjxjYmM6SUQ+MTwvY2JjOklEPjxjYmM6SW52b2ljZWRRdWFudGl0eSB1bml0Q29kZT0iRUEiPjEwPC9jYmM6SW52b2ljZWRRdWFudGl0eT48Y2JjOkxpbmVFeHRlbnNpb25BbW91bnQgY3VycmVuY3lJRD0iQ09QIj4xMDAwMDAwLjAwPC9jYmM6TGluZUV4dGVuc2lvbkFtb3VudD48Y2FjOlRheFRvdGFsPjxjYmM6VGF4QW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTkwMDAwLjAwPC9jYmM6VGF4QW1vdW50PjxjYWM6VGF4U3VidG90YWw+PGNiYzpUYXhhYmxlQW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTAwMDAwMC4wMDwvY2JjOlRheGFibGVBbW91bnQ+PGNiYzpUYXhBbW91bnQgY3VycmVuY3lJRD0iQ09QIj4xOTAwMDAuMDA8L2NiYzpUYXhBbW91bnQ+PGNiYzpQZXJVbml0QW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTkwMDAwLjAwPC9jYmM6UGVyVW5pdEFtb3VudD48Y2FjOlRheENhdGVnb3J5PjxjYmM6UGVyY2VudD4xOS4wMDwvY2JjOlBlcmNlbnQ+PGNhYzpUYXhTY2hlbWU+PGNiYzpJRD4wMTwvY2JjOklEPjxjYmM6TmFtZT5JVkE8L2NiYzpOYW1lPjwvY2FjOlRheFNjaGVtZT48L2NhYzpUYXhDYXRlZ29yeT48L2NhYzpUYXhTdWJ0b3RhbD48L2NhYzpUYXhUb3RhbD48Y2FjOkl0ZW0+PGNiYzpEZXNjcmlwdGlvbj5IT1JBUyBERSBTRVJWSUNJTyBFU1BFQ0lBTElaQURPIDwvY2JjOkRlc2NyaXB0aW9uPjxjYWM6U3RhbmRhcmRJdGVtSWRlbnRpZmljYXRpb24+PGNiYzpJRD4wMDwvY2JjOklEPjwvY2FjOlN0YW5kYXJkSXRlbUlkZW50aWZpY2F0aW9uPjwvY2FjOkl0ZW0+PGNhYzpQcmljZT48Y2JjOlByaWNlQW1vdW50IGN1cnJlbmN5SUQ9IkNPUCI+MTAwMDAwLjAwPC9jYmM6UHJpY2VBbW91bnQ+PGNiYzpCYXNlUXVhbnRpdHkgdW5pdENvZGU9IkVBIj4xMC4wMDwvY2JjOkJhc2VRdWFudGl0eT48L2NhYzpQcmljZT48L2NhYzpJbnZvaWNlTGluZT48L0ludm9pY2U+XV0+PC9jYmM6RGVzY3JpcHRpb24+PC9jYWM6RXh0ZXJuYWxSZWZlcmVuY2U+PC9jYWM6QXR0YWNobWVudD48L0F0dGFjaGVkRG9jdW1lbnQ+",
    "formatoPdf": "Proceso delegado al servicio de integración",
    "sentDocIdLog": 1727,
    "fileName": "pdf080016749400023ffffffff.xml",
    "invoiceId": "",
    "prefix": "",
    "tracer": "***** Inicia el proceso de Factura Electronica DIAN *****\nURL:[/ADAFEV2]:URLConsulta Info Empresa.\nLectura de FeCertificateInfo: OK\nEstado: OK\nConstruccion conexion DB.\nEstado: OK\nHora: 23/10/2023 05:21:34\n* Consulta PST.\n* PST DIAN.\n* Busqueda de configuracion de archivo.\nconfProperties /opt/wildfly22/standalone/adafe_home/com/ada/adafe/certificado/800167494/Cliente.properties/opt/wildfly22/standalone/adafe_home/com/ada/adafe/certificado/800167494/Cliente.properties\n* Consulta de documento.\nConsulta Información en Vistas.\nTipo de Documento: InvoiceType\nCódigo Sicof: 25378\nNúmero Documento: SETP990050718\n\nConsultando  detalles \nConsultando Impuestos \nConsultando Grupo Impuestos \nESTADO: OK\nHORA: 23/10/2023 05:21:34\n* Consultando numero de documento Attached Document.\n-1\nNombre de documento \nad080016749400023ffffffff.xml\nConsultando numero de documento zip.\n-1\nNombre de documento \nz080016749400023ffffffff.zip\nNombre de documento PDF\npdf080016749400023ffffffff.pdf\nConsultando numero de documento.\nNombre de documento \npdf080016749400023ffffffff.xml\n* Generando objeto para documento.\nConstruirXML en formato UBL 2.1.\nLlenar datos de factura \n- Tipo de Documento: InvoiceType\n* Firmando documento.\n* Enviar documento.\n* Documento procesado.\n* Documento con respuesta exitosa.\n* Se prepara reporte.\nEstado: OK\nHora: 23/10/2023 05:21:34\n***************** Notificación de respuesta: Servicio Integración *****************\n",
    "HTTPDian": "200",
    "invoicePrefix": "",
    "pathPdf": ""
}

Descripción campos Consumo

Teniendo presente el path base: http://10.1.20.93:8080/ADAFEV2/webresources/pst/test

ColumnaTipo de DatoDescripción
ADA_TESTV3stringCódigo único de cliente.
9999999999stringCódigo único de empresa del cliente. Para cliente uniempresa siempre es 9999999999
ADAstringCódigo único de pst. Por defecto es ADA
InvoiceTypestringTipo de documento electrónico según resolución vigente.
25378longCódigo interno sicof el cual es generado por la secuencia presup01.seq_mae_cpcobrar
SETP990050719stringPrefijo y consecutivo de la resolución vigente.
0longCódigo único del documento asociado al documento principal. aplica solo para notas

Descripción campos Respuesta

ColumnaTipo de DatoDescripción
cufestringCódigo único de identificción electrónica. Es una hash que se calcula con el documento.
fechafacturadateyyyy-mm-dd fecha de elaboración del documento electrónico.
QrCodestring base64string que contiene la representación gráfica del código QR con la información del documento electrónico.
CodResponseDianstringCódigo de respuesta dian. 00 significa que el documento a sido autorizado.
DescResponseDianstringmensaje de respuesta dian.
notificarstringstring que representa un boolean. TRUE significa que se debe notificar.
okbooleanpetición procesada correctamente a nivel del servicio interno.
sucessstringstring que representa un boolean. TRUE significa que el servicio interno finalizó correctamente.
formatoXmlstring base64string que contiene el xml firmado por la DIAN.
formatoPdfstring base64string que contiene el pdf de la representación gráfica del documento. No aplica para Notificacion_eletronica = 'N'
sendDocIdLoglongIdentificador del log con la petición autorizada.
fileNamestringnombre base de nombramiento de archivos.
prefixstringNo aplica.
invoiceIdstringNo aplica.
tracerstringLog del proceso.
HTTPDianstringcódigo http de repsuesta DIAN. 200 significa documnto autorizado.
invoicePrefixstringNo aplica.
pathPdfstringNo aplica.

Implementación Situ

el proceso de notificación electrónica ha sido implementado en la integración con el sistema SITU

Diagrama general arquitectura de la solución

La solución se implementa según el siguiente diagrama:

ComponenteDescripción
Base de Datos Sicof/SituBase de datos que contiene la información de los documentos electrónicos
ADAWSServicio actual de facturación electrónica
DIANServicio de la DIAN que recibe los documentos electrónicos
Email WS ADAServicio de envio de correos masivo de ADA
FacturaciónProceso de facturación SITU
Notificación ElectrónicaServicio SITU que realizará el proceso de notificación electronica
SituSistema rentas
Portal ContribuyentesPortal donde accederá el usuario para gestionar sus procesos

Notas de avance de acuerdo al color de la tarjeta

  • Rojo: Tarjeta pendiente sin iniciar
  • Amarillo: Tarjeta en proceso sin finalizar
  • Verde: Tarjeta finalizada

Nota Los procesos críticos han sido representados por un contorno rojo.

RoadMap

Corte 2023-10-23

ada/howto/sicoferp/factory/sicoferpscriptsdb/fe/rebuilddoc.1698334190.txt.gz · Última modificación: 2023/10/26 15:29 por 192.168.175.10