SFDX Best practice per la gestione di oggetti personalizzati?

Aug 23 2020

Vorremmo utilizzare SFDX Cli per aggiornare i nostri oggetti personalizzati in un repository Git. Per ora, poiché siamo nuovi a SFDX e la nostra base di codice sarà piccola, vogliamo un'unica app sfdx.

Al momento abbiamo alcuni altri pacchetti dal mercato che creano anche oggetti personalizzati e aggiungono tipi a oggetti esistenti (si estendono Accountad esempio)

Come dovremmo importarlo nella nostra app SFDX? Dovremmo importare gli oggetti predefiniti (Mi piace Account) a cui abbiamo aggiunto i campi, ma esaminarli manualmente e rimuovere i campi aggiunti dai pacchetti del marketplace che abbiamo aggiunto?

Risposte

2 PhilW Aug 23 2020 at 22:05

Se desideri utilizzare i componenti dei metadati (inclusi i campi personalizzati, ad esempio) aggiunti da pacchetti AppExchange di terze parti, l'unico modo per ottenerlo è installare quei pacchetti perché avranno uno spazio dei nomi in cui esistono tutti i loro metadati. Non puoi riprodurli nella tua base di origine.

Le dipendenze da pacchetti di terze parti vengono acquisite in sfdx-project.json. Sfortunatamente, la creazione di un'organizzazione zero non garantisce automaticamente l'installazione delle dipendenze (una supervisione significativa in SFDX IMHO), quindi dovrai scrivere il tuo script per affrontare questo problema. Una volta fatto, usare SFDX per il tuo sviluppo funziona abbastanza bene, anche se (a seconda delle dimensioni dei pacchetti da cui dipendi) la creazione di un'organizzazione scratch può essere piuttosto lenta.

Personalmente direi che dovresti sempre vedere il tuo sistema di controllo della versione come la fonte della verità, mai un'organizzazione. Vorrei anche dire che, a causa di un comportamento indesiderato in sfdx per estrarre metadati da un'organizzazione zero (vedrà alcuni profili come modificati da Salesforce e insisterà nel tirare aggiornamenti spuri a questi - almeno, questo è quello che ho trovato) dovrebbe prendere in considerazione il recupero esplicito anziché l'utilizzo di pull se è necessario creare o modificare i metadati sull'organizzazione piuttosto che localmente nel proprio IDE.

2 MohithShrivastava Aug 23 2020 at 19:55

La procedura migliore è quella di aggiornare la versione di tutto ciò che hai configurato nella tua organizzazione, inclusi codice, configurazione e qualsiasi personalizzazione che hai fatto sui pacchetti che hai installato.

L'idea del controllo delle versioni dovrebbe essere nel caso in cui dovessi perdere i metadati dell'organizzazione per qualche motivo, dovresti essere in grado di replicare distribuendo i metadati dal controllo del codice sorgente.

Il modo più semplice per farlo creando un pacchetto non gestito nella sandbox o Prod.

Puoi farlo seguendo i passaggi

  • Vai a Imposta | Imballaggio | Gestione pacchetti | Crea un nuovo pacchetto

  • Aggiungi i componenti necessari alla versione. Tieni presente che estrarrà automaticamente tutti i metadati dipendenti. Ciò escluderà comunque i metadati generati da altri pacchetti. Ma includerà comunque componenti extra aggiunti per personalizzare l'app

  • Utilizzare il comando SFDX CLI per recuperare i metadati utilizzando il comando seguente

    sfdx force:source:retrieve -n "<packagename>"
    

dove il nome del pacchetto (nomepacchetto) è il nome del pacchetto.