はじめに
カタログ作成の際に、意外と考慮から漏れがちなことがある(個人的に)ので、
そちらについて、記載しようかと思います。
よくある話
ポータルの申請画面側で入力項目が切り替わるなら、それに合わせてRITMのフォームでも同様のレイアウトになるのが望ましい。
切り替えの際に、データが裏に残ってない状態にしたい。
…ということが往々にしてあるかと思います。
画面イメージ
[項目2の選択によって、項目3・4の表示を切り替える。]
上記のような画面があったとします。
これ自体は、UIポリシーにより簡単に作成できると思います
作成したUIポリシーがコチラ
[項目3を出すUIポリシー定義]
では、申請後のRITMのフォームを確認してみます。
[RITMのフォーム]
このUIポリシーでは、申請画面にはなかったRITMのフォームにも「項目4」が表示されてしまっていますね。このままでは、怒られてしまいます。。
さあどうする
先ほどの、UIポリシーの定義にどの画面に反映をさせるか、という設定項目があります。
そこを設定しましょう。
※4のポリシーも同様にする。
そうすると、RITMのフォーム画面が同じように項目4がなくなるように切り替わるようになります。
これでOK!
となるところもあるでしょうが、細かいところがまだダメだったりします。
今の状態だと、項目2を再選択した際に、以下のように表示上は見えなくなりますが、
データとしては、保持してしまっている状態となります。
申請データを基にして、データ連携を行いたい時なんかは、この状態だと非常にまずいですね。
さあどうする(その2)
更に、UIポリシーを修正します。
値のクリアは、UIポリシーアクションに「Clear the variable value」という項目があるので、
一見、その設定を行えばいいのでは?と思うのですが…
ポータルの申請画面上は、この設定により値がクリアされます。
良い感じに動いていそうに見えます。
しかし‥!
RITMのフォームを開いてみましょう。
※開いた時点の画面です。何も手を加えてません。
申請時に、項目3に入力しているにも関わらず、何も表示されなくなってしまっています。
ロードのタイミングで、クリアも行われちゃってます。
現時点では、まだ見た目上クリアされているだけで、データ上は、存在しています。
じゃあUIポリシーのOn loadチェックを外すか
Noです。
そうしてしまうと、今度はロード時のポリシーが動かなくなるため、初期表示時のレイアウトがおかしくなります。
結論
スクリプトを書きます。UIポリシーのスクリプトで、以下のように記載し非表示になったタイミングで値のクリアをやってあげれば、切替・データ保持・RITMのレイアウトすべてを満たすことが可能となります。
※この方法は、ポータル(モバイル)でのみカタログを使用する際に限ります。
platform画面では、この制御が行えないため、別な方法を取る必要があります。