Nozioni di base su SnapLogic

Foto di Pawit Aiemvaravutigul
16 lettura minima
Riassumere questo con l'AI

SnapLogic è una piattaforma di integrazione come servizio (iPaaS) cloud che fornisce strumenti per connettere varie applicazioni, fonti di dati e API. Consente alle aziende di automatizzare e semplificare i propri processi di integrazione dei dati offrendo connettori predefiniti e un'interfaccia visiva per la progettazione di flussi di lavoro di integrazione.

La piattaforma SnapLogic utilizza una pipeline SnapLogic, una serie di "Snap" (componenti predefiniti) collegati tra loro che definiscono il flusso e la trasformazione dei dati tra vari sistemi e applicazioni. In una pipeline SnapLogic, i dati fluiscono da uno Snap all'altro, con ogni Snap che svolge una funzione specifica, come l'estrazione, la trasformazione o il caricamento dei dati (ETL).

immagine45.png

SnapLogic Designer

SnapLogic Designer è l'interfaccia utente che consente di sviluppare pipeline. Di seguito è riportata una pagina di esempio.

Ma in SnapLogic, grazie a una funzione chiamata "Asset Palette", è possibile visualizzare diversi stili della vista del pannello laterale. Le funzioni sono tuttavia le stesse della vista del pannello laterale.

La pagina del designer è composta da tre parti principali:

  • Canvas – Il campo per visualizzare e modificare la pipeline
pawit_roy_2-1727893192967.png
pawit_roy_5-1727893192701.png

Icone

Descrizione


Esegui pipeline


pawit_roy_6-1727893192618.png


Esegui la pipeline.


Convalida pipeline


pawit_roy_7-1727893192703.png


Convalida la pipeline. Qualsiasi modifica non salvata verrà salvata prima della convalida. Facendo clic sul pulsante mentre è in corso una convalida, questa verrà annullata. Facendo clic sul pulsante tenendo premuto il tasto Maiusc, la cache verrà svuotata prima della convalida.


Modifica delle proprietà della pipeline


pawit_roy_8-1727893192714.png

Le proprietà vengono specificate durante la creazione di una pipeline. Fare clic su questo pulsante per modificare le proprietà.


Controlla le statistiche della pipeline


pawit_roy_9-1727893192665.png


Durante l'esecuzione di una pipeline, le statistiche vengono aggiornate periodicamente in modo da poter monitorarne lo stato di avanzamento.


Crea attività


pawit_roy_10-1727893192703.png


Crea un'attività per la pipeline corrente.


Salva pipeline


pawit_roy_11-1727893192702.png


Salva la pipeline corrente.


Pipeline di esportazione


pawit_roy_12-1727893192706.png

Esporta la pipeline corrente.


Copia pipeline


pawit_roy_13-1727893192699.png

Copia la pipeline da un progetto all'altro.


Sposta pipeline


pawit_roy_14-1727893192615.png


Sposta la pipeline da un progetto all'altro.


Elimina pipeline


pawit_roy_15-1727893192622.png

Elimina la pipeline corrente


Versioni della pipeline


pawit_roy_16-1727893192615.png

Crea versioni della pipeline.


Confronta Pipeline


pawit_roy_17-1727893192616.png

Confronta la pipeline attuale con quella desiderata.


Note


pawit_roy_18-1727893192623.png

Aggiungi una nota o elimina una nota esistente. Le note vengono salvate con la pipeline.


Stampa


pawit_roy_19-1727893192632.png


Stampa la pipeline.

Scatti

Gli Snap sono gli elementi costitutivi di una pipeline. Ogni Snap svolge una singola funzione, come leggere, analizzare, trasformare o scrivere dati. È possibile visualizzare gli Snap disponibili (per l'utente o il proprio account) nel Catalogo Snap sul lato sinistro di SnapLogic Designer. È possibile trascinare uno Snap dal Catalogo Snap sul Canvas per utilizzarlo in una pipeline.

pawit_roy_21-1727894128209.png

Tipo di bottoni automatici

SnapLogic include i seguenti tipi base di Snap con icone distintive.

Icona

Tipo a scatto

Descrizione

Leggi

Specifica le origini dati nella pipeline.

Esempi: Lettore di file, Generatore CSV, Query Birst

Analizza

Accetta l'input di dati non strutturati e genera un output di dati strutturati.

Esempi: XML Parser, Sequence Parser, JSON Parser

Trasformazione

Modifica i dati in modo significativo.

Esempi: Mapper, Aggregate, Join

Flusso

Modifica l'output o la direzione dei dati in una pipeline.

Esempi: router, gate, unione

Formato

Modifica il formato dei dati.

Esempi: Formattatore CSV, Formattatore JSON, Formattatore Excel

Scrivere

Specifica le destinazioni dei dati in una pipeline.

Esempi: File Writer, REST Post, Email Delete

Bottoni a pressione

La chiave per creare una pipeline in SnapLogic è collegare gli Snap. Ci sono alcuni aspetti da considerare quando si inseriscono gli Snap in una pipeline.

Forme di connessione

Come i pezzi di un puzzle, solo gli Snap con coppie di connessioni corrispondenti (cerchi o rombi) possono essere collegati tra l'ingresso e l'uscita di due Snap.

pawit_roy_28-1727894213780.png
pawit_roy_29-1727894213760.png

Quando trascini uno snap e lo posizioni accanto o davanti a un altro snap, lo snap collegherà automaticamente entrambi gli snap e il collegamento cambierà colore, indicando che il collegamento è stato effettuato correttamente. Se il colore non cambia, è necessario ricontrollare che entrambe le forme di collegamento siano uguali e ricollegarle nuovamente.

pawit_roy_30-1727894213804.png

Disconnetti gli snap collegati

Gli Snap non collegati possono essere spostati separatamente o posizionati uno accanto all'altro. Assicurati che il connettore circolare o a forma di diamante sia di colore blu, a indicare che gli Snap sono collegati.

pawit_roy_31-1727894213819.png
pawit_roy_32-1727894213751.png

Per scollegare gli Snap collegati, clicca sul connettore blu. Questo cancella il colore e ti permette di riorganizzare gli Snap.

È possibile collegarsi agli Snap, ma non uno accanto all'altro, utilizzando un collegamento remoto. Ad esempio, fare clic e tenere premuto sul connettore Mapper Snap fino a quando non diventa giallo, quindi trascinarlo sul connettore Copy Snap. Quando entrambe le connessioni diventano blu, rilasciare il pulsante del mouse. In entrambi i connettori viene inserito un numero per indicare che sono collegati.

pawit_roy_33-1727894214267.gif

Nota: il numero è solo temporaneo fino al salvataggio della pipeline. A questo punto, è possibile assegnare un nuovo numero permanente.

È anche possibile fare clic e tenere premuto su una connessione: entrambi gli Snap collegati da questo link si oscureranno. Questa funzione è utile per pipeline di grandi dimensioni, dove potrebbe essere necessario molto lavoro per visualizzare rapidamente le connessioni.

pawit_roy_34-1727894213816.png

Modello di dati

SnapLogic trasferirà i dati tra gli Snap utilizzando due modelli:

Dati del documento

I modelli di dati dei documenti saranno rappresentati da una forma circolare. Questo tipo di dati utilizza il formato JSON come contenitore dei dati. Il tipo di dati supportato in questo modello è simile allo standard JSON in quanto include stringhe, valori booleani, numeri, array, oggetti e valori nulli.

pawit_roy_35-1727894331101.png

Dati binari

I modelli di dati dei documenti saranno rappresentati da una forma a rombo. Questo tipo di dati racchiuderà i dati binari nel modello di SnapLogic. Nella maggior parte dei casi, questi dati saranno inseriti nel file writer e nel parser e restituiti dal file reader e dal formatter.

pawit_roy_36-1727894331101.png

Configurazione Snap

Hai due opzioni per aprire la finestra di dialogo di configurazione. Innanzitutto, fai clic con il tasto sinistro del mouse sullo Snap che desideri configurare. La finestra di dialogo apparirà immediatamente. 

pawit_roy_37-1727894331331.png

Il secondo metodo consiste nel cliccare con il tasto destro dello Snap: verrà visualizzato un menu a tendina con le opzioni disponibili in tutti gli Snap. Quindi cliccare su "Modifica" nel menu.

pawit_roy_38-1727894331073.png

Ogni Snap avrà configurazioni diverse. Per ulteriori informazioni sulla configurazione di ciascuno Snap, fare clic sull'icona con il punto interrogativo in alto a destra nella finestra di dialogo.

pawit_roy_39-1727894331548.png

Espressione

pawit_roy_40-1727894416647.png

Il linguaggio di espressione SnapLogic è un'utilità disponibile per gli Snap. È possibile utilizzare espressioni (sintassi JavaScript) per accedere a funzioni e proprietà e impostare dinamicamente i valori dei campi. È inoltre possibile utilizzare il linguaggio di espressione per manipolare i dati. 

Esempio

$text == "NFL" ? "foo" : "bar"

$counter > 1 ? ($counter < 3 ? 50 : 100) : -1

Le espressioni sono disponibili su più Snap. Se lo Snap espone la funzionalità dell'espressione per una proprietà, allora il  L'icona appare davanti alla casella di testo della proprietà. È possibile attivare o disattivare questa funzione cliccando sull'icona. Quando la funzione è attivata, all'interno del campo apparirà una freccia rivolta verso il basso. È possibile cliccare su di essa per visualizzare l'elenco delle funzioni e delle proprietà disponibili.

pawit_roy_42-1727894417041.png

Operazioni

Elenco delle operazioni supportate e non supportate disponibili nella nostra documentazione.

Accesso ai parametri della pipeline

I parametri consentono di riutilizzare una pipeline in più situazioni. Ad esempio, uno Snap File Writer può essere configurato per scrivere in un percorso file specificato da un parametro, consentendo alla stessa pipeline di scrivere in file diversi. I parametri di una pipeline possono essere definiti utilizzando la finestra di dialogo Modifica proprietà pipeline. Il nome di ciascun parametro deve contenere solo caratteri alfanumerici e il valore verrà convertito in una stringa. Il valore di un parametro definito nella finestra di dialogo delle proprietà della pipeline viene considerato come predefinito durante l'esecuzione della pipeline in Designer. I parametri possono anche essere passati allo Snap Pipeline Execute. Qualsiasi parametro non passato dal Task o dallo Snap utilizzerà i valori predefiniti specificati nella finestra di dialogo delle proprietà.

Per accedere a un parametro della pipeline dal linguaggio di espressione, è necessario anteporre al nome del parametro un trattino basso. Ad esempio, dati i seguenti parametri:

Chiave

Valore

nome 

Bob

numValue

12

percorso

$.età

È quindi possibile accedere al parametro "firstName" utilizzando _firstName, come in:

"Hello, " + _firstName  // result: Hello, Bob

Poiché il valore di un parametro è sempre una stringa, è necessario convertire qualsiasi stringa in valori numerici prima di operare su di essi. Ad esempio, semplicemente aggiungendo due al parametro "numValue" si aggiungerà il carattere "2" a "12" e si otterrà "122":

_numValue + 2   // result: "122"

È invece necessario utilizzare le funzioni parseInt/parseFloat per analizzare la stringa in un valore e poi aggiungere due ad esso:

parseInt(_numValue) + 2   // result: 14

È necessario parametrizzare la pipeline con un'espressione. È possibile utilizzare la funzione eval() per valutare un'espressione memorizzata in una stringa. Ad esempio, per leggere il campo del documento specificato dal parametro "path", è possibile utilizzare:

eval(_path)   // result: <the value of the "age" field in the current document>

Accesso alle variabili della vista Input come parte delle espressioni

Un attributo dello schema della vista di input può essere utilizzato come parte dell'espressione utilizzando il prefisso dollaro ($).

Esempio

Il REST Put Snap fornisce un URL. L'URL può essere trasformato in un'espressione, e le espressioni possono essere create sostituendo dinamicamente le variabili da una vista di input, ad esempio:

'http://someplace:someport/somepart/' + $inputvar + '/somemoreparts'

Accesso al valore segreto dal gestore dei segreti

Qualsiasi campo di autenticazione abilitato per le espressioni in uno Snap o in un account può essere utilizzato con Secrets Management. È possibile inserire un'espressione che recupera un segreto memorizzato nel gestore dei segreti, come un token di accesso, un nome utente o una password. Per utilizzare i valori del gestore dei segreti, è necessario prima creare i segreti myaccesskey e mysecretkey nel vault di Secrets Manager. Quindi, creare o modificare l'account e inserire un'espressione nei campi richiesti. Ulteriori informazioni: Configurare gli account per utilizzare i segreti.

Conto

Un account rappresenta un oggetto che racchiude i dettagli necessari per connettersi a un endpoint. Gli account svolgono un ruolo fondamentale nell'integrazione delle applicazioni. Qualsiasi Snap che comunica con un endpoint esterno necessita di un account autenticato per accedere alle risorse presenti sull'endpoint. Ad esempio, uno Snap MySQL richiede un accesso autenticato a un database MySQL. In SnapLogic, è possibile creare un account per memorizzare le credenziali e qualsiasi altra informazione necessaria per la connessione, come URL, nome host e numero di porta.

pawit_roy_43-1727894539965.png

È possibile creare un account da Designer o Manager. In Designer, quando si lavora sulle pipeline, ogni Snap che richiede un account richiede di crearne uno nuovo o di utilizzarne uno esistente.

Per utilizzare un account esistente, puoi cliccare sull'icona a tendina per visualizzare tutti gli account disponibili per gli snap.

pawit_roy_54-1727894848357.png

Per creare un nuovo account, clicca sul pulsante "Aggiungi account" sotto il campo della proprietà e segui i passaggi indicati. L'account verrà creato nella posizione selezionata al primo passaggio. Puoi gestire l'account creato nella pagina Gestione in quella posizione.

pawit_roy_45-1727894539989.png
pawit_roy_46-1727894540137.png

Nota: per ulteriori informazioni sul tipo di account e su ciascuna proprietà, clicca sull'icona con il punto interrogativo nell'angolo in alto a destra.

Pipeline di convalida ed esecuzione

A volte, vogliamo testare la pipeline eseguendola a vuoto senza eseguire gli snap di scrittura. È possibile utilizzare la funzione validate  nel menu della barra degli strumenti. La differenza tra convalida ed esecuzione è che prima dell'esecuzione di ogni snap viene verificata la proprietà denominata "Esecuzione immediata.” Ci sono tre opinioni su come attivare gli scatti.

pawit_roy_48-1727894539904.png
  • Convalida ed esegui: questa opzione fa sì che gli snap vengano eseguiti sia nella fase di convalida che in quella di esecuzione.
  • Solo esecuzione: questa opzione fa sì che gli snap vengano eseguiti solo nella fase di esecuzione. Il tipo di snap writer utilizza questo valore come impostazione predefinita.
  • Disabilitato: questa opzione impedisce l'esecuzione degli snap.

Nota: per impostazione predefinita, la convalida verrà attivata ogni volta che modifichiamo la configurazione degli snap nella pipeline.

Anteprima dati

pawit_roy_49-1727894539922.png

Dopo aver eseguito o convalidato la pipeline, sarà presente un'icona di anteprima nel giunto di connessione. Facendo clic su di essa, verrà visualizzata la finestra di dialogo di anteprima, che mostra i dati di output degli snap. Ad esempio, quando si fa clic sull'icona di anteprima, la pipeline sopra riportata mostrerà i dati di output degli snap JSON Generator.

pawit_roy_50-1727894540145.png

La finestra di dialogo di anteprima presenta tre tipi: JSON, Tabella e Raw. È possibile selezionare il menu a tendina su Tipo di anteprima e scegliere il tipo desiderato.

  • JSON
pawit_roy_51-1727894540124.png
  • Tabella
pawit_roy_52-1727894540145.png
  • Crudo
pawit_roy_53-1727894540297.png

Crea la prima pipeline

Questa sezione illustra come iniziare a creare la pipeline, dai requisiti alla verifica dei risultati e all'esecuzione della pipeline finale.

Per lo scenario di esempio, vogliamo calcolare l'elenco dei dipendenti per verificare chi deve essere assegnato alla formazione di marketing. L'elenco dei nostri dipendenti è simile ai dati riportati di seguito.

[
    {
        "Name": "Albert Maro",
        "Location": "Field",
        "Extension": 4357,
        "Email": "[email protected]",
        "Title": "Director, Eastern US",
        "Department": "Sales",
        "Dept ID": 1100
    },
    {
        "Name": "Anthony Dunn",
        "Location": "HQ",
        "Extension": 4387,
        "Email": "[email protected]",
        "Title": "Social Media Director",
        "Department": "Marketing",
        "Dept ID": 1200
    },
    {
        "Name": "Rich Harris",
        "Location": "CO",
        "Extension": 4368,
        "Email": "[email protected]",
        "Title": "Principal Developer",
        "Department": "Engineering",
        "Dept ID": 1300
    }
    // more data
]

Il vincolo della necessità di formazione è un dipendente del reparto marketing che lavora presso la "sede centrale". Desideriamo l'elenco dei dipendenti con i campi Nome, Cognome, E-mail, Titolo e Formazione. Il risultato dovrebbe essere simile al seguente.

[
    {
        "Firstname": "Albert",
        "Lastname": "Maro",
        "Email": "[email protected]",
        "Title": "Director, Eastern US",
        "Training": false
    },
    {
        "Firstname": "Anthony",
        "Lastname": "Dunn",
        "Email": "[email protected]",
        "Title": "Social Media Director",
        "Training": true
    },
    {
        "Firstname": "Rich",
        "Lastname": "Harris",
        "Email": "[email protected]",
        "Title": "Principal Developer",
        "Training": false
    }
    // more data
]

Passaggi

1. Apri la pagina Designer.

pawit_roy_55-1727894921408.png

2. Clicca pawit_roy_56-1727894921147.png per creare una nuova pipeline.

pawit_roy_57-1727894921323.jpeg

3. Modifica l'etichetta in "Formazione dei dipendenti" e clicca su Salva.

pawit_roy_58-1727894921349.png

4. A questo punto, abbiamo già una nuova pipeline vuota.

pawit_roy_59-1727894921365.png

Quindi, trova lo snap"JSON Generator"dal pannello laterale e trascinalo sullo schermo della tela. Questo snap genera un documento JSON per lo snap successivo nella pipeline. Lo imposteremo come fonte di input.

pawit_roy_60-1727894921550.png

5. Fare clic sullo snap JSON Generator per aprire la finestra di dialogo di configurazione e fare clic su "Modifica JSON".

pawit_roy_61-1727894921323.png

Quindi, sostituisci tutto il JSON con il valore riportato di seguito.

[
    {
        "Name": "Albert Maro",
        "Location": "Field",
        "Extension": 4357,
        "Email": "[email protected]",
        "Title": "Director, Eastern US",
        "Department": "Sales",
        "Dept ID": 1100
    },
    {
        "Name": "Anthony Dunn",
        "Location": "HQ",
        "Extension": 4387,
        "Email": "[email protected]",
        "Title": "Social Media Director",
        "Department": "Marketing",
        "Dept ID": 1200
    },
    {
        "Name": "Rich Harris",
        "Location": "CO",
        "Extension": 4368,
        "Email": "[email protected]",
        "Title": "Principal Developer",
        "Department": "Engineering",
        "Dept ID": 1300
    }
    // more data
]
pawit_roy_62-1727894921698.png

Clicca su "Ok” e il pulsante Salva (pawit_roy_63-1727894921058.png) prima di chiudere la finestra di dialogo.

6. Attendere il completamento della convalida. Se la convalida non viene eseguita, fare clic sul pulsante di convalida per convalidare manualmente la pipeline.

pawit_roy_64-1727894921368.png

7. Individua lo snap "Mapper"e trascinalo dopo il generatore JSON. Lo snap Mapper trasforma i dati in entrata con mappature specifiche e produce nuovi dati di output.

pawit_roy_65-1727894921221.png

8. Fare clic sullo snap Mapper per aprire la finestra di dialogo di configurazione.

pawit_roy_66-1727894921601.png

Ci concentriamo sui cinque blocchi nella parte inferiore della finestra di dialogo.

  • Schema di input – mostra lo schema dei dati di input
  • Tabella di mappatura: è la configurazione per mappare i dati di input sui nuovi dati di output.
  • Schema di destinazione: mostra lo schema dei dati di output. Tuttavia, questo snapshot non è stato ancora convalidato, quindi non mostra nulla.
  • Anteprima input – mostra i dati di input correnti
  • Anteprima output – mostra i dati di output correnti

Quindi, impostare la tabella di mappatura con le informazioni riportate di seguito. Per aggiungere più mappature, fare clic su pawit_roy_67-1727894921060.png nell'angolo in alto a destra.

Espressione

Percorso di destinazione

$Name.split(‘ ‘)[0]

$Nome

$Name.split(‘ ‘)[1]

$Cognome

$Email

$Email

$Titolo

$Titolo

$Location == "HQ" && $Department == "Marketing"

$Formazione

La configurazione finale sarà simile a questa.

pawit_roy_68-1727894921348.png

Fai clic su Salva e chiudi la finestra di dialogo.

9. Fare clic sul pulsante di anteprima dopo lo snap del Mapper. Il risultato dovrebbe essere simile a questo.

pawit_roy_69-1727894921371.png

SnapGPT

SnapGPT è uno strumento interattivo all'interno di SnapLogic Designer. Sfrutta la potenza dei modelli di linguaggio grande (LLM) per democratizzare l'integrazione, aiutando gli utenti a creare e gestire integrazioni utilizzando prompt in linguaggio naturale. SnapGPT può svolgere sei funzioni principali in SnapLogic.

  1. Generare pipeline
  2. Descrivi le condutture
  3. Analizzare le condutture
  4. Chiedete qualsiasi cosa sulla piattaforma di integrazione intelligente (IIP) SnapLogic.
  5. Generare espressioni SnapLogic
  6. Creare query SQL

Utilizzo SnapGPT

pawit_roy_0-1727895781931.png

È possibile aprire il pannello SnapGPT cliccando sul logo SnapGPT nella barra di intestazione. Il pannello verrà quindi visualizzato con un messaggio di benvenuto.

pawit_roy_1-1727895782168.png

Successivamente, mostreremo come utilizzare ciascuna funzionalità di SnapGPT sulla piattaforma SnapLogic.

Generare pipeline

Invia direttamente a SnapGPT

Esempi di prompt:

  • Estrai i record degli oggetti opportunità da Salesforce e aggiungili a Snowflake
  • Creare una pipeline utilizzando Salesforce Read per recuperare le mie opportunità, filtrare tutte le opportunità al di fuori dell'ultimo trimestre fiscale, quindi scriverle su Snowflake.
  • Estrai i record degli oggetti opportunità da Salesforce chiusi prima del "01/10/2022" e aggiungili a Snowflake.
  • Crea una pipeline che recuperi i miei registri delle attività SnapLogic dall'API SnapLogic.

Descrivi le condutture

Apri la pipeline che desideri descrivere, quindi vai al pannello SnapGPT e chiedi: "Descrivi la pipeline".

Esempi di prompt:

  • Descrivi la pipeline

Analizzare le condutture

Apri la pipeline che desideri analizzare, quindi vai al pannello SnapGPT e richiedi "Analizza la pipeline".

Esempi di prompt:

  • Analizza la pipeline

Risultato:

SnapGPT identifica i problemi nella pipeline e fornisce suggerimenti per migliorarla, mentre Snaps nella pipeline offre suggerimenti.

pawit_roy_2-1727895782143.png
pawit_roy_3-1727895782085.png

Chiedete qualsiasi cosa sulla piattaforma di integrazione intelligente (IIP) SnapLogic.

Esempi di prompt:

  • Come posso creare una pipeline?
  • Quando e come devo usare lo snap SOQL di Salesforce?
  • Come può una pipeline richiamare un'altra pipeline?
  • Le pipeline possono utilizzare la ricorsione?
  • In che modo una pipeline Ultra differisce da una pipeline normale?

Generare espressioni SnapLogic

Per iniziare, basta aprire uno snap e selezionare il  icona. Questa azione attiva la funzione di generazione delle espressioni, consentendomi di aiutarti nella creazione delle espressioni. Posso iniziare a creare espressioni per te sia nella nostra chat che all'interno del campo abilitato alle espressioni stesso, digitando il prompt e poi cliccando sull'icona SnapGPT. .

Esempi di prompt:

  • Genera un'espressione per filtrare le mie opportunità perse chiuse.
  • Genera un'espressione per acquisire la data e l'ora correnti.

Creare query SQL

Apri uno Snap che supporta query SQL o SOQL e apri SnapGPT.

Ad esempio, se apri Salesforce SOQL Snap, il suggerimento Crea query SQL appare sopra il prompt SnapGPT. SnapGPT genera la query e la visualizza nel pannello Anteprima SQL. È possibile rivedere l'SQL generato prima di applicarlo allo snap.

pawit_roy_6-1727895781611.png

Esempio di prompt:

  • Genera una query SQL per ottenere l'importo totale delle opportunità chiuse nell'ultimo trimestre raggruppate per paese dell'account e stato dell'operazione.
Foto di Pawit Aiemvaravutigul
Ingegnere software presso SnapLogic
Categoria: Tecnica