Skip to main content
Bring your team and maximize your impact at Dreamforce. Register three or more to unlock $999 passes.

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
Hinweis

Hinweis

Lernen Sie auf Deutsch? Beginnen Sie die Aufgabe in einem Trailhead Playground in der Sprache Deutsch und verwenden Sie für die Navigation die in Klammern angegebenen Übersetzungen. Kopieren und fügen Sie nur die Angaben in Englisch ein, da zur Überprüfung der Aufgabe Daten in Englisch benötigt werden. Wenn Sie die Aufgabe in Ihrer deutschen Organisation nicht bestehen, empfehlen wir Ihnen folgende Vorgehensweise: (1) Stellen Sie das Gebietsschema auf USA um, (2) legen Sie Englisch als Sprache fest (Anweisungen dazu finden Sie hier) und (3) klicken Sie erneut auf die Schaltfläche "Check Challenge" (Aufgabe überprüfen).

Weitere Details dazu, wie Sie die übersetzte Trailhead-Umgebung optimal nutzen können, finden Sie unter dem Badge "Trailhead in Ihrer Sprache".

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.

Note

Hinweis: Wenn Sie die in diesem Abschnitt beschriebenen Schritte nachvollziehen möchten, müssen Sie beim Starten der praktischen Aufgabe einen neuen Trailhead Playground erstellen.

  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".

  2. Wählen Sie dann Create Playground (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.
  3. Nachdem Sie einen neuen Trailhead Playground erstellt haben, klicken Sie auf Launch (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.
  4. 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.
  5. Erstellen Sie einen GitHub-Account, wenn Sie nicht bereits einen haben.
  6. 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. 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/trailheadapps/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. Your Trailhead Playground is also your Dev Hub org. To create a package, we need to first authorize to your Dev Hub org, and log in to it.
    sf org login web --set-default-dev-hub --alias DevHub
  2. In the command window, let’s double check that the Dev Hub org is connected.
    sf org listThe output of this command lists any org that you’re connected to, including Dev Hub, Trailhead Playgrounds, and scratch orgs. The (D) indicates your default Dev Hub org. 
    === 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 und notieren Sie sich die sourceApiVersion-Nummer.
  5. DreamHouse LWC is an open-source project with many contributors. To ensure that you can successfully complete the challenge, replace the contents of the sfdx-project.json file with the following code.
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0"
    }
  6. Stellen Sie sicher, dass die sourceApiVersion-Nummer im Codeausschnitt mit der Versionsnummer aus der Originaldaten übereinstimmt, die Sie sich notiert haben. Sollte dies nicht der Fall sein, ändern Sie die sourceApiVersion-Nummer.

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.

Note

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. Create an unlocked package without a namespace, and supply the alias or username for your Dev Hub org if it’s not already set as the default:
    sf package create --name dreamhouse --description "My Package" --package-type Unlocked --path force-app --no-namespace --target-dev-hub 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.
  1. Open sfdx-project.json. Boom! In packageDirectories, you can see the package name that you defined, with placeholders for the version name and version number. The command also creates a packageAliases section, which maps the package name (alias) to its corresponding package ID (0Ho).
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "ver 0.1",
             "versionNumber": "0.1.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
Note

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 sf 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.

sf org create scratch --definition-file config/project-scratch-def.json --duration-days 30 --alias MyScratchOrg --target-dev-hub 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. Change the versionName to Version 1.0, and the versionNumber to 1.0.0.NEXT. The force-app directory is the default (and only) package directory, so any source included in it becomes part of the package. Once updated, the sfdx-project.json file looks like this:
    {
       "packageDirectories": [
          {
             "path": "force-app",
             "default": true,
             "package": "dreamhouse",
             "versionName": "Version 1.0",
             "versionNumber": "1.0.0.NEXT"
          }
       ],
       "namespace": "",
       "sfdcLoginUrl": "https://login.salesforce.com",
       "sourceApiVersion": "61.0",
       "packageAliases": {
          "dreamhouse": "0Hoxxx"
       }
    }
  3. Speichern Sie die Datei sfdx-project.json.
  4. In the dreamhouse-lwc directory, create the package version, which associates the metadata with the package.
    The Apex code in unlocked packages must meet a minimum 75% code coverage requirement, before the package can be installed in a production org. We didn’t calculate code coverage in this example, because we know this sample Dreamhouse LWC repo doesn’t have enough Apex test coverage.
    sf package version create --package dreamhouse --installation-key test1234 --wait 10 --target-dev-hub 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.
  1. It’s normal for the package version creation process to take several minutes. You see status messages that tell you what’s going on. When the package version creation is complete, you see this message.
    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 "sf package install" command.
  2. Notice that the packageAliases section in sfdx-project.json has a new entry.
    "packageAliases": {
       "dreamhouse": "0Hoxxx",
       "dreamhouse@1.0.0-1": "04txxx"
    }
  3. Use the package version alias to install the package version in the scratch org that you created earlier.
    sf package install --wait 10 --publish-wait 10 --package dreamhouse@1.0.0-1 --installation-key test1234 --no-prompt --target-org MyScratchOrg 
    It can take several minutes for a newly created package version to be available in the scratch org. The installation begins once the package version is available. When the package install is complete, you see this message. Successfully installed package [04t3XXX]
  4. After the package is installed, open the scratch org to view the package.
    sf org open --target-org MyScratchOrg
  5. 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, entwickelt sich weiter und weist eventuell 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.

sf package version promote --package dreamhouse@1.0.0-1 --target-dev-hub 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. To install the package version in to your Trailhead playground, you must first add it to your list of authorized orgs.
    you must first add it to your list of authorized orgs.
    sf org login web --alias MyTP
    We suggest creating an alias for the Trailhead Playground, in this example, MyTP. Once you log in to an org, the CLI remembers your credentials. All you need to do is remember the org’s alias when issuing subsequent commands. If you don’t know the username and password for your Trailhead Playground, see Getting Your Username and Resetting Your Password.
  2. Install the package version in the Trailhead playground.
    sf package install --wait 10 --publish-wait 10 --package dreamhouse@1.0.0-1 --installation-key test1234 --no-prompt --target-org MyTP
  3. Open your Trailhead playground.
    sf org open --target-org 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.

Ressourcen

Teilen Sie Ihr Trailhead-Feedback über die Salesforce-Hilfe.

Wir würden uns sehr freuen, von Ihren Erfahrungen mit Trailhead zu hören: Sie können jetzt jederzeit über die Salesforce-Hilfe auf das neue Feedback-Formular zugreifen.

Weitere Infos Weiter zu "Feedback teilen"