1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Salesforceでカスタムメタデータ型を大量INSERTする方法

Last updated at Posted at 2019-08-23

はじめに

カスタムメタデータ型は、Salesforceの非常に便利な機能です。
各種機能で使う設定値を、カスタムオブジェクトのレコードのように設定・管理できます。
リリースセットにも含めることができるので、
『開発環境で作成→リリースセットで本番環境に移行』
も簡単にできます。
当然、カスタムオブジェクトのように、データローダーを使用してCSV投入ができると思っていましたが、
標準機能ではできないようです…(Summer '19時点)
ここでは、公式でもお墨付きをいただいているパッケージを使用して、カスタムメタデータ型レコードをCSVファイルから投入する方法を書きます。

環境

  • 組織のエディション:Enterprise Edition
  • API:Version 46.0 (Summer '19)

Custom Metadata Loader

Salesforceのパッケージ「Custom Metadata Loader」を使用すると、
カスタムメタデータ型のINSERTや、カスタムオブジェクトからカスタムメタデータ型への移行ができるようになります。
Communityヘルプにも記載があります。
ぶっちゃけこれを読めば大体分かるのですが、環境へのインストールの仕方などが明瞭でなかったので、書きます。

インストール

1.「Custom Metadata Loader」のGitHubにアクセスします。

2.「Deploy to Salesforce」ボタンをクリックします
2019-08-23_11h07_46.png

3.「Deploy to:」でデプロイ先を選びます(最初は「Sandbox」を選択して、開発環境で検証することを推奨します)
2019-08-23_11h17_03.png

4.同画面で「Login to Salesforce」を押下

5.アクセスを許可します
2019-08-23_11h17_29.png

6.デプロイ先が表示されていることを確認して、「Deploy」を押下
2019-08-23_11h17_48.png

7.画面に進捗状況が出ます。「Completed」が出ればOK
2019-08-23_11h50_39.png

インストール後の設定

1.設定 > ビルド > 作成 > アプリケーション で「Custom Metadata Loader」が表示されていることを確認。
2019-08-23_14h26_35.png

2.操作するSalesforceユーザに「Custom Metadata Loader」の参照権限を与えます。

例:設定 > ユーザの管理 > プロファイル > (操作するSalesforceユーザのプロファイル) > 割り当てられたアプリケーション > 「Custom_Metadata_Loader」の「参照可能」にチェック

3.同様に、「Custom Metadata Loader」のタブの参照権限を与えます。

例:設定 > ユーザの管理 > プロファイル > (操作するSalesforceユーザのプロファイル) > オブジェクト設定 > 「Custom Metadata Loader」「Custom Metadata Migrator」の「タブの設定」を「デフォルトで表示」に変更

4.設定 > セキュリティのコントロール > リモートサイトの設定 でリモートサイトの設定を新規作成

  • リモートサイトの URL:「https://mydomain--c.visualforce.com」
    (※mydomainの部分は適時変更)
    と入力して保存。
    (すでに作成済みの場合は必要ありません)

CSVファイルの作成

下記のフォーマットで作成します。

  • 文字コード:UTF-8
  • 改行コード:CRLF
  • BOM:不要
  • 1行目はカラムヘッダー、2行目から実レコード(データローダのときと同様です)
  • ヘッダーには下記の必須項目を含めます
    • Description,DeveloperName,Label
    • カスタムメタデータ型に作成されたカスタム項目API名

Description,DeveloperName,Label,CustomField1__c,CustomField2__c
AAA1,BBB1,CCC1,DDD1,EEE1
AAA2,BBB2,CCC2,DDD2,EEE2

実際にCSVファイルからインポートしてみる

1.操作するユーザでログインし、アプリケーションピッカーから [カスタムメタデータローダ] を選択

2.「Custom Metadata Loader」タブをクリック

3.ファイル・カスタムメタデータ型名を選択した後、「Create/Update custom metadata」ボタンを押下
2019-08-23_11h45_57.png

4.成功すると、画面下部に、レコードの一覧が表示されます
2019-08-23_10h34_46.png

エラーハンドリング

Header must contain the api names of the fields

投入したCSVファイルにカラムが不足していると出ます。
2019-08-23_10h16_12.png

ただし、カラムがすべて合致していてもこれにあたってしまうときがあります。
どうやら、CSVファイルの形式、改行コード、BOMなどが誤っていてもぶつかるようです。
上記のフォーマットで作成すると、直りました。

Unable to connect to the Salesforce Metadata API.

リモートサイトの設定がされていないと出ます。上記設定を完了すればOKです。
2019-08-23_14h45_25.png

1
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?