Herramientas de usuario

Herramientas del sitio


ada:konectanominaelectronica

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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 |}} 
ada/konectanominaelectronica.1646340349.txt.gz · Última modificación: 2022/03/03 20:45 por 192.168.177.70