Consulta i connettori supportati per Application Integration.

Trigger ERP SAP

Il trigger di SAP ERP è un trigger di evento connettore SAP ERP che consente di eseguire operazioni di inserimento, eliminazione, aggiornamento e lettura dei dati SAP ERP.

Prima di iniziare

  • Se prevedi di creare o configurare una nuova connessione per il trigger di SAP ERP, assicurati di disporre del seguente ruolo IAM nel progetto:
      .
    • Amministratore connettori (roles/connectors.admin)
    • Per informazioni sulla concessione dei ruoli, vedi Gestire l'accesso.

  • Concedi i seguenti ruoli IAM all'account di servizio che vuoi utilizzare per il trigger di SAP ERP:
  • Aggiungi il trigger di SAP ERP

    Per aggiungere un attivatore SAP ERP all'integrazione, segui questi passaggi:

    1. Nella console Google Cloud, vai alla pagina Application Integration.

      Vai ad Application Integration

    2. Nel menu di navigazione, fai clic su Integrations (Integrazioni).

      Viene visualizzata la pagina Integrations List (Elenco delle integrazioni) che elenca tutte le integrazioni disponibili nel progetto Google Cloud.

    3. Seleziona un'integrazione esistente o fai clic su Crea integrazione per crearne una nuova.

      Se stai creando una nuova integrazione:

      1. Inserisci un nome e una descrizione nel riquadro Crea integrazione.
      2. Seleziona una regione per l'integrazione.
      3. Seleziona un account di servizio per l'integrazione. Puoi modificare o aggiornare i dettagli dell'account di servizio di un'integrazione in qualsiasi momento dal riquadro Riepilogo dell'integrazione nella barra degli strumenti dell'integrazione.
      4. Fai clic su Crea.

      L'integrazione viene aperta nell'editor dell'integrazione.

    4. Nella barra di navigazione dell'editor di integrazione, fai clic su Trigger per visualizzare l'elenco degli attivatori disponibili.
    5. Fai clic sull'elemento trigger di SAP ERP e posizionalo nell'editor di integrazione.
    6. Per configurare il trigger SAP ERP, puoi utilizzare una connessione SAP ERP esistente disponibile in Integration Connectors oppure creare una nuova connessione SAP ERP utilizzando l'opzione di creazione di una connessione in linea.

    Configura il trigger di SAP ERP utilizzando una connessione esistente

    Il trigger di SAP ERP è un trigger di evento connettore, pertanto puoi utilizzare solo una connessione SAP ERP con abbonamento all'evento abilitato per configurare il trigger.

    Per informazioni su come configurare un trigger SAP ERP utilizzando una nuova connessione SAP ERP, consulta Configurare un trigger SAP ERP utilizzando una nuova connessione

    Per configurare un trigger SAP ERP utilizzando una connessione SAP ERP esistente, segui questi passaggi:

    1. Fai clic sull'elemento Trigger SAP ERP nell'editor dell'integrazione per aprire il riquadro di configurazione dell'attivatore.
    2. Fai clic su Configura trigger.
    3. Fornisci i seguenti dettagli di configurazione nella pagina Editor trigger evento connettore:
        .
      1. Regione:seleziona la regione della tua connessione SAP ERP.
      2. Connessione:seleziona la connessione SAP ERP che vuoi utilizzare.

        Application Integration mostra solo le connessioni SAP ERP attive e per le quali è abilitato un abbonamento agli eventi.

      3. Inserisci il nome del campo del tipo di evento. Questo campo identifica il tipo di evento associati alla richiesta di evento in arrivo.
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. Account di servizio: seleziona un account di servizio con i ruoli IAM richiesti per il trigger di SAP ERP.
    4. Fai clic su Fine per completare la configurazione dell'attivatore e chiudere la pagina.

    Configura il trigger di SAP ERP utilizzando una nuova connessione

    1. Fai clic sull'elemento Trigger SAP ERP nell'editor dell'integrazione per aprire il riquadro di configurazione dell'attivatore.
    2. Fai clic su Configura trigger.
    3. Salta il campo Regione.
    4. Fai clic su Connessione e seleziona l'opzione Crea connessione dal menu a discesa.
    5. Nella sezione Dettagli connessione, completa i seguenti passaggi:
        .
      1. Connettore: seleziona SAP ERP dall'elenco a discesa dei connettori disponibili.
      2. Versione connettore: seleziona la versione del connettore dall'elenco a discesa delle versioni disponibili.
      3. Nel campo Nome connessione, inserisci un nome per l'istanza di connessione.

        I nomi delle connessioni devono soddisfare i seguenti criteri:

        • I nomi delle connessioni possono contenere lettere, numeri o trattini.
        • Le lettere devono essere minuscole.
        • I nomi delle connessioni devono iniziare con una lettera e terminare con una lettera o un numero.
        • I nomi delle connessioni non possono contenere più di 63 caratteri.
      4. Facoltativamente, inserisci una descrizione per la connessione.
      5. Facoltativamente, abilita Cloud Logging.
      6. Account di servizio: seleziona un account di servizio con i ruoli richiesti.
      7. Per utilizzare la connessione per le iscrizioni agli eventi, seleziona Attiva la sottoscrizione agli eventi. Selezione vengono visualizzate le seguenti opzioni:
        • Abilita la sottoscrizione agli eventi con entità e azioni: seleziona questa opzione per utilizzare la connessione sia per la sottoscrizione agli eventi sia per le operazioni del connettore (entità e azioni).
        • Attiva solo la sottoscrizione all'evento: seleziona questa opzione per utilizzare la connessione. solo per la sottoscrizione all'evento. Se selezioni questa opzione, fai clic su Avanti e poi configurare la sottoscrizione agli eventi.
      8. Client: il client che esegue l'autenticazione nel sistema SAP.
      9. System Id (ID sistema): l'ID di sistema o R3Name del sistema SAP è una stringa con un massimo di tre caratteri. Viene spesso utilizzato nelle connessioni di bilanciamento del carico.
      10. Numero di sistema: il numero tramite il quale viene definito il sistema di destinazione. Utilizzato quando si imposta la proprietà Connessione all'host.
      11. ID progetto: l'ID del progetto Google Cloud in cui si trova il bucket GCS contenente il jar SAP JCo.
      12. Bucket: il nome del bucket che contiene i file sapjco3.jar e libsapjco3.so.
      13. ID oggetto jar Jaco: ID oggetto del jar JCo.
      14. ID oggetto libsapjco3: ID oggetto del jar libsapjco3.
      15. Modalità tabella: seleziona la tabella SAP da mostrare come visualizzazione.
      16. ID oggetto SNC_LIB: ID oggetto della libreria SNC.
      17. Nome PSE: nome del file PSE (Personal Security Environment) applicabile per il bucket. Un file PSE archivia la coppia di chiavi pubblica e privata, nonché i certificati X.509 in una struttura ASN.1.
      18. Gruppo: il nome del gruppo per l'accesso. Questo viene solitamente specificato quando il sistema SAP utilizza bilanciatori del carico.
      19. Server di messaggi: nome del server di messaggi da utilizzare per la connessione al sistema SAP che utilizza i bilanciatori del carico.
      20. Funzione di lettura della tabella: nome della funzione da utilizzare per la lettura delle tabelle. Per maggiori informazioni informazioni, consulta Utilizzare una funzione di tabella di lettura personalizzata.
      21. Schema di connessione: seleziona uno schema di connessione da utilizzare per la connessione al sistema SAP.
      22. System ID (ID sistema): l'ID di sistema o il nome R3Name del sistema SAP. Puoi inserire un massimo di 3 caratteri.
      23. Passcode SNC: seleziona il secret di Secret Manager del passcode della libreria SNC.
      24. Versione secret: seleziona la versione del secret.
      25. Modalità SNC: seleziona questa opzione per abilitare SNC per l'autenticazione tra Application Integration e il sistema SAP.
      26. Nome SNC: inserisci un nome per la connessione SNC.
      27. SNC qop: seleziona un livello di protezione. Di seguito sono riportati i livelli supportati:
        • 1 - Applica solo l'autenticazione.
        • 2 - Applica la protezione dell'integrità. È inclusa anche la protezione dell'autenticazione.
        • 3 - Applica la protezione della privacy. Sono incluse anche la protezione dell'integrità e dell'autenticazione.
        • 8 - Applica la protezione predefinita.
        • 9 - Applica la massima protezione.
      28. Nome partner SNC: inserisci il nome SNC del server di applicazioni.
      29. Modalità query: seleziona le tabelle SAP da mostrare come viste.
      30. Visualizzazioni sfogliabili: inserisci un elenco separato da virgole di viste da mostrare. Ad esempio, ViewA,ViewB,ViewC.
      31. Livello di dettaglio: inserisci il livello di dettaglio per il logging. Lo strumento sono compresi tra 1 e 5. Un valore più alto indica che saranno disponibili più dettagli nei log.
      32. Facoltativamente, configura le impostazioni del nodo di connessione:

        • Numero minimo di nodi: inserisci il numero minimo di nodi di connessione.
        • Numero massimo di nodi: inserisci il numero massimo di nodi di connessione.

        Un nodo è un'unità (o una replica) di una connessione che elabora le transazioni. Sono necessari più nodi per elaborare più transazioni per una connessione e, per elaborare meno transazioni. Per comprendere in che modo i nodi influiscono sui prezzi dei connettori, consulta Prezzi per i nodi di connessione. Se non inserisci alcun valore, per impostazione predefinita il numero minimo di nodi è impostato su 2 (per una migliore disponibilità) e il numero massimo di nodi è impostato su 50.

      33. Facoltativamente, fai clic su + AGGIUNGI ETICHETTA per aggiungere un'etichetta alla connessione sotto forma di coppia chiave/valore.
      34. Fai clic su Avanti.
    6. Nella sezione Destinazioni, inserisci i dettagli dell'host remoto (sistema di backend) a cui vuoi connetterti.
      1. Tipo di destinazione: seleziona un Tipo di destinazione.
        • Seleziona Indirizzo host dall'elenco per specificare il nome host o l'indirizzo IP della destinazione.
        • Se vuoi stabilire una connessione privata ai tuoi sistemi di backend, seleziona Collegamento endpoint dall'elenco, quindi seleziona il collegamento dell'endpoint richiesto. dall'elenco Allegato endpoint.

        Se vuoi stabilire una connessione pubblica ai tuoi sistemi di backend con maggiore sicurezza, puoi valuta la possibilità di configurare una rete statico in uscita indirizzi IP per le tue connessioni, quindi configura le regole del firewall per inserire nella lista consentita solo gli indirizzi IP statici specifici.

        Per inserire altre destinazioni, fai clic su + Aggiungi destinazione.

      2. Fai clic su Avanti.
    7. Nella sezione Autenticazione, inserisci i dettagli di autenticazione.
      1. Seleziona un Tipo di autenticazione e inserisci i dettagli pertinenti.

        La connessione SAP ERP supporta i seguenti tipi di autenticazione:

        • Nome utente e password
      2. Per informazioni su come configurare questi tipi di autenticazione, consulta l'articolo Configurare l'autenticazione.

      3. Fai clic su Avanti.
    8. Se hai attivato l'iscrizione all'evento, nella pagina di creazione della connessione viene visualizzata la sezione Dettagli abbonamento all'evento. Per comprendere come configurare i dettagli della sottoscrizione agli eventi, consulta Configurare la sottoscrizione all'evento.
    9. Verifica: controlla i dettagli della connessione e dell'autenticazione.
    10. Fai clic su Crea.

    Configura l'autenticazione

    Inserisci i dettagli in base all'autenticazione che vuoi utilizzare.

    • Nome utente e password
        .
      • Nome utente: nome utente del connettore
      • Password: il secret di Secret Manager contenente la password associata alla proprietà di rete.

    Configura per la sottoscrizione agli eventi

    Se hai attivato la sottoscrizione all'evento, inserisci i seguenti valori nella Sezione Dettagli abbonamento all'evento:

    1. Seleziona uno dei seguenti tipi di autenticazione per il listener di eventi.
    2. Inserisci il nome del campo del tipo di evento. Questo campo identifica il tipo di evento associato al richiesta di evento in arrivo.
      {
      "event_type": "user.created",
      ...
      // other request fields
      ...
      }
    3. Select Enable private connectivity for secured connectivity between your backend application and your connection. If you select this option, you must perform additional configuration steps after creating the connection. For more information, see Private connectivity for event subscription.
    4. Enter the dead-letter configuration. If you configure dead-letter, the connection writes the unprocessed events to the specified Pub/Sub topic. Enter the following details:
      1. Dead-letter project ID: The Google Cloud project ID where you have configured the dead-letter Pub/Sub topic.
      2. Dead-letter topic: The Pub/Sub topic where you want to write the details of the unprocessed event.

    Use a custom read table function

    RFC_READ_TABLE

    The connector uses the SAP RFC_READ_TABLE function to get data from SAP tables.

    However, it has certain limitations. As an example, consider the DATA_BUFFER_EXCEEDED exception. The SAP RFC_READ_TABLE has a fixed size of 512 bytes. It can buffer for each row of data, and thus you cannot select more columns than the amount that would fit in this buffer. If you select more than 512 bytes, an exception occurs indicating that you have exceeded the maximum buffer size allowed per row and need to select fewer columns.

    RFC_READ_TABLE2

    The SAP ERP connector supports the RFC_READ_TABLE2 table read function. You can switch the active table read function to RFC_READ_TABLE2 by setting ReadTableFunction to /SAPDS/RFC_READ_TABLE2.

    Custom read table functions

    The connector includes a custom read-table RFC, Z_CUSTOM_READ_TABLE that is similar to the SAP RFC_READ_TABLE, but with a larger buffer to address the DATA_BUFFER_EXCEEDED problem and bypass RFC_READ_TABLE limitations.

    To use the included custom read-table RFC to bypass limitations with the default RFC_READ_TABLE, follow these steps:

    1. Use the RFC_READ_TABLE function as a template for the new function. Select transaction code SE37 and the SDTX function group and copy RFC_READ_TABLE to a new function group or your working function group. In this example, RFC_READ_TABLE is copied to Z_CUSTOM_READ_TABLE.
    2. On the Attributes tab of the SAP screen, select Remote Enabled Module.
    3. On the Tables tab, set the DATA parameter to CHAR8000. Right-click on the screen and then click Display -> Change.
    4. On the Source Code tab, paste the example source code for the replacement RFC_READ_TABLE function module located in the db subfolder of the installation directory. The code is located in Z_CUSTOM_READ_TABLE.txt, though Z_CUSTOM_READ_TABLE_752.txt is preferred if your SAP ERP instance is running ABAP version 7.52 or later.
    5. Click Save.
    6. Define the imports, tables, and exceptions as documented in the provided custom read table.
    7. Activate the function module and in your connection string set ReadTableFunction to Z_CUSTOM_READ_TABLE, or the name of your function module.

    The ABAP 7.52 Custom Read Table

    Along with Z_CUSTOM_READ_TABLE.txt, there is also a Z_CUSTOM_READ_TABLE_752.txt file, for ABAP version 7.52 and above. It is similar to Z_CUSTOM_READ_TABLE, but it takes advantage of the newly available keywords in ABAP 7.52 to perform paging within the database instead of in the ABAP script itself. This makes paging efficient when working with large tables.

    It is recommended to use the Z_CUSTOM_READ_TABLE_752 RFC.

    Configure authentication in SAP

    Configure the authentication in SAP by following the instructions in the Authentication overview for the on-premises or any cloud edition of ABAP SDK for Google Cloud guide.

    Validate the trigger

    To validate the trigger, you can create an ABAP program. The following is a sample ABAP program that you can use as a reference. The ls_event_payload field changes based on your requirements:

    *&---------------------------------------------------------------------*
    *& Report ZR_TEST_INT_CONNECTOR
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zr_test_int_connector.
    PARAMETERS: p_auth TYPE char1 RADIOBUTTON GROUP rbg1 USER-COMMAND uc DEFAULT 'X',
     p_apik TYPE char1 RADIOBUTTON GROUP rbg1.
    DATA:
     lv_p_projects_id TYPE string,
     lv_p_locations_id TYPE string,
     lv_p_connections_id TYPE string,
     ls_input TYPE /goog/cl_connectors_v1=>ty_103.
    TYPES: BEGIN OF event_payload,
     event_type TYPE string,
     event_id TYPE string,
     name TYPE string,
     org_id TYPE string,
     END OF event_payload.
    DATA: ls_event_payload TYPE event_payload.
    ls_event_payload = VALUE #(
     event_type = 'create-entity'
     event_id = '1'
     name = 'demo-org'
     org_id = 'SAP'
     ).
    TRY.
     IF p_Auth = abap_true.
     DATA(lv_client_key) = 'IC_DEMO_GOOGLE_AUTH'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-erp'.
     ELSE.
     lv_client_key = 'IC_DEMO_GOOGLE_APIK'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-erp-apik'.
     ENDIF.
    * Open HTTP Connection
     DATA(lo_client) = NEW /goog/cl_connectors_v1( iv_key_name = CONV #( lv_client_key ) ).
    * Populate relevant parameters
     lv_p_projects_id = lo_client->gv_project_id.
     lv_p_locations_id = 'us-central1'.
     GET REFERENCE OF ls_event_payload INTO ls_input-payload .
    * Call API method: connectors.projects.locations.connections.listenEvent
     CALL METHOD lo_client->listen_event_connections
     EXPORTING
    
    
    iv_p_projects_id = lv_p_projects_id
     iv_p_locations_id = lv_p_locations_id
     iv_p_connections_id = lv_p_connections_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 lo_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.