Record Hunter

[まとめページに戻る](https://qiita.com/Keiji_otsubo/items/60afc2a8d211b6f7d89f)
[まとめN～Z](https://qiita.com/Keiji_otsubo/items/92f92bb9f668ca9688be)


+ [ソースコード](https://github.com/hrk623/record-hunter)
+ [Record Hunterのgithub](https://github.com/hrk623/record-hunter-sfdx)

# 設定

+ [レコードハンターは設定する項目（Field Names）数に上限があるのでしょうか。](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000KhDBDSA3)
+ [Record Hunterの表示制御](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JfCPISA3)
+ [「RecordHunter（レコードハンター）」の実装方法（応用編）](https://regardie.dev/post-1700)
+ [レコードハンターでの少数点表示](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007X7Sx0)

:::note
表示だけでいいのであれば不格好ですが、テキスト型の数式項目を作って、小数点表示させたものを設定すれば可能かもしれません。
:::

+ [カスタムロジック設定方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54V00007eqBFq)

:::note
古いバージョンですが、ソースを確認できるレコードハンターの中身を見てみました。
Custom Logic欄ですが、ここに何も入れない状態で、where句がどのように作られているかを確認してみました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/2324d5c1-879c-f3d6-ae31-37d0982c4859.png)

何も入れない状態では以下のように、7つの項目がAND条件であるということで
Where句を組み立てているようです。レポートの検索条件のロジックと同じ考え方みたいです。

```
0 AND 1 AND 2 AND 3 AND 4 AND 5 AND 6
```

どうも、ここには項目のAPI名 = falseを入力するのではないみたいです。

ここに上記の形式以外を入力するとこの部分が無視されて、Where句が無い状態で検索されました。

残念ながら[Field Names]にセグメントしたい項目を入力しておき、[Default Values or Field Names]で条件を最初から入力させておくという方法しかないと思います
:::

+ [レコードハンターの拡張ツールのリスト幅の調整について](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqdhaSAA)

# 「controller.initColumns : [object Object]」 「商品検索: Attempt to de-reference a null object」 

+ [Record Hunter でエラーが出るようになった](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000ULaL)

:::note
過去にも同じエラーメッセージがありました。 
エラーの出るユーザのアクセス権を確認してみてください 

このエラーの出るユーザですが、全てのオブジェクトでこのエラーが出ますか？

オブジェクトに対するアクセス権がないということはありませんか？

```
ユーザに対して、visualforceとAPEXの権限が足りませんでした。 権限を付与し、解決しました。
```

https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000BsmmpSAB

一方、以下のエラーはまだ解消できずにいます。 

このエラーはRecord Hunter機能で「検索」を実施しようとすると発生します。 

検索対象のレコードは「商品」オブジェクトで、商品レコードもNullではありませんし、 

実施ユーザーも商品へのアクセス権限は有しております。

```
商品検索: Attempt to de-reference a null object
```

同じエラーメッセージに対して以下のような解決策があるようです。 

 セッションの設定のLightning Web セキュリティのチェックを外して1日ぐらい放置してから確認したら、元の用に動作することが確認できました。  

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000JgGOdSAN
:::




# バグ？

+ [Record Hunter sets the screen Flow and clicks the standard completion button of the screen stream component. Why does the screen stream call again](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JepHJ)
+ [レコードハンターの条件を入力しても検索結果が出ない。](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007eqSVi)

:::note
再インストール
:::

+ [レコードハンターの検索が反応しない](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX00000PW7kl)


# 機能

+ [レコード ハンターでは、フィルター基準で RecordType を選択できるかどうか?](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000JfMFd)

:::note
1. RecordTypeと直接入力するとエラーになりました。
2. RecordType.Name を参照する数式フィールドを追加して、それを入力しましたがエラーになりました。しかし1.のエラーとは違う内容みたいです。数式フィールドは指定できないかもしれないですね。

確かめてはないですが、テキスト型のフィールドを追加して、このフィールドに何らかの自動化処理でRecordType.Nameを挿入できれば、設定できるかもしれません。

https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54S00000FvEbvSAF
:::

+ [Record Hunterの検索結果に特定のチェックボックス項目がFalseのもののみ表示させる方法](https://trailhead.salesforce.com/ja/trailblazer-community/feed/0D54V00007eqBFq)

# 活用

+ [レコードハンター　検索結果のエクスポート](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000QOA1FSAX)

:::note
ちょうど似たようなことを検討していたので横から失礼します。

検索はレコハン→ 項目が多いので一覧化はレポート等に利用

レコードハンターの検索結果から画面フローを呼び出し

・検索結果のIDを取得してループを回し、一つのテキスト変数を作成

 ※イメージ：a000001,a000002,a00003

 

・検索条件にIDを指定したレポート作成し、検索結果を埋めたURLのテキスト数式を作成

 ※イメージ：ｈｔｔｐｓ：//**********/lightning/r/Report/レポートID/view?fv0=テキスト変数

 

・画面にて表示テキストのリンクを使いリンクの内容をレポートへのURLへ

 ※イメージ：リンク

 

ユーザには画面のリンクをクリックしてもらいレポートへ遷移→レポートのエクスポート機能を利用

のような感じで作成することができると思うのですがいかがでしょうか？

標準だとここが限界かなぁと。
:::

# カスタマイズ

+ [RecordHunterでのレコード詳細表示 リンク形式の「タイトル」を、新しいタブで開きたい](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ifjyV)

:::note
新しいタブで表示する件ですが、RecordHunterのソースを見てみました。
ソース版を改造すれば、タブの件は実現できると思います。

以下のヘルパーの中で108行目の部分。
私の古いRecordHunterではName項目はリンクですが、以下を見るとボタンになっているようです。

https://github.com/hrk623/record-hunter/blob/master/src/aura/RecordHunter_DataTable/RecordHunter_DataTableHelper.js

```
    createColumn : function(c, h, field) {
        switch (field.type) {
            case 'STRING':
                if (field.isNameField) {
                    return {
                        label: field.label, 
                        sortable: true,
                        type: 'button',
                        typeAttributes: {name: "showDetail", label: {fieldName: field.path}, variant: "base"},
                        fieldName: field.path,
                    }
                }
```

この部分をdatatableのURL型式にできれば他のタブで開くことは可能だと思います。

+ _blank: Opens the link in a new window or tab. In a mobile hybrid app like the Salesforce mobile app, the link is handled similar to _self and opens inside the app if possible.
:::

#  ICU locale の変更の影響

+ [Can I enable ICU locale without problems Record Hunter](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000oBne)

:::note
ICU形式の変更では年月日を桁数を指定して抜き取っている場合に注意が必要と思っています。Record Hunterのソースコードを詳細に見たわけでないので何とも言えないのですが、公開されているソースを眺めてみると、日付の検索条件のところでテキスト化していますね。

https://github.com/hrk623/record-hunter/blob/master/src/classes/RecordHunterField.cls

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/50b369c8-2d8a-e68e-fdfc-3b7cc99c5250.png)

Sandbox等で日付の検索の部分の機能を確かめてみるのがいいかもしれません

ICU形式の変更は、必ずしも問題が発生することを意味するわけではありません。特定のフィールド形式が変更される可能性があるだけです。日時テキストから時間部分を取得するものがある場合のように、特定の形式に依存するように構築された機能のみが機能しなくなります。

https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000A7QKvSAN
:::

# 対応していない

+ [RecordHunterの検索項目「複数選択リスト」の英語表示について](https://trailhead.salesforce.com/trailblazer-community/feed/0D5KX000000VOuK)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/a73130e2-d3b6-484e-a35e-052e11092c9d.png)

RecordHunterが多言語を考慮して実装がされていないかと思います。