• Accueil / Salesforce / Passer à l’interface…
, Passer à l&rsquo;interface graphique via l&rsquo;interface de ligne de commande Salesforce, partie 3<span class="wtr-time-wrap after-title"><span class="wtr-time-number">6</span> minutes de lecture</span>

Passer à l’interface graphique via l’interface de ligne de commande Salesforce, partie 36 minutes de lecture


de cette série, j’ai présenté mon interface graphique Salesforce CLI avec quelques commandes de base.

J’ai couvert certaines des spécificités d’Electron et ajouté quelques commandes autour de la liste et de la récupération des fichiers journaux.

Dans cet épisode, je vais regarder comment une commande est construite – la configuration des paramètres et comment ceux-ci sont spécifiés par l’utilisateur.

Comme mentionné dans la partie 1, les commandes sont configurées via le app / shared / commands.js fichier. Cela définit les regroupements et les commandes qui appartiennent à ces regroupements, qui sont utilisés pour générer les onglets et les tuiles qui permettent à l’utilisateur d’exécuter des commandes. Par exemple, les commandes de débogage ajoutées dans la dernière mise à jour ont la configuration suivante (détail réduit sinon ce message sera énorme!):

{
    name : 'debug',
    label: 'Debugging',
    commands : [
        {
            name: 'listlogs',
            label: 'List Logs',
            icon: 'file',
              ///////// detail removed //////////
        },
        {
            name: 'getlog',
            label: 'Get Log File',
            icon: 'file',
              ///////// detail removed //////////       
        }
    ]
}

ce qui équivaut à un onglet étiqueté Débogage et deux tuiles de commande – Liste des journaux et Obtenir le fichier journal :

, Passer à l&rsquo;interface graphique via l&rsquo;interface de ligne de commande Salesforce, partie 3<span class="wtr-time-wrap after-title"><span class="wtr-time-number">6</span> minutes de lecture</span>

cliquer sur une tuile de commande ouvre une nouvelle fenêtre permettant de définir la commande, et c’est ici que le reste des détails de configuration entre en jeu:

, Passer à l&rsquo;interface graphique via l&rsquo;interface de ligne de commande Salesforce, partie 3<span class="wtr-time-wrap after-title"><span class="wtr-time-number">6</span> minutes de lecture</span>

la capture d’écran ci-dessus provient de la commande List Logs, qui a la configuration suivante (dans son intégralité):

{
    name: 'listlogs',
    label: 'List Logs',
    icon: 'file',
    startMessage: 'Retrieving log file list',
    completeMessage: 'Log file list retrieved',
    command: 'sfdx',
    subcommand: 'force:apex:log:list',
    instructions: 'Choose the org that you wish to extract the log file details for and click the 'List' button',
    executelabel: 'List',
    refreshConfig: false,
    refreshOrgs: false,
    json: true,
    type: 'brand',
    resultprocessor: 'loglist',
    polling: {
        supported: false
    },
    overview : 'Lists all the available log files for a specific org.',
    params : [
        {
            name : 'username',
            label: 'Username',
            type: 'org',
            default: false,
            variant: 'all',
            flag: '-u'
        }
    ]        
}

les attributs sont utilisés dans l’interface graphique comme suit:

  • Nom – nom unique de la commande, utilisé en interne pour générer des identifiants et comme clé de carte
  • étiquette – l’étiquette conviviale affichée dans la tuile
  • icône – l’icône SLDS affichée en haut à gauche de la page de commande
  • startMessage – le message affiché dans le log modal au démarrage de la commande
  • completeMessage – le message affiché dans le journal modal lorsque la commande se termine avec succès
  • commander – la commande système à exécuter pour exécuter la commande – tous les exemples jusqu’à présent utilisent sfdx
  • sous-commande – la sous-commande de l’exécutable
  • instructions – le texte affiché dans le panneau d’instructions sous l’en-tête. Ceci est spécifique à la définition de la commande plutôt que de fournir une aide sur la commande sfdx sous-jacente
  • executeLabel – l’étiquette conviviale sur le bouton qui exécute la commande
  • refreshConfig – si la configuration mise en cache (utilisateur par défaut, utilisateur du hub de développement par défaut) est actualisée après l’exécution de cette commande – ceci est défini sur true si la commande change de configuration
  • rafraîchirOrgs – si les organisations mises en cache doivent être mises à jour après l’exécution de cette commande – définie sur true si la commande ajoute une organisation (créer une organisation scratch, se connecter à l’organisation) ou en supprime une (supprimer une organisation scratch, déconnexion de l’organisation)
  • json – la commande prend-elle en charge la sortie JSON
  • type – le type de style à utiliser sur la tuile de commande
  • resultProcessor – pour les commandes qui produisent une sortie spécifique qui doit être post-traitée avant d’être affichée à l’utilisateur, cela définit le type de processeur
  • vote – existe-t-il un mécanisme pour interroger l’état de la commande pendant son exécution
  • Aperçu – texte affiché dans le panneau de présentation de la page d’aide pour cette commande
  • paramètres – les paramètres supportés par la commande.

Paramètres

Dans ce cas, il n’y a qu’un seul paramètre, mais c’est un paramètre très important: le nom d’utilisateur qui définira l’organisation à partir de laquelle récupérer la liste des journaux. C’était une fonctionnalité vraiment importante pour moi – j’ai tendance à travailler dans plusieurs organisations quotidiennement (toutes les heures!), Donc je ne voulais pas continuer à exécuter des commandes pour basculer entre elles. Ce paramètre me permet de choisir dans ma liste en cache d’organisations auxquelles me connecter et possède les attributs suivants:

  • Nom – nom unique du paramètre
  • étiquette – le libellé du champ de saisie qui capturera le choix
  • type – le type du paramètre – dans ce cas le nom d’utilisateur pour la connexion à l’organisation
  • une variante – quelle variante d’organisations doit être affichée:
    • centre – concentrateurs de développement uniquement
    • rayure – organisations scratch uniquement
    • tout – toutes les organisations
  • défaut – si le nom d’utilisateur ou devhubusername par défaut est sélectionné par défaut
  • drapeau – le drapeau qui sera passé à la commande sfdx avec la valeur sélectionnée

Construction de l’entrée de paramètre

Comme je travaille dans un grand nombre d’organisations, et généralement un certain nombre de personnes au sein de ces organisations, l’entrée du nom d’utilisateur est implémentée en tant que datalist – une liste déroulante que je peux également saisir pour réduire les options disponibles – voici ce qui se passe si je limite mes connexions:

, Passer à l&rsquo;interface graphique via l&rsquo;interface de ligne de commande Salesforce, partie 3<span class="wtr-time-wrap after-title"><span class="wtr-time-number">6</span> minutes de lecture</span>

au fur et à mesure que la page est construite, le paramètre est converti en entrée en générant l’entrée de la liste de données, puis en ajoutant les options de l’organisation scratch / hub selon les besoins:

const datalist=document.createElement('datalist');
datalist.id=param.name+'-list';

for (let org of orgs.nonScratchOrgs) {
    if ( (('hub'!=param.variant) || (org.isDevHub)) && ('scratch' != param.variant) ) {
        addOrgOption(datalist, org, false);
    }
}

if ('hub' != param.variant) {
    for (let org of orgs.scratchOrgs) {
         addOrgOption(datalist, org, true);
    }                    
}

formEles.contEle.appendChild(datalist);

Le code qui génère l’option extrait les informations appropriées des détails de l’organisation en cache pour générer une étiquette qui sera utile:

let label;
if (org.alias) {
    label=org.alias + ' (' + org.username + ')';
}
else {
    label=org.username;
}

if (scratch) {
    label += ' [SCRATCH]';
}

et cela semble être un endroit raisonnable pour terminer cet article – dans la partie suivante, je montrerai comment la commande est exécutée et les résultats traités.

Articles Similaires





Source de l’article traduit automatiquement en Français

Besoin d'aide ?
Voulez-vous utiliser Pardot à sa capacité maximale et avoir
+ DE LEADS QUALIFIÉS

Notre analyse de votre Pardot offerte dès aujourd'hui
Merci, vous pouvez compléter notre questionnaire
Nous allons revenir vers vous rapidement !

Fermer