Quantcast
Channel: tyoshikawa1106のブログ
Viewing all 1438 articles
Browse latest View live

SFDC:Lightning Exceperienceとボタンとアクションの設定について

$
0
0

Lightning Experienceの編集ボタンですがSalesforce Classicのレイアウト設定と異なる内容が表示されています。
f:id:tyoshikawa1106:20170328233606p:plain


Lightning Experienceの編集ボタンの領域は「Salesforce1 および Lightning Experience アクション」で設定する仕様となっているためです。
f:id:tyoshikawa1106:20170328233844p:plain


レンチアイコンをクリックするとカスタマイズできます。
f:id:tyoshikawa1106:20170328233900p:plain


Classicとは別に独立する形で設定が可能となっています。配置した標準アクションの内いくつかの種類はExperienceでサポートされていないものがあるようです。こちらはSalesforce1用の設定でも利用されるのでそのために配置できるのだと思います。


ひとつずつ設定する必要があるので少し大変ですが、設定しておくと使いやすくなると思います。またAppExchangeアプリをインストール時にアクションが追加されていることもあります。関係の無いオブジェクトにアクションを表示させても利用者が迷うだけなのできちんとメンテナンスしておくと良さそうです。


SFDC:Lightning Experienceのグローバル検索とオブジェクト検索について

$
0
0

Lightning Experineceでも画面中央にグローバル検索機能が用意されています。
f:id:tyoshikawa1106:20170402175002p:plain


取引先やレポートなどの情報はもちろんChatterフィードも検索できます。
f:id:tyoshikawa1106:20170402175055p:plain


通常グローバル検索にはオブジェクトなどの設定情報を検索する機能はありません。
f:id:tyoshikawa1106:20170402175156p:plain


ですが設定画面に移動時のみ通常の検索とは別に「設定」に対して検索することが可能となっています。
f:id:tyoshikawa1106:20170402175316p:plain


オブジェクトと項目を検索できました。
f:id:tyoshikawa1106:20170402175342p:plain


オブジェクトマネージャーまで移動して検索する必要がないので便利だと思います。

SFDC:Lightning Experienceのメール送信機能を試してみました

$
0
0

Lightning Experienceのメール送信機能を試してみました。活動関連リストまたはメール送信ボタンから利用できるようになっているようです。
f:id:tyoshikawa1106:20170402180825p:plain


CCの指定も可能です。また取引先責任者やユーザの情報を元の予測検索の機能も用意されていました。
f:id:tyoshikawa1106:20170402181136p:plain:w300


関連先として取引先などと紐つけることも可能です。
f:id:tyoshikawa1106:20170402181239p:plain:w300


メールのプレビュー機能も用意されています。
f:id:tyoshikawa1106:20170402181356p:plain

f:id:tyoshikawa1106:20170402181415p:plain:w300


その他下記のオプションが用意されています。

  • ファイル添付
  • 差し込み項目の挿入
  • テンプレートの挿入
  • クリア


メール送信を行うと次のメッセージが表示されます。
f:id:tyoshikawa1106:20170402181633p:plain


受信メールはこんな感じです。
f:id:tyoshikawa1106:20170402181855p:plain


Salesforce経由でメールを送信しても送信元のメールアカウントには送信履歴が残ります。(送信者側にはsalesforce.com経由と表示されます。)
f:id:tyoshikawa1106:20170402182235p:plain


この機能のすごいところは、Salesforceの活動履歴にメールの履歴を記録できることです。
f:id:tyoshikawa1106:20170402182539p:plain


詳細ページに移動すれば本文や添付ファイル、送信者と受信者などの情報にアクセスできます。
f:id:tyoshikawa1106:20170402182919p:plain


試してみた所、送信したメールへの返信は記録されませんでした。(さすがに認識できないか)


もちろん送信元のメールアカウント側ではやりとりできますので初回のメール送信のみSalesforceから送る形になると思います。それでも日付と宛先をSalesforce上に記録できるメリットが残ります。複数の営業担当者が同じ顧客に複数回メールを送ってしまうような問題回避にも繋がりそうです。

追記

リリースノートにメールの返信機能の記載がありました。返信できるということは受信もできると思います。今回ヘルプまでは確認していないのですが設定等あるみたいです。
f:id:tyoshikawa1106:20170402184139p:plain

リリースノート

SFDC:重複登録された顧客情報をマージするときの流れ

$
0
0

Salesforceでは顧客情報を取引先と取引先責任者に登録して管理を行います。データ登録の業務中にうっかり同じ顧客の情報を重複して登録してしまったり、Force.comサイトなど外部に公開されたWebページから顧客が複数回登録するといったケースがあると思います。
f:id:tyoshikawa1106:20170413003355p:plain

f:id:tyoshikawa1106:20170413003723p:plain


そういったデータはSalesforceのマージ機能を使って1つにまとめることができます。
f:id:tyoshikawa1106:20170413004052p:plain


マージ機能には検索機能も用意されているため対象レコードを簡単に選択できるようになっています。
f:id:tyoshikawa1106:20170413004151p:plain


次のように基準となるレコードの選択と残したい値を個別に選ぶことが可能です。
f:id:tyoshikawa1106:20170413004341p:plain


マージを実行すると元に戻せないので注意して実行する必要があります。
f:id:tyoshikawa1106:20170413004424p:plain


実行すると複数あったレコードが1つにまとまります。
f:id:tyoshikawa1106:20170413004602p:plain


それぞれに紐付いていた取引先責任者などの関連リストの情報も引き継ぐことができます。
f:id:tyoshikawa1106:20170413004753p:plain


取引先責任者関連リストから取引先責任者のマージも同様の手順で実行できます。
f:id:tyoshikawa1106:20170413004903p:plain

f:id:tyoshikawa1106:20170413005004p:plain


ポータルユーザの有無も表示されます。Community Cloudを利用している組織では重宝すると思います。
f:id:tyoshikawa1106:20170413005045p:plain


これで複数登録されていた取引先責任者も1つにまとめることができました。
f:id:tyoshikawa1106:20170413005131p:plain:w300


取引先責任者のマージは同じ取引先に存在しているレコードが対象となります。そのため取引先のマージ→取引先責任者のマージという手順で進める必要があります。


取引先のときと同様でケースなどの関連先情報も引き継ぐことができます。
f:id:tyoshikawa1106:20170413005304p:plain


マージ処理を行うと最終更新日が更新されます。処理としてはUPDATEとDELETEが実行されるためです。Apexトリガなどが用意されている組織ではそのあたりを意識する必要があります。


また項目履歴の管理機能を利用している場合、マージされた履歴が残るようになっていました。


最後に重複データの洗い出しはサマリレポートで抽出するのが便利だと思います。
f:id:tyoshikawa1106:20170413003957p:plain


Salesforceのマージ機能をつかえば比較的簡単に組織のデータキレイにすることができます。マージ機能をつかえばあとからデータをキレイにできますが基本的には重複データは残さない仕組みを用意するのがいいと思います。例えば名前項目+メールアドレスを組み合わせた一意の外部ID項目を用意してUPSERT処理で登録するようにすれば重複データ登録を回避できると思います。


マージ機能ですが現時点ではClassicページでの利用のみサポートされていたと思います。LEXを利用している場合は一時的に戻してからの利用となります。

関連記事

SFDC:顧客に一括メールを送信するときの流れ

$
0
0

キャンペーンのお知らせなど顧客に一括メールを送信するときの流れです。大勢の顧客に1件ずつメールを送付していくのは時間も掛かり現実的ではありません。Salesforceには取引先責任者に登録されたメールアドレス宛に一括メールを送信する機能が用意されています。

f:id:tyoshikawa1106:20170413010948p:plain


マージ機能と同じようにビューをつかったレコードの絞り込みが可能です。
f:id:tyoshikawa1106:20170413011117p:plain


メールの件名や本文はメールテンプレートをつかって指定できます。
f:id:tyoshikawa1106:20170413011248p:plain


送信前に対象件数やその他オプションを指定できます。
f:id:tyoshikawa1106:20170413011406p:plain


送信ボタンをクリックするとメール送信処理が実行されます。
f:id:tyoshikawa1106:20170413011909p:plain


この方法でメール送信すると活動履歴に残すこともできます。
f:id:tyoshikawa1106:20170413011947p:plain


メールはsalesforce経由で送信されたことが受信者に表示されました。そのあたりは意識しておいた方がいいかもしれません。
f:id:tyoshikawa1106:20170413012213p:plain


送信処理後ですが送信件数などの情報が通知メールで届きます。
f:id:tyoshikawa1106:20170413012543p:plain


私の設定で履歴を確認できるみたいです。
f:id:tyoshikawa1106:20170413012632p:plain


メールはログインユーザの名義で実行されます。システムの通知などは専用のアカウントでログインして実行した方が良さそうです。また重複データに対してメール送信したところ受信側には一件のみ届くようになっていました。基本的には重複データは整理してから実行した方がいいですが誤って選択しても大丈夫です。

メール送信したくない顧客への対応

一括メール送信時に特定の顧客にはメールを送りたくないケースもあると思います。その場合はメール送信除外フラグの項目を利用すればいいみたいです。

メール送信除外フラグとはどのような場合に考慮されるのでしょうか?


このフラグをONにすれば一括メール送信の対象にはならないそうです。
f:id:tyoshikawa1106:20170413013622p:plain


対象判定は自動で行われるため一括メール送信画面のビューで項目を条件指定に利用することはできませんでした。メール送信対象が少数の場合は基本ONにしておいて一部をOFFに切り替える運用の方が間違いがないかもしれません。

SFDC:Classic向けVisualforce開発でLightning Design Systemを適用する方法

$
0
0

Lightning Design SystemはLEX向けの画面開発で活躍すると思いますが、Classic向けのページを開発する際にも利用したくなるケースがあると思います。ですがサイトからダウンロードしたCSSを適用すると次のように標準CSSに干渉してしまいます。

f:id:tyoshikawa1106:20170419232506p:plain

<apex:page showHeader="true" sidebar="false" id="page">
    <!-- Lightning Design System -->
    <apex:stylesheet value="{!URLFOR($Resource.SLDS221, 'assets/styles/salesforce-lightning-design-system.css')}" />
    <!-- App -->
    <div xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="vf-page">
        <div class="slds-page-header">
            <div class="slds-grid">
                <div class="slds-col slds-has-flexi-truncate">
                    <div class="slds-media slds-no-space slds-grow">
                        <div class="slds-media__figure">
                            <svg class="slds-icon slds-icon-standard-user" aria-hidden="true">
                                <use xlink:href="{!URLFOR($Resource.SLDS221, '/assets/icons/standard-sprite/svg/symbols.svg#user')}"></use>
                            </svg>
                        </div>
                        <div class="slds-media__body">
                            <p class="slds-text-title--caps slds-line-height--reset">Record Type</p>
                            <h1 class="slds-page-header__title slds-m-right--small slds-align-middle slds-truncate" title="this should match the Record Title">Record Title</h1>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</apex:page>


この問題は、apex:sldsタグを利用することで解決できそうです。
f:id:tyoshikawa1106:20170419231652p:plain


これで標準CSSに影響を与えずにCSSを適用できました。
f:id:tyoshikawa1106:20170419231727p:plain


apex:sldsタグを使った場合、lightning-design-system-vf.min.jsと「-vf」のついたVF向けCSSが適用されるためです。
f:id:tyoshikawa1106:20170419231930p:plain


Lightning Design Systemのサイトからダウンロードすると-vfのJSファイルは含まれていません。そのため過去のバージョンの古いCSSファイルから引っ張ってくる必要があると思っていました。apex:sldsタグでは比較的最新バージョンの-vf版CSSが適用されるので古いバージョンを使いまわす必要もないようです。

サンプルコード

<apex:page showHeader="true" sidebar="false" id="page">
    <!-- Lightning Design System -->
    <apex:slds />
    <!-- App -->
    <div xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="vf-page">
        <div class="slds-page-header">
            <div class="slds-grid">
                <div class="slds-col slds-has-flexi-truncate">
                    <div class="slds-media slds-no-space slds-grow">
                        <div class="slds-media__figure">
                            <svg class="slds-icon slds-icon-standard-user" aria-hidden="true">
                                <use xlink:href="{!URLFOR($Asset.SLDS, '/assets/icons/standard-sprite/svg/symbols.svg#user')}"></use>
                            </svg>
                        </div>
                        <div class="slds-media__body">
                            <p class="slds-text-title--caps slds-line-height--reset">Record Type</p>
                            <h1 class="slds-page-header__title slds-m-right--small slds-align-middle slds-truncate" title="this should match the Record Title">Record Title</h1>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</apex:page>

SFDC:Classic向けVFページでLightning Design System適用時にスタイルを整える方法

$
0
0

Classic向けVisualforceページを開発したときに見た目で気になる部分がでてくると思います。周りの余白部分です。
f:id:tyoshikawa1106:20170419233053p:plain


Salesforce標準スタイルが適用されるためなので仕方がない部分ですが、SLDSを適用するような画面ではできれば余白を無くしたくなると思います。


そんなときは下記スタイルを読み込ませれば回避できそうです。

<style>
    .noSidebarCell, .sidebarCell .fixed {
        padding: 0 !important;
    }
</style>


これで周りの余白を無くしスッキリしたデザインにすることができました。
f:id:tyoshikawa1106:20170419233609p:plain

サンプルコード

<apex:page showHeader="true" sidebar="false" id="page">
    <!-- Lightning Design System -->
    <apex:slds />
    <style>
        .noSidebarCell, .sidebarCell .fixed {
            padding: 0 !important;
        }
    </style>
    <!-- App -->
    <div xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" id="vf-page">
        <div class="slds-page-header">
            <div class="slds-grid">
                <div class="slds-col slds-has-flexi-truncate">
                    <div class="slds-media slds-no-space slds-grow">
                        <div class="slds-media__figure">
                            <svg class="slds-icon slds-icon-standard-user" aria-hidden="true">
                                <use xlink:href="{!URLFOR($Asset.SLDS, '/assets/icons/standard-sprite/svg/symbols.svg#user')}"></use>
                            </svg>
                        </div>
                        <div class="slds-media__body">
                            <p class="slds-text-title--caps slds-line-height--reset">Record Type</p>
                            <h1 class="slds-page-header__title slds-m-right--small slds-align-middle slds-truncate" title="this should match the Record Title">Record Title</h1>
                        </div>
                    </div>
                </div>
            </div>
        </div>
    </div>
</apex:page>

SFDC:新しくなったセールスパスの設定方法

$
0
0

セールスパス機能が商談以外にも利用できることになったため、名称がパスに変更されました。そのため設定画面で有効化するにはパス設定で検索する必要があります。
f:id:tyoshikawa1106:20170429153057p:plain


名称変更だけで基本的な操作方法は変わらないと思います。
f:id:tyoshikawa1106:20170429153129p:plain


名称変更に関する情報はSpring'17リリースノートに記載があります。

セールスパス: 機能が拡張され新しい名前に

関連


SFDC:メール to Salesforceを試してみました

$
0
0

メール to Salesforceの設定を試してみました。外部メールアプリケーションからメールを送信した際にSalesforce のリード、取引先責任者、商談のレコードに自動的に関連付けることができる機能です。


メール管理のメニューから有効化することができます。
f:id:tyoshikawa1106:20170508201231p:plain


有効化時に社内に通知することができますが、スキップすることも可能です。基本的には動作チェック後にChatter等で改めて共有すれば良さそうに思います。
f:id:tyoshikawa1106:20170508201316p:plain

f:id:tyoshikawa1106:20170508201412p:plain


これでメール to Salesforce用のシステムメールが生成されます。
f:id:tyoshikawa1106:20170508220445p:plain


生成されたアドレスはメール送信時にBCCに指定します。
f:id:tyoshikawa1106:20170508225946p:plain


メール to Salesforceでレコードを取り込むと次のように通知メールが届きます。
f:id:tyoshikawa1106:20170508230101p:plain


これで取引先責任者などメールアドレスが一致するものの活動履歴として自動で取り込まれます。
f:id:tyoshikawa1106:20170508230226p:plain


活動の詳細ページに行くとメールの本文などの情報を確認できます。
f:id:tyoshikawa1106:20170508230605p:plain


メールアドレスを条件に自動で紐付けを行ってくれるので便利な機能だと思います。ですがもし特定の取引先責任者へメール送信と具体的に決まっている場合はSalesforceのメール送信機能をつかうとより便利そうでした。。
f:id:tyoshikawa1106:20170508231045p:plain


こちらはBCCに毎回入力しなくてもメール送信履歴として記録に残すことが可能です。

SFDC:Lightning Design SystemのDataTableとrowspan表示

$
0
0

Lightning Design SystemでテーブルCSSを適用したい場合はDataTableのCSSを利用します。また「slds-table--col-bordered」縦線の表示も可能です。ですがrowspan表示を行うと次のように正しく表示してくれません。

f:id:tyoshikawa1106:20170509084749p:plain


この問題は「style="border-collapse: collapse;"」を宣言することで解決します。
f:id:tyoshikawa1106:20170509084932p:plain

f:id:tyoshikawa1106:20170509084955p:plain


ちなみにrowspanを宣言した場合、マウスを当てたときは次のように表示されます。
f:id:tyoshikawa1106:20170509085021p:plain


これが気になる人は「slds-no-row-hover」を宣言することでマウスオーバー時のハイライトを無効にできます。
f:id:tyoshikawa1106:20170509085316p:plain


rowspanとslds-table--col-borderedを組み合わせたときに縦線が正しく表示されず困ったときは「style="border-collapse: collapse;"」で解決できました。

サンプルコード

<apex:page showHeader="true" sidebar="false">
    <apex:slds />
    <div class="slds">
        <table class="slds-table slds-table--bordered slds-table--col-bordered slds-no-row-hover" style="border-collapse: collapse;">
            <tr>
                <th rowspan="3"></th>
                <th>
                    <apex:outputText value="{!$ObjectType.Account.Fields.Name.Label}" />
                </th>
                <th>
                    <apex:outputText value="{!$ObjectType.Account.Fields.AccountNumber.Label}" />
                </th>
                <th>
                    <apex:outputText value="{!$ObjectType.Account.Fields.Website.Label}" />
                </th>
            </tr>
            <tr>
                <td>XXX</td>
                <td>XXX</td>
                <td>XXX</td>
            </tr>
            <tr>
                <td>XXX</td>
                <td>XXX</td>
                <td>XXX</td>
            </tr>
        </table>
    </div>
</apex:page>

SFDC:Trailheadもくもく会 #2 に参加しました

$
0
0

Trailheadもくもく会 #2 に参加しました。
f:id:tyoshikawa1106:20170509194031j:plain

Trailhead もくもく会 #2(Trailhead Super Badge 取得に向けて) | Salesforce Developers


19時から始まり21時30分頃まで、今回はLightning Experience Specialistの方を進めてみました。
f:id:tyoshikawa1106:20170510004825p:plain


途中ですが内容は下記のような感じです。

  • 環境作成 (Trailhead Playground)
  • 専用の未管理パッケージをインストール
  • オブジェクトのラベルを変更
  • 商談フェーズのリスト値カスタマイズ
  • パスの設定
  • 承認プロセス作成 (項目自動更新含む)
  • プロセスビルダー作成


Lightning Experienceのカスタマイズならすぐに終わるかと思ったのですがそんなことはありませんでした。英語の要件を解読しつつパスや承認プロセス、プロセスビルダーの設定を進めるのはなかなか大変みたいです。


パスの設定はこんな感じです。
f:id:tyoshikawa1106:20170510005144p:plain


LockerServiceは重要な更新ページで無効化する必要があります。
f:id:tyoshikawa1106:20170510005205p:plain

f:id:tyoshikawa1106:20170510005245p:plain


パスのガイドライン設定はリッチテキスト形式で登録でき、コピーペーストで対応できました。
f:id:tyoshikawa1106:20170510005350p:plain


プロセスビルダーも英語の解読さえ済めば作業自体は難しくないと思います。
f:id:tyoshikawa1106:20170510010617p:plain


今回の進捗は9問中3問まで。
f:id:tyoshikawa1106:20170510005441p:plain


4問目は何処かで間違えていてエラーとなりました。
f:id:tyoshikawa1106:20170510005546p:plain


2時間ではこんなところかなと思いますがエラーの原因を見つけて残りもクリアしたいと思います。けっこう集中して進めることができたので参加して良かったと思います。
f:id:tyoshikawa1106:20170509190107j:plain:w300

f:id:tyoshikawa1106:20170509190103j:plain:w300

SFDC:プロセスビルダーでメールアラートを実行するときの注意点

$
0
0

プロセスビルダーではメールアラート機能をつかってレコードの登録や更新時にメールを送信することができます。
f:id:tyoshikawa1106:20170522000208p:plain


ワークフロールールと同じことができるイメージですがプロセスビルダーの場合はフローの流れをわかりやすく確認でき、またバージョン管理機能も利用することができます。便利な機能ですがプロセスビルダーからメールアラートを実行する場合には注意点が1つあります。送信先のメールアドレスの有無チェックです。


例えばリードオブジェクトの新規作成時にメールを送信する機能を実装します。リードのメール項目は通常必須項目ではないので次のように未入力で保存を実行できます。
f:id:tyoshikawa1106:20170522000604p:plain


プロセスビルダーからメール送信を実行しますがメールアドレスが無い状態です。その結果つぎのようにエラーとなります。
f:id:tyoshikawa1106:20170522000726p:plain

フローのトリガに失敗したため、レコードを保存できません。フロートリガで、ID 30110000000g8lH のフローバージョンの実行に失敗しました。フローエラーメッセージ: このフローで未対応の障害が発生しましたフローを処理中に未対応の障害が発生しました。詳細は、組織のシステム管理者にお問い合わせください。 システム管理者にお問い合わせください。


フローのエラー詳細は通知メールで確認できますが原因特定は少ししづらい感じです。
f:id:tyoshikawa1106:20170522000936p:plain


このエラーの場合は下記内容となります。

Probably Limit Exceeded or 0 recipients


この問題はアクショングループの条件を定義で解決できます。次のようにメール項目がNULLで無いときのみ実行と指定してください。
f:id:tyoshikawa1106:20170522001206p:plain



するとメール項目の値が存在しない場合はメール送信処理が実行されなくなり、エラーが発生することなく保存することができます。
f:id:tyoshikawa1106:20170522001347p:plain


メール項目に値が存在している場合は正しくメール送信が実行されます。
f:id:tyoshikawa1106:20170522001545p:plain


このようにプロセスビルダーのメールアラート機能を利用するときはメール項目の値チェックが重要になります。ページレイアウト上で必須項目にしていてもApexなどから空白で保存するような可能性もありますので必ず値チェックをしておくのがオススメです。

おまけ

ワークフロールールで利用されているメールアラートはどこで使われているか確認できますが、プロセスビルダーの場合、メールアラートの利用箇所に表示されません。さすがに削除はできませんがどこにも利用されていないと勘違いしないように注意する必要があります。
f:id:tyoshikawa1106:20170522001931p:plain

f:id:tyoshikawa1106:20170522002048p:plain

SFDC:ハイパーリンク数式項目の JavaScript の確認の対処方法について

$
0
0

ハイパーリンク数式項目での JavaScript 使用の段階的な廃止されるそうです。

f:id:tyoshikawa1106:20170523005717p:plain

変更の背景

Salesforce は信頼を最大の価値としており、中でも製品のセキュリティは信頼の鍵となる部分です。Salesforce では、ハイパーリンク数式項目における JavaScript の利用によって悪意のあるコードの実装が可能であることを発見し、セキュリティの潜在的脆弱性に繋がると判断したため、今回の変更を決定しました。

Salesforce は、段階的なアプローチによって、ハイパーリンク数式項目での JavaScript の実行をブロックします。なお、対象となる項目は、先頭に「javascript:」の文字列があるカスタムハイパーリンク数式項目と定義されています。

Spring '17 リリースの時点で、システム管理者は、JavaScript を含むハイパーリンク数式項目を作成できなくなっています。JavaScript を削除する場合を除き、JavaScript を含む既存の項目の編集・保存が行えなくなりました。

Summer '17 リリースでは、重要な更新コンソール (CRUC) 設定が導入され、システム管理者はこの設定を有効にすることによってハイパーリンク数式項目での JavaScript の実行ブロックを選択できます。

Winter '18 リリース** では、段階的なアプローチの最終フェーズとして、ハイパーリンク数式項目で JavaScript を実行できなくなります。

現時点では 2017 年 10 月を予定していますが、変更される可能性もあります。

管理者側で対応が必要な作業

重要な更新を有効にする前に、Salesforce 組織の HYPERLINK 関数での JavaScript の使用状況を確認し、代替ソリューションへの移行をご検討ください。代替ソリューションの詳細は、記事「ハイパーリンク数式項目での JavaScript の無効化」を参照してください。


既存の機能でできたことができなくなるので対応が必要ですね。。って思ったりしたのですが、そもそも数式項目のハイパーリンク項目でJavaScriptを書いたりすることは無かった気がします。(やるとすればカスタムボタンかカスタムリンクで対応した方が早そう)


とはいえ実は使っていましたというケースもあるので確認が必要と思いますが、確認方法についてSuccess Communityで情報が共有されていました。
f:id:tyoshikawa1106:20170523010245p:plain

https://success.salesforce.com/0D53A000037FFjS


こんな感じとのことです。
f:id:tyoshikawa1106:20170523010439p:plain

f:id:tyoshikawa1106:20170523010539p:plain


開発者コンソールから処理を実行してSystem.debugに引っかからなければ問題ないみたいです。この検証は本番組織ではなく最新の状態を反映したSandbox環境で実行するのが推奨されているようです。

追記

詳細はヘルプページができていました。

SFDC:LEXダッシュボードでグラフの高さが動的に変わるときの対応方法

$
0
0

Classicで作成したダッシュボードをLEXで利用するときに考慮しておくことの1つで、グラフの高さが動的に変わるときの対応方法についてです。
f:id:tyoshikawa1106:20170525202110p:plain


Classicで作成したダッシュボードをLEXで表示したところ、グラフの内容に応じて高さが動的に変更されました。
f:id:tyoshikawa1106:20170525202555p:plain


大きな問題ではないのですが、できるだけ多くのグラフを表示したいときに少し困るかも・・と思っていたところ、こちら一度編集して保存することで解決するみたいです。


まずLEX専用としてダッシュボードをコピーします。
f:id:tyoshikawa1106:20170525202830p:plain


コピーした時点ではまだ高さは自動で変更されます。
f:id:tyoshikawa1106:20170525202926p:plain


ここで編集ボタンをクリックして編集モードに切り替えます。
f:id:tyoshikawa1106:20170525203031p:plain


それを保存すると高さが固定の状態で表示されるようになりました。
f:id:tyoshikawa1106:20170525203209p:plain


ちなみにグラフの高さに対して表示領域が少ない場合はスクロール機能で見えない部分の内容も確認できるようになっています。
f:id:tyoshikawa1106:20170525203416p:plain


コピーしただけではダメで一度編集モードにして保存することで高さが固定化されるようです。今回の対応方法ですがLightning Experienceウェブセミナーで質問しみたところ対応方法を教えてもらい解決しました。

SFDC:Lightning Experienceのルックアップ機能をより便利にする方法

$
0
0

Lightning Experienceのルックアップ機能は入力した内容に応じて候補をパッと表示してくれる便利な機能です。
f:id:tyoshikawa1106:20170525210947p:plain


その候補の一覧ではName項目の値とは別にもう一つの項目の値を表示してくれています。同じName値のときにどちらを選べばいいかの判断に利用したいので表示内容をカスタマイズできないかなと思っていました。


先日Lightning Experienceウェブセミナーで質問できる機会があったので聞いてみた所、こちらオブジェクトの検索結果設定の二つ目の項目の値が表示されるそうです。
f:id:tyoshikawa1106:20170525211129p:plain


試しにメール項目を二つ目に持ってきた所・・・
f:id:tyoshikawa1106:20170525211645p:plain


なぜか表示に反映されませんでした。。ただ他の組織と比較しても間違いなく検索結果の2つ目項目が表示されていました。そこで別の項目を試してみたところ・・・
f:id:tyoshikawa1106:20170525220021p:plain


今度は無事に反映されました。
f:id:tyoshikawa1106:20170525220115p:plain


取引先名や電話項目は表示できてメール項目は表示できなかったので、もしかしてテキスト項目のみのサポートかなと思ったりしたのですが日付項目も問題なく表示されました。
f:id:tyoshikawa1106:20170525220320p:plain


所有者などのルックアップ項目も問題ありません。
f:id:tyoshikawa1106:20170525220431p:plain


すべてのデータ型を試してはいないのですがひとまずメール項目は2つ目に指定しても私の環境では表示されませんでした。(表示されない原因は別の理由の可能性もありますが...)


最後に一番気になっていた数式項目の表示は可能か試してみましたのですが、こちら問題なく表示することができました。
f:id:tyoshikawa1106:20170525221034p:plain

f:id:tyoshikawa1106:20170525221817p:plain


数式項目の表示が可能ということで表現の幅が大きく広がりそうです。例えば法人/個人で取引先責任者情報を管理している場合、レコードタイプ名+他項目みたいな形で出したりすると誤って別のレコードタイプのデータを指定するミスを回避できると思います。ルックアップの候補一覧の横幅に上限はあるようですのであまり長くならないように配慮は必要そうです。


SFDC:Lightning Design Systemで過去バージョンのサンプルコードを確認する方法

$
0
0

Lightning Design Systemは日々アップデートが行われ新しいコンポーネントが追加されたり、サイト内の検索機能が便利になったりしています。
f:id:tyoshikawa1106:20170525222345p:plain


とても便利なのですがアップデート後にサイトのレイアウトが変更されたりすると、あのときのコードはどこから確認すればいいんだろう..という感じになることがあります。
f:id:tyoshikawa1106:20170525222421p:plain



無理言ってるのはわかっているのですが正直過去のサイトにアクセスしたい・・・と思った所、こちらアクセスする方法が用意されていました。Archivesのリンクからサイトのバージョンを切り替えることが出来ます。
f:id:tyoshikawa1106:20170525222653p:plain


たとえばv2.2.2のサイトです。
f:id:tyoshikawa1106:20170525222807p:plain


過去のサイトデザインで過去バージョンのサンプルコードにもアクセスできます。
f:id:tyoshikawa1106:20170525222855p:plain


すべてのバージョンをサポートしているわけではありませんが、0.12.2というすごく前のバージョンのサイトにもアクセスできました。
f:id:tyoshikawa1106:20170525222954p:plain


ここまでサポートされているとは考えても見なかったのですが、本当にすごいと思います。

SFDC:選択リストのAPI参照名利用時にハマったこと

$
0
0

少し前のバージョンアップで選択リスト型項目のリストにAPI参照名を指定できるようになりました。

f:id:tyoshikawa1106:20170531002107p:plain


これによりリスト値を変更するときにApexクラス側を意識せずに表示ラベルのみ変更できるようになります。便利な機能ですが注意点もあります。数式項目でラベルを表示したいときです。

f:id:tyoshikawa1106:20170531002521p:plain


リスト値の値を表示したいときはTEXT()関数で対応できましたがAPI参照名を表示ラベルと別にした状態で利用すると、API参照名側の値が表示されてしまいます。
f:id:tyoshikawa1106:20170531002715p:plain


StackOverflowに類似の質問が見つかりました。
f:id:tyoshikawa1106:20170531002816p:plain

spring17 - Picklist API name in Formulas - Salesforce Stack Exchange


現時点では対応方法は用意されていないようです。条件判定はAPI参照名側の値を指定すればいいのですが、ラベルを表示したい場合はIF関数をつかって自分で対応が必要と思われます。
f:id:tyoshikawa1106:20170531003129p:plain

SFDC:メールの送信機能とメールの署名設定

$
0
0

メールの送信機能利用時に活躍するメールの署名設定についてです。メールの署名は私のメール設定から登録できます。
f:id:tyoshikawa1106:20170604163604p:plain


登録後の署名ですが、メール送信時に差し込み操作を行う場所がないと思います。
f:id:tyoshikawa1106:20170604164712p:plain


メールのプレビューモードで確認したときも差し込まれていません。
f:id:tyoshikawa1106:20170604164802p:plain


ですがこのままメールすると・・・
f:id:tyoshikawa1106:20170604165122p:plain


届いたメールには署名が差し込まれています。
f:id:tyoshikawa1106:20170604165426p:plain


ということで私の署名を設定後はSalesforceのメール送信機能利用時に署名が自動で差し込まれます。プレビューモードなどで確認時に差し込まないと手入力すると送信後のメールには2つの署名がセットされた状態で送られてしまいますので注意が必要です。


ちなみに「DE組織」などでメール送信機能を利用すると下記の署名が自動セットされます。

Powered by Salesforce
http://www.salesforce.com/


この部分は実際に契約済みの組織から送った場合には表示されません。


送信元部分にもSalesforceの自動生成されたアドレスがセットされていますが、こちらも表示されなくなったはずです。(Classic組織での利用時には表示されていませんでした。LEXやパブリッシャーアクション利用時に差し込まれる可能性はあり)


ここで気になるのがキャンペーンや取引先責任の一括メール送信機能を利用した時の場合です。確認してみたところ署名を差し込むかのオプションを選択できました。
f:id:tyoshikawa1106:20170604170116p:plain


署名にチェックを付けることで一括メール送信時にも署名を差し込むことができました。
f:id:tyoshikawa1106:20170604170341p:plain


ですが、一括メール送信の場合は個人の署名よりも専用の署名を差し込むケースの方が多いと思います。なので私の署名よりもメールテンプレートに署名を差し込む方が良いかもしれません。


Salesforceのメール送信機能は活動履歴にも残すことができ便利な機能なのでこういった仕組みを理解することでより活用しやすくなりそうです。

SFDC:無効ユーザをレコードの所有者に設定するときの制限について

$
0
0

Salesforceでは所有者の項目をつかって誰が担当しているレコードかを管理できます。通常の運用時には気にする必要がありませんが、過去のデータなどで既に無効になったユーザを所有者として設定したいことがあると思います。ですが無効になったユーザは所有者として指定することができません。そのためこういった操作を行うには一時的に有効化にして設定していく必要があります。
f:id:tyoshikawa1106:20170604171744p:plain


検証してみたところApex処理から所有者更新処理を行ってもエラーとなります。
f:id:tyoshikawa1106:20170604172429p:plain
f:id:tyoshikawa1106:20170604173006p:plain:w300


開発者コンソールのクエリエディターでも不可です。
f:id:tyoshikawa1106:20170604172140p:plain
f:id:tyoshikawa1106:20170604172245p:plain


Apexトリガ経由でもエラーとなりました。
f:id:tyoshikawa1106:20170604173150p:plain


ですが無効ユーザを所有者にセットできる特殊なパターンがあります。Apexトリガのafter updateで参照先レコードの所有者を更新する場合です。今回取引先と取引先責任者で確認しました。

更新前の取引先

f:id:tyoshikawa1106:20170604174532p:plain

更新前の取引先責任者

f:id:tyoshikawa1106:20170604174612p:plain


検証用に下記のトリガを用意しました。
f:id:tyoshikawa1106:20170604174710p:plain
※雑につくった書き方です。通常の開発ではマネしないでください。。


これで取引先責任者を更新してApexトリガを動かすと無効ユーザで更新できます。
f:id:tyoshikawa1106:20170604174929p:plain



ということで上記のようなパターンなら無効ユーザでも所有者としてセットすることが可能です。

補足

今回の件ですが、始めに上記パターンで所有者をセットできたことに気づきました。それでApex経由なら無効ユーザでも大丈夫と勘違いしたのですが、それができるのは一部のパターンだけで実際にはApex経由でも所有者としてセットできないみたいです。なので過去データをキレイにする場合は一時的にユーザを有効化して更新してから無効に戻す必要があります。

おまけ

この検証中にもう一つ気づいた仕様があります。無効になったユーザのレコードを引き継ぐため所有者を有効なユーザに変更したときの場合です。取引の所有者を切り替えると取引先責任者の所有者も自動で切り替わりました。無効ユーザの扱いまわりはこういった仕組みが用意されているみたです。

SFDC:Force.com Sitesで構築された予約ページで仮予約の仕組みを運用してみてわかったこと

$
0
0

Force.com SitesはForce.comプラットフォーム上でネイティブに動作するパブリックWebサイトやアプリケーションを作成できる仕組みです。f:id:tyoshikawa1106:20170604201406p:plain

JP:Sites - developer.force.com


Salesforceのデータベースに登録された情報を利用できるWebサイトを構築できるので、開発者以外のスタッフでもメンテナンスできるサイトを構築できます。ホームページや製品紹介のサイト、ログインページを用意してCommunity Cloudと連携させるといった使い方がよくされていると思います。


少し前にこのForce.com Sitesで構築された予約ページを引き継ぎました。その予約ページの機能の中に仮予約の仕組みが用意されていたのですが、実際に運用を回してみていろいろわかったことがあるので紹介します。

予約ページの利用の流れ

  1. 予約ページにアクセス
  2. 日時を選択
  3. 予約に必要な情報を入力 (名前や連絡先など)
  4. 次へボタンで確認ページへ移動
  5. 入力した内容に誤りがないかを確認
  6. 仮予約ボタンをクリック
    (予約データが作成される。ステータス→仮予約)
  7. 仮予約完了画面に移動。本予約までの流れを確認
  8. 顧客が仮予約完了通知メールを受信
  9. 通知メールに記載されたURLをクリック
    (24時間クリックしないとキャンセル扱い)
  10. 本予約完了ページへ移動
  11. 予約確定 (ステータス→予約確定・その他必要な処理が実行される)


ざっくりこんな感じです。仮予約の仕組みがあることで誤ったメールアドレスを入力したり存在しない連絡先を入力した場合に、予約確定の作業を進められないメリットがあります。また24時間すぎると本予約のリンクが無効になり放置された予約作業を無効にすることができます。

実際に運用してみて

仮予約完了通知メールから本予約を行う流れですが下記のパターンが発生しました。

  • 通知メールに記載された本予約のリンククリックを行わない
    (メールや必要な操作に気づかない)
  • PCメールブロックなどにより通知メールが届かない


本来、社内スタッフは予約確定した情報のみ気にすればいいのですが、上記のパターンにより利用者は予約したつもりでもシステム上は予約されていない状況が発生しました。


その結果、自動化されているはずの予約手続きを社内スタッフが状況を確認して手動で対応しなくてはならない問題が発生しました。また本予約完了ページで実行されるはずの処理が実行されないので、その部分の対応も必要になりスタッフへの負担が増加することになりました。

現在

先日予約ページの再開発を行いこの仮予約の仕組みを除外しました。これにより利用者は今までよりも1つ手順が少ない状態で予約手続きを進めることができます。また必要事項を入力して予約ボタンを押せばその場で予約完了ページが表示されるため、メールが届かない場合でも予約が確定したことを確認できるようになりました。


システム上も必ず予約確定のステータスで予約情報が登録されるため、不要な手作業が発生することは無くなりました。開発者側としても予約のオペレーションがシンプルになったことでコードの量が少なくなりメンテナンス性が向上するメリットがありました。

まとめ

仮予約の仕組みを実際に運用してみてスタッフへの負荷が掛かるオペレーションになることが確認できました。また仮予約という複雑な仕組みがあることでメンテナンスしずらいシステムが出来上がることが確認できました。


もし予約ページの開発を依頼されて、仮予約の仕組みが欲しいという話になったときは上記のようなリスクを伝えてできるだけシンプルなオペレーションになるように話を進めると利用者に負担の掛からないシステムを開発できると思います。

Viewing all 1438 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>