【Salesforce】ApexのAPI バージョンを確認する
Apexコードを書く際にあまり気にしていないAPIバージョンですが、たまに必要になって確認することがあります。
しかし、Salesforceの「Spring’18」などのバージョン名を見てAPIバージョンが頭に浮かぶほど頭が良くありません。
調べてみると、WSDLを生成する際にAPIバージョンが表示されるとのこと。
https://developer.salesforce.com/forums/?id=906F0000000BL6vIAG
しかし、Salesforceのバージョン名との対応がされていません。
もう少し調べてみると、REST APIでバージョンを取得するとSalesforceのバージョンも一緒に取得できることが分かりました。
開発者コンソールで実行します。
HTTPRequestを使用するため、リモートサイトの設定を忘れないようにしましょう。
String sessionId;
String endpoint;
HttpRequest req;
HttpResponse res;
HTTP http;
List<Object> jsonMapList;
String consoleLog;
// セッションIdを取得する
sessionId = UserInfo.getSessionId();
// エンドポイント
endpoint = URL.getSalesforceBaseUrl().toExternalForm() + '/services/data/';
// HTTPリクエスト
req = new HttpRequest();
req.setMethod('GET');
req.setEndpoint(endpoint);
req.setHeader('Authorization', ' Bearer ' + sessionId);
// 送信する
http = new HTTP();
res = http.send(req);
// 失敗した場合
if(res.getStatusCode() != 200){
system.debug(res.getBody());
return;
}
// JSONをMapにする
jsonMapList = (List<Object>)JSON.deserializeUntyped(res.getBody());
// ログに表示する
consoleLog = '';
for(Object obj : jsonMapList){
Map<String, Object> jsonMap;
List<String> attrList;
// 連結用リスト
attrList = new List<String>();
// JSON文字列⇒Map
jsonMap = (Map<String, Object>)obj;
for(String key : jsonMap.keySet()){
String attr;
attr = key + ' = ' + String.valueOf(jsonMap.get(key));
attrList.add(attr);
}
consoleLog += String.join(attrList, ' / ');
consoleLog += '\r\n';
}
system.debug('\r\n' + consoleLog);
結果としてはこんな感じです。
現在はSpring18でAPIバージョンは42.0であることが分かりますね。

No comments.