Quantcast
Channel: Salesforce –ぱーくん plus idea
Viewing all 62 articles
Browse latest View live

salesforceでデータの変更履歴を追跡する方法と注意点

$
0
0

Salesforceでは、標準オブジェクトとカスタムオブジェクトのレコードに変更を加えたときに、その前後でデータがどのように変わったかを保持することが出来ます。

ClassicでもLightningExperienceでも、設定するだけで簡単に追跡ができます。

特にプロファイルなどは、最新の情報しか保持していなかったりしますが、「いつ変わったのかなー」と確認したり、重要な項目で、その変更履歴を管理しなければならないときに使うことが多いです。

 

標準オブジェクトでの設定方法

 

Mavenプロジェクト1

 

「設定」⇒「オブジェクトマネージャ」で標準オブジェクトを開き、「項目とリレーション」を開きます。

すると上記のような画面になりますが、その右上の方に「項目履歴管理の設定」というボタンがあります。

これを押すと、初めてそのオブジェクトに対して設定を行う際には、以下のような画面が表示されます。↓ ↓ ↓ ↓
ここでチェックを入れて有効化しましょう。

Mavenプロジェクト1

 

すると、以下のように、オブジェクトの項目が表示されますので、追跡したい項目にチェックを入れます。↓ ↓ ↓ ↓
これで、変更履歴が追跡されるようになります。

Mavenプロジェクト1

 

カスタムオブジェクトでの設定方法

カスタムオブジェクトでも同様に追跡が設定できます。

注意!

しかし、カスタムオブジェクトの場合は、オブジェクトマネージャの詳細のところで、「項目履歴管理」という項目にチェックを入れないと、変更履歴の追跡は開始されませんし、レイアウトに表示することも出来ません

 

はじめに「項目履歴管理」にチェックを入れましょう。↓ ↓ ↓ ↓

Mavenプロジェクト1

 

その後、標準オブジェクトと同様に、「設定」⇒「オブジェクトマネージャ」⇒「項目とリレーション」から「項目履歴管理の設定」ボタンを押します。↓ ↓ ↓ ↓

Mavenプロジェクト1

 

すると、以下のようにトラッキング(追跡)できる項目を選択できます。↓ ↓ ↓ ↓
チェックを入れて保存すると、レコードを変更するたびに、変更履歴が保存されるようになります。

Mavenプロジェクト1

 

変更履歴の制限事項

SalesforceのHelpを確認すると、変更履歴には以下のような制限がありますので、使用時には注意しましょう。

  • 追跡できる項目数・・・オブジェクトごとに、標準項目とカスタム項目を最大 20 項目まで選択できます。
  • データの保持期間・・・項目履歴データは、組織経由で最大 18 か月間、API 経由で最大 24 か月間保持されます。
  • データの項目・・・255 文字を超える項目に対する変更は、編集済みとして追跡され、元の値と新しい値は記録されません。
  • 追跡できるデータの種類の制限・・・次のものは追跡できません。数式項目、積み上げ集計項目、または自動採番項目、[作成者] および [最終更新者]

 

変更履歴を表示して確認できるようにするには?

変更履歴はそのままだと表示されません。

表示して確認できるようにするには、以下の設定を行います。

①そのオブジェクトのレイアウトを編集する

②「関連リスト」として履歴が選択できるようになっているので、それを関連リストに表示させる↓ ↓ ↓ ↓

Mavenプロジェクト1

 

これで、そのオブジェクトの履歴が関連リストとして表示され、確認できるようになります。

 

履歴オブジェクトの構造について

そもそも、変更履歴のレコードは、そのオブジェクトの子オブジェクトとして作成されます。

標準オブジェクトの場合、取引先だと「AccountHistroy」、取引先責任者だと「ContactHistory」といった具合に、あらかじめ「標準オブジェクト名+History」というオブジェクトがあるので、ここに変更履歴が追加されていきます。

これがカスタムオブジェクトだと、「SampleObject1__history」のように、「カスタムオブジェクト名+History」のような命名規則でオブジェクトができ、そこに変更履歴が追加されていきます。

そのため、履歴オブジェクトをSOQLで検索するには、

 

//標準オブジェクトの場合
SELECT OldValue, NewValue FROM ContactHistory

//カスタムオブジェクトの場合
SELECT OldValue, NewValue, Parent.Id, Parent.name FROM SampleObject1__history

のように引っ張れます。

また、Historiesという名前で親オブジェクトから参照できるので、

//標準オブジェクトの場合
SELECT Name, Id, (SELECT OldValue, NewValue FROM Histories) FROM Contact

//カスタムオブジェクトの場合
SELECT Name, Id, (SELECT OldValue, NewValue FROM Histories) FROM SampleObject1__c

のようにすると、変更履歴を管理しているオブジェクトとその履歴を一緒に取得することが可能です。


VisualStudioCodeとSalesforceCLIでIDE開発を行う手順

$
0
0

以前使われていた「Force.com IDE」のサポートが公式に終了することになったり、MavensMateも開発終了ということで、「Salesforceで開発を行うときにはどのIDE(統合開発環境)を使えばいいのか?」と悩んでいる方も多いと思います。

また、Salesforceの開発手法もDXといわれる形式に徐々に変わってきていますし、近い将来も見据えて、IDEの選択を行いたいところですよね。

 

VS Codeは使い勝手はどうか?

最近いろいろな開発環境の中で使いやすく、カスタマイズしやすいと評判なのがVisualStudioCodeです。

また、今後、Salesforceでの開発がDX形式になっていくにあたり、重要なツールとなるのがSalesforceCLIですね。

VSCodeには、このCLIとの連携がスムーズにできる公式の機能拡張がSalaesForce社からリリースされており、今後、統合開発環境の主流はVSCodeに移っていくのではないかと思います。

そこで今回はVisualStudioCodeを使ってSalesforceの開発を行うための環境構築の手順をまとめてみました。

インストールと環境設定

SalesforceCLIのインストール

VSCodeでは、Salesforce開発に必要なさまざまな作業を、SalesforceCLIを使ったコマンド経由で行いますので、SalesforceCLIのインストールが必須です。

始めにこれをインストールしておきましょう。

ここからダウンロードできます。

 

jdk8のインストール

いくつかのVSCode機能拡張の機能はJSDK8を使いますので、インストールしておきましょう。

もし、お使いの環境に複数のjdkのバージョンが混在している場合は、VSCodeのユーザ設定の

「salesforcedx-vscode-apex.java.home」にJava8をインストールしたディレクトリを指定しておきます。

 

VSCodeのインストールとセットアップ

もちろんVSCodeをインストールしておく必要があります。

機能拡張はVSCodeのv1.26以上が対象なので、このバージョン以上のVSCodeをインストールしておきます。

さて、開発にあたり、いくつか、セットアップしておいた方がいい機能拡張と設定がありますので、以下に記載します。

公式機能拡張のインストール

https://forcedotcom.github.io/salesforcedx-vscode/

VSCodeでSalesforce開発をするなら必須の公式機能拡張です。

DevHubやスクラッチ組織にアクセスする機能もありますので、インストールします。

 

package.xmlジェネレータのインストール

https://marketplace.visualstudio.com/items?itemName=VignaeshRamA.sfdx-package-xml-generator

これは公式の機能拡張ではありませんが、既存のSalesforce組織からpackage.xmlを生成します。

このpackage.xmlの情報をもとに、Salesforcec側にあるApexソースやトリガ、レイアウトなどをローカルのPCに取得して開発を行いますので、あると便利です。

 

プロキシ背後で開発する場合

開発するところがproxyの背後にある場合は、プロキシの設定を行います。

特に、VSCodeのコマンドパレットやターミナルからSFDCへのログイン系のコマンドを打ちこんだ時、「localhost」にコールバックするのですが、この設定がないとエラーになってログインできません。

設定はWindowsのシステム環境変数に以下を設定し、PC再起動でOKです。

HTTP_PROXY・・・<サーバ>:<ポート>

HTTPS_PROXY・・・<サーバ>:<ポート>

 

VSCodeでのプロジェクトの作り方

新規に、既存のSFDC組織用プロジェクトを作成

VSCodeのコマンドパレットを開き、テキストボックスに「Create Project」と入力し「SFDX: Create Project with Manifest」を選択。

すると、プロジェクトフォルダが生成され、もろもろのファイルも生成されます。

とくに、「manifest/package.xml」も自動で生成されます。

ただし、package.xmlの中にはそれほど多くのコンポーネントの記述はないので、次の手順で適宜追加します。

 

VSCodeのTerminalを開いて、既存組織にログインする。

以下のコマンドをVSCodeのターミナルから入力し、SFDCにログインします。

sfdx force:auth:web:login --setalias <組織のエイリアス名> \
</ br>--instanceurl https://login.salesforce.com --setdefaultusername

 

「SFDX Package.xml Generator」でpackage.xml情報を取得

コマンドパレットを開き、テキストボックスに「SFDX Package.xml Generator」と入力し「SFDX Package.xml Generator: Choose Metadata Components」を選択します。

fuzoku plug

 

 

すると、どのコンポーネントを取得するかの選択画面が表示されるので、チェックボックスで選択します。

すると、package.xmlに選択したコンポーネントの情報がアップデートされます。

ちなみにこの時点ではまだ、コンポーネント自体はダウンロードされていませんので、次の手順でコンポーネントをローカルPCにダウンロードします。

 

コンポーネントを取得

package.xmlを右クリックし、「SFDC: Retrieve Source in Manifest from Org」を選んでコンポーネントを取得します。

fuzoku plug

 

Viewing all 62 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>