【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.