salesforcedx-vscode
salesforcedx-vscode copied to clipboard
Managed Package's Object in Org Browser : Metadata
I have installed some packages in my org, and their sObject's Info are NOT available(in Org Browser : Metadata) in following categories :
- Custom Object
- Workflows
- Flow Definitions ( Probably in other categories as well(Not Checked) )
Though some info is available in sObject Definitions (location : .sfdx>tools>sObjects) for field's description, can we have all kind of info in "Org Browser" as well (similar to other standard and Unmanaged sObjects)?.
Currently using extension's info :
sfdx-cli/7.46.1-3d2451fad8 darwin-x64 node-v10.15.3
vs_code_version : 1.42.1
Thanks for opening this @nikhil-sfdev. The org browser does not display metadata inside of managed packages because that metadata cannot be retrieved (metadata retrieve) by a subscriber. Can you provide more info on what you are trying to accomplish ?
@lcampos We are using few package's object in our sales process, and wrote few validations, flows, and other custom configurations to extend their functionalities. But it is difficult to maintain versioning for the same.
It would be great if we can pull out these informations to our repositories. Plus , it can also help us in our CI/CD pipelines.
Thanks !
@nikhil-sfdev so you want some sort of reference to the sobjects in a managed package e.g. opening a file that lists all the fields ? Or you want to get this information while you're coding with the extensions e.g. typing the managed package namespace in an apex class and seeing a list of suggestions for the objects, fields, etc in that namespace ?
Can you also clarify how this info would help you in your CI/CD pipeline ?
cc @smaddox-sf @ntotten
@lcampos I guess we can reference managed package's objects and fieldName__c from sObject Definitions (location : .sfdx>tools>sObjects), so ,no issue in that.
Components in which i am interested are:
Object's Metadata
FlowDefinition written on managed package's object
Workflows written on managed package's object
Currently, Admins/Devs configure above categories informations for package's object, therefore it is difficult to trace down those changes ( where git can help ) and In addition, we can deploy these metadata via our git branches instead of Change Sets.
Thanks !
I would love this capability so that I can include custom fields and record types that we build onto objects in managed packages. For example, when I add a field to the Affiliations object that is part of EDA and NPSP managed packages from Salesforce, I want to include that custom field or record types in the metadata I can browse, download and pull into our repository.
We use Salesforce CPQ and extended its functionality by creating custom fields, workflows, process builders, email alerts etc on objects like SBQQ__Quote__c. There is no way to access that metadata using Org Browser where as manifest file can retrieve that metadata.
@lcampos You say:
because that metadata cannot be retrieved (metadata retrieve) by a subscriber.
However, if i just add that managed component (e.g. object) in the correct folder as an empty .xml, right click in VS code and say 'retrieve from source' it is retrieved correctly.
@az-oolloow that is how I have been getting around this limitation as well, so it seems there is not a hard limitation here as @lcampos mentioned. We create a lot of customizations within the SBQQ namespace (Salesforce CPQ) and it would be great if we could access this metadata through the org browser.
Hi @lcampos — Hopefully this revised writeup is helpful to the OP issue discussion:
I'm believing Orgbrowser uses sfdx retrieve commands and its unusual that, given vanilla .forceignore file, the command sfdx force:source:retrieve -m CustomObject
does only a PARTIAL job at retrieving managed package sObjects. This could be related to the OP's issue.
For example, why when running sfdx force:source:retrieve -m CustomObject do i see just a few (but not all) managed (namespaced) sobjects in the retrieval results? Many sobjects from installed packages are not retrieved, but some are. The few that are definitely are namespaced sObjects (not custom settings, not metadatatypes, but in fact sobject from managed packages).
Suggestion:
I think sfdx retrieve commands, and orgbrowser should both be upgraded to honor the expectation that ISVs have around namespaced meta, which, to my knowledge, is that only some namespaced metadata is hidden but no namespaced sobjects should be hidden; parts of them uneditable sure but ideally all namespaced sobjects would be retrievable therefore please upgrade both OrGBrowser and sfdx force:source:retrieve -m CustomObject
so that it retrieves all (not just some) namespaced sObjects (at least those that are not forceignored)
Version: 1.53.2 (user setup) Commit: 622cb03f7e070a9670c94bae1a45d78d7181fbd4 Date: 2021-02-11T11:48:04.245Z Electron: 11.2.1 Chrome: 87.0.4280.141 Node.js: 12.18.3 V8: 8.7.220.31-electron.0 OS: Windows_NT x64 10.0.19041
Over two years later and this is still not fixed. Please please please allow us to download our FULL org metadata from our orgs, of which 99.99% of orgs use Managed Packages and people customise objects in Managed Packages so we need to be able to see everything in VSCode.
Agreed, this is pretty important for those of us who are extending Managed Packages (eg. NPSP, EDA).
Any update on progress or prioritization? If we're supporting managed packages, we should include them across our pipelines as well
This is a major issue for us as well. We may add a new custom field to the Managed Package object and need to retrieve it into source to be checked in via git so our ci/cd process can deploy it since the new field could be referenced in Apex, on a page layout or flexipage or any other number of dependencies that break the automated build/deploy process. With Salesforce pushing the CI/CD process, how is this not possible. It is available in Illuminated Cloud for itelliJ. We are forced to use the cli every time we add or change anything on a custom object in a managed package. This is not great for an admin who is on windows and has never used a bash terminal.
@DaveHahn-Fuel the slight workaround I've been using is maintaining a "ManagedPackage.xml" manifest. When we make a change to something managed, I add it to the manifest then use that to retrieve and add to my VCS. It's not much but it's better than cli commands in the terminal, especially for an admin who isn't familiar
Thanks @twkirumba thats an interesting work around, I will give it a try
This is so important to my workflow. It keeps me using IntelliJ + IlluminatedCloud because I can't get a reference to the objects and fields within VisualStudio.
@sakarettm07 how does IntelliJ + IlluminatedCloud provide references to managed metadata components? Does it use a different CLI tool?