Salesforce
Apexメソッド系 カスタムメタデータの取得(SOQLエンジンに頼らないので高速) getAll() 特定のカスタムメタデータ型のレコードを含むMapを取得するために使用する. マップのキーは DeveloperNames で、その値がレコードとなる. 特定のカスタムメタデータ型の…
ApexメソッドによるCRUDチェック Apex Class / Trigger内 下記2つは紛らわしいのでかならず抑える 2つとも、sObjectTypeが使用される. Schema.DescribeSObjectResult オブジェクトに対してユーザにCRUD権限があるかどうかをチェック Schema.sObjectType.Cust…
アンロックパッケージを使用して、開発・テストを行う方法 sfコマンドで対象組織にログイン MyTPは適当に把握できる文字列に変更する. sf org login web --alias MyTP DevHub組織を作成する VSCodeで作成されたprojectに project-scratch-def.jsonがあると思…
外部オブジェクトと標準オブジェクトの関連付け 標準/カスタムオブジェクトを親とし、外部オブジェクトを子としたい 間接参照関係項目を使用する. help: 外部オブジェクトの間接参照関係項目 外部オブジェクトを親とし、標準子 / カスタムオブジェクトを子と…
Apex Trigger Before / After Triggerの違い Before Trigger DMLがCommitされる前に実行される. 入力規則が更新したいオブジェクトに設定されている場合. 新規作成、更新をトリガされた同じオブジェクトで行う場合. After Trigger DMLがCommitされた後に実行…
Lightning Web コンポーネントのサーバーエラー処理 LDS ワイヤーアダプター、LDS 関数、Apex コールで発生するエラーには特定の構造がある エラーに関する情報を取得するには、JavaScript コードでエラー応答を処理する @wireでリンクしたプロパティの場合 …
Lightning Web コンポーネントでの Apex使用検討例 レコードデータが 1 件のトランザクションをカスタマイズする場合 1 つのトランザクションで複数レコードの操作を実行する場合 lightning-datatableを使用して、無限スクロール、インライン編集、ヘッダー…
Lightning Data Service JavaScriptを使用してコンポーネントをSalesforceデータに接続できる セキュリティも提供する セキュアなUI APIエンドポイントに対してサーバコールを実行するため パフォーマンスを高められる 全てのコンポーネントでクライアント側…
LWC/Visualforceとのデータアクセスの違い LWC ClientはJavaScriptからLDS(Lightning Data Service)、あるいはApexを呼び出す LWCエンジンがクライアントにデータを返却し、JavaScriptがデータを保持してmarkupを生成する LDS(Lightning Data Service) Apex…
前提 SFDXを使用 特にデータ更新などはなく、単純なHTML & JSのみの作成 手順 force-app/main/default/lwc にて Create Lightning Web Componentを選択 HTMLファイルを下記に編集 <template> <lightning-card> <lightning-input type="number" label="Annual Revenue" formatter="currency" value={annualRevenue} onchange={handleChange}> </lightning-input> </lightning-card></template>
Visualforce との違い Visualforce クライアントからリクエストあがあると、サーバーがRenderingし、HTMLをクライアントに出力する UIが変更された場合(URLリンクをクリックされた場合など)、再度サーバーにリクエストを送って新しいページをクライアント…
SOQLとの使い分け SOSL が最も役に立つのは、データがどの項目やオブジェクトに存在しているかが正確にわかっておらず、複数のオブジェクトにわたって検索する必要がある場合 SOQL は関連オブジェクトにのみ使用できる 例 検索語は中括弧. FIND {jos*} IN AL…
概要 Big Object は、10 億件以上のレコードでも安定したパフォーマンスを発揮できる 組織や外部システムは API の標準セットを使用してアクセス可能 標準とカスタムが存在する API名は xxx__bとなる カスタム項目を定義する(1つは必須の項目が必要) イン…
設定 [設定] → プラットフォームキャッシュ キャッシュの種類 組織キャッシュ 組織の誰もが使用できるデータを保存される。 セッションキャッシュ 個々のユーザセッションに結び付けられたデータが保存される。 キャッシュキー名の形式 下記の形式. Namespac…
Bulk API 大規模データセット操作用に最適化されている Bulk API の非同期フレームワークは、千から百万単位のレコードのデータを簡単で効率的に処理できるように設計されている SOAP および REST API は同期要求を使用しており、一度に少数のレコードを更新…
Web Services Description Language (WSDL) API コールを行うためのバインド、プロトコル、オブジェクトが含まれているファイル 2 つの SOAP API WSDL Enterprise WSDL は、単一の Salesforce 組織向けに最適化されている Partner WSDL は、多数の Salesforc…
Workbenchを使うとき レコードを作成する URI: /services/data/v53.0/sobjects/account Method: POST { "Name" : "NewAccount1", "ShippingCity" : "San Francisco" } レコードを参照する URI: /services/data/v53.0/sobjects/account/describe Method: GET …
監視を行うには 設定 → Apexジョブ ApexSyncJobの照会 参考: salesforce.stackexchange.com SOQL AsyncApexJob jobInfo = [SELECT Status, NumberOfErrors FROM AsyncApexJob WHERE Id = :jobID]; スケジュール済みジョブの監視 SOQL CronTrigger ct = [SELE…
スケジュール済み Apexとは Apex スケジューラーを使用すると、Apex クラスの実行を遅らせて、指定した日時に実行できる スケジューラーは、Apex 一括処理を使用した日次または週次のメンテナンス作業に最適 スケジュール済み Apex ジョブは一度に 100 件し…
Queueable Apex とは future メソッドと同様に非同期処理のジョブを送信でき、加えて下記の利点がある Queueable クラスには、sObject 型やカスタム Apex 型など、プリミティブ以外のデータ型のメンバー変数を含めることができる System.enqueueJob メソッド…
Apex 一括処理とは 通常の処理制限を超える可能性がある大規模ジョブ (たとえば、レコード数が数千~数百万件ある場合など) の実行に使用する 一括処理クラスの実行ロジックは、処理するレコードのバッチごとに 1 回コールされる 一括処理クラスを呼び出すた…
future Apexとは future Apex は、後でシステムリソースが使用可能になったときに複数の処理を別個のスレッドで実行するために使用する サンプルfuture メソッドの構文 future メソッドは静的メソッドである必要がある void型のみを返す 指定する引数は下記…
非同期Apexの種類 種別 概要 一般的なシナリオ future メソッド 独自のスレッドで実行され、リソースが使用可能になるまで開始しない。 Web サービスコールアウト。 Apex の一括処理 通常の処理制限を超える大規模なジョブを実行する。 データの整理やレコー…
概要 Apex クラスメソッドを REST または SOAP Web サービス処理として公開可能 メソッドを Web 経由でコールできるようにすることで、外部アプリケーションと Salesforce を統合可能 #ApexクラスをREST Webサービスとして使用する - クラスの定義、メソッ…
Httpコールアウトをするには 'POST'で、BodyがJsonの場合 @Future(callout=true) private static void postToPMS(String serviceToken, String jsonInput, Id targetOppId){ HTTPRequest req = new HTTPRequest(); req.setEndPoint('callout:ProjectService'…
概要 キモとなる機能のようだがイマイチTrailheadがわかりにくく悪戦苦闘 trailhead.salesforce.com 概要はこちらの方がわかりやすい qiita.com イベントの定義 <aura:event type="COMPONENT"> <aura:attribute name="expense" type="Expense__c"/> </aura:event> コンポーネントからイベントの送信 (送信側) <aura:registerEvent name="updateExpense" type="c:expensesItemUpdate"/> ... </aura:registerevent>
trailhead.salesforce.com 背景 画像はTrailheadから拝借... View-Controller-Controller-databaseモデル Aura Componentのモデル図は下記のようになっていたことを再度認識する Aura Componentのモデル図 これまで作成していたもの 1. Createボタンがクリッ…
SLDSとは? Salesforce Lightning Design System 下記のように.appファイルにSLDSを追加することで、トップレベルコンポーネントおよびそのすべての子コンポーネント内で、SLDS リソース (スタイルシート、アイコンなど) の場所について気にせずに、SLDS ツ…
コントローラーとは? 基本的にコードのコレクションであり、「何かが実行された」ときのアプリケーションの動作を定義する LightningコンポーネントとMVCモデルとの違い LightningコンポーネントはView-Controller-Controller-Model もしくは View-Controll…
コンポーネントの属性 コンポーネントの属性とは、値を保存できる場所. 属性は、<aura:attribute> タグを使用して定義され、name属性とtype属性の値が必要. name属性は変数名のようなもの. type属性は、変数の型を示すようなもの. 例えば、Stringだったり、yourCustomObject_</aura:attribute>…