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;
$$;
Copy

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"
}
Copy

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 is FINALIZED.

  • 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 est FINALIZED.

  • 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 est FINALIZED.