Referenz für die Einrichtung der externen Integration

Die folgenden Datenbankobjekte werden über die Datei setup_external_integration.sql erstellt.

PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES()

Die Prozedur ändert andere Prozeduren oder Funktionen, deren Signaturen als Prozedurargument in einem Array übergeben werden, mit einem EXTERNAL ACCESS INTEGRATION- und einem SECRET-Objektnamen, die in der Verbindungskonfiguration unter den folgenden Schlüsseln gespeichert sind:

  • external_access_configuration für einen EXTERNAL ACCESS INTEGRATION-Objektbezeichner.

  • secret für einen SECRET-Objektbezeichner.

Das Geheimnis wird mit dem Schlüssel credentials an die geänderte Prozedur/Funktion angehängt. Standardmäßig ist das Verfahren für keine der Benutzerrollen der Anwendung verfügbar.

Prozedursignatur

CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES(methods ARRAY)
    RETURNS VARIANT
    LANGUAGE SQL
    [...]
Copy

Wobei:

  • methods ARRAY steht für ein Array von Prozedur-/Funktionssignaturen als Varchar-Wert, z. B. ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()').

Zurückgegebene Werte

Die Prozedur gibt immer einen Variant-Wert mit einer Standard-Konnektor-Antwortstruktur zurück.

Im Falle einer erfolgreichen Ausführung der Prozedur:

{
  "response_code": "OK",
  "message": "Successfully set up <number> method(s)."
}
Copy

Bemerkung

Die Ausführung der Prozedur wird auch dann erfolgreich beendet, wenn die als Argumente übergebenen Prozedur-/Funktionssignaturen keine existierenden Objekte darstellen oder eine Anwendung keinen Zugriff auf diese Objekte hat. Der Veränderungsprozess dieser Art von Prozedur/Funktion wird übersprungen und der allgemeine Prozess wird fortgesetzt.

Im Falle eines Fehlers:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>",
  "SQLCODE": "<code of a thrown exception>",
  "SQLERRM": "<error message of a thrown exception>",
  "SQLCODE": "<sql code of a thrown exception>"
}
Copy

Achtung

Die Prozedur löst keinen Fehler aus, wenn während der Ausführung ein Fehler auftritt. Jeder Fehler wird in die Antwort des Konnektors eingebunden und dem entsprechenden response_code zugeordnet, wodurch das Ergebnis der Prozedur validiert und während der Anwendungsinstallation sicher in der setup.sql verwendet werden kann (andernfalls könnte jeder nicht behandelte Fehler den Installationsprozess der Anwendung unterbrechen und beenden).

Mögliche Fehler

  • EAI_UNAVAILABLE – ein EXTERNAL ACCESS INTEGRATION-Objekt existiert nicht oder eine Anwendung verfügt nicht über die Berechtigung USAGE für dieses Objekt.

  • SECRET_UNAVAILABLE – ein SECRET-Objekt existiert nicht oder eine Anwendung hat nicht mindestens die READ-Berechtigung darauf.

  • INTERNAL ERROR – dieser Antwortcode wird zurückgegeben, wenn unerwartete Fehler auftreten.

Nutzungsbeispiel

CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_NAMES(ARRAY_CONSTRUCT(
    'PUBLIC.TEST_CONNECTION()',
    'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)',
    'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)')
);
Copy

PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES()

Die Prozedur ändert andere Prozeduren oder Funktionen, deren Signaturen als Prozedurargument in einem Array übergeben werden, mit einem EXTERNAL ACCESS INTEGRATION- und einem SECRET-Objekt, die Anwendungsreferenzen zugewiesen werden. Wenn Sie diese Prozedur verwenden, müssen Sie Referenzen mit den folgenden Namen registrieren lassen:

  • EAI_REFERENCE – für einen Verweis auf ein EXTERNAL ACCESS INTEGRATION-Objekt.

  • SECRET_REFERENCE –für einen Verweis auf ein SECRET-Objekt.

Das Geheimnis wird mit dem Schlüssel credentials an die geänderte Prozedur/Funktion angehängt. Standardmäßig ist das Verfahren für keine der Benutzerrollen der Anwendung verfügbar.

Prozedursignatur

CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES(methods ARRAY)
    RETURNS VARIANT
    LANGUAGE SQL
    [...]
Copy

Wobei:

  • methods ARRAY steht für ein Array von Prozedur-/Funktionssignaturen als Varchar-Wert, z. B. ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()').

Zurückgegebene Werte

Die Prozedur gibt immer einen Variant-Wert mit einer Standard-Konnektor-Antwortstruktur zurück.

Im Falle einer erfolgreichen Ausführung der Prozedur:

{
  "response_code": "OK",
  "message": "Successfully set up <number> method(s)."
}
Copy

Bemerkung

Die Ausführung der Prozedur wird auch dann erfolgreich beendet, wenn die als Argumente übergebenen Prozedur-/Funktionssignaturen keine existierenden Objekte darstellen oder eine Anwendung keinen Zugriff auf diese Objekte hat. Der Veränderungsprozess dieser Art von Prozedur/Funktion wird übersprungen und der allgemeine Prozess wird fortgesetzt.

Im Falle eines Fehlers:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>",
  "SQLCODE": "<code of a thrown exception>",
  "SQLERRM": "<error message of a thrown exception>",
  "SQLCODE": "<sql code of a thrown exception>"
}
Copy

Achtung

Die Prozedur löst keinen Fehler aus, wenn während der Ausführung ein Fehler auftritt. Jeder Fehler wird in die Antwort des Konnektors eingebunden und dem entsprechenden response_code zugeordnet, wodurch das Ergebnis der Prozedur validiert und während der Anwendungsinstallation sicher in der setup.sql verwendet werden kann (andernfalls könnte jeder nicht behandelte Fehler den Installationsprozess der Anwendung unterbrechen und beenden).

Mögliche Fehler

  • EAI_UNAVAILABLE – ein EXTERNAL ACCESS INTEGRATION-Objekt existiert nicht oder eine Anwendung verfügt nicht über die Berechtigung USAGE für dieses Objekt.

  • SECRET_UNAVAILABLE – ein SECRET-Objekt existiert nicht oder eine Anwendung hat nicht mindestens die READ-Berechtigung darauf.

  • INTERNAL ERROR – dieser Antwortcode wird zurückgegeben, wenn unerwartete Fehler auftreten.

Nutzungsbeispiel

CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION_WITH_REFERENCES(ARRAY_CONSTRUCT(
    'PUBLIC.TEST_CONNECTION()',
    'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)',
    'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)')
);
Copy

PUBLIC.SETUP_EXTERNAL_INTEGRATION()

Dies ist eine Rohfassung der oben beschriebenen Prozeduren, die auch von ihnen verwendet wird. Die Prozedur ändert andere Prozeduren oder Funktionen, deren Signaturen als Prozedurargument in einem Array übergeben werden, mit einem EXTERNAL ACCESS INTEGRATION- und einem SECRET-Objektnamen, die ebenfalls als Prozedurargumente übergeben werden. Diese Prozedur lässt dem Entwickler die Freiheit zu entscheiden, wie der Prozedur Informationen über externe zugangsbezogene Objekte zur Verfügung gestellt werden.

Das Geheimnis wird mit dem Schlüssel credentials an die geänderte Prozedur/Funktion angehängt. Standardmäßig ist das Verfahren für keine der Benutzerrollen der Anwendung verfügbar.

Dieses Verfahren wird nur empfohlen, wenn es nicht möglich ist, die oben beschriebenen Prozeduren zu verwenden, die Verweise mit vordefinierten Namen oder Objektnamen verwenden, die unter vordefinierten Schlüsseln in der Verbindungskonfiguration gespeichert sind.

Prozedursignatur

CREATE OR REPLACE PROCEDURE PUBLIC.SETUP_EXTERNAL_INTEGRATION(eai_idf VARCHAR, secret_idf VARCHAR, methods ARRAY)
    RETURNS VARIANT
    LANGUAGE SQL
    [...]
Copy

Wobei:

  • eai_idf VARCHAR – steht für einen Bezeichner eines EXTERNAL_ACCESS_INTEGRATION-Objekts. Wenn Sie dort einen Referenznamen übergeben wollen, müssen Sie ihn wie folgt einschließen: 'reference(\'<reference_name>\')'

  • secret_idf VARCHAR – steht für einen Bezeichner eines SECRET-Objekts. Wenn Sie dort einen Referenznamen übergeben wollen, müssen Sie ihn wie folgt einschließen: 'reference(\'<reference_name>\')'

  • methods ARRAY steht für ein Array von Prozedur-/Funktionssignaturen als Varchar-Wert, z. B. ARRAY_CONSTRUCT('PUBLIC.PROC_1(VARIANT)', 'PUBLIC.PROC_2()').

Zurückgegebene Werte

Die Prozedur gibt immer einen Variant-Wert mit einer Standard-Konnektor-Antwortstruktur zurück.

Im Falle einer erfolgreichen Ausführung der Prozedur:

{
  "response_code": "OK",
  "message": "Successfully set up <number> method(s)."
}
Copy

Bemerkung

Die Ausführung der Prozedur wird auch dann erfolgreich beendet, wenn die als Argumente übergebenen Prozedur-/Funktionssignaturen keine existierenden Objekte darstellen oder eine Anwendung keinen Zugriff auf diese Objekte hat. Der Veränderungsprozess dieser Art von Prozedur/Funktion wird übersprungen und der allgemeine Prozess wird fortgesetzt.

Im Falle eines Fehlers:

{
  "response_code": "<ERROR_CODE>",
  "message": "<error message>",
  "SQLCODE": "<code of a thrown exception>",
  "SQLERRM": "<error message of a thrown exception>",
  "SQLCODE": "<sql code of a thrown exception>"
}
Copy

Achtung

Die Prozedur löst keinen Fehler aus, wenn während der Ausführung ein Fehler auftritt. Jeder Fehler wird in die Antwort des Konnektors eingebunden und dem entsprechenden response_code zugeordnet, wodurch das Ergebnis der Prozedur validiert und während der Anwendungsinstallation sicher in der setup.sql verwendet werden kann (andernfalls könnte jeder nicht behandelte Fehler den Installationsprozess der Anwendung unterbrechen und beenden).

Mögliche Fehler

  • EAI_UNAVAILABLE – ein EXTERNAL ACCESS INTEGRATION-Objekt existiert nicht oder eine Anwendung verfügt nicht über die Berechtigung USAGE für dieses Objekt.

  • SECRET_UNAVAILABLE – ein SECRET-Objekt existiert nicht oder eine Anwendung hat nicht mindestens die READ-Berechtigung darauf.

  • INTERNAL ERROR – dieser Antwortcode wird zurückgegeben, wenn unerwartete Fehler auftreten.

Nutzungsbeispiel

CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION(
    'EXAMPLE_EAI_IDF',
    'reference(\'CUSTOM_REFERENCE_NAME\')',
    ARRAY_CONSTRUCT('PUBLIC.TEST_CONNECTION()',
    'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)',
    'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)')
);
Copy

Wenn Sie diese Prozedur im Skript setup.sql verwenden möchten und die Namen eines SECRET-Objekts und eines EXTERNAL ACCESS INTEGRATION-Objekts auf eine andere Art und Weise gespeichert sind als die, die vom nativen SDK für Konnektoren empfohlen wird, müssen Sie diese Werte irgendwie abrufen. In diesem Fall können Sie den Mechanismus EXECUTE IMMEDIATE verwenden:

EXECUTE IMMEDIATE $$
    DECLARE
        eai_idf VARCHAR;
        secret_idf VARCHAR;
    BEGIN
        -- retrieve name of an EXTERNAL ACCESS INTEGRATION object
        :eai_idf = <eai_object_name>;

        -- retrieve name of a SECRET object
        :secret_idf = <secret_object_name>;

        CALL PUBLIC.SETUP_EXTERNAL_INTEGRATION(
            :eai_idf,
            :secret_idf,
            ARRAY_CONSTRUCT('PUBLIC.TEST_CONNECTION()',
            'PUBLIC.FINALIZE_CONFIGURATION(VARIANT)',
            'PUBLIC.TEMPLATE_WORKER(NUMBER, STRING)')
        );
    END;
$$
;
Copy