クエリーの再使用

再使用可能クエリーを使用して、複数のアプリケーションで同じクエリーを利用することができます。多くの場合、複数のアプリケーションで同じ機能が必要でも、同じクエリーを繰り返しコピーして貼り付けることはしたくありません。再使用可能クエリーを使用すると、コードの重複防止、クエリーのバージョン管理、およびチームでのクエリーの共有が可能になります。

クエリーの記述

再使用可能クエリーはQuery Libraryで記述します。再使用可能クエリーを設定するには、次の手順を実行します。

  1. Newをクリックして新しいクエリーを作成します。リソースを選択し、必要なクエリーを記述し、保存します。
  2. Shareボタンを使用してクエリーを共有します。これにより、クエリーがチーム内のすべてのエディターに表示され編集可能になります。これで、このクエリーを自分のアプリケーションにインポートすることもできるようになります。

波括弧{{ }}を使用することで、このクエリー用の変数を定義できます。変数は、クエリーへの動的な入力です。右側のパネルのVariableセクションでデフォルトを定義できます。Retoolアプリケーションでクエリーをインポートすると、ここで定義した変数に入力を渡すことができます。

👍

ヒント: 波括弧{{ }}の内側にJavascriptを記述できます

これは通常のRetoolアプリケーションと同様に機能します。この場合は、波括弧の内側の単語が変数として解析され、右側のVariablesセクションに表示されます。ここで示す値で試しにクエリーを実行してみることができます。例 — {{ { my_start_date: moment() } }}

クエリーのインポート

これで、クエリーが共有されました。このクエリーを任意のRetoolアプリケーション内にインポートできます。これを行うには、アプリケーションで新しいクエリーを作成し、Resourcesドロップダウンをクリックし、Import from Query Library を選択します。

Query Library内で共有されている様々なクエリーから選択することや、バージョンを選択することができます。デフォルトでは、利用可能な最新のバージョンが選択されます。

📘

注意: 各ライブラリー・クエリーには履歴があります

ライブラリーにクエリーを保存するたびに、新しいバージョンが作成されます。クエリーをインポートすると、そのクエリーの以前のバージョンすべてにアクセスできるようになります。ライブラリー内のクエリーに対する更新はアプリケーションに自動的に反映されないことを覚えておいてください。反映に必要なのは、アプリケーションを開き、使用するクエリーのバージョンを選択する簡単な作業です。

変数の使用

再使用可能クエリーの波括弧{{ }}の内側にある単語は変数として解析されます。例えば、select * from users where age > {{ min_age }} and age < {{ max_age }}と記述した場合は、Retoolでmin_agemax_ageという2つの変数が検出されます。

より複雑なJavascript式を記述することもできます。例えば、select * from users where status = {{ age > 65 ? 'retired': 'working' }}というクエリーについて考えてみましょう。この例では、ageを数値入力として渡すことができ、値に基づいてそれが「retired」または「working」と評価されます。

図3. インポートしたクエリーでtextinput1の値がstore_idパラメーターに渡されます図3. インポートしたクエリーでtextinput1の値がstore_idパラメーターに渡されます

図3. インポートしたクエリーでtextinput1の値がstore_idパラメーターに渡されます

FAQ

ライブラリー内の変更はアプリケーションに自動的に反映されますか?

反映されません。しかし、必要な作業は、アプリケーションで最新バージョンを選択することのみです。どのアプリケーションでどのクエリーがインポートされているかを把握できる機能を近日中に追加する予定です。なお、新しいバージョンで変数を追加したり、変数の名前を変更したりすると、Retoolでどの値を渡すのかが不明になるため、入力内容が正しいことを確認する必要があります。

ライブラリー・クエリーを表示、編集、または使用するために必要なのはどの権限ですか?

デフォルトでは、すべてのユーザーがQuery Libraryにアクセスできます。管理者である場合は、Permission設定で、Query libraryにアクセスできるユーザー・グループを設定できます。