Référence SQL de prérequis¶
Objets et procédures de la base de données¶
Les objets de base de données suivants sont créés par le biais du fichier prerequisites.sql
.
STATE.PREREQUISITES¶
Une table interne pour conserver les données relatives aux conditions préalables. Cette table n’est pas accessible depuis l’extérieur de l’appli. Pour lire les données, utilisez la vue PUBLIC.PREREQUISITES
ci-dessous. La table contient les colonnes suivantes :
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¶
Cette vue est exposée aux rôles ADMIN
et VIEWER
. Elle renvoie les données de la table ci-dessus. Les lignes seront triées par ordre croissant en fonction de la colonne position
. L’insertion des conditions préalables se fait à l’intérieur de setup.sql
. Cependant, cela doit être fait de manière à sauter l’insertion pendant la mise à jour. Par exemple :
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;
$$;
Une autre approche consiste à utiliser une instruction de fusion et à ne rien faire (ou à effectuer une mise à jour) en cas de correspondance.
PUBLIC.COMPLETE_PREREQUISITES_STEP()¶
Une procédure accessible aux utilisateurs ADMIN
. L’exécution réussie de cette procédure ne nécessite pas que toutes les conditions préalables soient remplies. Si le statut de configuration du connecteur est INSTALLED
, le statut du connecteur est défini comme suit :
{
"status": "CONFIGURING",
"configurationStatus": "PREREQUISITES_DONE"
}
Dans le cas contraire, il n’y a pas d’effet.
Cette procédure nécessite que le connecteur soit dans le statut CONFIGURING
et dans un statut de configuration autre que FINALIZED
. Dans le cas contraire, une exception est levée.
Les erreurs possibles incluent les suivantes :
INVALID_CONNECTOR_STATUS
- connector_status is not[CONFIGURING]
.INVALID_CONNECTOR_CONFIGURATION_STATUS
- configuration_status isFINALIZED
.UNKNOWN_ERROR
- Something unexpected went wrong - message of thrown exception is forwarded.
PUBLIC.UPDATE_PREREQUISITE (ID VARCHAR, IS_COMPLETED BOOLEAN)¶
Cette procédure définit le statut d’une condition préalable donnée à la valeur fournie. Elle n’est disponible que pour les utilisateurs ADMIN
. Les validations sont similaires à la procédure COMPLETE_PREREQUISITES_STEP()
.
Les erreurs possibles incluent les suivantes :
INVALID_CONNECTOR_STATUS
- Le statut du connecteur n’est pas[CONFIGURING]
.INVALID_CONNECTOR_CONFIGURATION_STATUS
- Le statut de la configuration du connecteur estFINALIZED
.PREREQUISITE_NOT_FOUND
- La condition préalable avec l’ID indiqué n’a pas été trouvé.
PUBLIC.MARK_ALL_PREREQUISITES_AS_DONE()¶
Cette procédure définit la colonne is_completed
pour toutes les conditions préalables sur true
. Les validations sont similaires à la procédure COMPLETE_PREREQUISITES_STEP()
.
Les erreurs possibles incluent les suivantes :
INVALID_CONNECTOR_STATUS
- Le statut du connecteur n’est pas[CONFIGURING]
.INVALID_CONNECTOR_CONFIGURATION_STATUS
- Le statut de la configuration du connecteur estFINALIZED
.