見出し画像

SalesforceメタデータのAPIバージョンを簡単に確認する方法

概要

Salesforce組織全体でメタデータのAPIバージョンを確認したい場合、ファイル数が多いため手動で確認するのは非常に時間がかかることがあります。そこで、SFコマンドを使用して対象メタデータをローカルに吸い上げ、その後Pythonスクリプトを実行することで、各メタデータの最小および最大のAPIバージョンを簡単に洗い出す方法をご紹介します。

手順

まず、以下のSFコマンドを実行して、対象メタデータ(Apexクラス、Apexトリガー、Visualforceページ)をローカル環境に取得します。

sf project retrieve start --metadata ApexClass ApexTrigger ApexPage -r .\rtvAllApex-Trigger-VF

次に、以下のPythonスクリプトを実行して、各メタデータファイルのAPIバージョンを抽出し、最小および最大の#APIバージョンを特定します。スクリプト内のファイルパスは相対パスに変更して使用してください。

import os
import xml.etree.ElementTree as ET

# 定義: Apexクラス、Apexトリガー、Visualforceページのディレクトリ
apex_class_dir = '.\\rtvAllApex-Trigger-VF\\classes'
apex_trigger_dir = '.\\rtvAllApex-Trigger-VF\\triggers'
vf_page_dir = '.\\rtvAllApex-Trigger-VF\\pages'

# 関数: XMLファイルを解析してAPIバージョンを抽出
def get_api_versions(dir):
    api_versions = []
    for filename in os.listdir(dir):
        if filename.endswith('.xml'):
            tree = ET.parse(os.path.join(dir, filename))
            root = tree.getroot()

            # ルート要素から名前空間を取得
            namespace = {'ns0': root.tag.split('}')[0].strip('{')}

            # 名前空間を含めて'apiVersion'要素を検索
            api_version_element = root.find('ns0:apiVersion', namespace)
            if api_version_element is not None:
                api_version = float(api_version_element.text)
                api_versions.append(api_version)
    return api_versions

# Apexクラス、Apexトリガー、VisualforceページのAPIバージョンを取得
apex_class_versions = get_api_versions(apex_class_dir)
apex_trigger_versions = get_api_versions(apex_trigger_dir)
vf_page_versions = get_api_versions(vf_page_dir)

# 最小および最大のAPIバージョンを出力
if apex_class_versions:
    print(f'Apex Classes: Min API Version = {min(apex_class_versions)}, Max API Version = {max(apex_class_versions)}')
else:
    print('No Apex Classes found')

if apex_trigger_versions:
    print(f'Apex Triggers: Min API Version = {min(apex_trigger_versions)}, Max API Version = {max(apex_trigger_versions)}')
else:
    print('No Apex Triggers found')

if vf_page_versions:
    print(f'Visualforce Pages: Min API Version = {min(vf_page_versions)}, Max API Version = {max(vf_page_versions)}')
else:
    print('No Visualforce Pages found')

実行結果

このスクリプトを実行すると、各メタデータ(Apexクラス、Apexトリガー、Visualforceページ)の最小および最大APIバージョンが出力されます。これにより、組織内のメタデータのAPIバージョンを一括で把握することができます。

おわりに

SalesforceのメタデータのAPIバージョンを効率的に確認するためには、コマンドラインツールとスクリプトを組み合わせる方法が非常に有効です。ぜひこの方法を試してみてください。ご不明な点がありましたら、sales@furucrm.comまでお気軽にお問い合わせください。

この記事が気に入ったらサポートをしてみませんか?