Extraia informações de dependência de pacotes desbloqueados

Para um pacote desbloqueado instalado, você agora pode executar uma simples consulta SOQL para extrair informações de dependência. Você também pode criar um script para automatizar a instalação de pacotes desbloqueados com dependências.

Onde: Essa alteração se aplica ao Lightning Experience, ao Salesforce Classic e a todas as versões do aplicativo Salesforce nas edições Group, Professional, Enterprise, Performance, Unlimited e Developer.

Por quê: O objeto de API do conjunto de ferramentas SubscriberPackageVersion agora fornece informações de dependência. Usando uma consulta SOQL em SubscriberPackageVersion, você pode identificar os pacotes dos quais seu pacote desbloqueado depende. Você pode obter as IDs (04t) e a ordem de instalação correta para esses pacotes.

Exemplo

O pacote B depende do pacote A. O pacote D depende dos pacotes B e C. Aqui está uma amostra de sfdx-project.json que você teria especificado ao criar uma versão do pacote. As dependências do pacote D são indicadas como pacotes A, B e C.
{
    "packageDirectories": [
        {
            "path": "pkg-a-workspace",
            "package": "pkgA",
            "versionName": "ver 4.9",
            "versionNumber": "4.9.0.NEXT",
            "default": true
        },
        {
            "path": "pkg-b-workspace",
            "package": "pkgB",
            "versionName": "ver 3.17",
            "versionNumber": "3.17.0.NEXT",
            "default": false,
            "dependencies": [
                {
                    "package": "pkgA",
                    "versionNumber": "3.3.0.LATEST"
                }
            ]
        },
        {
            "path": "pkg-c-workspace",
            "package": "pkgC",
            "versionName": "ver 2.1",
            "versionNumber": "2.1.0.NEXT",
            "default": false
        },
        {
            "path": "pkg-d-workspace",
            "package": "pkgD",
            "versionName": "ver 1.1",
            "versionNumber": "1.1.0.NEXT",
            "default": false,
            "dependencies": [
                {
                    "package": "pkgA",
                    "versionNumber": "3.3.0.LATEST"
                },
                {
                    "package": "pkgB",
                    "versionNumber": "3.12.0.LATEST"
                },
                {
                    "package": "pkgC",
                    "versionNumber": "2.1.0.LATEST"
                }
            ]
        }
    ],
    "namespace": "",
    "sfdcLoginUrl": "https://login.salesforce.com",
    "sourceApiVersion": "44.0",
    "packageAliases": {
        "pkgA": "0HoB00000008Oq6KAE",
        "pkgB": "0HoB00000008OqBKAU",
        "pkgC": "0HoB00000008OqGKAU",
        "pkgD": "0HoB00000008OqGKAQ"
    }
}
Antes de instalar pkgD (com ID=04txx000000082hAAA), use esta consulta SOQL para determinar suas dependências.
sfdx force:data:soql:query -u {USERNAME} -t 
   -q "SELECT Dependencies FROM SubscriberPackageVersion 
       WHERE Id='04txx000000082hAAA'" --json
Você vê essa saída quando executa a consulta, com as IDs (04t) para pkgA, pkgB e pkgC nessa ordem.
"Dependencies":{"Ids":[
   {"subscriberPackageVersionId":"04txx000000080vAAA"},
   {"subscriberPackageVersionId":"04txx000000082XAAQ"},
   {"subscriberPackageVersionId":"04txx0000000AiGAAU"}]}