Ao utilizar Salesforce, é normal surgir a necessidade de fazer um retrieve de certos metadados da org e fazer seu commit em uma branch especifica. Para isso, costuma-se utilizar ‘Salesforce CLI’ de forma a criar um package com as requisições necessárias e puxa-las da organização.
Para evitar buscar todos os diferentes tipos de metadados, é possível utilizar um comando que cria um package completo, trazendo cada objeto, customização e nome API da org. Costuma ser um arquivo próximo a 50 mil linhas.
A partir de tal arquivo, é possível separar o nome de todos os metadados e criar um novo package, utilizando ‘*’ para puxar tudo em vez de listar cada componente.
Segue o comando abaixo:
sf project generate manifest –output-dir ./manifest –from-org
Package Retornado pelo comando
(Com os componentes de cada metadado do arquivo gerado substituídos por *)
É possível utilizar o package abaixo para filtrar com seus metadados de interesse, mas recomenda-se criar um próprio com as especificações da sua org.
<?xml version=”1.0″ encoding=”UTF-8″?>
<Package xmlns=”http://soap.sforce.com/2006/04/metadata”>
<types><members>*</members><name>ActionPlanTemplate</name></types>
<types><members>*</members><name>AnimationRule</name></types>
<types><members>*</members><name>ApexClass</name></types>
<types><members>*</members><name>ApexComponent</name></types>
<types><members>*</members><name>ApexEmailNotifications</name></types>
<types><members>*</members><name>ApexPage</name></types>
<types><members>*</members><name>ApexTrigger</name></types>
<types><members>*</members><name>AppMenu</name></types>
<types><members>*</members><name>ApplicationSubtypeDefinition</name></types>
<types><members>*</members><name>ApprovalProcess</name></types>
<types><members>*</members><name>AssignmentRules</name></types>
<types><members>*</members><name>Audience</name></types>
<types><members>*</members><name>AuraDefinitionBundle</name></types>
<types><members>*</members><name>AuthProvider</name></types>
<types><members>*</members><name>AutoResponseRules</name></types>
<types><members>*</members><name>BrandingSet</name></types>
<types><members>*</members><name>BusinessProcess</name></types>
<types><members>*</members><name>BusinessProcessTypeDefinition</name></types>
<types><members>*</members><name>Certificate</name></types>
<types><members>*</members><name>CleanDataService</name></types>
<types><members>*</members><name>Community</name></types>
<types><members>*</members><name>CompactLayout</name></types>
<types><members>*</members><name>ConnectedApp</name></types>
<types><members>*</members><name>ContentAsset</name></types>
<types><members>*</members><name>CspTrustedSite</name></types>
<types><members>*</members><name>CustomApplication</name></types>
<types><members>*</members><name>CustomField</name></types>
<types><members>*</members><name>CustomIndex</name></types>
<types><members>*</members><name>CustomLabel</name></types>
<types><members>*</members><name>CustomLabels</name></types>
<types><members>*</members><name>CustomMetadata</name></types>
<types><members>*</members><name>CustomNotificationType</name></types>
<types><members>*</members><name>CustomObject</name></types>
<types><members>*</members><name>CustomObjectTranslation</name></types>
<types><members>*</members><name>CustomPageWebLink</name></types>
<types><members>*</members><name>CustomPermission</name></types>
<types><members>*</members><name>CustomSite</name></types>
<types><members>*</members><name>CustomTab</name></types>
<types><members>*</members><name>Dashboard</name></types>
<types><members>*</members><name>DataSource</name></types>
<types><members>*</members><name>DataSourceObject</name></types>
<types><members>*</members><name>DataSourceTenant</name></types>
<types><members>*</members><name>DataStreamDefinition</name></types>
<types><members>*</members><name>DigitalExperience</name></types>
<types><members>*</members><name>DigitalExperienceBundle</name></types>
<types><members>*</members><name>DigitalExperienceConfig</name></types>
<types><members>*</members><name>Document</name></types>
<types><members>*</members><name>DuplicateRule</name></types>
<types><members>*</members><name>EclairGeoData</name></types>
<types><members>*</members><name>EmailServicesFunction</name></types>
<types><members>*</members><name>EmailTemplate</name></types>
<types><members>*</members><name>EntitlementProcess</name></types>
<types><members>*</members><name>EscalationRules</name></types>
<types><members>*</members><name>ExperienceBundle</name></types>
<types><members>*</members><name>ExplainabilityActionDefinition</name></types>
<types><members>*</members><name>ExplainabilityActionVersion</name></types>
<types><members>*</members><name>ExternalClientApplication</name></types>
<types><members>*</members><name>ExternalDataSource</name></types>
<types><members>*</members><name>ExternalServiceRegistration</name></types>
<types><members>*</members><name>ExtlClntAppGlobalOauthSettings</name></types>
<types><members>*</members><name>ExtlClntAppOauthConfigurablePolicies</name></types>
<types><members>*</members><name>ExtlClntAppOauthSettings</name></types>
<types><members>*</members><name>FieldRestrictionRule</name></types>
<types><members>*</members><name>FieldSet</name></types>
<types><members>*</members><name>FlexiPage</name></types>
<types><members>*</members><name>Flow</name></types>
<types><members>*</members><name>FlowDefinition</name></types>
<types><members>*</members><name>ForecastingType</name></types>
<types><members>*</members><name>GlobalValueSet</name></types>
<types><members>*</members><name>GlobalValueSetTranslation</name></types>
<types><members>*</members><name>Group</name></types>
<types><members>*</members><name>HomePageComponent</name></types>
<types><members>*</members><name>HomePageLayout</name></types>
<types><members>*</members><name>Icon</name></types>
<types><members>*</members><name>IframeWhiteListUrlSettings</name></types>
<types><members>*</members><name>InstalledPackage</name></types>
<types><members>*</members><name>InternalDataConnector</name></types>
<types><members>*</members><name>KeywordList</name></types>
<types><members>*</members><name>Layout</name></types>
<types><members>*</members><name>LeadConvertSettings</name></types>
<types><members>*</members><name>Letterhead</name></types>
<types><members>*</members><name>LightningComponentBundle</name></types>
<types><members>*</members><name>LightningExperienceTheme</name></types>
<types><members>*</members><name>ListView</name></types>
<types><members>*</members><name>ManagedContentType</name></types>
<types><members>*</members><name>ManagedTopics</name></types>
<types><members>*</members><name>MatchingRule</name></types>
<types><members>*</members><name>MatchingRules</name></types>
<types><members>*</members><name>MilestoneType</name></types>
<types><members>*</members><name>MktDataTranObject</name></types>
<types><members>*</members><name>ModerationRule</name></types>
<types><members>*</members><name>NamedCredential</name></types>
<types><members>*</members><name>NavigationMenu</name></types>
<types><members>*</members><name>Network</name></types>
<types><members>*</members><name>NetworkBranding</name></types>
<types><members>*</members><name>NotificationTypeConfig</name></types>
<types><members>*</members><name>ObjectSourceTargetMap</name></types>
<types><members>*</members><name>PathAssistant</name></types>
<types><members>*</members><name>PermissionSet</name></types>
<types><members>*</members><name>PermissionSetGroup</name></types>
<types><members>*</members><name>ProcessFlowMigration</name></types>
<types><members>*</members><name>Profile</name></types>
<types><members>*</members><name>ProfilePasswordPolicy</name></types>
<types><members>*</members><name>ProfileSessionSetting</name></types>
<types><members>*</members><name>Prompt</name></types>
<types><members>*</members><name>Queue</name></types>
<types><members>*</members><name>QuickAction</name></types>
<types><members>*</members><name>RecordType</name></types>
<types><members>*</members><name>RedirectWhitelistUrl</name></types>
<types><members>*</members><name>RemoteSiteSetting</name></types>
<types><members>*</members><name>Report</name></types>
<types><members>*</members><name>ReportType</name></types>
<types><members>*</members><name>Role</name></types>
<types><members>*</members><name>SamlSsoConfig</name></types>
<types><members>*</members><name>Settings</name></types>
<types><members>*</members><name>SharingCriteriaRule</name></types>
<types><members>*</members><name>SharingOwnerRule</name></types>
<types><members>*</members><name>SharingRules</name></types>
<types><members>*</members><name>SharingSet</name></types>
<types><members>*</members><name>SiteDotCom</name></types>
<types><members>*</members><name>StandardValueSet</name></types>
<types><members>*</members><name>StandardValueSetTranslation</name></types>
<types><members>*</members><name>StaticResource</name></types>
<types><members>*</members><name>Territory2</name></types>
<types><members>*</members><name>Territory2Model</name></types>
<types><members>*</members><name>Territory2Type</name></types>
<types><members>*</members><name>TopicsForObjects</name></types>
<types><members>*</members><name>Translations</name></types>
<types><members>*</members><name>UiViewDefinition</name></types>
<types><members>*</members><name>UserCriteria</name></types>
<types><members>*</members><name>ValidationRule</name></types>
<types><members>*</members><name>WaveApplication</name></types>
<types><members>*</members><name>WaveDashboard</name></types>
<types><members>*</members><name>WaveDataflow</name></types>
<types><members>*</members><name>WaveDataset</name></types>
<types><members>*</members><name>WaveRecipe</name></types>
<types><members>*</members><name>WebLink</name></types>
<types><members>*</members><name>Workflow</name></types>
<types><members>*</members><name>WorkflowAlert</name></types>
<types><members>*</members><name>WorkflowFieldUpdate</name></types>
<types><members>*</members><name>WorkflowRule</name></types>
<types><members>*</members><name>WorkflowTask</name></types>
<version>63.0</version>
</Package>
A versão do package demonstrado é 63.0, recomenda-se checar a versão utilizada em sua org e corrigir o valor.
Fontes:
- https://www.youtube.com/watch?v=wHo4cOHfnTE
- https://help.salesforce.com/s/articleView?id=platform.devops_center_setup_seed_repo_generate_manifest.htm&type=5
Rafael Lua, formado em Ciência da Computação. Curioso por natureza, sempre buscando novas formas de entender o mundo e se divertir no processo.











