**Nomina Electronica** Configuracion del Servidor WildFly: Añadir en standalone.xml datasources NOMINADS, INTEGRACION y CONFIGFENEDS **NOMINADS:** jdbc:oracle:thin:@ip:puertp:servicename OracleJDBCDriver PEDIRLO A QUIEN CORRESPONDA PEDIRLO A QUIEN CORRESPONDA **INTEGRACION:** jdbc:oracle:thin:@ip:puertp:servicename OracleJDBCDriver PEDIRLO A QUIEN CORRESPONDA PEDIRLO A QUIEN CORRESPONDA **CONFIGFENEDS:** jdbc:oracle:thin:@ip:puertp:servicename OracleJDBCDriver PEDIRLO A QUIEN CORRESPONDA PEDIRLO A QUIEN CORRESPONDA **Crear el driver:** oracle.jdbc.OracleDriver **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 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') {{: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 |}}