はじめに
コードエンジンは、Domoネイティブのランタイム環境で、JavaScriptまたはPythonコードを実行します。コードエンジンでは、ワークフローやその他のDomoのAppで使用できる関数を記述、テスト、配布できます。 Domoでは、一般的なパッケージの ライブラリー と、コードエンジンにアクセス権のあるすべてのユーザーがアクセスできる共通の統合およびサービスに関連する関数を提供しています。カスタムコードを使用して関数を作成し、インスタンスで自動化されたサービスを実行することもできます。必要な許可
以下の許可は、Domo環境でのコードエンジンに対するユーザーベースの権限を付与します。また、コードエンジンに対する許可を持つユーザーは、コードエンジン内の1つ以上の特定のパッケージに対して、パッケージを操作する権限を持っている必要があります。権限については、後述の「 権限 」を参照してください。- コードエンジンのパッケージを管理 — インスタンス内の任意のコードエンジンパッケージに対して任意のアクションを実行できます。この許可は、管理者またはコードエンジンの管理を手伝うすべてのユーザーに付与する必要があります。
-
コードエンジンのパッケージを作成 — 新しいコードエンジンパッケージを作成できます。この許可は、インスタンス内のコードエンジンリポジトリに新しい関数パッケージを作成して追加する必要があるすべてのユーザーに付与する必要があります。
注記: インスタンスに対してこれらの許可のいずれかを有効にする場合は、Domoアカウントチームにお問い合わせください。非インスタンス管理者ユーザーに付与できる権限については、この記事の「 権限 」セクションを参照してください。
コードエンジンにアクセスする
ナビゲーションヘッダーからコードエンジンにアクセスするには、 [その他] > [ワークフロー] を選択してワークフローのランディングページを表示します。 左側のナビゲーションで、
[コードエンジン] を選択します。


ホームページ
コードエンジンホームページの主な機能は、 権限 にもとづいてそのユーザーが利用できるすべてのコードエンジンパッケージを表示する リスト です。ここから、新しいパッケージを作成したり、コードエディターにアクセスして既存のパッケージを編集したりすることもできます。 左側のナビゲーションから、補完的な機能( [ワークフロー] 、 [フォーム] 、 [タスクセンター] )にアクセスできます。 これらの機能のオプションが左側のナビゲーションに表示されない場合は、インスタンスで有効になっていません。有効化については、Domoアカウントチームにお問い合わせください。
コードエンジンリポジトリリスト

- [パッケージ名]/[説明] — パッケージのタイトルと簡単な説明が表示されます。
- [所有者] — パッケージの作成者/所有者の名前とアバターが表示されます。
- [実行時間] — パッケージの実行時間(またはプログラム言語)が表示されます。
- [最終保存] — パッケージが最後に更新された日付が表示されます。
- [作成] — パッケージが作成された日付が表示されます。
カスタムパッケージを作成する
以下の手順を実行すると、コードエンジン ホームページ からカスタム関数パッケージを作成できます。-
[+新しいパッケージ] を選択します。 このオプションが無効になっている場合は、 必要な許可 を持っていることを確認してください。許可を持っているにもかかわらず、新しいパッケージを作成できない場合は、Domoアカウントチームまたは Domoサポート
にお問い合わせください。
[新しいパッケージを作成] モーダルが表示されます。

- (必須) [パッケージ名] および [パッケージの説明] フィールド に入力します。
-
(必須) [言語を選択] ドロップダウンからオプションを選択します。オプションは[JavaScript]と[Python]です。

-
(オプション)サムネイルをアップロードして、パッケージを見分けやすくすることができます。

- [新しいパッケージを作成] を選択すると、 コードエディター にパッケージが表示され、 [キャンセル] を選択すると、ホームページに戻ります。
新しいパッケージバージョンを作成する
関数の更新や新しい関数の追加など、パッケージに変更を加える必要がある場合は、パッケージの新しいバージョンを作成して更新を行う必要があります。コードエンジンでパッケージを開くか、ワークフローでパッケージモーダルにアクセスすると、パッケージの最新バージョンがデフォルトになりますが、必要に応じて以前のバージョンを選択できます。 コードエディター で新しいパッケージバージョンを作成するには、以下の手順を実行します。- コードエディタでパッケージを開きます。
[展開]
[新しいバージョンを作成] を選択すると、新しいバージョンモーダルが表示されます。


- [コピー元のバージョン:] ドロップダウンでパッケージの対象のバージョンを選択して、そのすべてのコンテンツを新しいバージョンにコピーします。これには、構文、変数、およびメタデータが含まれます。

-
[バージョン] フィールドに、「セマンティックバージョニング」に従って、必要なバージョン番号を入力します(公式の 仕様
を参照してください)。このフィールドにはデフォルトの値が含まれますが、変更することもできます。

- (オプション) [バージョンの説明] フィールドに詳細を入力します。
- [新しいバージョンを作成] を選択して変更を保存し、新しいバージョンのパッケージを作成します。 新しいバージョンがパッケージのデフォルトバージョンになりますが、以前のバージョンにアクセスする場合は、コードエディターでパッケージを開き、 バージョンリスト から別のバージョンを選択できます。
コードエディター
コードエディターは、コードの記述、関数の入出力の設定、およびリアルタイムでの関数のテストを行う統合開発環境(IDE)の役割を果たします。パッケージには複数の関数を含めることができます。コードエディターで各関数をコーディングし、設定する必要があります。
パッケージ情報/アクションバー
コードエディターの上部には、パッケージ情報/アクションバーがあります。以下のリストでは、このエリアの要素とその様々な関数について説明します。
- 戻る矢印 — コードエンジン ホームページ にリダイレクトされます。
- パッケージのサムネイル — パッケージに関連付けられた画像。
- パッケージタイトル/説明 — パッケージの作成時にパッケージに指定されたタイトルと説明。
- 最終保存 — パッケージバージョンが最後に保存された日付。
- 実行時間/言語 — スクリプトの記述に使用されたプログラミング言語。
- 所有者のサムネイル — パッケージ所有者のアバター。
- [シェア]ボタン — 権限 モーダルを開きます。
- [ダークモード]トグル — コードエディターのダークモードを有効/無効にします。
- バージョンリスト — 表示/編集するパッケージのバージョンを選択できます。
- 保存 — コードの構文と変数が有効な場合は、パッケージへの変更を保存できます。
- 保存オプション — パッケージには、以下のオプションがあります。
- [新しいバージョンを作成] — [新しいバージョンを作成] モーダルを開きます。詳細については、「 新しいパッケージバージョンを作成する 」を参照してください。
- [現在のパッケージを削除] — パッケージを完全に削除します。
- [現在のバージョンを削除] — バージョンを完全に削除します。
-
[保存してデプロイ] — コード構文と変数が有効な場合は、変更が保存され、新しいバージョンのパッケージが展開されます。これにより、展開されたバージョンの編集が無効になり、ワークフローなどのほかのDomo機能で使用できるようになります。

権限
コードエンジン内で、権限モーダルを使用して、特定のパッケージに対してアクションを実行するための権限をほかのユーザーまたはグループに付与できます。すべての権限はパッケージレベルで付与されます。 以下のリストで、様々な権限またはアクセスレベルについて説明します。- 管理者 — ユーザーがパッケージで任意のアクションを実行できるようにします。この権限は、インスタンス内のすべてのパッケージへのアクセス権がある 「コードエンジンのパッケージを管理」の許可 とは異なります。
- 削除 — パッケージまたはパッケージのバージョンを削除できます。
- 読み込む — パッケージのメタデータとそのバージョンへの閲覧専用のアクセス権を許可します。
- 書き込む — パッケージを編集できます。
- シェア — 別のユーザーに同等またはそれ以下のパッケージへのアクセス権を付与できます。
- 実行 — パッケージ内の関数を実行できます。
- コンテンツを読み込む — パッケージのコードコンテンツ、そのバージョンへの閲覧専用のアクセス権を許可します。
- コンテンツを更新 — パッケージのコードコンテンツとメタデータ、そのバージョンを編集できます。
-
パッケージ情報/アクションバーで
[シェア] を選択すると、権限モーダルが表示されます。
権限モーダルには、検索バー、パッケージへの [アクセス権のあるユーザー] のリスト、パッケージへの[アクセス権のないユーザー] のリストが含まれます。デフォルトでは、パッケージの所有者は常にパッケージに対して管理者権限を持っています。
- 権限を編集するユーザーまたはグループの名前を検索バーに入力します。インスタンス内でユーザーまたはグループが見つかった場合は、アクセス権のないユーザーのリストの一番上にその名前が表示されます。権限メニューがユーザー名またはグループ名の横に表示されます。デフォルトの権限は[アクセス権がありません]です。
- ユーザーまたはグループに付与する権限を選択します。
- [保存] を選択して変更を保存します。
サイドナビゲーション
コードエディターのサイドナビゲーションを使用すると、パッケージ自体またはエディターのコードに関連するメタデータと変数を表示および設定できます。
関数設定
[関数設定] セクションでは、パッケージ内の関数の説明、入力、およびオプションの出力を設定できます。パッケージには複数の関数を含めることができます。 関数を保存できるようにするには、入力変数の名前とタイプを保存する必要があります。
要素 | 説明 |
|---|---|
[関数を選択] ドロップダウン | このリストには、コードエディターで解析されて見つかったすべての関数が表示されます。パネル内のほかのすべてのフィールドは、選択した関数にもとづいています。 記述した関数がリストに表示されない場合は、 |
関数の詳細フィールド | 関数の目的の簡単な要約。 |
[入力] タブ | このタブでは、 [入力を追加] を選択して入力パラメーターを関数に追加できます。入力ごとにデータタイプを指定し、その名前を入力する必要があります。データタイプが指定されていない場合は、フィールドに赤の境界線が表示され、関数設定を保存できません。 データタイプを選択して名前を入力したら、
|
[出力] タブ | このタブでは、出力パラメーターを関数に追加できます。変数タイプを選択し、その名前を入力します。 |
入力パラメーター |
|
出力パラメーター | 関数で定義された出力パラメーター。指定できる出力パラメーターは1つのみです。正常に実行される関数を構築するのに出力パラメーターは必須ではありませんが、戻り値を取得して関数が正常に実行されたかどうかを確認できるように、出力パラメーターを追加することを推奨します。 |
リストですか? | [パラメーターを編集] モーダルで、出力変数が指定されたタイプの配列である場合は、このチェックボックスをオンにします。 |
再スキャンの関数 ( | パッケージを再スキャンして関数と変数を解析します。 |
入力変数と戻り値のタイプ
入力パラメーターを設定する場合は、各パラメーターまたは入力変数のデータタイプを選択する必要があります。利用できるデータタイプには以下があります。- アカウント(このデータタイプの処理は若干異なります。後述の「 [アカウント]データタイプ 」を参照してください)
- ブール型
- DataSet
- 日付
- 日時
- 小数
- 期間
- グループ
- 数値
- オブジェクト
- ユーザー
- テキスト
- 時間
パラメーターの高度な編集
パラメーターの高度な編集オプションにアクセスするには、 [入力パラメーター] リストでそのパラメーターの 詳細 (縦三点メニュー)を選択し、 [高度な編集] を選択します。出力パラメーターを定義した場合は、 [出力] タブで 詳細 (縦三点メニュー)> [高度な編集] を選択すると、高度な編集オプションにアクセスできます。

[アカウント]データタイプ
[アカウント]データタイプを選択した場合は、データプロバイダーを選択する必要があります。この例では、システムはGoogleスプレッドシートから取得しているため、Googleスプレッドシートがデータプロバイダーです。


[リスト]タイプ
[リスト] をデータタイプとして選択すると、入力変数または戻り値のタイプがリストを含むように定義されます。リストの内容は定義されません。別のタイプのリストを定義する場合は、そのタイプを選択して、 [リストですか?] チェックボックスをオンにすることができます。パラメーターは、そのタイプの変数のリストとして定義されます。[オブジェクト]タイプ
[オブジェクト] タイプは、複雑なタイプを格納する場合に便利です。オブジェクトは、[オープン]または[定義されたオブジェクト]にできます。- [オープン] — オープンオブジェクトには任意のタイプのデータを格納できますが、オブジェクトに格納されるデータは明示的に定義されません。これは、複雑なデータを返すAPIを操作する場合に便利です。
-
[定義されたオブジェクト] — 定義されたオブジェクトの場合は、モーダルで [子プロパティを追加] を選択してオブジェクトの子プロパティを定義します。
子プロパティを追加すると、オブジェクトの子プロパティごとに行が開きます。ここでは、オブジェクトの各子プロパティのパラメーターの名前とデータタイプを定義できます。 例えば、州、都市、番地(これらはすべてテキストタイプ)、郵便番号(数値タイプ)の子プロパティを持つ住所オブジェクトを作成できます。


パッケージ情報
[パッケージ情報] セクションには、以下のメタデータが含まれています。- [名前] — 関数名。
- [作成] — パッケージバージョンが作成された日付。
- [最終導入] — パッケージバージョンが展開された日付。
- [言語] — スクリプトを記述するプログラミング言語。
- [所有者] — パッケージ所有者の名前とアバター。
- [説明] — パッケージの簡単な説明。

関数をテストする
関数のコードとパラメーターを入力した後、展開前に関数をテストできます。必要条件
関数の構文と変数に問題がないことを確認します。例えば、パラメーターに赤の境界線が表示されている場合は、タイプが定義されており、未解決の設定の問題がないことを確認します。
[関数を開始] を選択して、開始モーダルを開きます。


> [高度な編集] を選択する必要があります。
コードエンジンライブラリー
コードエンジンライブラリーには、内部および外部のAPIコールに特化した便利なメソッドがいくつか含まれており、コードエンジンパッケージのグローバルスコープで使用できます。ライブラリーを利用するには、必要な「codeengine」コールをパッケージに追加します。ライブラリーの利用方法の詳細については、 codeengine.sendRequest 、 codeengine.getAccount 、 codeengine.axios を参照してください。codeengine.sendRequest
「codeengine」ライブラリーには、Domoの内部APIを呼び出すことができる「sendRequest」というメソッドが含まれています。「sendRequest」は、非同期コールを行うほかの多くのhttpリクエストライブラリーと同様に機能します(通常は、GET、POST、PUT、DELETEなどのリクエストメソッドを使用します)。「sendRequest」メソッドを使用すると、DataSet、ユーザーとグループ、カードとダッシュボードなど、様々なDomo APIを呼び出すことができます。 Domo DataSetパッケージに組み込まれている関数の例を以下に示します。codeengine.getAccount
これはTwilioパッケージに組み込まれている関数の例で、「codeengine」ライブラリーの「getAccount」メソッドを利用します。キーは以下のコードブロックです。


[新しいバージョンを作成] を選択すると、新しいバージョンモーダルが表示されます。
[再スキャンの関数] を選択して、コードエンジンが新しい関数を解析して検索できるようにします。
[保存] または
[キャンセル] を選択します。これはコードエディターでも実行できます。詳細については、後述の「 
[保存] または
[キャンセル] を選択します。 
)