====== 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:
* **In-house**: Instalación infraestructura ADA
* **On-premise**: Instalación infraestructura cliente.
===== Ubicación =====
El directorio de scripts se encuentra en la url del svn: [[http://adacsc.co:1443/svn/repository/ADA/SICOF/Documentos/Desarrollos/PowerBuilder/ScriptsDB/Tags/App/Financiero/36%20FACTURA%20ELECTRONICA/Versi%C3%B3n%202.0/ScriptsDB/Release/ConfigInit/0010%20PostConfig/Proceso%20Actualizar%20IP-Dominio
|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:
* **Para instalaciones In-house**: Este script debe ejecutarse en la base de datos centralizada con el usuario de presupuesto.
* **Para instalaciones On-premise**: Este scripts debe ejecutarse en la base de datos del cliente con el usuario de presupuesto.
=== Nota ===
* El Dominio lo debe suministrar la persona que brinda el soporte (Consultor, Fabrica o Ticket).
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 ===
* La IP y Puerto la debe suministrar la persona que brinda el soporte (Consultor, Fabrica o Ticket).
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 ===
* La IP y Puerto la debe suministrar la persona que brinda el soporte (Consultor, Fabrica o Ticket).
--==============================================================================
-- 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;
[[ada:howto:sicoferp:factory:sicoferpscriptsdb:fe:fase3|←Volver atras]]