画面フロー : ルックアップコンポーネント

[Flowに関するまとめページに戻る](https://qiita.com/Keiji_otsubo/items/55ebc9c634a3216f3990)

+ [スクリーンフローにおける参照コンポーネントのエラー](https://qiita.com/Keiji_otsubo/items/7bcadb507a091f162b2f)
------------------
+ [【画面フロー】Contact情報を参照するルックアップコンポーネントを作成する。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007epz8i)

:::note alert
このルックアップコンポーネントでエラーが発生しました。Salesforce システム管理者にお問い合わせください。
:::


:::note
この部分ですが、実際に扱いたいオブジェクトとは関係ないと思います。
単に親オブジェクトと子オブジェクトの関係をこのコンポーネントに教えているだけではないでしょうか？

オブジェクトAPI参照名がAccoutの場合AccoutにはContactIdという項目はないのでエラーになっていると思います。

OpportunityオブジェクトにはContactIdがあるので、関係を知ることができていると思います。

別にOpportunityオブジェクトでなくても、ContactIdを持っているオブジェクトであれば何でもいいのではないかと思います。

また、この設定のためだけに行うのは少々気が引けますが、AccountオブジェクトにContactIdのカスタム項目を持てばエラーは無くなると思います。（動作の検証のためで、あまり意味はないです）
:::


# 日本語と英語で設定場所が違う　ややこしい

+ オブジェクトAPI参照名:Object API Name <---　選択したい参照項目を含むオブジェクトを指定する
+ 項目API参照名:Field API Name <--- 選択したい参照項目
+ 表示ラベル:Label <--- 画面上のラベル

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/d8fa8377-0745-6e3e-a06f-9e3ee8046996.png)

# デフォルト値

+ [【画面フロー】ルックアップコンポーネントでUserを参照する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqRFU)

:::note
数式リソースをまずは作ります

```
{!$User.Id}
```

それを以下のようにセットしたら、デフォルト値が入っていました。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/d102a75f-78d7-3c19-b22b-2e9dd9ff7e6e.png)
:::


# Object Task is not supported UI API

+ [Task Object - Screen Flow to LookUp Users](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007T4OJJSA3)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/171a42a7-e7db-02ae-6321-e0f942877523.png)

:::note
I don't think we need to specify the fields and objects you actually use in the lookup component.

In this case, specify the field that has a lookup relationship with the user object and the object that has that field.

The problem is resolved by setting the user ID obtained by this component to WhoId.

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/3ef3a6de-ee62-5ac6-b151-c3fdf753b727.png)
:::

+ [タスクはフロー内のルックアップフィールドに入力します](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000BrhsgSAB)
+ [「Object Event is not supported in UI API」というエラーメッセージが表示され、検索ができません。](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D53A00004pjEuASAU)
+ [Lookup on Activity/Task object.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Jfz0RSAR)



# フィルタリング

+ [【未解決】Screen flow with a lookup but filter that lookup](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqEbN)

+ [画面フロー内の要素の検索 - 特定のレコードタイプをフィルターする](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Br3mnSAB)

:::note
これを実現するには、そのレコード タイプにルックアップ フィルタを含む Account ルックアップ フィールドを作成します。ここで興味深いのは、このフィールドは技術的にはどのオブジェクトにも配置できますが、Contact や Opportunity などの適切なオブジェクトに作成することです。Opportunity を使用する場合、オブジェクト API 名はOpportunityになり、フィールド API 名はAccount__cなどのカスタム フィールドの名前になります。

この記事は、この点についてさらに詳しく説明しています: https://unofficialsf.com/the-new-lookup-component/

とはいえ、フロー ルックアップ コンポーネントにフィルターを追加しようとしていくつかの問題点を経験したため、他の人は代わりに UnofficialSF コンポーネントを使用しました。これは、組織にインストールできる無料のアドオンです。詳細については、こちらをご覧ください: https://unofficialsf.com/lookup/

任意のオブジェクトのフィールドを参照する方法は奇妙な概念ですが、機能しているようです。必要なオブジェクトへの参照があるという理由だけで、完全にランダムなオブジェクトのフィールドを参照したシナリオがあり、これまでのところは機能しています。ただし、次の項目を発見したばかりですが、これは覚えておくと便利です。

フローの実行ユーザーには、ソース オブジェクトに対する作成権限が必要です。たとえば、取引先責任者のアカウントを検索するには、実行ユーザーに取引先責任者オブジェクトに対する作成権限が必要です。


:::

実際に試してみました。

Caseオブジェクトの取引先責任者にルックアップ検索条件を設定

検索条件	
取引先責任者名: 取引先名: 取引先名次の文字列で始まる202

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/ae8879ed-5b00-901d-5f51-ff368c322f4a.png)

取引先に関係なく、取引先名次の文字列で始まる202の条件で見ています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/528cd127-4f3f-48f1-c61d-6d7567d252c5.png)

次に連動させてみよう。

検索条件	
取引先責任者名: 取引先名 ID次の文字列と一致するケース: 取引先名 ID

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/2cc1150e-b794-27f4-b291-59d843576159.png)

表示できませんね。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/2bb177db-4851-0e10-571e-48b1b5ebad28.png)

ケース: 取引先名 IDという条件でケースと指定されているから？

以下のアイデアの中に... はやり項目の参照はできないようです。

https://ideas.salesforce.com/s/idea/a0B8W00000GdZXjUAN/add-filter-criteria-to-flow-lookup-component

作業指示書に、資産オブジェクトを参照する新しい作業指示書明細項目を追加するフローがあります。作業指示書明細項目オブジェクトの資産参照には、asset.AccountId が workOrderLineItem.AccountId と一致することを確認するためのフィルターがあります。フロー内の参照コンポーネントでは依存フィルターがサポートされていないため、ユーザーに何千もの資産を検索するよう求めずに済む唯一のオプションは、フロー内で SOQL クエリを実行してアカウントに関連付けられているすべての資産を取得し、それらをレコード選択セットに表示してユーザーが選択できるようにすることです。これは大きなオーバーヘッドですが、依存参照がサポートされていれば解決できます。


# 未解決

+ [Bulk update of contact Ownership on contacts through flow.](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqJ3k)