Referência SQL de pré-requisitos

Objetos e procedimentos de banco de dados

Os seguintes objetos de banco de dados são criados por meio do arquivo prerequisites.sql.

STATE.PREREQUISITES

Uma tabela interna para persistir os dados sobre os pré-requisitos. Esta tabela não pode ser acessada de fora do aplicativo. Para ler os dados, use a exibição PUBLIC.PREREQUISITES abaixo. A tabela contém as seguintes colunas:

  • id STRING

  • title VARCHAR

  • description VARCHAR

  • learnmore_url VARCHAR

  • documentation_url VARCHAR

  • guide_url VARCHAR

  • custom_properties VARIANT

  • is_completed BOOLEAN

  • position INTEGER

PUBLIC.PREREQUISITES

Esta exibição é exposta às funções ADMIN e VIEWER. Ela retorna os dados da tabela acima. As linhas serão classificadas em ordem crescente por coluna position. A inserção de pré-requisitos ocorre dentro do setup.sql. No entanto, isso deve ser feito de forma a ignorar a inserção durante a atualização. Por exemplo:

EXECUTE IMMEDIATE
$$
DECLARE
    prerequisites_exist NUMBER;
BEGIN
    SELECT COUNT (*) INTO :prerequisites_exist FROM state.prerequisites;
    IF (:prerequisites_exist = 0) THEN
        INSERT INTO STATE.PREREQUISITES (ID, TITLE, DESCRIPTION, DOCUMENTATION_URL, POSITION)
            VALUES
                ('1', '<Prerequisite name>', '<Prerequisite description>', 'Prerequisite url', 1)
    END IF;
END;
$$;
Copy

Outra abordagem é usar uma instrução de fusão e não fazer nada (ou atualizar) na correspondência.

PUBLIC.COMPLETE_PREREQUISITES_STEP()

Um procedimento disponível para usuários ADMIN. A execução bem-sucedida deste procedimento não exige que todos os pré-requisitos sejam concluídos. Se o status de configuração do conector for INSTALLED, ele define o status do conector como:

{
    "status": "CONFIGURING",
    "configurationStatus": "PREREQUISITES_DONE"
}
Copy

Caso contrário, não há efeito.

Este procedimento requer que o conector esteja no status CONFIGURING e com status de configuração diferente de FINALIZED. Caso contrário, uma exceção será lançada.

Possíveis erros incluem:

  • INVALID_CONNECTOR_STATUS - connector_status não é [CONFIGURING].

  • INVALID_CONNECTOR_CONFIGURATION_STATUS - configuration_status é FINALIZED.

  • UNKNOWN_ERROR - Algo inesperado deu errado - a mensagem de exceção gerada é encaminhada.

PUBLIC.UPDATE_PREREQUISITE (ID VARCHAR, IS_COMPLETED BOOLEAN)

Este procedimento define o status do pré-requisito dado para o valor fornecido. Está disponível apenas para usuários ADMIN. As validações são semelhantes ao procedimento COMPLETE_PREREQUISITES_STEP().

Possíveis erros incluem:

  • INVALID_CONNECTOR_STATUS - O status do conector não é [CONFIGURING].

  • INVALID_CONNECTOR_CONFIGURATION_STATUS - O status da configuração do conector é FINALIZED.

  • PREREQUISITE_NOT_FOUND - Pré-requisito com ID dado não encontrado.

PUBLIC.MARK_ALL_PREREQUISITES_AS_DONE()

Este procedimento define a coluna is_completed para todos os pré-requisitos como true. As validações são semelhantes ao procedimento COMPLETE_PREREQUISITES_STEP().

Possíveis erros incluem:

  • INVALID_CONNECTOR_STATUS - O status do conector não é [CONFIGURING].

  • INVALID_CONNECTOR_CONFIGURATION_STATUS - O status da configuração do conector é FINALIZED.