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 einenEXTERNAL ACCESS INTEGRATION
-Objektbezeichner.
secret
für einenSECRET
-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 [...]
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)." }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>" }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 dersetup.sql
verwendet werden kann (andernfalls könnte jeder nicht behandelte Fehler den Installationsprozess der Anwendung unterbrechen und beenden).
Mögliche Fehler¶
EAI_UNAVAILABLE
– einEXTERNAL ACCESS INTEGRATION
-Objekt existiert nicht oder eine Anwendung verfügt nicht über die BerechtigungUSAGE
für dieses Objekt.SECRET_UNAVAILABLE
– einSECRET
-Objekt existiert nicht oder eine Anwendung hat nicht mindestens dieREAD
-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)') );
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 einEXTERNAL ACCESS INTEGRATION
-Objekt.SECRET_REFERENCE
–für einen Verweis auf einSECRET
-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 [...]
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)." }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>" }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 dersetup.sql
verwendet werden kann (andernfalls könnte jeder nicht behandelte Fehler den Installationsprozess der Anwendung unterbrechen und beenden).
Mögliche Fehler¶
EAI_UNAVAILABLE
– einEXTERNAL ACCESS INTEGRATION
-Objekt existiert nicht oder eine Anwendung verfügt nicht über die BerechtigungUSAGE
für dieses Objekt.SECRET_UNAVAILABLE
– einSECRET
-Objekt existiert nicht oder eine Anwendung hat nicht mindestens dieREAD
-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)') );
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 [...]
Wobei:
eai_idf VARCHAR
– steht für einen Bezeichner einesEXTERNAL_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 einesSECRET
-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)." }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>" }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 dersetup.sql
verwendet werden kann (andernfalls könnte jeder nicht behandelte Fehler den Installationsprozess der Anwendung unterbrechen und beenden).
Mögliche Fehler¶
EAI_UNAVAILABLE
– einEXTERNAL ACCESS INTEGRATION
-Objekt existiert nicht oder eine Anwendung verfügt nicht über die BerechtigungUSAGE
für dieses Objekt.SECRET_UNAVAILABLE
– einSECRET
-Objekt existiert nicht oder eine Anwendung hat nicht mindestens dieREAD
-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)') );
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; $$ ;