CData Salesforce Drivers でメタデータの取得・デプロイを行う方法

by 大川智久 | 2022年09月06日

CData Salesforce Drivers は、Salesforce 上のデータを標準SQL でリアルタイムに扱うことのできるドライバで、CData 社で扱うドライバの中でも最もご利用されているユーザの多いドライバの1つです。

今回は、新たにサポートされたメタデータAPI によるメタデータの取得・デプロイの機能について紹介します。

メタデータAPI について

メタデータAPI については、Salesforce の以下の開発者ガイドを参照してください。

メタデータ API について | メタデータ API 開発者ガイド | Salesforce Developers

メタデータとは、わかりやすい例でいうと、カスタムオブジェクト定義やページレイアウトなどのカスタマイズ情報のことです。今回は、実際にカスタムオブジェクト定義情報の取得、および、更新(デプロイ)をCData Salesforce Drivers のストアドプロシージャで行う例をサンプルシナリオに沿ってご紹介します。

サンプルシナリオ

サンプルシナリオとして、テスト用にカスタムメタデータ型を定義し、その定義を含んだメタデータをダウンロードしてデータの中身を確認します。また、データの中身を書き換えて更新(デプロイ)を行うケースをご紹介します。

テスト用にカスタムメタデータ型を定義

以下のように、テスト用に「testcustommetadata」というカスタムメタデータ型を作り、「CustomCheckTest」という名前でチェックボックス型の項目を作っておきます。デフォルト値を「チェック」としておきます。

メタデータをダウンロードして中身を確認

以下のようなSQLでメタデータをダウンロードすることができます。簡単のため、今回はダウンロード先のパス名のみを指定しています。パラメータの詳細は以下のヘルプを参照してください。なお、パスの区切りはWindows の場合は「\\」のようにバックスラッシュ(円記号)を2つ重ねて記載します。Linux などの場合はスラッシュ「/」となります。

CData JDBC Driver for Salesforce - MetadataRetrieve

exec MetadataRetrieve @DownloadLocation='C:\\Users\\user\\sfmetadata';

上記の例では、「C:\Users\user\sfmetadata」フォルダはあらかじめ作成しておく必要があります。

実行すると、上記のフォルダに「retrieveResults.zip」というファイル名でメタデータがダウンロードされます。zip ファイルを展開して見てみると、以下のような構成でデータが格納されています。

unpackaged
    |- package.xml
    |- objects
          |- <カスタムオブジェクト名>__c.object
          |- :
          |- :
          |- testcustommetadata__mdt.object

今回作成したカスタムメタデータ型の定義が、「testcustommetadata__mdt.object」ファイルの中に入っています。この中身を見てみると、以下のようになっています。

<?xml version="1.0" encoding="UTF-8"?>
    <CustomObject xmlns="http://soap.sforce.com/2006/04/metadata">
    <description>テストです</description>
    <fields>
        <fullName>CustomCheckTest__c</fullName>
        <defaultValue>true</defaultValue>
        <externalId>false</externalId>
        <fieldManageability>DeveloperControlled</fieldManageability>
        <label>カスタムチェック項目</label>
        <type>Checkbox</type>
    </fields>
    <label>testcustommetadata</label>
    <visibility>Public</visibility>
</CustomObject>

データの中身を書き換えて更新(デプロイ)

それでは、今回はデフォルト値を「チェック」から「チェック無し」に変更してみましょう。上記ファイルの<defaultValue>true</defaultValue> となっている部分を<defaultValue>false</defaultValue> に書き換え、再度今回展開したフォルダツリー全体をzip ファイルにアーカイブします。zip ファイルのトップフォルダはunpackaged フォルダのみとなることに注意してください。zip ファイルの名前は任意で構いませんが、今回はdeploytest.zip とします。

zip ファイルを作成したら、以下のSQL でメタデータを更新(デプロイ)します。簡単のため、今回はデプロイするファイルのフルパスのみを指定しています。パラメータの詳細は以下のヘルプを参照してください。

CData JDBC Driver for Salesforce - MetadataDeploy

exec MetadataDeploy @FullPath='C:\\Users\\user\\deploytest.zip';

そしてSalesforce 側の設定を確認すると、以下のように変更した設定が反映されていることが確認できました。

おわりに

本記事ではCData Salesforce Drivers でメタデータAPI を利用したメタデータの取得・デプロイの機能についてご紹介しました。今回の機能はOEM パートナー様からのご要望で追加されたものです。CData 社のドライバは多くのOEM パートナー様にもご利用いただいており、またパートナー様からの機能追加のご要望も積極的に検討・実装しています。

CData Salesforce Drivers は30日間無料でお使いいただけます。Salesforce との連携をご検討の方はぜひお試しください。

関連コンテンツ

トライアル・お問い合わせ

30日間無償トライアルで、CData のリアルタイムデータ連携をフルにお試しいただけます。記事や製品についてのご質問があればお気軽にお問い合わせください。