Muestra las diferencias entre dos versiones de la página.
Próxima revisión | Revisión previa | ||
ada:konectanominaelectronica [2022/03/03 20:45] 192.168.177.70 creado |
ada:konectanominaelectronica [2023/08/08 19:55] (actual) 192.168.175.87 |
||
---|---|---|---|
Línea 1: | Línea 1: | ||
- | Nomina Electronica; | + | **Nomina Electronica** |
+ | |||
+ | Configuracion del Servidor WildFly: | ||
+ | Añadir en standalone.xml datasources NOMINADS, INTEGRACION y CONFIGFENEDS | ||
+ | |||
+ | **NOMINADS:** | ||
+ | <datasource jta="true" jndi-name="java:/NOMINADS" pool-name="NOMINADS" enabled="true" use-ccm="true"> | ||
+ | <connection-url>jdbc:oracle:thin:@ip:puertp:servicename</connection-url> | ||
+ | <driver>OracleJDBCDriver</driver> | ||
+ | <security> | ||
+ | <user-name>PEDIRLO A QUIEN CORRESPONDA</user-name> | ||
+ | <password>PEDIRLO A QUIEN CORRESPONDA</password> | ||
+ | </security> | ||
+ | <validation> | ||
+ | <valid-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> | ||
+ | <stale-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> | ||
+ | <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> | ||
+ | </validation> | ||
+ | </datasource> | ||
+ | |||
+ | **INTEGRACION:** | ||
+ | <datasource jta="true" jndi-name="java:/INTEGRACION" pool-name="INTEGRACION" enabled="true" use-ccm="true"> | ||
+ | <connection-url>jdbc:oracle:thin:@ip:puertp:servicename</connection-url> | ||
+ | <driver>OracleJDBCDriver</driver> | ||
+ | <security> | ||
+ | <user-name>PEDIRLO A QUIEN CORRESPONDA</user-name> | ||
+ | <password>PEDIRLO A QUIEN CORRESPONDA</password> | ||
+ | </security> | ||
+ | <validation> | ||
+ | <valid-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> | ||
+ | <stale-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> | ||
+ | <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> | ||
+ | </validation> | ||
+ | </datasource> | ||
+ | |||
+ | **CONFIGFENEDS:** | ||
+ | <datasource jta="true" jndi-name="java:/INTEGRACION" pool-name="INTEGRACION" enabled="true" use-ccm="true"> | ||
+ | <connection-url>jdbc:oracle:thin:@ip:puertp:servicename</connection-url> | ||
+ | <driver>OracleJDBCDriver</driver> | ||
+ | <security> | ||
+ | <user-name>PEDIRLO A QUIEN CORRESPONDA</user-name> | ||
+ | <password>PEDIRLO A QUIEN CORRESPONDA</password> | ||
+ | </security> | ||
+ | <validation> | ||
+ | <valid-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleValidConnectionChecker"/> | ||
+ | <stale-connection-checker class- name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleStaleConnectionChecker"/> | ||
+ | <exception-sorter class-name="org.jboss.jca.adapters.jdbc.extensions.oracle.OracleExceptionSorter"/> | ||
+ | </validation> | ||
+ | </datasource> | ||
+ | |||
+ | **Crear el driver:** | ||
+ | <driver name="OracleJDBCDriver" module="com.oracle"> | ||
+ | <driver-class>oracle.jdbc.OracleDriver</driver-class> | ||
+ | </driver> | ||
+ | |||
+ | **CONFIGURACIONES ESPECIALES 1/1** | ||
+ | En la ruta definida por la propiedad de sistema creada en el standalone.xml (CONFIG_PATH), crear una carpeta en la ruta adafe_home/com/ada/adafe/certificado, y asegurarse que el usuario que ejecuta el servidor tiene acceso de escritura. | ||
+ | En esa ruta se almacenará la información de los clientes de nómina. | ||
+ | Una vez terminadas las configuraciones desplegar el artefacto NominaElectronica.war en el servidor wildfly. | ||
+ | |||
+ | |||
+ | **BASE DE DATOS DE CONFIGURACIÓN** | ||
+ | Nómina Electrónica usa tablas de configuración alimentadas por otras aplicaciones, para acceder a ellas, tal como se explica en la sección anterior, se utilizan los datasources configurados en el servidor a través de la aplicación apiRestConfig. | ||
+ | Es importante recordar que las credenciales proporcionadas para los datasources tengan acceso a todos los schemas requeridos. | ||
+ | En esta sección se detallan los campos claves para el correcto funcionamiento de los servicios web que Nómina Electrónica publica para su consumo. | ||
+ | TABLA INTEGRACION.TBL_FE_CONEXION_CLIENTE | ||
+ | En esta tabla se almacena la información relevante a los datos necesarios para que el cliente interactúe con la DIAN y el software pueda acceder a los datos de los empleados del cliente. | ||
+ | Cada cliente tiene su cadena de conexión a base de datos guardada en esta tabla, y el software dinámicamente utiliza la cadena de conexión para acceder a los datos del cliente. | ||
+ | Los campos NE_URL, NEV_URL y NUMERACION_URL hacen referencia a dianWsRest y deben tener la siguiente estructura: | ||
+ | | | ||
+ | |CAMPO||VALOR|| | ||
+ | |- | ||
+ | |NE_URL||URL_WSREST/dianWsRest/v1/nomina|| | ||
+ | |- | ||
+ | |NEV_URL||URL_WSREST/dianWsRest/v1/habilitacion|| | ||
+ | |- | ||
+ | |NUMERACION_URL||URL_WSREST/dianWsRest/v1/numeracion|| | ||
+ | | | ||
+ | |||
+ | Donde URL_WSREST es la url donde se ha desplegado dianWsRest.war | ||
+ | Por ejemplo, si dianWsRest.war se ha desplegado en el mismo servidor donde se va a desplegar Nómina y el servidor está accesible en la IP 127.0.0.1 puerto 8080, los valores serían: | ||
+ | |||
+ | | | ||
+ | |NE_URL||http://127.0.0.1:8080/dianWsRest/v1/nomina|| | ||
+ | |- | ||
+ | |NEV_URL||http://127.0.0.1:8080/dianWsRest/v1/habilitacion|| | ||
+ | |- | ||
+ | |NUMERACION_URL||http://127.0.0.1:8080/dianWsRest/v1/numeracion|| | ||
+ | | | ||
+ | |||
+ | **SERVICIOS PUBLICADOS** | ||
+ | |||
+ | **nomina/NominaGeneral** | ||
+ | "/nomina/NominaGeneral/{codigoCliente}/{codigoMEmpresa}/{periodo}/{tipoArchivo}" Servicio para enviar a la DIAN las nóminas de todos los empleados del cliente de un | ||
+ | determinado periodo. | ||
+ | |||
+ | Ejemplo de uso: | ||
+ | |||
+ | http://10.1.140.102:8081/NominaElectronica/nomina/NominaGeneral/ADA_TESTNE/9999999999/202004/1/ | ||
+ | codigoCliente =ADA_TESTNE | ||
+ | codigoMEmpresa = 9999999999 | ||
+ | periodo = 202004 | ||
+ | tipoArchivo = 1 | ||
+ | |||
+ | **NominaIndividual** | ||
+ | "/nomina/NominaIndividual/{codigoCliente}/{codigoMEmpresa}/{periodo}/{tipoArchivo} /{codigoEmpleado}" | ||
+ | Servicio para enviar la nómina de un empleado en específico. | ||
+ | |||
+ | Ejemplo de uso: | ||
+ | http://10.1.140.102:8081/NominaElectronica/nomina/NominaIndividual/ADA_TESTNE/9999999999/202004/1/10 | ||
+ | codigoCliente =ADA_TESTNE | ||
+ | codigoMEmpresa = 9999999999 | ||
+ | periodo = 202004 | ||
+ | tipoArchivo = 1 | ||
+ | codigoEmpleado = 10 | ||
+ | |||
+ | NominaDeAjuste | ||
+ | "/nomina/NominaDeAjuste/{codigoCliente}/{codigoMEmpresa}/{periodo}/{tipoArchivo} | ||
+ | Servicio para modificar o eliminar las nóminas de los empleados preparados en la base de datos | ||
+ | |||
+ | Ejemplo de uso: | ||
+ | http://10.1.140.102:8081/NominaElectronica/nomina/NominaDeAjuste/ADA_TESTNE/9999999999/202001/2 | ||
+ | codigoCliente =ADA_TESTNE | ||
+ | codigoMEmpresa = 9999999999 | ||
+ | periodo = 202001 | ||
+ | tipoArchivo = 2 | ||
+ | |||
+ | **ValidarCliente** | ||
+ | "/nomina/ValidarCliente/{codigoCliente}/{codigoMEmpresa}/{periodo}/{tipoArchivo}/{validaciones}" | ||
+ | Servicio para realizar la habilitación en la DIAN de un cliente, donde el parámetro validaciones indica el número de nóminas a enviar para obtener la habilitación. | ||
+ | |||
+ | Ejemplo de uso: | ||
+ | http://10.1.140.102:8081/NominaElectronica/nomina/ValidarCliente/METROPARQUES_NE/9999999999/202109/1/ 5 | ||
+ | codigoCliente = METROPARQUES_NE | ||
+ | codigoMEmpresa = 9999999999 | ||
+ | periodo = 202109 | ||
+ | tipoArchivo = 1 | ||
+ | validaciones = 5 | ||
+ | |||
+ | **testCliente** | ||
+ | "/nomina/testCliente/{codigoCliente}" | ||
+ | Servicio que realiza un chequeo de que toda la información del cliente está bien configurada y es accesible. | ||
+ | Se realizan las siguientes comprobaciones: | ||
+ | - El código del cliente existe en la tabla de configuración: tblFeConexionCliente ADA_TESTNE: OK El cliente existe en la tabla de certificados: feCertificateInfo 800167494: OK | ||
+ | - El archivo con las rutas a la información del certificado existe: propiedadesCliente: OK | ||
+ | - El certificado del cliente existe: CFX_CRIPTO : EXISTE OK | ||
+ | - Se hace una firma de un xml vacio para comprobar que las claves funcionan: FIRMA EXITOSA OK | ||
+ | - Se intenta conectar a la base de datos del cliente: | ||
+ | CONEXION A LA BASE DE DATOS DEL CLIENTE EXITOSA OK Se comprueba que el servicio de envío a la DIAN es accesible: | ||
+ | CONEXION dianWsRest EXITOSA OK: | ||
+ | {\"estadoTx\":true,\"msg\":null,\"codigoHttp\":200,\"fechaOperacion\":1646340020, \"objectResponse\":\"V 1.0.0\",\"lstObjectResponse\":null}" | ||
+ | |||
+ | Ejemplo de uso: | ||
+ | http://10.1.140.102:8081/NominaElectronica/nomina/testCliente/ADA_TESTNE | ||
+ | codigoCliente = ADA_TESTNE | ||
+ | |||
+ | |||
+ | **RETORNO DE LOS SERVICIOS** | ||
+ | |||
+ | Todos los servicios retornan la misma estructura json: | ||
+ | |||
+ | | | ||
+ | |CAMPO||TIPO||DESCRIPCION|| | ||
+ | |- | ||
+ | |estadoTx||BOOLEAN||Cierto si el proceso ha terminado correctamente.|| | ||
+ | |- | ||
+ | |mag||STRING||Mensaje de error.|| | ||
+ | |- | ||
+ | |codigoHttp||NUMERIC||Código HTTP devuelto por la DIAN o interno del software en caso de no poder enviar la nómina a la DIAN.|| | ||
+ | |- | ||
+ | |fechaOperacion||STRING||Fecha y hora del evento.|| | ||
+ | |- | ||
+ | |numeroEnvio||NUMERIC||Número único del envío.|| | ||
+ | |- | ||
+ | |lstObjectResponse||STRING||Lista de empleados que han generado error. | ||
+ | | | ||
+ | |||
+ | |||
+ | **Ejemplo exitoso:** | ||
+ | { | ||
+ | "estadoTx": true, "msg": "", "codigoHttp": 0, | ||
+ | "numeroEnvio": 221231102745, | ||
+ | "fechaOperacion": "2021-12-31T15:27:45.269+0000", | ||
+ | "lstObjectResponse": "" | ||
+ | } | ||
+ | |||
+ | **Ejemplo fallido, con una nómina errónea:** | ||
+ | |||
+ | { | ||
+ | "estadoTx": false, | ||
+ | "msg": "Error XML DIAN", | ||
+ | "codigoHttp": 307, | ||
+ | "numeroEnvio": 221231104011, | ||
+ | "fechaOperacion": "2021-12-31T15:40:11.895+0000", "lstObjectResponse": "15" | ||
+ | } | ||
+ | |||
+ | **Ejemplo fallido, varias nóminas erróneas:** | ||
+ | |||
+ | { | ||
+ | "estadoTx": false, | ||
+ | "msg": "Error XML DIAN", "codigoHttp": 307, "numeroEnvio": 221231104149, | ||
+ | "fechaOperacion": "2021-12-31T15:41:49.265+0000", | ||
+ | "lstObjectResponse": "10-13-15-8778-8979-9332-9398-11715-12744" | ||
+ | } | ||
+ | |||
+ | |||
+ | **LOG Y BASE DE DATOS** | ||
+ | |||
+ | Cada vez que se realiza un envío de una nómina se almacena la información en la tabla NOMINA.NE_ENVIADOS_WS cuyos campos son: | ||
+ | |||
+ | | | ||
+ | |CAMPO||TIPO||DESCRIPCION|| | ||
+ | |- | ||
+ | |ID||NUMERIC||Identificador de la tabla.|| | ||
+ | |- | ||
+ | |PERIODO||VARCHAR||Periodo de generación del xml.|| | ||
+ | |- | ||
+ | |NIT_CLIENTE||NUMERIC||NIT del cliente.|| | ||
+ | |- | ||
+ | |CODIGO_EMPLEADO||NUMERIC||Código del empleado. Puede ser nulo si el error se produce antes de la generación del xml.|| | ||
+ | |- | ||
+ | |FECHA_ENVIO||TIMESTAMP||Fecha y hora de generación del registro.|| | ||
+ | |- | ||
+ | |NUMERO_PREDECESOR||VARCHAR||Consecutivo del xml, se almacena para su uso en caso de tener que generar una nómina de ajuste.|| | ||
+ | |- | ||
+ | |CUNE_PREDECESOR||VARCHAR||CUNE del xml, se almacena para su uso en caso de tener que generar una nómina de ajuste.|| | ||
+ | |- | ||
+ | |FECHA_GENERACION_PREDECESOR||TIMESTAMP||Fecha de generación del xml, se almacena para su uso en caso de tener que generar una nómina de ajuste.|| | ||
+ | |- | ||
+ | |TIPO_ARCHIVO||VARCHAR||Tipo de archivo del xml.|| | ||
+ | |- | ||
+ | |TIPO_NOTA||VARCHAR||Tipo de nota del xml.|| | ||
+ | |- | ||
+ | |ERROR||NUMERIC||Identificador del error. 0 = Sin error.1 = Error durante el proceso de generación del xml 2 = Error de la DIAN|| | ||
+ | |- | ||
+ | |TIPO_XML||NUMERIC||Tipo de xml.|| | ||
+ | |- | ||
+ | |CODIGO_EMPRESA||VARCHAR||Código multiempresa del cliente.|| | ||
+ | |FECHA_REGISTRO||TIMESTAMP||Fecha y hora de generación del registro.|| | ||
+ | |USUARIO_REGISTRO||VARCHAR||Usuario que genera el registro.|| | ||
+ | |CLOB_XML||VARCHAR||Xml enviado a la DIAN|| | ||
+ | |- | ||
+ | |NUMERO_ENVIO||NUMERIC||Número de envío único por transmisión|| | ||
+ | | | ||
+ | |||
+ | El Sistema cuenta con una herramienta de configuración que le permite subir los certificados de seguridad y esta compuesta por dos artefactos: | ||
+ | - confiFactura (Sistenma WEB). | ||
+ | - apiRestConfig (Paquete de Servicios) | ||
+ | |||
+ | |||
+ | **confiFactura** | ||
+ | Tiene los siguientes componentes: | ||
+ | - Login | ||
+ | El login esta asociado a las siguientes tablas del sistema era: | ||
+ | - TBL_FE_CONEXION_CLIENTE_USER | ||
+ | - TBL_USUARIOS | ||
+ | |||
+ | NOTA: Configuración a realizar en la base de datos centralizada | ||
+ | * Tener presente que este login debe estar creado para el CODIGO_CLIENTE que va utilizar NE es decir (PRUEBAS_NE_PROD) debe ser diferente al de FE, inicialmente se debe crear en la tabla TBL_FE_CONEXION_CLIENTE_USER se puede realizar desde la macro con el script 1119 | ||
+ | * El usuario debe estar creado en el módulo de presupuesto. | ||
+ | * La clave por defecto es: 12345678 del usuario creado para acceder al portal de configuración que se encuentra en la url 10.1.40.189:8080 | ||
+ | * para insertar los datos en la tabla TBL_USUARIOS se debe ejecutar el siguiente insert | ||
+ | |||
+ | En el insert solo se deben modificar los campos denominados | ||
+ | * login_usuario_ppto = login con el cual el usuario ingresa al modulo de presupuesto | ||
+ | * Cargo_usser_ppto = cargo relacionado al usuario en presupuesto | ||
+ | * cod_inter_usser_ppto = codigo interno de la tabla usuarios para la aplicacion 1 | ||
+ | * cod_cliente_para_ne = codigo cliente que va utilizar NE el cual ya fue previamente denominado en TBL_FE_CONEXION_CLIENTE_USER | ||
+ | |||
+ | <code sql> | ||
+ | |||
+ | INSERT INTO INTEGRACION.TBL_USUARIOS | ||
+ | (USER_LOGIN,USER_PASSWORD,NOMBRE,EMAIL,CODIGO_ROL,FECHA_REGISTRO,CODIGO_USUARIO_SICOF,CONFIG_NAME_FE) | ||
+ | VALUES ( | ||
+ | 'login_usuario_ppto', | ||
+ | 'fa585d89c851dd338a70dcf535aa2a92fee7836dd6aff1226583e88e0996293f16bc009c652826e0fc5c706695a03cddce372f139eff4d13959da6f1f5d3eabe', | ||
+ | 'Cargo_usser_ppto', | ||
+ | NULL, | ||
+ | 'USUARIO', | ||
+ | SYSDATE, | ||
+ | 'cod_inter_usser_ppto', | ||
+ | 'cod_cliente_para_ne') | ||
+ | |||
+ | </code> | ||
+ | |||
+ | |||
+ | {{:ada:login.png?400|}} | ||
+ | |||
+ | - Lista de empresas | ||
+ | Una ves ingresa el sistema le muestra la lista de empresas a las que el usuario logueado tiene permisos de configrar | ||
+ | {{:ada:listempre.png?400|}} | ||
+ | |||
+ | - Configuracion del Certificado | ||
+ | Aqui el usuario debe ingresar información acerca del proveedor del certificado y fechas de vigencia como lo solicita el formulario asociado: | ||
+ | {{:ada:certifi.png?400|}} | ||
+ | |||
+ | - Configuracion del Archivo | ||
+ | Aqui el usuario selecciona el archivo que contiene el certificado de seguridad para subirlo al sistema | ||
+ | {{:ada:infofile.png?400|}} | ||
+ | |||
+ | Una vez realizado ese proceso el sistema esta preparado y se puede validar mediante el uso del servicio validado ya descrito en este documento. | ||
+ | |||
+ | **apiRestConfig** | ||
+ | |||
+ | Este artefacto de software es quien provee de servicios al sistema anterior el cual debe estar desplegado en el mismo servidor y se debe garantizar la configuración del datasourse CONFIGFENEDS el cual esta descrito al inicio de este documento. | ||
+ | Ademas de esto es necesario que exista la carpeta configPath con la siguiente información: | ||
+ | {{:ada:config_1.png?400|}} | ||
+ | |||
+ | {{:ada:archivo_1.png?400|}} | ||
+ | |||
+ | {{:ada:data_1.png?400|}} | ||
+ | Aqui se configura las rutas físicas donde se encuentra el directorio adafe_home. | ||
+ | |||
+ | Ademas se debe garantizar la carpeta image este en el directorio de adafe_home: | ||
+ | {{:ada:image.png?400|}} | ||
+ | |||
+ | |||
+ | **Anexo Técnico Nomina Electronica** | ||
+ | {{ :ada:anexotecniconominaelectronica.pdf |}} |