---
title: "決定キャンバスにプログラム可能な決定を追加してください"
slug: "add-a-programmable-decision-to-the-decision-canvas"
abstract: "意思決定モデルのバリアントにプログラム可能な意思決定を追加する方法を説明します。"
---
# 決定キャンバスにプログラム可能な決定を追加してください

次の節では、決定モデルのバリアントにプログラム可能な決定を追加する方法について説明します。

決定モデルにプログラム可能な決定を追加するには:

1.  パレットから**Programmable**コンポーネントをクリックしてドラッグし、決定キャンバスに移動し、「**編集![Edit\_decision\_table.png](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/Edit_decision_table.png)」**アイコンをクリックします。
    
    > !ヒントキャンバスにプログラム可能なものを追加するたびに、固有の **プログラム可能な** タブが表示されます。プログラム可能な決定を削除せずにタブを閉じることができます。
    
2.  **設定**タブで以下の項目を埋めてください:
    
    -   **プログラム可能な名前**:プログラム可能な決定の名前を編集します。
    -   **出力参照**:出力参照の名前を編集します。出力参照は、 [プログラム可能な決定の出力を別の決定に使用](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-decisioning-in-sitecore-personalize/managing-decision-model-variants-in-sitecore-personalize/pass-outputs-between-decisions.html "Pass outputs between decisions")できるようにします。Sitecore Personalize main **()** 関数の返り値を出力参照として保存します。以下の命名規則を適用します:
        -   出力参照名に空白がないことを確認してください。
        -   最初の文字はASCII文字(大文字または小文字)、Unicode変数の命名規則に準拠した文字、またはアンダースコア(\_)文字でなければなりません。最初の文字は数字を使わないでください。
        -   その後の文字は文字、数字、または下線でなければなりません。
        -   出力参照名はリザーブワードであってはなりません。リブドワードとは、変数名、関数名、クラス名など識別子として使えないJavaScript関数やその他の用途でリザーブされるキーワードのことです。
        -   各出力参照名は意思決定キャンバス内で一意でなければなりません。
    -   **タイプ**:以下のいずれかを選択します:
        -   **文字列** - テキスト値。
        -   **ブール値** - 真または偽のいずれかになり得る二進数。
        -   **整数** - 数値のことです。
        -   **長** - 標準的な整数型のサイズより長い整数。これは大きな数に対して有用です。
        -   **日付** - [日付の価値](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-decisioning-in-sitecore-personalize/managing-programmable-decisions/including-dates-in-programmable-decisions.html "Including dates in programmable decisions")を表します。
        -   **Map** - 次の決定のためにオブジェクト全体を返します。
3.  **プログラム可能な決定**のJavaScriptを入力してください。JavaScriptコードを自動でフォーマット・インデントするには、![Format JS icon](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/preetify.png)をクリックしてください。
    
    [サポート](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-decisioning-in-sitecore-personalize/managing-programmable-decisions/supported-and-unsupported-javascript-entities/supported-javascript-functions.html "Supported JavaScript functions")機能と[サポートされていない](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/introduction-to-decisioning-in-sitecore-personalize/managing-programmable-decisions/supported-and-unsupported-javascript-entities/unsupported-javascript-functions-and-alternatives.html "Unsupported JavaScript functions and alternatives")機能JavaScriptに慣れておくことをお勧めします。
    
    [即時呼び出し関数式](https://en.wikipedia.org/wiki/Immediately_invoked_function_expression)**(IIFE)**を使うことができます。
    
    > !ヒント書いていると、コードエディタのライブラリが表示され、属性やスニペットから選択できます。
    
4.  コードを一から作成する代わりに、1つ以上の[JSモジュール関数](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/developer-center/js-modules/js-modules.html "JS Modules")をインポートできます。これを行うには、![Library icon](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/pers_libraryIcon.png) をクリックして次の画像のようにJSモジュールを選択してください。
    
    ![Importing a JS module](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/pers_addJSmodule.png)
    
    > !ヒントJSモジュールを開くには、名前にカーソルを合わせて ![pers\_openJS.png](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/pers_openJS.png)をクリックします。説明を表示するには、名前にカーソルを合わせて ![pers\_desc.png](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/pers_desc.png)をクリックします。
    
    インポートされたJSモジュールの数は ![pers\_jsmodulenum.png](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/pers_jsmodulenum.png) アイコン上で更新されます。Sitecore Personalizeプログラム可能な決定がコンパイルされる際に、JSモジュールからのコードを挿入します。
    
5.  コーディングペインの **「Data** 」タブをクリックしてゲストデータモデルの属性やパスをコピーし、JavaScriptエディターに貼り付けてください。 ![CDP\_webtemp\_pencilicon.png](https://doc.sitecore.com/api/markdown-image/personalize/ja/users/sitecore-personalize/images/CDP_webtemp_pencilicon.png) アイコンをクリックし、以下のオプションのいずれかを選択してください:
    
    -   ゲストタイプに基づくランダムなゲストの属性を見るには、検索ボックスをクリックし、「 **クイックセレクトカスタマー**」または「**クイックセレクトビジター**」を選択します。システムは最近アクティブだったゲストを選択します。
        
    -   特定のゲストからフィールドを選択するには、検索ボックスにそのゲストの固有の識別子を入力します。例えば、セグメントメンバーシップを動的データとして使いたい場合は、そのセグメントのメンバーであるゲストを検索してください。例えば、メールアドレス、他のユニークな識別子、ブラウザIDを使ってゲストを検索できます。
        
        > !注コードの設定やテスト時によく使うゲストのデータを使っている場合は、**スター** アイコンをクリックしてゲストをブックマークするだけで、もう探す必要がなくなりましょう。
        
6.  コーディングペインの **「Data** 」タブをクリックして、意思決定モデルの応答から属性やパスをコピーし、JavaScriptエディタに貼り付けてください。JavaScriptを書く際には、[意思決定におけるデータ制限](https://doc.sitecore.com/personalize/ja/users/sitecore-personalize/using-server-side-javascript-in-sitecore-personalize/understanding-data-limits-in-decisioning-and-conditions.html "Understanding data limits in decisioning and conditions")を考慮してください。
    
7.  変更を保存するには **「保存** 」ボタンをクリックしてください。