OmniScriptの設定例

[OmniStudioのまとめに戻る](https://qiita.com/Keiji_otsubo/items/c1e3b177c56e87ff41f7)
[OmniStudio 未解決](https://qiita.com/Keiji_otsubo/items/5cc159302bd1154a5791)


# OmniScript で Apex クラスから依存選択リストの値を入力する方法

+ [OmniScript how to populate dependent picklist value from Apex Class](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007H9EuhSAF)


:::note
I figured it out. The following config on the dependent picklist fixes it

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/814dd4d5-363d-a485-1e11-67c84cddaf98.png)
:::

# Integration Procedure

+ [Facing issue with blank Array in ListAction on Integration Procedure](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007H8ggs)

:::note
Have you tried to run the List Action conditionally based on the availability of your Address array? I believe this will not execute the LA and you will not get any error in your IP. Use Execution Condition Formula for this and try to write the formula as ISNOTBLANK(%AddressArrayNodeName%)
:::


+ [Integration Procedure "Cannot Write Array to Root" Invalid conversion from runtime type List<ANY> to Map<String,ANY>](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007KEtI9)

:::note
Integration Procedure is trying to write an array to the root of the response, but the response is expecting a map. This is causing the error message "Invalid conversion from runtime type List<ANY> to Map<String,ANY>"

The reason why the IP result is null is because the IP is unable to write the response to the output variable. When this happens, the output variable is automatically set to null.

You need to modify your Integration Procedure to write a map to the root of the response instead of an array. You can do this by using the Map.to() function to convert the list to a map.
:::

# 多言語オムニスクリプト

+ [Multi-language OmniScript](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007LrPxm)

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/37d3896e-cb47-18ec-002a-72b3d0eec7fb.png)


# 未整理

+ [Omniscript: 次へボタンをクリックした後に作成されたデータでステップを更新するにはどうすればよいですか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007ahbvA)

+ [選択要素のクリアオプションを削除する方法](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007HLuJv)
+ [Omni Script ラジオ ボタンに画像を追加する](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007cmLFJ)

:::note
OmniScript では、画像をクリック可能なボタンとして使用するオプションは直接提供されていませんが、FlexCard と画像ブロックをアクション リンクと組み合わせて使用​​することで、この機能を実現できます。

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

+ [組織とロケールの設定では、小数点の区切りはピリオドではなくカンマにする必要があります。しかし、Omnistudio Omniscripts はポイントのみを受け入れるようです。ユーザーが小数点としてコンマを使用して数字を入力できるように、Omniscript の数値入力フィールドを構成する方法はありますか?](https://trailhead.salesforce.com/trailblazer-community/feed/0D54V00007epjRP)

:::note
私も同じ問題を抱えていて、数値入力フィールドにマスク #,## を追加しました。うまく機能しているようです。これを行うと "controlWidth" プロパティが機能しなくなるようなので、検証オプションで正規表現を使用して数値を制限することを考えています。 
:::

# ゲストユーザでエラー

+ [Error: You do not have permission to read vlocity_ins_DRBundle__c](https://trailhead.salesforce.com/trailblazer-community/feed/0D54S00000Pl6kb)

:::note
ゲスト ユーザーの Omniscripts でエラーが発生する: 「vlocity_ins__OmniScriptInstance__c を挿入する権限がありません」。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/328136/20c61ff1-7921-6c26-f807-023bc54911ff.png)

1. ゲスト ユーザー/コミュニティ ユーザーの保存された Omniscript オブジェクトに対して、読み取り専用の共有ルールを作成する必要があります。
2. 保存された Omniscript オブジェクトのゲスト ユーザー/コミュニティ ユーザー プロファイルには、読み取りと作成、およびフィールド レベルのセキュリティを含むオブジェクト レベルの権限を付与する必要があります。

https://help.salesforce.com/s/articleView?id=000392439&type=1
:::