LoginSignup
6
1

More than 1 year has passed since last update.

これはなに?

SalesforceのWebタブでURLの一部を組織によって可変にする方法を記載します。

Webとは、カスタムタブとしてWebタブを作成することで
Salesforceの中でWebアプリケーションを利用することができるようになる機能です。

内容的にはiframeで呼び出すことになるのですが、
みるだけではなく form操作やSalesforceとのデータのやり取りをする場合は、
SalesforceCanvasとして登録しVisualforceかAuraで呼び出すことをお勧めします。

どうすれば可変にできるのか?

以下の方法で実装します。

  • ユーザオブジェクトに組織IDで判定してテキストを返す数式項目を作る
  • WebタブのURLに差し込み項目として追加する

どういう時に使うの?

Webアプリケーションを持っている場合

  • 開発
  • staging

と2つの環境を本番のドメインのサブドメインとして運用していることが多いと思います、
そういった場合にsandboxではstaging環境のWebアプリケーションを表示したい!何個もWebタブの設定を追加したくない!といった場合に今回のやり方が役に立つと思います。

やってみる

今回は、検証用のURLとしてQiitaのサービスを使わせていただきます。

本番相当の組織ではhttps://qiita.com/
sandbox相当の組織ではhttps://jobs.qiita.com/を表示させます。

差し込み項目用のユーザ項目を作成する

設定>オブジェクトマネージャー>ユーザ>項目とリレーションにアクセスします。

1. データ型の選択

データ型は数式を選択します。

スクリーンショット 2022-12-04 21.11.47.png

2. 出力型の選択

スクリーンショット 2022-12-04 21.13.03.png

設定項目 内容
項目の表示ラベル Qiitaドメイン
項目名 QiitaDomain
数式の戻り値のデータ型 データ型

3. 数式の入力

スクリーンショット 2022-12-04 21.20.12.png

数式は以下の内容になります。

組織IDには設定>組織情報>salesforce.com 組織 IDに記載されているものを入れてください。

IF ( RIGHT( $Organization.Id , 13) = '組織ID' , 'qiita.com', 'jobs.qiita.com')

RIGHT( $Organization.Id , 13) について

組織IDは00ABABABAB12345のような15桁で表現されていますが、Flowや、数式項目に組織IDを15桁を直書きしている箇所があるとsandbox更新時に本番の組織IDに置換されてしまいます。

そこで先頭の00を除外して13桁でチェックするように記述するとsandbox更新時の組織ID上書きを回避できます。

「00D」を探すと、エンティティが組織であることがわかります。

と記載されているので 冒頭の00を省いたとしても比較対象が組織IDなので問題ないです。

2022/12月現在の挙動であり
13桁でチェックしなくても良くなっている可能性はあります。

このまま作成していただければOKです。
次はWebタブ側の設定に入ります。

Webタブを用意する

設定>タブにアクセスしWebタブの新規を選択します。

スクリーンショット 2022-12-04 20.39.10.png

1. タブのレイアウトの選択

今回はページ幅全体を選択しました。

スクリーンショット 2022-12-04 20.41.21.png

2. 内容と表示プロパティの定義

スクリーンショット 2022-12-04 20.43.06.png

設定項目 内容
タブの表示ラベル Webタブテスト
タブ名 WebTabTest
タブスタイル なんでも良いですが、今回はCD/DVDにしました
コンテンツフレームの高さ (ピクセル) 600

高さに関しては100%指定ができると嬉しいのですが、現時点でできないのが微妙な点です。

IdeaExchangeに投稿されているので、機能として希望するからはいいね!押しておきましょう

3. URL の詳細を入力

スクリーンショット 2022-12-04 20.51.57.png
スクリーンショット 2022-12-04 20.54.57.png

URLの中に差し込み項目として

  • API項目
  • ユーザの項目
  • 組織の項目

この3つがあります。組織IDが組織の項目から取得できるのでいけそうな気がしますが
URLの記述部分に数式を記述することができないため、数式を書けて項目を追加できる差し込み項目であるユーザの項目を使うことになります。

スクリーンショット 2022-12-04 21.38.41.png

設定項目 内容
ボタンまたはリンクの URL https://{!User.QiitaDomain__c}

検証してみる

検証環境がtrailheadのハンズオン組織なので
sandboxでの挙動等は確認できませんが、ユーザの項目の組織IDを別のものに変更することで検証しようと思います。

スクリーンショット 2022-12-04 21.41.48.png

タブにアクセス

スクリーンショット 2022-12-04 22.00.15.png

IF ( RIGHT( $Organization.Id , 13) = '組織ID' , 'qiita.com', 'jobs.qiita.com')

組織IDの部分を別のIDに変えます。

スクリーンショット 2022-12-04 22.01.53.png

別ドメインにアクセスできることが確認できました。

最後に

業務をSalesforce内部で実現することももちろん大事ですが、
複雑なロジック等をSalesforceに持ち込むのであれば別アプリケーションに切り出して
Webタブ等で利用するのもありだと思います。

個人的にはWebタブは好きな機能ではあるので高さの%指定など小さなアップデートを期待しています。

6
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6
1