Reativar automations específicas após update da aplicação no Oracle APEX



This content originally appeared on DEV Community and was authored by Valter Zanchetti Filho

Uma coisa que as vezes é um pouco irritante é o fato de que o APEX desativa todas as automations depois que a aplicação é sobrescrita por uma nova versão.

Eu costumo automatizar boa parte do pipeline de geração e aplicação de release de objetos de bancos de dados e apps em outros servidores e percebi que, por padrão, as automations são sempre desativadas após o update do app.

Para contornar esse problema, fiz o script abaixo, que é rodado após o update bem sucedido de cada aplicação. Você pode modificar para as suas necessidades colocando cada uma das automations que você tem interesse em reativar. Você também pode modificar o script a seu critério.

SET SERVEROUTPUT ON

BEGIN
    apex_util.set_workspace('YOUR_WORKSPACE_NAME');

    apex_session.create_session(
        p_app_id   => 117,     --App ID 
        p_page_id  => 1,       --Any Page in the App
        p_username => 'VALTER'  );  -- Any valid APEX User

    --Enable specific automation
    apex_automation.enable(
        p_application_id  => 117, --App Id
        p_static_id       => 'emitir-espelho-retorno-nf' ); -- Static id

     --Destroying the session
    apex_session.delete_session;
END;
/

Você também pode fazer um loop simples para rodar em todas as suas automations ou criar alguma outra lógica se baseando no select dessa view:

SELECT * FROM APEX_APPL_AUTOMATION

Fontes:

https://docs.oracle.com/en/database/oracle/apex/24.1/aeapi/APEX_AUTOMATION_ENABLE-Procedure.html


This content originally appeared on DEV Community and was authored by Valter Zanchetti Filho