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