PHPプログラムからの利用 ■i5_connect関数でユーザセッションを確立 関数でユーザセッションを確立 ■i5_*関数で任意の *関数で任意のAPIを実行 を実行 *関数で任意の ■i5_close関数でユーザセッションを切断 関数でユーザセッションを切断 PHPプログラムからi5/OSのサービスにアクセスするためには、i5/OSに登録されている ユーザ名とパスワードによる認証を行い、ユーザセッションを確立する必要があります。 resource i5_connect (string server, string user, string password[, array option] ) ※各種サービスにアクセスする際は、i5_connect関数の認証で利用したユーザ の権限で操作が行われます。 一連の操作が完了した後は、i5_close関数を用いてユーザセッションを切断する 必要があります。 bool i5_close ( [resource connection] ) 8 Copyright © 2006 JBCC Holdings Inc. PHPプログラムからの利用(i5_connect) <html> <head><title>シンプルなPHP</title></head> <body> DBCS漢字/半角かなをパラメータでi5に渡す場 合には、i5への接続時にこの記述が必要 <?php $conn = i5_connect("localhost", “USER", “PASSWORD", array(i5_OPTIONS_CODEPAGEFILE=>"/usr/local/Zend/Core/etc/jp_5035.cpg")); if (!$conn) die("<br>Connect fail errno=".i5_errno()." msg=".i5_errormsg()); echo "正常に接続されました。"; i5_close($conn); ?> </body> </html> Copyright © 2006 JBCC Holdings Inc. 9 エラー処理 ■i5_error関数にて最後の処理のエラーを確認 関数にて最後の処理のエラーを確認 ●エラーが発生していなければFALSE ●エラーが発生していたら詳細情報を配列で返却 ■i5_errno関数にてエラー番号を取得 関数にてエラー番号を取得 ■i5_errormsg関数にてエラーメッセージを取得 関数にてエラーメッセージを取得 i5_*関数の実行で発生したエラーは *関数の実行で発生したエラーはi5_error関数で確認することができます。 関数で確認することができます。 *関数の実行で発生したエラーは mixed i5_error ( [resource connection] ) 要素番号 0 1 2 3 Copyright © 2006 JBCC Holdings Inc. 説明 エラー番号(i5_errno関数の戻り値) エラー分類 エラーメッセージ(i5_errormsg関数の戻り値) エラーの詳細 10 CLコマンドの実行 ■i5_command関数を利用し 関数を利用しCLコマンドを実行 関数を利用し コマンドを実行 ■連想配列で入力パラメータを指定 ●キー : 入力パラメータ名 ●値 : 入力パラメータ値 ■連想配列で出力パラメータを指定 ●キー : 出力パラメータ名 ●値 : 出力パラメータ値を受け取るPHP変数名 i5_command関数を利用すると、任意のCLコマンドを実行することができます。 bool i5_command(string command [, array inputs, array outputs, resource connection] ) Copyright © 2006 JBCC Holdings Inc. 13 i5/OSプログラムの呼び出し 準備 ■プログラムの実行に必要なデータ定義を行う ●i5_program_prepare ・・・連想配列にて定義 ■戻り値は実行対象プログラムを示すリソース型の値 実行 ■i5_program_call関数にてプログラムを実行 関数にてプログラムを実行 ■プログラムの実行に必要な引数を指定 ●プログラムリソース(i5_program_prepare関数の戻り値) ●プログラムへの入力データ ●プログラムからの出力データ(PHP変数を割り当て) ■実行が完了したらi5_program_close関数でリソースを解放 ■実行が完了したら 関数でリソースを解放 Copyright © 2006 JBCC Holdings Inc. 14 i5/OSプログラムの呼び出し(CLプログラムのコール) DEMOLIB/CLPGM CLプログラム ***************データの始め**************** 0001.00 PGM PARM(&A &B &C) 0002.00 DCL VAR(&A) TYPE(*CHAR) LEN(15) 0003.00 DCL VAR(&B) TYPE(*CHAR) LEN(15) 0004.00 DCL VAR(&C) TYPE(*CHAR) LEN(15) 0005.00 CHGVAR VAR(&C) VALUE(' PHP ') 0006.00 ENDPGM *****************データの終わり ************************************** PHPからこのCLプログラムを呼び出します。 →変数”C(得意な言語)”を”PHP”という表記に変えるプログラムです。 Copyright © 2006 JBCC Holdings Inc. 15 i5/OSプログラムの呼び出し(CLプログラムのコール) <?php $conn = i5_connect("localhost", “USER", “PASSWORD", array(I5_OPTIONS_CODEPAGEFILE=>"/usr/local/Zend/Core/etc/jp_5035.cpg")); if (!$conn) die("<br>Connect fail errno=".i5_errno()." msg=".i5_errormsg()); //1.入出力のパラメータの属性設定 $description = array( array("Name"=>"FIRST", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"15"), array("Name"=>"LAST", "IO"=>I5_IN, "Type"=>I5_TYPE_CHAR, "Length"=>"15"), array("Name"=>"LANGUAGE", "IO"=>I5_INOUT, "Type"=>I5_TYPE_CHAR, "Length"=>"15") ); //2.呼び出しプログラムの設定 $pgm = i5_program_prepare(“DEMOLIB/CLPGM", $description); if (!$pgm) die("<br>Program prepare errno=".i5_errno()." msg=".i5_errormsg()); //3.入力パラメータ $parameter = array( "FIRST"=>"イグアス", "LAST"=>"太郎", "LANGUAGE"=>"RPG" );2006 JBCC Holdings Inc. Copyright © この時点では得意な言語は”RPG”になっています。 16 次ページへ続く → i5/OSプログラムの呼び出し(CLプログラムのコール) //4.出力パラメータ $parmOut = array( "FIRST"=>"FIRST", "LAST"=>"LAST", "LANGUAGE"=>"LANGUAGE" ); //5.実行 $ret = i5_program_call($pgm, $parameter, $parmOut); if (!$ret) die("<br>Program call errno=".i5_errno()." msg=".i5_errormsg()); echo "<BR>姓 : $FIRST"; echo "<BR>名 : $LAST"; echo "<BR>得意な言語 : $LANGUAGE"; i5_program_close($pgm); i5_close($conn); ?> CLプログラムをコールして実行すると、得意な言語が”PHP”に変わっています。 Copyright © 2006 JBCC Holdings Inc. 17 i5/OSプログラムの呼び出し(RPGプログラムのコール) DEMOLIB/RPGPGM ***************データの始め**************** 0001.00 H***************************************************************** 0002.00 H Y 0003.00 H***************************************************************** 0004.00 C *ENTRY PLIST 0005.00 C PARM P@IN 1 0006.00 C PARM P@OUT 12 0007.00 C***************************************************************** 0008.00 C SELEC 0009.00 C P@IN WHEQ '1' 0010.00 C MOVEL'1です'P@OUT 0011.00 C P@IN WHEQ '2' 0012.00 C MOVEL'2です'P@OUT 0013.00 C ENDSL 0014.00 C* 0015.00 C SETON LR 0016.00 C* 0017.00 C RETRN *****************データの終わり************************************** PHPから受け取ったパラメータに応じて出力パラメータをセットするプログラムです。 18 Copyright © 2006 JBCC Holdings Inc. i5/OSプログラムの呼び出し(RPGプログラムのコール) <?php $user = “USER"; $pass = “PASSWORD"; $conn = i5_connect("localhost",$user,$pass, array(I5_OPTIONS_CODEPAGEFILE=>"/usr/local/Zend/Core/etc/jp_5035.cpg")); if (!$conn) die("<br>Connect fail errno=".i5_errno()." msg=".i5_errormsg()); $parm = array("Name" => "PARM","Type" => I5_TYPE_CHAR,"Length" => "1", "IO" => I5_IN); $parm2 = array("Name" => "PARM2", "Type" => I5_TYPE_CHAR, "Length" => "12", "IO" => I5_OUT); $desc = array($parm, $parm2); $prog = i5_program_prepare(“DEMOLIB/RPGPGM",$desc); if(!$prog) die(i5_errormsg()); if(i5_program_call($prog,array("PARM"=>"1"),array("PARM2"=>"PARM2"))){ echo "<br>パラメータは$PARM2"; }else{ echo "program call failed"; } i5_program_close($prog); i5_close($conn); CL呼び出しのときと同じように記述します。 ?> 19 Copyright © 2006 JBCC Holdings Inc.
© Copyright 2025 ExpyDoc