How to deal with a Salesforce object
Get a field value from Salesforce
eg : Retrieving the values of a list from an SF object:
JS
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25 | <@script env="javascript">
function get_sf_field(my_father, my_son, default_value) {
if (typeof(my_father[my_son]) == "object") {
var my_result = default_value;
} else {
var my_result = my_father[my_son];
}
return my_result;
}
var my_field = P_result.Envelope.Body.describeSObjectResponse.result.fields;
var a_nationality = new Array();
for (var i = 0; i < my_field.length; i++) {
if (get_sf_field(my_field[i], "name") == "Nationality__c") {
for (var j = 0; j < my_field[i].picklistValues.length; j++) {
a_nationality.push({
"label" : my_field[i].picklistValues[j].label,
"value" : my_field[i].picklistValues[j].value
});
}
break;
}
}
setVariable("a_nationality", a_nationality);
<!--@script-->
|
Freemarker
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 | <#function get_sf_field my_father my_son default_value>
<#if my_father[my_son]?exists>
<#if my_father[my_son]?is\_hash>
<#assign my_result = default_value>
<#else>
<#assign my_result = my_father[my_son]>
<!--#if-->
<!--#if-->
<#return my_result>
<!--#function-->
<#assign a_nationality = []>
<#list P_result.Envelope.Body.describeSObjectResponse.result.fields as x>
<#if (get_sf_field(x,"name","") = "Nationality__c")>
<#list x.picklistValues as y>
<#assign a_nationality = a_nationality + [{"label":y.label,"value":y.value}]>
<!--#list-->
<#break>
<!--#if-->
<!--#list-->
${a_nationality}
|
Please give details of the problem