Erstellen Ihres ersten Pakets

Lernziele

Nachdem Sie diese Lektion abgeschlossen haben, sind Sie in der Lage, die folgenden Aufgaben auszuführen:
  • Kennenlernen der Befehlszeilenbefehle für die Paketerstellung
  • Beschreiben der grundlegenden Anwendungsfälle für die Paketerstellung
  • Packen der Beispielanwendung DreamHouse LWC und Installieren der Anwendung in einem Trailhead Playground

Darum lieben wir die Paketentwicklung

Unserer Meinung nach ist die Paketentwicklung eine der spannendsten Funktionen für Salesforce Platform-Entwickler. Sie steht bekannten, revolutionären Innovationen, wie z. B. geschnittenem Brot, Video-Streaming-Diensten und dem Handy in nichts nach. Falls bei Ihnen jedoch noch mehr Überzeugungsarbeit notwendig ist, fassen wir hier nochmal die wichtigsten Vorteile zusammen, die bisher behandelt wurden. Paketentwicklung:

  • Folgt bewährten Vorgehensweisen in Bezug auf den Lebenszyklus der Softwareentwicklung. Ist kompatibel mit den Funktionen von Salesforce DX: Projekte, CLI-Befehle und Testorganisationen wurden speziell für die Paketentwicklung konzipiert.
  • Kapselt alle Änderungen, die Sie zwischen den Phasen des Lebenszyklus nachverfolgen, in einem Artefakt mit Versionsverwaltung.
  • Erleichtert Ihnen, Forderungen nach neuen Funktionen umzusetzen. Sie können Komponenten in Ihrem Paket einfach hinzufügen, aktualisieren oder löschen.
  • Bietet einen verbesserten Protokollverlauf, sodass Sie die an Ihrer Produktionsorganisation vorgenommenen Änderungen besser nachverfolgen und nachvollziehen können.
  • Organisiert Quellen. Es lässt sich viel leichter feststellen, welche Komponenten zu welchen Anwendungen und Funktionen gehören.
  • Fördert die iterative und modulare Entwicklung.
  • Unterstützt Abhängigkeiten zwischen freigeschalteten Paketen. Ein einzelnes nicht gesperrtes Paket kann von mehreren nicht gesperrten Paketen sowie verwalteten Paketen der ersten und zweiten Generation abhängig sein.
  • Unterstützt Continuous Integration und Continuous Delivery, da die CLI-Befehle für die Paketerstellung es ermöglichen, jeden Schritt in der Bereitstellungs-Pipeline vollständig zu automatisieren.

Einfache Anwendungsfälle der Paketentwicklung

Freigeschaltete Pakete eignen sich hervorragend für interne Geschäftsanwendungen. Nehmen wir Folgendes an:

  • Ihre Finanzabteilung möchte, dass Ihr IT-Team eine Anwendung erstellt, mit der Mitarbeiter ihre Spesen einreichen können. Ihr Team beschließt, für die Entwicklung und Verteilung der Anwendung freigeschaltete Pakete zu verwenden.
  • Ihre Personalabteilung möchte, dass Ihr IT-Team eine Anwendung erstellt, mit der Mitarbeiter potenzielle neue Mitarbeiter empfehlen können. Mitarbeiter sollen die Empfehlungsanwendung nutzen, um Stellenausschreibungen bekannt zu machen, Freunde zu empfehlen und Empfehlungsboni zu erhalten. Ihr Team beschließt, für die Entwicklung und Verteilung der Anwendung freigeschaltete Pakete zu verwenden.

Für jeden dieser Fälle beginnen Sie ein komplett neues Projekt. Alle Ihre Quellen sind in einem Salesforce DX-Projekt im Quellformat enthalten (und werden in Ihrem Versionskontrollsystem committet). Wenn eine dieser Anwendungen zur Verteilung bereit steht, erstellen Sie ein freigeschaltetes Paket, das Sie in einer Testorganisation oder Sandbox testen und dann in der Produktionsorganisation installieren. Falls das Team irgendwann eine neue Funktion benötigt, können Sie diese hinzufügen und eine neue Paketversion erstellen. Ganz einfach. einfach.

Da Sie jetzt die Vorteile der Paketentwicklung kennen, zeigen wir Ihnen als Nächstes, wie Sie ein nicht gesperrtes Paket erstellen.

Konfigurieren Sie Ihre Umgebung

Ehe es ans Eingemachte geht, muss ein neuer Trailhead Playground eingerichtet werden, in dem der Dev Hub und das Packen aktiviert sind.

  1. Um einen neuen Trailhead Playground zu erstellen, wechseln Sie zur praktischen Aufgabe am Ende dieser Lerneinheit. Klicken Sie auf die Playground-Informationen links neben der Schaltfläche "Starten".
    Wählen Sie dann Playground erstellen aus.

    Hinweis: Es ist zwar möglich, einen vorhandenen Trailhead Playground wiederzuverwenden, aber wenn Sie mit einem neuen Playground beginnen, können Sie sicherstellen, dass Sie mit einer einwandfreien Umgebung arbeiten.
  2. Nachdem Sie einen neuen Trailhead Playground erstellt haben, klicken Sie auf Starten, um den Playground zu öffnen. Stellen Sie dann sicher, dass Sie sowohl den Benutzernamen als auch das Kennwort des Playgrounds kennen. Sie benötigen diese Informationen in einem der nächsten Schritte.
    Siehe Abrufen Ihres Benutzernamens und Zurücksetzen Ihres Kennworts.
  3. Geben Sie in Ihrem Trailhead Playground unter "Setup" im Feld "Schnellsuche" den Text "Dev Hub" ein und wählen Sie Dev Hub aus. Klicken Sie auf Dev Hub aktivieren und dann auf Nicht gesperrte Pakete und verwaltete Pakete der zweiten Generation aktivieren.
  4. Erstellen Sie einen GitHub-Account, wenn Sie nicht bereits einen haben.
  5. Installieren Sie Salesforce CLI auf Ihrem Computer.

Abrufen des DreamHouse-Quellcodes mit Git

Nehmen wir zu Vorführungszwecken an, dass Sie die Anwendung DreamHouse LWC für eines Ihrer Unternehmensteams erstellen und bereitstellen.

Falls Sie derzeit Salesforce DX-Funktionen und -Tools verwenden, sind Sie eventuell bereits mit dem Beispielrepository DreamHouse LWC vertraut. DreamHouse LWC ist eine eigenständige Anwendung, die viele in Salesforce Platform verfügbare Funktionen bietet. Sie verwendet u. a. Lightning-Webkomponenten und Apex-Prozessgenerator. In diese Anwendung können Sie nach Immobilien suchen und Immobilienmakler online kontaktieren.

Damit Sie sich ganz auf die Paketerstellung konzentrieren können, werden wir den Quellcode von DreamHouse LWC und die bereits erstellten Salesforce DX-Projektdateien herunterladen. In diesem Beispiel wird nur ein Paket verwendet, ein Salesforce DX-Projekt kann jedoch mehrere Pakete umfassen. Sie können verschiedene Pakete auf der Basis der Verzeichnisstruktur isolieren, können jedoch Komponenten gemeinsam nutzen, wo dies sinnvoll ist.

Wenn Sie ein Paket für diese Anwendung erstellen, können Sie es im Verlauf des Entwicklungslebenszyklus ganz leicht in Testorganisationen, UAT-Sandboxes und Produktionsorganisationen installieren.

Wir behandeln hier die einzelnen Schritte des ganzen Prozesses und verwenden dabei die Tools, die speziell für die Paketentwicklung konzipiert wurden.

Holen wir uns zunächst den Quellcode für die Anwendung "DreamHouse Lightning Web Components (LWC)".

Wechseln Sie in einem Befehlsfenster zu dem Verzeichnis, in dem Sie den Quellcode ablegen möchten, und führen Sie dann diesen Befehl aus.

git clone https://github.com/dreamhouseapp/dreamhouse-lwc.git

Der Befehl "git clone" erstellt unter Verwendung der Salesforce-DX-Projektstruktur den Ordner "dreamhouse-lwc" und enthält eine DX-Projektdatei und Definitionsdatei für Testorganisationen. Da das Repository "DreamHouse LWC" laufend aktualisiert wird, sollten Sie sich keine Gedanken machen, wenn Ihre Version des Projekts etwas anders aussieht.

Zeigt die vollständige Verzeichnisstruktur 'dreamhouse-sfdx', wenn Sie beispielsweise Finder oder Windows Explorer für die Anzeige verwenden

Konfigurieren Ihres Pakets

  1. Ihr Trailhead Playground ist auch Ihre Dev Hub-Organisation. Um ein Paket zu erstellen, müssen wir uns zunächst bei Ihrer Dev Hub-Organisation autorisieren und dort anmelden.
    sfdx force:auth:web:login -d -a DevHub
  2. Im Befehlsfenster stellen wir zunächst sicher, dass die Dev Hub-Organisation verbunden ist.
    sfdx force:org:list
    In der Ausgabe dieses Befehls werden alle Organisationen aufgelistet, mit denen Sie verbunden sind, einschließlich Dev Hub-, Trailhead Playground- und Testorganisationen. Das (D) kennzeichnet Ihre Dev Hub-Standardorganisation. 
    === Orgs
         ALIAS       USERNAME                             ORG ID              CONNECTED STATUS
    ───  ──────────  ───────────────────────────────      ──────────────────  ────────────────
    (D)  DevHub      myDevHub@example.com                 00DB0000000Ige5MAC  Connected
         MyTP        myName@mindful-raccoon-8184t4.com    00D6A000000fH8CUAU  Connected
         TestingOrg  name@example.com                     00D4x000006sFonEAE  Connected
    ALIAS            USERNAME                             ORG ID              EXPIRATION  DATE
    ────────         ───────────────────                  ──────────────────  ────────────────
    Scratch1         test@example.com                     00DZ000000N8ItoMAF  2021-02-24
  3. Wechseln Sie auf Ihrem Computer zum Verzeichnis "dreamhouse-lwc".
  4. Öffnen Sie "sfdx-project.json" in Ihrem bevorzugten Texteditor. DreamHouse LWC ist ein Open-Source-Projekt mit vielen Mitwirkenden. Um sicherzustellen, dass Sie die Aufgabe erfolgreich absolvieren können, ersetzen Sie den Inhalt Ihrer Projektdatei durch den folgenden Code.
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "50.0"
    }
  5. Bei Bedarf müssen Sie sourceApiVersion entsprechend der aktuell Version der Salesforce CLI ändern. Vergessen Sie nicht zu speichern!

Warum verwenden wir bei diesem Beispiel keinen Namespace?

Ein Paket-Namespace ist für freigeschaltete Pakete zwar nicht zwingend notwendig, hilft jedoch, die Paketkomponenten zu organisieren. Da für Namespaces jedoch einige zusätzliche Einrichtungsschritte und Vorüberlegungen notwendig sind, verwenden wir sie in dieser Einheit nicht.

Hinweis

Hinweis

Wenn Sie Metadaten aus Ihrer "glückbringenden Suppe" in ein freigeschaltetes Paket migrieren, erstellen Sie Ihre freigeschalteten Pakete ohne Namespace. Dies hat den Vorteil, dass sich beim Übergang der Metadaten aus dem nicht gepackten Zustand in ein freigeschaltetes Paket der API-Name der Metadatenelemente nicht ändert.

Erstellen des Pakets

Beim Kopieren der Anwendung DreamHouse LWC aus GitHub haben Sie alle Quelldateien in Ihr Projektverzeichnis geladen. Sie können jetzt ohne viel Tamtam das Basispaket erstellen.

Dieser Abschnitt enthält den Workflow für die Erstellung eines Pakets unter Verwendung des Beispiel-Repositorys "DreamHouse LWC".

  1. Wechseln Sie über ein Terminal oder eine Eingabeaufforderung zum Verzeichnis "dreamhouse-lwc".
  2. Erstellen Sie ein freigeschaltetes Paket ohne Namespace und geben Sie den Alias oder Benutzernamen für Ihre Dev Hub-Organisation an, falls dieser nicht bereits als Standard festgelegt ist:
    sfdx force:package:create --name dreamhouse --description "My Package" --packagetype Unlocked --path force-app --nonamespace --targetdevhubusername DevHub
    • --name ist der Paketname. Dieser Name ist ein Alias, den Sie bei der Ausführung nachfolgender Paketerstellungsbefehle verwenden können.
    • --path ist das Verzeichnis, das den Inhalt des Pakets enthält.
    • --packagetype gibt an, welche Art von Paket Sie erstellen; in diesem Fall ist es ein freigeschaltetes Paket.
  3. Öffnen Sie sfdx-project.json. Tusch! In packageDirectories sehen Sie den von Ihnen definierten Paketnamen mit Platzhaltern für Versionsname und -nummer. Der Befehl erstellt zudem den Abschnitt packageAliases, der den Paketnamen (Alias) seiner zugehörigen Paket-ID (0Ho) zuordnet.
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "ver 0.1",
             "versionNumber": "0.1.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "50.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
     
Hinweis

Hinweis


Falls Sie den Paketalias oder die Paket-ID vergessen, können Sie alle mit Ihrer Dev Hub-Organisation verknüpften Pakete auflisten, indem Sie den Befehl sfdx force:package:list ausführen.

Erstellen einer Testorganisation zum Testen Ihrer Paketversion

Wir erstellen jetzt eine Testorganisation mit dem Alias "MyScratchOrg", in der das freigeschaltete Paket installiert werden soll. Das Testen in einer Testorganisation ist eine praktische Methode, die Einheitentestphase des Lebenszyklus der Paketentwicklung durchzuführen.

sfdx force:org:create --definitionfile config/project-scratch-def.json --durationdays 30 --setalias MyScratchOrg -v DevHub

Dieser Befehl verwendet die Standarddefinition für Testorganisationen, die eine Developer Edition-Testorganisation erstellt, deren Edition Ihrem Trailhead Playground entspricht. Wie Sie sehen, ist die Dauer auf 30 Tage festgelegt, was Ihnen ausreichend Zeit für den Abschluss Ihrer Arbeit innerhalb eines Entwicklungssprints (bzw. für den Abschluss dieses Trailhead-Moduls) gibt.

Erstellen und Installieren der Paketversion in Ihrer Testorganisation

Wenn Sie bereit sind, das Paket zu veröffentlichen, erstellen Sie eine Momentaufnahme davon, also die sogenannte Paketversion. Die Installation der Paketversion ähnelt der Verteilung von Metadaten. Denken Sie daran: Nach der Erstellung fungiert die Paketversion als unveränderliches Artefakt, das eine bestimmte Menge an Metadaten enthält.

  1. Öffnen Sie die Datei sfdx-project.json in Ihrem bevorzugten Texteditor, um die Paketversionsoptionen zu ändern.
  2. Ändern Sie versionName in Version 1.0 und versionNumber in 1.0.0.NEXT. Das Verzeichnis "force-app" ist das standardmäßige (und einzige) Paketverzeichnis, was heißt, dass jede Quelle, die darin enthalten ist, Teil des Pakets wird. Nach der Änderung sieht die Datei sfdx-project.json so aus:
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "Version 1.0",
             "versionNumber": "1.0.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "50.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
  3. Speichern Sie die Datei sfdx-project.json.
  4. Erstellen Sie im Verzeichnis "dreamhouse-lwc" die Paketversion, die die Metadaten mit dem Paket verknüpft.
    Der Apex-Code in nicht gesperrten Paketen muss eine Mindestcodeabdeckung von 75 % erfüllen, ehe das Paket in einer Produktionsorganisation installiert werden kann. Wir haben in diesem Beispiel die Codeabdeckung nicht berechnet, weil wir wissen, dass dieses Beispiel-Repository "Dreamhouse LWC" nicht genügend Apex-Testabdeckung besitzt.
    sfdx force:package:version:create -p dreamhouse -d force-app -k test1234 --wait 10 -v DevHub
    • -p ist der Paketalias, der der Paket-ID zugeordnet ist.
    • -d ist das Verzeichnis, das den Inhalt des Pakets enthält.
    • -k ist der Installationsschlüssel, der Ihr Paket davor schützt, von Unbefugten installiert zu werden.
  5. Es ist durchaus normal, dass die Erstellung der Paketversion mehrere Minuten dauert. Sie sehen Statusmeldungen, die Sie darüber informieren, was vor sich geht. Wenn die Erstellung der Paketversion abgeschlossen ist, sehen Sie diese Meldung.
    Successfully created the package version [08cxxx]. Subscriber Package Version Id: 04txxx.
    Package Installation URL: https://login.salesforce.com/packaging/installPackage.apexp?p0=04txxx
    As an alternative, you can use the "sfdx force:package:install" command.
  6. Bitte beachten Sie, dass der Abschnitt packageAliases in sfdx-project.json einen neuen Eintrag enthält.
    "packageAliases": {
       "dreamhouse": "0Hoxxx",
       "dreamhouse@1.0.0-1": "04txxx"
    }
  7. Verwenden Sie den Paketversionsalias, um die Paketversion in der vorhin erstellten Testorganisation zu installieren.
    sfdx force:package:install --wait 10 --publishwait 10 --package dreamhouse@1.0.0-1 -k test1234 -r -u MyScratchOrg 
    Es kann mehrere Minuten dauern, bis eine neu erstellte Paketversion in der Testorganisation zur Verfügung steht. Die Installation beginnt, sobald die Paketversion verfügbar ist. Wenn die Installation des Pakets abgeschlossen ist, wird diese Meldung angezeigt. Paket [04t3XXX] erfolgreich installiert
  8. Öffnen Sie nach der Installation des Pakets die Testorganisation, um sich das Paket anzusehen.
    sfdx force:org:open -u MyScratchOrg
  9. Geben Sie in Setup im Feld "Schnellsuche" den Text "Installierte Pakete" ein und wählen Sie dann Installierte Pakete aus. Zeigt das Dialogfeld 'Installierte Pakete' mit 'dreamhouse' unter 'Installierte Pakete'Da es sich um ein freigeschaltetes Paket handelt, können Sie Änderungen direkt in der Testorganisation vornehmen, anschließend die aktualisierten Metadaten herunterladen und dann eine neue Paketversion erstellen. Doch vorerst bietet Ihnen die Anwendung DreamHouse LWC alles Nötige, sodass wir fortfahren und das Paket veröffentlichen können.

Veröffentlichen der Paketversion

Ein Feature, das wir noch nicht besprochen haben, ist der Paketstatus. Wenn Sie Pakete zu Anfang erstellen, haben Pakete Beta-Status. Beta-Pakete können nicht in Produktionsorganisationen installiert werden. Dies ist ein Schutzmechanismus, der sicherstellen soll, dass die zu veröffentlichende Paketversion auch produktionsreif ist. Wenn Sie sicher sind, dass eine Version auf die Welt losgelassen werden kann, können Sie die zu veröffentlichende Paketversion hochstufen.

Das Beispiel-Repository "Dreamhouse LWC", das wir in dieser Einheit verwenden, weist nicht genügend Apex-Tests auf, um die Anforderung einer Codeabdeckung von 75 % zu erfüllen. Wir überspringen also die Heraufstufung und verwenden weiterhin die von Ihnen erstellte Beta-Paketversion.

So sieht der Befehl zur Heraufstufung der Paketversion aus. Wenn Sie diesen Befehl jetzt ausprobieren, erhalten Sie jedoch eine Fehlermeldung.

sfdx force:package:version:promote -p dreamhouse@1.0.0-1 -v DevHub

Installieren der Paketversion in einer Organisation

Schließlich und endlich installieren Sie die Paketversion in Ihrer Organisation. Nicht vergessen: Sie können Beta-Paketversionen in Testversionen, Sandbox-Organisationen und Trailhead Playgrounds (DE-Organisationen) installieren. Eine veröffentlichte Version kann dagegen in jeder Organisation installiert werden. Normalerweise installieren Sie in dieser Phase die Paketversion in einer Sandbox. Für diese Übung werden wir das Paket jedoch in Ihrem Trailhead Playground installieren.

  1. Um die Paketversion in Ihrem Trailhead Playground zu installieren, müssen Sie sie zunächst Ihrer Liste autorisierter Organisationen hinzufügen.

    sfdx auth:web:login -a MyTP
    Wir schlagen vor, Sie erstellen einen Alias für den Trailhead Playground wie "MyTP" in diesem Beispiel. Wenn Sie sich bei einer Organisation angemeldet haben, speichert die CLI Ihre Anmeldedaten. Sie müssen dann nur den Alias der Organisation kenn, wenn Sie nachfolgend Befehl absetzen. Falls Sie den Benutzernamen und das Kennwort für Ihren Trailhead Playground nicht kennen, lesen Sie bitte Abrufen Ihres Benutzernamens und Zurücksetzen Ihres Kennworts.
  2. Installieren Sie die Paketversion im Trailhead Playground.
    sfdx force:package:install --wait 10 --publishwait 10 --package dreamhouse@1.0.0-1 -k test1234 -r -u MyTP
  3. Öffnen Sie Ihren Trailhead Playground.
    sfdx force:org:open -u MyTP
  4. Geben Sie in Ihrem Trailhead Playground unter Setup im Feld "Schnellsuche" den Text "Installierte Pakete" ein und wählen Sie dann Installierte Pakete aus. Sie erhalten außerdem eine E-Mail, die bestätigt, dass Sie das freigeschaltete Paket erfolgreich installiert haben.
  5. Klicken Sie auf dreamhouse und dann auf Komponenten anzeigen. Wenn Sie bei 'dreamhouse' auf 'Komponenten anzeigen' klicken, wird eine Liste mit sämtlichen Paketkomponenten angezeigt.
  6. Suchen und wählen Sie im App Launcher die Anwendung DreamHouse aus und probieren Sie einige ihrer Funktionen aus.
Lernen Sie weiter kostenlos!
Registrieren Sie sich für einen Account, um fortzufahren.
Was ist für Sie drin?
  • Holen Sie sich personalisierte Empfehlungen für Ihre Karriereplanung
  • Erproben Sie Ihre Fähigkeiten mithilfe praktischer Aufgaben und Quizze
  • Verfolgen Sie Ihre Fortschritte nach und teilen Sie sie mit Arbeitgebern
  • Nutzen Sie Mentoren und Karrierechancen