
Andrew Hanna

Andrew Hanna

Versionsverwaltung ueber Subscriber-Orgs bedeutet, jederzeit zu wissen, welche Version deines Managed Package jeder Kunde ausfuehrt, und ihn davon wegbewegen zu koennen. Salesforce liefert ISVs das Rohmaterial dafuer: die License Management App, die Subscriber Support Console, Push Upgrades. Was nicht mitgeliefert wird, ist ein laufendes Inventar. Also fuehren die meisten ISVs eines von Hand, in einer Tabelle, und bezahlen dafuer in Supportstunden.
Es sind drei getrennte Aufgaben, die in einem Begriff zusammenfallen:
Die meisten Teams haben eine grobe Antwort auf die erste, keine Antwort auf die zweite und einen manuellen Prozess fuer die dritte.
Weil jedes Ticket mit einer Frage beginnt, die das Ticket selbst nicht beantwortet. Bevor jemand einen Bug reproduziert, muss geklaert werden, auf welchem Build der Kunde sitzt, ob der Fix bereits ausgeliefert ist und ob das Verhalten ein Defekt oder eine Versionsluecke ist. Mach das hundertmal im Monat, und es ist keine Stoerung mehr, sondern eine Stelle.
Die Streuung ist das, was sich aufsummiert. Zwei produktive Versionen sind ein Branch. Sechs sind eine Supportmatrix, und jeder eingehende Fix muss gegen alle sechs bewertet werden, bevor du irgendetwas zusagen kannst. Diese Streuung zu verkleinern ist der wirksamste Hebel einer ISV-Supportfunktion, und genau dafuer gibt es Push Upgrades.
Vier Wege, jeder mit einem Haken:
InstalledSubscriberPackageVersion ist
veraltet und zur Entfernung vorgesehen. Baue darauf keine Reporting-Schicht.
Keiner dieser Wege ist ein Dashboard. Das ist die Luecke, und deshalb existiert die Tabelle.
Nicht aus Bequemlichkeit. Die Daten liegen in drei Systemen, die nicht miteinander reden: Lizenzen in der Partner Business Org, Paketversionen im Dev Hub und die tatsaechliche Release-Historie in Git und deiner Pipeline. Sie zu verbinden ist ein kleines internes Integrationsprojekt, das gegen kundennahe Arbeit nie einen Sprint gewinnt. Also bleibt es eine Tabelle, jemand pflegt sie nach jedem Release, und im dritten Quartal traut ihr niemand mehr ganz.
Beachte, was nicht auf der Liste steht: irgendetwas, das deine Kunden lernen muessen. Das ist ein internes Reporting-Problem, verkleidet als Packaging-Problem.
Push Upgrades bringen Subscriber-Orgs auf eine neue Version, ohne dass der Kunde etwas installiert, und du waehlst welche Orgs, welche Version und wann. Die Randbedingungen, um die herum geplant werden muss:
PushUpgradeCustomizationRepository-Datensatz in deiner 1GP Packaging
Org oder deinem 2GP Dev Hub setzt ein Ablauffenster, nach dem Salesforce keine
weiteren Versuche unternimmt.
Ein Push ist ein Deployment in die Produktivorg eines anderen. Behandle ihn so: gleiche Pruefung, gleicher Rollback-Plan, gleicher Change Record.
Die meisten Salesforce-DevOps-Plattformen, Copado, Gearset, AutoRABIT, Flosum und die uebrigen, sind um Org-zu-Org- und Git-gestuetzte Auslieferung gebaut, und das koennen sie gut. Paketauslieferung fuer ISVs war historisch die duennere Haelfte der Kategorie. Um diese Haelfte haben wir Serpent gebaut: native 1GP-, 2GP- und Managed-Package-Workflows, paketuebergreifende Abhaengigkeitsaufloesung, Versionsverwaltung ueber Subscriber-Orgs und AppExchange-Release-Workflows, in jedem Plan einschliesslich des kostenlosen.
Sehe ich standardmaessig die Paketversion jedes Subscribers an einem Ort?
Nein. Die LMA in deiner Partner Business Org enthaelt Lizenz- und Paketversionsdatensaetze, aber daraus ein lebendes, mit der Release-Historie verknuepftes Inventar zu machen, ist Arbeit, die bei dir liegt.
Sind Push Upgrades bei Major-Versionen sicher?
Sie tragen mehr Risiko als Patches, weil eine Major-Version Verhalten aendern kann, auf das ein Subscriber angewiesen ist. Teste zuerst in eigenen Orgs und in Kundensandboxen und rolle dann in kleinen Stapeln aus.
Wie viele produktive Versionen sollte ein ISV unterstuetzen?
Salesforce nennt keine Zahl. Waehle eine Supportuntergrenze, die du personell wirklich tragen kannst, kommuniziere sie an Kunden und miss die Streuung daran.
Deckt die LMA sowohl 1GP als auch 2GP ab?
Ja. Ihre Package- und Package-Version-Objekte tragen Details zu jedem 1GP- oder 2GP-Paket und jeder Version, die du auf der AppExchange gelistet hast.
Kann ich InstalledSubscriberPackageVersion noch abfragen?
Es existiert ab API-Version 41.0, aber Salesforce hat es als veraltet markiert und zur Entfernung vorgesehen. Mache es nicht zur Abhaengigkeit.
Versionsverwaltung ueber Subscriber-Orgs ist unspektakulaer, fuer Kunden unsichtbar, und entscheidet still darueber, was dein Support kostet. Sie verdient eine Pipeline, keine Tabelle.
Unverbindlich.