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

※VSCodeの設定がまだの人は先に↓の記事を見てみてください。 公式の「Visual Studio Code の設定 単元 | Salesforce Trailhead」はこちらから 目次 1. ローカルPCにて作業用プロジェクトを作成する 2. salesforce組織の認証を行う 認証設定を行う(任意) salesforce 組織の認証を行う 3. 接続先の組織からソースを取得する(retrive) 3-1. Package.xmlから取得する方法 3-2. 直接ファイルを選択して取得する方法 4. ソースを編集する 今回は例として、Account(取引先)の作成後に特定の項目に値を設定するApexトリガーを作成します。 5. ソースをsalesforceに格納する(deploy) 5-1 . Package.xmlから更新する方法 5-2. 直接ファイルを選択して更新する方法

SalesforceのSOQLで副問い合わせ(サブクエリ)を使用する方法

一度のクエリで複数のオブジェクトを取得したいときや、項目に特定の文字列を含んだレコードに紐づく別オブジェクトを取得したい時の備忘録として記載。 目次 子オジェクトの検索 親オブジェクトの項目を出力(検索可能リレーション:参照関係、主従関係) 出力したい参照項目のAPI参照名の末尾を”c“から”r“に変更することで参照先オブジェクトの項目を参照することができる。 親オブジェクトの項目を検索条件に設定(検索可能リレーション:参照関係、主従関係) 出力したい参照項目のAPI参照名の末尾を”c“から”r“に変更することで参照先オブジェクトの項目を条件式として使用することができる。 親オブジェクト検索結果を検索条件に設定(検索可能リレーション:なし) 検索条件に()で括ったSOQLの結果を検索条件に使用することができる。検索条件のSOQLにも検索条件を設定することもできる。※条件が正しければリレーションがなくても検索可能 親オブジェクトの検索 子オブジェクト一覧を出力(検索可能リレーション:参照関係、主従関係) 親オブジェクトの出力項目に子オブジェクトのクエリを利用することで、子オブジェクトのリストを出力することができる。子オブジェクトのクエリで使用するオブジェクトのAPI参照名は、参照項目作成時に指定した子オブジェクト名になる。 子オブジェクト検索結果を検索条件に設定(検索可能リレーション:なし) 検索条件に()で括ったSOQLの結果を検索条件に使用することができる。検索条件のSOQLにも検索条件を設定することもできる。※条件が正しければリレーションがなくても検索可能

Aura ComponentまたはLWCでクイックアクションを呼ぶ方法

前提 目次 Aura Componentでクイックアクションを呼ぶ方法 Aura Componentからは「クイックアクションAPI」を使用することでクイックアクションを呼ぶことができる。 1行目:レコードページで使用できるように「flexipage:availableForAllPageTypes」を実装する2行目:クイックアクションAPIを定義する。4行目:クイックアクションを実行するためのボタンを用意「lightning:button」。クリックのアクションでコントローラから「{!c.selectUpdateCase}」を実行。 3行目:コンポーネントからクイックアクションAPIを取得4行目:実行するクイックアクションのAPI参照名を定義  オブジェクトのクイックアクションを呼ぶ場合: “[オブジェクト名].[API参照名]”  グローバルクイックアクションを呼ぶ場合: “Global.[API参照名]”5行目:クイックアクションAPIの実行「~.selectAcrion」6行目~8行目:成功時の処理8行目~12行目:失敗時の処理 LWCでAura Componentを利用してクイックアクションを呼ぶ方法 前述のとおりLWCでは直接クイックアクションを実行できないため、LWCをクイックアクションAPIが実装されたAura Componentでラップし、LWC内で親コンポーネントであるAura Componentのクイックアクションイベントを発火させる必要がある。 1. 表示用のLWCを用意(クイックアクション(Aura Component)発火用のボタンを用意) 2行目:Lightningデザインのボタンを用意。ボタン押下時にイベントを設定。※上記の場合は「handleClick」 3行目:html内で発火したイベントを定義。4行目:「CustomEvent」を定義。5行目:「dispatchEvent」でCustomEventを返すことで親コンポーネントのイベントを発火する。 CustomEvent 第一引数:文字列型:任意のアクション名 第二引数:Aura Componentに渡したいパラメータ 2. LWCをラッピングするためのクイックアクションAPIを実装したAura Componentの作成 1行目:レコードページで使用できるように「flexipage:availableForAllPageTypes」を実装する。2行目:コンポーネントにクイックアクションAPIを定義する。3行目:LWCを配置。LWCで発火されたアクション名及び実行イベントを記載。※上記の「oncallQuickAction」は“on” + [LWCのCustomEventの第一引数]に置き換える 3行目:コンポーネントからクイックアクションAPIを取得4行目:実行するクイックアクションのAPI参照名を定義 オブジェクトのクイックアクションを呼ぶ場合: “[オブジェクト名].[API参照名]” グローバルクイックアクションを呼ぶ場合: “Global.[API参照名]”5行目:クイックアクションAPIの実行「~.selectAcrion」6行目~8行目:成功時の処理9行目~11行目:失敗時の処理

Salesforceで使える便利なGoogleChromeの拡張機能3選

GoogleChrome拡張機能一覧 目次 Salesforce DevTools Salesforce DevTools 具体的な機能 ORGanizer for Salesforce ORGanizer for Salesforce 具体的な機能 Salesforce inspector Salesforce inspector Warning ページレイアウトに配置されていない項目(フローが動作して設定される値など)も変更できてしまうため、意図しない動作となる可能性がある。 具体的な機能 Note データのエクスポート/インポートもできる。 オブジェクトの設定画面まで遷移や、開発者コンソールを開いてなどの手間が不要となり効率アップになるかも。

Aura ComponentからLightning Web Component を呼ぶ方法

LWCをURL(新規ボタンまたはリンク)から呼びたい時ありますよね!しかしLWCはURLから直接呼ぶことはできません。そのため、URLからAuraを呼びAuraからLWCを呼ぶ必要があります。簡単ではあるが、URLパラメータの取得/設定方法やLWCの呼び出し方法が忘れがちのため備忘録として記載。

VSCode上でSalesforceと連携するための設定方法について

VSCodeとSalesforceを連携することで「VSCodeを使用したApexの開発」「Metadata APIの使用」など便利な機能が使えるようになります!この記事ではVSCode上でSalesforceを繋ぐための準備として、VSCodeの設定方法について記載しています! 目次 STEP1. Open JDK のダウンロードおよびインストール 1. Open JDK ダウンロード  ※筆者はJavaのJDKのバージョンはZulu 11を使用。※2023/12時点では17推奨 JDK version 17 (Recommended), or JDK version 11.  Slaesforce公式:Java 設定 2. Open JDK インストール Step2. Salesforce CLI のインストール https://developer.salesforce.com/docs/atlas.ja-jp.sfdx_setup.meta/sfdx_setup/sfdx_setup_install_cli.htm STEP3. Visual Studio Code のインストール STEP4. Visual Studio Code の拡張機能のインストール STEP5. Visual Studio Code のセットアップ 以上です!!良いVSCodeライフを! 次のステップ↓↓↓ VSCodeでSalesforceと連携してApexクラスを取得〜デプロイしてみよう

Apex入門

TRAILHEAD 本記事は以下のTRAILHEADの内容をまとめたもののため以下を実施が前提となる 目次 SOQL/DML SOQL SOQLとは Salesforce上の各オブジェクト(テーブル)に問い合わせるためのクエリのこと基本構文としてはSQLと同じになる。 Apex内でのSOQL使用例 またWHERE句などSQLと同じように条件を指定することができる DML DMLとは Salesforce上の各オブジェクト(テーブル)を登録/更新/削除するための処理のこと。 insert 新規レコード登録 update レコード更新 upsert delete レコード削除 ※ よく調べるやつ 構文的にSQLと同じ箇所が多いが大きく違う箇所が以下の2点になる 外部サイト: Salesforce Spring ’21の新機能、SOQLのFIELDS()関数について 非同期処理 非同期処理とは 通常Apexのプログラムは一つのスレッド上で実行される。非同期処理では複数のスレッドで処理が実行される。ガバナ制限の回避や、大量のデータをやり取りする場合はバッチ処理を使用する。 @future アノテーションを使う ※使用頻度は高くないためコード例のみ記載 Apex 開発者ガイド: future のメソッド Database.Batchable バッチ(Database.Batchable)を使う ポイント : バッチの全体的な動きとしては以下のような動きになる Apex 開発者ガイド: Apex の一括処理の使用 スケジューラ スケジューラとは 非同期処理の一つ。Salesforce上で設定した曜日に間隔的に実行することができる。 スケジューラの使用例 以下のクラスを作成するだけでSalesforce上で以下クラスのスケジュール設定を行うことができる トリガ トリガとは オブジェクトが登録や更新などのアクションを起こした際に呼ばれるもの。アクション前、後などタイミングを選択することができる。 トリガの使用例 以下の引数をトリガに渡すことによってイベントを取得することができる … Read more

Visualforce間でPOSTパラメータを渡す方法

経緯 Visualforceの画面遷移時にGET(URL)パラメータを使用しないでパラメータを渡す方法を調べたが記載が少ないため、Visualforce間の画面遷移/新規ウィンドウ表示/新規タブ表示時にPOSTパラメータを渡す方法を備忘録として記載。※セッションは使用していません。 Visualforce画面遷移 Visualforce側の<apex:form>で値をsubmitしてしまうとGETパラメータで値が渡ってしまうため、コントローラ(ApexClass)側のPagereferenceでパラメータを設定する必要がある。 渡す側 受け側 新規ウィンドウ表示 Visualforceページを新規ウィンドウで表示&POSTパラメータで値を渡す方法について、前述に記載したとおりVisualforce側の<apex:form>で値を設定してしまうとGETパラメータで値が渡ってしまうため、<form>でmethodにPOST指定しなければならない。もっと良いやり方があったら教えてほしい。。受け取り側は通常の画面遷移時と同じ 渡す側 受け側 新規タブ表示 新規ウィンドウと受け渡しはほぼ一緒でwindow.openでOption指定しなければ新規タブとして表示される。 渡す側 受け側 あとがき <apex:form>でPOST指定できるようにならないかな。。。より良い方法がありましたら教えてください!

簡単なRemoteActionの使い方

経緯 RemoteActionの呼び出し方をよく忘れるため備忘録として記載。 RemoteActionとは Javascriptから呼び出すことができるControllerクラスのメソッド。受け取りたい値(引数)とJavascriptに渡したい値(戻り値)を指定することができる。ActionFunctionとは違いStaticメソッドのためメンバー変数の値を変更することができない。 RemoteActionの使用方法 以下の記載方法でJavascriptから呼び出すことができる。 RemoteActionメソッドの作成 RemoteActionの使用方法 実行結果 参考:Visualforce 開発者ガイド – JavaScript Remoting の例 https://developer.salesforce.com/docs/atlas.ja-jp.pages.meta/pages/pages_js_remoting_example.htm 追記 引数なしのメソッドを呼び出す場合 引数が2つあるメソッドを呼び出す場合