Get Super Badge - Apex Specialist

3004 ワード

前言
Apex Specialistは、ビジネスの課題を達成するために異なる非同期呼び出し方式を使用することを主に学びます.
コンポーネントの紹介
  • Standard & Custom sObject
  • Master-Detail Relationship
  • Rest Callout (Http Callout)
  • Remote Site Settings
  • Apex Trigger
  • Schedulable Interface
  • Future Annotation
  • JSON & Inner Class
  • Test Class (Trigger Test, Mock Test, Asynchronous Test)

  • 以上のコンポーネントは、本モジュールで使用されている関連コンポーネントです.以下で説明します.
    sObject
    sObjectはSalesforceのデータベーステーブルの総称であり、System Name Spaceの次のClassでもあります.CRMでは,一般的なオブジェクトとしてAccount,Contact,Leadなどがあるが,これらはいずれもsObjectである.Apexコードでは
    sObject so = new Account();
    

    この方式で宣言する.このような方式は,下位汎用インタフェース,サービスを行う際に大きな役割を果たす.sObjectはStandardとCustomの2つのタイプに分けられ、CustomとStandardのタイプの違いは、Custom sObjectが__cで終わることです.たとえば、システムにPlan sObjectを作成すると、API NameがPlan__cになります.
    Master-Detail Relationship
    Salesforceでは、sObject間の関連関係は、LookupとMaster-Detailの2つに分類されます.このうちLookupは弱接続関係であり,強制的な連絡は存在しない.一方、Master-Detailは強い接続関係であり、Master側がDetail側の権限を完全に制御していることを意味します.たとえば、OpportunityとOpportunityLineItem_cがMaster-Detail関係である場合、OpportunityLineItem_cの権限はOpportunityによって制御され、Opportunityが削除されたときに関連付けられたOpportunityLineItem_cは同時に削除されます.Master-Detail関係はRollup Summaryタイプのフィールドを実現することができ、Detail側のデータを追加の開発を必要とせずに複数の要約、計算方法でMaster側に容易に実現することができる.
    Rest Callout
    このような方式は、Http Calloutで実現するものであり、具体的には、
    Http h = new Http();
    HttpRequest req = new HttpRequest();
    HttpResponse res = h.send(req);
    

    他の言語で実装されているHttp Callと基本的に似ていますが、Salesforceが提供する基礎的なHttp Callout方式であることに注意してください.実際のビジネスプロセスでは、このような形式に基づいて異なる程度のパッケージを行うことができます.
    Remote Site Settings
    Salesforceでは不明なURLへのアクセスは許可されていません.URLにアクセスする必要がある場合は、Remote Site Settingsに関連する構成を追加する必要があります.
    Apex Trigger
    データベース内のTriggerと同様に、Apex Codeを直接呼び出すことができます.基本的な書き方は以下の通りです.
    trigger trigger_name on sObject_type (before/after dml_operation) {
      //implement your logic
    }
    

    Schedulable Interface
    Salesforceでは、タスクインタフェースをスケジュールします.唯一の方法はexecuteです.インタフェースを実装したら、ApexページでSchedule Apexをクリックして具体的なタイミングスケジューリング方式を実装します.
    Future Annotation
    非同期呼び出し方式は、別のスレッドに等しい.実際の使用では、メソッドに@Futureを付けて表示します.例は以下のとおりです.
    @Future
    public static void test (params) {
      //implement your logic
    }
    

    Futureタイプのfunction戻り値はvoidのみであり、パラメータタイプはベースタイプまたはコレクションタイプのみであり、sObjectまたはVOではありません.
    JSON & Inner Class
    JSON解析と内部クラスは,使用方式上特別な方式はなく,他の言語と類似している.
    Test Class
    Test classとは、Salesforceに@isTestまたはtestMethodタグを追加する方法で、これらのクラスはSalesforceのCode Characterに計上されません.実際、Test Classは主にApex Class/Triggerの論理をテストするために使用され、カバー率が75%以上であることが要求されている.
    需要説明
    HowWeRoll社は、ビジネスの発展に対応するために、自動的にMaintenance Requestを作成し、定期的に倉庫システムからデータ同期を実現する必要があります.倉庫から引き出されたデータはExternal Idに従ってupsertを行う必要がある.詳細は、link
    インプリメンテーション
    コード作成の説明は明日にします.詳細はgithubを参照:https://github.com/ericann/Super-Badge---Apex-Specialist.週末に再構築する時間があります.
    問題があったら伝言を残してください.筆者も自分が出会った問題を整理して共有します.