Translate

2011年4月24日日曜日

Force.com開発コースを受講する

Salesforce社の最後の研修、
Force.com開発コースを受講した。

以下がテキストの目次。
#2011年2月版

Force.comイントロダクション
  • Force.comとは
  • Force.comのメリット
  • Force.comプラットフォームでの開発
  • アップグレードとメンテナンス
  • Force.comプラットフォームでの開発に適するアプリケーション
  • 人材採用管理アプリケーション
このコースはあまり内容がないので
実際に速攻で省略された。
まあ前提研修受講済みの人なら飛ばされても
文句を言う人はいないと思う程度の内容。
この研修では前回の基礎コース同様
人材採用管理アプリをベースに演習が構築されている。


Force,comでの開発(DEV551)
  • Modile1: Development as a Service
  • Application Lifecycle Management(ALM)入門
  • Development as a Service に関するSalesforce.comの考え方
  • Module2: 統合開発環境
  • 概要
  • メタデータAPI
  • Force.com IDE
  • Force.com Sandbox
  • Force.com Code Share
  • 参考資料:変更管理
Force.com IDEはEclipseのForce.com開発用プラグイン。
Code Shareとあるが、構成管理ツールが提供されるわけではない。
SandboxやDeveloper Editionの使い方についての解説がメインかな。


Force.com Code(Apex)(DEV541)
  • Module1: Apexの紹介
  • Apexの紹介
  • Apexはクラウド
  • Apexの紹介使用例
  • Module2: データ型とロジック
  • データ型
  • ロジック
  • Module3: Apexでのオブジェクト指向プログラミング
  • クラス
  • 変数とメソッド
  • Apexライブラリクラス
  • Module4: データベース
  • sObjectリレーション
  • SOQL
  • SOSL
  • DML
  • Apex共有
  • Module5: Apexトリガ
  • トリガの型
  • トリガコンテキスト
  • トリガの制限
  • Module6: 例外、デバッグとテスト
  • 例外
  • デバッグ
  • テスト
  • Module7: 配置
  • 配置の概要
  • 他組織への配置
  • Module8: ApexとWebサービス
  • SOAP Webサービス
  • SOAP Webサービスコールアウト
  • REST Webサービスコールアウト
  • 非同期Apex
  • Module9: ApexとE-mail
  • インバウンドEmailサービス
  • Apexからのメール送信
  • Module10: 高度なトピック
  • 動的Apex
  • Visualforceコントローラ
  • バッチApex
  • カスタム設定

Apexクラス中心のコース。
文法は基本的な書き方程度で
言語仕様をがっつりという講義はなかった。
中心はDML/SOQL/SOSLか。
Force.com環境ではSOAPサーバ、クライアントどっちにもなれるので
それを説明してくれる。
Force.com上のメールアドレスへメールを送ると
トリガが走ったり指定のアドレスへ送信するとかもできることを学ぶ。
バッチは重要だけどとばされてしまった。
どうも時限起動できるバッチが作れるらしい。
工夫すれば出来るのかもしれないが、
この研修では
RESTサービスのサーバとしては使えないと教えている。
ガバナ制約があるのでRESTサーバにするのは
正直つらい基盤であるのでしょうがないところはある。


Force.com(Visualforce) Pages(DEV511)
  • Module1: visualforceの紹介
  • Visualforceの概要
  • Visualforceの基本
  • Module2: Visualforceコンポーネント(タグ)
  • タグの基本
  • タグバインディング
  • Module3: Visualforceコンポーネント(タグ)ライブラリ
  • コアコンポーネント
  • デフォルトLook and Feelコンポーネント
  • Module4: フォームとアウトプットコンポーネント
  • フォームコンポーネント
  • 出力コンポーネント
  • Module5: Visualforceコンポーネントの部品化
  • Module6: VisualforceでのJava Script
  • アクションバインディングとJava Script
  • JavaScript機能
  • ページの部分的な更新
  • 非同期オペレーションステータス
  • イベント上のAJAXの動作
  • Module7: Introduction to Visualforce(Apex)コントローラ
  • コントローラの概要
  • 標準コントローラ
  • カスタムコントローラ
  • 拡張コントローラ
  • Module8: その他
  • VisualforceとSite
  • VisualforceとSiteモバイル
apexタグをひとつひとつ解説してくれるわけではない。
こういうのがあるよというインデックスレベルでどんどん進むし
テキストにすべてのタグが記載されているわけではない。
Siteについてもがっつりとばされてしまった。
このコースの内容からすると、
どうも既存の宣言的開発ではちょっと届かない範囲
をこのコース内の知識でナントカクリアしてね
といった構成に読めた。
コントローラについては解説があったが
どうも最近次のコースに独立したためか
概要レベルにとどまった。

Force.com(Visualforce)Page Controllers(DEV521)
  • Module1: Visualforceの復習
  • Visualforceページ
  • Module2: Visualforce標準コントローラ
  • Visualforceコントローラ
  • 標準コントローラ
  • Module3: Visualforce拡張コントローラとカスタムコントローラ
  • カスタムコントローラの作成
  • 拡張コントローラ
  • カスタムコントローラの作成
  • Module4: その他のVisualforceコントローラトピック
  • カスタムウィザードコントローラ
  • コンポーネントコントローラ
  • コントローラのテストと配置
  • Visualforce付録

このコースでコントローラについて説明。
Force.com上ではセッションが使えないが
そのかわりにViewStateという機能があり
これでやりくりする方法を学ぶ。






この研修では計5日間で、
開発環境から、DML、SOQL/SOSLなどのDBまわり、
Apexクラス、トリガ、Visualforce、そしてコントローラと
毎日毎日新しいことを講義と演習で綴られている。

テキストは本体が約400ページ、
ページ数が振られていないので詳しく数えていないが
演習テキスト(別冊)も100ページは超えている。

予想通りテキストも演習も全部学習できるわけではない。
以下は演習ガイドの目次だが、右端に*をつけた部が
実際に演習を行った。
だいたい6割といったところか。

Force.comでの開発(3/8)(DEV551)
  • 演習1-1 Sandbox組織の作り方*
  • 演習1-2 Force.com IDEのインストールと構成
  • 演習1-3 Force.com IDEプロジェクトの作成*
  • 演習2-1 組織の構成を調査
  • 演習2-2 スキーマブラウザによるSOQLクエリの実行*
  • 演習2-3 既存オブジェクトと修正
  • 演習2-4 新しいオブジェクトとリレーションシップの作成
  • 演習2-5 Force.com IDEとForce.com Builder間の連動*
本研修の環境作りも入っている演習と行ったところ。


Apex(12/18)(DEV541)
  • 演習1-1 Hello World Apexクラスとトリガの作成*
  • 演習2-1 匿名ブロックを使用した簡単なApexコーディング*
  • 演習4-1 募集職種(Position)の共有*
  • 演習5-1 申し込み(job Application)のStatusの変更*
  • 演習5-2 応募者(Candidate)の重複防止*
  • 演習5-3 給与(Salary)情報の共有*
  • 演習5-4 求人サイトに募集職種(Position)を掲載
  • 演習5-5 申し込み(Position)の共有(Option)
  • 演習5-6 と給与(Salary)の関係を1対1に制限
  • 演習6-1 テストクラスの作成*
  • 演習7-1 別の組織へのApex配置*
  • 演習8-1 カスタムSOAP Webサービス*
  • 演習8-2 外部WSDLのインポート*
  • 演習8-3 非SOAP HTTPコールアウト
  • 演習9-1 インバウンドメールサービス*
  • 演習9-2 アウトバウンドメールの送信*
  • 演習10-1 動的SOQLでの検索
  • 演習10-2 Apexトリガを使用した上級な承認プロセス
Apexトリガが利用される業務要件ケースを
演習タイトル化してくれている。
穴あきソースを埋める形式なのだが、
埋めなくてはいけないコードの説明が
コメントで書かれている。
おまけに全部英語..
しかもその文面が人材管理アプリのオブジェクト構造を
きちんと理解していないと時間内にとても終えることは出来ない。
このため、ほとんどの研修受講者は回答コードをEclipseに
貼り付けてコードを読んで理解するという方式をとらざるを得なかった。
講師も一部日本語化して配布していたが、
正直研修前に全部日本語化しておいてほしかったところだ。


Visualforce Pages(8/11)(DEV511)
  • 演習1-1 Visualforce Hello Worldの作成*
  • 演習2-1 VisualforceでのPDFの生成*
  • 演習3-1 Salesforce詳細ページの再作成*
  • 演習4-1 別のUIウィジェットを使用したデフォルト編集ページのオーバライド*
  • 演習4-2 インラインページの表のデータの表示*
  • 演習5-1 Flashウィジェットを含むデフォルト編集ページのオーバライド*
  • 演習5-2 カスタムコンポーネントの作成
  • 演習5-3 ページテンプレートを使用したページの作成
  • 演習6-1 状況フィールドのための部分的ページリフレッシュの作成*
  • 演習7-1 カスタムコントローラを使用したVisualforceページの作成*
  • 演習7-2 より複雑なコントローラの使用
Visualforceの演習では
apexタグが大量に出てくる。
のでほぼコードを独力で埋めることは出来なくなった。
毎日の詰め込みで記憶飽和量をほぼ全員が突破している。
特筆すべきはカスタムコンポーネントの作り方か。
これはコミュニティサイトのドキュメントで学習するのは
とても効率が悪いので。


Visualforce Controllers(3/7)(DeV521)
  • 演習3-1 拡張コントローラの作成*
  • 演習3-2 拡張コントローラへのGetter/Setterの作成
  • 演習3-3 カスタムコントローラへのGetter/Setterの作成
  • 演習3-4 オブジェクトラッパークラスを使用するコントローラの作成
  • 演習4-1 マルチウィザード用の拡張コントローラの作成*
  • 演習4-2 カスタムコンポーネントコントローラの作成
  • 演習4-3 カスタムコントローラの単体テストの実施*

コントローラとなるApexクラスの作り方が中心。
ViewStateの使い方がポイント。
結論を言うと
コントローラクラスは JSF の
Managed Bean だとおもえばいい。
そのManaged Bean上の
Transient以外のフィールドが
自動的にViewState上にのっかる。
ただしSavePointがフィールドとして
乗っけられないので、
データベース(sObject)のトランザクションは
1リクエスト完結せざるをえない。
まあアプリとしてロールバック処理を
1行1行書いていけばつくることはできる。




この研修受講前提として
Java/.NETでWebアプリ開発をやったことのある人、
Java開発者でいえばJSFないしはStrutsでWebアプリを作った経験がある人か。

正直未経験者は
テキストをもらいにこの研修に参加するだけになってしまう。
部下を研修に行かせようとする人は
投資が無駄になるような人は送り込まない方が良い。



今回の講師は
Salesforce研修全部の講師の中で
一番腰が引けていた。
ただ
研修期間内は講師はSalesforce社に質問を
なげられるらしい。
なので、知識のない人が先生やっていても
きがねなくばんばん質問しちゃって良いようだ。

ただし
認定試験の内容に関する質問に答えると
講師資格を剥奪されるらしい。
サイトに置いてあるStudyGuide以上の内容は
回答できない「ガバナ制約」が働いている事に注意。

2011年4月15日金曜日

Salesforce for Social Media4.1を試す















自分のFacebookのウォールに
Salesforce社のコメントで
「Salesforce for Social Media4.1」
についての案内が出ていたので、
ためしにDeveloper Editionに
なんとなくいれてつかってみた。


自社の商品やサービスについて
TwitterアカウントやFacebook(ファン)ページをつくっていて
TLや検索結果のつぶやきやコメントを取り込んで評価を分析したり
有用なつぶやきをFacebookウォールコメントや社内のChatterへ回送したり
TwitterやFacebookコメントをくれたユーザをリードや取引先責任者化したり
するマーケティング担当者用のアプリケーションだ。

ただ、アプリとしてTwitterやFacebookからデータを取り込むところまで
はできるのだけど、
自動的に評価してくれる
とかの機能はざんねんながらない。


自動評価振り分けのようなものを
やろうとおもえば
たとえばHadoopやAmazon Map&Reduce とかを使って実装して
ワークフローのアウトバウンドメッセージとかで
別システムにそっくり投げて結果をもらうとかしないと
いけなくなる。


インストールすると
「Salesforce for Twitter」というカスタムアプリケーションが増える。
このアプリには以下のようなタブがデフォルトで見えている状態になる

・ホーム
・Salesforce for Twitter(上の絵)
 設定へとぶことができる
・ダッシュボード
 現時点で取り込んだメッセージ分析のダッシュボード
・取引先責任者
・リード
・ケース
・キャンペーン
 取り込んだメッセージからレコード化されたものを見るための
 標準タブ
・Twitterの会話
 取り込んだタイムライン
 1行1行ちくちくと人間が評価する
・Twitterアカウント
 設定画面
 複数のアカウントをセットできる
 パスワードを指定するとSalesforce内のフィールドから
 Twitter、Chatter両方同時にメッセージを投げることができる
 (上の絵の画面から)
・Twitter検索
 ハッシュタグ検索取り込みの場合使用する
 キャンペーンレコードを先に作っておいて、
 そのキャンペーンで使ったハッシュタグをセットするのが
 どうも正しい使い方らしい
・Facebook Page
 Facebook Userが管理者となっているFacebookページ
・Facebook User
 Facebookページの管理ユーザを登録する

あくまでFacebookページのみで
Facebook個人ページのウォールは取り込まれないようだ
Facebook Userは管理者となっているアカウントを登録するだけである

海外の企業は
FacebookページやTwitterアカウントを積極的に
営業ツールとして使用しているが
国内ではどれくらいいるのか..
あまりいないのかなあ..

マニュアル(?)も英語のPDFしかないし..

2011年4月13日水曜日

「Salesforce CRM システム管理者コース修了者対象Force.com基礎コース」を受講する




長ったらしいタイトルのコースだが
先日受講してきた。


もらったテキストは以下のコース(章)に
わかれている。

・Force.comイントロダクション
Force.com概要をざっくり説明する。
正直さきのコースの焼き直しだが、
Salesforceの研修で「Force.com」と記載のあるものは
基本PaaSとしてSalesforceを使うらしいことと、
Force.comライセンスとSalesforce CRMライセンスとの
違いくらい。

・アプリケーション基礎
アプリケーション、タブ、ページレイアウトを
含むオブジェクトの作り方の復習。
カスタム項目として暗号化項目
(入力したら*やらXでマスクされる項目)の作り方、
変更セット(SVnのタグみたいなやつ)くらいが新出。

・複数ユーザのためのアプリケーション設計
プロファイル、ロール、共有ルール、手動共有などの
セキュリティモデル復習が中心。
新出はApex共有
(手動共有ボタン押したときの理由項目を増やす)
くらい。
あとForce.comライセンスとSalesforce CRMライセンスとの
違いかな。

・ビジネスプロセスの実装
入力規則、ワークフロー、承認プロセスの復習。
新出はデバッグログ
(指定したオブジェクトの操作を20件までログをとる)。
ワークフローや承認プロセスで埋め込める
アウトバウンドメッセージを使ったり、
動的に承認者を割り当てる方法
(Apexトリガを使うが詳細説明なし)
などを学習する。

・データ管理
インポートエクスポートのより実践的な方法の説明。
新出はデータローダを
コマンドラインから実行する方法くらいか。
実際にインポートする演習が山かな。

・分析
レポート機能の復習..らしい。
結局時間がなく、
新出項目以外はばっさり省略されてしまった。
新出は分析スナップショット
(レポートを時間串で見るための機能)のみ。


もともと演習テキストが充実していて
人材採用システムをカスタムアプリを
ほぼ宣言的実装で作ってしまうという
Force.comの基礎ともいう位置づけのコンテンツで、
これを管理者コース受講者は差分だけ学習する。

なので、演習もとびとびで
いまいちやったという充実感が常に欠ける
研修だった。

ぶっちゃけていえば、
上記の新出項目をヘルプで読み解いて
Developer Editionで試しておけば
わざわざお金をはらって受講する必要はない。

特に
正直コンサルタント資格取得を目指す人は
不要だと思う。
管理者コース終わったら、
コンサル受験のコースへそのまま進めばいい。

演習自体は
ワークブックのアプリをもう少し難しくしたくらいの内容。
Developer Editionではライセンス数の上限があるので
どうしてもプロファイルやロールにバリエーションが
だせないので、
その辺は実践的とは言えるかもしれないけど。


内容が復習8割新規2割だったためか、
受講しても
ふわふわした感じがして
他の研修と比べるとどうしても
手抜き感をうけてしまう。


興味のある方は受けてみてください。

2011年4月12日火曜日

Chatterのデモ環境を立ててみる

捨ててもよいメールアドレスで
Salesforce Developer Editionを使って
デモ環境を作ってみた。

と、かくとかっこよく読めるが、
なんのことはない。
Developer Edition上にChatter Freeアカウント4つつくって
ちょっとデモ用のつぶやきを書き入れただけだ。
一応どこからでも入れるように
全IPアドレスからのアクセスをOKにセットしているくらい。


Chatterをよく知らない人でも

https://login.salesforce.com/?locale=jp

から
ユーザ名「kircheis@empire.gov」
パスワード「P@ssw0rd」
でログインすればなんとなく使い方はカンでわかるはずだ。


なお、上記アカウントなら
メッセージは自由に書き込んでもらって
かまわない。



使ったことのある人、
上記IDでログインした人はわかるとおもうけど、
まあ社内Twitterという理解でいいとおもう。

ハッシュタグでの検索もできるが
グループお作ってその中でつぶやきを共有するのが
いいとおもう。

Salesforce CRM/Force.com ってログインされなくなると
とたんに契約を切られてしまうので
それを防ぐために Twitter 機能をつくって
5000ライセンスを契約者にタダで配って大盤振る舞いして
Chatter使っている関係上契約がなかなか切れない
状況をつくろうとしているのだとおもう。

Salesforceを使ってみると
微妙に機能が足りなくて
それを満たすのにライセンス追加やEdition変更とかを
やらなくてはならない。

いい商売しているなあ..

2011年4月4日月曜日

Salesforce.com システム管理者コース後篇を受講する

受講してかなり時間がたってしまったが、
後篇についても書いておく。

大まかな章立ては以下の通り。

ワークフロー
・ワークフローの理解
・ワークフロールールの定義
・ワークフローアクションの設定

承認プロセス
・承認プロセスの計画
・承認プロセスウィザードの使い方
・承認プロセスの作成

分析―レポート
・カスタムレポートの作成
・高度な絞り込み
・条件付き強調表示
・カスタム集計項目
・カスタムレポートタイプ
分析―ダッシュボード

マーケティング管理
・リードの利用
・キャンペーンとキャンペーンメンバの管理
・リードキューと割り当てルール
・Web-to-リードと自動レスポンスルール

コールセンタ
・ケース管理の設定
・ソリューションの管理

Salesforceの拡張
・カスタムオブジェクト
・カスタムタブ
・カスタムアプリケーション

AppExchange
・AppExchangeの概要

前編の難易度から
気合を入れて後編にのぞんだが、
それほど難しくなかった。

どうも前篇の
ユーザ、プロファイル、ロールと
共有モデルの部分が
Salesforceのヤマだったようだ。

前編で標準オブジェクトを中心にカスタマイズを行い、
後篇の最初のワークフローや承認プロセスで
プロセス面の味付けをするといった流れのようだ。
で、SFAを中心とした標準オブジェクトで解説だったので
抜けていた
・リード(見込み顧客)
・キャンペーン
・ケース(問い合わせ)
・ソリューション(FAQ)
などに特化した機能について解説してくれた。

SFA中心のテキスト構成なので、
マーケティングやコールセンターをメインに
Salesforceを使用したい会社にとっては
正直不満が残る。

カスタマーポータルの作り方や
なによりService CloudとSales Cloudの違いが
研修にでてもさっぱりわからない。

電話連携やソフトフォンなどの
コールセンタを構築する側が一番知りたいところは
全く触れられずおわってしまう。

講師に質問しても
Salesforce営業・サポートに聞いてほしい
ってかえってくるし..


前・後編を受講すると
「標準オブジェクトをベースにカスタマイズを行い
 セールス(、マーケティング、コールセンタ)を利用できるようにする」
までが独力でできるようになる。

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...