- 印刷する
概要
ここでは、Tulipでデータを配列に格納し、あるデータ型から別のデータ型に値を移動する方法を説明します。
この記事では
- 配列の作成と使用方法
- トリガーエディターで配列を変更する方法
- 分割文字列を使用してコネクタ関数の出力を配列に変換する
配列と オブジェクトは、多くのプログラミング言語で使用される2つの一般的なデータ構造です。Tulipはプラットフォームの2つの部分でこれらのデータ構造を利用します:
- 変数:同じ変数に関連する複数のデータを格納します。
- コネクタ: コネクタ関数の出力を変数に渡す。
配列は作成できる:
- トリガーエディタで(手動で)
- 式エディタで(手動で)
- 変数サマリビュー(下図)で(手動で)
- Multiselect 入力の出力を格納する。
- 複数行を返す SQL コネクタ関数の出力、または返される JSON に配列を含む HTTP コネクタの出力を格納する(自動)。
配列の作成
トリガーエディターで
Push onto Array" アクションを使用して、配列を作成できます。
- "Arrays" "Push Onto Array" データ:"Static Value" "text" "text" array: (ここで配列を作成)
式エディタで
データ操作" "保存 "アクションを使って、新しい配列を作成できます。このように:
- 「データ操作" "保存" データ:"Expression" "[1,2,3]" location:"test_array"
各配列は、文字列または整数など、1つのタイプの値しか持つことができません。
変数サマリービュー
コンテキストペインの "App" タブにある Variable Summary View に移動し、モーダルの上部に新しい変数を作成します:
配列の操作
Trigger Editor で、配列の作成と操作ができます。Then" ステートメントで "Add new Action" をクリックし、"Arrays" オプションを選択します。
次のドロップダウンに、様々な配列メソッドが表示されます。これらはJavaScriptの配列メソッドと同じなので、さらに説明が必要な場合は、配列メソッドのガイドをチェックしてください。
利用可能な配列メソッドは以下のとおりです:
- 配列のクリア
- 配列の連結
- 配列のインデックスからの取得
- 配列の長さを取得する
- 配列のインデックスに挿入
- 文字列に結合
- 配列からのポップ
- 配列へのプッシュ
- 配列のインデックスで要素を削除して格納
- 配列のインデックスを削除
- 配列のインデックスを設定
- 配列の和
- 配列の要素を入れ替える
このドロップダウンでの選択に応じて、残りのフィールドに、操作したい配列、変更したいインデックス、設定する新しい値のオプションが表示されます。
- "Arrays" "Set Index in Array" データ:"静的な値" "number" "90" array:"test_a" インデックス:"静的な値" "整数" "0"
上の例では、配列 "test_a" のインデックス 0 の値を 90 に変更しています。
- "配列" "配列のインデックスから取得" 配列:"変数" "test_a" インデックス:"静的値" "integer" "0" 変数に格納する:"test_vari"
上の例では、"test_a" という配列のインデックス 0 の値にアクセスし、"test_vari" という変数に格納しています。
配列の検索
マルチセレクト・ウィジェットを使って、オペレータが1つの製品について複数の種類の不具合を入力できるようにしたいとします。そして、入力された不具合に応じて、特定の手直しステップに送りたいとします。
マルチセレクトフォームは、自動的に値を配列に保存します。そこで、この配列から特定の値を検索し、オペレータを特定のステップに送る必要があります。
そのためには、"Join To String "トリガーアクションを使用します。これは、配列内のすべての要素を1つの文字列に結合し、別の変数に格納します。その後、別のTriggerで "If "ステートメントを使って、この文字列に特定の値が含まれているかどうかを確認できます。
配列の要素は、好きな文字列で区切ることができます。多くのTulipユーザーは、カンマ(,)で区切ることを好みます。
以下は、配列のすべての要素を文字列に結合する例です:
- "配列" "文字列に結合" join:"欠陥の種類"
- をデリミタで区切ってください:"静的値" "テキスト" ","
- に格納する:"defect_types_joined"
この新しい文字列から特定の値を検索するために使用する2つ目のトリガーを以下に示します:
IF
- "Variable" "defect_types_joined" "Contains" "Static Value" "text" "chip"
文字列を分割して配列を作成する
ここまでの説明から、いくつかのタイプのコネクター関数の出力を配列に取り込むのは非常に困難です。この問題を解決するには、文字列分割を使用します。
コネクタ関数の出力を配列に格納する場合、各データの間に共通の文字を追加する必要があります。一般的な例としては
- セミコロン(;)
- カンマ (,)
- 改行文字 ("\n")
配列に格納したい一連のデータがあるとします。SQL クエリや HTTP GET リクエストでは、それらがまだオブジェクトに格納されていない場合、まずそれらを 1 つの文字列に結合します。
以下に例を示します:
7989;43f3;3e3;f34;f;34;3
一般的な区切り記号はセミコロンです。
トリガーエディターでは、"文字列の分割 "オプションを使って、この文字列を配列に変換します。
まず、分割したい変数を選択する。この場合、"q "という変数である。
次に、区切り文字を追加する。
最後に、配列を格納する変数を選択する。
- "文字列の分割" split:"変数" "q" by:「静的値" "text" ";" に格納する:"w"
配列変数の表示
これが機能していることを確認したい場合は、ステップにいくつかの変数テキストを追加する。次に、配列を格納する変数を選択する。
最後に、Tulip Playerを開いて、配列のすべての項目が箇条書きリストとして表示されるかどうかを確認してください。配列の項目数を考慮するために、テキストボックスを拡張する必要があるかもしれません。
HTTPコネクタから単一のデータ型の配列(text、boolean、integerなど)を返すと、上のセクションで示したように、出力は箇条書きリストになります。
SQL および HTTP コネクタ関数からの配列の表示
HTTP コネクタ関数からオブジェクトの配列を返す場合、または SQL コネクタ関数から複数行を返す場合、箇条書きリストは理想的な表示ではありません。
代わりに、この別のガイドを参照して、コネクタ関数の出力を対話型リストまたは静的リストにする方法を確認してください。
アプリ内のすべての配列変数のレビュー
データ構造を操作するには、変数として格納されている必要があります。App EditorのContext Paneに入り、Appタブの "Variables "の横にあるΣマークを選択すると、既存の変数を確認できます。
配列は、どのような値を含むかによって、「タイプ」欄に「配列」と表示されます。また、配列のインデックスにデフォルト値を作成することもできます。
さらに読む
お探しのものは見つかりましたか?
community.tulip.coで質問を投稿したり、他の人が同じような質問に直面していないか確認することもできます!