Adsenseコード

ラベル Salesforce標準 の投稿を表示しています。 すべての投稿を表示
ラベル Salesforce標準 の投稿を表示しています。 すべての投稿を表示

2018-07-30

Salesforce本番リリース時に気をつけたいポイント

■レポートを変更セットを使ってリリースする場合の落とし穴


リリース先、リリース元にレポートタイプが存在し、
レポートのみを変更セットによって新規作成、修正する場合、

リリース元にあってリリース元にない項目がレポートタイプのレイアウトに存在すると、
リリースは成功するのですがレポートから項目がこっそりと抜け落ちます。

特にレポートの項目の細かい修正時は、レポートタイプを必ず変更セットのコンポーネントに追加するか、手作業で修正するといった手段を取ることになりそうです。

リリースは成功するのに項目が消えるのは困りますね・・・

■プロファイルを含んだ変更セット


変更セットにプロファイルを含めると、リリース時のプロファイル設定作業が大幅に軽減することができます。
以下、プロファイルを含めたリリースの注意点です。

・同じ変更セットに含まれているカスタムオブジェクト、カスタム項目のみがプロファイルの反映対象になる。

例えば、取引先の参照ボタンの上書き設定(Lightningレコードページの割当など)や、標準オブジェクトの標準項目の項目レベルセキュリティなどは、対象外になります。

標準オブジェクト以外には、管理パッケージのオブジェクト、項目は変更セットに含めることができませんので、管理パッケージのオブジェクト権限、項目レベルセキュリティは対象外になります。

管理パッケージについては、影響が見切れていると思っていても思わぬところで抜けがあるものなので、念の為軽い通貫確認はしたほうが良さそうです。

■参照関係、主従関係、自動採番型のデータ型変更


変更セットによるデータ型の変更は、エラーが出やすいポイントになります。
特に参照→主従、主従→参照、テキスト→自動採番 
といった変更は注意する必要があります。

上記のデータ型変更を変更セットを使って実施できない場合、
手作業で変更することになります。

その場合、Apex等でその項目が利用されていれば、全ての箇所を
コメントアウトなどで対応する必要がでてきます。

Sandboxであれば、Apexを直接編集し、一時的にコメントアウトすることができますが、本番リリースではApexコードは直接編集できないため、変更セットを使ってコメントアウトをしたApexをリリースする必要があります。

また、本番環境へのリリースになるため、Testクラスは全てPassかつコードカバー率を
維持する必要もあります。

以上の注意点を考慮してリリース計画を立てる必要があります。





2018-02-16

知っていないと気づきにくい設計時の考慮事項

■Name項目系


・Name項目は癖があるので注意が必要
・検索レイアウトの項目順序は、Name項目が先頭に固定されているので、Name項目にはユーザにわかりやすいラベルを定義する必要がある
・何でもかんでも自動採番にすればいいわけではない
→ 参照元の参照項目としてレイアウトで表示する場合、Nameがラベル名となるリンクが表示されることを考慮する
・主に履歴系は自動採番が適している
・好きなラベルでレコード参照ページヘのリンクを作成したい場合は、数式項目でHYPERLINK関数を使う方法もある
→ ただ、項目を闇雲に増やすととリストビューの検索条件やレポート作成時の表示項目数が増えるといった副作用があるので、なるべくカスタム項目は増やさないほうが良い

■項目系


・カスタムオブジェクトで作成する数式項目は、グローバル検索などの検索対象からは外れる
・項目をグローバル検索の検索対象としたい場合は数式ではなくテキストとして値を保持する必要がある
・親子関係がある場合は項目自動更新を使って親から子へテキスト項目を同期することができる
・参照項目で参照先のName項目を表示したいが、参照画面へのリンクを表示させたくない場合(マスタ系オブジェクトなど)、Name項目を参照する数式項目で置き換える手がある(遷移画面数を増やしたくない場合など(Salesforce的には良くありませんが))

2017-12-12

Salesforce Lightning を勉強するためのチュートリアル(入門)

私のドメインの設定


私のドメインを設定します。
これを設定する理由はセキュリティ対策が主な理由ですが、その他にも組織が同じインスタンスでもセッションが分かれるため、同じブラウザで異なる組織を同時に操作できるなどのメリットもあります。



設定から私のドメインを選択します。




設定するサブドメインを入力して登録します。
一度登録すると、変更するにはサポートに連絡しなければならないので、サブドメインの登録は慎重に行います。




サブドメインのリリースが完了すると、ログインボタンが表示されます。
ここを押します。




設定したドメインのページに移動します。




URLのサブドメインを確認すると、登録したサブドメインになっています。




Lightning アプリケーションビルダーで Lightning Experience 用のレコード詳細画面を作成する。


Lightning Experience デフォルトのレコード詳細画面に似た画面を Linghtning アプリケーションビルダーで作成します。

Lightning Experience に切り替えます。

設定画面からオブジェクトマネージャに進み、作成するオブジェクトの詳細画面に進みます。

Lightning レコードページを選択し、「新規」ボタンよりレコードページを新規作成します。

「レコードページ」を選択します。

表示ラベルを「[オブジェクト]レコードページ」と入力し、対象のオブジェクトを選択します。

ページテンプレートは「1列」を選択します。

Lightning コンポーネントペインから「強調表示パネル」と「タブ」を選択して配置します。

関連タブの設定


タブコンポーネント内の「関連」タブを選択し、表示されたフィールド内に「関連リスト」コンポーネントをドラッグして配置します。

詳細タブの設定


タブコンポーネント内の「詳細」タブを選択し、表示されたフィールド内に「レコードの詳細」コンポーネントをドラッグして配置します。

Chatterタブの追加


タブコンポーネントを選択し、右側のペインの「タブを追加」を押して、タブを追加します。
追加されたタブをクリックし、タブの表示ラベルで「Chatter」を選択し、完了を押します。


追加したChatterタブを選択して表示し、Chatterコンポーネントを表示したフィールドに配置します。


保存と有効化、割り当ての設定


「保存」ボタンを押すと、有効化を促す画面が表示されますので、有効化します。

続いて作成した Lightning レコードページ の適用先を設定します。
「アプリケーションのデフォルト」タブを選択して、アプリケーションのデフォルトとして割り当てて、保存をします。



2017-11-17

VisualWorkFlow(フロー)はわからないなーから脱出する




■ Visual Workflow ? Cloud Flow Designer ? フロー ?


これ、非常にわかりづらいです。
Treilheadでも一番最初にこの用語の解説をしているので、
本家もわかりづらいことを自覚しているようです。

結局こう書いてあります。

「簡単に言うと、Visual Workflow は製品名、Cloud Flow Designer はツール、そしてフローはユーザが作成するもの、ということになります。」

気力があったら今度わかりやすい言葉に置き換えたいと思います。




■画面の配置


左側のパレッドより、ユーザインターフェース内にある「画面」アイテムを、
右側のキャンバスに配置します。
ドラッグ&ドロップで可能です。

アイテムを配置したら、アイテムをダブルクリックして設定画面を開きます。

「一般情報」のタブで、以下を設定します。

名前 「New Account」
一意の名前 「New_Account」

「項目の追加」タブで以下をダブルクリックして、項目を追加します。

テキストボックス
数値

追加した項目をクリックして、以下を設定します。

テキストボックス
 表示ラベル: 取引先名
 一意の名前: AccountName

数値
 表示ラベル: 電話番号
 一意の名前: PhoneNumber

OKをクリックして保存します。




■レコードの作成


レコードの作成のアイテムを配置します。
アイテムを配置したら、ダブルクリックをして、設定画面を開きます。

一般設定
 名前 「取引先の作成」
 一意の名前 「CreateAccount」

割り当て
 作成:「Account」
 項目:「Name」、 値:「AccountName」※
 項目:「Phone」、 値:「PhoneNumber」※

※ 選択リストを開き、画面入力項目から選択する




■ノードの接続


画面アイテムからレコードの作成アイテムまでドラッグして線を引っ張ります。




■開始要素の設定


画面アイテムの右上にカーソルを移動させると、「開始要素として設定」ボタンが表示されますので、開始アイテムのそれを押して、画面アイテムを開始要素に設定します。

開始要素に設定されると、開始要素ボタンはカーソルを外しても表示されたままになります。


フローを保存します。




■気力があれば・・・


フローランタイム環境の選択
フローのテスト
フローの有効化
ホームページへのフローの埋め込み

を書きます。




■できることを箇条書き

処理の組み合わせで、以下のことができるようです。

以下は静的アクションに分類されています。
 Chatterに投稿
 メールを送信
 承認申請




参考
Visual Workflow を使用してユーザから情報を収集し、その情報に基づいて操作する

フローの高速作成を使ってレコードの一括作成を行う【Salesforce】

プロセスビルダーとフローで処理を構築






2017-11-16

Salesforceのレポートで知っておくべきこと




バケット項目とは


レポートに表示している値を、新規にカスタム項目を作成することなく、
まとめることができる機能です。




例 「ソース列」が数値項目の場合
数値が以下のときに、以下のように値を表示させることができます

10000以上       →「大規模」
1000以上 10000未満 →「中規模」
上記以外        →「小規模」




例 「ソース列」が選択リストやテキスト項目の場合
項目値が以下のときに、以下のように値を表示させることができます

東京都 or 神奈川県 or 埼玉県 →「関東」
青森県 or 秋田県 or 岩手県  →「北東北」
北海道           →「北海道」
...




カスタム集計項目


子オブジェクトの項目の数値を集計する場合は、以下のように書きます。

Ko__c.num__c:SUM



それぞれ以下のことを表しています。

Ko__c  子オブジェクトのAPI名
num__c  子オブジェクトの数値項目
:SUM  集計方法は合計



特に:SUMが抜けていると、そんな項目はないと以下のように
怒られてしまいますので、気をつけてください。

「エラー: カスタム集計項目定義が無効です: 項目Ko__c.num__cは存在しません。スペルを確認してください。。」


:sumと書いても怒られるようです。
:SUMと書きましょう。




マトリックス形式で複数のカスタム集計項目を表示する場合


カスタム集計項目をマトリックス形式のレポートで複数使う場合は、作成順序に注意してください。
これだけでは何のことかさっぱりですね。カスタム集計項目を複数新規作成すると、上から順番に作成した項目が追加されていきます。カスタム集計項目を複数表示させた場合、実はこの順番でしか表示できません。


つまり、カスタム集計項目同士の表示順序を指定することができません。
この順番は、カスタム集計項目を作成した順になってしまうのです。

     




もしある項目をより下に表示したくなった場合は、新規にカスタム集計項目を作り直しましょう。


また、カスタム集計項目は最大で5つまでしか作れないので、使いこなしてくるとそのうちこの制限に引っかかります。




その他、カスタム集計項目をより高度に使いこなすには、以下が参考になります。

IF文を使った高度なカスタム集計項目を作成する
PREVGROUPVAL関数を使って高度なカスタム集計項目を作成する

PARENTGROUPVAL および PREVGROUPVAL(Salesforceヘルプ)
PREVGROUPVAL関数の使用例
parentgroupval関数の使用例



レポートタイプの表示ラベルの命名方法


以下のようにすると、どのリレーションの
レポートタイプかがわかりやすいかと思います。

例 レポートタイプの表示ラベル1

取引先.活動(WhatID)
取引先.活動(Account__c)
取引先.カスタムobj.活動(WhatID)

つまり

親オブジェクト.子オブジェクト(参照項目API名)

です。



また例えば、都道府県←市区町村←字に関連するレポートタイプについて考えてみます。
レポートタイプの作成パターンは、次の6つが考えられます。

① 都道府県.市区町村.字
② (都道府県.市区町村)セット.字
③ (都道府県.市区町村.字)セットのみ
④ 市区町村.字
⑤ (市区町村.字)セットのみ
⑥ 字

レコードの存在パターンも次の6つが考えられます。

東京都
東京都.中央区
東京都.中央区.日本橋
中央区
中央区.日本橋
日本橋

それぞれのレポートタイプの対象レコードは以下になります。

① 都道府県.市区町村.字

◯ 東京都
◯ 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
× 中央区.日本橋
× 日本橋
→ 都道府県が関連しないレコードは対象外

② (都道府県.市区町村)セット.字

× 東京都
◯ 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
× 中央区.日本橋
× 日本橋
→ 都道府県が関連する市区町村と
  都道府県が関連する字のみが対象

③ (都道府県.市区町村.字)セットのみ

× 東京都
× 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
× 中央区.日本橋
× 日本橋
→ 都道府県が関連する字のみが対象

④ 市区町村.字

× 東京都
◯ 東京都.中央区
◯ 東京都.中央区.日本橋
◯ 中央区
◯ 中央区.日本橋
× 日本橋
→ 市区町村が関連しないレコードは対象外

⑤ (市区町村.字)セットのみ

× 東京都
× 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
◯ 中央区.日本橋
× 日本橋
→ 市区町村が関連する字のみが対象

⑥ 字

× 東京都
× 東京都.中央区
◯ 東京都.中央区.日本橋
× 中央区
◯ 中央区.日本橋
◯ 日本橋
→ 字が関連しないレコードは対象外



以上をどう名前に反映するかは悩ましいところですが、以下はどうでしょうか。
もっといい方法があったら教えてほしいです・・・。

① 全都道府県.市区町村.字
② 都道府県.全市区町村.字
③ 都道府県.市区町村.全字
④ 全市区町村.字
⑤ 市区町村.全字
⑥ 全字



マトリックス形式のレポートのポイント


1.行、列のグルーピングは2階層までしかできない


2.レコードの項目を複数表示させたい場合は、
表示 > 詳細 
からレコードの項目を表示できる詳細表示を利用する。

詳細表示を隠した状態で表示できるのは、グルーピングの項目のみになる。




結合形式のレポートのポイント


・複数のレコードタイプを利用したい場合に利用する。
・サマリー形式のレポートを(それぞれのレポートタイプで)横に複数並べたもの。
・それぞれのレコードタイプの親が一致している場合、共通項目として親項目を横断してを表示することができる(3つまで)。
・共通でない子オブジェクトの項目でグルーピングすることはできない。(したい場合はサマリー形式を選択する)
・なので何のためにグルーピングするのかは不明





活動に関するレポートのポイント


標準で自動的に作成されるレポートタイプを利用しないと、ToDoのみ、行動のみ、活動予定のみ、完了活動のみなどのしぼりこみはできない。
上記のステータスを判別できるような項目があれば、その項目をレポートの条件に追加するか、カスタム項目でチェックボックスの数式項目を作れば対応できると思いますが・・・。



レポートに作成した項目が出てこない!


新規で作成した項目をレポートで使用するには、そのレポートのレポートタイプの項目レイアウトで新規項目を追加してあげる必要があります。


レポートタイプの詳細画面から、「レイアウトを編集する」を押します。



以下で項目を追加できればいいのですが、一見どうやって追加するのかわかりません。
















ちょっと右にスクロールしてあげましょう

















こういうところがSalesforce嫌いです(笑
あとはD&Dで項目を追加してあげましょう。

あとレポートだけですが、項目のラベル名を自由に設定することもできます。
(操作性が悪いので蓋をしておきたい機能ではありますが・・・)

2017-11-10

【Salesforce】プロセスビルダーの全体像

■プロセスの作成

以下を設定します。
プロセス名、API名、説明、プロセスを開始するタイミング

「プロセスを開始するタイミング」は以下の2パターンから選択
  レコードが変更された時
  別のプロセスから呼び出される時




■オブジェクトの選択

プロセスを開始するタイミングの対象のオブジェクトを選択します。
ここでは、発火タイミングで


レコードを作成時
レコードを作成と編集時


を選択できます。
再帰の設定もできます。




■条件を追加

アクションの実行対象のルール決めをします。
実行条件は以下の設定が可能です。


1.項目の一致条件
2.数式
3.無条件で実行


数式ではオブジェクトの項目に加え、親レコードの項目、
システム変数を用いて数式を作成することができます。




■アクション

以下のアクションが可能です


Apex
Chatterに投稿
クイックアクション
フロー
プロセス
メールアラート
レコードを更新
レコードを作成
承認申請


クイックアクションについて
 以下にに関連するアクションを設定することができます。

  オブジェクト
  グローバルアクション
  レコードを更新
  レコードを作成
  活動を記録




■アクション終了後

「この条件を評価した後の操作を指定」の部分です。
以下が選択できます。


プロセスの終了
次の条件に進む






【データローダ】文字化けしてるエクスポートファイルの対処法

Salesforce の data loader で Export でダウンロードしてきた
extract.csv ファイルを Excel で閲覧すると、文字化けで
日本語がみれない時の対処法です。





◆csv ファイルの文字コードを変換する方法

この方法は、csvを加工してSalesforceへインポート(insertやupdateなど)
する場合は、再びUTF-8に戻す必要があります。

■利用アプリ


私が使っているのは CotEditor です。
さくらエディターでも同様なことができると思うので、
手元にあるテキストエディターを利用するといいと思います。

■対処法


文字化けしている csv ファイルを CotEditor で開きます。


エンコーディングで Shift JIS を選択します。
再解釈か変換かを聞かれるので、変換を選択します。


Shift JIS に変換されました。


変更を保存し、再度 Excel で csv ファイルを開くと
文字化けが解消されます。





◆外部データの取込で文字コードを指定する


■インポートウィザード


新規作成にて Excel を起動します。
データ > テキストファイル を選択します。
ウィザードが出てくるので、文字コードで「UTF-8」を選択します。
プレビューの表示で文字化けしていないことを確認できます。

■区切り文字の設定


次の画面では csv ファイルなので、区切り文字は「カンマ」のみ選択します。

■データ形式の設定


区切った後のデータ形式は、すべての列で「文字列」を選択しておくと
0先頭の文字が消去されるなどのリスクはなくなります。


一番左の列をクリックした後、一番右端の列をShiftキーを押したままクリックすると
一括して列のデータ形式を文字列に指定することができます。

■データを返す先


データを返す先は既存のシートの一番左上でいいと思います。
OKを押します。



◆BOMを付ける方法(mac OS)


BOMというものをつけることで、csv ファイルを開くときに、
Excel で Shift JIS としてファイルを解釈させるのではなく、
UTF-8のファイルとして解釈させる方法です。

■CotEditor を使う


csv ファイルを CotEditor で開き、
「エンコーディング」を「Unicode(UTF-8)」を
選択して保存します。


Excel で csv ファイルを開くと、文字化けせずにファイルを開けます。
ただ、BOMをつけると一部ではエラーが発生するようなので、
正常な動作をしない場合には、BOMは削除したほうが良さそうです。


※ 追記
BOM付きUTF-8に変換した後に Excel でファイルを編集、保存をすると
データがカマ区切り(,)ではなくタブ切りで保存されてしまうようです。


「名前をつけて保存」から、ファイルの種類をcsvに指定して保存しても
Shift JIS で保存されてしまいます。


Shift JIS で保存した後、CotEditor で UTF-8 に変換することが必要ですね。




◆BOMを付ける方法(Windows)


Windows の場合には、メモ帳を使います。


csvファイルをメモ帳で開いて保存するだけで、
BOMは付加されます。


あとは Excel ファイルを開いて確認してみてください。




参考 Excelで文字コードを変換せずに開く方法
http://primarytext.jp/blog/1275






2017-10-12

【Salesforce】数式項目でできることを挙げてみた


Salesforce において重要なポイントと言っても過言ではない数式について、基本的なことからこんなこともできるのか というものまでメモしてみました。

Salesforce の数式は、基本的に Excel の関数と似ているので、Salesforceの数式で情報が不足する場合は、Excelの関数のソリューションとして検索するといい情報が得られるかもしれません。



◆テキスト関連


■文字をべた書きしたい


""で囲います
"テキスト"



■文字列を結合したい


"&"で結合します
"テキスト"&"テキスト"



■日付項目などのデータ型変数をテキスト表示したい


TEXT( 項目のAPI名など )



■指定の文字を抽出


左から指定文字数のテキストを返します
LEFT( 対象文字, 抽出文字数 )

右から指定文字数のテキストを返します
RIGHT( 対象文字, 抽出文字数 )


■リンクを表示したい


HYPERLINK( リンク先URL , ラベル )
これを使うことで、任意のラベルのハイパーリンクを表示することができます


URLをべた書きでも、リンクとして表示させることもできます。



■画像を表示させたい


IMAGE( image_url, alternate_text[, height][, width] )

, height  , width  は省略可能です
alternate_text は画像が表示できないときに表示するテキストです。




◆日付及び時間関連


日付項目から年、月、日を数値で取得したい


以下はいずれも日付型から数値型へデータ型が変換されます

YEAR(date)
MONTH(date)
DAY(date)



年月を出力


上記の例では昇順にすると10月、8月、9月となるので下記のようにするといいです。

LEFT( TEXT( date ), 7 )



2 つの日付が同月かどうかを確認する


AND(
  MONTH( date_1 ) == MONTH( date_2 ),
  YEAR( date_1 ) == YEAR( date_2 )
)




2 つの日付間の日数を確認する



TODAY() - 30 > date



◆数値関連


■足す項目全てが空(0ではなく)の場合は、空で表示したい


戻り値が数値型の数式項目で空を出力したい場合、nullを返すことで空にできます。
ここで注意しなければいけないのが、以下の場合、Salesforceの数式では空で返ってきます。

  A__c + B__c
= "" + 1
→ ""で出力される

これを避けるには、BLANKVALUE関数を使います。

  BLANKVALUE(A__c, 0) + BLANKVALUE(B__c, 0)
= "" + 1
→ 1で出力される

以上から、最初の要件を満たす数式は次のようになります。

IF( LEN( TEXT(A__c)&TEXT(B__c) )=0 , null, BLANKVALUE(A__c, 0) + BLANKVALUE(B__c, 0) )


参考
日付および日付/時間型のデータの扱い方
日付型数式の高度なサンプル集




参考
https://help.salesforce.com/articleView?id=customize_functions.htm&type=0