Upgrade to Pro — share decks privately, control downloads, hide ads and more …

sfdcnihonkajinstudyevent-1-JavaVsApex

 sfdcnihonkajinstudyevent-1-JavaVsApex

Avatar for japanesechenmy

japanesechenmy

March 02, 2019
Tweet

More Decks by japanesechenmy

Other Decks in Technology

Transcript

  1. 2、コーディング規約 Salesforceコーディング規約の構成 ◆ 基本アーキテクチャ MVC、DAO、Tigger、Object ◆ 画面規約 標準画面、Visualforce画面 ◆ オブジェクト規約

    項目命名規約、項目の長さ、インデックス/外部キー、レコードタイプ ◆ コーディング命名規約 クラス名、メソッド名、引数、変数全般、ローカル変数、オブジェクト、カスタム表示ラベル ◆ プログラミング規約 使用文字規約、構文規約、空白行、コメント、例外処理規約 Salesforceコーディング適用の例 http://magnet88jp.hateblo.jp/entry/2014/07/03/143256 クラス名 ・Controllerクラス名には名前の最後に” Controller”をつける。 ・例外クラス名には名前の最後に”Exception”をつける。 ・トリガークラス名には名前の最後に” Trigger”をつける。 ・バッチクラス名には名前の最後に” Batch”をつける。
  2. 3、データ型、変数、ループの差別 項目/型一覧 カスタム項目 データ型 DisplayType Enum SOAPType Enum Primitive型 自動採番

    String String String string 数式 calculated 戻り値のデータ型次第 戻り値のデータ型次第 戻り値のデータ型次第 外部参照関係 ? ? ? ? 参照関係 ID ID ID string 主従関係 ID ID ID string URL url URL String string チェックボックス boolean Boolean Boolean boolean テキスト string String String string テキスト(暗号化) encryptedstring EncryptedString String string テキストエリア textarea Textarea String string パーセント percent Percent Double double メール email Email String string テキストエリア (リッチ) textarea TextArea String string ロングテキストエリア textarea TextArea String string 数値 number Double Double double 選択リスト picklist Picklist String string 選択リスト (複数選択) multiPicklist MultiPicklist String string 地理位置情報 location Location Location ― 通貨 currency Currency String string 電話 phone Phone String string 日付 date Date Date date 日付/時間 date Datetime Datetime datetime
  3. 3、データ型、変数、ループの差別 API データ型 API データ型 データ型 ID 参照関係、主従関係 string 自動採番、メール、電話、選択リスト、複数選択リスト、テキスト、テ

    キストエリア、ロングテキストエリア、テキストエリア (リッチ)、データカテゴ リグループ参照、および URL。テキスト、テキストエリア、ロングテキスト エリアでは、WSDL では最長文字数が異なります。 boolean チェックボックス double 通貨、数式、数値、パーセント、積み上げ集計 型により異なる ユーザインターフェースで数式項目を作成する場合、型を指定する必 要があります。この型は同じ名前の API データ型である currency、 date、date/time、number、percent、text に対応します。 APEXデータ型 Apexデータ型 データ型 プリミティブ Apex は、SOAP API と同じプリミティブデータ型を使用します。 Blob,Boolean,Date,Datetime,Decimal,Double,ID,,Inte ger,Long,String sObject 取引先、取引先責任者、または MyCustomObject__c など、 汎用 sObject または特定の sObject のいずれかの sObject コレクション List、Set、Map 列挙型 public enum Season {WINTER, SPRING, SUMMER, FALL} ユーザ定義の Apex クラス システムが提供する Apex ク ラス 例:database null null (任意の変数に割り当てることができる null 定数) データ型のstring/date/number/booleanはanyTypeデータ型
  4. 3、データ型、変数、ループの差別 変数 ローカル変数は、Java スタイルの構文で宣言されます。 Java と同様、複数の変数を単一のステートメントで宣言および初期設定できます。 Null 変数および初期値 変数は、宣言した後に値で初期化しないと null

    になります。 Boolean b; クラス変数 変数を定義するには、次の構文を使用します。 [public | private | protected | global] [final] [static] data_type variable_name [= value] キーワード Apex は、キーワード final、instanceof、super、this、transient、with sharing、および without sharing を提供します。 Instanceof オブジェクトが実際に特定のクラスのインスタンスであることを確認するには、instanceof キーワードを使用します。 super キーワードは、仮想クラスまたは抽象クラスから拡張されるクラスで使用できます。 transient キーワードは、保存ができず、Visualforce ページのビューステートの一部として送信することもできないインスタンス変数の宣言に使用します。 inherited sharing キーワードを使用して、そのコール元のクラスの共有モードでクラスを実行します。 アノテーション @AuraEnabled @Deprecated @Future @InvocableMethod @InvocableVariable @IsTest @ReadOnly @RemoteAction @SuppressWarnings @TestSetup @TestVisible Apex REST アノテーション: @RestResource(urlMapping='/yourUrl') @HttpDelete @HttpGet @HttpPost @HttpPut
  5. 3、データ型、変数、ループの差別 Salesforceのループ Apex では、5 種類の手続き型ループをサポートしています。 ◆do {statement} while (Boolean_condition); ◆while

    (Boolean_condition) statement; ◆for (initialization; Boolean_exit_condition; increment) statement; ◆for (variable : array_or_set) statement; ◆for (variable : [inline_soql_query]) statement; すべてのループは、次のループ制御構文を使用できます break; ループ全体を終了します。 continue; ループの次の反復にスキップします。 例: リスト反復またはセット反復の for ループ: for (variable : list_or_set) { code_block } SOQL for ループ: for (variable : [soql_query]) { code_block }
  6. 4.SalesforceのDML SalesforceのDML DML ステートメント次の DML ステートメントを使用できます。 ◆ insert ◆ update

    ◆ upsert ◆ delete ◆ undelete ◆ merge JAVAのDB操作 Javaのコードにおいて、あまり外部ライブラリに依存せずに使 うための方法として、基本としてよく出るのがJDBCというシス テムを使う方法です。 例: import java.sql.Connection; import java.sql.DriverManager; import java.sql.SQLException; import java.sql.Statement; Database クラス データを作成および操作するメソッドが含まれます。 Search クラス Search クラスのメソッドを使用して、動的な SOSL クエリを実行します。 find(searchQuery) query(query)
  7. 5.Salesforceのクラス Apexクラスの種類 ◆ Controllerクラス ⇒VF画面に関連する 標準 カスタム 拡張クラス ◆ その他クラス

    ⇒共通処理など。 WF用クラス Daoクラス ◆ トリガークラス ⇒DML操作に連動する。 ◆ バッチクラス ⇒日次・月次バッチ。 Apexクラスのテスト 最低限のカバー率である 75%。 トリガー、バッチクラス実行の注意事項 1トランザクションの処理レコード件数の分割 トリガー ⇒200件 バッチ ⇒最大2000件 注意1:業務上データの分割により、データ不整合。 注意2:バッチ実行時のお互いデータロック。 1 200 201 400 親レコード 子レコード