研究 ~配列に変数を入れてみた~
ユーザーフォーラムのスレッドで興味のあるテーマがあったので研究してみました。
ご質問者様のご意図に沿うものかわからないので、それとは別個にコラムとして研究してみたいと思います。
テーマは変数のプルダウンはシナリオ作成時に選択しないとならない(上記では表示を変数「名前」とするか変数「性別」とするか)が、
これ自体を変数化できないかどうか。変数の変数化。なるほど! 面白そう!
(1)通常シナリオ
①インプットボックス
メッセージ お名前は?
変数 名前
②インプットボックス
メッセージ 性別は?
変数 性別
③インプットしてもらい、表示したい内容を選択してもらう
④これをメッセージボックスに表示するが、冒頭のように、表示する変数メッセージはあらかじめプルダウンで選択しなければならない。
外部の状況により「名前」にするのか「性別」にするのかを設定できないので分岐によりシナリオを作る。
一番左の分岐に変数「名前」を表示、真ん中の分岐は「性別」を表示。
この例題では2つなのでよいが、これが10あれば10分岐することになる。
また、変数を使った処理が長ければ、横に長くなった上でさらにすべての縦も長くなってしまいメンテナンスも大変。
(2)変数プルダウンを変数化する
①1次元配列操作(初期化)
②1次元配列操作(情報更新)
※配列名はすべて省略
インデックス 値⇒1
情報 変数⇒名前 または 値⇒%名前%
※通常配列には値を入れることが多いが変数を入れる。
③1次元配列操作(情報更新)
インデックス 値⇒2
情報 変数⇒性別 または 値⇒%性別%
④インプットボックス 上記に同じ
⑤インプットボックス 上記に同じ
⑥選択ボックス 上記に同じ
選択結果 変数 プロフィール
⑦1次元配列操作(情報取得)
インデックス 変数 プロフィール
取得情報 配列変数
⑧待機ボックス
変数名 配列変数
変数の配列変数は外部の情報により、変数「名前」と変数「性別」を変化させることができるので横長にシナリオを作る必要はなくなる。
---------------------------------------------------------------------------------------------------
しかし、なぜか名前と性別が現在値ではなく初期値を拾う現象が発生。
(3)完成形
(2)で終わっていれば、使おうという気になりましたが、
どうやら、配列自体も更新が必要で更新上記(2)②③をと同じものを差し込まないといけないことが判明。
残念。
(4)結論
①実務で使うのは難しそう。実用性は厳しい。
②プルダウンを変数化できるので並列つなぎのシナリオを直列つなぎにする効果がある。
③イ、通常のシナリオ
〇 作成難度
◎ 可読性
× メンテナンス
ロ、プルダウン変数化
× 作成難度
× 可読性
? 恐ろしいのはメンテナンス、ものすごく楽になるか、まったく手がつけられなくなるかのどちらか。
作るの自体は配列の入れ方(ループをつかう)など工夫の余地は大いにあり。
その場合は、値⇒%名前%、値⇒%性別%とした方がよさそう。
ただ、シナリオ作成の難度、可読性、メンテナンス可能性(知っていれば楽になるのは間違いない)等々勘案すると、
実際の導入は躊躇してしまう印象です。
今回は、選択ボックスと待機ボックスでの表示でしたが、データ一覧から情報をもってくる、外部から情報をもってくる、
待機ボックスの表示ではなく、変数を使った処理などでも同様に可能です。配列がインデックスでしか指定できないので、
それに持っていく工夫は必要になります。