• 検索結果がありません。

PHP プログラムからの利用 (i5_connect) <html> <head><title> シンプルな PHP</title></head> <body> DBCS 漢字 / 半角かなをパラメータで i5 に渡す場合には i5 への接続時にこの記述が必要 <?php $conn = i5_co

N/A
N/A
Protected

Academic year: 2021

シェア "PHP プログラムからの利用 (i5_connect) <html> <head><title> シンプルな PHP</title></head> <body> DBCS 漢字 / 半角かなをパラメータで i5 に渡す場合には i5 への接続時にこの記述が必要 <?php $conn = i5_co"

Copied!
10
0
0

読み込み中.... (全文を見る)

全文

(1)

PHPプログラムからの利用

■i5_connect関数でユーザセッションを確立

関数でユーザセッションを確立

関数でユーザセッションを確立

関数でユーザセッションを確立

■i5_*関数で任意の

*関数で任意の

*関数で任意の

*関数で任意のAPIを実行

を実行

を実行

を実行

■i5_close関数でユーザセッションを切断

関数でユーザセッションを切断

関数でユーザセッションを切断

関数でユーザセッションを切断

PHPプログラムからi5/OSのサービスにアクセスするためには、i5/OSに登録されている

ユーザ名とパスワードによる認証を行い、ユーザセッションを確立する必要があります。

8

resource i5_connect (string server, string user,

resource i5_connect (string server, string user,

resource i5_connect (string server, string user,

resource i5_connect (string server, string user,

string password[, array option] )

string password[, array option] )

string password[, array option] )

string password[, array option] )

※各種サービスにアクセスする際は、i5_connect関数の認証で利用したユーザ

の権限で操作が行われます。

bool i5_close ( [resource connection] )

bool i5_close ( [resource connection] )

bool i5_close ( [resource connection] )

bool i5_close ( [resource connection] )

一連の操作が完了した後は、i5_close関数を用いてユーザセッションを切断する

必要があります。

(2)

<html>

<head><title>シンプルなPHP</title></head>

<body>

<?php

$conn = i5_connect("localhost", “USER", “PASSWORD",

array(i5_OPTIONS_CODEPAGEFILE=>"/usr/local/Zend/Core/etc/jp_5035.cpg"));

DBCS漢字/半角かなをパラメータでi5に渡す場 合には、i5への接続時にこの記述が必要

PHPプログラムからの利用(i5_connect)

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);

?>

(3)

エラー処理

■i5_error関数にて最後の処理のエラーを確認

関数にて最後の処理のエラーを確認

関数にて最後の処理のエラーを確認

関数にて最後の処理のエラーを確認

●エラーが発生していなければFALSE

●エラーが発生していたら詳細情報を配列で返却

■i5_errno関数にてエラー番号を取得

関数にてエラー番号を取得

関数にてエラー番号を取得

関数にてエラー番号を取得

■i5_errormsg関数にてエラーメッセージを取得

関数にてエラーメッセージを取得

関数にてエラーメッセージを取得

関数にてエラーメッセージを取得

i5_*関数の実行で発生したエラーは

*関数の実行で発生したエラーは

*関数の実行で発生したエラーはi5_error関数で確認することができます。

*関数の実行で発生したエラーは

関数で確認することができます。

関数で確認することができます。

関数で確認することができます。

10

i5_*関数の実行で発生したエラーは

*関数の実行で発生したエラーは

*関数の実行で発生したエラーはi5_error関数で確認することができます。

*関数の実行で発生したエラーは

関数で確認することができます。

関数で確認することができます。

関数で確認することができます。

mixed i5_error ( [resource connection] )

mixed i5_error ( [resource connection] )

mixed i5_error ( [resource connection] )

mixed i5_error ( [resource connection] )

要素番号

説明

0

エラー番号(i5_errno関数の戻り値)

1

エラー分類

2

エラーメッセージ(i5_errormsg関数の戻り値)

3

エラーの詳細

(4)

CLコマンドの実行

■i5_command関数を利用し

関数を利用し

関数を利用し

関数を利用しCLコマンドを実行

コマンドを実行

コマンドを実行

コマンドを実行

■連想配列で入力パラメータを指定

■連想配列で入力パラメータを指定

■連想配列で入力パラメータを指定

■連想配列で入力パラメータを指定

●キー

: 入力パラメータ名

●値

: 入力パラメータ値

■連想配列で出力パラメータを指定

■連想配列で出力パラメータを指定

■連想配列で出力パラメータを指定

■連想配列で出力パラメータを指定

●キー

: 出力パラメータ名

●キー

: 出力パラメータ名

●値

: 出力パラメータ値を受け取るPHP変数名

i5_command関数を利用すると、任意のCLコマンドを実行することができます。

bool i5_command(string command [, array inputs, array outputs,

bool i5_command(string command [, array inputs, array outputs,

bool i5_command(string command [, array inputs, array outputs,

bool i5_command(string command [, array inputs, array outputs,

resource connection] )

resource connection] )

resource connection] )

resource connection] )

(5)

i5/OSプログラムの呼び出し

準備

準備

準備

準備

■プログラムの実行に必要なデータ定義を行う

■プログラムの実行に必要なデータ定義を行う

■プログラムの実行に必要なデータ定義を行う

■プログラムの実行に必要なデータ定義を行う

●i5_program_prepare

・・・連想配列にて定義

■戻り値は実行対象プログラムを示すリソース型の値

■戻り値は実行対象プログラムを示すリソース型の値

■戻り値は実行対象プログラムを示すリソース型の値

■戻り値は実行対象プログラムを示すリソース型の値

14

実行

実行

実行

実行

■i5_program_call関数にてプログラムを実行

関数にてプログラムを実行

関数にてプログラムを実行

関数にてプログラムを実行

■プログラムの実行に必要な引数を指定

■プログラムの実行に必要な引数を指定

■プログラムの実行に必要な引数を指定

■プログラムの実行に必要な引数を指定

●プログラムリソース(i5_program_prepare関数の戻り値)

●プログラムへの入力データ

●プログラムからの出力データ(PHP変数を割り当て)

■実行が完了したら

■実行が完了したら

■実行が完了したら

■実行が完了したらi5_program_close関数でリソースを解放

関数でリソースを解放

関数でリソースを解放

関数でリソースを解放

(6)

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 ')

DEMOLIB/CLPGM

i5/OSプログラムの呼び出し(CLプログラムのコール)

0005.00 CHGVAR VAR(&C) VALUE(' PHP ')

0006.00 ENDPGM

*****************データの終わり

**************************************

PHPからこのCLプログラムを呼び出します。

(7)

<?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"),

i5/OSプログラムの呼び出し(CLプログラムのコール)

16

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"

);

次ページへ続く →

この時点では得意な言語は”RPG”になっています。

(8)

//4.出力パラメータ

$parmOut = array(

"FIRST"=>"FIRST",

"LAST"=>"LAST",

"LANGUAGE"=>"LANGUAGE"

);

i5/OSプログラムの呼び出し(CLプログラムのコール)

//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);

?>

(9)

***************データの始め**************** 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

DEMOLIB/RPGPGM

i5/OSプログラムの呼び出し(RPGプログラムのコール)

18 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から受け取ったパラメータに応じて出力パラメータをセットするプログラムです。

(10)

<?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);

i5/OSプログラムの呼び出し(RPGプログラムのコール)

$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);

参照

関連したドキュメント

LLVM から Haskell への変換は、各 LLVM 命令をそれと 同等な処理を行う Haskell のプログラムに変換することに より、実現される。

運転時の異常な過渡変化及び設計基準事故時に必要な操作は,中央制御室にて実施可

出来形の測定が,必要な測 定項目について所定の測 定基準に基づき行われて おり,測定値が規格値を満 足し,そのばらつきが規格 値の概ね

その職員の賃金改善に必要な費用を含む当該職員を配置するために必要な額(1か所

③  訓練に関する措置、④  必要な資機材を備え付けること、⑤ 

ALPS 処理水の海洋放出に 必要な設備等の設計及び運 用は、関係者の方々のご意 見等を伺いつつ、政府方針

当日 ・準備したものを元に、当日4名で対応 気付いたこと