Questo documento fornisce informazioni e risorse utili per sviluppare applicazioni SAP utilizzando l'SDK ABAP per Google Cloud on-premise o qualsiasi edizione cloud.
Questo documento è destinato agli sviluppatori SAP ABAP.
Per un elenco completo delle librerie client fornite dall'SDK ABAP on-premise o da qualsiasi edizione cloud dell'SDK ABAP per Google Cloud, consulta le librerie client di ABAP SDK on-premise o di qualsiasi altra versione cloud.
Singola finestra di interazione
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, ognuno dei quali corrisponde a un metodo dell'API Google Cloud. Ogni metodo pubblico è costituito anche da parametri IMPORTING
e EXPORTING
. Una classe ABAP contiene anche tipi di dati personalizzati, che possono essere utilizzati per costruire e mappare i parametri IMPORTING
e EXPORTING
. Questi tipi di dati personalizzati corrispondono alle definizioni
degli schemi dell'API.
Per ogni interazione con un'API Google Cloud di destinazione, la classe ABAP corrispondente funge da unico punto di interazione. Questo concetto è chiamato finestra singola di interazione, 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 sviluppate utilizzando l'SDK, senza doversi preoccupare delle funzionalità sottostanti dell'SDK.
Flusso di interazione
Per chiamare un metodo API, hai il seguente flusso di interazione:
- Connettiti a un'API.
- Creare una richiesta di input utilizzando i tipi ABAP.
- Chiamare un metodo API.
- Analizza errori ed eccezioni.
- Leggi la risposta utilizzando i tipi ABAP.
Stub del client API
Una tipica classe stub di client API è costituita dalle seguenti sezioni:
- I tipi ABAP mappati agli schemi dell'API. Per creare una richiesta di input e analizzare la risposta, puoi usare i tipi ABAP.
- Le costanti e gli attributi per uso interno o esterno.
- I metodi dell'API per interagire con le risorse API.
Funzionalità
Le funzionalità dell'SDK ABAP per Google Cloud sono:
- Comunicazione HTTP: l'SDK stabilisce una 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 degli errori e delle eccezioni: l'SDK gestisce i codici di ritorno e i messaggi di errore restituiti dall'API e genera eccezioni, se presenti.
- Risposta di unmarshalling: l'SDK converte il payload JSON nel corpo della risposta nei tipi ABAP corrispondenti.
- Logging degli errori locali: l'SDK registra i messaggi di errore utilizzando il framework di logging.
Progettazione e esplorazione delle API
Le API pubblicate da Google seguono una progettazione orientata alle risorse. Per ulteriori informazioni sulla progettazione delle API di Google, consulta la guida alla progettazione delle API.
L'SDK ABAP per Google Cloud consente l'integrazione con le API basate su REST pubblicate da Google.
L'Explorer 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 richiesti che vuoi passare ai metodi ABAP corrispondenti.
Costrutti di codice
Spiega i costrutti di codice che utilizzi per creare i programmi ABAP utilizzando l'SDK ABAP per Google Cloud.
Costruttore
Per prima cosa, crei un'istanza della classe API che vuoi utilizzare. Il costruttore di ogni classe API avrà un pattern simile, come 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
Importazione dei parametri
La tabella seguente illustra i parametri di importazione di un costruttore di un metodo:
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 sulla configurazione della chiave client, consulta Autenticazione. |
iv_log_object |
balobj_d |
Facoltativo | Specifica l'oggetto log dell'applicazione, che utilizzi per archiviare gli errori generati dall'SDK. Per informazioni sulla configurazione del logging, consulta Logging delle applicazioni. |
iv_log_subobject |
balsubobj |
Facoltativo | Specifica l'oggetto secondario del log dell'applicazione, che utilizzi per archiviare gli errori generati dall'SDK. Per informazioni sulla configurazione del logging, consulta Logging delle applicazioni. |
Metodo API
Con la progettazione orientata alle risorse delle API Google Cloud, un metodo API è un'azione che può essere eseguita 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 sulla risorsa Topics
per ottenere la configurazione di un argomento.
Per mappare un metodo di classe ABAP a un metodo API,
puoi fare riferimento alla descrizione del metodo che segue il
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.
Il nome di un metodo ABAP mappato a un'azione dell'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 corrispondenti ai metodi dell'API REST:
Importazione dei parametri
Un metodo API può avere i seguenti parametri di importazione. Questi parametri sono facoltativi e puoi passare i parametri in base ai requisiti di un metodo API che devi utilizzare.
Nome parametro | Tipo | Categoria | Descrizione |
---|---|---|---|
iv_q_<name> (dal giorno |
Stringa | I parametri di ricerca | I parametri di ricerca vengono aggiunti all'endpoint API dopo il giorno ( Sono utilizzati per definire l'ordinamento, l'impaginazione o i filtri. Potrebbero esserci da |
iv_p_<name> (dal giorno |
Stringa | Parametri del percorso | I parametri del percorso fanno parte dell'endpoint. Vengono utilizzati per puntare a risorse specifiche dell'API REST. Potrebbero esserci da |
is_input (dal giorno |
TY_CODE (tipo di classe) | Parametri della struttura di input | I dati trasmessi 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 parametro completamente digitato che viene convertito in payload JSON per la classe API e lo sviluppatore non è tenuto a lavorare con JSON. Puoi fare riferimento ai tipi di classi disponibili per comprendere i tipi ABAP per la mappatura dei dati. Ad esempio, il tipo 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 | data | Output non elaborato |
Questo parametro contiene la risposta JSON (Error o Success) restituita dal metodo API. Mappa questo parametro a una variabile di tipo Stringa per ricevere la stringa di risposta JSON. Nei casi in cui la risposta sia di qualsiasi altro tipo, ad esempio
xstring per l'output del file in Utilizza questo parametro per scenari avanzati di risoluzione dei problemi o per scenari API avanzati. |
es_output | TY_CODE (Tipo di classe) | Struttura di output |
La risposta JSON viene deserializzata nella struttura ABAP e restituita utilizzando questo parametro di esportazione digitato. Puoi utilizzarlo come modo principale per leggere le risposte dell'API utilizzando i costrutti ABAP. |
ev_ret_code | I (numero intero) | Codice restituito |
Il codice restituito che puoi utilizzare per verificare se l'esecuzione del metodo API è riuscita a svolgere correttamente la sua funzionalità. Per maggiori informazioni, consulta la sezione Codici di ritorno dell'API, errori ed eccezioni. |
ev_err_text | Stringa | Testo errore |
Se la chiamata del metodo non è riuscita, questo parametro contiene il messaggio di errore da utilizzare per conoscere il motivo dell'errore. Per maggiori informazioni, consulta la sezione Codici di ritorno dell'API, errori ed eccezioni. |
ev_err_resp |
|
Risposta di errore |
Il parametro fornisce informazioni aggiuntive sull'errore. Per maggiori informazioni, consulta la sezione Codici di ritorno dell'API, errori ed eccezioni. |
Tipo di corso
Le API Google Cloud utilizzano JSON come formato principale per lo scambio di dati. L'SDK ABAP per Google Cloud fornisce tipi ABAP mappati allo schema JSON previsto dalle API Google Cloud.
Questi tipi di ABAP e di tabelle correlate 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
.
La descrizione del tipo di classe TY_041
in /GOOG/CL_PUBSUB_V1
è mappata alla risorsa REST, Topic
, che viene passata come payload JSON al metodo CREATE_TOPICS
.
ABAP Doc
commenti vengono aggiunti a tutte le classi dell'API client.
Quando utilizzi gli strumenti di sviluppo ABAP per SAP NetWeaver (ADT) per lo sviluppo, questi commenti forniscono le descrizioni dei tipi di classe.
Codici di ritorno dell'API, errori ed eccezioni
Se si verifica un errore quando viene chiamato il metodo API della classe ABAP, l'SDK ABAP per Google Cloud passa le informazioni sull'errore al programma chiamante utilizzando i parametri di esportazione dell'SDK o generando eccezioni.
Codice restituito ed errori dell'API
Le API Google Cloud utilizzano un modello di errore che offre un'esperienza coerente tra diverse API. Quando un metodo API di Google Cloud viene chiamato dall'SDK, i seguenti parametri contengono il codice restituito e i messaggi dell'API:
ev_ret_code
: restituisci il codice o il codice di errore nella risposta.ev_error_text
: messaggio di errore nella risposta, se presente.es_raw
: risposta di errore non elaborata, se una chiamata di un metodo API non è riuscita.
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 è riuscita o meno. In generale, quando ev_ret_code = 2XX
, la chiamata al metodo viene 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, se chiami un'API con input non validi, l'API restituisce un codice di stato HTTP 2XX
con un messaggio di errore e uno stato di errore, anziché un codice di stato di errore HTTP (4XX
o 5XX
). Questo messaggio e questo stato di errore nella risposta dell'API possono aiutarti a risolvere il problema e correggere gli input non validi.
Per queste API di Google Maps Platform, oltre al codice restituito ev_ret_code
, controlla il messaggio e lo stato di errore restituiti nella risposta dell'API chiamando il metodo IS_STATUS_OK
dopo la chiamata API. Lo snippet seguente mostra un esempio di come utilizzare 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 informazioni aggiuntive sull'errore.
La tabella seguente illustra i campi nel 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 restituita dal client HTTP SAP. |
Gestire gli errori restituiti dalle API Google Cloud
Segui queste indicazioni per gestire gli errori restituiti dalle API Google Cloud:
Codici di errore comuni: per informazioni sugli errori comuni restituiti dalle API Google Cloud e sulla relativa causa, consulta i codici di errore.
Acquisisci informazioni dettagliate sull'errore: per acquisire informazioni dettagliate sull'errore con l'SDK ABAP per Google Cloud, utilizza il parametro di esportazione
es_raw
dei metodi delle classi dell'SDK e mappa questo parametro a una variabile di tipoString
. 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, usa uno dei seguenti metodi:
- Debugger: visualizza i contenuti della variabile che conserva la risposta JSON nello strumento di debug ABAP per ulteriori analisi.
GUI di SAP: utilizza la classe ABAP
cl_demo_output=>display( lv_response )
per la rappresentazione visiva dell'errore in un programma di report. Se utilizzi i metodi dell'API in un programma di report e l'esecuzione del programma è in modalità in primo piano, utilizza la classe ABAPcl_demo_output=>display_json( lv_response )
.Lo snippet di codice riportato di seguito 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 delle API: alcune API Google Cloud forniscono informazioni dettagliate sugli errori e indicazioni per la risoluzione dei problemi all'interno della relativa documentazione specifica. Per risolvere un errore relativo a un'API, consulta la documentazione specifica per l'API, ad esempio Pub/Sub, Document AI e Cloud Storage.
Eccezioni
Quando si verifica un errore imprevisto durante una chiamata al metodo API, come una configurazione dell'SDK errata o un errore di comunicazione HTTP, l'SDK genera un'eccezione di classe di tipo /GOOG/CX_SDK
. Devi rilevare questa eccezione nel tuo codice e scrivere una logica di gestione degli errori appropriata.
Per visualizzare il messaggio di errore, chiama il metodo get_text
della classe delle eccezioni. 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 per la 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 restituito speciale, 461 , per
segnalare che un passaggio specifico di installazione e configurazione non è stato eseguito
o non è stato completato in modo errato. L'elemento Error_Message corrispondente fornisce
ulteriori dettagli sull'errore. |
Devi esaminare attentamente le istruzioni di installazione e configurazione per l'SDK e assicurarti che siano eseguite correttamente. |
Qualsiasi altro valore | Questo codice restituito è l'ultimo errore HTTP della classe client HTTP SAP standard. Questo errore indica che SAP ICM ha riscontrato un problema di comunicazione durante la chiamata a un metodo dell'API REST Google. | Devi esaminare attentamente la rete, il firewall, le impostazioni di 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 relativa risoluzione, consulta la guida alla risoluzione dei problemi.
Logging
L'SDK ABAP per Google Cloud consente di registrare i messaggi di errore utilizzando un framework di logging incorporato. L'oggetto log ZGOOG
e l'oggetto secondario ZABAP_SDK
vengono forniti con i file di trasporto dell'SDK che puoi utilizzare come oggetti predefiniti per le configurazioni dei log.
In qualità di sviluppatore, puoi trasferire oggetti e sottooggetti di log personalizzati e, allo stesso tempo, dimostrare lo stub del client API. Ciò richiede una configurazione aggiuntiva per indicare all'SDK di utilizzare gli oggetti di log personalizzati anziché l'oggetto log e l'oggetto secondario predefiniti.
L'esempio seguente mostra un codice chiamante con oggetto log personalizzato e oggetto secondario 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 del logging e sulla creazione di oggetti di log personalizzati, consulta Logging delle applicazioni.
Mappatura dei tipi di dati
Le seguenti tabelle forniscono un elenco completo dei valori type
e format
supportati dal servizio di rilevamento delle API di Google e dal tipo di dati ABAP corrispondente.
Per ulteriori informazioni sui valori type
e format
supportati dal Discovery Service delle API di Google, consulta il riepilogo su tipi e formati.
Immetti valore | Valore formato | Tipo di dati ABAP | Significato |
---|---|---|---|
tutte | DIGITA RIF AI DATI | La proprietà può avere qualsiasi tipo. Definito in base alla specifica dello schema JSON. | |
array | TIPO DI TABELLA CON TASTI NON UNIQUE | Un array di valori JavaScript. La proprietà items indica lo schema per i valori dell'array. Definito in base alla specifica dello schema JSON. | |
boolean | ABAP_BOOL | Un valore booleano, "true" o "false". Definito in base alla specifica dello schema JSON. | |
integer | int32 | INT4 | Un numero intero con segno a 32 bit. 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 pari a 0 e un valore massimo pari a 4.294.967.295 (inclusi). |
number | double | /GOOG/NUM_DOUBLE (stringa) |
Virgola in virgola mobile IEEE 754 a 64 bit a doppia precisione. |
number | float | /GOOG/NUM_FLOAT (stringa) |
Virgola mobile IEEE 754 a precisione singola a 32 bit. |
oggetto | TIPI | Un oggetto JavaScript. Definito in base alla specifica dello schema JSON. | |
string | STRING | Una stringa arbitraria. Definito in base alla specifica dello schema JSON. | |
string | byte | STRING | Una stringa di byte riempita con codifica Base64, codificata con un alfabeto sicuro per URL e nome file (talvolta indicata come "web-safe" o "base64url"). Definito da RFC 4648. |
string | date | 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 in millisecondi (".SSS") è facoltativa. Definito nella specifica dello schema JSON. |
string | google-datetime | STRING | Un timestamp RFC 3339 nel fuso orario UTC. nel formato aaaa-MM-ggTHH:mm:ss.SSSZ. La parte in millisecondi (".SSS") è facoltativa. |
string | google-duration | STRING | Una stringa termina con il suffisso "s" (indica i secondi) ed è preceduta dal numero di secondi, con i nanosecondi espressi come secondi frazionari. Il punto viene sempre utilizzato come punto decimale, non come virgola. |
string | google-fieldmask | STRING | Una stringa in cui i nomi dei campi sono separati da una virgola. I nomi dei campi sono rappresentati in convenzioni di denominazione con cambo inferiore. |
string | int64 | STRING | Un numero intero con segno a 64 bit. 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 (inclusi). |
Programmi demo
L'SDK ABAP per Google Cloud include diversi programmi demo che mostrano come utilizzare i servizi Google usando l'SDK. I programmi demo si trovano
nel pacchetto /GOOG/DEMO
.
I programmi demo coprono una serie di servizi Google, tra cui:
- 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, svolgi i seguenti passaggi:
Nella GUI di SAP, esegui il codice transazione
/GOOG/SDK_IMG
.In alternativa, esegui il codice transazione
SPRO
e fai clic su Riferimento SAP IMG.Vai a SDK ABAP per Google Cloud > Demo.
Serializzazione e deserializzazione di richieste e risposte API
Per impostazione predefinita, l'SDK ABAP per Google Cloud si occupa del marshalling e dell'annullamento del marshalling delle richieste e delle risposte API. Ogni classe ABAP di un'API Google Cloud include tipi ABAP che formano l'input e l'output dei metodi. Per implementare la trasformazione personalizzata di richiesta e risposta, puoi utilizzare lo spot di miglioramento con le definizioni del Business Add-In (BAdI) per SAP fornite con l'SDK.
Implementa una trasformazione personalizzata
Lo spot di miglioramento /GOOG/ES_TRANSFORM_JSON
, fornito con l'SDK, include le seguenti definizioni BAdI:
/GOOG/BADI_SERIALIZE_JSON
: per implementare una logica di serializzazione personalizzata./GOOG/BADI_DESERIALIZE_JSON
: per implementare una logica di deserializzazione personalizzata.
Puoi scrivere una logica di trasformazione specifica nelle implementazioni di questi annunci dinamici della rete di ricerca.
Le interfacce di questi annunci indipendenti hanno IV_METHOD_NAME
come parametro di importazione.
Puoi utilizzare questo parametro per separare la logica di trasformazione per ogni metodo 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:
Per
/GOOG/BADI_SERIALIZE_JSON
, crea un'implementazione del 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 BAdI
/GOOG/BADI_DESERIALIZE_JSON
con una classe di implementazione.
- Per trasformare le richieste API, crea un'implementazione per BAdI
Determina l'ID del metodo API per il quale devi scrivere la trasformazione. L'ID metodo è la concatenazione dei seguenti elementi:
- Il valore della costante dell'attributo di classe
C_SERVICE_NAME
. - Il carattere
#
. - La descrizione del metodo della classe API per cui 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
- Il valore della costante dell'attributo di classe
Nell'implementazione del metodo di BAdI, esegui queste operazioni:
- Per l'ID metodo, scrivi la trasformazione personalizzata in un
IF….ENDIF block
. Imposta il parametro di esportazione
EV_HANDLED
suX
.Se il criterio
EV_HANDLED
non è impostato suX
, viene applicata la logica predefinita di marshalling e annullamento del marshalling dell'SDK.
- Per l'ID metodo, scrivi la trasformazione personalizzata in un
La logica di trasformazione personalizzata viene richiamata durante il runtime. Quando utilizzi le trasformazioni personalizzate, la logica predefinita di serializzazione e deserializzazione fornita con l'SDK viene ignorata.
Spazio dei nomi
Tutto il codice fornito da Google si trova nello spazio dei nomi riservato /GOOG/
.
Procedura guidata di codice
La procedura guidata per il codice consente di accelerare lo sviluppo di tutti i metodi pubblici
degli stub client API forniti dall'SDK ABAP per Google Cloud. La procedura guidata per il codice è simile all'opzione pattern
utilizzata nello sviluppo ABAP. Tuttavia, oltre all'pattern
ABAP, la procedura guidata Codice aiuta anche a:
- Genera tutte le dichiarazioni dei dati richieste.
- Fornisce segnaposto nel codice per i parametri di importazione del metodo di archiviazione.
- Genera risposte di base e una gestione delle eccezioni.
- Fornisce personalizzazioni e funzionalità aggiuntive sotto forma di scelta della sintassi ABAP 7.5, aggiunta e rimozione di 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 ai tuoi requisiti. La procedura guidata per il codice supporta la sintassi SAP S/4HANA e SAP ECC.
Per accedere alla procedura guidata per il codice, segui questi passaggi:
Nella GUI di SAP, esegui il codice transazione
/GOOG/SDK_IMG
.In alternativa, esegui il codice transazione
SPRO
e fai clic su Riferimento SAP IMG.Vai ad SDK ABAP per Google Cloud > Utilità > Procedura guidata per il 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.
Richiedere assistenza
Se hai bisogno di aiuto per risolvere problemi con l'SDK ABAP per Google Cloud:
Consulta la guida alla risoluzione dei problemi relativi all'SDK ABAP per Google Cloud.
Poni le tue domande e discuti l'SDK ABAP per Google Cloud con la community sui forum Cloud.
Raccogli tutte le informazioni di diagnostica disponibili e contatta l'assistenza clienti Google Cloud. Per informazioni su come contattare l'assistenza clienti, vedi Ricevere assistenza per SAP su Google Cloud.