2017-09-29 6 views
0

Je suis actuellement incapable de voir qui a créé un champ Set dans Salesforce, j'essayé de regarder la classe Schema.FieldSet, mais je ne pouvais pas trouver tous les détails sur CreatedByComment savoir qui a créé un champ Set

Carte FsMap = Schema.SObjectType.Account.fieldSets.getMap();

Répondre

1

Utilisez une requête API Tooling (de Developer Console, Workbench ou un autre outil):

SELECT Id, DeveloperName, Description, CreatedDate, CreatedBy.Name 
FROM FieldSet 

devriez-vous commencer (dans la console dev il est juste une question de cocher la case en bas de l'éditeur de requête, en workbench aller au menu Explorateur REST).

https://developer.salesforce.com/docs/atlas.en-us.api_tooling.meta/api_tooling/tooling_api_objects_fieldset.htm


Alternativement quelques informations pourraient être visibles dans la configuration Audit Trail (6 derniers mois, vous pouvez télécharger facilement, vous pouvez également interroger la table mais il est pénible de filtrer ... https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_objects_setupaudittrail.htm


EDIT

Il n'y aura pas-exactement-w documenté ay savoir à quel sObject ce fieldset appartient. La documentation de l'objet Fieldset ne mentionne pas l'existence du champ EntityDefinitionId mais si vous allez à EntityDefinition dans l'API Tooling, vous pouvez voir une relation enfant très prometteuse à Fieldsets. Alors ... en situation irrégulière, peut briser à l'avenir mais essayez cette requête

SELECT EntityDefinitionId, EntityDefinition.Namespaceprefix, EntityDefinition.DeveloperName, 
    Id, DeveloperName, Description, CreatedDate, CreatedBy.Name 
FROM FieldSet 
ORDER BY EntityDefinitionId, Id 

Sample Tooling API query results for Fieldset + parent sObject

+0

Merci beaucoup, je l'ai essayé sur l'établi et cela a fonctionné bien, puis-je demander comment savoir dans quel objet est ce fieldset utilisé? ou existe-t-il un moyen de connaître tous les champs disponibles pour interroger? – Sam

+0

Voir la modification. Une fois que vous connaissez le nom de l'objet et le nom de l'ensemble de champs, il devrait être facile d'utiliser les appels "describe" pour obtenir la liste des champs dans chaque fieldset. https://salesforce.stackexchange.com/questions/1474/how-to-get-fieldset-fields-in-apex-dynamically-fieldset-name-is-not-static par exemple. Je ne pense pas que "FieldsetMember" est une table que vous pouvez appeler des requêtes normales ou SOQL sur ... – eyescream

+0

Bonjour la crème des yeux, ça a fonctionné à merveille, j'essaye de faire une demande get depuis une application externe au lieu de workbench et construire un outil pour mes questions, je pensais à MS Excel VBA, si je veux faire une demande GET dans une application externe - C# ou Java ou VB, avez-vous une idée de la façon dont le point de terminaison doit être défini, pour l'instant j'ai créé une application connectée dans salesforce, et j'ai une clé de consommateur, un secret de consommateur et une URL de rappel, la seule façon dont il fonctionne maintenant est sur le workbench REST /services/data/v40.0/tooling/query?q=SELECT+Id,DeveloperName,Description , CreatedDate, CreatedBy.Name + FROM + FieldSet – Sam