ushidayの日記

主に「IBMi」のメモに・・・

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側は完了です。