Sviluppo di applicazioni con l'SDK ABAP on-premise o su qualsiasi cloud per Google Cloud

Questo documento fornisce informazioni e risorse utili per sviluppare applicazioni SAP utilizzando le versioni on-premise o cloud dell'SDK ABAP per Google Cloud.

Questo documento è rivolto agli sviluppatori SAP ABAP.

Per un elenco completo delle librerie client fornite dall'edizione on-premise o di qualsiasi cloud di ABAP SDK for Google Cloud, consulta Librerie client di ABAP SDK for Google Cloud on-premise o di qualsiasi cloud.

Interazione con una sola finestra

Ogni API Google Cloud abilitata nell'SDK ABAP per Google Cloud è rappresentata da una classe ABAP, contenuta nel pacchetto /GOOG/CLIENT. Una classe ABAP è composta da più metodi pubblici e ciascuno di questi metodi pubblici corrisponde a un metodo dell'API Google Cloud. Ogni metodo pubblico è inoltre costituito da parametri IMPORTING e parametri EXPORTING. Una classe ABAP contiene anche tipi di dati personalizzati, che possono essere utilizzati per creare e mappare i parametri IMPORTING e EXPORTING. Questi tipi di dati personalizzati sono mappati allo schema dell'API le tue definizioni.

Per ogni interazione con un'API Google Cloud di destinazione, viene restituito Gli ABAP sono l'unica classe punto di interazione. Chiamiamo questo concetto Interazione singola finestra, che protegge tutte le complessità sottostanti dell'interazione con un' API Google Cloud e presenta un'interfaccia semplificata. Questa interfaccia semplificata consente di concentrarsi sulle soluzioni aziendali in fase di sviluppo utilizzando l'SDK, senza preoccuparsi delle funzionalità dell'SDK sottostante.

Finestra singola di interazione

Flusso di interazione

Per chiamare un metodo dell'API, hai il seguente flusso di interazione:

  1. Connettersi a un'API.
  2. Crea una richiesta di input utilizzando i tipi ABAP.
  3. Chiama un metodo dell'API.
  4. Analizza errori ed eccezioni.
  5. Leggi la risposta utilizzando i tipi ABAP.

Interazione con gli sviluppatori

stub del client API

Una tipica classe stub del client API è composta dalle seguenti sezioni:

  • I tipi di ABAP mappati agli schemi dell'API. Puoi usare i tipi ABAP per creare una richiesta di input e analizzare la risposta.
  • Le costanti e gli attributi per l'utilizzo interno o esterno.
  • I metodi API per interagire con le risorse API.

Struttura del corso

Funzionalità

Le funzionalità dell'ABAP SDK per Google Cloud sono:

  • Comunicazione HTTP: l'SDK stabilisce la connessione HTTP con gli endpoint API.
  • marshaling delle richieste: l'SDK converte i dati nei tipi ABAP in payload JSON che viene inviato come corpo della richiesta.
  • Gestione di errori ed eccezioni: l'SDK gestisce i codici di ritorno e i messaggi di errore retitrati dall'API e genera eventuali eccezioni.
  • Risposta di demarshalling: l'SDK riconverti il payload JSON nel il corpo della risposta ai tipi di ABAP corrispondenti.
  • Registrazione degli errori locali: l'SDK registra i messaggi di errore utilizzando il framework di logging.

Progettazione dell'API ed Explorer API

Le API pubblicate da Google seguono la progettazione orientata alle risorse. Per saperne di più sul design delle API di Google, consulta la guida alla progettazione delle API.

L'ABAP SDK per Google Cloud consente l'integrazione con le API basate su REST pubblicate da Google.

L'esploratore API è uno strumento che consente di provare i metodi dell'API Google Cloud senza scrivere codice. Utilizza questo strumento per studiare le API e i parametri di input obbligatori che vuoi passare ai metodi ABAP corrispondenti.

Costrutti di codice

Spiega i costrutti del codice che utilizzi per creare i tuoi programmi ABAP usando l'SDK ABAP per Google Cloud.

Costruttore

Per prima cosa, devi creare un'istanza della classe API che vuoi utilizzare. Il costruttore ogni classe API avrebbe un pattern simile a quello mostrato nell'esempio seguente:

    METHODS constructor
      IMPORTING
        !iv_key_name   TYPE /goog/keyname OPTIONAL "Google Cloud Key Name
        !iv_log_obj    TYPE balobj_d OPTIONAL      "Application log: Object name
        !iv_log_subobj TYPE balsubobj OPTIONAL.    "Application log: Subobject
      RAISING
        /goog/cx_sdk .                 "Exception Classes

Parametri di importazione

La tabella seguente illustra i parametri di importazione di un costruttore di metodi:

Nome parametro Tipo Obbligatorio/Facoltativo Descrizione
iv_key_name /GOOG/KEYNAME Obbligatorio Specifica la chiave client dalla configurazione che utilizzi per creare una connessione a Google Cloud. Per informazioni su configurazione della chiave client, consulta Autenticazione.
iv_log_object balobj_d Facoltativo Specifica l'oggetto log dell'applicazione, che che utilizzi per archiviare gli errori generati dall'SDK. Per informazioni sulla configurazione del logging, vedi Logging delle applicazioni.
iv_log_subobject balsubobj Facoltativo Specifica l'oggetto secondario del log dell'applicazione, che che utilizzi per archiviare gli errori generati dall'SDK. Per informazioni sulla configurazione del logging, vedi Logging delle applicazioni.

Metodo API

Con la progettazione orientata alle risorse delle API di Google Cloud, un metodo API è eseguibile su una risorsa pubblicata dall'API.

Ad esempio, se Topics è una risorsa pubblicata dall'API Pub/Sub, topics.get è un metodo API che rappresenta un'azione la risorsa Topics per ottenere la configurazione di un argomento.

Per mappare un metodo di classe ABAP a un metodo API, puoi consultare la descrizione del metodo pattern:<resource>.<method_verb>.

Ad esempio, la descrizione del metodo per un metodo Pub/Sub è pubsub.projects.topics.get.

  • projects.topics: il nome della risorsa.
  • get: l'azione del metodo.

Descrizione del metodo dell&#39;interfaccia utente SAP

Il nome di un metodo ABAP mappato a un'azione API segue il pattern:<method_verb>_<resource>.

Ad esempio, il nome di un metodo ABAP per Pub/Sub è: GET_TOPICS

  • GET: l'azione del metodo.
  • TOPICS: il nome della risorsa.

Un metodo ABAP è costituito dalle seguenti sezioni mappate ai metodi dell'API REST:

Nome metodo

Importazione dei parametri

Un metodo API può avere i seguenti parametri di importazione. Questi parametri sono facoltativo e puoi passare i parametri in base ai requisiti del metodo API che devi utilizzare.

Nome parametro Tipo Categoria Descrizione

iv_q_<nome>

(0 a n)

Stringa Parametri di query

I parametri di ricerca vengono aggiunti all'endpoint API dopo (?).

Vengono utilizzati per definire l'ordinamento, la paginazione o il filtro.

Potrebbero essere presenti da 0 a n parametri di query.

iv_p_&lt;name&gt;

(0 a n)

Stringa Parametri del percorso

I parametri del percorso fanno parte dell'endpoint.

Vengono usate per puntare a risorse API REST specifiche.

Potrebbero essere presenti da 0 a n parametri di percorso.

is_input

(dal giorno 0 al giorno 1)

TY_CODE (Tipo di corso) Parametri struttura di input

I dati passati come corpo della richiesta possono essere mappati utilizzando la struttura di input.

L'API REST accetta il payload JSON come corpo della richiesta. Il parametro è un completamente digitato che viene convertito in payload JSON la classe API e lo sviluppatore non è tenuto a lavorare con JSON.

Puoi fare riferimento ai tipi di corsi disponibili per capire i tipi ABAP per la mappatura dei dati. Ad esempio: Il tipo /GOOG/CL_PUBSUB_V1=>TY_041 viene mappato alla risorsa REST: Topic, che viene passata come payload JSON al metodo CREATE_TOPICS.

Un metodo può avere al massimo un parametro del corpo della richiesta. Alcuni metodi non hanno un corpo della richiesta.

Esportazione dei parametri

Un metodo API supporta i seguenti parametri di esportazione:

Nome parametro Tipo Categoria Descrizione
es_raw dati Output non elaborato

Questo parametro contiene la risposta JSON (Errore o Operazione riuscita) restituito dal metodo API. Mappa questo parametro a una variabile di tipo String per ricevere la stringa di risposta JSON.

Se la risposta è di qualsiasi altro tipo, ad esempio xstring per l'output del file in /goog/cl_storage_v1->get_objects( ), il parametro restituisce un valore appropriato.

Utilizza questo parametro per scenari di risoluzione dei problemi avanzati o per o scenari avanzati relativi alle API.

es_output TY_CODE (Tipo di corso) Struttura dell'output

La risposta JSON viene deserializzata nella struttura ABAP e restituita utilizzando questo parametro di esportazione con tipi.

Puoi utilizzarlo come metodo principale per leggere le risposte dell'API utilizzando i costrutti ABAP.

ev_ret_code I (numero intero) Codice di ritorno

Il codice di ritorno che puoi utilizzare per verificare se l'esecuzione del metodo API è riuscita a svolgere correttamente la sua funzionalità.

Per ulteriori informazioni, consulta la sezione sulla restituzione delle API codici, errori ed eccezioni.

ev_err_text Stringa Testo dell'errore

Se la chiamata al metodo non è andata a buon fine, questo parametro contiene il messaggio di errore che utilizzi per conoscere il motivo dell'errore.

Per ulteriori informazioni, consulta Codici di ritorno, errori ed eccezioni dell'API.

ev_err_resp
  • Tipo di errore = CHAR 60
  • Descrizione errore = STRING
Risposta di errore

Il parametro fornisce informazioni aggiuntive sull'errore.

Per ulteriori informazioni, consulta la sezione sulla restituzione delle API codici, errori ed eccezioni.

Tipo di corso

Le API Google Cloud utilizzano JSON come formato principale per lo scambio di dati. L'ABAP SDK for Google Cloud fornisce tipi ABAP che mappano allo schema JSON previsto dalle API Google Cloud.

Questi tipi ABAP e i tipi di tabelle correlati sono disponibili come tipi di classe in ogni classe API fornita dall'SDK.

L'esempio seguente mostra il tipo di classe per la classe dell'API Pub/Sub /GOOG/CL_PUBSUB_V1.

Tipo di corso

La descrizione del tipo di classe TY_041 in /GOOG/CL_PUBSUB_V1 viene associata alla risorsa REST Topic, che viene passata come payload JSON al metodo CREATE_TOPICS.

I commenti ABAP Doc vengono aggiunti a tutti i classi dell'API client. Mentre utilizzi gli strumenti di sviluppo ABAP per SAP NetWeaver (ADT) per lo sviluppo, questi commenti forniscono descrizioni dei tipi di corsi.

Codici restituiti dell'API, errori ed eccezioni

Se si verifica un errore durante la chiamata del metodo API della classe ABAP, l'SDK ABAP per Google Cloud trasmette le informazioni sull'errore al programma chiamante utilizzando i parametri di esportazione dell'SDK o sollevando eccezioni.

Nome risposta restituita

Codice restituito ed errori dell'API

Le API Google Cloud utilizzano un modello di errore che offre una coerenza all'avanguardia in diverse API. Quando un metodo API Google Cloud viene chiamato dall'SDK, i seguenti parametri contengono il codice di ritorno dell'API e i messaggi:

Per controllare lo stato di una chiamata API, utilizza il metodo IS_SUCCESS. Puoi utilizzare il valore di ev_ret_code per determinare se una chiamata API è andata a buon fine o meno. In generale, quando ev_ret_code = 2XX, la chiamata al metodo è considerata riuscita. Per tutti gli altri valori, la chiamata al metodo viene considerata non riuscita.

IF lo_client->is_success( ev_ret_code ).
   "Success: Implement custom code
   ELSE
   "Handle the HTTP error status code
ENDIF.

Per alcune API Google Maps Platform, nel caso in cui chiami un'API con input non validi, l'API restituisce un codice di stato di operazione riuscita HTTP 2XX con un messaggio e lo stato di errore al posto di un codice di stato di errore HTTP (4XX o 5XX). Questo messaggio e stato di errore nell'API può aiutarti a risolvere il problema e a correggere gli input non validi.

Per queste API di Google Maps Platform, in aggiunta codice di reso ev_ret_code, controlla il messaggio e lo stato dell'errore restituito nella risposta dell'API chiamando il metodo IS_STATUS_OK dopo la chiamata API. Il seguente snippet mostra un esempio di come puoi usa il metodo IS_STATUS_OK:

IF lo_client->is_status_ok( ).
  "Success: Implement custom code
  ELSE
  "Handle the HTTP error status code
ENDIF.

Il parametro es_err_resp fornisce ulteriori informazioni sull'errore. La seguente tabella illustra i campi del parametro es_err_resp.

Campo Valore
es_err_resp-error_description Messaggio di errore ricevuto dall'API. Questo valore è uguale al parametro ev_error_text.
es_err_resp-error Descrizione dello stato HTTP restituito dal client HTTP SAP.

Gestire gli errori restituiti dalle API Google Cloud

Utilizza le seguenti indicazioni per gestire gli errori restituiti dal API Google Cloud:

  • Codici di errore comuni:per informazioni sugli errori comuni restituiti dal server. API Google Cloud e relativa causa, vedi i codici di errore.

  • Acquisisci un errore dettagliato: per acquisire informazioni dettagliate sugli errori con l'SDK ABAP per Google Cloud, utilizza il parametro di esportazione es_raw dai metodi della classe SDK e mappa questo parametro a una variabile di tipo String. Questa variabile contiene una risposta JSON contenente messaggi di errore dettagliati e violazioni specifiche riscontrate dalle API.

  • Visualizza errore dettagliato: per visualizzare informazioni dettagliate sull'errore, utilizza una delle seguenti opzioni utilizza i seguenti metodi:

    • Debug: visualizza i contenuti della variabile che contiene la risposta JSON nello strumento di debug ABAP per un'ulteriore analisi.
    • GUI SAP: utilizza la classe ABAP cl_demo_output=>display( lv_response ) per una rappresentazione visiva dell'errore in un programma di generazione di report. Se utilizzi i metodi dell'API in un programma di report e l'esecuzione del programma è in modalità primo piano, utilizza la classe ABAP cl_demo_output=>display_json( lv_response ).

      Il seguente snippet di codice illustra come visualizzare la risposta dell'API in caso di errore:

      DATA lv_response  TYPE string,
        TRY.
            lo_translate = NEW #( iv_key_name = 'DEMO_TRANSLATE' ).
            lo_translate->translate_translations
              EXPORTING
                is_input    = ls_input
              IMPORTING
                es_raw      = lv_response
                es_output   = ls_output
                ev_ret_code = lv_ret_code
                ev_err_text = lv_err_text
                es_err_resp = ls_err_resp.
            IF lo_translate->is_error( lv_ret_code ) = abap_true.
              " Display API response in case of an error
              cl_demo_output=>display_json( lv_response ).
            ENDIF.
          CATCH /goog/cx_sdk INTO lo_exception.
            lv_err_text = lo_exception->get_text( ).
        ENDTRY.
      

  • Documentazione specifica dell'API: alcune API Google Cloud forniscono informazioni dettagliate sugli errori e indicazioni per la risoluzione dei problemi nella relativa documentazione. Per risolvere un errore relativo a un'API, consulta la documentazione specifica dell'API, ad esempio Pub/Sub, Document AI e Cloud Storage.

Eccezioni

Quando si verifica un errore imprevisto durante una chiamata al metodo API, ad esempio un SDK errato o un errore di comunicazione HTTP, l'SDK genera un'eccezione di classe di tipo /GOOG/CX_SDK. Devi intercettare questa eccezione nel codice e scrivere una logica di gestione degli errori appropriata.

Gestisci eccezione

Puoi visualizzare il messaggio di errore chiamando il metodo get_text dell'eccezione . Il messaggio di errore restituito dalla classe di eccezione ha il seguente formato:

/GOOG/MSG : Return_Code - Error_Message

La causa dell'errore e dei passaggi di risoluzione dipende dal valore di Return_Code.

Valore di Return_Code Causa dell'errore Risoluzione
461 L'SDK ABAP per Google Cloud utilizza un codice di ritorno speciale, 461, per comunicare che non è stato completato un passaggio specifico di installazione e configurazione o non è stata completata correttamente. Error_Message corrispondente fornisce ulteriori dettagli sull'errore. Devi esaminare attentamente l'installazione e la configurazione istruzioni per l'SDK e assicurati che siano eseguite correttamente.
Qualsiasi altro valore Questo codice di ritorno è l'ultimo errore HTTP della classe client HTTP SAP standard. Questo errore indica che SAP ICM ha ricevuto una comunicazione un problema durante la chiamata a un metodo dell'API REST Google. Devi esaminare attentamente le impostazioni di rete, firewall e SAP ICM e assicurarti che le configurazioni consentano le chiamate HTTP alle API Google Cloud.

Per i messaggi di errore tipici attivati nell'SDK ABAP per Google Cloud e la loro risoluzione, consulta la guida alla risoluzione dei problemi.

Logging

L'SDK ABAP per Google Cloud ti consente di registrare i messaggi di errore utilizzando un framework di logging incorporato. Oggetto log ZGOOG e oggetto secondario ZABAP_SDK vengono spediti con i file di trasporto dell'SDK che puoi utilizzare come oggetti predefiniti per le configurazioni dei log.

In qualità di sviluppatore, puoi passare i tuoi oggetti e sottooggetti di log personalizzati durante l'inizializzazione dello stub del client API. Ciò richiede un'ulteriore configurazione indicare all'SDK di utilizzare gli oggetti di log personalizzati invece dell'impostazione predefinita log e sottooggetto.

L'esempio seguente mostra un codice di chiamata con oggetto log e sottooggetto personalizzati superato:

TRY.
    CREATE OBJECT lo_api_class
      EXPORTING
        iv_key_name   = 'CLIENT_KEY'
        iv_log_obj    = 'ZSD'            "Application Log Object
        iv_log_subobj = 'ZSD_SALES_ORDERS'. "Subobject
  CATCH /goog/cx_sdk INTO DATA(lo_exception).
      DATA(lv_msg) = lo_exception->get_text( ).
      MESSAGE lv_msg TYPE 'E'.
ENDTRY.

Per ulteriori informazioni sulla configurazione della registrazione e sulla creazione di oggetti log personalizzati, consulta Registrazione delle applicazioni.

Mappatura dei tipi di dati

Le tabelle seguenti forniscono un elenco completo dei valori type e format supportati dal servizio di rilevamento delle API di Google e il corrispondente tipo di dato ABAP.

Per ulteriori informazioni su type e format supportati dal servizio di rilevamento delle API di Google, consulta Riepilogo tipo e formato.

Digita il valore Valore formato Tipo di dati ABAP Significato
tutte DIGITA RIF. AI DATI La proprietà può essere di qualsiasi tipo. Definito dalla specifica dello schema JSON.
matrice TIPO DI TABELLA CON CHIAVE NON UNICHE Un array di valori JavaScript. La proprietà items indica lo schema per i valori dell'array. Definito dalla specifica JSON Schema.
boolean ABAP_BOOL Un valore booleano, può essere "true" o "false". Definito dalla specifica dello schema JSON.
integer int32 INT4 Un numero intero a 32 bit con segno. Ha un valore minimo di -2.147.483.648 e un valore massimo di 2.147.483.647 (inclusi).
integer uint32 INT4 Un numero intero senza segno a 32 bit. Ha un valore minimo di 0 e un valore massimo di 4.294.967.295 (incluso).
numero double /GOOG/NUM_DOUBLE (stringa) rappresentazione in virgola mobile IEEE 754 a 64 bit a precisione doppia.
numero float /GOOG/NUM_FLOAT (stringa) rappresentazione in virgola mobile IEEE 754 a 32 bit a precisione singola.
oggetto TIPI Un oggetto JavaScript. Definito dalla specifica JSON Schema.
string STRING Una stringa arbitraria. Definito dalla specifica JSON Schema.
string byte STRING Una stringa riempita di byte con codifica Base64, codificata con un URL e un nome file alfabeto sicuro (a volte indicato come "sicuro per il web" o "base64url"). Definito da RFC 4648.
string data STRING Una data RFC 3339 nel formato AAAA-MM-GG. Definito nella specifica dello schema JSON.
string data-ora STRING Un timestamp RFC 3339 nel fuso orario UTC. nel formato aaaa-MM-ggThh:mm:ss.SSSZ. La parte dei millisecondi (".SSS") è facoltativa. Definito nella specifica dello schema JSON.
string google-datetime STRING Un timestamp RFC 3339 nel fuso orario UTC. Nel formato yyyy-MM-ddTHH:mm:ss.SSSZ. La parte in millisecondi (".SSS") è facoltativa.
string google-duration STRING Una stringa termina con il suffisso "s" (che indica i secondi) ed è preceduta dal carattere numero di secondi, con i nanosecondi espressi come secondi frazionari. Il punto viene sempre utilizzato come virgola decimale, non come virgola.
string maschera-google-field STRING Una stringa in cui i nomi dei campi sono separati da una virgola. I nomi dei campi sono
rappresentati nelle convenzioni di denominazione Camel case.
string int64 STRING Un numero intero a 64 bit con segno. Ha un valore minimo di -9.223.372.036.854.775.808 e un valore massimo di 9.223.372.036.854.775.807 (inclusi).
string uint64 STRING Un numero intero senza segno a 64 bit. Ha un valore minimo di 0 e un valore massimo di (2^64)-1 (incluso).

Programmi demo

L'SDK ABAP per Google Cloud include diversi programmi demo che ti mostrano usare i servizi Google usando l'SDK. I programmi di dimostrazione si trovano nel pacchetto /GOOG/DEMO.

I programmi demo coprono una serie di servizi Google, come:

  • Document AI
  • Pub/Sub
  • Cloud Translation
  • Cloud Storage
  • Secret Manager

I programmi demo sono un ottimo modo per imparare a utilizzare l'SDK ABAP per Google Cloud. Sono anche un ottimo modo per testare la configurazione. La documentazione del programma con le demo fornisce ulteriori dettagli su ogni demo.

Per accedere ai programmi demo, segui questi passaggi:

  1. Nella GUI di SAP, esegui il codice della transazione /GOOG/SDK_IMG.

    In alternativa, esegui il codice transazione SPRO e poi fai clic su Immagine di riferimento SAP.

  2. Vai a SDK ABAP per Google Cloud &gt; Demo.

Serializzazione e deserializzazione della richiesta e della risposta dell'API

Per impostazione predefinita, l'SDK ABAP per Google Cloud si occupa del marshalling e dello unmarshalling delle richieste e delle risposte dell'API. Ogni classe ABAP per un'API Google Cloud ha tipi ABAP incorporati per formare l'input e l'output dei metodi. Per implementare la trasformazione personalizzata di richiesta e risposta, puoi utilizzare il punto di miglioramento con SAP Business Add-In (BAdI) definizioni fornite con l'SDK.

Implementare una trasformazione personalizzata

Il punto di miglioramento /GOOG/ES_TRANSFORM_JSON, fornito con l'SDK, include le seguenti definizioni di BAdI:

  • /GOOG/BADI_SERIALIZE_JSON: per implementare la logica di serializzazione personalizzata.
  • /GOOG/BADI_DESERIALIZE_JSON: per implementare una logica di deserializzazione personalizzata.

Puoi scrivere logica di trasformazione specifica nelle implementazioni di questi BAdI. Le interfacce di questi BAdI hanno IV_METHOD_NAME come parametro di importazione. Utilizza questo parametro per separare la logica di trasformazione per ogni API e metodo API utilizzando i blocchi IF…ENDIF. Nel blocco di implementazione, imposta il parametro di esportazione EV_HANDLED su X.

Per implementare la trasformazione personalizzata:

  1. Per /GOOG/BADI_SERIALIZE_JSON, crea un'implementazione di miglioramento:

    • Per trasformare le richieste API, crea un'implementazione per BAdI /GOOG/BADI_SERIALIZE_JSON con una classe di implementazione.
    • Per trasformare le risposte dell'API, crea un'implementazione per /GOOG/BADI_DESERIALIZE_JSON BAdI con una classe di implementazione.
  2. Determina l'ID del metodo API per il quale devi scrivere la trasformazione. L'ID del metodo è la concatenazione di quanto segue:

    • Il valore della costante dell'attributo della classe C_SERVICE_NAME.
    • Il carattere #.
    • La descrizione del metodo della classe API per il quale devi implementare la trasformazione.

    Ad esempio, per scrivere trasformazioni per la pubblicazione di messaggi in un argomento Pub/Sub, l'ID metodo è: pubsub:v1#pubsub.projects.topics.publish

  3. Nell'implementazione del metodo di BAdI, esegui queste operazioni:

    1. Per l'ID metodo, scrivi la trasformazione personalizzata sotto un IF….ENDIF block.
    2. Imposta il parametro di esportazione EV_HANDLED su X.

      Se il criterio EV_HANDLED non viene impostato su X, viene eseguito il marshalling predefinito e la logica di unmarshalling dell'SDK.

La logica di trasformazione personalizzata viene invocata durante l'esecuzione. Quando utilizzi trasformazioni personalizzate, il livello di serializzazione predefinito La logica di deserializzazione fornita con l'SDK viene ignorata.

Spazio dei nomi

Tutto il codice fornito da Google viene inserito nello spazio dei nomi riservato /GOOG/.

Procedura guidata del codice

La procedura guidata di codice consente di accelerare lo sviluppo di tutti i metodi pubblici degli stub del client API forniti dall'SDK ABAP per Google Cloud. Procedura guidata del codice è simile all'opzione pattern utilizzata nello sviluppo di ABAP. Tuttavia, oltre alla pattern ABAP, la procedura guidata del codice è utile anche per:

  • Genera tutte le dichiarazioni dei dati richieste.
  • Fornisce segnaposto nel codice per i parametri di importazione dei metodi di archiviazione.
  • Genera risposte di base e gestione delle eccezioni.
  • Fornisce ulteriori personalizzazioni e funzionalità sotto forma di scegliendo la sintassi ABAP 7.5, aggiungendo e rimuovendo i blocchi per l'apertura e la chiusura delle connessioni HTTP.
  • Fornisce un'opzione di copia per il codice generato.

La procedura guidata di codice fornisce solo un frame di codice che puoi modificare in base alle tue esigenze. La procedura guidata di codice supporta la sintassi di SAP S/4HANA e SAP ECC.

Per accedere alla procedura guidata per il codice, segui questi passaggi:

  1. Nella GUI di SAP, esegui il codice della transazione /GOOG/SDK_IMG.

    In alternativa, esegui il codice transazione SPRO e poi fai clic su Immagine di riferimento SAP.

  2. Vai a ABAP SDK for Google Cloud > Utilità > Procedura guidata del codice.

L'esempio seguente mostra il codice boilerplate creato per un metodo API CREATE_TOPICS dello stub client Pub/Sub, /GOOG/CL_PUBSUB_V1:


 DATA:
   lv_p_projects_id TYPE string,
   lv_p_topics_id   TYPE string,
   ls_input         TYPE /goog/cl_pubsub_v1=>ty_041.

 TRY.

* Open HTTP Connection
     DATA(lo_client) = NEW /goog/cl_pubsub_v1( iv_key_name = 'client_key' ).

* Populate relevant parameters
* lv_p_projects_id = 'string_value'.
* lv_p_topics_id = 'string_value'.
* ls_input = .

* Call API method
     CALL METHOD lo_client->create_topics
       EXPORTING
         iv_p_projects_id = lv_p_projects_id
         iv_p_topics_id   = lv_p_topics_id
         is_input         = ls_input
       IMPORTING
*        es_raw           =
         es_output        = DATA(ls_output)
         ev_ret_code      = DATA(lv_ret_code)
         ev_err_text      = DATA(lv_err_text)
         es_err_resp      = DATA(ls_err_resp).

     IF /goog/cl_http_client=>is_success( lv_ret_code ).
       MESSAGE 'Success' TYPE 'S'.
     ELSE.
       MESSAGE lv_err_text TYPE 'E'.
     ENDIF.

* Close HTTP Connection
     lo_client->close( ).

   CATCH /goog/cx_sdk INTO DATA(lo_exception).
     MESSAGE lo_exception->get_text( ) TYPE 'E'.
 ENDTRY.

Architetture di riferimento

Esplora l'SDK ABAP per Google Cloud con l'aiuto delle architetture di riferimento e scopri come l'SDK può portare innovazione nel tuo panorama di applicazioni SAP. Puoi utilizzare l'SDK per eseguire l'integrazione con Vertex AI per funzionalità di AI e machine learning avanzate e con altri servizi Google Cloud come BigQuery, Pub/Sub, Cloud Storage e molti altri ancora. Per saperne di più, vedi Architetture di riferimento per l'SDK ABAP per Google Cloud.

Assistenza

Se hai bisogno di aiuto per risolvere i problemi con l'SDK ABAP per Google Cloud, procedi le seguenti: