VSCodeでSalesforceと連携してApexクラスを取得〜デプロイしてみよう

salesforce

※VSCodeの設定がまだの人は先に↓の記事を見てみてください。

https://knowledge.sigulog.com/?p=67

公式の「Visual Studio Code の設定 単元 | Salesforce Trailhead」はこちらから

目次

  1. ローカルPCにて作業用プロジェクトを作成する
  2. salesforce組織の認証を行う
  3. 接続先の組織からソースを取得する(retrive)
  4. ソースを編集する
  5. ソースをsalesforceに格納する(deploy)

1. ローカルPCにて作業用プロジェクトを作成する

  • コマンドパレットを開き(ショートカットキー:[ctrl]キー + [shift]キー + [P]キー)、テキストボックスに「SFDX: Create Project with Manifest」と入力し、選択します。
  • 選択後、作業用プロジェクトの名前を入力します。(適宜、入力してください)
  • 名前を入力後、プロジェクトを作成するフォルダ選択ダイアログが表示されます。(適宜、管理する場所を選択してください

2. salesforce組織の認証を行う

認証設定を行う(任意)

  1. developer 組織に接続するので不要ですが、 sandbox組織に接続する場合は sfdx-project.json を開いてログインURL の値を更新します。

salesforce 組織の認証を行う

  1. コマンドパレットを開き、テキストボックスに「Aut「SFDX: Authorize an Org」と入力し、選択します。※ 先に作業用プロジェクトを用意しないと、選択肢は出てきません。
  1. プロジェクトのデフォルトを選択し、Enterを押してください。
  1. 次に、接続する組織をローカルPC で管理するための alias 名(管理上の別名)を入力します。特にこだわりがなければ、何も入力せずにEnterでも進めます。
  1. salesforceの認証をするため、 WebブラウザにてログインURL の画面に遷移します。
  2. ユーザ名とパスワードを入力して認証を行います。
  3. 認証に成功すると Visual Studio Code のコンソールに下記メッセージが表示されます。

3. 接続先の組織からソースを取得する(retrive)

3-1. Package.xmlから取得する方法

  1. Visual Studio Code の Explorer 上にある「package.xml」を右クリックし、コンテキストメニューを表示します。コンテキストメニューから「SFDX: Retrieve Source in Manifest from Org」を選択します。

3-2. 直接ファイルを選択して取得する方法

  1. VSCode上の左側に表示されている「エクスプローラー」から特定のソースを右クリックします。
  2. 以降の処理「package.xml に定義したソースを全て取得する場合」と同様の手順です。

4. ソースを編集する

今回は例として、Account(取引先)の作成後に特定の項目に値を設定するApexトリガーを作成します。

  1. 「***\force-app\main\default\triggers」で右クリックし、「Apexトリガーを作成」をクリックします。
  1. 作成するファイル名を入力し、「Enter」キーを押下します。 (例として「HelloWorldTrigger」でファイル作成)
  1. ディレクトリを指定します。 (例として「triggers」フォルダを選択)
  1. ファイルが作成されるため、ここにコードを書きます。
  1. 取引先作成後に「説明」項目に値を設定するコードは以下です。 試すのであればコピペしてください。
trigger HelloWorldTrigger on Account (before insert, after insert) {
    if (Trigger.isInsert) {
        if (Trigger.isBefore) {
            // レコードが保存される前にこのトリガが実行された場合
            for (Account account : Trigger.new) {
                account.Description = 'Apexでのデータ投入';
            }
        } else if (Trigger.isAfter) {
            // すべてのレコードが保存された後にこのトリガが実行された場合
            // 現状は何もしない。
        }
    }
}

5. ソースをsalesforceに格納する(deploy)

5-1 . Package.xmlから更新する方法

  1. 変更したファイルまたはディレクトリで右クリックし、「組織をソースへデプロイ」をクリックします。 (例として「triggers」フォルダを選択)

5-2. 直接ファイルを選択して更新する方法

  1. VSCode上の左側に表示されている「エクスプローラー」から特定のソースを右クリックします。
  2. 以降の処理「package.xml に定義したソースを全て取得する場合」と同様の手順です。