Trailhead挑戦 オブジェクト固有のクイックアクションの作成

Trailheadのハンズオン挑戦シリーズ2回目です。
ハンズオンの実施が2回目な訳では無く、説明とハンズオンの指定に従ってやってもうまくいかなかず、私が詰まったハンズオンの2つ目です。

オブジェクト固有のクイックアクションの作成

挑戦したモジュール

前回と同じ、Salesforce1(モバイル向け環境)のカスタマイズを行います。
前回がグローバルクイックアクションだったのに対して、今回はオブジェクト固有のクイックアクションを学びます。


トレイル:システム管理者初級
モジュール:Salesforce1 モバイルのカスタマイズ
      オブジェクト固有のクイックアクションの作成
https://trailhead.salesforce.com/ja/trails/force_com_admin_beginner/modules/salesforce1_mobile_app/units/salesforce1_mobile_app_actions_objectspecific

ハンズオン情報

行動オブジェクト(Event)に見込みのバイヤーのフィードバックを入力するクイックアクションを作成します。
行動と活動を読み違えないようにてください。私は読み間違えて最初からやり直しました。

ハンズオン問題文

Create a quick action on the event object for entering a prospective buyer’s feedback
Your brokers want to capture the feedback of their potential buyers after they look at a property. Create a quick action on the event object so brokers can update an event with their notes immediately after a showing. Add the action to the publisher for the Showing layout.


Before You Start
If you haven’t already done so, complete the steps in this unit before attempting this challenge. The challenge uses custom objects and fields created in the unit.


Challenge Requirements
Create a quick action for the event object
Action type: Update a Record
Label: Enter Feedback
Remove all the fields on the page layout except for Name
Put the Feedback field on the page layout
Add the Enter Feedback quick action to the publisher for the Showing Layout. You might have to override the predefined actions in the Salesforce1 section of the publisher.

ハンズオン問題文(意訳)

あなたのブローカーは、不動産を見た後、潜在的な買い手のフィードバックを取りたいと思っています。
イベントオブジェクトに対してクイックアクションを作成して、ブローカが表示後直ちにイベントをノートで更新することができるようにします。
表示レイアウトのパブリッシャにアクションを追加します。


あなたが始める前
まだチャレンジしていない場合はこのチャレンジを試みる前にこのユニットの手順を完了してください。
課題は、ユニット内で作成されたカスタムオブジェクトとフィールドを使用します。


課題の要件
イベントオブジェクトのクイックアクションを作成します。
アクションタイプ:Update a Record
ラベル:Enter Feedback
名前以外のページレイアウト上のすべてのフィールドを削除します。
フィードバックフィールドをページレイアウトに配置します。
表示レイアウトのパブリッシャにフィードバック入力クイックアクションを追加します。 パブリッシャのSalesforce1セクションで事前定義されたアクションをオーバーライドする必要があります。

発生したエラー

ハンズオンの指定に従って、クイックアクションを作成し、challengeを確認をクリックしても、以下のエラーメッセージが表示されます。
アクションページレイアウト上には、名前とフィードバックだけになっていたので、エラーの原因は何だろう?という感じでした。

エラーメッセージ

Challenge Not yet complete… here’s what’s wrong:
The ‘Name’ and ‘Feedback’ fields either do not appear on the new action page layout or they are not the only fields present.

エラーメッセージ(意訳)

アクションページレイアウトが’Name’ど’Feedback’の項目だけになっていません。
(’Name’ど’Feedback’以外の項目があるとダメです。)

解決方法

エラーメッセージに項目名が出ているという事は、正解と項目名を比較していると考え、前回の経験を踏まえPlayground環境の言語設定をEnglishに変更しました。
やっぱり解決しました。
言語設定の変更は前回の「Trailhead挑戦 グローバルクイックアクションの作成」を参照ください。

まとめ

エラーメッセージを見て、項目名が出ていたので言語設定かもと、すぐに思い付く事ができました。
ただその前に行動と活動を混同してしまい訳が分からなくなりました。
問題文が英語なので日本語に読み替える際にどっちがどっちだか分からなくなるので気を付けてください。
もしくは、英語に抵抗が無ければ初めから言語設定を英語にしてしまうのも手かもしれません。

Trailhead挑戦 グローバルクイックアクションの作成

Trailheadを受講していた所、ハンズオンで数日詰まってしまっていました。
かなり悩んで、半分諦めていたのですが解決したので、同じハンズオンで詰まる方のために情報を残そうと思います。

グローバルクイックアクションの作成

挑戦したモジュール

Salesforce1という、モバイル向け環境のカスタマイズを行います。
このモジュールの単元では、ショートカットのような機能を追加します。


トレイル:システム管理者初級
モジュール:Salesforce1 モバイルのカスタマイズ
      グローバルクイックアクションの作成
https://trailhead.salesforce.com/ja/modules/salesforce1_mobile_app/units/salesforce1_mobile_app_actions_global

ハンズオン情報

商談を作成するためのグローバルクイックアクションんを作成します。
説明を読み、ハンズオンの指定に従って作成すれば、難しくはないです。

ハンズオン問題文

Create a global quick action for adding a new opportunity
Your realty company uses opportunities to track offers. When a buyer submits an offer on a property, the broker adds a new opportunity and sets the Stage field to Qualification.
Create a global action of type: Create a Record
Target object: Opportunity
Label: New Offer
Put only these 4 fields on the page layout for the new action: Opportunity Name, Close Date, Stage, and Amount
Set the predefined value of the Stage field to Qualification

ハンズオン問題文(意訳)

商談を作成するためのグローバルクイックアクションんを作成します。
あなたの不動産会社はオファーを把握するために商談を使用します。 買い手が不動産にオファーを提出すると、ブローカーは新しい商談を追加し、ステージフィールドをQualificationに設定します。
グローバルアクションタイプ:Create a Record
ターゲットオブジェクト:Opportunity
ラベル:New Offer
新しいアクションのページレイアウトには、Opportunity Name, Close Date, Stage, Amountの4つのフィールドのみを入力します
「ステージ」フィールドの事前定義済みの値をQualificationに設定します。

発生したエラー

ハンズオンの指定に従って、グローバルアクションを作成し、challengeを確認をクリックしても、以下のエラーメッセージが表示されます。
ページレイアウトの項目が間違っているとメッセージに出るので、確認をするのですが、何度見直しても間違っていないので数日間詰まっていました。

エラーメッセージ

Challenge Not yet complete… here’s what’s wrong:
The ‘Opportunity Name’, ‘Close Date’, ‘Stage’ and ‘Amount’ fields do not appear to be on the new action page layout.

エラーメッセージ(意訳)

‘Opportunity Name’、’Close Date’、’Stage’、’Amount’ がアクションページレイアウトにありません。

解決方法

Playground環境の言語設定をEnglishに変更した所解決しました。
まさか言語設定でエラーになるとは思っていなかったです。
言語設定が日本語だと、項目名が日本語になります。
おそらく、システム側が保持している答えが、英語の項目名を保持しており、比較の結果一致しないためにエラーとなっていると思われます。

言語設定変更方法

言語設定の変更方法は以下の通りです。
右上のユーザのアイコンを選択すると、以下のメニューが表示されるので設定を選択します。

左側のメニューで言語とタイムゾーンを選択し、言語を変更して保存すれば完了です。

まとめ

分かってしまえば理屈は単純でしたが、まさか言語設定でエラーになっているとは思いもしませんでした。
システムがハンズオンの結果をどうチェックするかを想像すればもっと早く結論にたどり着いたかもしれません。
当然ながら機械的にチェックをしているはずなので、文字列や各項目を比較している事は予想できてもおかしくないですね。

Data Loader入門

SalesforceのDBへの一括インポート、エクスポートツールである、Data Loaderに関して、調べたので色々備忘録です。
Salesforceでデータをダウンロードしようとすると、レポート機能を使うか、Data Loaderを使うかになると思います。
特に大量のデータを一括で扱う場合は、Data Loaderを利用します。

Data Loader入門

Data Loaderとは?

データを一括でインポート、またはエクスポートするためのクライアントアプリケーションです。
SOQLという、SQLに似た構文を持つ言語を利用します。
Salesforceで大量データのインポート、エクスポートを行う場合は、Data Loaderは避けられないと思います。

インストール手順

インストーラのダウンロード

セールスフォースの画面から、右上の設定を選択します。(ハンズオン環境でも可能です。)

左上のクイック検索ボックスに「データローダ」と入力します。入力すると絞り込みが行われるので、左側メニューのデータローダを選択します。
データローダを選択すると、右側に「Windowsでのデータローダのダウンロード」、「Macでのデータローダのダウンロード」が表示されるので、インストールする環境のインストーラをダウンロードします。

インストーラの実行

ダウンロードしたインストーラを実行し、利用規約に同意します。

使用しているPCのユーザが管理者権限を持っている場合はYESを選択します。
管理者権限を持っていない、または分からない場合はNo, or I’m not sureを選択します。

コンポーネントを選択します。特に指定が無ければデフォルトで大丈夫です。

インストール先を選択します。特に指定が無ければデフォルトで大丈夫です。

しばらく待つと、以下の画面が表示されます。

以上でインストール完了です。

その他

Data Loaderの実行には、Javaの32bit版が必要です。
Javaの32bit版がインストールされていない場合は、Data Loader起動時にOracle社のサイトが開くのでダウンロードしてインストールしましょう。

環境へのアクセス

Data Loaderをインストールしたのでクライアントアプリケーションから対象の環境へのアクセス方法です。
今回は、TrailheadのPlayground環境にアクセスしています。
最初にPlayground環境にアクセスしようとした所、エラーが出たので備忘を兼ねます。(Playground環境は、Production環境の扱いになるようです。)

Playground環境へのアクセス方法

Data Loaderを起動します。

EnvironmentでProductionを選択します。(Playground環境は、Productionにしないとアクセスできません。最初Sandboxを選択していたので、ログインできませんでした。)

Log inボタンを押下すると、ユーザ名、パスワードの入力欄が表示されるので、入力します。
初回アクセス時は、確認用のコードを確認されるので、受信した確認コードを入力しましょう。

アクセス許可を確認されるので、許可を押下します。

無事ログインできました。

SOQLでの日付の指定方法について

Data LoaderはSOQLというSQLと似た言語を利用してデータを抽出できます。
SQLが分かれば何となく調べながらで使えると思います。
また、SQL同様データの絞り込みには、Where句を指定します。
Data Loaderを使用して、日付を条件にSalesforceからデータを取得しようとした時、日付をどんな形式で入力すれば良いのか分からなかったので、調べました。

日付を条件の指定方法

以下の様な形式で、条件を指定します。(構文を間違えると、入力していたSOQLがリセットされて対象のオブジェクト選択からやり直しなのでショックが大きいです。)
Where 項目名 > 2017-04-01

覚えておく必要があるのは以下2点です。

  • ‘(シングルクォーテーション)や”(ダブルクォーテーション)は不要
  • YYYY-MM-DD形式

以下に参考になるページのURLを残します。
https://help.salesforce.com/articleView?id=000005553&language=ja&type=1

日付がずれる問題の対応

インストール後デフォルトの状態で、Data Loaderからデータを登録した場合、日付がずれるという事象が発生します。
対応方法をまとめます。

発生事象

Data Loaderを使用して、CSVファイルをInsertした所、1日前の日付で登録された。
例)2017/4/1を登録しようとすると、2017/3/31で登録された。

原因と解決方法

原因

原因は、Data Loader側の設定でした。
Saleforceのデータベースでは、日付型、日付時間型項目のデータは内部的に全てGMT(グリニッジ標準時)に変換され格納される仕様になっています。
今回はData Loaderのタイムゾーンの設定が「Asia/Tokyo」となっていたため、GMT(+9:00)から、GMTに自動変換を行っていました。
登録していたデータ日付型であり時間を持っていなかったため、00:00:00と判断され、その9時間前である、前日の15:00:00に変換されました。その後日付に変換され前日が登録されたようです。

変換前

2017/4/1 00:00:00 (GMT(+9:00))

変換後

2017/3/31 15:00:00 (GMT)

解決方法

Data Loaderの設定からタイムゾーンをGMTに変更すれば解決しました。
Settingを選択して、Setting画面を開きます。

Time ZoneがAsia/Tokyoになっているのを確認します。

Time ZoneをGMTに変更します。

参考

以下に参考サイトのURLを残します。
https://developer.salesforce.com/forums/?id=906F00000009B5mIAE
https://help.salesforce.com/articleView?id=000047804&language=ja&type=1

まとめ

Data LoaderはSQLを使った事があれば取っつきやすく、習得も早いと思います。
DBがクラウド上に存在するが故のタイムゾーンの問題等、固有の問題以外は調べながらですぐに使えるようになると思います。
Data Loaderの固有の問題は、直面する度に本ブログに記載する予定です。

Trailhead使ってます。

SalesforceのForce.com環境を使う機会があったので、学習のためにTrailheadを今年の2月頃から少しづつ進めています。
JavaやC、C#、VB.net、最近だとPython、Ruby等の言語であれば、PCにインストールする事で個人で学ぶ事が可能です。
パッケージソフトの場合、パッケージを購入したり、短い試用期間しか使えなかったりと、個人で学ぼうとするとなかなかハードルが高く感じます。
しかし、Salesforce.com社では、Salesforceを学ぶための、Trailheadというサイトが準備されており、学ぶ上での環境がかなり整っています。

Trailhead入門

Trailheadとは?

Salesforce.com社が無料で提供している、Salesforceを学ぶためのサイトです。
トレイル、モジュール、プロジェクトという形で学習パスや、各トピックの説明、ハンズオン等が用意されているために、効率よくSalesforceを学ぶ事ができると思います。
以下のURLからTrailheadにアクセス可能です。
https://trailhead.salesforce.com/ja

トレイル、モジュール、プロジェクトとは?

トレイル

トレイルは、モジュールとプロジェクトで構成された学習パスです。
1から学んでいく場合は、トレイルに沿って学習する事をお勧めします。

モジュール

モジュールは、特定のトピックのついて説明しています。
複数の短い単元から構成構成されていて、機能の概要、利点、使用方法などを学習できます。
また各単元の最後にchallengeというテストがあります。
特定の機能を学びたい場合は、対象のモジュールでの学習をお勧めします。

プロジェクト

プロジェクトは、ステップごとの手順に従ってハンズオン練習を行います。
実際にSalesforceでの構築を行うのに近い体験が可能です。

現在の学習状況

2月から学習を始めて、Beginner向けのトレイルを、進めています。
Trailheadには学習継続のモチベーションを高めるためのゲーミフィケーションとして、Trailblazerランクといものが用意されています。
Trailblazerランクは、モジュールやプロジェクトの各単元のchallengeで手に入るポイントと、モジュール、プロジェクト完了時に手に入るバッジで上がっていきます。

現在のTrailblazerランク

私は現在Adventurerランクです。下から4番目です。
次のMOUNTAINEERランクを目指しています。
Beginner向けのトレイルを進めていますが、ハンズオンが多いので、ポイントはどんどん溜まりますが、バッジなかなか取得できない感じです。

ADVENTURERの条件
バッジ: 10
ポイント: 9,000
各ランクの条件は以下のページに記載されています。
https://trailhead.salesforce.com/ja/trailblazer-ranks

限定バッチ

ゲーミフィケーションの仕組みとして面白いのが、限定バッチの存在です。
取得条件は不明なのですが、10/26にバッチを取得した所、Trick or Trailhead Ⅲというバッチを入手しました。
ハロウィン限定のバッチだと思います。(やっぱり、アメリカではハロウィンは特別なお祭りのようですね。)
他にもバッチを集めたくなりました。

使ってみた感想

GOOD

特にハンズオン用にPlayground環境が提供されるため、すぐに実際に動かして学ぶ事ができるのがうれしいです。
環境が準備されているので、環境構築で挫折する事がありません。(環境構築で学ぶ事が多いという意見もあるかもしれまんせんが。)
また、バージョン、環境差異で問題が発生する事もありません。

  • ハンズオン環境の提供
  • 豊富なモジュール
  • 学習パス(トレイル)が提示されている
  • 無料
  • ゲーミフィケーションが楽しい

BAD

一部、日本語未対応のモジュールや、言語設定を英語にしないとうまくいかないハンズオンがあり、英語が苦手だと取っ付き難い感じがあります。
また、ハンズオンのエラーメッセージが詳細には表示されないので、ハンズオンに詰まる事があります。

  • 一部日本語対応されていない
  • ハンズオンのエラーメッセージの内容が大まかにしか表示されない。

まとめ

Trailheadは、Salesforceを学ぶのにお勧めです。
豊富なハンズオンで実際に手を動かすので、知識だけに偏ってしまう心配もありません。
無料なので、興味があれば試してみるのはいかがでしょうか。