TOCは「入口」、View(Form)は「中身」です。前回まででデータと一覧画面を作りました。この回は、それを誰にどこから開かせるかの話です。
この回でいちばん先に知っておくべきことは、技術の中身ではありません。Aras InnovatorはRelease 2023を境に、TOCの作り方そのものを変えています。古い手順書のとおりに設定しても、左メニューは変わりません。ここを知らずに数時間溶かす人が、毎年出ます。
この記事は、当社がAras開発メンバーを育てるときの5回目の内容です。
1. TOCとViewが決めていること
| 部品 | 決めること |
|---|---|
| TOC(左のツリー) | 何を、誰に、どの並びで見せるか。クリックしたときに何を開くか。 |
| View(Form) | 開いたItem 1件を、どの項目で、どう並べて見せるか。 |
どちらもデータの見え方だけを決めています。中身が見えるかどうかを決めているのはPermissionです。この境界を混ぜると、切り分けができなくなります。
2. 先に確認すること — バージョンで作り方が違う
| バージョン | TOCの作り方 |
|---|---|
| Release 2023より前(11・12 など) | ItemTypeの TOC Access(見せる相手のIdentity)と TOC View(クリック時に開くビュー)で組み立てる |
| Release 2023以降 | TOC Editor(CUI=Configurable User Interface)で組み立てる。旧来のTOC Access・TOC Viewは使われない |
2023以降の環境にも、TOC AccessとTOC Viewのテーブル自体は残っています。ただしこれはインポート時の衝突を避けるために残してあるだけで、中身は空です。TOC Editorが書き込む先は、CUIのコマンドバー側です。
したがって、引き継いだ環境でまずやることは決まっています。バージョンを確認し、TOCがどちらの仕組みで作られているかを見る。設定画面を触るのは、そのあとです。
3. TOC Editorで組み立てる
TOC Editorは、左メニューをそのままの形で編集する画面です。置ける部品は、フォルダと4種類のボタンだけです。
| 部品 | クリックすると開くもの |
|---|---|
| Category(フォルダ) | 開かない。中のボタンをまとめるだけ。 |
| ItemTypeボタン | そのItemTypeのナビゲーションペイン(検索やよく使う操作) |
| Itemボタン | 特定のItemを1件、新しいタブで |
| Formボタン | 指定したFormを新しいタブで |
| Pageボタン | 指定したHTMLページを新しいタブで |
制約を1つ、先に覚えてください。ボタンの表示先(Access)に指定できるIdentityは、1ボタンにつき1つだけです。3つの部署に同じボタンを見せたいなら、ボタンを3つ作るか、その全員を含むグループIdentityを先に作ることになります。
順番としては、Identityを整理してからTOCに手を付けるほうが早く終わります。逆順でやると、部署が1つ増えるたびにボタンを作り直すことになります。
4. View — 同じItemTypeに、複数の画面
ItemTypeを作ると、既定のFormが1つできます。ほとんどの案件は、ここに項目を足していくだけで足ります。Formを分けるのは、分類(Classification)によって入力する項目がはっきり違うとき、あるいは同じItemを部署ごとに別の見え方で見せる必要があるときだけです。
FormとItemTypeは、ItemTypeのViewsリレーションシップで結びます。ClassificationごとにFormを割り当てることができ、Classificationを指定していないものが既定として使われます。
分ける前に、線を引いてください。項目が2〜3個違うだけなら、Formは1つのままにして、表示・非表示を切り替えるほうが保守が軽くなります。Formを分けた数だけ、今後の改修がその数だけ増えます。1年後に効いてきます。
5. 実務で必ず当たる4つ
- 左メニューに出てこないのは、権限ではなくAccessの指定であることが多い。 ItemTypeのPermissionをいくら直しても、TOCボタンのAccessに入っていなければ左メニューには出ません。逆に、メニューに出ていてもPermissionがなければ中身は空です。「メニューに出るか」「開いて中身が見えるか」の2段階で切り分けてください。
- 本番に移したら、メニューのフォルダだけが移っていない。 ItemTypeのボタンは対応するItemTypeと一緒にパッケージへ入りますが、Categoryは com.aras.innovator.cui_default のパッケージに自分で入れる必要があります。ボタンはあるのにフォルダがない、という形で崩れます。移行のたびに起きるので、手順書に固定で書いてください。
- 旧バージョンの手順書どおりに設定して、何も起きない。 2023以降のTOC Access・TOC Viewです。社内に残っている手順書には、必ず対象バージョンを書き添えてください。
- 既定のFormを複製して分類に割り当てたら、保存できなくなった。 複製元との結びつきが残り、新規作成時に失敗することがあります。Formの複製は、見た目より高くつく操作です。分ける必要が本当にあるかを、もう一度確認してから複製してください。
6. どこまでTOCに載せるか
| ユーザーがやること | 置き場所 |
|---|---|
| 毎日、同じItemTypeを探す | TOCのItemTypeボタン |
| 決まった1つの画面をいつも開く | TOCのFormボタン/Pageボタン |
| 複数のItemTypeをまたいで見る | TreeGridViewを1つ作って、そこへ1ボタン |
| 月に数回の管理作業 | TOCには載せず、検索またはリンクで |
判断の基準は開く頻度です。頻度の低いものを載せると、頻度の高いものが下へ押し出されます。左メニューは、項目を足すほど価値が下がる数少ない場所です。
次回は、Client EventsとServer Eventsを扱います。画面とデータに、どこで処理を差し込むかの話です。