
Andrew Hanna

Andrew Hanna

Versiebeheer over subscriber-orgs betekent dat je op elk moment weet welke versie van je managed package elke klant draait, en die klant ook kunt verplaatsen. Salesforce geeft ISV's het ruwe materiaal daarvoor: de License Management App, de Subscriber Support Console, push-upgrades. Wat je niet krijgt, is een actuele inventaris. Dus houden de meeste ISV's die met de hand bij, in een spreadsheet, en betalen ze ervoor in supporturen.
Het zijn drie losse taken die in een term zijn samengevouwen:
De meeste teams hebben een globaal antwoord op de eerste, geen antwoord op de tweede, en een handmatig proces voor de derde.
Omdat elk ticket begint met een vraag die het ticket zelf niet beantwoordt. Voordat iemand een bug reproduceert, moet eerst vaststaan op welke build de klant zit, of de fix al is uitgeleverd, en of het gedrag een defect is of een versieverschil. Doe dat honderd keer per maand en het is geen irritatie meer, maar formatie.
De spreiding is wat zich opstapelt. Twee live versies is een branch. Zes is een supportmatrix, en elke binnenkomende fix moet tegen alle zes worden afgewogen voordat je iets kunt beloven. Die spreiding terugbrengen is het meest renderende wat een ISV-supportafdeling kan doen, en het is precies waarom push-upgrades bestaan.
Vier routes, elk met een addertje:
InstalledSubscriberPackageVersion
deprecated is en wordt uitgefaseerd. Bouw er dus geen rapportagelaag op.
Merk op dat geen van deze routes een dashboard is. Dat is het gat, en daarom bestaat de spreadsheet.
Niet uit luiheid. De data zit in drie systemen die niet met elkaar praten: licenties in de partner business org, pakketversies in de Dev Hub, en de echte releasehistorie in Git en je pipeline. Die koppelen is een klein intern integratieproject dat het nooit wint van klantgericht werk. Dus blijft het een spreadsheet, werkt iemand die na elke release bij, en vertrouwt in het derde kwartaal niemand hem meer helemaal.
Let op wat er niet in die lijst staat: iets wat je klanten moeten leren. Dit is een intern rapportageprobleem vermomd als een packagingprobleem.
Push-upgrades brengen subscriber-orgs naar een nieuwe versie zonder dat de klant iets installeert, en jij kiest welke orgs, welke versie en wanneer. De randvoorwaarden waar je omheen moet plannen:
PushUpgradeCustomizationRepository-record in je 1GP packaging org of
2GP Dev Hub stelt een vervalvenster in, waarna Salesforce stopt met opnieuw
proberen.
Een push is een deployment in de productieomgeving van iemand anders. Behandel het ook zo: zelfde review, zelfde rollbackplan, zelfde change record.
De meeste Salesforce DevOps-platforms, Copado, Gearset, AutoRABIT, Flosum en de rest, zijn gebouwd rond org-naar-org en Git-gedreven levering, en dat doen ze goed. Pakketlevering voor ISV's is historisch de dunnere helft van de categorie. Dat is de helft waar we Serpent omheen hebben gebouwd: native 1GP-, 2GP- en managed-package-workflows, dependency-resolutie tussen pakketten, versiebeheer over subscriber-orgs en AppExchange-releaseworkflows, op elk plan inclusief het gratis plan.
Kan ik standaard alle pakketversies van subscribers op een plek zien?
Nee. De LMA in je partner business org bevat licentie- en pakketversierecords, maar daar een live inventaris van maken die gekoppeld is aan je releasehistorie is werk dat je zelf moet doen.
Zijn push-upgrades veilig voor major versies?
Ze dragen meer risico dan patches, omdat een major versie gedrag kan wijzigen waar een subscriber van afhankelijk is. Test eerst in je eigen orgs en in klantsandboxen, en rol daarna uit in kleine batches.
Hoeveel live versies moet een ISV ondersteunen?
Salesforce noemt geen aantal. Kies een ondergrens die je daadwerkelijk kunt bemannen, communiceer die naar klanten, en meet de spreiding daartegen af.
Dekt de LMA zowel 1GP als 2GP?
Ja. De Package- en Package Version-objecten bevatten details voor elk 1GP- of 2GP-pakket en elke versie die je op AppExchange hebt staan.
Kan ik InstalledSubscriberPackageVersion nog gebruiken?
Het bestaat vanaf API-versie 41.0, maar Salesforce heeft het als deprecated gemarkeerd en gaat het verwijderen. Maak er geen afhankelijkheid van.
Versiebeheer over subscriber-orgs is oninteressant, onzichtbaar voor klanten, en bepaalt stilletjes wat je supportafdeling kost. Het verdient een pipeline, geen spreadsheet.
Vrijblijvend.