リストビューからレコードを選択して一括削除する方法

前書き 画像のように、リストビューで選択したレコードを一括削除する方法をご紹介します。 注意事項 リストビューへの「削除」ボタンの実装はユーザからの要望が多い機能ですが、「データの信頼」および「ガバナンス」の観点から、多くの場合アンチパターンです。 各企業のシステム管理者およびSalesforceパートナー企業はユーザや顧客から要望があったとしても安易に実装しないでください。 リード(見込み顧客)やケース(問い合わせ)のノイズや重複の対処においては、削除ボタンによる物理削除ではなく、“その他問い合わせ”に分類するなどの論理削除を第一に検討してください。… Read More »

サブドメインをセカンダリドメインとして追加する方法【GoogleWorkspace】

前書き GoogleWorkspaceのセカンダリドメインとしてサブドメインを登録する方法をご紹介します。 方法 ■手順① 通常のドメイン追加と同様にGoogle Admin上で「ドメイン>ドメインの管理>ドメインを追加」の順にクリックし、任意のサブドメインをセカンダリドメインとして追加… Read More »

Setupオブジェクト(設定オブジェクト)とは何か?【Salesforce】

概要 Setupオブジェクト(設定オブジェクト)とは、メタデータを操作・開発する際に利用されるオブジェクトを指す。 Salesforceのシステム管理者が設定画面でユーザやページレイアウト、フローなどを編集している際に操作しているのが実はSetupオブジェクト(設定オブジェクト)である。 一方で、多くのユーザにとって馴染みのある取引先や取引先責任者などの標準オブジェクトやカスタムオブジェクトは全てNon-Setupオブジェクト(非設定オブジェクト)に分類される。 Setupオブジェクト(設定オブジェクト)とNon-Setupオブジェクト(非設定オブジェクト) は同一のトランザクションで処理することができず、そのような処理を行った場合はMIXED_DML_OPERATIONエラーが発生する。… Read More »

Apexテストクラスのベストプラクティスおよびテンプレート

ベストプラクティス ■汎用的なテストデータは@isTest内で準備する @testSetupで準備したデータは全てのテストメソッドで使いまわすことができます。 そのため、各テストメソッドで共有して使いまわしたいテストデータは、各テストメソッド内ではなく、@testSetupアノテーション付きのメソッド内で事前に準備しておきましょう。 ■テストデータの作成は、TestDataFactoryを利用する TestDataFactoryを利用することで、オブジェクトのメタデータに依存する記述を一箇所に集約できるようになります。… Read More »

Test.startTest()・Test.stopTest()の意味と使い方

前書き Salesforceでは一般に↓のようなお作法に則ってTestClassを書くべしと言われていますが、そもそもTest.startTest()とTest.stopTest()って何ぞや?という方もいらっしゃるかと思います。 なので、今回はTest.startTest()とtest.stopTest()の意味と使い方についてご紹介したいと思います。 Test.startTest()・test.stopTest()とは何か 結論から言うと、Test.startTest()・test.stopTest()は主に下記の二つの役割を有しています。 ①Test.startTest()とTest.stopTest()の中が、その外とは別のガバナ制限のコンテクストにおいて動作するようにする。… Read More »

staticかインスタンス化か【Salesforce Apex】

前書き 任意のメソッドを呼び出す方法として、①staticなメソッドを呼び出す ②クラスをインスタンス化した上で、インスタンスメソッドを利用する という二つの方法が挙げられるかと思います。 Salesforce開発では、大抵の場面においてどちらを利用しても実現したい機能を実装すすことが可能ですが、本記事では改めてそれぞれの特徴と選択の基準についてまとめてみたいと思います。 ApexTriggerでのインスタンスメソッドの呼び出しの例 Trigger Class… Read More »

画面フローの「電話(Phone)」コンポーネントにおける「パターン(pattern)」について

前書き タイトル通り、画面フローの「電話(Phone)」コンポーネントにおける「パターン(pattern)」の仕様について扱いたいと思います。 電話(Phone)コンポーネントに関する公式記事はこちら 「パターン(pattern)」とは? 電話コンポーネントのパターン項目は、その他のコンポーネントにおける入力検証(Validation)のための数式に相当します。 ただし、一般的な入力規則や(画面コンポーネントにおける)入力検証とは異なり、数式を利用せずに正規表現をそのまま入力する必要があります。… Read More »