ハイパーリンクのまとめ

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめA～M](https://qiita.com/Keiji_otsubo/items/f3ddedee6793bf1576f8)


+ [ハイパーリンク式を使用してコンソールでサブタブを開く](https://qiita.com/Keiji_otsubo/items/ba404912e6d422a1e7a0)
+ [フローのコアアクション「メールを送信」の本文にHYPERLINKは使えません](https://qiita.com/Keiji_otsubo/items/278fa2a2d003fc563643)
+ [Chatterの投稿でハイパーリンクを使う](https://qiita.com/Keiji_otsubo/items/5f98d81b1b12e3c6ed24)
+ [ハイパーリンクリッチテキストが適切にスタイル設定されない](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007OtXSS)

+ [【既知の問題】数式フィールドのハイパーリンクは Lightning の「ターゲット」属性を尊重しません](https://issues.salesforce.com/issue/a028c00000qPxfRAAS/hyperlink-in-formula-field-doesnt-respect-the-target-attribute-in-lightning)
+ [スクリーンフローダイレクトテキストURLを同じブラウザタブで開く](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000BrGUUSA3)

:::note
1. You can create new text template resource (redirectSame_TextTemplate) and add this HTML code in Plain Text mode.

<a href="{!RecordLink_Formula}" target="_self">here</a>

2. Add a display text component to the screen element. Instead of adding a link to a text, simply add the text template {!redirectSame_TextTemplate} that you created in the previous step.
:::

+ [取引先（Account）に商談(Opportuniry)の関連リストをデータテーブルを使用して表示したいのですが、すべてテキスト表示になってしまいます。HYPERLINKが使えない](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T56kQ)

:::note
以下の制約があるみたいです。

日付項目のフォーマットも数式項目の中で行った方が早いかもしれません。

参照項目または主従関係項目をデータテーブルに含めると、その項目値はテーブルに表示されません。たとえば、データテーブルでは関連レコードの [名前] 項目を表示できません。関連レコードの項目値を表示するには、オブジェクトの数式項目を使用します。オブジェクトの数式項目を使用して、関連レコード項目にリンクすることもできます。


例:

```
HYPERLINK( "/" & CASESAFEID(Id), Related_Record__r.Name, "_self" )
```

https://help.salesforce.com/s/articleView?id=sf.flow_ref_elements_screencmp_data_table.htm&type=5
:::


+ [Experience Cloud サイトの画面フローのボタンを使用して URL をリダイレクトする](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmCYzSAM)


target="_self" の使用や HYPERLINK() 関数の実験も試しましたが、いずれも機能せず、新しいタブで開き続けました。 

```
<a class="slds-button slds-button_brand" target="_top" href="https://www.myurlname">Submit</a>
```
 


# 修正なしの告知があった

+ [Process' Post to Chatter Action that posts a hyperlink ends up displaying "_HL_ENCODED_" in the record's feed instead of the proper URL/link](https://trailblazer.salesforce.com/issues_view?id=a1p3A0000003dNKQAY)

In a Process, "Post to Chatter" actions posting a reference to a Formula (Text) Field with a Hyperlink() function ends up with a post displaying "_HL_ENCODED_" instead of the actual URL.


プロセスでは、Hyperlink（）関数を使用して数式（テキスト）フィールドへの参照を投稿する「Chatterへの投稿」アクションは、実際のURLの代わりに「_HL_ENCODED_」を表示する投稿になります。


+ [_HL_ENCODEDの問題](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ervIC)

:::note
私にとって有効な解決策を見つけましたが、驚いたことに、これは公式の Salesforce 記事のどこにも記載されていません。

 _HL_ENCODING アノテーションは、Salesforce が処理中またはレンダリング中にハイパーリンク メタデータがそのまま維持されるようにするための方法です。したがって、この問題を完全に回避するには、基本的にハイパーリンクを HTML として手動で構築する必要があります。 

1. ハイパーリンク関数を返すフィールド (リッチ テキスト タイプ) が HTML を許可するように設定されていることを確認します。 

私のフィールドはすでに正しいタイプでしたが、それでも機能しなかったため、新しいリッチ テキスト フィールドを作成する必要がありましたが、それは機能しました。これは、上で述べたことによるものだと思います。これは HTML サニタイズとも呼ばれます。

2. ハイパーリンク機能ではなく、HTML を使用する必要があります。

以下は使用できる HTML コーディングのサンプルです。

```H
"<a href='" & {!VOppURL} & "' target='_self'>" & {!$Record.Opportunity_ID__c} & "</a>"
```

 - {!VOppURL} は変数で、レコード URL のようなテキスト型です。

 - {!$Record.Opportunity_ID__c} はレコード ID (Opp-123456) であり、これがハイパーリンクされる表示テキストになります。
:::

# プロファイルによる表示非表示の制御

+ [カスタムボタンの参照権限について（管理者のみ使えるようにしたい）](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007RfQnY)
+ [レコードページのカスタムボタンを特定のユーザにのみ表示されるようにする](https://help.salesforce.com/s/articleView?id=000386498&type=1)

:::note
この問題を解決するための良い方法は、数式項目を作成し、HYPERLINK 関数 (ボタンに見えるようにハイパーリンクに画像を追加する) を利用してリンクを条件付きで表示することです。たとえば、次の数式では「システム管理者」ユーザのみへの Google ハイパーリンクが表示されます。

IF(CONTAINS($Profile.Name,"System Administrator"),HYPERLINK("http://www.google.com/" ,"Button name")," ")

他のどのユーザも「ボタン」(画像) を表示できません。
:::