Tabla de Contenidos

Fabrica: Factura Electrónica - Actualizar IP/Dominio (Scripts DB)

En ocasiones los clientes realizan modificaciones en su infraestructura de red, ya sea por procesos de seguridad, cambios de proveedor de servicio de internet, auditorias o procesos administrativos o por cualquier otro motivo, en esas situaciones es necesario actualizar la ip o dominio de la funcionalidad ya que el desarrollo requiere que se parametrice la ip del consumo del web service interno y el dominio que estará incluido en el link del correo electrónico que permite los eventos de aceptación y rechazo. A continuación se explica el script de actualización el cual ha sido documentado para identificar el caso de actualización y proceder con la ejecución en el ambiente requerido. Este proceso aplica para el PST Interno en los modos de instalación:

Ubicación

El directorio de scripts se encuentra en la url del svn: SVN Directorio

Script: 0001a Actualizar Dominio.sql

Este script se utiliza para actualizar el Dominio (Si aplica). Se deben ingresar los campos requeridos y tener presente las siguiente consideraciones:

Nota

DECLARE
  --==============================================================================
  -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- Variables de control
  --==============================================================================  
  ERROR_FE EXCEPTION;
  PRAGMA EXCEPTION_INIT(ERROR_FE, -20999); 
 
  GCVA_HTTP CONSTANT VARCHAR2(32) := 'http://';
  GCVA_HTTPS CONSTANT VARCHAR2(32) := 'https://'; 
 
  GCVN_ERROR_NUMBER       CONSTANT NUMBER := -20999; 
  lva_msg VARCHAR2(2048)  DEFAULT NULL;
 
  GCVA_URL_VALID CONSTANT VARCHAR2(1024) := '/ADAFE/webresources/forms/efevento/{codigo_cliente}/{nit_empresa}/{pst}/{cufe}';  
  GCVA_URL_FORM CONSTANT VARCHAR2(1024) := '/ADAFE/webresources/forms/formulario/{codigo_cliente}/{nit_empresa}/{pst}/{cufe}';  
 
  --==============================================================================
  -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- Variables de procesos
  --==============================================================================  
  lva_CODIGO_CLIENTE  VARCHAR2(256)  DEFAULT NULL;
  lva_COD_PST         VARCHAR2(256)  DEFAULT NULL;  
  lva_DOMINIO         VARCHAR2(1024)  DEFAULT NULL;
 
  lvb_http            BOOLEAN DEFAULT NULL;
  lva_URL_VALID       VARCHAR2(1024)  DEFAULT NULL;
  lva_URL_FORM        VARCHAR2(1024)  DEFAULT NULL;  
  lva_protocolo       VARCHAR2(32)  DEFAULT NULL;
 
BEGIN  
  --==============================================================================
  -- Fecha: 12:11 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co
  -- Captura de parametros de configuración del cliente
  --==============================================================================
  ROLLBACK;
  lva_msg := 'Captura de parametros de configuración del cliente';
 
  --==============================================================================
  -- Fecha: 12:42 p. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- PASO 1: Configuración de resolución
  --==============================================================================
  lva_msg := 'PASO 1: Registro de configuración';  
 
  --==============================================================================
  -- Fecha: 12:55 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co
  -- El codigo del cliente por lo generar se refiere al nombrede cliente sin espacios acompañado del contexto de ejecución
  -- Ejemplo para el cliente ADA en el ambiente de producción seria ADA_PROD
  -- Ejemplo para el cliente ADA en el ambiente de pruebas seria ADA_TEST
  --==============================================================================  
  lva_CODIGO_CLIENTE := NULL;--REQUERIDO: código del cliente con el contexto (TEST o PROD)
 
  --==============================================================================
  -- Fecha: 7:20 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- El código del PST es una codificación interna que se le denota al cliente
  -- del servicio web que realizará el envio de documentos para los PST internos
  -- este código será ADA para los PST Externos este codigo será un acronimo
  -- del nombre del proveedor externo EJ (BytheWave = BTW, Tecnofactor = TNF) 
  --==============================================================================  
  lva_COD_PST  := NULL;--REQUERIDO: código del pst
 
  --==============================================================================
  -- Fecha: 4:10 p. m. jueves, 18 de febrero de 2021 - carlos.torres@ada.co
  -- Se debe indicar si la petición es segura o no por lo tanto debe 
  -- validarlo con el servicio. true: https false:http
  --==============================================================================  
  lvb_http := NULL;
 
  --==============================================================================
  -- Fecha: 11:34 a. m. jueves, 18 de febrero de 2021 - carlos.torres@ada.co
  -- Respresenta el domino público que puede ser accedido desde los link del 
  -- correo de los documentos enviados y permite el acceso al portal de consulta 
  -- de documentos (No es equerido para actualizar la IP pero si se requiere que 
  -- el dominio actual sea actualizado a la nueva IP)
  --==============================================================================
  lva_DOMINIO := NULL;--NO REQUERIDO dominio que mapea la ip del servidor
 
  --******************************************************************************
  --******************************************************************************
  -- NO MODIFICAR EL CODIGO FUENTE A PARTIR DE ACA
  --******************************************************************************
  --****************************************************************************** 
 
  --==============================================================================
  -- Fecha: 12:42 p. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- PASO 2: Validaciones
  --==============================================================================
  lva_msg := 'PASO 2: Validaciones';  
 
  --==============================================================================
  -- Fecha: 7:17 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- Validaciones de control
  --==============================================================================
  lva_msg := 'Validaciones de control';
 
  IF lva_CODIGO_CLIENTE IS NULL THEN
    lva_msg := 'No se ha definido el codigo del cliente en la configuración';
    RAISE ERROR_FE;
  END IF;
 
  IF lva_COD_PST IS NULL THEN
    lva_msg := 'No se ha definido el codigo del pst en la configuración';
    RAISE ERROR_FE;
  END IF;  
 
--  if lvb_http is null then
--    lva_msg := 'No se ha definido el protoco de la petición (true: https false:http)';
--    RAISE ERROR_FE;
--  end if;
 
  --==============================================================================
  -- Fecha: 7:53 a. m. viernes, 19 de febrero de 2021 - carlos.torres@ada.co
  -- Identificar el protocolo
  --==============================================================================  
  IF lvb_http = TRUE THEN
    lva_protocolo := GCVA_HTTP;
  ELSIF lvb_http = FALSE THEN
    lva_protocolo := GCVA_HTTPS;
  ELSE
    lva_protocolo := GCVA_HTTP;
  END IF;
 
  --==============================================================================
  -- Fecha: 1:58 p. m. jueves, 18 de febrero de 2021 - carlos.torres@ada.co
  -- PASO 3: Actualizaciones
  --==============================================================================
  lva_msg := 'PASO 3: Actualizaciones';
 
  --==============================================================================
  -- Fecha: 7:55 a. m. viernes, 19 de febrero de 2021 - carlos.torres@ada.co
  -- Actualizar Dominio
  --==============================================================================  
  IF lva_DOMINIO IS NOT NULL THEN
    lva_msg := 'Actualizar Dominio';
    lva_URL_VALID := lva_protocolo || lva_DOMINIO || GCVA_URL_VALID;
    lva_URL_FORM  := lva_protocolo || lva_DOMINIO || GCVA_URL_FORM;    
    UPDATE  TBL_FE_CONEXION_CLIENTE
    SET     URL_VAL_ACEPTACION      = NVL(lva_URL_VALID, URL_VAL_ACEPTACION),
            URL_VAL_ACEPTACION_FORM = NVL(lva_URL_FORM, URL_VAL_ACEPTACION_FORM)
    WHERE   CODIGO_CLIENTE          = lva_CODIGO_CLIENTE;    
  END IF;
 
  COMMIT;
 
EXCEPTION WHEN OTHERS THEN
  dbms_output.put_line(SQLCODE || ' - ' || SQLERRM || ' - msg: ' || lva_msg);
  ROLLBACK;
  SICOF.PCK_UTILIDADES.P_REGISTER_ERROR(SQLCODE, lva_msg, 'ERROR: ' || SQLERRM || dbms_utility.format_error_backtrace, 'BLOQUE ANONIMO');
  raise_application_error(GCVN_ERROR_NUMBER,lva_msg);
END;

Script: 0001b Actualizar IP y Puerto.sql

Este script se utiliza para actualizar la IP y Puerto. Se deben ingresar los campos requeridos y se debe ejecutar con el usuario del módulo presupuesto.

Nota

DECLARE
  --==============================================================================
  -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- Variables de control
  --==============================================================================  
  ERROR_FE EXCEPTION;
  PRAGMA EXCEPTION_INIT(ERROR_FE, -20999); 
 
  GCVA_HTTP CONSTANT VARCHAR2(32) := 'http://';
  GCVA_HTTPS CONSTANT VARCHAR2(32) := 'https://'; 
 
  GCVN_ERROR_NUMBER       CONSTANT NUMBER := -20999; 
  lva_msg VARCHAR2(2048)  DEFAULT NULL;
 
  GCVA_URL_WS CONSTANT VARCHAR2(1024) := '/ADAFE/webresources/pst/ef/';
 
  --==============================================================================
  -- Fecha: 7:15 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- Variables de procesos
  --==============================================================================  
  lva_CODIGO_CLIENTE  VARCHAR2(256)  DEFAULT NULL;
  lva_COD_PST         VARCHAR2(256)  DEFAULT NULL;
  lva_IP              VARCHAR2(256)  DEFAULT NULL; 
  lva_PUERTO          VARCHAR2(256)  DEFAULT NULL; 
 
  lvb_http            BOOLEAN DEFAULT NULL;
  lva_URL_WS          VARCHAR2(1024)  DEFAULT NULL;
  lva_protocolo       VARCHAR2(32)  DEFAULT NULL;
 
BEGIN  
  --==============================================================================
  -- Fecha: 12:11 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co
  -- Captura de parametros de configuración del cliente
  --==============================================================================
  ROLLBACK;
  lva_msg := 'Captura de parametros de configuración del cliente';
 
  --==============================================================================
  -- Fecha: 12:42 p. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- PASO 1: Configuración de resolución
  --==============================================================================
  lva_msg := 'PASO 1: Registro de configuración';  
 
  --==============================================================================
  -- Fecha: 12:55 p. m. sábado, 21 de noviembre de 2020 - carlos.torres@ada.co
  -- El codigo del cliente por lo generar se refiere al nombrede cliente sin espacios acompañado del contexto de ejecución
  -- Ejemplo para el cliente ADA en el ambiente de producción seria ADA_PROD
  -- Ejemplo para el cliente ADA en el ambiente de pruebas seria ADA_TEST
  --==============================================================================  
  lva_CODIGO_CLIENTE := NULL;--REQUERIDO: código del cliente con el contexto (TEST o PROD)
 
  --==============================================================================
  -- Fecha: 7:20 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- El código del PST es una codificación interna que se le denota al cliente
  -- del servicio web que realizará el envio de documentos para los PST internos
  -- este código será ADA para los PST Externos este codigo será un acronimo
  -- del nombre del proveedor externo EJ (BytheWave = BTW, Tecnofactor = TNF) 
  --==============================================================================  
  lva_COD_PST  := NULL;--REQUERIDO: código del pst 
 
  --==============================================================================
  -- Fecha: 11:33 a. m. jueves, 18 de febrero de 2021 - carlos.torres@ada.co
  -- La nueva ip que se desea actualizar esto requiere que actualice la ACL
  -- y que el servidor de la base datos pueda acceder al domino de red de la nueva IP
  --==============================================================================  
  lva_IP  := NULL;--REQUERIDO: ip del servidor
 
  --==============================================================================
  -- Fecha: 9:38 a. m. viernes, 19 de febrero de 2021 - carlos.torres@ada.co
  -- Puerto por donde escuchará el servicio web interno las peticiones de la base de datos
  --==============================================================================  
  lva_PUERTO := NULL;-- REQUERIDO PUERTO estandar para PST Interno - in-house: 3123. Se debe cambiar cuando es On-premise
 
  --==============================================================================
  -- Fecha: 4:10 p. m. jueves, 18 de febrero de 2021 - carlos.torres@ada.co
  -- Se debe indicar si la petición es segura o no por lo tanto debe 
  -- validarlo con el servicio. true: https false:http
  --==============================================================================  
  lvb_http := NULL; 
 
  --******************************************************************************
  --******************************************************************************
  -- NO MODIFICAR EL CODIGO FUENTE A PARTIR DE ACA
  --******************************************************************************
  --****************************************************************************** 
 
  --==============================================================================
  -- Fecha: 12:42 p. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- PASO 2: Validaciones
  --==============================================================================
  lva_msg := 'PASO 2: Validaciones';  
 
  --==============================================================================
  -- Fecha: 7:17 a. m. domingo, 22 de noviembre de 2020 - carlos.torres@ada.co
  -- Validaciones de control
  --==============================================================================
  lva_msg := 'Validaciones de control';
 
  IF lva_CODIGO_CLIENTE IS NULL THEN
    lva_msg := 'No se ha definido el codigo del cliente en la configuración';
    RAISE ERROR_FE;
  END IF;
 
  IF lva_COD_PST IS NULL THEN
    lva_msg := 'No se ha definido el codigo del pst en la configuración';
    RAISE ERROR_FE;
  END IF;
 
  IF lva_IP IS NULL THEN
    lva_msg := 'No se ha definido la ip del servidor web';
    RAISE ERROR_FE;
  END IF;
 
  IF lva_PUERTO IS NULL THEN
    lva_msg := 'No se ha definido el puerto del servidor web';
    RAISE ERROR_FE;
  END IF;
 
--  if lvb_http is null then
--    lva_msg := 'No se ha definido el protoco de la petición (true: https false:http)';
--    RAISE ERROR_FE;
--  end if;
 
  --==============================================================================
  -- Fecha: 7:53 a. m. viernes, 19 de febrero de 2021 - carlos.torres@ada.co
  -- Identificar el protocolo
  --==============================================================================  
  IF lvb_http = TRUE THEN
    lva_protocolo := GCVA_HTTP;
  ELSIF lvb_http = FALSE THEN
    lva_protocolo := GCVA_HTTPS;
  ELSE
    lva_protocolo := GCVA_HTTP;
  END IF;
 
  --==============================================================================
  -- Fecha: 1:58 p. m. jueves, 18 de febrero de 2021 - carlos.torres@ada.co
  -- PASO 3: Actualizaciones
  --==============================================================================
  lva_msg := 'PASO 3: Actualizaciones';  
 
  --==============================================================================
  -- Fecha: 7:56 a. m. viernes, 19 de febrero de 2021 - carlos.torres@ada.co
  -- Actualizar IP
  --==============================================================================  
  IF lva_IP IS NOT NULL THEN
    lva_msg := 'Actualizar IP';
    lva_URL_WS := lva_protocolo || lva_IP || ':' || lva_PUERTO || GCVA_URL_WS;
    UPDATE PRESUP01.PARAMETROS_FE_PST
    SET    SERVICIO_URL          = NVL(lva_URL_WS, SERVICIO_URL)
    WHERE  COD_PST               = lva_COD_PST
    AND    COD_CLIENTE           = lva_CODIGO_CLIENTE;
  END IF;  
 
  COMMIT;
 
EXCEPTION WHEN OTHERS THEN
  dbms_output.put_line(SQLCODE || ' - ' || SQLERRM || ' - msg: ' || lva_msg);
  ROLLBACK;
  SICOF.PCK_UTILIDADES.P_REGISTER_ERROR(SQLCODE, lva_msg, 'ERROR: ' || SQLERRM || dbms_utility.format_error_backtrace, 'BLOQUE ANONIMO');
  raise_application_error(GCVN_ERROR_NUMBER,lva_msg);
END;

Script: 0001c Actualizar ACL.sql

Este script se utiliza para actualizar la IP en la lista de control de acceso de la base de datos del Cliente (ACL). Se deben ingresar los campos requeridos y se debe ejecutar con el usuario root SYS as DBA.

Nota

--==============================================================================
-- Fecha: 7:49 a. m. viernes, 19 de febrero de 2021 - carlos.torres@ada.co
-- EJECUTAR CON EL SYS as DBA
-- PASO 1: Asignar los permisos a la URL/IP donde esta aloja el servicio web interno
-- Para contexto in-house se asignan valores por defecto
-- Para contexto on-premise se deben asignar los valores de la instalación
--==============================================================================
DECLARE
  lva_IP      VARCHAR2(256)  DEFAULT NULL;--IP estandar para PST Interno - in-house. Se debe cambiar cuando es On-premise
  lva_PUERTO  VARCHAR2(256)  DEFAULT NULL;--PUERTO estandar para PST Interno - in-house. Se debe cambiar cuando es On-premise
BEGIN
  lva_IP      := '10.1.20.84';--IP estandar para PST Interno - in-house. Se debe cambiar cuando es On-premise - CAMPO REQUERIDO
  lva_PUERTO  := 3123;--PUERTO estandar para PST Interno - in-house. Se debe cambiar cuando es On-premise - CAMPO REQUERIDO
  DBMS_NETWORK_ACL_ADMIN.assign_acl (
    acl         => 'test_fe_ws_wrapper_pst.xml',
    host        => lva_IP, 
    lower_port  => lva_PUERTO,
    upper_port  => NULL);
  COMMIT;
END;

←Volver atras