Zedo Core i5 で、PHPとFlex連携(その2)
前回の続きで、今度はPHPのサービスプログラムを作成します。
サービスプログラムの作成
今回は適当な”売上データ”を連想配列で返す、サービスを作成します。
- 引数
- 開始年月:YYYYMM(文字 6Byte)
- 終了年月:YYYYMM(文字 6Byte)
- 戻り値
- 売上データリスト:連想配列
ソースは以下のような感じです。
■「Uriage.php」
<?php /** * Uriage * * 売上データ取得サービス * * @package * @access public * @author Yoshiki Ushida <CSC> * @create 2009/12/23 * @version v 1.0.0 */ class Uriage { /** * 指定月の売上データをリストで返します * @access public * @param string $fromMonth 開始月 * @param string $toMonth 終了月 * @return array 売上リスト */ public function getList($fromMonth,$toMonth){ $ret = array(); // カラム名小文字の設定 $option["DB2_ATTR_CASE"] = DB2_CASE_LOWER; // デフォルトライブラリーの設定(i5_lib) $option["i5_lib"] = "PHPDEMO"; $db=db2_connect("*LOCAL","foo","*****",$option); if(!$db){ $message = "Error->getConnection:<". date('Y/m/d H:i:s') .">" .db2_conn_errormsg() . "\n"; error_log($message, 3, '/var/tmp/AS400ConnectionError.log'); return $ret; } // SQL文 $sql="select * from uriage where month >= ?" ." and month <= ?"; // SQLプリペア $result = db2_prepare($db,$sql); // パラメータのバインド db2_bind_param($result ,1 ,"fromMonth",DB2_PARAM_IN); db2_bind_param($result ,2 ,"toMonth" ,DB2_PARAM_IN); // SQLの実行 (db2_execute($result)) or die("$sql に失敗しました。"); while ( ($row=db2_fetch_assoc($result)) != false) { $ret[]=$row; } db2_close($db); return $ret; } }
■「URIAGE」ファイルのDDS
A***************************************************************** A* URIAGE 売上データ 09/12/24 CSC)Y.U * A***************************************************************** A R URIAGER TEXT('売上データ') A MONTH 6S 0 COLHDG('売上年月') A* A AREAC 4S 0 COLHDG('区域コード') A AREA1 16O COLHDG('管轄') A AREA2 16O COLHDG('区域') A EMPLOYEE 16O COLHDG('営業名') A CUSTC 6S 0 COLHDG('得意先コード') A TYPE 1A COLHDG('販売形態コード') A TYPEN 16O COLHDG('販売形態名') A SALES 9S 0 COLHDG('売上金額') A MARGIN 9S 0 COLHDG('粗利金額') A*KEY A K MONTH A K CUSTC A K TYPE
作成した「Uriage.php」は、IFS上の”/www/zendcore/htdocs/amfphp/services”(※/www/zendcore/htdocs/は適宜変えて下さい)に配置します。
次に”http://ホスト名/amfphp/browser/”にアクセスすると、PHP単体の動作を確認する事が出来ます。定義した「getList関数」が正常に動作すれば、PHP側は完了です。