2017-09-18 6 views
0

Lors de l'empaquetage, j'obtiens un namespacePrefix par défaut pour mon organisation.NamespacePrefix d'un package vs namespacePrefix défini localement

Si je définis un autre espace de noms local dans cet environnement, alors j'ai deux espaces de noms.

un, je reçois de l'emballage et un je me suis défini. Après avoir lu sur le sujet, je ne pouvais pas comprendre à l'interrogation de la base de données que je reçois le namespacePrefix du paquet et quand puis-je obtenir le namespacePrefix que j'ai défini manuellement.

Qui a une priorité sur l'autre?

Puis-je avoir une collision dans ce cas?

Je suis nouveau à Salesforce.

Répondre

1

Le but de l'emballage est de permettre une installation répétable d'un ou de plusieurs composants de métadonnées dans d'autres organisations. Si vous ne le faites pas, je n'utiliserais pas de paquets. Lorsque vous installez un package dans une organisation de destination, les composants de métadonnées de ce package occupent l'espace de noms du package, quel que soit l'espace de noms de l'organisation source ou de l'organisation de destination. namespace org Source: src namespace org Destination: dest espace de nom du package: pkg

Si Apex Class myClass et sObject custom__c sont tous deux dans pkg, puis myClass peut accéder custom__c sans espace de noms.

Si Destination org class destClass souhaite accéder à custom__c, il doit le préfixer avec l'espace de noms: pkg__custom__c pour le faire (c'est la même chose pour les champs sur customer__c). Ne vous inquiétez pas trop de votre organisation source, car le but de l'organisation source n'est que pour le développement, en supposant que vous utilisez l'emballage pour l'usage auquel il est destiné.