【DOMO】カスタムコネクタの作り方2(Configure selectable reports編)

はじめに

1つの連携先サービスで取得するデータの種類が複数あった場合(例えば、freeeと連携する際に、「取引(収入/支出)」と「税区分」のテーブルデータをそれぞれ取得したいなど)、認証設定が同じであるなら、個別にコネクタを開発するよりも1つのコネクタで処理を分岐させる方が運用面や作業効率的にもメリットが大きいはずです。 また、期間を絞ったデータ取得や、任意のパラメータを渡して特定の絞り込みをしたデータ連携を行う必要とするニーズのほうが、単に1テーブルの全データを取得したいというニーズよりも多いかと思います。
本章では、Domoへコネクタを登録時に設定する際に、ユーザが入力/選択するパラメータの追加に関する説明を行います。
パラメータによるデータ取得の切り替えが必要なく、固定で決まったデータを取得する場合であればこちらの設定は必要ありませんので、読み飛ばしていただいて問題ありません。

AVAILABLE REPORTS

reportsのユースケースは、データ取得するテーブルを選択するなどして、出力するレポートを切り替える場合に使われることを想定しているかと思います。 ただし、用途がそれに限定されているわけではないので、もし、データ取得する種類を切り替える必要がなく、別途、選択式で指定したいパラメータがある場合は、report変数を利用してもいいかと思います。
report変数には、英数でもマルチバイト文字でも追加可能です。スクリプトで分岐させるための値になりますので、英数の方がしっくりくる方も多いとは思いますが、入力した値が、Domo上のコネクタ登録・設定時に表示される選択肢となりますので、設定される方が開発者と別なのであれば分かりやすい名称にする方が良いかと思います。
 
左がreportを追加したキャプチャで、右が実際にDomoでコネクタ登録時に表示された際のキャプチャです
 
reportとは別にパラメータを追加したい場合は次項を参照してください。 ちなみに、report変数は使わないけど、自由入力形式やdate pickerを使って日付入力するような別のパラメータを使いたい場合、reportには何も設定せずに次項のパラメータ追加を行えば良いかと思いきや、パラメータ追加を行った場合は、少なくともreportに1つ以上の値を設定しなければいけない仕様となっています。 なぜそうなのか理由が分かりませんが、回避する術はなさそうなので、reportにダミー値を入れるようにしてください(普通に、取得データ名を入れるだけで良いかと)。
 
※reportに値を設定せず、パラメータを追加しても次セクションに遷移可能ですし、次セクションでスクリプトを記載してデバッグすることも可能ですが、最終的にDomoへの審査依頼時にエラーになります。

ENABLE ADVANCED MODE

reportとは別のパラメータを追加したい場合は、「ENABLE ADVANCED MODE」を押下します。
押下すると、1度有効にすると元に戻せませんよ的な注意表示がされますが、有効にした後でこの機能を使わなかったとしても全く問題ないので、そのままCONTINUEして構いません。
これを有効にした上で、パラメータを追加しなかった場合、パフォーマンスに影響があるとかそういった注意も無いですし、開発時も設定時も支障がなかったので、個人的にはデフォルトで有効にしてしまって良いのでは?と思っています。
 
 

パラメータの追加

ADVANCED MODEを有効にすることで、PARAMETERS項目が表示されます。
PARAMETERSにて設定する項目内容は以下の通りです。

Name

パラメータ名
スクリプトで変数を参照する際にも使いますし、Domo登録時の設定項目としても表示されます。

Help Text

ヘルプテキスト
Domo登録時の設定項目の横に?マークが表示され、クリックすると入力したヘルプテキストが表示されるようになります。 入力しなかった場合は、?マーク自体表示されないので、不要な項目は未入力でOKです。

Show When

表示/非表示判定
スクリプトを記載して、結果がTRUEの場合に表示されます。 if文の条件式の箇所だけを書くようなイメージです。

Required

必須有無
チェックを付けると必須項目となります。

Type

データ型
追加パラメータのデータ型の指定です。以下、選択可のデータ型になります
String・・・文字列 ※1 Integer・・・Integerですが、整数以外に小数も可のようです Data Selector・・・日付選択項目 ※2 Text・・・文字列 ※1 Dropdown・・・セレクトボックス形式。選択肢はOptionsにて文字列を追加する Discovery・・・セレクトボックスまたはチェックボックス。選択肢はOptionsにてスクリプトにて追加設定をおこなう ※3

Options

Typeにて「Dropdown」を選択すると、「ADD OPTION」ボタンが表示されるので、ボタンを押下し選択肢となる文字列を入力します。 選択肢の数だけ、この操作を繰り返します。 Typeが「Discovery」の場合もOptionsが有効になります。Discoveryについては別途後述します。

※1 StringとText

Typeで選択するデータ型の中に、StringとTextがあります。文字数制限の違いなのかなとも思ったのですが、JavaScriptだし文字列長は関係ないでしょうね。 公式ドキュメントを見ると、Textは自由入力可のテキストフィールド。Stringは自由入力可のテキストフィールドで、HTMLテキストも入力可。だそうです。 設定項目にHTMLテキストを入力するユースケースが分かりませんし、なぜString型に補完されるだけのText型を用意してるのかも分かりません…

※2 Date Selectorについて

「Data Selector」を選択すると、単純に日付項目が設置されるイメージでしたが、実際は違います。 Domoでの設定時には、まず、「DATE SELECTION」という項目で指定する日付の種類を選択します。選択項目は、Single date(=単一日付選択)、Date range(=開始・終了日選択)、Time Period(=任意の期間選択)の3種類があります。
 
Single Date 「DATE TYPE」で「Specific」を指定した場合は、「DATE」に任意の日付を指定する必要があります。定期的に手動でデータ連携する場合は、この種別でも良いと思いますが、自動連携する場合であれば、こちらは一般的には使わないDATE TYPEかと思います。 「DATE TYPE」で「Relative」を指定した場合は、今日(スクリプトが実行される日)を起点に、「DAY BACK」で何日前/後かを指定することになります。 例えば、毎日連携が走るとして、当日のデータのみ(まで)を取得するようなケースの場合は、DAY BACK=0、前日分を取得するような場合は、DAY BACK=1となります。翌日を指定する場合はDAY BACK=-1となります。
Date range 任意の1日だけではなく、何日から何日までと指定したい場合は「Date range」を指定してもらいます。 開始日・終了日それぞれで「DATE TYPE」に「Specific」か「Relative」を指定可能です。
Time Period Date rangeで開始日・終了日に任意の日付を指定するのではなく、”先月”や”先週”といった形で指定できるのがTime Periodになります。 指定可能なのは、Today(=当日)、This week(=今週)、This month(=今月)、Yesterday(=昨日)、Previous week(=先週)、Previous month(=先月)の6パターンになり、This weekとPrevious weekを指定した場合は、週の始めを日曜とするか月曜とするかを指定します。
 
詳しくは、「Define how data is processed」セクションに追加したパラメータがデモ表示されますので、そちらで確認してください。
Date Selectorで指定した日付は、下記スクリプトで取得可能です。
1日のみ指定する場合(Single Date指定か、Time PeriodでToday, Yesterdayを指定)、getStartDate・getEndDateどちらで取得しても同じ日付が取得可能です。

※3 Discovery

Dropdownは、任意の値を事前に設定しておき、その設定値をセレクトボックスで選択させる形式ですが、設定値をスクリプトで動的に設定したい場合、またはセレクトボックスではなくチェックボックスで選択させたい場合は、Discoveryを指定します。 入力するスクリプトは、Discoveryを選択するとOptions項目に表示される「Configure」ボタンを押下して表示されるウィンドウのCode項目に記載します。
スクリプトで設定値を取得した上で、セレクトボックス形式で表示させたい場合、取得値は下記のように記載します。
チェックボックス形式で表示させる場合は、親子関係のあるツリー構造か、親子関係なしでシンプルに一列表示するものの2パターン作成できます。 シンプルに一列表示する場合は下記の用に記載します。
親子関係を付けたい場合は、下記の例の様にaddNodeで親ノードを作成した上で、その親ノードを引数にしてaddLeafで子ノードを作成する形になります。

パラメータの確認

これまでに説明したreportとADVANCED MODEで追加したパラメータは、次章で説明するDefine how data is processedセクションの方にテスト用に配置されていますので、どういう表示形式なのか等は次セクションで確認出来ますし、直接入力や選択を実際に行うことも出来ます。
また、Define how data is processedセクションのData processing script(スクリプト記載箇所)にて実際に設定したパラメータ値を取得してデバッグが可能となります。
ただし、Help Textとは表示されませんし、Show Whenに記載したスクリプトはテスト環境では動作しないようで(ドキュメントには動作するともしないとも記載なし)、正しいスクリプトなのか間違っているのか確認しようがないです。 Requireについても同様で、必須としたときの挙動を確認することが出来ません。
ちょっと機能として足りていない面は否めませんが、選択したパラメータを使ったデータ取得のテスト自体は出来るので、Show Whenに複雑なスクリプトを記載する必要があり、もしDomo上で正しい挙動をしない場合は、トライ&エラーで確認するしかないのが現状ではあります。
 
以上で「Configure selectable reports」の設定は完了となります。
 
📊
・会社のデータをもっと有効活用をしたい ・Domoに取り込みたいデータソースがある ・Domoの効果的な可視化についてもっと知りたい ・組織においてのDomoの定着化をもっと推進したい ・新しいKPIを作りたいが、自信がない アタラにはDomoを含むBIツールのエキスパートが在籍しております。 このような課題をお持ちの方は、ぜひお気軽にこちらまでご相談ください。
 
この記事をシェアする