S.B.S. Salesforce技術ブログ

教えて921さん!

【データローダ】取り込んだレコードの日付項目が1日戻ってた時とき…

どうも、こんにちは。みつせです。

今回は、
データローダやバッチで作成したレコードの日付項目が
1日戻っていた時の対処法をお話ししていきます。

1日戻る原因

データローダのデフォルトのタイムゾーンSalesforceのデータベースでのタイムゾーン
の設定が異なっているからのようです。
salesforceのヘルプに対処方法と一緒に載ってます↓
https://help.salesforce.com/articleView?id=000327824&type=1&mode=1

対処方法

その1: 設定をいじる(データベースのタイムゾーンを合わせる)

渡航前に時差ボケを直していくみたいな考え方(?)です。

設定方法

データローダの"setting"からタイムゾーンを”GMT”に設定する。 f:id:sbsSF:20220106154028p:plain
f:id:sbsSF:20220106154041p:plain
(※データローダバッチの場合は、config>process-confに”sfdc.timezone”というパラメータを設定する。)
f:id:sbsSF:20220120150906p:plain
そもそもGMTって何?という方は↓ help.salesforce.com


その2: 投入するデータをいじる(1日進めておく)

1日戻るなら、先に1日進めておけば良いって考えです。
とてもシンプルですが、その都度データをいじる必要があるので少々面倒だし、
いつかヒューマンエラーが発生しそう。。。

さいごに

分析の際は、年・月でレポートを集計していることが多いので、 投入データに”〇月1日”があったら、集計に結構大きな影響がありそう。
それを防ぐために、
・日付項目の有無
・データローダのタイムゾーン
は確認してから投入するのがいいかもしれませんね。

画面の見た目を変えてみよう!

こんにちは、Nambuです。今回はページレイアウトLightningアプリケーションビルダーについて説明したいと思います!どちらもオブジェクトの見た目を変えることができる重要な機能なのでぜひ使えるようになってください。

ページレイアウト

初めにページレイアウトから説明したいと思います。ページレイアウトではオブジェクトレコードページのボタン、項目、Visualforce、カスタムリンク、関連リストのレイアウトと構成を管理できます。また、どの項目が参照可能であるか、参照のみであるか、必須であるかを設定できます。
次にページレイアウトの設定方法について説明したいと思います。今の乗り物オブジェクトのレコード詳細ページが以下のようになっていたとします。このように項目が作成した順に並んでしまっている状態だと情報が散らかっているため使いづらくて仕方ありません。また、価格のような重要な情報は必須で入力させたいです。そこで、ページレイアウトを編集して使いやすいようにカスタムします。 f:id:sbsSF:20211208103331p:plain まず、編集したいオブジェクトのオブジェクトマネージャーを開きページレイアウトをクリックします。 f:id:sbsSF:20211208103322p:plain ページレイアウトをクリックすると現在存在するレイアウト一覧が出てくるので、編集したいレイアウト名をクリックするか右側にある▽から編集を選んでクリックします。 f:id:sbsSF:20211208103345p:plain すると現在のレイアウトと使っていない項目やボタン等が置かれたタブが出てきます。レイアウト上で項目を移動させるときはドラッグアンドドロップで調整します。
レイアウトから消したいときは消したい項目にカーソルを合わせて削除をクリックするか、上のタブまでドラッグアンドドロップします。
新しく項目やセクション、空白をレイアウトに追加したいときはタブから追加したいものをドラッグアンドドロップでレイアウトの好きな位置に持っていきます。 f:id:sbsSF:20211208103348p:plain 項目の設定を変える場合は項目にカーソルを合わせてレンチマークのプロパティをクリックします。 f:id:sbsSF:20211214160934p:plain すると、ポップアップで項目プロパティが出てくるので、チェックボックスをオンにすることで、参照のみにするか必須にするかを選べます。 f:id:sbsSF:20211214160937p:plain 変更内容を保存するときはタブの左上にある保存をクリックします。
ページレイアウトを変更することで以下の画像のような見た目になり、何も変更していないレイアウトよりも数段に使いやすくなります。 f:id:sbsSF:20211208103349p:plain

Lightningアプリケーションビルダー

次に説明する機能はLightningアプリケーションビルダーです。ページレイアウトでは項目や関連リストなどページの要素を変えることが出来ましたが、Lightningアプリケーションビルダーでは画面全体のコンポーネントを変更することができます。編集できるLightningページはホームページ、レコードページ、アプリケーションページの3つとなっています。
Lightningアプリケーションビルダーを開く場合は設定からLightningアプリケーションビルダーを選び、新規作成か編集したいページをクリックする方法と、初めに編集したいページを開いておいて右上の歯車マークから編集ページをクリックする2通りがあります。 f:id:sbsSF:20211223094804p:plain f:id:sbsSF:20211208114228p:plain 編集画面に入ると左側にコンポーネント一覧が、右側にはページやコンポーネントの設定が表示されます。ページの設定では表示ラベルやAPI参照名、そしてページのテンプレートを変更することができます。 f:id:sbsSF:20211208114236p:plain テンプレートの変更をクリックするとテンプレートが一覧で表示されるのでその中から新しいテンプレート使いたいものを選んで次へをクリックします。 f:id:sbsSF:20211223122720p:plain 次に進むと既存のテンプレートの領域を新しいテンプレートの領域のどこと対応付けするかを選択できます。つまり、テンプレートを変えてもそれまで領域に配置して設定したものは新しい領域に引き継げるということです。 f:id:sbsSF:20211223122727p:plain 今回はテンプレートを「ヘッダーと右サイドバー」から「ヘッダーと1つの範囲」にしてみました。すると詳細、関連の表示しているタブコンポーネントの下に今まで右側に出ていた活動を表示しているタブコンポーネントが出るようになったことが分かります。そこで今度は詳細、関連と並ぶようにタブを増やしてそこに活動を出すように変更します。
タブコンポーネントでタブを増やすときはタブをクリックします。 f:id:sbsSF:20211224105213p:plain するとワンクリックでタブが増えるので、次に増えたタブをクリックして表示ラベルを変更します。もし、標準で用意されているラベルの中にあったものがない場合は一番上のカスタムを選ぶことで手入力で表示ラベルを付けることも出来ます。 f:id:sbsSF:20211224110355p:plain タブ増やして活動を表示する場所が準備できたので、今までの場所から移動させます。移動させるときには予め活動タブをクリックしておいて移動先を表示しておきます。表示が出来たら元あった場所の活動コンポーネントドラッグアンドドロップで移動させます。もし、既存のコンポーネントを移動させて使うのではなく新しいコンポーネントが必要な場合は、左側の一覧からドラッグアンドドロップで追加します。 f:id:sbsSF:20211224111103p:plain いらなくなったコンポーネントは右上の削除ボタンをクリックして削除します。 f:id:sbsSF:20211224112447p:plain これで、新しいレコードページが完成したので保存をしますが、保存以外にも重要な作業があります。それが有効化です。有効化をしないとせっかく作ったのに違うページが使われてしまいます。有効化には「組織のデフォルトとしての割り当て」「アプリケーションのデフォルトとしての割り当て」「アプリケーション、レコードタイプ、プロファイルに割り当て」の3種類あります。場合によって表示するページを切り替えたい場合は狭い範囲での有効化を選択します。 f:id:sbsSF:20211208114241p:plain 有効化まで終わると実際のレコードページでも作成したページに変わっていることが分かります。 f:id:sbsSF:20211224114917p:plain

今回はこのくらいで、また会いましょう!

ロール設定方法

どーも、HGです。 今回はロール階層について解説していきます。

ロール階層を設定するということはユーザに階層構造でロール(役割)を与え、そのロールによってデータに対するアクセス制限をかけるということです。

f:id:sbsSF:20211209112925p:plain

ロールが社長であるユーザAさんは全てのデータにアクセスすることが可能です。
ロールが開発部長であるユーザBさんは自分の部下であるユーザDさんとユーザEさんが所有者であるレコードにはアクセスできます。
ロールが営業部長であるユーザCさんは自分の部下であるユーザFさんとユーザGさんが所有者であるレコードにはアクセスできます。
ロール階層で一番下(一般社員)のユーザDEFGは自分が所有者のレコードにしかアクセスできません。

簡単にではありますがロール階層の仕組みはイメージできたでしょうか?
それではロール階層の設定方法について見ていきましょう。

f:id:sbsSF:20211209121340p:plain
まずは画面右上の歯車マークをクリックし、設定をクリックします。

f:id:sbsSF:20211209121358p:plain
次に左上の検索ボックスに「共有」と入力し、共有設定をクリックします。

f:id:sbsSF:20211209121601p:plain
組織の共有設定ページが出てきました。
右の方に「階層を使用したアクセス許可」という欄がありますね。
ロール階層によるアクセス設定を行いたいオブジェクトにチェックがついているか確認します。
編集ボタンをクリックするとチェックの付け外しができるようになります。
※この設定はカスタムオブジェクトに対してのみ可能です。
 標準オブジェクトはデフォルトのままです、編集できません。

ロールでアクセス権をコントロールできるのはレコードの参照と更新です。
ページ中央の欄「デフォルトの内部アクセス権」ですでにレコードの参照と更新が許可されているとそのオブジェクトではロール階層の効果はありません。

f:id:sbsSF:20211209131805p:plain
先ほどと同様、右上の歯車マークから設定を開きます。
左上の検索ボックスに「ロール」と入力し、ロールをクリックします。

f:id:sbsSF:20211209132243p:plain
ロール設定ページが出てきました。
「ロールの設定」ボタンをクリックします。

f:id:sbsSF:20211209132343p:plain
「すべて展開」をクリックします。

f:id:sbsSF:20211209132626p:plain
ロール階層構造が一望できますね。
CEOにユーザを割り当ててみましょう。
CEOの右側にある「割り当て」をクリックします。

f:id:sbsSF:20211209133028p:plain
①選択可能なユーザ検索を「すべてのユーザ」に切り替えると組織内の全てのユーザが下のボックスの中に出てきます。
②CEOのロールに割り当てたいユーザを選択します。
③追加をクリックし右のボックスに移動させます。

f:id:sbsSF:20211209133313p:plain
「CEOに対して選択済みのユーザ」に選択したユーザが追加できたら、保存をクリックします。
間違えて他のユーザを追加してしまったら、削除をクリックして戻しましょう。

f:id:sbsSF:20211209133556p:plain
CEOをクリックしてみましょう。

f:id:sbsSF:20211209133647p:plain
CEOロールの詳細が出てきました。
しっかり、CEOに割り当てたい人が表示されていたら成功です!

このように様々なロールに人を追加していくことでロール階層を設定できます。
ロールの名前も編集可能です。
ロールを追加することも可能です。
世の中には様々な組織があり、組織によってロールの名称も違えば、ロールあたりの人数も違います。
組織に合ったロール階層を設定して、この機能を有効活用しましょう。

レコードタイプを使ってみよう

こんにちは、Nambuです。今回はレコードタイプについて説明したいと思います。レコードタイプは非常に便利な機能でよく使うと思うのでしっかりと知っておきましょう。

レコードタイプとは

レコードタイプはオブジェクトのレコードを複数の用途に分割するために使う機能です。
例として乗り物を管理するオブジェクトがあったとします。初めのうちは以下のように日本の自動車のみを管理していたので何不自由なく使えていました。 f:id:sbsSF:20211202114401p:plain

しかし、規模が大きくなってきて外国車やバイクを扱うようになってくると、メーカー名の選択リストの値を種類によって変更したくなったり、乗車人数のような車にのみ表示したい項目が出てきます。そういったときに使うのがレコードタイプです。
レコードタイプを使うことでページレイアウトや選択リストの値を分けることができます。また、プロファイルに対して割り当てるのでAさんは日本車、外国車、バイクすべてを作成できて、Bさんはバイクのみ作成できるといった状況を作ることも出来ます。

レコードタイプの設定方法

レコードタイプを設定するときはまず「オブジェクトマネージャー」の「レコードタイプ」から「新規」を選択します。 f:id:sbsSF:20211206115240p:plain 新規をクリックすると設定画面に移るので、レコードタイプのラベル名やAPI名、説明や有効無効のチェックを入れます。 f:id:sbsSF:20211206115256p:plain 下にスクロールするとプロファイルごとに使用可能かどうか割り当てることができるので、レコードタイプを使用させるプロファイルにのみチェックを入れます。 f:id:sbsSF:20211206115354p:plain プロファイルの設定が終わって次に進むと「ページレイアウトの割り当て」ができます。このページレイアウトの割り当てもプロファイルごとに設定できます。また、ページレイアウトの割り当ては後からでも設定できるので、この時点ではページレイアウトを作っていなくても問題ありません。 f:id:sbsSF:20211206115356p:plain ページレイアウトの割り当てを変更するときは、「オブジェクトマネージャー」の「レコードタイプ」から「ページレイアウトの割り当て」を選択します。 f:id:sbsSF:20211208100351p:plain ページレイアウトの割り当てをクリックすると現在のレコードタイプとプロファイルごとのページレイアウトが見られるので、「割り当ての編集」から修正します。 f:id:sbsSF:20211206115401p:plain 任意のプロファイル、任意のレコードタイプのページレイアウトを自由に変えられるようになるので適切に設定して保存します。 f:id:sbsSF:20211206115404p:plain レコードタイプごとに選択リストの値を変更するときは「オブジェクトマネージャー」の「レコードタイプ」から変更したいレコードタイプの「表示ラベル名」をクリックします。クリックするとそのレコードタイプの詳細が表示されるので、下の方にある選択リストから修正したいリストの横にある編集をクリックします。 f:id:sbsSF:20211208100425p:plain すると、選択リストの値が一覧で出てくるので表示したい値を「選択済みの値」、表示しない値を「選択可能な値」に入れて保存します。 f:id:sbsSF:20211206115411p:plain 以上のようにレコードタイプを設定することで新規で乗り物レコードを作るときにはまず初めにレコードタイプを選択する仕組みになります。また、実際に選択リストの値や項目の種類がレコードタイプによって変わっていることがわかると思います。 f:id:sbsSF:20211206115414p:plain f:id:sbsSF:20211214152022p:plain f:id:sbsSF:20211214151737p:plain f:id:sbsSF:20211214152054p:plain f:id:sbsSF:20211206121634p:plain

ビジネスプロセスについて

レコードタイプの設定方法が分かったところでもう一つ重要なことがあります。それがビジネスプロセスについてです。オブジェクトの中でも商談、ケース、リードはレコードタイプを作成する前にそれぞれセールスプロセス、サポートプロセス、リードプロセスというものを設定しなければいけません。ビジネスプロセスとはこの3つのプロセスの総称です。この3つのオブジェクトにはそれぞれ進捗を管理する独自の選択リスト(フェーズなど)が存在しており、そのリストの値を管理するために設定するのがビジネスプロセスです。
ビジネスプロセスを作成するには設定の「クイック検索」に「プロセス」と入力し、設定したいビジネスプロセスをクリックします。クリックすると現在のプロセスの作成状況が出てくるので新規をクリックします。 f:id:sbsSF:20211206115537p:plain 新規をクリックすると設定画面に移るので、プロセスの名前や説明、コピー元を選択して保存します。 f:id:sbsSF:20211206115541p:plain 保存をクリックすると次に進捗を管理する選択リストの値が一覧で出てくるので表示したい値を「選択済みの値」、表示しない値を「選択可能な値」に入れて保存します。 f:id:sbsSF:20211206143124p:plain セールスプロセスを設定することで商談のレコードタイプを新規作成するときにセールスプロセスの値を選択出来る様になり、作成可能となります。 f:id:sbsSF:20211206115545p:plain

今回はこのくらいで、また会いましょう!

リストエディターでテンキーを使いたい!

こんにちは、Nambuです。
今回はリストエディターでテンキーを使用する方法について説明していきたいと思います。なおこの記事で取り扱うリストエディターはListEditor非管理パッケージのバージョン2.43です。異なるバージョンやパッケージでは紹介する方法が使えないことがあるのでご注意ください。また、補足で書いたことはあくまで調べたことなので間違っていることがあります。

リストエディターとは

まず初めにリストエディターについて説明したいと思います。リストエディターはノンサポートながら無償で使える機能で、関連リストからレコードを一括編集できるようになります。リストエディターを使用するときは初めにインストールをします。次にリストエディターを配置したいオブジェクトのレコードページに移動し、歯車マークから編集ページをクリックします。次にコンポーネントからリストエディターを配置したい場所にドラッグして持っていき、リストエディターでどのオブジェクトの何の項目を表示したいかを設定したら完了です。

テンキーを考慮するタイミング

リストエディターを使ってレコードを編集する際にテンキーが使えないのは数値や通貨型の項目を入力するときです。テキスト型の項目に対しては何もしなくてもテンキーを使って入力することができます。また、数値や通貨型の項目に対してもキーボードがかな入力になっているとテンキーから入力することができ、ローマ字入力だと入力できません。

ローマ字入力の時でもテンキーから打てるようにする方法

それではどんな時でもテンキーを使って入力できるようにするにはどうすればよいでしょうか。方法は簡単です。設定のクイック検索にインストール済みパッケージと入力し、ListEditor非管理パッケージのコンポーネントを表示します。 f:id:sbsSF:20211115134932p:plain コンポーネント一覧の中からSF_EditInputCmpをクリックして開発者コンソールから編集します。 f:id:sbsSF:20211115134939p:plain 編集箇所はたったの一か所です。59行目に書かれている<div onkeydown="{!c.handleKeyUp }">を<div onkeypress="{!c.handleKeyUp }">に書き換えるだけです。 f:id:sbsSF:20211115134942p:plain f:id:sbsSF:20211116164234p:plain たったこれだけでテンキーがいつでも使えるようになるので、もし同じ悩みを持っていた人がいたら参考にしてみてください。

補足(onkeydownとonkeypress)

最後に書き換えたonkeydownとonkeypressについて少し説明したいと思います。Visualforce 開発者ガイド Salesforce Developersでは
onkeydown:onkeydown イベントが発生した場合 (ユーザがキーボードのキーを押した場合) に呼び出される JavaScript
onkeypress:onkeypress イベントが発生した場合 (ユーザがキーボードのキーを押したか、押したままにした場合) に呼び出される JavaScript
と書かれており、イベントの発生タイミングの違いしか分からず処理の違いまではよく分かりません。
そこで調べてみた所どうやらキーコードが関係する可能性が高いようです。キーボードから文字を入力したときにその情報は一旦キーコードの形で送られます。 javascriptにおいてキーコードを受け取るイベントにonkeydownとonkeypress、onkeyupがありますが、テンキーから入力した際のキーコードがonkeydownとonkeypressの2つでは異なる値になります。この仕様がリストエディターのApexコンポーネントでも関係しており、テンキーが使えないことにつながるのではと思います。

ユーザ、プロファイルについて

どーも、HGです。

今回はユーザとプロファイルについて解説していきます。 ユーザとはSalesforceにログインする人のことです。 ユーザには「ユーザ名」「メールアドレス」「名」「姓」「ライセンス」「プロファイル」「ロール」などの情報があります。 分かりにくい用語を解説します。
ユーザライセンス
ユーザライセンスによって、ユーザが Salesforce 内でアクセスできる機能が決まります。たとえば、標準 Salesforce ライセンスでは、標準 Salesforce 機能と Chatter にアクセスできます。一方、Salesforce の一部の機能にのみユーザにアクセス権を付与するには、多数のライセンスから選択できます。たとえば、Salesforce 内のデータの参照は許可せずに Chatter へのアクセス権を付与するには、ユーザに Chatter Free ライセンスを付与できます。

f:id:sbsSF:20211116171915p:plain プロファイル
プロファイルによって、ユーザが Salesforce 内で実行できる操作が決まります。プロファイルには、特定のオブジェクトや項目、タブ、レコードへのアクセス権を付与する権限が含まれています。どのユーザも 1 つのプロファイルしか設定できません。プロファイルは、ユーザの職務に基づいて選択します。ほとんどのユーザには、標準ユーザプロファイルが適しています。ユーザが仕事で必要とする以上のアクセスを含むプロファイルを付与しないようにします。
ロール
ロールがロール階層のどこに位置しているかによって、ユーザが Salesforce 内で参照できる情報が決まります。階層の最上位のユーザは、自分より下位のユーザが所有するデータをすべて参照できます。下位レベルのユーザは、自分より上位のユーザや他のブランチのユーザが所有するデータを参照できません。ただし、共有ルールでアクセス権を付与された場合は参照できます。ロールは省略可能ですが、どのユーザにも 1 つのロールしか設定できません。






f:id:sbsSF:20211115154628p:plain

ABC株式会社の例を見てみましょう。 社長のSさんはSalesforceライセンスを持っていて、プロファイルはシステム管理者です。ロールは社長となっています。 Salesforceライセンスにより、Salesforceを利用することが可能です。 システム管理者というプロファイルには全権限を付与していますので、全てに対して編集や削除などが行えます。 社長というロールをトップに設定していますので部下ができることは全てできます。 開発部社員のTさんはプロファイルが一般ユーザーであり、項目の閲覧権限はありますが編集権限はありません。 つまり情報を見ることはできても、編集したりできないのです。 システム管理部門のNさんはロール的にはTさんと同じレベルですが、システム管理者というプロファイルを持っていて社長と同じように全ての権限を持っています。

このようにユーザやプロファイル、ロールによってできることに制限をかけます。 全員に全て許可することも可能ですが、あまり好ましくありません。 開発部のTさんのように制限をかけることで不必要な編集ミスなどを防ぐことができます。 また、現在ABC株式会社の購入ライセンス数は3つしかありませんが、さらに多くの社員が利用するにはライセンスをその分購入します。 新たにプロファイルを作成したり、その中で許可すべき内容を編集したりするなどして、細かい設定が可能となっています。

もし、Salesforceを使っていて何かできない操作があったりするとこのプロファイル設定などで解決することが少なからずあります。 必要な操作ができない場合は、システム管理者のプロファイルを持っている方に確認するなどして、対応しましょう。

新規ユーザ作成

どーも、HGです。 今回は新規ユーザ作成について解説していきます。

f:id:sbsSF:20211117101102p:plain
1
f:id:sbsSF:20211117101120p:plain
2
まずは右上の歯車マークから設定を開きます。 次に左上の検索ボックスに「ユーザ」と入力し、出てきた「ユーザ」をクリックします。

f:id:sbsSF:20211117101131p:plain
3
組織内のユーザ一覧が出てきますので、「新規ユーザ」をクリックします。

f:id:sbsSF:20211117101143p:plain
4
必要情報を入力していきます。

姓と名を入力してください。
別名
リストページ、レポート、その他の場所で、名前全体が納まらない場合にユーザを識別するための短縮名です。デフォルトでは、別名はユーザの名の最初の文字と姓の最初の 4 文字です。
メールアドレス
登録するユーザのメールアドレスです。メールアドレスは組織内で同じものでもかまいません。
ユーザ名
各ユーザは、自分の組織だけではなく、すべての Salesforce 組織で一意のユーザ名を持つ必要があります。ユーザ名は、メールアドレス形式 (〇〇〇@〇〇.com) にする必要がありますが、実際のメールアドレスでなくてもかまいません。 つまり実在しないメールアドレスでもOKです。あくまでも「ログインIDの文字列」ということになります。実際のメールアドレスがすべての Salesforce 組織で一意であれば、そのメールアドレスを使用することもできます。

入力ボックスの左が赤いものが必須項目です。
ロールユーザライセンスプロファイルに関しては別の記事で解説します。
入力が完了したら、保存をクリックします。

f:id:sbsSF:20211117101156p:plain
5
入力内容に不備がなければ、このようなメールが先ほど設定したメールアドレスに届きます。
「アカウントを確認」をクリックします。

f:id:sbsSF:20211117101209p:plain
6
パスワードを設定して、「パスワードを変更」をクリックします。
これで新規ユーザ作成は完了です。

おまけに編集方法を解説します。

f:id:sbsSF:20211117101220p:plain
7
先ほどと同様に、
歯車マーク→設定→検索ボックスに「ユーザ」と入力→ユーザ
ユーザの一覧が出てきますね。
この中に先ほど作成したユーザが追加されています。
左側の編集をクリックすると、編集できます。

f:id:sbsSF:20211117101231p:plain
8
この画面で変更したい内容を書き換えられます。
もし、このユーザをもう使わないなど、必要なくなれば右側の「有効」というチェックボックスを外して保存してしまえば、ユーザを無効化できます。

*ちなみにユーザは一度作成すると無効化はできても削除はできませんのでご注意くださいね。