Tabla de Contenidos

CONFIGURACION DE AMBIENTES PARA HABILITAR NOMINA ELECTRONICA (SET DE PRUEBAS)

Bases de datos a utilizar

base de datos centralizada

db104_ADA = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.140.101)(PORT = 1521)) (CONNECT_DATA = SERVER = DEDICATED) (SERVICE_NAME = db104)))

base de datos de configuración

db101_NE = (DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.1.140.101)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = db101)))

En la base de datos db101 que va ser utilizada para liquidar la nomina y realizar el envió de los documentos se debe parametrizar el cliente según la empresa que se requiera habilitar

TENER EN CUENTA

Antes de iniciar con el paso 1, el ticket sobre el cual se realizó la solicitud de la habilitación se debe enviar al área de fabrica con el fin de que se cree la carpeta en el servidor de pruebas y producción de nómina electrónica y se deben enviar los siguientes documentos.

  1. Certificado de facturación electrónica (se utiliza el mismo certificado para nomina y facturación) se debe enviar en extensión P12 ó pfx
  2. Clave del certificado
  3. Nit de la empresa sin dv

Paso 1

Con el siguiente UPDATE se va realizar la actualización de la configuración de la base datos, se ingresa el nit del la empresa a realiza el set de pruebas sin digito de verificación. El tipo de ambiente siempre es 2

Tener presente que siempre para nomina electrónica el nombre debe de ser {cliente}_NE_PROD con el fin de identificar el servicio de nómina y facturación. ejemplo FALVA_NE_PROD

UPDATE NOMINA.NE_PARAMETROS_VISTAS NPV
SET NPV.NIT_PROVEEDOR_XML = 901273165 , --nit cliente que se requiere habilitar sin DV
    NPV.DV_NIT_PROVEEDOR_XML = 6 , -- dv del nit del cliente 
    NPV.NIT_CLIENTE = 901273165 , -- nit del cliente que se requiere habilitar sin dv
    NPV.DV_NIT_CLIENTE =  6  , -- dv del nit del cliente 
    NPV.CODIGO_CLIENTE = 'MADASS_TEST' -- nombre del cliente con el sinónimo _TEST para identificar que es habilitación
WHERE AMBIENTE_ID = 2 -- ID 1 = producción 2 = pruebas o habilitación
;
COMMIT;

Paso 2

Se debe crear el tercero de la empresa que se va habilitar En el modulo de nomina esta el maestro de terceros para realizar la creación del tercero - empresa

* Nomina / administrador del sistema / maestro de terceros

Paso 3

Se debe realizar la actualización del nit de la empresa en las tablas de configuración de nomina

UPDATE NOMINA.PARAMETROS_SISTEMA PS
SET PS.NIT_EMPRESA = 901273165 -- Nit sin DV
;
UPDATE NOMINA.EMPRESAS E
SET E.K_N_NIT = 901273165 ,-- Nit sin DV
    E.SC_DIGITO_VERIFICACION = 6 --DV del nit
;
UPDATE NOMINA.EMPRESAS_NOMINA EN
SET EN.K_N_NIT = 901273165 -- Nit sin DV
;
COMMIT;

Paso 4

Se deben ejecutar los ACL de habilitación solo si no están ejecutados

la ip de habilitación de nomina electrónica es 10.1.140.102:8081

La petición de validacion se debe realizar con el usuario SYS

SELECT UTL_HTTP.REQUEST('http://10.1.140.102:8081/NominaElectronica') FROM DUAL

La subconsulta debe visualizar la siguiente información

si la respuesta del servicio es diferente a la de la imagen se deben ejecutar los ACL con el usuario SYS

Inicialmente se debe validar que ACL hay creados en la base de datos solo se realiza en la db101

En la siguiente consulta se pueden visualizar; si ya existe un registro con el HOST 10.1.140.102 y LOWER_PORT 8081 no hay que ejecutarlos

SELECT * FROM DBA_NETWORK_ACLS

Si en la tabla no hay registros se ejecuta el siguiente query

grant execute on utl_http to NOMINA;
grant execute on dbms_lock to NOMINA;

ALTER SESSION SET NLS_LANGUAGE = 'AMERICAN';
ALTER SESSION SET NLS_NUMERIC_CHARACTERS = '.,';
 
BEGIN   
  DBMS_NETWORK_ACL_ADMIN.create_acl (
    acl          => 'acls_ne_test.xml', 
    description  => 'Lista de control de acceso a los servicios de nomina electrónica',
    principal    => 'NOMINA',
    is_grant     => TRUE, 
    privilege    => 'connect',
    start_date   => SYSDATE,
    end_date     => NULL);
  COMMIT;    
end;

BEGIN
   DBMS_NETWORK_ACL_ADMIN.add_privilege (
    acl          => 'acls_ne_test.xml',
    principal  => 'NOMINA',
    is_grant   => TRUE,
    privilege  => 'connect',
    start_date => SYSTIMESTAMP,
    end_date   => null
  );
  COMMIT;
END;

BEGIN
   DBMS_NETWORK_ACL_ADMIN.add_privilege (
    acl          => 'acls_ne_test.xml',
    principal  => 'NOMINA',
    is_grant   => TRUE,
    privilege  => 'resolve',
    start_date => SYSTIMESTAMP,
    end_date   => null
  );
  COMMIT;
END;

begin
  DBMS_NETWORK_ACL_ADMIN.assign_acl (
    acl          => 'acls_ne_test.xml',
    host        => '10.1.140.102', 
    lower_port  => 8081,
    upper_port  => NULL);
  COMMIT;          
end;

Paso 5

en la db104_ADA se debe parametrizar la empresa que va realizar el set de pruebas

En el siguiente INSERT solo se deben de modificar los datos que tienen comentarios y realizar el insert

INSERT INTO INTEGRACION.TBL_FE_CONEXION_CLIENTE (CODIGO_CLIENTE,
                                                 NIT_CLIENTE,
                                                 CODIGO_MEMPRESA,
                                                 TYPE_SERVICE,
                                                 TYPE_CLIENT,
                                                 DB_PORT,
                                                 DB_IP,
                                                 DB_NAME,
                                                 DB_USER,
                                                 DB_PSWD,
                                                 ESTADO,
                                                 FECHA_REGISTRO,
                                                 USUARIO_REGISTRO,
                                                 ENVIRONMENT_SERVICE,
                                                 DIAN_ID_SOFTWARE,
                                                 DIAN_PIN,
                                                 DIAN_NOMBRE_SOFTWARE,
                                                 DIAN_ESTADO,
                                                 DIAN_URL,
                                                 DIAN_FECHA,
                                                 PROFILEEXECUTIONID,
                                                 HASH_SET_PRUEBAS,
                                                 MODO_VALIDACION_PRUEBAS,
                                                 URL_VAL_ACEPTACION,
                                                 URL_VAL_ACEPTACION_FORM,
                                                 EMAIL_NOTIFY,
                                                 FORM_USER_LOGIN,
                                                 FORM_USER_PASSWORD,
                                                 MULTIEMPRESA,
                                                 TIPO_SOFTWARE,
                                                 NE_URL,
                                                 NEV_URL,
                                                 NUMERACION_URL,
                                                 NOTIFICACION_ELECTRONICA)
         VALUES (   'MADASS_TEST_1', --CODIGO CLIENTE QUE VA A REALIZAR EL SET DE PRUEBAS
                    901273165, -- NIT DE LA EMPRESA SIN DV
                    '9999999999',
                    'WS-SOAP',
                    'DIAN',
                    1521,
                    '10.1.140.101',
                    'db101',
                    'NOMINA',
                    'nomina',--CLAVE DEL USUARIO NOMINA DE LA BASE DE DATOS
                    'A',
                    SYSDATE,
                    'INTEGRACION',
                    'DEVELOPMENT',
                       '47099f8c-899d-4978-a4b0-1b2a85defede' --SOFTWARE ID DEL SET DE PRUEBAS
                    || CHR (13)
                    || CHR (10)
                    || '',
                    '73165', -- PIN DEL SET DE PRUEBAS
                    'SICOF',
                    'En Proceso',
                    'https://vpfe-hab.dian.gov.co/WcfDianCustomerServices.svc?wsdl',
                    SYSDATE,
                    2,
                    '30932093-9364-4919-8149-31988cb22a49',-- HAST DEL SET DE PRUEBAS
                    0,
                    'http://10.1.140.102:8080/ADAFE/webresources/forms/efevento/{codigo_cliente}/{nit_empresa}/{pst}/{cufe}',
                    'http://10.1.140.102:8080/ADAFE/webresources/forms/formulario/{codigo_cliente}/{nit_empresa}/{pst}/{cufe}',
                    'mesaservicios@ada.co',
                    'MADASS_TEST_1',--CODIGO CLIENTE QUE VA A REALIZAR EL SET DE PRUEBAS
                    '50459d2dd34cad16a1de85e6a39d7a338539158cefa1d5d6edfbb13acaadcfdc1a9f7abe990729eb8867f54350160363',
                    'N',
                    'NE',
                    'http://127.0.0.1:8081/dianWsRest/v1/nomina',
                    'http://127.0.0.1:8081/dianWsRest/v1/habilitacion',
                    'http://127.0.0.1:8081/dianWsRest/v1/numeracion',
                    'S');
COMMIT;

Paso 6

Insertar el certificado en la tabla de la db104_ADA

Solo se deben modificar los campos comentariados

INSERT INTO PRESUP01.FE_CERTIFICATE_INFO ( FECHA_INICIO_VIGENCIA,
                                          FECHA_FIN_VIGENCIA,
                                          EMISOR_NIT,
                                          EMISOR_NOMBRE,
                                          EMISOR_DIRECCION,
                                          EMISOR_CORREO,
                                          EMISOR_CONTACTO,
                                          EMISOR_CEL_TEL,
                                          NOTIFICACION_EMAIL_WS,
                                          NOTIFICACION_EMAIL_ERP,
                                          NOTIFICACION_FRECU_DIAS,
                                          NOTIFICACION_FRECU_ENVIO,
                                          NOTIFICACION_MSG_PREVIO,
                                          NOTIFICACION_MSG_VENCIDO,
                                          ESTADO,
                                          FECHA_REGISTRO,
                                          CODIGO_USUARIO,
                                          CODIGO_MEMPRESA,
                                          NOTIFICACION_TRAS_VENCER,
                                          PATH_CLIENT_PROPERTIES,
                                          NIT_CLIENTE,
                                          TIPO_SOFTWARE,
                                          CODIGO_CLIENTE)
         VALUES (   TO_DATE ('21/02/2023 19:00:00', 'DD/MM/YYYY HH24:MI:SS'),--TENER PRESENTE LAS FECHA DE INICIO(LA FECHA REAL DE HABILITACION DEBE ESTAR EN EL RANGO)
                    TO_DATE ('21/02/2025 19:00:00', 'DD/MM/YYYY HH24:MI:SS'),--TENER PRESENTE LA FECHA FINAL (LA FECHA REAL DE HABILITACION DEBE ESTAR EN EL RANGO)
                    900204272,
                    'GESTION DE SEGURIDAD ELECTRONICA S.A',
                    'CL 73 7 31 P3 TO B ED EL CAMINO',
                    'info@gse.com.co',
                    'ALVARO CARRERAS AMOROS',
                    '4050082',
                    'contratosprogresar@gmail.com',
                    'contratosprogresar@gmail.com',
                    1,
                    2,
                    'Proximo a vencer',
                    ' ',
                    'A',
                    TO_DATE ('27/02/2023 15:51:38', 'DD/MM/YYYY HH24:MI:SS'),
                    1,
                    '228',
                    '0',
                    'adafe_home/com/ada/adafe/certificado/901273165/Cliente_NE.properties',--EN LA RUTA QUE ESTA EN LA LINEA SE DEBE REEMPLAZAR EL NIT DE LA EMPRESA
                    901273165,--NIT DE LA EMPRESA A REALIZAR EL SET DE PRUEBAS SIN DV
                    'NE',
                    'MADASS_TEST_1');--INGRESAR EL CODIGO DEL CLIENTE PREVIAMENTE SELECCIONADO E INSERTADO EN LA TABLA TBL_FE_CONEXION_CLIENTE

COMMIT;

Paso 7

Se deben borrar los registros de las dos tablas que tienen la sentencia DELETE y actualizar el periodo 202401 a estado borrador con el UPDATE

En caso de que en la tabla NE_PERIODOS_GENERADOS no exista el periodo 202401 se ejecuta el insert

DELETE FROM NOMINA.NE_WS_INFORME_ERROR
;
DELETE FROM NOMINA.NE_ENVIADOS_WS
;
UPDATE NOMINA.NE_PERIODOS_GENERADOS 
SET ESTADO = 'B'
WHERE PERIODO = 202401
;
COMMIT
;
--El insert solo se debe ejecutar si en NE_PERIODOS_GENERADOS no esta el periodo 202401
INSERT INTO NOMINA.NE_PERIODOS_GENERADOS (ID,
                                          PERIODO,
                                          ANO,
                                          MES,
                                          FECHA_INICIAL,
                                          FECHA_FINAL,
                                          TIPO_ARCHIVO,
                                          ESTADO,
                                          CODIGO_MEMPRESA,
                                          FECHA_REGISTRO,
                                          USUARIO_REGISTRO)
     VALUES (2,
             '202401',
             2024,
             1,
             TO_DATE ('01/01/2024', 'DD/MM/YYYY'),
             TO_DATE ('31/01/2024', 'DD/MM/YYYY'),
             1,
             'B',
             '9999999999',
             SYSDATE,
             'NOMINA')
;
COMMIT

paso 8

En la base de datos existe una nómina liquidada en el periodo 202401 con el número de nómina 10628 con el tipo liquidación denominado NOMINA ELECTRONICA TEST la cual tiene 11 empleados, la nómina está en estado aprobada ya que lo requiere el proceso para poder que se visualice en las vistas de envió.

para validar que la nómina si este correcta ejecutar la consulta y debe retomar datos de los empleados y conceptos

SELECT MT.CODIGO_TERCERO, 
     MT.NIT                          AS NUMERO_DOCUMENTO,
     MT.NOMBRE                       AS NOMBRE,
     TL.SS_TIPO_LIQUIDACION          AS TIPO_LIQUIDACION,
     MN.KA_NL_DCTO_NOMINA            AS NUMERO_NOMINA,
     CPTO.SS_CODIGO                  AS CODIGO_CONCEPTO,
     CPTO.SS_CONCEPTO                AS DESCRIPCION_CONCEPTO,
     NETC.TIPO,
     NETC.DESCRIPCION                AS DESCRIPCION_TIPO_CONCEPTO,
     CPTO.SC_SIGNO                   AS SIGNO,
     SUM (ROUND (MNCC.ND_VALOR))     AS VALOR
FROM NOMINA.MOVIMIENTOS_NOMINA        MN,
     NOMINA.MOVIMIENTOS_NOMINA_DETALLE MND,
     NOMINA.CONCEPTOS                 CPTO,
     NOMINA.MAESTRO_TERCEROS          MT,
     NOMINA.TIPOS_LIQUIDACIONES       TL,
     NOMINA.NE_TIPOS_CONCEPTO         NETC,
     NOMINA.NE_CONCEPTOS_RELACION     NECR,
     NOMINA.EMPLEADOS                 E,
     NOMINA.MOVIMIENTOS_NOMINA_CCOSTO MNCC
WHERE     MN.KA_NL_MOVIMIENTO = MND.KA_NL_MOVIMIENTO
     AND MND.KA_NL_MOVIMIENTO_NOMINA = MNCC.KA_NL_MOVIMIENTO_DETALLE
     AND MN.SC_ESTADO = 'A'
     AND CPTO.KA_NL_CONCEPTO = MND.KA_NL_CONCEPTO
     AND MN.KA_NL_TERCERO = MT.CODIGO_TERCERO
     AND MN.KA_NL_TIPO_LIQUIDACION = TL.KA_NL_TIPO_LIQUIDACION
     AND MN.KA_NL_TERCERO = E.KA_NL_TERCERO
     AND TO_CHAR (MN.DD_DESDE, 'yyyymm') = 202401
     AND MND.KA_NL_CONCEPTO = NECR.CONCEPTO_ID(+)
     AND NECR.TIPO_CONCEPTO_ID = NETC.ID(+)
     AND MN.KA_NL_TERCERO NOT IN
             (SELECT CODIGO_EMPLEADO
                FROM NOMINA.NE_ENVIADOS_WS
               WHERE PERIODO = 202401 AND TIPO_ARCHIVO = 1 AND ERROR = 0)
GROUP BY MT.CODIGO_TERCERO,
      MT.NIT,
     MT.NOMBRE,
     TL.SS_TIPO_LIQUIDACION,
     MN.KA_NL_DCTO_NOMINA,
     CPTO.SS_CODIGO,
     CPTO.SS_CONCEPTO,
     NETC.TIPO,
     NETC.DESCRIPCION,
     CPTO.SC_SIGNO
ORDER BY MT.NIT   

Paso 9

Cuando se esté realizando el envió y se generan errores se deben consultar en la siguiente tabla la cual tiene la descripción del error generado por el envió.

SELECT * FROM NOMINA.NE_WS_INFORME_ERROR

Después de validado los errores se deben eliminar para poder continuar con el proceso.

1. inicialmente validar que el periodo que se está enviando exista en la siguiente tabla

SELECT T.*,ROWID FROM NOMINA.NE_PERIODOS_GENERADOS T ORDER BY PERIODO DESC

Al validar el registro el ESTADO tiene que ser B y se ejecuta el siguiente query.

DECLARE 
    v_periodo NUMBER;
BEGIN 
  SELECT PERIODO
  INTO v_periodo
  FROM NOMINA.NE_PERIODOS_GENERADOS
  WHERE ESTADO = 'B';
  MODIFICA.SP_ELIMINAR_ERRORES_NE(v_periodo, 1);
END;COMMIT;

Si se genera error por que el procedimiento esta invalido

Se debe ejecutar el query que crea el procedimiento SP_ELIMINAR_ERRORES_NE y volver a ejecutar el proceso

CREATE OR REPLACE PROCEDURE MODIFICA.SP_ELIMINAR_ERRORES_NE (
    AS_PERIODO   VARCHAR2,
    AN_CEDULA    NUMBER)                       /*1 si es todos los empleados*/
AS
    LL_REG            NUMBER;
    LL_COD_EMPLEADO   NUMBER;
    LS_ERROR          VARCHAR2 (1000); /*-------------------------------------   Se crea procedimiento   ----------   Autor: Brahian Castañeda   brahian.castañeda@ada.co   Fecha: 12/10/2022   ----------   Descripcion: Se crea procedimiento,   este procedimiento elimina uno o todos   los registros de nomina electronica en   un periodo, los cuales tienen un error   durante su ejecucion (error tipo 1 o 2)   --------------------------------------   Nota: la clasificacion de los errores   es el siguiente:     (Error: 0): Significa que proceso sin   ningun percance.     (Error: 1): Este error significa que   nomina electronica no pudo ejecutarse   ni en el inicio, por lo tanto no pudo   generar un CUNE y no se proceso en la   DIAN.     (Error: 2): Este error significa 2 cosas:     1.Durante la ejecución se consume un CUNE,   el llamado a la DIAN es exitoso, pero en   la DIAN se encontro una inconsistencia,   pero aun asi se recibio la informacion   correctamente.     2.Durante la ejecución se consume un CUNE,   pero al llamar a la DIAN no es exitoso, debido   a que el certificado no esta vigente, los   servicios estan caidos, el servidor demoro   en responder, el servidor esta caido, ETC.,   debido a esto la DIAN no recibe la informacion   del empleado enviado.   -------------------------------------- */
BEGIN     /*Si el parametro AN_CEDULA es 1 entonces es para hacer una limpieza general*/
    IF AN_CEDULA = 1
    THEN              /*Validamos que si se ha procesado el periodo seleccionado*/
        SELECT COUNT (*)
          INTO LL_REG
          FROM NOMINA.NE_ENVIADOS_WS
         WHERE PERIODO = AS_PERIODO;

        IF LL_REG = 0
        THEN
            ROLLBACK;
            LS_ERROR :=
                   'Error: El periodo '
                || AS_PERIODO
                || ' no existe en los periodos procesados en Nomina Electronica (NE_ENVIADOS_WS)';
            DBMS_OUTPUT.PUT_LINE (LS_ERROR);
            raise_application_error (-20001, LS_ERROR);
        ELSE             /*Verificamos si hay errores en el periodo seleccionado*/
            SELECT COUNT (*)
              INTO LL_REG
              FROM NOMINA.NE_ENVIADOS_WS
             WHERE PERIODO = AS_PERIODO AND ERROR IN (1, 2);

            IF LL_REG = 0
            THEN
                ROLLBACK;
                LS_ERROR :=
                       'Error: En el periodo '
                    || AS_PERIODO
                    || ' no se registran errores en Nomina Electronica (NE_ENVIADOS_WS)';
                DBMS_OUTPUT.PUT_LINE (LS_ERROR);
                raise_application_error (-20001, LS_ERROR);
            ELSE                   /*Borramos los registros con error tipo 1 y 2*/
                DELETE FROM NOMINA.NE_ENVIADOS_WS
                      WHERE PERIODO = AS_PERIODO AND ERROR IN (1, 2);
            END IF;
        END IF;
    ELSE                                      /*Validamos que el empleado exista*/
        SELECT NVL (CODIGO_TERCERO, 0)
          INTO LL_COD_EMPLEADO
          FROM TESORE01.MAESTRO_TERCEROS
         WHERE NITSD = AN_CEDULA;

        IF LL_COD_EMPLEADO = 0
        THEN
            ROLLBACK;
            LS_ERROR :=
                   'Error: El empleado con cedula '
                || AN_CEDULA
                || ' no existe (MAESTRO_TERCEROS)';
            DBMS_OUTPUT.PUT_LINE (LS_ERROR);
            raise_application_error (-20001, LS_ERROR);
        ELSE     /*Validamos que durante el periodo el empleado si sse haya procesado al menos una vez en nomina electronica*/
            SELECT COUNT (*)
              INTO LL_REG
              FROM NOMINA.NE_ENVIADOS_WS
             WHERE PERIODO = AS_PERIODO AND CODIGO_EMPLEADO = LL_COD_EMPLEADO;

            IF LL_REG = 0
            THEN
                ROLLBACK;
                LS_ERROR :=
                       'Error: El empleado con cedula '
                    || AN_CEDULA
                    || ' no ha sido procesado en nomina electronica (NE_ENVIADOS_WS) en el periodo '
                    || AS_PERIODO;
                DBMS_OUTPUT.PUT_LINE (LS_ERROR);
                raise_application_error (-20001, LS_ERROR);
            ELSE     /*Validamos si el empleado tuvo errores durante el periodo ejecutado*/
                SELECT COUNT (*)
                  INTO LL_REG
                  FROM NOMINA.NE_ENVIADOS_WS
                 WHERE     PERIODO = AS_PERIODO
                       AND CODIGO_EMPLEADO = LL_COD_EMPLEADO
                       AND ERROR IN (1, 2);

                IF LL_REG = 0
                THEN
                    ROLLBACK;
                    LS_ERROR :=
                           'Error: El empleado con cedula '
                        || AN_CEDULA
                        || ' no tiene registro de errores en nomina electronica (NE_ENVIADOS_WS) en el periodo '
                        || AS_PERIODO;
                    DBMS_OUTPUT.PUT_LINE (LS_ERROR);
                    raise_application_error (-20001, LS_ERROR);
                ELSE                        /*Borramos los registros con errores*/
                    DELETE FROM
                        NOMINA.NE_ENVIADOS_WS
                          WHERE     PERIODO = AS_PERIODO
                                AND CODIGO_EMPLEADO = LL_COD_EMPLEADO
                                AND ERROR IN (1, 2);
                END IF;
            END IF;
        END IF;
    END IF;
EXCEPTION
    WHEN VALUE_ERROR
    THEN
        DBMS_OUTPUT.PUT_LINE (
            'Error durante la ejecucion del procedimiento SP_ELIMINAR_ERRORES_NE');
END;
/

Paso 10 envió - Nomina de ajuste

Para enviar la nómina de ajuste (Eliminar un registro el cual ya esta en al Dian)

  1. En la Pestaña de nomina de ajuste se debe seleccionar el periodo para el cual corresponde el ajuste
  2. Se da en VALIDAR para cargar los registros correspondientes a los envíos
  3. En el tipo de nota se debe seleccionar eliminar a los registros que corresponda.
  4. Se debe ejecutar los dos update con los datos que solicita el query en la base de datos con el periodo que corresponda.
  5. En la ventana del modulo de nomina se hace el ultimo paso que es enviar los registros.

UPDATE NOMINA.NE_PERIODOS_GENERADOS
SET TIPO_ARCHIVO = 2 , ESTADO = 'B'
WHERE PERIODO = 
/*Ingrese el periodo correspondiente al ajuste*/
UPDATE NOMINA.NE_ENVIADOS_WS
SET TIPO_ARCHIVO = 2 , TIPO_NOTA = 2
WHERE PERIODO = /*Ingrese el periodo correspondiente al ajuste*/
AND CODIGO_TERCERO = /*Ingrese el codigo del empleado del cual se va realizar la eliminacion del registro en la dian*/

Después de enviados los registros se debe restablecer los registros modificados con el siguiente update

UPDATE NOMINA.NE_ENVIADOS_WS
SET TIPO_ARCHIVO = 1 , TIPO_NOTA = 9
WHERE PERIODO = /*Ingrese el periodo correspondiente al ajuste*/
AND CODIGO_TERCERO = /*Ingrese el codigo del empleado del cual se va realizar la eliminacion del registro en la dian*/
AND TIPO_XML = 102
UPDATE NOMINA.NE_PERIODOS_GENERADOS
SET TIPO_ARCHIVO = 1 , ESTADO = 'T'
WHERE PERIODO = /*Ingrese el periodo correspondiente al ajuste*/