Accessを卒業して自動生成ツールを使ってシステム化しませんか
こんにちは、RADサービス部の佐々木です。今回はAccessでの開発歴4年の私が自動生成ツールを使って感じた違いを開発者目線でご紹介していきたいと思います。自動生成ツールといっても世の中には様々ものが存在しますが、キャパではGeneXusというツールを使って開発を行っています。前回、GeneXusを使って自動で画面や、データの追加、更新、削除機能が作成されることをご紹介しました。
しかしこれらの機能はあくまでトランザクションがもつ標準的な機能で、場合によっては標準機能以外で細かいデータのアクセスが必要になるかと思います。そのような場合でもGeneXusでは非常に簡単にデータの操作が行えます。今回はそういった自動で作成される標準機能以外でのデータアクセス部分に関する内容をAccessとGeneXusで比較しながらみていき、GeneXusでシステム化するメリットについてご紹介したいと思います。
AccessとGeneXusの違い
それでは最初にAccessとGeneXusの違いについてふれたいと思います。下記にざっくりとですが違いをまとめてみました。
Access | GeneXus | |
OS(開発環境) | Windows | Windows |
OS(稼働環境) | Windows | Windows
Windows Server LINUX UNIX IBM OS/400 Android iOS |
アプリケーション | デスクトップ系 | Web系
スマートデバイス |
開発言語 | VBA | GeneXus独自の開発言語 |
まず開発環境でのOSについてですが、こちらはどちらもWindowsでの開発となっています。次に稼働環境でのOSについてです。こちらはAccessがWindowsのみであるのに対してGeneXusは幅広いOSに対応していることがお分かり頂けるかと思います。アプリケーションに関してもGeneXusの場合、スマートデバイスにも対応しているためAndroid、iOSなど様々な環境で動作するアプリケーションを作成することができるため、システムの導入の際にも選択肢の幅が広がるのは嬉しいですね。
開発言語については、GeneXusの場合GeneXus独自の言語で開発を行うため習得するまでに少し時間を要してしまいますが、VBAを使っていた私の感想ではそこまで難易度が高いというような言語ではありませんでした。この後詳しくお話しますが、むしろGeneXusでの言語の方が直感的でプログラミングがしやすいという印象を受けました。そのため、VBAなどで開発を行ってきた方であればそこまでこの言語がネックになることはないのかなと思います。
データ操作言語の違いについて
ここからはデータの追加や、更新、削除についてお話をしたいと思います。私がAccessでシステムの開発を行っていた頃は、データ操作を行う場合当然SQL文を書いてデータの操作を行っていました。しかし、GeneXusの場合SQL文は使いません。代わりに「For Each」というコマンドを使って追加や、更新、削除を行っていきます。先ほど、GeneXusではSQL文は使わないとお話しましたが、厳密には裏でSQL文が使われています。開発者はSQL文を意識することなくデータの操作が可能になります。実際にSQL文とFor Eachコマンドを比較しながら見ていきましょう。下記にデータの取得、追加、更新、削除について簡単まとめてみました。
SQL | GeneXus | |
取得 | SELECT [項目名] FROM [テーブル名] | For Each
Where [項目属性] = [値] 変数 = [項目属性] When None EndFor |
追加 | INSERT INTO [テーブル名]([項目名],…) VALUES([値],…) | New
[項目属性] = [値] When Duplicate //一意制約違反時 EndNew |
更新 | UPDATE [テーブル名] SET [項目名] = [値],… WHERE [項目名] = [値] | For Each
Where [項目属性] = [値] [項目属性] = [値] When None EndFor |
削除 | DELETE FROM [テーブル名] WHERE [項目属性] = [値] | For Each
Where [項目属性] = [値] Delete When Duplicate //一意制約違反時 EndFor |
以上がSQLとGeneXusでのデータ操作の比較になります。例えば、今までAccessでデータの取得を行っていた場合、まずConnectionオブジェクトを生成し、データベースとの接続をオープンにしてからRecordsetオブジェクトを作成し、そこからデータの所得を行い、最後にデータベースのとの接続をクローズにしていました。
しかし、GeneXusの場合は最初に簡単な設定でデータベースへの接続を設定でき、それ以降は上記のFor Eachコマンドを使うだけでデータ操作が可能になるため、これまでのようにConnectionオブジェクトやRecordsetオブジェクを作成する必要がありませんし、オープンやクローズといった作業を行わなくともデータの操作が可能になります。初めてGeneXusのForEachコマンドを使ってみたときは「こんなのでデータの取得なんて出来るの?」と疑っていましたが、実際に使ってみるとその簡単さに驚きました。
GeneXusの場合テーブル名は記述しなくてもFor Eachコマンドに書かれている項目属性の内容から自動的に取得するテーブルを判断し、データの取得を行ってくれます。また、GeneXusではAccessと同様に帳票作成が行えますが、その内容についてはまた別の記事で詳しくご説明させて頂きたいと思います。
まとめ
いかがだったでしょうか?私はAccessを使用して開発を行っていた頃と比べて飛躍的に業務の効率を上げることができるようになったと感じています。ただ速く作れるだけでなく開発者にとって、開発がしやすい言語やツールがそろっていることもGeneXusの魅力の一つです。
現在、Accessで開発を行っている方やこれからGeneXusを使ってみようかと思われている方にとっても、便利なツールだと言えます。今回は非常に簡単なご紹介でしたが、まだまだGeneXusでのシステムを開発の魅力はたくさんあります。みなさんもぜひGeneXusを使ってシステム化を検討されてみてはいかがでしょうか。
株式会社キャパでは、GeneXusを用いた超高速開発についてご相談を承っています。
短納期、予算が合わないなどお気軽にご相談ください。
高速開発:GeneXusのご紹介