如何获取顶点页面中使用的所有自定义标签信息?

时间:2018-07-25 06:57:55

标签: salesforce visualforce salesforce-lightning salesforce-communities

我想通过rest API获取所有自定义标签。我在顶点页面中使用了自定义标签 像

  

{!$ Label.MyCustomLabel}

。所以我可以通过rest api获取有关 MyCustomLabel 的信息。

任何指导将不胜感激。谢谢

2 个答案:

答案 0 :(得分:1)

从组织中获取自定义标签并不是真正简单的方法。 CustomLabel / ExternalString对象不可查询,其余api的services/data/v43.0/nouns部分也不包含它们。

现在从Salesforce获取自定义标签的唯一方法是读取元数据。最快的方法可能是使用同步的listMetadatareadMetadata调用。这使用了SOAP API,因此这里涉及一些XML。

1。, listMetadata ,将org-id替换为您的组织ID,并将session-id替换为您的会话ID。

curl \
-H 'Content-Type: text/xml' \
-H 'SOAPAction: ""' \
https://ap4.salesforce.com/services/Soap/m/38.0/org-id \
-d '<?xml version="1.0" encoding="utf-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><n1:SessionHeader xmlns:n1="http://soap.sforce.com/2006/04/metadata"><n1:sessionId>session-id</n1:sessionId></n1:SessionHeader></env:Header><env:Body><n1:listMetadata xmlns:n1="http://soap.sforce.com/2006/04/metadata"><n1:queries><n1:type type="xsd:string">CustomLabel</n1:type></n1:queries></n1:listMetadata></env:Body></env:Envelope>'

2。,拔出<fullName>标签内的所有自定义标签名称

3。, readMetadata ,将org-id替换为您的组织ID,将session-id替换为您的会话ID,并将custom-label-name替换为自定义标签的名称。

curl \
-H 'Content-Type: text/xml' \
-H 'SOAPAction: ""' \
https://ap4.salesforce.com/services/Soap/m/38.0/org-id \
-d '<?xml version="1.0" encoding="utf-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Header><n1:SessionHeader xmlns:n1="http://soap.sforce.com/2006/04/metadata"><n1:sessionId>session-id</n1:sessionId></n1:SessionHeader></env:Header><env:Body><n1:readMetadata xmlns:n1="http://soap.sforce.com/2006/04/metadata"><n1:type type="xsd:string">CustomLabel</n1:type><n1:fullNames type="xsd:string">custom-label-name</n1:fullNames><n1:fullNames type="xsd:string">custom-label-name</n1:fullNames></n1:readMetadata></env:Body></env:Envelope>' 

答案 1 :(得分:-1)

尝试: 1-从控制台激活工具api 2-查询:

Select Id, name, masterlabel, ManageableState, Value 
FROM ExternalString