技術をかじる猫

適当に気になった技術や言語、思ったこと考えた事など。

Salesforce開発の基礎編2

Aura コンポーネントの基本概念

trailhead.salesforce.com

日本語が長ったらしく意味不明なので、調訳。

  • バンドルと要求のライフサイクルについて
    • 根本的にブラウザ側で動作するコンポーネントである。
    • ハンズオン内容は、ほとんど空っぽの Aura Component を作成してデプロイするだけなので、特にハマることはないはず
  • アーキテクチャ概念について
    • 概念: 複数ページアプリケーションと単一ページアプリケーション:
      VFみたいに画面をページ遷移して処理する…様な扱いではなくて、画面状態を変更するという形で画面を変えていく。単一ページ内で状態を変えながら処理していくモデルを単一ページアプリとここでは定義してる。
    • 概念: ページとコンポーネント:
      Aura Component は一つ一つ独立した小さなコンポーネントを、1ページ内に複数配置して動作させるイメージになる。
      • コンポーネント間はイベントを飛ばしあって通信する。コントローラでは特定のイベントに反応して処理するような作りをしていく。
      • 上記の様にコンポーネント間の繋がりが薄いので、グループ的に組み合わせて作成できる。
      • Aura コンポーネントは色々なところで使える
    • 概念: アプリケーションコンテナ
      Aura コンポーネントは Lightning Experience をはじめとした色々な箇所で利用できる。
      Salesforce Classic, VF, Salesforce アプリケーション, Lightning Experience ... これら動作させる環境を「コンテナ」と呼んでるっぽい。
      コンテナによってイベントを飛ばしても処理されないことがある。
      コンテナは入れ子構造にできるが、実行する Aura コンポーネントが利用できる機能は直近の親コンテナの機能だけだ。
  • コーディング概念について
    • 概念: コントローラ
      Aura コントローラはブラウザ上で動く。データ操作とか欲しければ Apex のコントローラを挟め。
    • 概念: アクション
      JavaScript で関数書く。class とかそういう言語機能のない時代の産物なので、オブジェクトプロパティとして関数を追加していく。
      「,」に注意は、後の問題にも出る。
      • コンポーネントの属性
        aura:attribute で属性宣言しなけばならず、コントローラからのアクセスも component.get('v.属性名') component.set('v.属性名', 値) しないといけない。
        この「component」 は環境の暗黙変数(暗黙とかクソやんと恨み言を吐きたい)。
        一応、「component.変数名 = 値」で突っ込みもできなくない(JavaScript Expando)けど、非推奨。
    • 概念: メソッドコールとイベント
      コントローラと画面は直接的にメソッドコールできない。やるならイベント経由。

なんというか長いうえに冗長過ぎてわかりにくい。

データモデリング

trailhead.salesforce.com

  • カスタムオブジェクトと標準オブジェクトについて
    • オブジェクトの概要
      データベーステーブルはオブジェクト、列は項目、行はレコード これ以上言うことがない。なんでこんな長く説明するんだ…
    • オブジェクトについて知る
      Salesforce ビルトインの 標準オブジェクト と、会社や業種、またはアプリ固有の カスタムオブジェクト がある。
      カスタムオブジェクトは名称の後ろに __c が追加される。カスタムオブジェクトには自動で以下の項目が追加される
      • ID : 自動生成ユニークプライマリキー (個人的にカスケード嫌いなので個の仕様は好き)
      • システム系統項目 : CreatedDate, UpdatedDate CreatedBy, UpdatedBy, OwnerId, LastModifiedDate など。システムなので自動更新項目。
      • 名前 : Name フィールド、自動採番にもできる。 カスタム項目は文字列とかテキストエリアとかも指定できるが、独特なのに Datetime(UTC でしか保存されない) と、Date (こっちはローカル日時)、数式(レコード保存時に数式を評価して自動設定される型)、複数選択項目(保存時; で文字列保存されてる型)がある。
  • オブジェクトリレーションの作成
    • リレーション系は 参照関係主従関係 がある。参照は普通のデータベーステーブルの外部キー。主従関係にすると親子関係をかなり厳密に処理する。二つ以上主従できないとか親が消えると子がすべて消えるとか(カスケード)。
  • スキーマビルダーの使用
    使い方の説明と試しだけです。