Scripting Dependent Packages in Salesforce

Ben Butler
1 min readJul 29, 2021

--

Salesforce has provided a script to automate the installation of dependent packages. Their script was written using Shell Script and Python. Below I have performed the same functionality but using Batch and Node.

I used Batch because I was working on Windows where it is natively supported, and I used Node because it has native support for parsing JSON, the format the CLI displays data in.

echo off
setlocal EnableDelayedExpansion
SET PACKAGE=04tB0000000NmnHIAS
SET query = "SELECT Dependencies FROM SubscriberPackageVersion WHERE Id='%PACKAGE%'"SET "VAR="
FOR /F "tokens=* USEBACKQ" %%F IN (`sfdx force:data:soql:query -t -q "SELECT Dependencies FROM SubscriberPackageVersion WHERE Id='%PACKAGE%'" --json`) DO (
SET VAR=!VAR!%%F
)
FOR /F "tokens=* USEBACKQ" %%F IN (`node -e "if ((JSON.parse(process.argv.slice()[1]).result.records[0].Dependencies) === 'None') {console.log('nonen');} else { for(const kvp of (JSON.parse(process.argv.slice()[1]).result.records[0].Dependencies.ids)){console.log(kvp.subscriberPackageVersionId);}; }" "%VAR:"=\"%"`) DO (
if %%F== None (Echo "No dependent packages") else (call sfdx force:package:install --package "%%F" --publishwait 10 --wait 10)
)

--

--

Responses (2)