2014年3月5日水曜日

データプロバイダーを使いこなそう - 基礎編その1

皆さん、データプロバイダーって使ったことありますか? 「名前は聞いたことあるけど、使ったことは・・・」という人、以外に多いと思います。

データプロバイダーはバージョンXから導入された比較的新しいオブジェクトです。その為、昔からGeneXusエンジニアやっている人からすると馴染みが薄く「プロシージャで作った方が早いよ」と言われるかもしれません。

しかし、メーカーであるArtechが新たに導入してきたという事はそれ相応の目的とメリットがあるわけで、使わない理由はありません。

そこで、当ブログでも何回かに分けてデータプロバイダーの使い方を紹介したいと思います。

データプロバイダー基礎編

まずはデータプロバイダー基礎編として、基本的な説明からサンプルの作成まで解説します。


・概要

 データプロバイダーとは簡単に言ってしまうと「宣言的に記述できるプロシージャー」です。これだけだと、何のことはよく判りませんよね? 順を追って説明します。

・目的

 まず、データプロバイダーの目的ですが「データをSDT又はBCに詰め込んでOUTPUTする事」です。

この時、詰め込むデータのINPUTは主にDBからセレクトしたデータになりますが、それだけではありません。オブジェクト内にハードコードしたデータもINPUTになりますし、他のオブジェクトから受け取ったSDTデータもインプットになります。

・特徴

 特徴としては、宣言的な記述です。「宣言的記述」というのがなかなか理解しづらいと思いますが、GeneXusの(特にトランザクションオブジェクト)特徴でもあります。ロジックの記述ではなく定義的に記述します。宣言的に記述するプロシージャオブジェクトと言われる由縁です。

データプロバイダーオブジェクトのSourceセクション
まずOUTPUTのフォーマットを記述し、そこに代入式でINPUTを割り当てる


データプロバイダーでは、OUTPUTのフォーマットをまず記述し、そこにINPUT及びプロセス(データの加工)を記述します。これにより、当該データプロバイダーの目的(何をOUTPUTしてくれるのか?)が明確になります。

これが、従来のプロシージャだとロジック中心になり、「どう処理しているのか?」は判り易いですが(但し、ロジックを読み込む必要があります)、「何をアウトプットしてくれるのか?」が判りづらくなります。



この様な特徴を持ったデータプロバイダー、うまく使いこなせば開発の工数も削減できますし、簡潔な記述によるメンテナンス性の向上も図れます。

次回は実際に簡単なサンプルを作成してみましょう。



0 件のコメント:

コメントを投稿