tyoshikawa1106のブログ

- Force.com Developer Blog -

SFDC:LEXのお気に入り機能を試してみました

Spring'17のプレリリース環境でLightning Experienceのお気に入り機能を試してみました。
f:id:tyoshikawa1106:20170115182254p:plain


Salesforce で頻繁に使用する項目へのショートカットで、レコード、ダッシュボード、または任意の場所で星をクリックすることで利用できるみたいです。


レコードにアクセスするとガイドが表示されました。
f:id:tyoshikawa1106:20170115182520p:plain


手順を確認のリンクをクリックするとこのウォークスルーは用意されていませんとエラーメッセージが表示されましたが、利用方法は右上の★をクリックするだけです。
f:id:tyoshikawa1106:20170115182631p:plain


こんな感じ。
f:id:tyoshikawa1106:20170115182709p:plain

f:id:tyoshikawa1106:20170115182727p:plain:w300


レコードに限らず様々なページを登録できます。
f:id:tyoshikawa1106:20170115182931p:plain


中にはサポートされていないページもありました。
f:id:tyoshikawa1106:20170115182949p:plain


編集リンクから削除や並び替えができるみたいです。
f:id:tyoshikawa1106:20170115183052p:plain


任意の名称を指定することもできました。
f:id:tyoshikawa1106:20170115183117p:plain


お気に入り機能の詳細はリリースノートに記載されています。
f:id:tyoshikawa1106:20170115183346p:plain

Salesforce Spring ’17 Release Notes

SFDC:モバイルアプリ『Limits Monitor』を試してみました

Salesforceのモバイルアプリ『Limits Monitor』を試してみました。
f:id:tyoshikawa1106:20170115162252p:plain

Limits Monitor on the App Store


データストレージやAPI実行数など組織の利用状況を確認できるアプリです。開発者向けというよりは運用組織で意図しないレベルの消費をしていないか監視できるアプリだと思います。

使い方

iPhoneで利用できます。
f:id:tyoshikawa1106:20170115160409j:plain:w250


初回起動時に利用規約が表示されます。
f:id:tyoshikawa1106:20170115160438j:plain:w250


いつものログインページが表示されます。ログインすると認証ページも表示されます。
f:id:tyoshikawa1106:20170115160448j:plain:w250


ログインするとつぎのように利用状況の一覧が表示されます。
f:id:tyoshikawa1106:20170115160554j:plain:w250


右上のEditで不要な監視対象を除外したりできます。
f:id:tyoshikawa1106:20170115160627j:plain:w250


左上のSettingで細かい設定を行います。
f:id:tyoshikawa1106:20170115160647j:plain:w250


一覧から対象をタップすると詳細ページが表示されます。
f:id:tyoshikawa1106:20170115160750j:plain:w250


運用開始後にデータストレージを消費しすぎていたり、意図せずAPI制限ギリギリの実行をおこなっていないかチェックするができて便利だと思います。

SFDC:Spring'17プレリリース環境でapex:sldsタグを試してみました

Spring'17でapex:sldsタグが追加されたそうなのでプレリリース環境で試してみました。

f:id:tyoshikawa1106:20170115105417p:plain

Use the Lightning Design System in Visualforce Pages


次のように宣言することでLightning Design SystemのCSSを適用してくれるタグです。静的リソースにアップロードする必要もなくなり便利そうです。

<apex:slds rendered="true" />


次のコードを用意して試してみました。
f:id:tyoshikawa1106:20170115105640p:plain

<apex:page docType="html-5.0" sidebar="false" tabStyle="Account">
    <apex:slds rendered="true" />
    <div class="slds">
        <div class="slds-box">
            <apex:form id="form">
                <apex:input type="text" styleClass="slds-input" html-placeholder="Account Name" />
                <div class="slds-m-top--small">
                    <apex:commandButton value="Go!" styleClass="slds-button slds-button--brand" />
                </div>
            </apex:form>
        </div>
    </div>
</apex:page>


無事にLightning Design SystemのCSSを適用することができました。
f:id:tyoshikawa1106:20170115105730p:plain


renderedオプションを保持しているので『rendered="false"』と宣言すればSLDSをOFFにできます。
f:id:tyoshikawa1106:20170115105854p:plain


SLDSのバージョンですが2.1.3(コメントには2.1.2)が適用されていました。
f:id:tyoshikawa1106:20170115110113p:plain


現在の最新は2.2.1なので一番最新バージョンが適用されるわけではないかもしれません。
f:id:tyoshikawa1106:20170115110205p:plain


あとはフォントの読み込みがうまくいっていなさそうでした。(Salesforce Classicで確認)
f:id:tyoshikawa1106:20170115110341p:plain


プレリリース版なので上記で確認したバージョンやフォントの読み込みは変更されるかもしれません。DE組織でちょっと動かしたいときにも便利そうなタグでした。

SFDC:Chatterの質問からケースを登録する方法

Summer'16の新機能でChatterの質問からケースを登録できるようになりました。
f:id:tyoshikawa1106:20170108144304p:plain


この機能を利用するには設定→ケース→サポート設定のページで有効化する必要があります。
f:id:tyoshikawa1106:20170108144348p:plain


ページの下の方に「Salesforce で質問-to-ケースを有効化」のチェックボックスが用意されています。「コミュニティで質問-to-ケースを有効化」の方でコミュニティユーザでも利用できるようになります。
f:id:tyoshikawa1106:20170108144553p:plain


次にフィード項目レイアウトの設定でケースにエスカレーションアクションを追加します。
f:id:tyoshikawa1106:20170108151027p:plain


これでケースにエスカレーションアクションが利用できるようになります。
f:id:tyoshikawa1106:20170108151155p:plain

f:id:tyoshikawa1106:20170108151220p:plain


これでChatterの質問からケースを作成することができました。
f:id:tyoshikawa1106:20170108151316p:plain

また有効化後はプロファイル設定のケース 項目レベルセキュリティでChatterの質問項目が追加されます。これの権限を追加する必要があります。
f:id:tyoshikawa1106:20170108145521p:plain


ページレイアウトに追加しておくと詳細ページから対象のChatterフィードに移動できるようになります。
f:id:tyoshikawa1106:20170108151412p:plain


フィードタブからでもアクセスできますし、ナレッジ機能との連携も可能みたいです。
f:id:tyoshikawa1106:20170108151544p:plain


Chatterの質問機能がどんどん便利になってきました。この機能は現時点ではSalesforce Classic専用機能となるみたいです。

参考

質問-to-ケースの設定

SFDC:ID検証方法がユーザに追加されたときの流れ

ID検証方法がユーザに追加されたときの流れについて確認してみました。2要素認証有効化時の話です。次のように権限セットを用意してユーザに割り当てます。
f:id:tyoshikawa1106:20170108140929p:plain
f:id:tyoshikawa1106:20170108140920p:plain


以前試した時には気にしていなかったのですが、割り当てたタイミングでは特にメール通知等はありませんでした。対象ユーザがログインしたときに2要素認証の設定画面が表示される仕組みとなっているみたいです。(初回ログイン時は除く)
f:id:tyoshikawa1106:20170108141342p:plain


別の検証方法を選択リンクをクリックすることで、アプリ認証か確認コード認証かを選択できるようになっていました。
f:id:tyoshikawa1106:20170108141519p:plain


通知メールは届きませんでしたが、ログイン時に必ず目につくようにメッセージが表示される形となりました。またモバイルアプリを利用できない人のために認証コードを選択できるようにもなっています。


ID検証の利用状況はSummer'16からビューやレポート&ダッシュボードで確認できるようになったみたいです。

ユーザによる ID の検証方法の確認

SFDC:ビューステートエラーとRemoteActionの送信上限の考慮について

Apexではpublic変数を用意することでページとクラス側で値のやりとりを簡単にできる変数を用意できます。ですが無制限に用意できるのではなく上限をオーバーするとビューステートエラーが発生します。
f:id:tyoshikawa1106:20170108134240p:plain


ビューステートエラーで気をつけなくては行けないのはファイルデータの扱いです。apex:inputFileタグをつかってファイルデータを保持した状態でreRenderなどで値のやりとりを行うと一発で発生します。ファイル添付画面→確認画面→アップロード処理実行というような機能を実装するときはJavaScriptRemotingなどで対応する必要があります。


またビューステートエラーが発生するからapexタグはダメだ。できるかぎりJavaScriptRemotingで対応する。という感じでRemoteActionを利用することがあると思います。実はRemoteActionにもApex側に値を渡すときに上限があります。
f:id:tyoshikawa1106:20170108134801p:plain


このようにJavaScriptRemotingで実装するときもいろいろ考慮する必要があります。


ビューステートエラーとRemoteActionの制限エラーが発生したときの一番の問題ですが、設計レベルで見直しが必要になることです。「NULLチェックが抜けていた」「保存処理がうまく実行できていなかった」という問題の場合はApex処理を修正して本番環境にリリースすれば修正できます。ですがビューステートエラーとRemoteActionの制限エラーの場合はデータの持たせ方から変更する必要がでてきます。場合によっては一から作り直す。オブジェクト構成から考え直すという状況にまでなる可能性があります。


組織に数万件のデータが溜まってきて動かなくなったということはあるかもしれませんが、数千件程度で動かなくなる処理というのは何かがおかしいので、運用が始まる前の開発フェーズで必ずチェックしておいた方が良いと思います。

関連記事




SFDC:主従関係と参照関係の違いについて

主従関係と参照関係の違いについてです。別のオブジェクトと関連付けを行うときは主従関係もしくは参照関係の項目を用意して対応します。
f:id:tyoshikawa1106:20170108131322p:plain


似たような項目なのでとりあえず主従関係にしとこうとか、なんとなく参照関係にしようといった選択を行うケースがあると思います。基本的に親レコードが存在しているときにのみ作成されるレコードの場合は主従関係という考え方で大丈夫だと思います。


主従関係と参照関係の違いですが、主従関係を選択する大きなメリットがあります。

  • 積み上げ集計項目が作れる
  • 所有者を主オブジェクト側で一元管理できる
  • 主オブジェクト側のレコードを削除すると従レコードもまとめて削除できる


他にもあるかもしれませんが主従関係は上記3つの便利な特徴を備えています。積み上げ集計項目はよく使われる便利な機能で特定の条件で従レコードの件数や合計値などの情報を取得できます。これにより関連レコードが何件といった条件のデータをビューやレポートなどでまとめることも可能です。


所有者を主オブジェクト側で一元管理できることは地味な部分ですが便利な機能です。所有者の移行などが必要になったとき主オブジェクト側を修正して従オブジェクト側を修正して・・とひとつひとつやらなくては行けませんが、主従関係にすれば一箇所の所有者を変更すれば対応が完了します。主と従で所有者を変更しなくてはいけないときには参照関係にする必要がでてきます。


主オブジェクト側のレコードを削除すると従レコードもまとめて削除できる機能は本当に便利です。Salesforceに登録したデータは永久にそのままというわけではなく必要のなくなったデータは削除されると思います。このとき参照関係にしておくと親レコードが削除されても関連する子レコードはそのままになってしまいます。意味のあるデータならそれでも良いのですが大抵の場合役に立たないデータとして残ることになると思います。主従関係ならこの問題を簡単に解決できるのでオススメです。


一度作成した主従関係と参照関係の項目ですが、後からデータ型を変更することも可能です。ですがその場合は所有者項目やレポートタイプに変更が入るので、既存のビューやレポートに影響が出てしまいます。
f:id:tyoshikawa1106:20170108133142p:plain


後から変更することは可能ですが、出来る限り最初に検討してどちらを利用するのか選択した方が良さそうです。

関連記事