昨日に引き続きです。
ノンプログラミングツールいろいろあるんで、どんどんさわっていこうかな〜と思ってます。
今日はOracle Application Expressです。
本当は最初に触ろうと思ってたのはMicrosoft PowerAppsなんですが・・・
Microsoft OfficeのPowerApps、GmailどころかHotmailでも試せないのが残念。フリー系アドレスだめみたい。
— Koji Saiki (@saikou9901) 2018年3月31日
というわけで今日はApexです。
カンファレンスビデオ見てたら本家の人みんな「エイペックス」って言ってた…
— Koji Saiki (@saikou9901) 2018年4月7日
俺は発音記号が読めない。。。
前提
Kintoneと違って覚えることがかなり多そう(操作トリガーとか細かいことまだぜんぜん追いかけきれてない)ので、今日は入門解説チックです。見解はもちろん納品ベースで。
実行はデモワークスペースでおこないます。
さすがOracleだけあって、オンプレミス用もあります。これがKintoneとの一番大きな違いと言えるでしょうね。
あと、基本的にこの記事は嘘ではないです。さわったの昨日なので。
デモワークスペースをつくる
基本的にウィザードに従えば難しくないです。
ワークスペース作成後にログイン画面まで来て、初めて言語選択ができました。
よくよく考えたらここ日本語化できるならウィザードも・・・と思ってもう一度トップページからワークスペース作成ウィザード始めると・・・
これつまり日本語のランディングページから日本語のウィザードへの連携が取れてないんだよなぁ・・・URLからしてランディングページのWebサーバからApexのAPサーバ、って別領域に移動するからなんだろうけど、連携してくれてると嬉しかったなぁ。
これ埋めればいいだけだと思うんですが・・・
とりあえず、ワークスペースを作って最初はこんな感じです。
いまのところ
- SQLワークショップ
- チーム開発
のとこはさわってないですが、社内で開発環境作るときとかにさわってみたいですね。
開発者向けOracle Database+Apexをすれば、社内向けの開発ツールとか全部こいつで賄えそうな勢い。はやく月曜日になって会社の開発サーバにいろいろ仕込みたい。
うそです。月曜日いやです。エイプリルフールなので。
公式のサンプルアプリケーションから
Kintoneでも用意されていましたが、Apexもサンプルアプリがあります。
細かいバリエーションで結構な数ありますね。
今回は社内で使いそうなバグトラッキング入れてみました。
インストールする前「アプリケーション・ビルダー」はこんな感じでしたが、
バグトラッキングアプリが増えました。 アプリのとこにある再生っぽい「▶︎」ボタンでアプリケーションが別タブ起動します。
最初にアプリケーションを起動したらなんかでました。
ログイン済み+Load sample dataとか書いてあるので、このアプリケーションに作り込まれたウィザード的なものだと思います。
ということは、自分たちで作るアプリケーションでもこんなウィザード画面できるんですかね。よさげ。
はじめてApexのアプリケーションが現れた模様。 これまでのウィザードやダッシュボードと同じようにフラットなデザイン。
おもむろにサイドメニューをクリックすると、一覧がでてきました。フィルタリング等のメニューの配置などはKintoneとさほど変わらないです。この辺の配置に、みんな落ち着いて来たんでしょうね。
行の一番左、Bug#のボタンをクリックすると詳細画面でました。
「Edit Bug」をクリックすると編集できました。 Kintoneはこの辺のクリックできる箇所はアイコンのみの表示でしたが、Apexは全体的にボタン枠あるので個人的にはわかりやすいですね。
一覧にある「Create Bug」のボタンを押すと新規登録になりました。 モーダルですね。 あとでわかりますが、Apexはページ作成時にメインページかモーダルダイアログか選択できます。
画面サイズ
バグトラッキングアプリで幅縮めてみました。
基本的にサイドバーが閉じ状態になるだけで、中身に変化はないですね。この辺も用途としてはKintoneと同じなので問題なしです。
そろそろ新規作成
からっぽから新規作成してみましょう。「作成」でできます。
ウィザードですね。いいですね。完全にEmptyからだと探すの時間かかりそうなので「デスクトップ」からいきます。
「スキーマ」は、Oracle Databaseがわかる方なら皆さんご存知、あの「スキーマ」です。Oracleっぽいですね。あとは単一アプリケーションは単一スキーマに所属する、ということも推測できます。
ページもウィザード。
いろんなパターンが追加できそうですね。
作成しようとするとわかるんですが、表を選択することになります。ウィザードの場合は表定義ありきっぽいですね。Kintoneみたいに表定義含め新規作成する方法はあるんでしょうか?そのへんまだわかってないです。
とりあえず足せるページを一通り足してみました。
Oracleっぽいのきました。リージョンまわりです。
ただし、プリセットはびっくりするほど日本リージョンにマッチしてないです。自分でフォーマット手入力しないと使えないと思います。
いよいよ作成です。
この時点で、ページ作成の妥当性チェック。テーブル定義とマッチしない場合はここで弾かれます。
まぁすぐウィザードが再表示されるので、特に困ることないです。
無事に作成されるとこのページにきます。アプリケーションのメンテナンスページのもよう。
アプリケーションを使ってみる
早速起動。ログインページ。下のバーはメンテナンス・デバッグ用。視認性はある。
ログインするとなんかでてきました。どうもこのトップバー、サイドバー、コンテンツの構成がデフォルトのようです。
レポートをみると、なるほどバグトラッキングと同じようにできてます。 ただ行ヘッダの詳細表示はペンマークですね。ラベル付きボタンがよければ、自分で作る必要がありそうです。
ソート・フィルタは列ヘッダでも。Kintoneと比べてある程度固く、でもって精細さがある。
ウィザードのページテンプレート「レポート」で作成したページは、詳細表示すると参照画面がでてきます。
ウィザードのページテンプレート「レポートトフォーム」で作成すると、さっきと同じレポートと編集できる詳細画面ができます。なのでページテンプレートもさらに細かい設定のプリセットであることがわかりますね。
ウィザードのページテンプレート「フォーム」をトップレベルに置くとどうなるんだ?と思いましたが、新規登録だけできるフォームになりました。登録後も空っぽで同じページが表示されまう。
追加したデータはちゃんとレポート側にでました。
チャートはこんなかんじ。
メンテナンス関連
適当に触ってみる。まず「セッション」。
ログインセッションが表示されている模様。他にも色々見れるけでまだ全然わかりません。デバッグとかも同じメニューっぽいので今日は割愛。
「レイアウト列の表示」を押すとピンク色が表示されたり消えたりします。つまりこれ12分割のグリッドレイアウトってことですね。テキストボックスが3列の途中までになっているので、この辺の定義がどうなっているのかは、アプリケーションを販売する場合はちゃんとした調査が必要そうです。
「クイック編集」を押すと、ChromeDeveloperToolsのSpecificationのように画面部品が選択できます。選択すると・・・
はい沼ーーーーーーーーーーーーー
この辺はまたいずれ。
「テーマローラー」は、新規にカラーテーマを作成できます。
お客さんの要望に合わせてテーマを作成できるので、納品としても一安心ですね。
システム要件的なもの
操作トリガー・バッチ処理について
正直まったくわかりません。が・・・さすがにOracleなので無いということはないはず。
このページデザイナでボタンに「動的アクション」(詳細不明)などをつけて実施するんじゃないかと思います。
少なくともWebhook、また画面を見てみると「PL/SQL」とか転がってるのでそのキックはできるかもですね。
最悪の場合はデータベーストリガーで・・・。
アプリ間データ連携
これはけっこうKintoneと違うところかもです。Kintoneは1アプリケーションと1データ定義の関連が強く、FileMaker感がありました。
対して、Apexはアプリケーションとデータ定義(テーブル定義)はぜんぜん1:1の関係ではないです。
ページごとにどのテーブルを参照するか決められますし、次のように、ページ作成をSQL基準で行うことができます。
ユーザ・権限
次のように、設定画面があります。
権限設定の内容を見る限り、Apexが導入されたOracle Databaseのデータベースユーザとは別物のようです。 データベースユーザとは粒度も意味も全く異なるので、Apex用のユーザスキームがあるはずです。
調べてないですが、認証連携はOracleなので何かしらやってほしいですね。 OAuth2、LDAPあたりは。
まとめ
簡単にいうと、Kintoneとはレベル・役割・用途で棲み分けられると思います。
圧倒的にApexのほうが複雑です。ただそのぶん汎用性があります。
そしてそのぶん、私たちが後のApexおじさんになりえる、という問題も内包しています。
Apexのアプリケーションはなにかしらエクスポートできるんじゃないかと思っています。アプリケーション作成時にファイルからインポートするルートありますし、公式パッケージをオンプレミスに導入するルートもあります。
そのファイルの可読性によっては、おじさん回避の可能性がありますね。
正直Apex深すぎてまだぜんぜんわからないですし、ここでは書ききらないです。
ここから先詳細はQiita案件だとおもうので、何か発見し次第そちらでやっていこうかなと思っています。
これはオンプレミスで社内で試しやすいので、早速やってみたいと思っています。