($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
さん [ 1月1日(木) 9時0分 ]
.netからのRPGの呼び出し もりぞう さん [ 12月27日(金) 16時38分 ]
AS400 OS5.2.0
.NET 4.0
VS2012

VB.NETよりi Access For Windowsを介してAS400のデータベースにアクセスを行っています。
データエリアで連番管理を行っている部分があり、この値を取得したいのですが方法が分かりませ
ん。
通常のPFへは問題なく読み書き出来ています。
データエリアを直接読み書きする事が可能なのでしょうか?

または、VB.NETよりRPGがCALL出来れば間接的に取得する事ができると思いますが、RPGを呼び出す
方法も分かりません。

お分かりになりましたらご教授願います。
RE:.netからのRPGの呼び出し もりぞう さん [ 1月28日(火) 9時23分 ]
自己レスです。

以下のサイトの情報を参考にしてプログラムの呼び出しが出来ましたので
情報共有させて頂きます。
http://hrm.fixa.jp/as400/AS4001/stored.htm
RPGで作成した画面をダブルクリックした時の挙動について Inax さん [ 1月6日(月) 15時43分 ]
CA01(ファンクションF1)のみを有効にしたこのような画面メニューがあります。
このメニューの数字の箇所をダブルクリックした時の挙動について質問です

画面イメージ

01.○○○    16.○○○
02.×××    17.○○○ 
03.△△△    18.○○○
   ・         ・
   ・         ・
15.△△△    30.○○○

数字の箇所 01をダブルクリックすると、F1キー押下と同じ動きをします。

数字の箇所 02から24をダブルクリックすると、機能キーは使用できませんとなります。

数字の箇所 25以降をダブルクリックすると、無反応です。

現象から判断すると01から24のダブルクリックはファンクションイベントを実行してます。

01から24のダブルクリックで、ファンクションイベントを実行しない方法はありますでしょ
うか?
RE:RPGで作成した画面をダブルクリックした時の挙動について 7se さん [ 1月6日(月) 18時23分 ]
何をしたいのかわかりませんが、
PCOMMの[編集]-[設定]-[ホットスポット]でダブルクリックのイベントは
発生しないようにできるのでは・・・



> CA01(ファンクションF1)のみを有効にしたこのような画面メニューがあります。
> このメニューの数字の箇所をダブルクリックした時の挙動について質問です
> 
> 画面イメージ
> 
> 01.○○○    16.○○○
> 02.×××    17.○○○ 
> 03.△△△    18.○○○
>    ・         ・
>    ・         ・
> 15.△△△    30.○○○
> 
> 数字の箇所 01をダブルクリックすると、F1キー押下と同じ動きをします。
> 
> 数字の箇所 02から24をダブルクリックすると、機能キーは使用できませんとなります。
> 
> 数字の箇所 25以降をダブルクリックすると、無反応です。
> 
> 現象から判断すると01から24のダブルクリックはファンクションイベントを実行してま
す。
> 
> 01から24のダブルクリックで、ファンクションイベントを実行しない方法はありますでし

> うか?
RE:RPGで作成した画面をダブルクリックした時の挙動について Inax さん [ 1月8日(水) 13時36分 ]
7se様
ご解答ありがとうございます。
ホット・スポットの存在は知りませんでした。参考になります。

説明不足ですみません。実装しようとしていることは、
RPG画面上に、数値が出ている表があり、その数字部分をダブルクリックして、
その明細を表示する仕組みです。(数値は都度変わります)

| 1 | 22| 3 | 85| 27| 12|

数字をダブルクリックしますが、表示される数字によって先の質問に挙げました挙動が発生しま
す。DDSのキーワードで、ご教授いただいたホット・スポットの機能が指定できれば理想的です
が、それらしいものは見当たりません・・・

ありがとうございました。

RE:RPGで作成した画面をダブルクリックした時の挙動について IBMはどうして黒が好きなのか。 さん [ 3月7日(金) 12時47分 ]
内部のRPGにて挙動を操作しているのではありませんか?
画面での設定は関係ないと思います。
QUERY 定義の印刷について SNH さん [ 1月10日(金) 15時34分 ]
QUERY処理の画面から6=定義の印刷はなぜか、
一度に30個までしか印刷できません。

無制限または違う方法で印刷する方法は無いでしょうか?

以上、よろしくお願いします。
SNDDSTコマンドについて ま?くん さん [ 1月24日(金) 15時2分 ]
SNDDSTコマンドを利用して、メールを送信しているのですが、受信したメール
の件名が文字化けを起こしているようで、タイトルが表示されません。
何か設定が悪いのでしょうか?
OS/400 : V5R1

(実行しているコマンド)
SNDDST TYPE(*LMSG) TOINTNET(('xxx@yyy.co.jp')) DSTD('ここに件名')
MSG('この部分に入っている文は、文字化けなしで本文として表示される')
LONGMSG('この部分は日本語を入れても文字化けされる')
RE:SNDDSTコマンドについて WOW64 さん [ 1月29日(水) 16時21分 ]
ご参考までにOS400のSMTPの設定を変更して試して下さい。
CHGSMTPA コマンド  で コード化文字セットを 819 → 943 に変更して下さい。

RE:SNDDSTコマンドについて ま?くん さん [ 1月29日(水) 16時45分 ]
ご回答ありがとうございます。

さっそく実行してみました。

メッセージID:TCP4993「CCSIDパラメーター値943が正しくない」と出てしま
い、変更ができないようです。
どこか設定を変える必要があるのでしょうか?

よろしくお願いいたします。
> ご参考までにOS400のSMTPの設定を変更して試して下さい。
> CHGSMTPA コマンド  で コード化文字セットを 819 → 943 に変更
して下さい。
> 
> 
*SYSRPYL を使用しないメッセージの自動応答について TK さん [ 2月4日(火) 18時5分 ]
システムの自動応答リストを使用しないで、
特定のエスケープメッセージに対する自動応答を行おうとしているのですが、
うまくいきません。

以下のようなコードで、自動応答を"I"で行おうとしています。

(Main-CL:MSGMAIN)
PGM

DLTMSGF    MSGF(QTEMP/QCPFMSG)
MONMSG     MSGID(CPF2105)
CRTMSGF    MSGF(QTEMP/QCPFMSG)
OVRMSGF    MSGF(QCPFMSG) TOMSGF(QTEMP/QCPFMSG) SECURE(*YES)
ADDMSGD    MSGID(CPF2110) MSGF(QTEMP/QCPFMSG) MSG('Auto +
             reply for CPF2110') DFT(I)
CHGJOB     INQMSGRPY(*DFT)
CALL       PGM(MSGSUB1)

ENDPGM

(Sub-CL:MSGSUB1) ※ライブラリー"XXXLIB"は存在しない。
PGM
DLTF       FILE(XXXLIB/XXXFILE)
ENDPGM

ログは以下のように出ています。

  Auto reply for CPF2110
  CPF2110 received by procedure MSGSUB1. (C D I R)
? C
  CPF2110 received by procedure MSGMAIN. (C D I R)
? C
  Application error.  CPF2110 unmonitored by MSGSUB1 at statement
    0000000300, instruction X'0000'.

自動応答は出来ているようですが、自動応答を"I"で行いたいにもかかわらず、
"C"で処理されているようです。

ADDMSGD のパラメーターをいろいろ変えてやってみましたが、
望む結果は得られていません。

どこが問題なのかお分かりの方がいらしたら解決策をご教授ください。
OS/400 Ver5.4 です。

よろしくお願いいたします。
自動応答は不要  SDF さん [ 2月4日(火) 21時13分 ]
DLTF       FILE(XXXLIB/XXXFILE)
MONMSG          CPF0000
結果はどうあれ、続行します。

分岐したいなら
DLTF       FILE(XXXLIB/XXXFILE)
MONMSG          CPF2110   GOTO XX2110
MONMSG          CPF0000
こんな感じにする。
RE:自動応答は不要  TK さん [ 2月5日(水) 10時26分 ]
早速のご回答ありがとうございます。

説明不足で大変申し訳ありません。

上の話は簡略化していますが、実際の状況としましては、

PGMA  CALL -> PGMB CALL -> PGMC (いずれも CLP)
という階層の呼び出しで、

PGMA = 今回当方作成中のプログラム(上記 MSGMAIN にあたる)、
PGMB、PGMC = 他社作成のプログラム(オブジェクトのみ提供)、

実行時のログから、
PGMC はその中で、DSPFD *OUTFILE のリストを順次読んで
CLRPFM を行っていると思われます。
ただし、そこでエラー処理をしていないらしく、
「メンバーロック中でクリアできない」などのエラーが出た時点で
PGMB (これはメッセージモニタしているようです)
に制御が戻って PGMB が次のステップを実行してしまいます。

今回、PGMA 自身は MONMSG するとしまして、
PGMC の CLRPFM がエラーを受け取った場合に
"C" でなく "I" で自動応答し、
PGMC がリストの次のファイルの処理を継続するように、
PGMB、PGMC を変更せずに、PGMA から制御したいのです。

このような事は出来ますでしょうか?

よろしくお願いいたします。
できそうな感じだが SDF さん [ 2月5日(水) 14時21分 ]
だめもとで。
JOBD より USRPRF が 優先します。
DLVRY   *NOTIFY になってますか。


 


RE:できそうな感じだが TK さん [ 2月5日(水) 16時45分 ]
ご回答ありがとうございます。

確認しましたところ、*NOTIFY となっていました。

HELP に「MSGQ が他で使用されていた場合云々・・・」とありましたので、
念のため、誰も使用していない別ユーザーで試してみましたが、
結果は同様でした。

何か別の設定(環境設定など)が欠けているのでしょうか・・・
制限事項 SDF さん [ 2月5日(水) 20時35分 ]
OVR するときに、FROM と TO のファイル名が同じだと、
動作に問題が 発生します。

もしかしたら、という部分は、外してテストしたほうが、早道です。
(君子あやうきに 近寄らず) 


CPF2110  SDF さん [ 2月6日(木) 10時14分 ]
自動応答はしてるらしいが、別のメッセージIDにこたえてる。
CPA0701への応答 koma さん [ 2月5日(水) 21時58分 ]
CPF2110には応答は返せませんので、CPA0701に対して「I」を自動応答させてはどうでしょうか?
RE:CPA0701への応答 (うまくいきました、なぜかCPA0702) TK さん [ 2月6日(木) 13時36分 ]
ご回答ありがとうございます。

みなさんのご指摘をもとに、CPA0702(ログには CPA0702 が送信されていましたので)
をチェックするように変更したところ、

テストプログラムのログでは、応答が"I"で返され、かつ、
下位プログラムに追加したエラー発生箇所の次のステップ SNDPGMMSG の処理も
実行されていました。

CPA0702 の内容についてはもう少しチェックしてみたいと思いますが、
要件に照らして、当初の目的は達成できそうです。

ご指摘を下さいました皆様、ありがとうございました。
無料でできる IBM i の Web化 新会議室管理人 さん [ 2月12日(水) 11時22分 ]
サイトのAS/400 Tips & Techniquesの
「HTTPサーバーとWeb開発」に「105.無料でできる IBM i の Web化」を
公開致しました。
是非ご参考になさってください。

詳しくは http://www.as400-net.com/ で
FTP送信で全件処理されない理由 キキ さん [ 2月20日(木) 21時44分 ]
CPYTOIMPF で 項目を切らずに1000バイトで作成した物理ファイルに作成し、
DOS窓よりFTPでGETして、CSVの作成をしていますが、全件処理されず、35000
件中7000件しか処理されません。
どうしたら、全件処理されますか
RE:FTP送信で全件処理されない理由 WOW64 さん [ 2月24日(月) 9時19分 ]
まず、どうしたら全件処理されますか?ではなく、考え付く原因を一つ
ずつ調べないといけないのではないでしょうか?
例えばデータ件数を少なくして検証するとか・・・、データベースを違うものにするとか・・・
RE:FTP送信で全件処理されない理由 キキ さん [ 2月27日(木) 4時24分 ]
データ件数を絞って実行したとこころ、正しくないコードが入っており、日本
語の所でこけておりました。ご助言有難うございます。
System i ナビゲーターのユーザー接続が消えてしまう らいおん さん [ 3月3日(月) 14時43分 ]
こんにちは。

i-naviのユーザー接続にいくつかの環境が紐づいて表示されていたのですが、
そのうちのいくつかが消えてしまいました。
こうした場合は、もう一度接続しなおせば良いのでしょうか。
何かi-naviもしくはSystem-i側で、原因を確認できる方法をご存知の方がいれば教えてくださ
い。
RE:System i ナビゲーターのユーザー接続が消えてしまう WOW64 さん [ 3月3日(月) 19時16分 ]
「いくつかの環境が紐づいて」とか「いくつかが消えてしまいました」では、
あまりにも抽象表現であり、意味不明です。

多くの人に回答を求めるのであれば、
誰にでもわかるように具体的かつ分かりやすく表現されないと答えようがありません。

ご自身による調査の有無や、結果も添えて質問されることをお奨めします。
また、「こうした場合は、もう一度接続しなおせば良いのでしょうか。」と
いわれるのであれば、ご自身で接続されたらどうですか?

QSYSOPRやジョブログは確認されたのでしょうか?
AS400のマイクロとは? さまよう鎧 さん [ 3月4日(火) 14時5分 ]
AS400のBIOSにあたる部分の名称の質問になります。

小職はLICかライセンス内部コードと呼んでおります。

人によってはマイクロと呼んでおりますが、どちらが正しいのでしょうか?
(そもそもマイクロ=LICの認識で相違ないのでしょうか?)
RE:AS400のマイクロとは? @kira さん [ 3月4日(火) 15時11分 ]
ライセンス内部コード Licensed Internal Code=LIC で正しいと思います。

マイクロとは、AS/400創生期に、LICをハードウェア(ROM)に焼き付けていた時代の名称です。
現在では、LICはハードウェアの上に位置するファームウェア(ソフトウェア)です。

なぜこのようなことにご興味があるのですか?
RE:AS400のマイクロとは? さまよう鎧 さん [ 3月5日(水) 11時9分 ]
御解答有難う御座います。

ベンダーとの会話の中で、小職はLICという文言にて会話しており、相手側はマイクロという文言に
て会話しておりましたので、同じ認識なのかどうかの確認がしたかったのが理由になります。(会話
の流れから推測するに同じだと推測はできたのですが)

Pcommバージョンの確認方法 hzd2 さん [ 3月6日(木) 9時19分 ]
AS400からPcommのバージョンを取得できるような方法をご存知の方いらっしゃいますでしょうか?
AS400のバージョン:V6R1M0

XPからWin7への切り替えで全端末のPcommライセンスを確認できればと、、、
どうかご教示のほどよろしくお願い致します。
RE:Pcommバージョンの確認方法 ま?くん さん [ 3月7日(金) 14時8分 ]
API(Exit Program)を利用すればわかるのかもしれませんが、自分では作成したことがないので
何とも言えません。

> AS400からPcommのバージョンを取得できるような方法をご存知の方いらっしゃいますでしょうか

> AS400のバージョン:V6R1M0
> 
> XPからWin7への切り替えで全端末のPcommライセンスを確認できればと、、、
> どうかご教示のほどよろしくお願い致します。
RE:Pcommバージョンの確認方法 @kira さん [ 3月7日(金) 17時50分 ]
AS400からPcommのバージョンを取得するのは不可能だと思います。
出口プログラムを作成したとしても、情報の取得は出来ません。
(出口プログラムはAPIではありません。)
CRTRPGPGMの件 stomo さん [ 3月7日(金) 12時46分 ]
こんにちは。早速ですが、

RPGからCLをCALLしてCRTRPGPGMさせようとしています。

コンパイルエラーが出た際、CL側のCRTRPGPGMの下でMONMSGしているのですが、
RPGに戻った時にエラーが発生しています。

RPGからCLをCALLして、CL側でMONMSGをしているプログラムなんてざらにありますので
、CRTRPTPGM特有の問題かと思います。

原因や回避方法をご存知の方がいらっしゃいましたら、宜しくお願い致します。
RE:CRTRPGPGMの件 @kira さん [ 3月7日(金) 17時5分 ]
CLのMONMSGでCPF0000に加えて、QRG0000をモニターするようにしてください。
RE:CRTRPGPGMの件 stomo さん [ 3月7日(金) 17時23分 ]
返信ありがとうございます。

MONMSG     MSGID(QRG0000 RPG0000 CPF0000)

してあるけどだめなんです。。。

RE:CRTRPGPGMの件 @kira さん [ 3月7日(金) 17時52分 ]
モニターできない別のメッセージが出ているはずなので、
それをジョブログで調べてください。
RE:CRTRPGPGMの件 stomo さん [ 3月7日(金) 18時6分 ]
返信ありがとうございます。

ジョブログに出ているのは

CLのCRTRPGPGM後に

CPF5715
QRG0008
QRG9001

そしてRPGに戻ってから(?)

RPG0202

です。

CL側はCPF0000とQRG0000でカバーされていそうなのですが。。。
RE:CRTRPGPGMの件 @kira さん [ 3月7日(金) 18時18分 ]
機能チェック。 QRG9001 は, TESTRPG によってステートメント 500 命令
 X'000E' で監視されていません。                                    

のように、監視されていないメッセージ報告が出ているはずですので、
そのメッセージを探してください。

RPGでコンパイル用のCLを実行するというのは、
メニューをRPGを作成されているようなことはないでしょうか?
もしそうであれば、メニューはCLで作成することをお奨めします。

どうしてもRPGでメニューを作成したいのであれば、
RPGでエラーをモニターするようにする必要があります。
*PSSRまたはMONITORを使ってください。
RE:CRTRPGPGMの件 stomo さん [ 3月7日(金) 18時33分 ]
返信ありがとうございます。

*PSSRも試しましたが、

ENDSR'*DETC '

と言った戻し先等が理解できていなくてあきらめました。

先程見つけたのですが、

RPGのCALL行の56桁目(LO)にフラグをおく方法

を現在検証しています。

RE:CRTRPGPGMの件 IBMはなぜ黒がすきなのか? さん [ 3月8日(土) 11時44分 ]
MONMSGは全てのメッセージをモニタリング出来ません。
MONMSGは通知例外メッセージ、エスケープ例外メッセージ、状況例外メッセージの
3つのメッセージタイプのみモニタリング可能です。

RPG0202ですが、メッセージタイプは照会です。つまりMONMSGが出来ません。
よって、CRTRPTPGM特有の問題ではありません。

さて、RPG0202が発生する原因は考えましたか?
これは権限の問題がある場合発生します。

つまり、CRTRPTPGMのオブジェクト権限をまず確認しましょう。
そしてCRTRPTPGMをコールするRPGについて、適切な権限で実行しましょう。
そうすれば、解決すると思います。
クライアントアクセスのデータ転送で半角小文字を半角大文字にしたい とうしろう さん [ 3月7日(金) 17時19分 ]
最近、エミュレータをP-COMからクライアントアクセスに変更しました。

これまで、P-COMのデータ転送で、PC上のテキストをAS/400にアップロードする処理を
行っていました。
テキストに半角小文字のアルファベッドが使われていても、
AS/400にアップロードすると、自動的に半角大文字のアルファベッドに変換されていました。
クライアントアクセスで同じ処理を行ったところ、
クライアントアクセスでは、半角小文字のアルファベッドは変換されず、空白に置き換えられて
しまいました。

転送先の物理ファイルのCCSIDは、5026です。
クライアントアクセスでも、テキストの半角小文字のアルファベッドを、半角大文字に変換して
AS/400にアップロードしたいのですが、簡単な方法はないでしょうか?
RE:クライアントアクセスのデータ転送で半角小文字を半角大文字にしたい IBMはなぜ黒がすきなのか? さん [ 3月10日(月) 9時55分 ]
ないですね。
スプールファイル NG さん [ 3月11日(火) 19時59分 ]
簡単に言えば、出力されたスプールのページ数を
1ページ減らしたいのですが・・

5ページとして出力された場合
CHGSPLFA PAGERANGE(1 4)に変更したいのですが

出力されたスプールのページ数を取得する方法はありますか?
RE:スプールファイル さまよう鎧 さん [ 3月12日(水) 14時23分 ]
WRKOUTQ OUTQ(LIB/OUTQ) OUTPUT(*PRINT)

にてスプール化してCPYSPLFにでファイル化し、そのファイルを読み込んでみて値を取得してみては
如何でしょうか?

もっと適当な方法があるかもしれませんが。。。
RE:スプールファイル NG さん [ 3月13日(木) 13時28分 ]
> WRKOUTQ OUTQ(LIB/OUTQ) OUTPUT(*PRINT)
> 
> にてスプール化してCPYSPLFにでファイル化し、そのファイルを読み込んで
みて値を取得してみては
> 如何でしょうか?
> 
> もっと適当な方法があるかもしれませんが。。。
ありがとうございます。
スプールファイルのコピーしかありませんか・・・・
うーーん。了解しました。
RE:スプールファイル IKD さん [ 3月13日(木) 17時30分 ]
基本的には NG さんの言われるようにPF に変換して調べることに
なりますが API を使ってもよいというのであればと
いうことで調べてみました。

米国サイトでは下記のようなCLP でベージ・カウント・プログラムを作っている人が
いました。


http://iprodeveloper.com/rpg-programming/retrieve-spooled-file-page-count

PGM

     DCL VAR(&STRPAGE) TYPE(*DEC) LEN(5 0)
     DCL VAR(&ENDPAGE) TYPE(*DEC) LEN(5 0)

     OVRPRTF FILE(PRINTER) HOLD(*YES)
     CALL    PGM(<i>mylib/myrpgpgm</i>)
     DLTOVR  FILE(PRINTER)

 <font color="blue">    PAGCNT  COUNT(&ENDPAGE)
     CHGVAR  VAR(&STRPAGE) VALUE(&ENDPAGE - 1)

     CHGSPLFA FILE(PRINTER) SPLNBR(*LAST) +
              PAGERANGE(&STRPAGE &ENDPAGE)</font>

     RLSSPLF  FILE(PRINTER) SPLNBR(*LAST)

 ENDPGM


プログラムは

http://www.pentontech.com/IBMContent/Documents/article/55320_274_PagCnt.zip

からダウンロードできるとありました。
これをダウンロードして解凍したところ上記に含まれているCLPソースは次のとおりです。


---------------------------------------------------------------------------
----
PGM     PARM(&NUMPAGES)

    DCL VAR(&NUMPAGES)  TYPE(*DEC)  LEN(5 0)
    DCL VAR(&RCVVAR)    TYPE(*CHAR) LEN(2048)
    DCL VAR(&RCVVARLEN) TYPE(*CHAR) LEN(4)
    DCL VAR(&SPLFNAME)  TYPE(*CHAR) LEN(10)
    DCL VAR(&JOBNAME)   TYPE(*CHAR) LEN(26)
    DCL VAR(&SPLFNBR)   TYPE(*CHAR) LEN(4)
    DCL VAR(&PAGECHAR)  TYPE(*CHAR) LEN(4)

    CHGVAR VAR(%BIN(&RCVVARLEN)) VALUE(2048)

    /**********************************************************+
     * DETERMINE THE LAST SPOOLED FILE CREATED IN THIS JOB    *+
     **********************************************************/

    CALL PGM(QSPRILSP) PARM(&RCVVAR             +
                            &RCVVARLEN          +
                            'SPRL0100'          +
                            X'0000000000000000' )

    CHGVAR VAR(&SPLFNAME) VALUE(%SST(&RCVVAR  9 10))
    CHGVAR VAR(&JOBNAME)  VALUE(%SST(&RCVVAR 19 26))
    CHGVAR VAR(&SPLFNBR)  VALUE(%SST(&RCVVAR 45  4))


    /**********************************************************+
     * RETRIEVE THE SPOOLED FILE ATTRIBUTES                   *+
     **********************************************************/

    CALL PGM(QUSRSPLA) PARM(&RCVVAR             +
                            &RCVVARLEN          +
                            'SPLA0100'          +
                            &JOBNAME            +
                            ' '                 +
                            ' '                 +
                            &SPLFNAME           +
                            &SPLFNBR            +
                            X'0000000000000000' )

    CHGVAR VAR(&PAGECHAR) VALUE(%SST(&RCVVAR 141 4))
    CHGVAR VAR(&NUMPAGES) VALUE(%BIN(&PAGECHAR))

ENDPGM
---------------------------------------------------------------------------
----

[解説]
つまり スプール・ファイル名, ジョブ名, スプール番号がわかれば
API : QUSRSPLA だけで
    CALL PGM(QUSRSPLA) PARM(&RCVVAR             +
                            &RCVVARLEN          +
                            'SPLA0100'          +
                            &JOBNAME            +
                            ' '                 +
                            ' '                 +
                            &SPLFNAME           +
                            &SPLFNBR            +
                            X'0000000000000000' )

    CHGVAR VAR(&PAGECHAR) VALUE(%SST(&RCVVAR 141 4))
    CHGVAR VAR(&NUMPAGES) VALUE(%BIN(&PAGECHAR))

のようにすればページ数 &NUMPAGES が取得できるというものです。
意外と簡単ですね。


RE:スプールファイル【御礼】 NG さん [ 3月14日(金) 10時15分 ]
> 基本的には NG さんの言われるようにPF に変換して調べることに
> なりますが API を使ってもよいというのであればと
> いうことで調べてみました。
> 
> 米国サイトでは下記のようなCLP でベージ・カウント・プログラムを作っ
ている人が
> いました。
> 
> 
>
http://iprodeveloper.com/rpg-programming/retrieve-spooled-file-page-count
> 
> PGM
> 
>      DCL VAR(&STRPAGE) TYPE(*DEC) LEN(5 0)
>      DCL VAR(&ENDPAGE) TYPE(*DEC) LEN(5 0)
> 
>      OVRPRTF FILE(PRINTER) HOLD(*YES)
>      CALL    PGM(<i>mylib/myrpgpgm</i>)
>      DLTOVR  FILE(PRINTER)
> 
>  <font color="blue">    PAGCNT  COUNT(&ENDPAGE)
>      CHGVAR  VAR(&STRPAGE) VALUE(&ENDPAGE - 1)
> 
>      CHGSPLFA FILE(PRINTER) SPLNBR(*LAST) +
>               PAGERANGE(&STRPAGE &ENDPAGE)</font>
> 
>      RLSSPLF  FILE(PRINTER) SPLNBR(*LAST)
> 
>  ENDPGM
> 
> 
> プログラムは
> 
>
http://www.pentontech.com/IBMContent/Documents/article/55320_274_PagCnt.zip
> 
> からダウンロードできるとありました。
> これをダウンロードして解凍したところ上記に含まれているCLPソースは次
のとおりです。
> 
> 
>
---------------------------------------------------------------------------
> ----
> PGM     PARM(&NUMPAGES)
> 
>     DCL VAR(&NUMPAGES)  TYPE(*DEC)  LEN(5 0)
>     DCL VAR(&RCVVAR)    TYPE(*CHAR) LEN(2048)
>     DCL VAR(&RCVVARLEN) TYPE(*CHAR) LEN(4)
>     DCL VAR(&SPLFNAME)  TYPE(*CHAR) LEN(10)
>     DCL VAR(&JOBNAME)   TYPE(*CHAR) LEN(26)
>     DCL VAR(&SPLFNBR)   TYPE(*CHAR) LEN(4)
>     DCL VAR(&PAGECHAR)  TYPE(*CHAR) LEN(4)
> 
>     CHGVAR VAR(%BIN(&RCVVARLEN)) VALUE(2048)
> 
>     /**********************************************************+
>      * DETERMINE THE LAST SPOOLED FILE CREATED IN THIS
 JOB    *+
>      **********************************************************/
> 
>     CALL PGM(QSPRILSP) PARM(&RCVVAR             +
>                             &RCVVARLEN 
         +
>                             'SPRL0100' 
         +
>                             
X'0000000000000000' )
> 
>     CHGVAR VAR(&SPLFNAME) VALUE(%SST(&RCVVAR  9 10))
>     CHGVAR VAR(&JOBNAME)  VALUE(%SST(&RCVVAR 19 26))
>     CHGVAR VAR(&SPLFNBR)  VALUE(%SST(&RCVVAR 45  4))
> 
> 
>     /**********************************************************+
>      * RETRIEVE THE SPOOLED FILE ATTRIBUTES       
            *+
>      **********************************************************/
> 
>     CALL PGM(QUSRSPLA) PARM(&RCVVAR             +
>                             &RCVVARLEN 
         +
>                             'SPLA0100' 
         +
>                             &JOBNAME  
          +
>                             ' '    
             +
>                             ' '    
             +
>                             &SPLFNAME 
          +
>                             &SPLFNBR  
          +
>                             
X'0000000000000000' )
> 
>     CHGVAR VAR(&PAGECHAR) VALUE(%SST(&RCVVAR 141 4))
>     CHGVAR VAR(&NUMPAGES) VALUE(%BIN(&PAGECHAR))
> 
> ENDPGM
>
---------------------------------------------------------------------------
> ----
> 
> [解説]
> つまり スプール・ファイル名, ジョブ名, スプール番号がわかれば
> API : QUSRSPLA だけで
>     CALL PGM(QUSRSPLA) PARM(&RCVVAR             +
>                             &RCVVARLEN 
         +
>                             'SPLA0100' 
         +
>                             &JOBNAME  
          +
>                             ' '    
             +
>                             ' '    
             +
>                             &SPLFNAME 
          +
>                             &SPLFNBR  
          +
>                             
X'0000000000000000' )
> 
>     CHGVAR VAR(&PAGECHAR) VALUE(%SST(&RCVVAR 141 4))
>     CHGVAR VAR(&NUMPAGES) VALUE(%BIN(&PAGECHAR))
> 
> のようにすればページ数 &NUMPAGES が取得できるというものです。
> 意外と簡単ですね。
> 
> 
ありがとうございます。
なるほど・・うまくできました!!
MRGAPWで別の印刷に罫線が表示されたり、違うプリンタから出力されたり、印刷が止まったり はまだ さん [ 3月18日(火) 11時48分 ]
すみません。教えてください。印刷しているときに、印刷が止まったり
違うプリンタから出力されたり、別の印刷に罫線が表示されたりします。
MRGAPWのプログラムが原因だと思います。、OVRPRTFの指定が足らないためでしょうか。
簡単ではありますが、必要なところだけ抜粋してロジックを下記に記します。
どなたかご教授いただけないでしょうか。
よろしくお願いいたします。

1.CL1
OVRPRTF FILE(QPRINT) PAGESIZE(*N 132) CPI(10) +
OUTQ(&PRT) FORMTYPE(KURADN) SECURE(*YES)
CALL PGM(RPG1) PARM(&PRT)

2.RPG1
*ENTRY PLIST
       PARM @PRT 6
       CALL 'CL2'
       PARM        @PRT

3.CL2
CALL PGM(RPG2)
MRGAPW FORMD(RPG2APW) FILE(FORMFILE) +
SPLF(QPRINT) JOB(&NBR/&USER/&JOB) +
DEV(&PRT) OUTQ(&PRT)

4.RPG2
EXCEPT MIDASI
EXCEPT MEISAI


手抜き設計 AAA さん [ 3月18日(火) 14時47分 ]
スプールの特定に疑義あり。

プリンター名 あやしい。
RE:手抜き設計 はまだ さん [ 3月18日(火) 16時2分 ]
> スプールの特定に疑義あり。
> 
> プリンター名 あやしい。
ご返事ありがとうございます。
おっしゃるところを調べてみます。
RE:手抜き設計 はまだ さん [ 3月18日(火) 18時39分 ]
> スプールの特定に疑義あり。
> 
> プリンター名 あやしい。
調べてみました。当方はRPG上にO仕様書として
プリンタファイルを指定していますが、
ほぼ全てのプログラムが
FQPRINT  O  F  132  LPRINTER
?中略?
OQPRINT  E  01
という具合にQPRINTという名前の印刷ファイル
になっていました。教材の名残でしょうか。
なので待ち行列はQPRINTで溢れています。
MRGAPWでも当然QPRINTという
ファイル名を指定しているので、本当にマージ
をしたい対象ファイルを選択できない状態に
なっているのかもしれません。
プリンタファイルの名前は別にすべきでしょうか?
大変恐縮ですがご返事いただけないでしょうか。
Qで初めては ならない。 AAA さん [ 3月18日(火) 20時50分 ]
Qは システムで予約されてるので、使ってはならない。

CRTPRTF  LIST198  ファイルを作成。

OVRPRTF で 固有名(ファイル名 と 名前は 別)を付ける。

ジョブはマルチで動いてるから、最後のQPRINTなど、当てにならない。



 
RE:Qで初めては ならない。【御礼】 はまだ さん [ 3月19日(水) 11時57分 ]
> Qは システムで予約されてるので、使ってはならない。
> 
> CRTPRTF  LIST198  ファイルを作成。
> 
> OVRPRTF で 固有名(ファイル名 と 名前は 別)を付ける。
> 
> ジョブはマルチで動いてるから、最後のQPRINTなど、当てにならない。
> 
AAA様
ありがとうございます!やってみます。
CRTOUTQでネットワークプリンタをIPで接続した時の設定内容が知りたい シャリース さん [ 3月19日(水) 21時46分 ]
お世話になります。
AS/400からプリンターセッションを立てずに
ネットワーク上のプリンターを数台接続しています。
既存の接続されているプリンターと同機種を増設する事になったのですが、
CRTOUTQのパラメータの設定値が分りません。
(当時設定した担当者が会社を去ってしまいました)

CRTOUTQ OUTQ(QUSRSYS/PXXXXXX) RMTSYS(*INTNETADR) RMTPRTQ(LPT1)
AUTOSTRWTR(1) CNNTYPE(*IP) DESTTYPE(*OTHER) MFRTYPMDL(??????) INTNETADR
('###.##.#.###') AUT(*ALL)

こんな感じだったと思うのですが、次のパラメータに何を設定していたか分りません。
MFRTYPMDL、WSCST    

そこで質問です。
CRTOIUTQで作成した上記パラメータの内容を確認する方法は無いでしょうか。
CHGOUTQで中身を確認しても上記のパラメータが表示されません。
DSPOUTQなんてコマンドも無いようです。
RE:CRTOUTQでネットワークプリンタをIPで接続した時の設定内容が知りたい @445 さん [ 3月20日(木) 13時39分 ]
WRKOUTQD OUTQ(QUSRSYS/PXXXXXX) OUTPUT(*PRINT)

で確認できます。

> お世話になります。
> AS/400からプリンターセッションを立てずに
> ネットワーク上のプリンターを数台接続しています。
> 既存の接続されているプリンターと同機種を増設する事になったのですが、
> CRTOUTQのパラメータの設定値が分りません。
> (当時設定した担当者が会社を去ってしまいました)
> 
> CRTOUTQ OUTQ(QUSRSYS/PXXXXXX) RMTSYS(*INTNETADR) RMTPRTQ(LPT1)
> AUTOSTRWTR(1) CNNTYPE(*IP) DESTTYPE(*OTHER) MFRTYPMDL(??????) INTNETADR
> ('###.##.#.###') AUT(*ALL)
> 
> こんな感じだったと思うのですが、次のパラメータに何を設定していたか分りません。
> MFRTYPMDL、WSCST    
> 
> そこで質問です。
> CRTOIUTQで作成した上記パラメータの内容を確認する方法は無いでしょうか。
> CHGOUTQで中身を確認しても上記のパラメータが表示されません。
> DSPOUTQなんてコマンドも無いようです。
RE:ありがとうございます。解決しました。 シャリース さん [ 3月21日(金) 8時51分 ]
@445さん、ご教示ありがとうございます。
WRKOUTQDというコマンドの存在を知りませんでした。
私が知りたい情報は全て網羅されていましたので解決しました。
助かりました。
Windows 2000のPCでRTOPCBコマンド実行 オリゼー さん [ 3月24日(月) 17時30分 ]
いつも拝見させて頂いています。

Windows 2000のPCの任意のフォルダに
.dtf(System i からのデータ転送ファイル)のファイルと
この.dtfファイルをコマンド「RTOPCB」で呼び出す.batファイルを
用意したのですが、
実行したところコマンド自体が認識されない様なエラーが発生しました。


OS:V5R4
クライアントアクセス:V5R4
ローカルPCのOS:Windows 2000

そもそもWindows 2000でコマンド「RTOPCB」は使用できないのでしょうか?
尚、.dtfファイルを開いて直接データ転送ができる事は確認しました。
(ファイル形式「BIFF 8「Excel 8」)

どなたか上記について御存知の方がいらっしゃいましたら
レスを御願いします。

宜しく御願い致します。
RE:Windows 2000のPCでRTOPCBコマンド実行 IKD さん [ 3月24日(月) 22時20分 ]
「、.dtfファイルを開いて直接データ転送ができる事は確認しました。」ということですので
拡張子「.dtf」は正しく RTOPCB に関連づけられているようです。

.bat ファイルで軌道させると「コマンド自体が認識されない様なエラー」
(このようなご質問のときには発生したエラー・メッセージを正確に記述されることが
必要です。) が発生したということですのでコマンドが見つからないのが
原因であれば、PATH 設定の記述に RTOPCBの存在しているフォルダーが記述されていないことにな
ります。

つまり System i のライブラリー・リストが正しく設定されていないのと同じことになります。
Windows では Microsoft は DOSコマンドは廃止方向にありますので Windows により
PATH記述を探し出すのは結構、面倒ですが Windows の場合でも DOSモードでのコマンドは
PATH 記述に従ってコマンドの場所が検索されます。
つまりこれは System i のライブラリー・リストに従ってコマンドが検索されるのと同じ原理です


Windows の場合は Appの導入とともに PATH記述も追加されてユーザーはあまり意識することが
ありませんが何らかのミスで PATH コマンドが正しくなくなると
ご指摘のような問題が発生します。

正確なエラー・メッセージの詳細が不明ですので、もちろんこれ以外が原因である可能性もあります

RE:Windows 2000のPCでRTOPCBコマンド実行 オリゼー さん [ 3月25日(火) 9時33分 ]
早速のレスありがとうございます。


> .bat ファイルで軌道させると「コマンド自体が認識されない様なエラー」
> (このようなご質問のときには発生したエラー・メッセージを正確に記述されることが
> 必要です。) が発生したということですのでコマンドが見つからないのが
> 原因であれば、PATH 設定の記述に RTOPCBの存在しているフォルダーが記述されていないことにな
> ります。

 失礼しました。エラー・メッセージは

 「'RTOPCB' は、内部コマンドまたは外部コマンド、
  操作可能なプログラムまたはバッチ ファイルとして認識されていません。」

 という内容でした。

> つまり System i のライブラリー・リストが正しく設定されていないのと同じことになります。
> Windows では Microsoft は DOSコマンドは廃止方向にありますので Windows により
> PATH記述を探し出すのは結構、面倒ですが Windows の場合でも DOSモードでのコマンドは
> PATH 記述に従ってコマンドの場所が検索されます。
> つまりこれは System i のライブラリー・リストに従ってコマンドが検索されるのと同じ原理です
> 。
> 
> Windows の場合は Appの導入とともに PATH記述も追加されてユーザーはあまり意識することが
> ありませんが何らかのミスで PATH コマンドが正しくなくなると
> ご指摘のような問題が発生します。
> 
> 正確なエラー・メッセージの詳細が不明ですので、もちろんこれ以外が原因である可能性もあります
> 。

 .batファイルとdtfファイルは同フォルダにあり、

 RTOPCB /S xxxxxxx.dtf
 (xxxxxxはファイル名)

 と.batファイル内ではRTOPCBコマンドを記述してます。

 絶対パスで上手くいくか、もう1度試してみたいと思います。

他にもお気づきの点がありましたら、御指摘頂ければ幸いです。

宜しく御願い致します。
System i ナビゲーターのSQLスクリプト実行(cwbundbs.exe) オリゼー さん [ 4月1日(火) 17時49分 ]
いつも拝見させて頂いています。

System i ナビゲーター(iSeries ナビゲーター)から
起動できるSQLスクリプト(cwbundbs.exe)について、
起動できなくなる事象が発生しました。

対象PCのイベントビューア?等を見ても、
予期せぬエラーとしかメッセージが出ておらず、
何が問題なのか、わからない状況です。

過去に御存知の方いらっしゃいましたら、
御教授頂きたいと思います。

対象PC  :Windows 7(32bit)
クライアント:V6R1
サーバー  :V5R4

以上、宜しく御願い致します。
RPGで表示した画面を開いた状態で、×でエミュレータを閉じてしまった場合 miyo さん [ 4月2日(水) 13時48分 ]
RPGで表示した画面を開いた状態で、×でエミュレータを閉じてしまった場合の、表示装置に関
する質問です。

×で中断してしまった端末を、再起動したときに出る「対話式ジョブの回復の試み」の画面で、
「1. 前の対話式ジョブの回復の試み」を選択した場合、「セッションまたは入出力装置エラ
ー」が出てしまいます。

表示装置(DSPF)か、RPG側かで、エミュレータが閉じられてしまったことを感知できるような
キーワードがありましたら、教えてください。
2バイト文字のあいまい検索 hamm さん [ 4月3日(木) 13時16分 ]
マスタ照会の検索画面をDDSとRPGで作っています。
マスタというのは品名や取引先等です。

あいまい検索がしたく、1バイト文字ならそれぞれの桁を
SCANしてできるのですが、2バイト文字(漢字やひらがな)
のやり方がわかりません。
どなたかご教授いただけないでしょうか。

RPGでscanを試したり、CLでOPNQRYFの%WLDCRDを
試してみたり色々調べてやってみましたが、うまくいきません。
2バイト文字の両端にあるシフト文字が邪魔をするのだと思います。

QRY400にある LIKE '%入力項目%'のようなことがやりたいのです。
入力項目は変数です。よろしくお願いいたします。
探索 AAA さん [ 4月3日(木) 17時4分 ]
RPG 1行では、無理です。
すべて1バイト文字として扱う。 
まず 探索語を提示します。
(長さ1の配列に並べる。OEOFは除去。)

次に開始1バイトの一致する場所を見つける。
次のバイトをそれぞれ比較する。
探索語の長さまで続ける。



 
RE:探索 IKD さん [ 4月4日(金) 9時39分 ]
漢字で検索しようとすると確かに両端のシフト文字が邪魔になりますね。

これを避けるには検索のために文字を入力するフィールドを
TYPE G (グラフイック・フィールド) として定義してみては
どうでしょうか ?
G フィールドであればシフト文字のない漢字文字列となります
ので漢字を自由に検索することができます。

この方法なら簡単に解決できますね。
RE:探索 INAX さん [ 4月17日(木) 9時14分 ]
以下のように実装してます

例)
検索文字を入力する箇所 10バイト
検索対象 60バイトとします

STEP1:検索入力文字・検索対象から0E、0Fを取って左詰めします。
検索入力文字でしたら、1バイトの長さで10テーブルの配列を用意して
DOで10回 回してOE,OF以外を配列にいれます。
検索対象も同じことをします。

STEP2:配列を1バイトづつ比較
検索入力文字の配列をDOで回して、検索対象文字の配列と1バイトづつ比較して
完全一致したら、DOループをLEAVEする。

他にも方法はあると思いますが、%あああ%のような検索は、
上記のような手順で実装可能です。
がんばってみてください

RE:探索 hamm さん [ 4月30日(水) 19時11分 ]
AAA様 IKD様 INAX様

ご返事が大変遅くなり申し訳ありません。
頑張ってやってみます。
皆さまご丁寧にありがとうございました!



> マスタ照会の検索画面をDDSとRPGで作っています。
> マスタというのは品名や取引先等です。
> 
> あいまい検索がしたく、1バイト文字ならそれぞれの桁を
> SCANしてできるのですが、2バイト文字(漢字やひらがな)
> のやり方がわかりません。
> どなたかご教授いただけないでしょうか。
> 
> RPGでscanを試したり、CLでOPNQRYFの%WLDCRDを
> 試してみたり色々調べてやってみましたが、うまくいきません。
> 2バイト文字の両端にあるシフト文字が邪魔をするのだと思います。
> 
> QRY400にある LIKE '%入力項目%'のようなことがやりたいのです。
> 入力項目は変数です。よろしくお願いいたします。
> 
RE:探索 hamm さん [ 7月14日(月) 11時31分 ]
AAA様 IKD様 INAX様

ご連絡遅くなり申し訳ありません。
最初はまったく意味が分かりませんでしが、
皆様の文書を解釈しながらようやく
完成することができました。なんというか
本当に文書通りのことをやったらできました。
皆さまご丁寧にありがとうございました!
RE:探索 kkk さん [ 8月7日(月) 11時5分 ]
質問者様と同じ事がしたく悩んでいます。
'0E、0Fを取って左詰め'のやり方がわかりません。

どなたかやり方を教えていただけないでしょうか?
ジョブメッセージ待ち行列の折り返し ノブちゃん さん [ 4月17日(木) 22時46分 ]
お世話になります。

”ジョブメッセージ待ち行列 ??? で折り返しがあった。”

とたくさんのメッセージを出している処理があります。

これを表示しない様にする事は可能でしょうか?

宜しくお願い致します。
RE:ジョブメッセージ待ち行列の折り返し AAA さん [ 4月24日(木) 16時1分 ]
ジョブメッセージ待ち行列があふれたの意です。
自動拡張するから、このようなメッセージは変です。

あえて、拡張しないよう、手作りしたのかも。
一度削除すれば、再生成される。
スプールファイル ホールド処理 NG さん [ 4月25日(金) 19時52分 ]
下記のように、
PRTF名 NA3095Kにホールドをかけたいのですが
うまくいきません。

CALL       PGM(NG3095)                                  

CHGVAR     VAR(&FILE1) VALUE('NA3095K')                 
OVRPRTF    FILE(&FILE1) HOLD(*YES)                      
MRGAPW     FORMD(NA3095K) FILE(NIKALIBO/KEISENF) +      
             SPLF(QSYSPRT) SPLNBR(*LAST) OUTSPLF(*FRMD) 
CALL       PGM(NG3901C) PARM(&FILE1 ©)              

APWではうまくいかない??
よろしくお願いします。
RE:スプールファイル ホールド処理 まめたろぅ さん [ 4月26日(土) 14時2分 ]
> 下記のように、
> PRTF名 NA3095Kにホールドをかけたいのですが
> うまくいきません。
> 
> CALL       PGM(NG3095)                   
               
> 
> CHGVAR     VAR(&FILE1) VALUE('NA3095K')           
      
> OVRPRTF    FILE(&FILE1) HOLD(*YES)              
        
> MRGAPW     FORMD(NA3095K) FILE(NIKALIBO/KEISENF) +      
>              SPLF(QSYSPRT) SPLNBR(*LAST) OUTSPLF(*FRMD) 
> CALL       PGM(NG3901C) PARM(&FILE1 ?)          
    
> 
> APWではうまくいかない??
> よろしくお願いします。

APWの場合はPRTF QPAPWPRT が使用されます。
OVRPRTF FILE(QPAPWPRT) HOLD(*YES)
のように指定してみて下さい。
RE:スプールファイル ホールド処理 【御礼】 NG さん [ 4月28日(月) 9時56分 ]
返事が遅くなり、大変申し訳ありません。

> 下記のように、
> PRTF名 NA3095Kにホールドをかけたいのですが
> うまくいきません。
> 
> CALL       PGM(NG3095)                   
               
> 
> CHGVAR     VAR(&FILE1) VALUE('NA3095K')           
      
> OVRPRTF    FILE(&FILE1) HOLD(*YES)              
        
> MRGAPW     FORMD(NA3095K) FILE(NIKALIBO/KEISENF) +      
>              SPLF(QSYSPRT) SPLNBR(*LAST) OUTSPLF(*FRMD) 
> CALL       PGM(NG3901C) PARM(&FILE1 ?)          
    
> 
> APWではうまくいかない??
> よろしくお願いします。

APWの場合はPRTF QPAPWPRT が使用されます。
OVRPRTF FILE(QPAPWPRT) HOLD(*YES)
のように指定してみて下さい。

ありがとうございます。大変助かりました。
その後、該当のスプールファイルを解放するのに
なぜか勘違いして
DLTOVR コマンドでやってまして・・・(いらない時間をくった・・)
RLSSPLFコマンドで無事できました。
大変勉強になりました。
ありがとうございました。
QEZJOBLOGの格納について ターク さん [ 5月2日(金) 10時22分 ]
はじめまして。
出力待ち行列のQEZJOBLOGに格納される期間なのですが、現在約1週間前くらいまでしか蓄積され
ず、その前のものは削除されてるようなのですが、もっと長い期間蓄積するように設定を変更するこ
とは可能なのでしょうか?
ご回答宜しくお願い致します。
RE:QEZJOBLOGの格納について @445 さん [ 5月2日(金) 18時2分 ]
GO CLEANUP
から
1.終結処理オプションの変更
で保存日数が7になっていると思われますのでお好きな日数に変更されてはどうでしょ。



> はじめまして。
> 出力待ち行列のQEZJOBLOGに格納される期間なのですが、現在約1週間前くらいまでしか蓄積さ

> ず、その前のものは削除されてるようなのですが、もっと長い期間蓄積するように設定を変更す
るこ
> とは可能なのでしょうか?
> ご回答宜しくお願い致します。
RE:QEZJOBLOGの格納について ターク さん [ 5月10日(土) 11時46分 ]
@445さん
お返事遅くなりました。
GOメニューにあったんですね!助かりました。ありがとうござました。

> GO CLEANUP
> から
> 1.終結処理オプションの変更
> で保存日数が7になっていると思われますのでお好きな日数に変更されてはどうでしょ。
> 
> 
> 
> > はじめまして。
> > 出力待ち行列のQEZJOBLOGに格納される期間なのですが、現在約1週間前くらいまでしか蓄積

> れ
> > ず、その前のものは削除されてるようなのですが、もっと長い期間蓄積するように設定を変更

> るこ
> > とは可能なのでしょうか?
> > ご回答宜しくお願い致します。
COBOLでのExcelデータ作成のコーディング方法を教えてください。 新米 さん [ 5月14日(水) 10時42分 ]
COBOLプログラムでExcelの制御・項目名・項目値の各データをファイルに出力し、データ転送で拡
張子をxlsで受け取ることでExcel(一覧表的な)を作成しています。
Excel2003ではよいのですが2013だとエラーメッセージ(レコード形式と拡張子があっていません

が表示されてしまいます。
解決方法をご存知の方はお答えをお願いします

制御情報を 
ID;PWXL
B;Y10;X10  (縦軸・横軸の行と列の数 Y:縦軸 X:横軸)
F;W1 1 12 (1つ目横軸のシート幅は12)
F;W2  2  10  (2つ目横軸のシート幅は10)

シートデータを
C;Y行ナンバー;X列ナンバー;Kデータ

最後に
E
を出力します。

CSV形式をBIF4等で受けてもできるのですが項目名が付かないです。

こんな説明しかできないのですが、よろしくお願いいたします。
物理ファイルの損傷 オリゼー さん [ 5月25日(日) 15時5分 ]
いつも拝見させて頂いています。

システムで使用している物理ファイルを格納したライブラリーを
毎日SAVFに保管してます。

ところが、保管している1つのある物理ファイルについて
下記のメッセージが発行され、SAVFへの保管が失敗していました。

「XXXXLIB のファイル AAAAA メンバー AAAAA に 全部 の損傷がある。
 VLOG は 010016EC です。」

さらに、上記の損傷したと言われる物理ファイルを
使用しているプログラムがその後、ことごとく異常終了しました。
それぞれのプログラムで出力したジョブ・ログを見ても、
上記と同じメッセージが発行されていました。



システムログ(QHST)やシステムメッセージ待ち行列(QSYSOPR)
を調べても、損傷の原因となる様なメッセージは見つからず、
途方に暮れています。


そもそも、どの様な時に物理ファイルが損傷するのか、
わかる方がいらっしゃいましたらアドバイス頂きたいと思います。

宜しく御願い致します。
RE:物理ファイルの損傷 ASD さん [ 5月25日(日) 20時17分 ]
停電でよく発生します。
原因など調べても、すでに起きた事は、変えられません。

DLTF して RSTOBJ すれば復旧します。
ただし、最新データのは無くなります。
RE:物理ファイルの損傷 オリゼー さん [ 5月30日(金) 21時55分 ]
レスありがとうございます。

仰る通り、別途保管していたものから復元はしました。

現場では、原因追及は特にしなくて良く、
SAVFを世代化して、長期不在時にも対応できるようにしよう
という話になりましたので今困っている訳でありませんが、
気になったので投稿した次第です。

以上です。



DB2→DB2/400へ int さん [ 5月26日(月) 16時30分 ]
お世話になっております。

WINDOWS上にあるDB2サーバーのデータをAS400上のDB2/400に移行したいと考え
ております。

CCSIDや文字コードが不勉強なため、調べているのですが
お分かりになる方教えてください。

DB2のほうはS-JISです。AS400上はCCISDが5026です。
DB2のデータを移行するにあたり、一番手のかからない方法を教えていただき
たいと思います、
DB2にはBLOB型のデータもあります。




IBM iからのデータ転送に関して Why さん [ 6月4日(水) 15時1分 ]
現在AS400のデータ転送でCSV/EXCELでファイルに書き出しています。
これが少し問題でフィールド異る列にも関わらずA列にまとまってしまうのです
そのためエクセルVBでのデータ取り込みが出来ないのです。

どこかで設定かえれるのでしょうか?.
RE:IBM iからのデータ転送に関して TIM さん [ 6月5日(木) 17時22分 ]
具体的にどのようにデータ転送されているのかわかりませんが、
CLプログラムにてCPYTOIMPFコマンドを使用しCSVファイル形式で出力すればいいのでは。。。

RE:IBM iからのデータ転送に関して Why さん [ 6月10日(火) 8時41分 ]
> 具体的にどのようにデータ転送されているのかわかりませんが、
> CLプログラムにてCPYTOIMPFコマンドを使用しCSVファイル形式で出力すれば
いいのでは。。。
返信ありがとう御座います。
返事遅れてすみません。
CLだと個人ユーザーのPCに決め撃ちで書き出す事は出来るのですけど、複数で
使用しているものが存在しています。
前者は提案頂いた内容で良いかと思いますけど、後者が中々対応し辛くなると
思うのです。
RE:IBM iからのデータ転送に関して IKD さん [ 6月7日(土) 10時36分 ]
Excel にデータを出力するのであれば Chicago が最も簡単で
使いやすい製品です。
価格も極めてリーズナブルですから試供版をお試しください。

http://www.officequattro.com/jpn/software/contents/chicago.html
RE:IBM iからのデータ転送に関して ASDa さん [ 6月7日(土) 20時50分 ]
> 現在AS400のデータ転送でCSV/EXCELでファイルに書き出しています。
> これが少し問題でフィールド異る列にも関わらずA列にまとまってしまうのです
> そのためエクセルVBでのデータ取り込みが出来ないのです。
> 
> どこかで設定かえれるのでしょうか?.
RE:IBM iからのデータ転送に関して ASD さん [ 6月7日(土) 20時57分 ]
エクセルVBでは、CSV一行が、1フィールドで取り込まれる。
後は、エクセルVBを、駆使して、フィールドに分解する。
RE:IBM iからのデータ転送に関して Why さん [ 6月10日(火) 8時48分 ]
> エクセルVBでは、CSV一行が、1フィールドで取り込まれる。
> 後は、エクセルVBを、駆使して、フィールドに分解する。
> 
確かに仰るとおりですね
VBで分解試してみます

アドバイスありがとう御座います
CSVの解読は難しい  ASD さん [ 6月10日(火) 17時27分 ]
ずるい方法が、あります。
行番号 CRLF 桁番号 CRLF  内容 CRLF  
以下繰り返す。
こんなファイルで 受け渡しをする。
   
RE:CSVの解読は難しい  hatsujiro さん [ 6月12日(木) 11時39分 ]
CliantAccessが入っている環境ならば、
EXCEL VBA+ADO を使えば、CopyFromRecordset で抽出結果をSheetにざっくり
と吐き出してくれると思います。

こんな感じで、Google検索すると出てくると思います。
Dim objADOcn As New ADODB.Connection
Dim objRst As New ADODB.Recordset
Dim Newbook As Workbook
Dim Newsheet As Worksheet
objADOcn.Open "Provider=IBMDA400;Data Source=***.***.***.***", "user",
"pass"
strSQL = "SELECT * FROM MYLIB.MYTBL ......."
Set objRst = objADOcn.Execute(strSQL)
Set Newsheet = Newbook.Worksheets(1)
Newsheet.Range("A2").CopyFromRecordset objRst
phpで画像が出ない hatsujiro さん [ 6月10日(火) 9時17分 ]
Zend Server SE を3年ほど前にインストール後ずっと使っていなかったのです
が、phpを使ってみようと思い立ち動かしてみました。

OS400上のデータを取得して表示するまではなんとか動いたのですが、使いた
かったイメージ表示がうまく動作しません。

なお、phpinfoを見ると、GDライブラリも入っていることになっています。
------------------------------------
GD Support enabled
GD Version bundled (2.0.34 compatible)
GIF Read Support enabled
GIF Create Support enabled
JPEG Support enabled
libJPEG Version 6b
PNG Support enabled
libPNG Version 1.2.31
WBMP Support enabled
XBM Support enabled 

また、php.iniの中で、
extension=php_gd2.dll
という行がコメントアウトされていたので、これも外してみましたが
動作はしませんでした。

ネット上で拾ってきた下記のようなソースで使っている関数も標準的なものだ
と思うのですが、根本的に動作環境として必要なものは何かあるのでしょうか?

Zend Server:5.0.1
PHP:5.3.1
OS400:V6R1

<HTML>
<HEAD>
<TITLE></TITLE>
</HEAD>
<BODY>
<IMG src="graph.php" width="200" height="200">
</BODY>
</HTML>

graph.php
-------------------------------------------------
<?php header("Content-Type: image/jpeg"); ?>
<?php
// 画像のサイズ
$im = imagecreate(200,200); // キャンパスの大きさ
$ix = 100; // 中心のx座標!
$iy = 100; // 中心のy座標!
$iw = 200; // 画像の横幅!
$ih = 200; // 画像の縦幅!
$rs = 270; // 開始角度(上:270)!

// データ
$data[0] = 80;
$data[1] = 50;
$data[2] = 30;
$data[3] = 20;
$data[4] = 10;

// 色の定義(データの数だけ必要)
$white = imagecolorallocate($im,255,255,255);
$red = imagecolorallocate($im,255,0,0);
$yellow = imagecolorallocate($im,255,255,0);
$lime = imagecolorallocate($im,0,255,0);
$cyan = imagecolorallocate($im,0,255,255);
$blue = imagecolorallocate($im,0,0,255);
$cd = array($red,$yellow,$lime,$cyan,$blue);

// 合計値の計算
$length = count($data);
$m=0;
for($i=0; $i<=$length; $i++) {
  $m += $data[$i];
}

// 画像の描画
for($i=0; $i<$length; $i++) {
  $st = $rs;
  $rs += $data[$i] / $m * 360;
  if($rs >= 360) $rs -= 360;
  imagefilledarc($im,$ix,$iy,$iw,$ih,$st,$rs,$cd[$i],4);
}
imagejpeg($im);
?>
excelの小数以下がゼロ表示される なん。 さん [ 6月16日(月) 15時4分 ]
お世話になっております。
現在excelからAS/400にODBCでデータ接続しています。
WIN-XP+iAccessV5.4.0+excel2010で問題のない小数以下の表示が
WIN7+iAccessV7.1.0+excel2010で小数以下がゼロ表示されてしまいます。
対処法をご教授ください。
よろしくお願いします。
RE:excelの小数以下がゼロ表示される 村田 さん [ 6月17日(火) 10時36分 ]
> 現在excelからAS/400にODBCでデータ接続しています。
> WIN-XP+iAccessV5.4.0+excel2010で問題のない小数以下の表示が
> WIN7+iAccessV7.1.0+excel2010で小数以下がゼロ表示されてしまいます。

上記と同じ環境がありませんが、
WIN8.1+iAccessV7.1.0+excel2013だと再現しませんでした。
ゾーン10進のデータタイプフィールド(7S2)の値が
10.00、10.10の時、
エクセル上では10.00⇒10、10.10⇒10.1で表示されました。
念のため、パック10進(7P2)でもテストしましたが、同じ結果でした。
#10.00⇒10.00になる、という事ですよね?

参考になれば。
RE:excelの小数以下がゼロ表示される なん。 さん [ 6月17日(火) 11時46分 ]
村田さん、レスありがとうございます。

すいません。説明不足でした。
12.34→12.00と小数以下が切り捨てされてゼロ表示されます。

しかし小数が正しく表示されるマクロもあります。
該当のデータ接続のSQLが怪しいのかと今、格闘中です。
RE:excelの小数以下がゼロ表示される なん。 さん [ 6月18日(水) 11時50分 ]
iAccessV7.1.0でのデータ転送で小数が切り捨てられゼロになることはなかったです。

マイクロソフトの見解では特に事例はなくiAccess V7.1.0側の問題を疑ってくださいとのこ
と。
RE:excelの小数以下がゼロ表示される なん。 さん [ 6月26日(木) 12時54分 ]
> お世話になっております。
> 現在excelからAS/400にODBCでデータ接続しています。
> WIN-XP+iAccessV5.4.0+excel2010で問題のない小数以下の表示が
> WIN7+iAccessV7.1.0+excel2010で小数以下がゼロ表示されてしまいます。
> 対処法をご教授ください。
> よろしくお願いします。

EXCELの抽出SQL部の記述を直したら現象回避しました。
バージョンアップしたら対応していない記述だったようです。お騒がせしました。
RE:excelの小数以下がゼロ表示される AS400困る さん [ 9月10日(水) 9時28分 ]
> > お世話になっております。
> > 現在excelからAS/400にODBCでデータ接続しています。
> > WIN-XP+iAccessV5.4.0+excel2010で問題のない小数以下の表示が
> > WIN7+iAccessV7.1.0+excel2010で小数以下がゼロ表示されてしまいます。
> > 対処法をご教授ください。
> > よろしくお願いします。
> 
> EXCELの抽出SQL部の記述を直したら現象回避しました。
> バージョンアップしたら対応していない記述だったようです。お騒がせしました。

同じ症状かわかりませんが、WindowsServer2008 + SQLServer2005に
AS400をiAccess7.1のODBC経由リンクサーバーとして接続しています。

SQLでデータを取り出したところ、同じように小数点以下が切り捨てされて
データができてしまい困っています。

どのようなSQLで回避出来たのか教えてただけたら幸いです。

私の場合は
SELECT
 TANKA
FROM [AS400].[*****].[ライブラリ名][TANKAMAS];

でSQLを実行すると

98.53 が 98.00
6.28 が 6
となっていまいます。
  
RE:excelの小数以下がゼロ表示される AS400困る さん [ 10月28日(火) 11時17分 ]
> > > お世話になっております。
> > > 現在excelからAS/400にODBCでデータ接続しています。
> > > WIN-XP+iAccessV5.4.0+excel2010で問題のない小数以下の表示が
> > > WIN7+iAccessV7.1.0+excel2010で小数以下がゼロ表示されてしまいます。
> > > 対処法をご教授ください。
> > > よろしくお願いします。
> > 
> > EXCELの抽出SQL部の記述を直したら現象回避しました。
> > バージョンアップしたら対応していない記述だったようです。お騒がせしました。
> 
> 同じ症状かわかりませんが、WindowsServer2008 + SQLServer2005に
> AS400をiAccess7.1のODBC経由リンクサーバーとして接続しています。
> 
> SQLでデータを取り出したところ、同じように小数点以下が切り捨てされて
> データができてしまい困っています。
> 
> どのようなSQLで回避出来たのか教えてただけたら幸いです。
> 
> 私の場合は
> SELECT
>  TANKA
> FROM [AS400].[*****].[ライブラリ名][TANKAMAS];
> 
> でSQLを実行すると
> 
> 98.53 が 98.00
> 6.28 が 6
> となっていまいます。
>

自己解決しました。

iAccessのサービスパックを当てることにより
ODBCドライバーのバージョンが13.00.08.00に上がり
上記不具合は修正されました。

単純なバグだったですね。
マスター内のフィールドを42Oから52O拡張させたいのですが?  平野 さん [ 6月24日(火) 20時9分 ]
質問 

 マスター内のフィールドを42Oから52O拡張させたいのですが? 

   DDSのフィールドを拡張することで 

  RPGプログラムも修正する必要があります 

1マスタ及びマスタの論理ファイル及びフィールドが使われている 

   PGMだけを抽出する方法を教えてください 

2上記1の中からオブジェクトの最終使用日 一年以内 使用日数カウント 0以外のものを抽出して
一括してリストする方法 または一括ファイルへの書き出す方法を教えてください。 
RE:マスター内のフィールドを42Oから52O拡張させたいのですが?  IKD さん [ 6月24日(火) 22時45分 ]
http://www.as400-net.com  の 
Tools にある「4. XREFPGM プログラム相互参照」を使用すれば
そのマスターファイルを使用している PGM や Query もリストすることが
できます。

さらに同じ Tools の「5. CHGFMT 物理ファイル様式の変更」を利用すれば
物理ファイルをその従属論理ファイルも含めて新しい DDSソースのとおりに
変更することができます。

つまり CHGFMT でマスターファイルを変更して関連するプログラムを
XREFPGM でリストしていおいたものを再コンパイルすればよい、ということに
なります。

ただし Toolsを参照するにはメンバー登録が必要です。
RE:マスター内のフィールドを42Oから52O拡張させたいのですが?  平野 さん [ 6月25日(水) 9時34分 ]
Tools を使わない方法はありませんか???

> http://www.as400-net.com  の 
> Tools にある「4. XREFPGM プログラム相互参照」を使用すれば
> そのマスターファイルを使用している PGM や Query もリストすることが
> できます。
> 
> さらに同じ Tools の「5. CHGFMT 物理ファイル様式の変更」を利用すれば
> 物理ファイルをその従属論理ファイルも含めて新しい DDSソースのとおりに
> 変更することができます。
> 
> つまり CHGFMT でマスターファイルを変更して関連するプログラムを
> XREFPGM でリストしていおいたものを再コンパイルすればよい、ということに
> なります。
> 
> ただし Toolsを参照するにはメンバー登録が必要です。
RE:マスター内のフィールドを42Oから52O拡張させたいのですが?  村田 さん [ 6月25日(水) 16時51分 ]
> Tools を使わない方法はありませんか???

1.
DSPPGMREF PGM(LIB/*ALL) OUTPUT(*OUTFILE) OBJTYPE(*ALL) OUTFILE(QTEMP/REF)
※LIBには、コンパイルされたオブジェクトが入っているライブラリを指定してください。

上記のコマンドでプログラムが参照しているファイルやプログラムの一覧がQTEMP/REFに落ちます
。※「参照オブジェクト」というフィールドです。
オブジェクトタイプを*FILEで絞れば、参照しているファイルが選択できると思います。

2.
DSPOBJD OBJ(LIB/*ALL) OBJTYPE(*PGM) OUTPUT(*OUTFILE) OUTFILE(QTEMP/OBJ)
この中の「最終使用日」「使用日数カウント」が該当すると思いますが、
コンパイルすると初期化されるので注意が必要です。
RE:マスター内のフィールドを42Oから52O拡張させたいのですが?  ASD さん [ 6月25日(水) 10時58分 ]
要、不要の基準が間違ってます。

全プログラムを再コンパイルする。
最近のASは早いから、1000本でも、1時間程度です。

セッションのフリーズ 秀信 さん [ 6月24日(火) 23時21分 ]
お世話になります。
PCを変更してから複数のセッションでソース検索をした際や
重い処理を行なった際などに実行中のままセッションが固まってしまいます。
※ そうなると全てのセッションが固まってしまいます。
何か理由が分かる方はいませんか?
宜しくお願い致します。

P.comのバージョン 5.9
CAのバージョン : バージョン6、リリース1、モディフィケーションレベル0、
           サービスレベルSI42423
初心者です A.H さん [ 6月27日(金) 13時37分 ]
はじめまして
AS400を4月から勉強し始めました。

基本中の基本的なことは身に付けたつもりなのですが、、、
そこから先に進めません、、、
何をしたらいいかわからなくなり、手が止まってしまっています。

他のソースを見てやるのが一番、と言われるのですが、
見本のソースをみて、何をしたらいいのでしょうか、、、
いつも、眺めるだけで終わってしまします。

勉強をするうえでのアドバイスや順序など、
教えていただけるとありがたいです。
よろしくお願いします。

RE:初心者です LION さん [ 6月27日(金) 17時30分 ]
順序などないですね、実務で目標の実現に向けてまずは進めて行くしかないですね。
ソースを眺めていても仕方ないです。
責任をもって実務でプログラムを学んでください。


RST?? 復元わからぬ さん [ 7月9日(水) 10時27分 ]
お疲れさまです。
復元についての質問になります。

ライブラリ「1」をセーブファイル「A」に保管する。

ライブラリ「1」の幾つかのファイルにレイアウト変更がかかる。それをライブラリ「2」と呼ぶ。

ライブラリ「2」のレイアウト変更分を残したまま、ライブラリ「1」のレイアウト変更のないファ
イルのみを復元する方法が知りたく。

RSTOBJのオプションALWOBJDIFとMBROPTの組み合わせ如何で可能でしょうか?

ご教授願います。

CPYF ASD さん [ 7月10日(木) 16時20分 ]
別ライブラリーとして、復元。
ファイルなら CPYF する。
-------------------------------
出来るとしても、あやふやな処理は、しないのが、身のためです。 

RE:CPYF 復元わからぬ さん [ 7月11日(金) 11時20分 ]
別ファイルとして復元してコピーですね。
その発想にはいたれなかったので、有難うございます。

今後ともよろしくお願い申し上げます。
RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが  suzuki  さん [ 7月9日(水) 13時59分 ]
RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが コマンドが
あったら教えてくださいよろしくお願いします。
たとえば RPGプログラム100 個の中で (顧客名フィールド)を使われている
RPGプログラムX個を抽出したい。
RE:RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが  nanasi さん [ 7月9日(水) 16時26分 ]
STRPDMのオプション25で検索するのと同じイメージですか?

> RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが コマンド

> あったら教えてくださいよろしくお願いします。
> たとえば RPGプログラム100 個の中で (顧客名フィールド)を使われている
> RPGプログラムX個を抽出したい。
> 
RE:RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが  鈴木 さん [ 7月9日(水) 17時9分 ]
同じイメージでコマンドでやりたいです。
> STRPDMのオプション25で検索するのと同じイメージですか?
> 
> > RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが コマ
ンド
> が
> > あったら教えてくださいよろしくお願いします。
> > たとえば RPGプログラム100 個の中で (顧客名フィールド)を使われている
> > RPGプログラムX個を抽出したい。
> > 
RE:RPG及びCL中で使っているフィールドや言葉でRPG CLを抽出したいのですが  nanasi さん [ 7月11日(金) 11時24分 ]
FNDSTRPDMでなかったでしたっけ?
最終更新者の調べ方 NKN さん [ 7月22日(火) 15時40分 ]
お疲れさまです。

ジャーナル未処理のファイルに対して、DSPFDにて最終更新日・時刻は調べることができますが、最
終更新者はどのように調べればよいのでしょうか?

ご存知の方がいらっしゃれば教えてください。

よろしくお願いいたします。

RE:最終更新者の調べ方 IKD さん [ 7月25日(金) 17時47分 ]
ファイル別にもレコード別にも最終更新ユーザー名が自動的に記録される機能は
ありません。

そのためレコード別にプログラムによって最新更新ユーザー名、最終更新日、時刻などを
記録しておくようにすることが一般的です。
RE:最終更新者の調べ方 NKN さん [ 7月28日(月) 9時28分 ]
そうですよね。

小職が知らないだけでどこかにあるかもと思いましたが、やはりなかったのですね。

御解答有難うございます。
FTPファイル転送時の改行コードの取り方 HOS さん [ 7月23日(水) 17時42分 ]
AS400からFTP通信で、データ(dat形式)を送信したいと思っています。

受信側で受信したデータに改行文字が入らないようにしたいのですが、
そんなことは可能でしょうか?

今のところ、FTPコマンドで、ファイル転送を行うと自動的に改行文字が追加
されてしまっています。(AS400上では改行文字がないのに)

どなたか教えてください!!
バイナリー転送 ASD さん [ 7月24日(木) 13時21分 ]
ASCII形式: 
バイナリ形式:
この 二つしかないです。
dat 形式 こんなのは、ありません。


一旦IFSに書き出し @445 さん [ 7月25日(金) 12時26分 ]
CPYTOSTMF ENDLINFMT(*CR)で一旦IFSフォルダーへ書き出し
その後FTPでBIN転送すればいけそうな。

> AS400からFTP通信で、データ(dat形式)を送信したいと思っています。
> 
> 受信側で受信したデータに改行文字が入らないようにしたいのですが、
> そんなことは可能でしょうか?
> 
> 今のところ、FTPコマンドで、ファイル転送を行うと自動的に改行文字が追加
> されてしまっています。(AS400上では改行文字がないのに)
> 
> どなたか教えてください!!
> 
FTPサブコマンド NG さん [ 7月30日(水) 10時53分 ]
IBM Knowledge Centerを参照に
(https://www-01.ibm.com/support/knowledgecenter/ssw_ibm_i_61/rzaiq/rzaiqbatchftpsim.htm?lang=ja)
FTPのバッチファイルを作成しています。
PUTコマンドのパラメータの記述を知りたいのですが。

*IFSファィル(/PC/TEST.csv)をLinuxサーバーに転送
入力コマンド・ファイル
     --------------------- 
     ITSO  //ユーザー名
     ITSO  //パスワード
     NAMEFMT 1
     PUT (/PC/TEST.csv)?(LINUXサーバー) → ここの記述なのですが・・
     QUIT
手動で色々試したのですが、うまくいきません。
よろしくお願いします。
ログの追跡について MMT さん [ 7月31日(木) 9時58分 ]
お世話になります。
いつも勉強させて頂いています。
さて、ログの追跡についてお教え頂きたいことがあるのですが
あるライブラリの中身がカラッぽになっていることに気が付き、
バックアップやライブラリの最終更新日を調べると、一週間前にCLRLIB?もしくは4で削除?
されていることがわかりました。(削除される前日のバックアップを復元すると中身は入っていまし
た)
そこで、いつ、誰がどのようにしてこのライブラリの中身を消したかを調べたいのですが
DSPLOGやWRKJOBLOGなど見ましたが思いあたるようなログが見つかりませんでした。
何か調査を行えるような方法があればお教え頂きたく思います。
SAVLIB ASD さん [ 7月31日(木) 11時24分 ]
> 誰がどのようにしてこのライブラリの中身を消したかを調べたいのですが
DLTLIB だと 入れ物ごと 消えます。
たぶん SAVLIB か SAVOBJ の 消去指示で 消えた。
良くあるパターンは、犯人は自分とか。
RE:SAVLIB MMT さん [ 7月31日(木) 16時45分 ]
> たぶん SAVLIB か SAVOBJ の 消去指示で 消えた。
 SAVLIBやSAVOBJを行った形跡もないのです。
 バックアップは日々の夜間バッチで自動的に行われています。
> 良くあるパターンは、犯人は自分とか。
 最初はそれも疑いました^^; が、全く記憶にないライブラリだったもので

ありがとうございます。

 
エミュレータの画面サイズ MMT さん [ 7月31日(木) 18時33分 ]
エミュレータの画面サイズですが、通常24×80に設定をしていますが
一時的に27×132のDSPFを使用して27×132サイズを表示させることは可能でしょうか
宜しくお願いいたします
変な方法はない ASD さん [ 8月1日(金) 8時1分 ]
27.132に変更して、再接続。
RE:変な方法はない MMT さん [ 8月1日(金) 9時8分 ]
> 27.132に変更して、再接続。

ありがとうございます。
やはり一時的な変更は出来ないようですね。
27×132で構成 Bee さん [ 8月6日(水) 7時49分 ]
> エミュレータの画面サイズですが、通常24×80に設定をしていますが
> 一時的に27×132のDSPFを使用して27×132サイズを表示させることは可能でしょうか

"一時的に"の意味がちょっと不明なのですが、私はいつも "27x132" にしています。

PCOMM、CAであればディスプレイサイズを "27x132" にして接続の構成をします。
通常は "24x80" で表示されますが、OUTQの中身を見る場合など
自動で "27x132" へ切り替わります。

お試し下さい。
WindowsからIFSへのアクセスに失敗 高森 正仁 さん [ 8月7日(木) 18時26分 ]
WindowsからAS/400(V6R1)のIFS上の共有フォルダへアクセスするときに、両環境(AS・Win)に登録
した同名・同パスワードのユーザーを使用しております。

Windows端末でアクセスを試みると「アクセスが拒否されました」とのメッセージが表示されたた
め、Seriesネットサーバーで共有フォルダへの権限を確認しましたが問題はありませんでした。
(QSECOFR・共通とも全てにチェックされている状況)

Windows側に登録していないユーザー(QSECOFR)を使用してアクセスすることは可能であったため、
権限の問題であるかと考えておりますが、何か確認すべき点や設定はありますでしょうか。
RE:WindowsからIFSへのアクセスに失敗 IKD さん [ 8月10日(日) 18時47分 ]
「Windows端末でアクセスを試みると」とありますが
これは Winエクスプローラでオープンをしようとされているのでしょうか ?
接続の方法は System i ネットサーバーであれば System i 側では
ネットサーバーは起動していますか ?

そもそもQSECOFR は機密保護責任者のユーザーですから権限が不足していることは
考えにくいですし、それ以上に QSECOFR を適用業務で使用することは
機密保護の観点からあまり感心はできません。

過去に接続できた実績はあるのでしょうか ?
また IFS ディレクトリーやファイルの権限は調べましたか ?
特定のディレクトリーやファイルだけがエラーになるのであれば、その問題の可能性があります。

それでなければ別の原因が想定されますので、
接続が失敗したら QSYSOPR メッセージに異常が報告されていないか
調べてください。
さらにネット・サーバー JOBのひとつひとつのJOBLOG を調べる調査が必要となります。
RE:WindowsからIFSへのアクセスに失敗 高森 正仁 さん [ 8月11日(月) 13時15分 ]
ご回答ありがとうございました。
本件について解決いたしましたので確認した内容を記載いたします。

 ・Winエクスプローラでオープンしております。
 ・ネットサーバーは起動しておりました。
 ・過去にQSECOFR以外のユーザーでも接続できていました。
 ・IFS上の共有ディレクトリに対する権限についても問題はありませんでした。

担当者へ操作のヒアリングを行ったところ、ログイン時に入力したパスワードを複数回間違えてい
たようでした。
そのため、ネットサーバーの機能により拒否するユーザーIDに登録されてしまったため、Windows
環境よりIFSを参照することができておりませんでした。
拒否のリストより該当のユーザーIDを解除することで無事に接続することができました。

ありがとうございました。
RE:WindowsからIFSへのアクセスに失敗 IKD さん [ 8月11日(月) 18時19分 ]
解決できて良かったですね。

その可能性も考えましたが、パスワードを
何回か間違えると QSECOFR が
DISABLE になってしまいます。
DISABLE にはなっていないようなので、この可能性を
はずして想定していました。

今回は DISABLE にはなっていないようですが
エンド・ユーザーに QSECOFR を使用させることは
セキュリティ上、危険なので他のユーザー・プロフィールの
使用も検討されたほうが良いかと思います。

FTP コマンドが誰でも使える時代なので
誰にセキュリティを破られるかもわかりません。
System i はオープン系にも準拠しつつあるので
誰でも操作できる時代になってしまっています。

IFSをExcel2010で利用するとレスポンスがすこぶる悪いのです。 石田 眞祐 さん [ 8月11日(月) 12時7分 ]
弊社で導入しているAS400を一部の管理者がIFSを介してファイルサーバーとして利用してい
るのですが、利用するパソコンを入れ替えてWindows7+Officeを2010へ変更した
ところ、非常に読み書きのパフォーマンスが悪くなり、対応に苦慮しています。従来はWindowsXP+Office2000での運用で、Windowsサーバーとは同等ぐ
らいの読み書きの速さだったのですが、Windows7+Office2010に変更したとこ
ろ、Windowsサーバーに対しては今まで通りの速さなのに、AS400のIFSだけ読み書き
に相当な時間を要するようになってしまいました。試しに、Windows7+Office2000を試したところ、特に読み書きに時間がかかるこ
とはなく、原因がOffice2010だというところまでは切り分けできたと思っています。Office2000からOffice2010では大きく機能拡張されていますので、どの機能が
原因になっているかもわからず、皆さんのご経験と推察をお聞かせ願いたいのです。よろしくお願いします。【弊社のAS400】モデル E4D(9406ではなく8202かな)OS V6R1M0
RE:IFSをExcel2010で利用するとレスポンスがすこぶる悪いのです。 77C さん [ 8月12日(火) 23時15分 ]
IFSを介しての読み書きとは、具体的にどのようにされているのでしょうか?
因みに、Excel2010よりExcelのデータ構造がXML形式で保持するかたちになっています。
それがパフォーマンスの原因かはわかりませんが・・・・。


> 弊社で導入しているAS400を一部の管理者がIFSを介してファイルサーバーとして利用してい
> るのですが、利用するパソコンを入れ替えてWindows7+Officeを2010へ変更した
> ところ、非常に読み書きのパフォーマンスが悪くなり、対応に苦慮しています。従来はWindow
sXP+Office2000での運用で、Windowsサーバーとは同等ぐ
> らいの読み書きの速さだったのですが、Windows7+Office2010に変更したとこ
> ろ、Windowsサーバーに対しては今まで通りの速さなのに、AS400のIFSだけ読み書き
> に相当な時間を要するようになってしまいました。試しに、Windows7+Office200
0を試したところ、特に読み書きに時間がかかるこ
> とはなく、原因がOffice2010だというところまでは切り分けできたと思っています。Of
fice2000からOffice2010では大きく機能拡張されていますので、どの機能が
> 原因になっているかもわからず、皆さんのご経験と推察をお聞かせ願いたいのです。よろしくお願い
します。【弊社のAS400】モデル E4D(9406ではなく8202かな)OS V6R1M0
RE:IFSをExcel2010で利用するとレスポンスがすこぶる悪いのです。 まめたろぅ さん [ 8月14日(木) 15時1分 ]
Windows7とネットサーバーのパフォーマンスの問題で対処方法があるようです。
http://www-01.ibm.com/support/docview.wss?uid=nas8N1018525

1. Windows7のWebClientの動きを変更してみる。
スタート -> プログラムとファイルの検索 -> services.msc
サービス一覧の'Web Client'のスタートアップの種類を
「手動」から「自動」に変更してWindows7を再起動する。
もし現象が改善されない場合は、「自動」ではなくて「無効」に変更して
Windows7を再起動します。

2. Windows7のセキュリティーポリシーにあるLAN Manager 認証レベル を変更
してみる。
スタート -> プログラムとファイルの検索 -> SECPOL.MSC
ローカルポリシー -> セキュリティオプション の中の
「ネットワークセキュリティ:LAN Manager 認証レベル」のプロパティを開き
「LMとNTLMを送信する(ネゴシエートした場合NTLMv2セッションを使う)」を選択し
Windows7を再起動します。 
RE:IFSをExcel2010で利用するとレスポンスがすこぶる悪いのです。 石田 眞祐 さん [ 8月25日(火) 18時15分 ]
大変申し訳ありません。発言を失念しておりました。
非常にマナー違反なことをしてしまいました。
もう見ておられないかもしれませんが、解決方法がわかりましたので掲載しておきます。

http://www-01.ibm.com/support/docview.wss?uid=nas8N1018525


Many Windows 7 users have seen performance issues when opening IFS documents on a Net
Server network drive. In some cases, changing the Web Client Start-Up type from Manua
l to Automatic has improved performance. Follow the steps below to do this:
の対処方法です。

同様の問題に困っておられる方は是非お試しください。
画面の文字幅 swb さん [ 9月9日(火) 9時25分 ]
iAccessのV6R1M0をインストールし、
サービスパックSI42423を充てたところ、
エミュレータの画面の文字幅が広くなってしまいました。

画面の文字幅はどうやって変えられるのでしょうか。
RE:画面の文字幅 まめたろぅ さん [ 9月10日(水) 16時54分 ]
> iAccessのV6R1M0をインストールし、
> サービスパックSI42423を充てたところ、
> エミュレータの画面の文字幅が広くなってしまいました。
> 
> 画面の文字幅はどうやって変えられるのでしょうか。

エミュレータ画面の両端に余白を残して表示させたいという質問でしたら
WSファイルに次のキーワードを追記してみて下さい。
[DBCS]
TextFitMaxWindow=N
PARM(パラメータ)の指定 ゆっき さん [ 9月10日(水) 0時8分 ]
RPGをCALLする時に、PARM(パラメータ)で日付や数値を引き渡ししたい場合の記述の仕方を
教えてください。
RE:PARM(パラメータ)の指定 ASD さん [ 9月10日(水) 11時31分 ]
属性は、わたせません。
RE:PARM(パラメータ)の指定 あかね さん [ 10月9日(木) 12時36分 ]
数値を直接渡したいときの記述の仕方ですか?

このような形式で渡せますが・・・
X'xxxxxF'(Fだとプラス、Dがマイナス)
 xxxxxF は偶数桁になるように記述。これは6桁、数値の桁数は5桁

パラメータ9桁の数字に150を渡すときは、PARM(X'000000150F')
パラメータ8桁の数字に150を渡すときも、PARM(X'000000150F')
になります。頭1桁は余計ですが、偶数桁数にしなければいけないので。
APPC over TCPIP saboreeman さん [ 9月12日(金) 23時19分 ]
社内の各AS/400を APPC over TCPIP で接続しているのですが、
あるAS/400(これをSYSTEM2とします。)のそれが不安定です。

SYSTEM1とSYSTEM2で通信しているとして、

SYSTEM2でNETSTATの「3. IPV4 接続状況の処理」を見ると、
リモート アドレス SYSTEM1、ローカル ポート 397 が残ってしまっているようです。

アイドル時間が250時間を過ぎたものを含め、
17つの接続状況が表示されます。

SYSTEM1からSTRPASTHRしようとすると
CPF8921が発生します。

障害コードは
X'E01A8002000032FE'

X'0009000000000000'
です。

STRPASTHRなら接続できないと利用者が異常を教えてくれますが、、
SNDNETFやSNDNETSPLFがWRKDSTQで溜まってしまうと
異常の発見が遅れてしまいます。

WRKCFGSTSで双方のAS/400でCTLをオフ、オンしたり、
NETSTAT でTCP/IP Connectionを終了させたりしています。

原因や解決策をご存知の方がおられましたら、
ご教授いただきたいです。

以上、宜しくお願い致します。
RE:APPC over TCPIP ASD さん [ 9月18日(木) 11時8分 ]
APPCは、サポートが終了しているはず。
AS400が ?3.2で、端末が2芯同軸ならしょうが ないけど。

TCP/IP を使えば S1 と S2が通信する必要性はない。  
RE:APPC over TCPIP IKD さん [ 9月18日(木) 11時57分 ]
NETSTAT で「リモート アドレス SYSTEM1、ローカル ポート 397 が残ってしまっているようです。」と
ありますが、これは障害ではなくTCP/IPの単なる仕様である可能性があります。

試しにしばらく時間経過の後、NETSTAT でもう一度確認してみてください。
その PORT 番号が消滅していれば、これはTCP/IP の仕様です。
TCP/IP では Socket を終了した後でも、しばらくの後、再利用の可能性があるため
通信のプログラムが終了した後でも一定時間は、保持されています。
この待ち時間の値は CHGTCPA + F4で変更することができますのでお調べください。
ストリームファイルをローカルフォルダへ保存 NG さん [ 9月19日(金) 11時35分 ]
CPYTOIMPFにて、/test/test.csv を作成
FTPにて、別のサーバー転送を実装していますが(これはOK)
単純に自分のPCのローカルのディレクトリー
(C:\downroad)にコピー?転送するには、CLコマンドでは無理ですか?
CPYやCPYFRMSTMF コマンド等色々試しましたが・・

よろしくお願いします。
無理です ASD さん [ 9月19日(金) 13時24分 ]
FTPクライアントを導入して、取りに行く。
RE:無理です NG さん [ 9月19日(金) 14時2分 ]
> FTPクライアントを導入して、取りに行く。
そうですか・・
ありがとうございました。
ローカルのディレクトリー ASD さん [ 9月21日(日) 9時54分 ]
AS400のQTEMP.LIBなら ローカルのディレクトリーです。
PCのCドライブは、AS400からは見えません。

PCにFTPサーバーを入れて、AS400 から送信する以外に方法は無い。
(あっても サポートが終わってる)

専用アプリ(動的FTP)を組んで、メニューから起動する事で、ほぼ目的は、たっしられるが
お勧めしない。
  




 
 
ポップアップ画面を表示すると親画面が消えてしまう! kazu さん [ 9月25日(木) 13時33分 ]
親画面上でファンクションキーを押下すると、ポップアップ画面が重なって表示されるようにしたいのですが、ポップアップ画面が表示されると、親画面が消されてしまいます。DDSに何かキーワードが必要なのでしょうか。■DDS定義内容WINDOW(6 20 15 50)OVERLAY宜しくお願いします。
RE:ポップアップ画面を表示すると親画面が消えてしまう! IKD さん [ 9月26日(金) 15時17分 ]
親画面のDDS には OVERLAY があるかと思いますが
POPUPの子画面には 

 OVERLAY   
 PROTECT   
 CLRL(*NO)

が必要です。CLRL(*NO) が定義されていない場合は
親画面の表示は消去されてしまいます。
 
RE:ポップアップ画面を表示すると親画面が消えてしまう! kazu さん [ 10月3日(金) 10時47分 ]
> 親画面のDDS には OVERLAY があるかと思いますが> POPUPの子画面には > >  OVERLAY   >  PROTECT   >  CLRL(*NO)> > が必要です。CLRL(*NO) が定義されていない場合は> 親画面の表示は消去されてしまいます。>ありがとうございました。無事に解決いたしました。  
■□ --  人材募集のお知らせ   --□■ 管理人 さん [ 10月3日(金) 21時16分 ]
人材募集のお知らせ

?オフィスクアトロ では只今、開発者を募集しています。

▼詳しくはこちらで
https://www.find-job.net/fj/showjob.cgi?id=100607&view=view
PGMのコンパイル元SRC一覧の出力 kazu さん [ 10月20日(月) 10時26分 ]
いつも利用させていただいております。標記の通り、あるライブラリーの全PGMのコンパイル元のSRC一覧を出力したいのですが、何かコマンドがありますでしょうか?DSPPGMで1つ1つやるのは、大変なので。ご教示お願いいたします。
RE:PGMのコンパイル元SRC一覧の出力 kazu さん [ 10月20日(月) 11時1分 ]
DSPOBJD *SERVICE で一覧が出せました。お騒がせしました
STRPCCMDで後続の処理へ進まない セントリー さん [ 11月2日(日) 20時29分 ]
OS:V5R4M0
PCOM:5.5J

教えてください。
STRPCCMDにてVBで作成したEXEを呼びしています。
EXEは正しく実行され終了されていることを確認しています。

後続の処理へ進んで欲しいのですがJOBを確認するとDSPWで止まっており、
画面を動かしたり別セッションへアクティブウィンドウを移して戻ってくると動き出します。

PAUSE(*yes) OR (*no)はどちらも試してみましたが変わりません。
CLはRPGより呼び出しています。
STRPCCMDは割と頻繁に使用しておりますが、時折同じように止まる現象が出ることはありましたが
今回のように必ず止まってしまうケースは初めてです。

何が原因でしょうか?
RE:STRPCCMDで後続の処理へ進まない ASD さん [ 11月5日(水) 9時53分 ]
PCOMM5.5のサポートはWINDOWS2000 までです。
最新の PCOMMで ためさないと、なんとも、言えない。
RE:STRPCCMDで後続の処理へ進まない セントリー さん [ 11月5日(水) 15時23分 ]
ASDさん、ありがとうございます。

STRPCCMDはエミュレーターに依存しているようなので新しいものに変えるしかないようですね。
検討してみます。

ありがとうございました。
RE:STRPCCMDで後続の処理へ進まない IKD さん [ 11月7日(金) 12時25分 ]
私は次のステップに必ず進んでいると思います。

PCオーガナイザーの内部の動作

  1.PCコマンドを非表示で埋め込んだ<
  5250ストリーム画面がエミュレータに送信されます。

 2.エミュレータはPCコマンドを Windows で実行して
    5250ストリームに実行キーで応答します。
    
  3.ユーザーには PCコマンドの実行結果が表示されますが
    そのときには System i のオーガナイザーのステップは
    既に終了しています。

  (なぜこれがわかるかと言うと5250ストリームの内部を解析した結果です。)

===> ポイントは上記の2. の部分であり、エミュレータが
     Windows に PCコマンドの実行を指示しても
     終了するのを待つわけではありません。
     ( Windows には CALL に相当する同一スタックでの実行命令がありません。
       CALL とよく似た動作をさせることはできますが別のプロセスでの実行となります。 )
     
     System i の CALL命令では CALL したプログラムの終了を
     待機するのが普通ですが Windows では新たなプログラムの呼び出しは
     別のプロセスで実行し、CALL 命令のように完了を待機することはありません。
     Windows での実行は CALL ではなく SBMJOB する、というイメージです。

     従ってPCコマンドが正しく実行されているのであれば
     System i 上では必ず次のステップに進んでいます。
     これは実際に PCオーガナイザーを動作させて別のジョブから実行スタックを
     監視した結果も、上記のような動作となっていることを確認しました。
  
   PCオーガナイザーに問題はないと思います。
   別の原因をお探しください。
タブ区切りファイルの作成 CSID さん [ 11月5日(水) 20時17分 ]
お世話になります。

AS上でファイルを作成し、それをFTPでPCへ送信するアプリケーションを組んでいます。

PC上での仕様としては、
ファイル形式 ⇒ タブ区切り
文字コード ⇒ CP932
改行コード ⇒ CR+LF
という指定があります。

CPYTOIMPF FROMFILE(testlib/test) TOSTMF('/testqtemp/test.txt') MBROPT(*REPLACE)
RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDLM(*TAB)                                      

でファイルをコピーしてFTPでPCへ送信していますが、タブ区切りになっていようです。

何かいい方法があればご教示願います。
RE:タブ区切りファイルの作成 まめたろぅ さん [ 11月6日(木) 14時32分 ]
> CPYTOIMPF FROMFILE(testlib/test) TOSTMF('/testqtemp/test.txt') 
MBROPT(*REPLACE)
> RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDLM(*TAB)            
                          
OSのバージョンによってはFLDDLM(*TAB)の指定が有効にならないかもしれないので
FLDDLM(X'05')のようにタブデータをヘキサで指定してみたらどうでしょうか。
RE:タブ区切りファイルの作成 CSID さん [ 11月6日(木) 17時39分 ]
> > CPYTOIMPF FROMFILE(testlib/test) TOSTMF('/testqtemp/test.txt') 
> MBROPT(*REPLACE)
> > RCDDLM(*CRLF) DTAFMT(*FIXED) FLDDLM(*TAB)            
>                           
> OSのバージョンによってはFLDDLM(*TAB)の指定が有効にならないかもしれないので
> FLDDLM(X'05')のようにタブデータをヘキサで指定してみたらどうでしょうか。
> 

まめたろぅ様
ありがとうざいます。試してみます。

別件ですが、CPYTOIMPFコマンドで作成したファイルをPC上で見ると、ブランクフィールドに半角
空白文字が入ってしまいます。
これを抜くことはできるのでしょうか。
RE:タブ区切りファイルの作成 まめたろぅ さん [ 11月9日(日) 11時58分 ]
> 別件ですが、CPYTOIMPFコマンドで作成したファイルをPC上で見ると、ブラ
ンクフィールドに半角
> 空白文字が入ってしまいます。
> これを抜くことはできるのでしょうか。

http://www-01.ibm.com/support/docview.wss?uid=nas8N1011149
上記サイトを見ると次のコマンドでデータエリアQSYS/QCPNOBLANKを作成して
空白文字を除去できるかも知れませんね。
CRTDTAARA DTAARA(QSYS/QCPNOBLANK) TYPE(*CHAR) LEN(3) VALUE('YES') 
(OSのバージョンによっては有効ではないようです)
ASからPCサーバーへFTPするときのPUTの書き方 オンライン さん [ 11月12日(水) 20時45分 ]
いつもお世話になります。

IFS領域にあるファイルをPCサーバーへFTPでPUTしたいと考えています。
PUTの書き方がいまいちわからないので教えて下さい。

PUT XXXLIB/TESTA.TXT TESTB.TXT

ファイル名の形式が正しくない。 LIBRARY/FILE.MEMBER または 
FILE.MEMBER の形式を使用してください。                    

となってしまいます。

どうぞご教示願います。
RE:ASからPCサーバーへFTPするときのPUTの書き方 IKD さん [ 11月12日(水) 21時39分 ]
ご質問の趣旨は

 IFS (System i) -----> PC サーバー

で間違いないのでしょうか ?

 LIB/FILE ( System i )---> PC サーバー

ではないのですね。

PUT XXXLIB/TESTA.TXT TESTB.TXT

のコピー元ファイル : XXXLIB/TESTA.TXT の記述が意味不明です。

ライブラリーのファイルをコピーするようにも見えるし
IFS のテキスト・ファイルをコピーするようにも見えます。
本当にIFS ファイルをコピーされたいのであれば
なぜ XXXLIB というライブラリー名が現れるのでしょうか ?

エラー・メッセージ:
ファイル名の形式が正しくない。 LIBRARY/FILE.MEMBER または 
FILE.MEMBER の形式を使用してください。

は益々、意味不明でこれは本当に System i のコマンド・ラインからの
Ftp 実行なのでしょうか ?

ご自分がされたいことを今一度整理してみてください。
RE:ASからPCサーバーへFTPするときのPUTの書き方 まめたろぅ さん [ 11月13日(木) 10時23分 ]
> 
> PUT XXXLIB/TESTA.TXT TESTB.TXT
> 
> ファイル名の形式が正しくない。 LIBRARY/FILE.MEMBER または 
> FILE.MEMBER の形式を使用してください。              
      
ASのローカルの形式はNAMEFMT 0(LIB/OBJの形式)になっています。
しかし、IFS領域のオブジェクトを扱う場合はNAMEFMT 1(/home/mydir
/xxxx.txt)にする必要があります。
PUTの前に NAMEFMT 1 の宣言をしてみて下さい。

NAMEFMT 1
PUT /XXXLIB/TESTA.TXT TESTB.TXT

IKDさんも指摘していますがPUTするのはIFS領域のファイルですよね?
XXXLIB/TESTA.TXT のXXXLIB はIFSのディレクトリーですよね?
外部からFTPする時のディレクトリ こだこだ さん [ 11月17日(月) 15時24分 ]
外部サーバーからAS400にFTP接続してputしようとしてます。それ専用にユーザー
プロファイルを作成しました。接続した段階の初期ディレクトリは、特定の1ディレクトリと
し、且つそのディレクトリ以外にはcdさせたくありません。しかし初期ディレクトリは
QGPLとなってしまいます。ユーザープロファイルのホームディレクトリの値を変更しても、初期
ディレクトリはいつもQGPLです。
AS400側でどこの何を設定すれば良いのか教えてください。
RE:外部からFTPする時のディレクトリ @445 さん [ 11月17日(月) 16時56分 ]
ユーザープロフィールの現行ライブラリーを変更してください。


> 外部サーバーからAS400にFTP接続してputしようとしてます。それ専用にユーザー
> プロファイルを作成しました。接続した段階の初期ディレクトリは、特定の1ディレクトリと
> し、且つそのディレクトリ以外にはcdさせたくありません。しかし初期ディレクトリは
> QGPLとなってしまいます。ユーザープロファイルのホームディレクトリの値を変更しても、初期
> ディレクトリはいつもQGPLです。
> AS400側でどこの何を設定すれば良いのか教えてください。
RE:外部からFTPする時のディレクトリ こだこだ さん [ 11月17日(月) 17時7分 ]
> ユーザープロフィールの現行ライブラリーを変更してください。
> 
> 
> > 外部サーバーからAS400にFTP接続してputしようとしてます。それ専用に
ユーザー
> > プロファイルを作成しました。接続した段階の初期ディレクトリは、特定の1ディレクトリと
> > し、且つそのディレクトリ以外にはcdさせたくありません。しかし初期ディレクトリは
> > QGPLとなってしまいます。ユーザープロファイルのホームディレクトリの値を変更して
も、初期
> > ディレクトリはいつもQGPLです。
> > AS400側でどこの何を設定すれば良いのか教えてください。
RE:外部からFTPする時のディレクトリ こだこだ さん [ 11月17日(月) 17時10分 ]
ライブラリー変更、たしかに分かります。しかしIFSのディレクトリーに
接続させ、固定させたいのです。どうすればよろしいですか?

> > ユーザープロフィールの現行ライブラリーを変更してください。
> > 
> > 
> > > 外部サーバーからAS400にFTP接続してputしようとしてます。それ専用に
> ユーザー
> > > プロファイルを作成しました。接続した段階の初期ディレクトリは、特定の1
ディレクトリと
> > > し、且つそのディレクトリ以外にはcdさせたくありません。しかし初期ディ
レクトリは
> > > QGPLとなってしまいます。ユーザープロファイルのホームディレクトリの値を変更して
> も、初期
> > > ディレクトリはいつもQGPLです。
> > > AS400側でどこの何を設定すれば良いのか教えてください。
RE:外部からFTPする時のディレクトリ @445 さん [ 11月17日(月) 17時43分 ]
CHGFTPA CURDIR(*HOMEDIR) ではどうですか?


> ライブラリー変更、たしかに分かります。しかしIFSのディレクトリーに
> 接続させ、固定させたいのです。どうすればよろしいですか?
> 
> > > ユーザープロフィールの現行ライブラリーを変更してください。
> > > 
> > > 
> > > > 外部サーバーからAS400にFTP接続してputしようとしてます。それ専用に
> > ユーザー
> > > > プロファイルを作成しました。接続した段階の初期ディレクトリは、特定の1
> ディレクトリと
> > > > し、且つそのディレクトリ以外にはcdさせたくありません。しかし初期ディ
> レクトリは
> > > > QGPLとなってしまいます。ユーザープロファイルのホームディレクトリの値を変更して
> > も、初期
> > > > ディレクトリはいつもQGPLです。
> > > > AS400側でどこの何を設定すれば良いのか教えてください。
RE:外部からFTPする時のディレクトリ こだこだ さん [ 11月18日(火) 12時56分 ]
他のユーザーもこれでかわっちゃいますよね・・・。

> CHGFTPA CURDIR(*HOMEDIR) ではどうですか?
> 
> 
> > ライブラリー変更、たしかに分かります。しかしIFSのディレクトリーに
> > 接続させ、固定させたいのです。どうすればよろしいですか?
> > 
> > > > ユーザープロフィールの現行ライブラリーを変更してください。
> > > > 
> > > > 
> > > > > 外部サーバーからAS400にFTP接続してputしようとしてます。
それ専用に
> > > ユーザー
> > > > > プロファイルを作成しました。接続した段階の初期ディレクトリは、特定の1
> > ディレクトリと
> > > > > し、且つそのディレクトリ以外にはcdさせたくありません。しかし
初期ディ
> > レクトリは
> > > > > QGPLとなってしまいます。ユーザープロファイルのホームディレクトリの値を変
更して
> > > も、初期
> > > > > ディレクトリはいつもQGPLです。
> > > > > AS400側でどこの何を設定すれば良いのか教えてください。
ユーザーごとにFTP特殊制限 こだこだ さん [ 11月19日(水) 14時44分 ]
別サーバーからAS400にFTP接続させる処理を作る予定です。FTPのサブコマン
ドを制限したいと考えてます。他のサイトの書き込みでは、System iナビゲー
ターから設定する方法がありました。しかし実際同じようにナビゲーターから
そのメニューを辿るとアイコンが鍵マークになっておりそれ以上の操作ができ
ませんでした。なぜか教えてください。iナビ→アプリケーション管理→ホスト
アプリ→TCPIP→FTP→FTPサーバー→特定の操作、ここまではいくのですがその下
が全部鍵マークとなる。
RE:ユーザーごとにFTP特殊制限 まめたろぅ さん [ 11月21日(金) 9時23分 ]
鍵マークが付いていても設定は可能なので
例えば「ファイルの削除」を選択して
右下の「カスタマイズ」ボタンを押します。
「デフォルト・アクセス」と
「全オブジェクト・システム特権を持つユーザー」の
チェックを外せば、そのサブコマンドは使用不可の設定にできます。
RE:ユーザーごとにFTP特殊制限 こだこだ さん [ 11月21日(金) 19時31分 ]
画面右側にチェックボックスがありましたがこれには気づきませんでした・・・。
でも言われてる”カスタマイズ”ボタンがありません・・・。
OK、キャンセルしかありません。
そのチェックボックスを変更しようとしてもできませんでした。
QSECO権限で接続してみても同じでした。
権限なのか、V6.1だからでしょうか。
バージョンは何ですか?

> 鍵マークが付いていても設定は可能なので
> 例えば「ファイルの削除」を選択して
> 右下の「カスタマイズ」ボタンを押します。
> 「デフォルト・アクセス」と
> 「全オブジェクト・システム特権を持つユーザー」の
> チェックを外せば、そのサブコマンドは使用不可の設定にできます。
> 
RE:ユーザーごとにFTP特殊制限 こだこだ さん [ 11月21日(金) 20時29分 ]
logonパスの権限から変えないと、その設定まで変更できないみたいですね。
まめたろぅ さん、初歩的な部分でした、すみません。
その後はおっしゃるとおりに操作できるようになり、制限できるようになり
ました!ありがとうございました。

> 画面右側にチェックボックスがありましたがこれには気づきませんでした・・・。
> でも言われてる”カスタマイズ”ボタンがありません・・・。
> OK、キャンセルしかありません。
> そのチェックボックスを変更しようとしてもできませんでした。
> QSECO権限で接続してみても同じでした。
> 権限なのか、V6.1だからでしょうか。
> バージョンは何ですか?
> 
> > 鍵マークが付いていても設定は可能なので
> > 例えば「ファイルの削除」を選択して
> > 右下の「カスタマイズ」ボタンを押します。
> > 「デフォルト・アクセス」と
> > 「全オブジェクト・システム特権を持つユーザー」の
> > チェックを外せば、そのサブコマンドは使用不可の設定にできます。
> > 
%TRIM による先行ゼロの消去 QQ さん [ 11月20日(木) 10時45分 ]
%TRIM による先行ゼロの消去を試したところ、
「0060」が「6」となりました。
%TRIMLが正しいと思われます。
ASCII→EBCDICに変換 UN さん [ 11月27日(木) 19時42分 ]
ASCII→EBCDICに変換で質問です。
英数小文字の変換は、どのように行ったよいのでしょうか?
変換すると、英数大文字になってしまいます。

例)
ASCII:abc → EBCDIC:abc のように変換したい。
RE:ASCII→EBCDICに変換 IKD さん [ 11月28日(金) 14時33分 ]
具体的にどの作業での変換のことであるのかを言われないと
回答はできません。

ご自分が何をされたのか具体的にお示しください。
RE:ASCII→EBCDICに変換 UN さん [ 11月28日(金) 17時39分 ]
> 具体的にどの作業での変換のことであるのかを言われないと
> 回答はできません。
> 
> ご自分が何をされたのか具体的にお示しください。

IKDさん、具体例が無く、すいませんでした。

RPGLEで、ASCIIデータをEVXM072でEDCBICデータに変換したところ、
英数小文字が英数大文字となってしまう。
英数小文字は、そのまま英数小文字として、変換できないでしょうか?

■具体例

変換前 ASCIIデータ:abcD → 変換後 EDCBICデータ:ABCD と英数大文字になってしまう。
変換前 ASCIIデータ:abcD → 変換後 EDCBICデータ:abcD のようにそのまま変換したい。
RE:ASCII→EBCDICに変換 IKD さん [ 11月30日(日) 15時45分 ]
EVXM072 とはTollBOX のことでしょうか ?
それも正しく言わないとEVXM072だけでは普通の人はわからないと思いますよ。

 EVXM072 の設定になければ API : QDCXLATE を使えば解決します。

【参考】http://www.as400-net.com

      199. API: QDCXLATE コード変換
RE:ASCII→EBCDICに変換 UN さん [ 12月1日(月) 9時15分 ]
> EVXM072 とはTollBOX のことでしょうか ?
> それも正しく言わないとEVXM072だけでは普通の人はわからないと思いますよ。
> 
>  EVXM072 の設定になければ API : QDCXLATE を使えば解決します。
> 
> 【参考】http://www.as400-net.com
> 
>       199. API: QDCXLATE コード変換

IKDさん回答ありがとうございました。
クライアントからのputで上書きされたくない こだこだ さん [ 11月27日(木) 20時41分 ]
クライアントからv6.1ホストへのFTPについてです。
専用のユーザープロファイルを作成しSystem iナビゲーターからホストアプリ
ケーションのFTPサーバーの特定の操作の設定を行いました。ファイルの削
除、getができないようにしましたが、putでの上書きだけは可能であることに
気づきました。
ディレクトリの移動だけは可能とさせたいのです。
この場合、上書きされないようにするのは不可能なのでしょうか。
RE:クライアントからのputで上書きされたくない IKD さん [ 11月28日(金) 14時37分 ]
ディレクトリとの記述があるので IFS のストリーム・ファイルを
put で上書きされないようにしたい、という趣旨のご質問であると
解釈しました。

System i の場合は IFS のストリーム・ファイルであっても
ユーザー・プロフィールによる機密保護ができますので
WRKLNK で不要なユーザーからの更新を保護することができます。
お試しください。
RE:クライアントからのputで上書きされたくない こだこだ さん [ 12月4日(木) 15時18分 ]
IKDさん、ありがとうございました。設定します!

> ディレクトリとの記述があるので IFS のストリーム・ファイルを
> put で上書きされないようにしたい、という趣旨のご質問であると
> 解釈しました。
> 
> System i の場合は IFS のストリーム・ファイルであっても
> ユーザー・プロフィールによる機密保護ができますので
> WRKLNK で不要なユーザーからの更新を保護することができます。
> お試しください。
CPF2758の原因 TI さん [ 11月28日(金) 10時11分 ]
初めて投稿させていただきます。

SBMRMTCMDでDDM通信を行っているのですが、
時折、CPF2758のエラーが発生し、通信に失敗しています。
このエラーが発生する原因と解決方法をご存知の方がおりましたらお教え願います。

宜しくお願い致します。
全銀BSC手順について 0078 さん [ 12月3日(水) 10時58分 ]
TOOLBOXを用いて全銀BSC手順にデータ転送に関してですが、サイクル管理する場合(ファイルI
Dの一部がカウンターとなっていてを転送前後?カウントアップして転送)自力でファイル名称を変
更して転送?TOOOLBOX自体にそのような機能が付いているのかお解りの方いらっしゃいましたら教
えていただけないでしょうか?
当方の現状ではカウントアップしているんですが、どこでカウントアップしているか調査はしたんで
すが判明できていない状態です
どうか皆様宜しくお願いいたします。
RE:全銀BSC手順について koma さん [ 12月5日(金) 12時51分 ]
現状はどうなっているかわかりかねますが、昔は自分でTOOLBOXのファイルを更新していました。
RE:全銀BSC手順について 0078 さん [ 12月8日(月) 10時36分 ]
komaさんありがとうございました
詳しく調査したら自分で更新してました。
サービス一覧 こだこだ さん [ 12月4日(木) 15時21分 ]
v6.1を使用してます。起動中のサービスとその開始状況を確認したいと考えて
ます。windowsみたいに管理→サービスから表示されるような画面がないでしょ
うか。
RE:サービス一覧 kin さん [ 12月9日(火) 16時11分 ]
> v6.1を使用してます。起動中のサービスとその開始状況を確認したいと考えて
> ます。windowsみたいに管理→サービスから表示されるような画面がないでしょ
> うか。
RE:サービス一覧 kin さん [ 12月9日(火) 16時13分 ]
> > v6.1を使用してます。起動中のサービスとその開始状況を確認したいと考えて
> > ます。windowsみたいに管理→サービスから表示されるような画面がないでしょ
> > うか。
TCP/IP系のサービスが自動的な開始されるかは、次のコマンドで判ります。
runqry *n qatocstart
RE:サービス一覧 こだこだ さん [ 12月10日(水) 12時7分 ]
kinさんコマンドありがとうございます。
system i ナビゲーターからは接続ホストのネットワーク→サーバーから確認で
きました。もしよろしければコマンドから自動で開始されるかではなく、開始
されているかの一覧を見る方法を教えてもらえませんでしょうか。

> > > v6.1を使用してます。起動中のサービスとその開始状況を確認したい
と考えて
> > > ます。windowsみたいに管理→サービスから表示されるような画面がな
いでしょ
> > > うか。
> TCP/IP系のサービスが自動的な開始されるかは、次のコマンドで判ります。
> runqry *n qatocstart
半角文字を数字フィールドにMOVEL TU さん [ 12月9日(火) 10時12分 ]
初歩的な質問をさせて下さい。
RPGLEで、半角文字を数字フィールドにMOVELした場合、数字に変換されてしまう。
変換されないで、10進数エラーにはなる方法はありますか?


■具体例

MOVEL     'アイウエオ'       SUJI              5 0


■結果

SUJIに12345と変換されてしまう。
変換されないで、10進数エラーにしたいです。
RE:半角文字を数字フィールドにMOVEL hex さん [ 12月21日(日) 1時49分 ]
> 初歩的な質問をさせて下さい。
> RPGLEで、半角文字を数字フィールドにMOVELした場合、数字に変換されてしまう。
> 変換されないで、10進数エラーにはなる方法はありますか?
> 
> 
> ■具体例
> 
> MOVEL     'アイウエオ'       SUJI              5 0
> 
> 
> ■結果
> 
> SUJIに12345と変換されてしまう。
> 変換されないで、10進数エラーにしたいです。

文字から数字項目への移送の場合、各文字の後ろ半バイトが評価されます。
上記具体例で言うと、'アイウエオ' は X'8182838485' ですから、
結果が 12345 となってしまうのです。
移送元を半角カナでやりたいなら、'カキクケコ' や 'サシスセソ' をMOVEL したらエラーになります。
RE:半角文字を数字フィールドにMOVEL TU さん [ 12月22日(月) 17時15分 ]
> > 初歩的な質問をさせて下さい。
> > RPGLEで、半角文字を数字フィールドにMOVELした場合、数字に変換されてしまう。
> > 変換されないで、10進数エラーにはなる方法はありますか?
> > 
> > 
> > ■具体例
> > 
> > MOVEL     'アイウエオ'       SUJI              5 0
> > 
> > 
> > ■結果
> > 
> > SUJIに12345と変換されてしまう。
> > 変換されないで、10進数エラーにしたいです。
> 
> 文字から数字項目への移送の場合、各文字の後ろ半バイトが評価されます。
> 上記具体例で言うと、'アイウエオ' は X'8182838485' ですから、
> 結果が 12345 となってしまうのです。
> 移送元を半角カナでやりたいなら、'カキクケコ' や 'サシスセソ' をMOVEL したらエラーになります。
RE:半角文字を数字フィールドにMOVEL TU さん [ 12月22日(月) 17時17分 ]
hexさん返信ありがとうございました。
とてもわかりやすかったです。

> > 初歩的な質問をさせて下さい。
> > RPGLEで、半角文字を数字フィールドにMOVELした場合、数字に変換されてしまう。
> > 変換されないで、10進数エラーにはなる方法はありますか?
> > 
> > 
> > ■具体例
> > 
> > MOVEL     'アイウエオ'       SUJI              5 0
> > 
> > 
> > ■結果
> > 
> > SUJIに12345と変換されてしまう。
> > 変換されないで、10進数エラーにしたいです。
> 
> 文字から数字項目への移送の場合、各文字の後ろ半バイトが評価されます。
> 上記具体例で言うと、'アイウエオ' は X'8182838485' ですから、
> 結果が 12345 となってしまうのです。
> 移送元を半角カナでやりたいなら、'カキクケコ' や 'サシスセソ' をMOVEL したらエラーになります。
RE:半角文字を数字フィールドにMOVEL シャリース さん [ 12月25日(木) 11時43分 ]
ちょっと違うかもしれませんが、
数値フィールドにセットする前に
文字列が数字かどうかのチェックを
TESTNコマンドでおこなったらいかがでしょうか
RE:半角文字を数字フィールドにMOVEL TU さん [ 12月27日(土) 13時42分 ]
シャリースさん返信ありがとうございました。
このコマンドは、すごく良さそうです。
試してみたいと思います。
ありがとうございました。

> ちょっと違うかもしれませんが、
> 数値フィールドにセットする前に
> 文字列が数字かどうかのチェックを
> TESTNコマンドでおこなったらいかがでしょうか
System i がODBCで参照できなくなった hatsujiro さん [ 12月9日(火) 12時0分 ]
MS-AccessやMS-Queryを使ってSystem iのデータを参照していたのですが、い
つの間にか、ODBCでテーブルを選択する時に、QGPL内のテーブルしか参照でき
なくなってしまいました。
Office2010になったせいかのか、ClientAccessのバージョンが上がったせいな
のか良く判りませんが、以前は、ClientAccessの中に入っているODBCドライバ
の設定でライブラリリストを指定すれば参照できた筈なのですが...

環境は、
Office2010
ClientAccess6.1 SI42423
OS400 V6R1
ですが、何か対策をご存じの方はおられますか?




EXCELデータをAS/400に取り込みたい ゴロっち さん [ 12月18日(木) 16時27分 ]
現在EXCELデータをワークフレンドというツールを使用してAS400のデータベースに取り込んでいるのです
が、何か別の方法で取り込めないでしょうか
Chicago がお勧めです。 IKD さん [ 12月19日(金) 10時36分 ]
DB2/400 と Excel とのデータ交換であれば
PANEL-WORKER Chicago という製品が国内ではポピュラーで人気の高い製品として
有名です。

 Excel からボタンひとつでダウンロードできる他、
 PRO 版でアップロードもできますし、POI というモジュールを使えば
 RPG で直接、Excel のデータの読み書きなどができます。
 
 製品紹介 : http://www.officequattro.com/jpn/software/contents/ch/index.html

 試供版ダウンロード :
   http://www.officequattro.com/jpn/download/contents/ch/tutorial/tutorial_
chi_std.html

 ?オフィスクアトロ : http://www.officequattro.com/jpn/top.html 
RE:Chicago がお勧めです。 ゴロっち さん [ 12月22日(月) 16時50分 ]
> DB2/400 と Excel とのデータ交換であれば
> PANEL-WORKER Chicago という製品が国内ではポピュラーで人気の高い製品として
> 有名です。
> 
>  Excel からボタンひとつでダウンロードできる他、
>  PRO 版でアップロードもできますし、POI というモジュールを使えば
>  RPG で直接、Excel のデータの読み書きなどができます。
>  
返答ありがとうございます。

csvやtxtなら、FTPでアップロードして、AS/400で細工が出来るのですが、
excel形式だとやはり、ツールが必要ですか…。

参考にさせていただきます
エミュレータをお使いならば シャリース さん [ 12月23日(火) 13時4分 ]
IBM i Access for WindowsがPCに導入されているのであれば
データ転送機能がありますよね。
「ホストへファイルを送信」の機能でEXCELファイルを
アップロードするのは駄目ですか。

もしくは、EXCELファイルをCSV形式に変換したあと、
FTPでアップロードして、CPYFRMSTMFでDBにコピーするとか。

XMLデータをAS/400のDB2に取り込みたい シャリース さん [ 1月14日(水) 17時4分 ]
お世話になります。
弊社のAS400のVerは5.4です。

取引先からXML形式のファイル(ASCII)をWEBからダウンロードして
弊社内の基幹システムに取り込みたいです。

取込方法として考えているのは、
?WEBからMXLファイルをPCの任意のフォルダーにダウンロードします。
?エミュレータのデータ転送機能でAS400にアップロードします。
 (この時の形式はXMLでASCII→EBCDICに変換した1レコードが
  延べ単レコードとしてAS400にアップロードされた状態)
?この延べ単レコードからいつも利用しているDDSから作成されたDB2に
 コピーしたいが方法が分らない。

※イメージとしてはCSVファイルをCPYFROMIMPFで項目毎にセットしてくれるような
 コマンドが有ればベストだと思います。
 Ver7.0以上ならコマンドが用意されてそうですが...
 APIとかフリーのプログラムが無いでしょうか。
RE:XMLデータをAS/400のDB2に取り込みたい シャリース さん [ 1月19日(月) 10時24分 ]
良い解決方法が無いので面倒ですが次の運用で対応する事にしました。

1. WEBからMXLファイルをPCの任意のフォルダーにダウンロードします。
2. PC上でEXCEL2007を起動し、データタブ?「その他データソース」をクリック
3. プルダウンリストの「XMLデータインポート」して
4. 終了時にCSV形式で保存する。
5. このCSV形式ファイルをエミュレータのデータ転送でAS400に取り込む
6. 後はCSV形式ファイルをAS400内でCPYFRMIMPFコマンドでDBに取り込む

ちょっと手間ですが、仕方ないですね。
もっと良い方法があればご教示お願い致します。
RE:XMLデータをAS/400のDB2に取り込みたい IKD さん [ 1月22日(木) 21時24分 ]
「CGIを使わないデータ・ベース更新」として紹介している記事で
取り上げているコマンドは
( http://www.officequattro.com/jpn/technet/contents/tnet_19.html )

 CPYTOXML   と  CPYFRMXML

です。このうちの CPYFRMXL ( XMLからデータ・ベースへのコピー) が
求めておられる機能となっているはずです。

また、「他のファイルへの変換」として紹介されている、

 ( http://www.officequattro.com/jpn/technet/contents/tnet_12.html )

のも CPYTOCSV( CSVへの変換), CPYTOXML ( XML への変換) や
CPYTOXML ( EXCELへの変換) です。

また RPG で Excelのセル値や背景色などもを読み書きできる POI としいう
ツール ( http://www.officequattro.com/jpn/technet/contents/tnet_22.html )

もありますが、いずれもEnterpriseServer や Spoolライターなどの製品の
機能の一部として提供されます。
高度な機能を簡単に使えるように提供されているのですから
無料というわけには行きません。

なお CPYFRMXML コマンドが OS7.1 で使えるとは聞いたことはありません。
XML は Parse 処理としての解析が必要なので ILE-RPG で XML-Parse の組み込み関数は
用意されていますが莫大なワーク・エリアを必要とし、またパフォーマンスが悪く
実用レベルの機能ではありません。

IBM の System i 開発グループが XML の本質を良く理解していないようで
同じような誤解が米国でも珍しくありません。
XML は実はRPG開発者にとって扱いやすいはずなのですが良く本質が理解されていないので
莫大な処理となってしまっています。

あの Sccot Klement という有名な SE はなんと 自分で RPG で XMLパーサーを
作ったのですが単に一般的な C言語によるXMLパーサーを RPG で書いただけなので
莫大なXMPパーサーとなってしまいました。

おかげで自分自身も使わないXMLパーサーだけが残ってしまいました。
RE:XMLデータをAS/400のDB2に取り込みたい シャリース さん [ 1月26日(月) 15時58分 ]
なるほど。

XML変換するには貴社の「EnterpriseServer」があれば
コマンドが用意されているとの事ですね。

またOS7.0以降で準備されているのではないかと勘違いしていたようです。

しかし残念な事にEnterpriseServerを導入する予算も有りませんので
前にも記載しましたがPC上の運用でカバーしていきたいと思います。

アドバイスありがとうございました。
Hatsのプリンター出力のPDF化 ジジパパ さん [ 1月21日(水) 9時9分 ]
お世話になります。
現在、Hats(Host Access Transformation Services)でPOWER7の5250エミュレータを
Web化するプロジェクトに参画しています。Hatsのプリンター出力をPDF可したいのですが、ご経験
のある方がいらっしゃいましたら、何が必要か、最適なソフトは何か、ご教授頂ければと思います。
宜しくお願い致します。
Spoolライター IKD さん [ 1月22日(木) 20時58分 ]
PDF化製品で最も普及しているものは Spoolライター です。

Hats と組み合わせているか、どうかは別として
印刷スプールのPDF化では試供版で今すぐ使えて価格も
最も低価格です。

ただし「ないものネダリ」はおやめください。
仕様はご自分で確認して動作検証も自己責任の世界です。

高機能・低価格ですので。
RE:Spoolライター ジジパパ さん [ 1月23日(金) 16時57分 ]
> PDF化製品で最も普及しているものは Spoolライター です。
> 
> Hats と組み合わせているか、どうかは別として
> 印刷スプールのPDF化では試供版で今すぐ使えて価格も
> 最も低価格です。
> 
> ただし「ないものネダリ」はおやめください。
> 仕様はご自分で確認して動作検証も自己責任の世界です。
> 
> 高機能・低価格ですので。
> 
RE:Spoolライター ジジパパ さん [ 1月23日(金) 16時58分 ]
> > PDF化製品で最も普及しているものは Spoolライター です。
> > 
> > Hats と組み合わせているか、どうかは別として
> > 印刷スプールのPDF化では試供版で今すぐ使えて価格も
> > 最も低価格です。
> > 
> > ただし「ないものネダリ」はおやめください。
> > 仕様はご自分で確認して動作検証も自己責任の世界です。
> > 
> > 高機能・低価格ですので。
> >
間違って空返事を送信してしまいました。
ありがとうございました。早速調べてみます。 
PCOMMについて ゴロっち さん [ 2月25日(水) 11時46分 ]
PCOMM でTCP/IP接続でAS/400に接続しているのですが、
たまにリンクパラメータのIPアドレスが消えてしまったり、IPアドレスが変わってしまうという現象が
発生しています。

皆様のなかで同じ現象は発生してませんか?

PCOMMのバグでしょうか?

PCOMMのバージョン:6.0
AS/400のOSのバージョン:V5R4M0
RE:PCOMMについて ASD さん [ 2月26日(木) 10時5分 ]
そんな事は、あたりまえすぎて、話題にもなりません。
WINDOWSのアプリは、起動時、定義ファイルを更新読み取りし、
終了時、書き戻します。
タイミングによって、紛失したり、棄損したりします。


PCOMM終了後PC終了 A さん [ 3月1日(日) 19時48分 ]
丁寧に終了させてからは、トラブルがなくなった。
PCOMM使用時に、コンセントを抜いたら、最悪です。
もととなっているソースの確認方法 こだこだ さん [ 3月2日(月) 11時5分 ]
こんにちわ V6.1を使っています。
表示装置ファイルのオブジェクトがあるのですが、どのソースがもととなっているのか確認する方法
が分かりません。教えてください。
RE:もととなっているソースの確認方法 へっぽこ さん [ 3月2日(月) 17時9分 ]
こんにちは。
DSPOBJD で、OPT=8 保守属性の表示 にて、ソースファイル・メンバーが分かるかと思います。
RE:もととなっているソースの確認方法 こだこだ さん [ 3月2日(月) 17時27分 ]
へっぽこさんへ。
めちゃくちゃ簡単な質問だったみたいで、申し訳ありませんでした。
確認できました。ありがとうございました。
> こんにちは。
> DSPOBJD で、OPT=8 保守属性の表示 にて、ソースファイル・メンバーが
分かるかと思います。
ブラックボックス化したAS400の調査について kom さん [ 3月2日(月) 17時59分 ]
初めて投稿します。(10年ほど前までAS400運用で従事しておりましたがもはや素人です)
現在AS400をお使いのお客様(おそらくi5)に連携システムの提案を考えています。
設計書や仕様書が残っていればいいのですが、開発した会社は既に無く、担当者も退職。
保守もハードウエアだけと完全にブラックボックス化してしまっています。

〇やりたいこと
新システムで取り込んだ売上データをAS400内の会計システムと連携させたい

〇ご相談内容
初回の状況ヒアリングでどのようなシステムが現在AS400内にあるか調べたい
・稼働システム(WRKACTJOBで一覧をみる?)
・使用しているDB(DB2を使用しているって確証とれたらokです)
・CL一覧の表示(現状テキストデータをDBに取り込む仕組みがあるそう)

社内でほかにAS400自体に触ったことある人が居なく、急きょ現地調査にいくことになってしまいまし
た。
作業は外注になると思いますが状況を整理しないと依頼もできない状況です。
お力添えをお願いします。 
RE:ブラックボックス化したAS400の調査について IKD さん [ 3月3日(火) 10時10分 ]
「新システムで取り込んだ売上データをAS400内の会計システムと連携させたい」が
目的なのですから System i (AS400) の内容をすべて調べる必要はありません。

さらに実際、運用中のようですから経理の振替データ・トランザクション・ファイルが
どれであるかわかれば十分ですから
経理の担当者に振替データ入力をメニュー・オプションから選択実行してもらって
そのジョブのレコード・ロックを調べればわかります。
10 分ほどあれば十分でしょう。

後は売上データからその振替データを送るプログラムを一本作るだけですね。
RE:ブラックボックス化したAS400の調査について kom さん [ 3月3日(火) 12時42分 ]
IKDさま

ご返信ありがとうございます。
大変助かります!

ジョブのレコードロックを調べる方法ですが、
WRKJOBDで該当するユーザの掴んでいるジョブを見付け
詳細表示からLIVを見るといった流れでよいですか?

売上データの反映はサードパーティ製のソフトを使用するか
開発会社様に依頼したいと思います。

RE:ブラックボックス化したAS400の調査について IKD さん [ 3月3日(火) 13時59分 ]
まず経理担当者に振替伝票の入力プログラムを
メニューから起動してもらいます。

画面が表示されたら同じ画面でシステム要求 + 3. 現行ジョブの表示 
で現行のジョブを表示して「14. オープンされたファイルの表示(活動状態の場合 」を
選択します。
すると使用中のデータ・ベースがどれであるかすべて表示されます。
この中に振替伝票のデータ・ファイルがあるはずです。

RUNQRY *NONE ライブラリー/ファイル で調べていくと中身が見えますので
判別することができます。
そのファイルを DSPFFD で見るとレコード・レイアウトもわかります。
RE:ブラックボックス化したAS400の調査について kom さん [ 3月3日(火) 17時4分 ]
IKDさま

ありがとうございます!
これでなんとか出来そうです。
一応コマンドはどこかで復習しときます。
ありがとうございました!
タイムスタンプ項目をRPG-ILEであつかう場合 はいぢ さん [ 3月5日(木) 15時42分 ]
お世話になります、RPG(ILE)初心者です。

タイムスタンプの項目はどのようにRPG内で扱えば良いでしょうか?
変数などに落として使うのでしょうか。
具体例としてサンプルコードをいただけると参考になります。

具体的には、タイムスタンプ項目で記録されているログを、キー>年月ごとに振り分け、
日付ごとにログの値を更新したいです。

 ファイル A(読込)
    キー  ログ      タイムスタンプ
   aaaaaa ああああ  2015-03-01 99:99:99
   aaaaaa いいいい   2015-03-02 99:99:99

 ファイル B(書込)
  キー  年月   1日     2日   3日…
   aaaaa  201503 ああああ いいいい
  
RE:タイムスタンプ項目をRPG-ILEであつかう場合 昔の人 さん [ 3月6日(金) 10時52分 ]
1バイトは8ビットです。
フィールド(データ)は、バイトの集まりです。

YYYYMMDDHHNNSS の14バイトの文字フィールドに、日付を入れる。
(Nは分です。)
必要に応じて、DSで切り分ける。
日付計算をしたいときには、日付フィールドに転送する。

裏技はお勧めしない。
RE:タイムスタンプ項目をRPG-ILEであつかう場合 はいぢ さん [ 3月10日(火) 9時22分 ]
ありがとうございます!

> 1バイトは8ビットです。
> フィールド(データ)は、バイトの集まりです。
> 
> YYYYMMDDHHNNSS の14バイトの文字フィールドに、日付を入れる。
> (Nは分です。)
> 必要に応じて、DSで切り分ける。
> 日付計算をしたいときには、日付フィールドに転送する。
> 
> 裏技はお勧めしない。
> 
論理区画(LPAR)間でのファイルのやり取り ハロ さん [ 3月5日(木) 16時22分 ]
こんにちは。
現在、論理区画間でファイルをやり取りするのに、SAVRSTOBJを使用しています。

しかし、SAVRSTOBJを使用した場合、
データ移行元のファイルをレコードロックしてしまい、
SAVRSTOBJ実行中はそのファイルが使用できなくなってしまいます。

これをロックせず、かつ、さらにスピーディにデータを移行できないものか、
と考えています。

何か御存じの方はご教示下さい。
宜しくお願いします。
RE:論理区画(LPAR)間でのファイルのやり取り IKD さん [ 3月9日(月) 21時10分 ]
SAVOBJ や SAVLIB には「活動状態保管」や「活動状態保管待ち時間」を制御するパラメータが
用意されています。
特に「活動中保管」を *YES にするとレコード・ロックを無視して保管されるはずですが
復元のことを考えると活動中の状態で保管するのは復元のときの整合性がとれなくなってしまう
可能性がありオススメはできません。
万が一、障害が発生して復元の必要が起きた時にどの時点が復元されたのか
わからなくなってしまうからです。
ODBCからのSQLで改ざん・削除されないように hmm さん [ 3月5日(木) 17時46分 ]
お教えください。EXCELからODBCでAS400のファイルにアクセスし、データを抽出するVBAを組んで
います。ちなみに私は開発サイドの人間です。帳票関係だけでなく営業的な分野でもエクセルが使い
やすいということでVBAでの開発も行っているところです。

エクセルを配布する時はソースをパスワードで見れないように保護していますが、GOOGLEなどで調
べたところ、パスワードを解析するソフトがあるようです。ユーザー側でパスワードを解析し、悪意
のあるSQL文を走らせられることを懸念しております。

AS400側でEXCELからのデータへの修正権限を与えないなどのやり方、もしくはストアドプロシ
ージャというのでしょうか、SQL文を開示せずコール文で行えるやり方、目的が達成できるのなら
方法は問いませんので、ご存じの方がおられたらご教授いただけないでしょうか。よろしくお願いい
たします。
S36環境でプロシージャーの作成 いさか さん [ 3月9日(月) 15時57分 ]
S36環境でプロシージャー(タイプ:OCL36)を作成しています。
RPG(タイプ:RPG36)内でUDSに値を入力後、プロシージャー内で
UDSの値を読み込む事は可能でしょうか?

RE:S36環境でプロシージャーの作成 IKD さん [ 3月9日(月) 20時58分 ]
UDS とは LDA の記述ですから当然、プロシージャーで
読み書きもできます。
くわしくは S/36 プロシージャーの手引きで。
RE:S36環境でプロシージャーの作成 いさか さん [ 3月10日(火) 11時0分 ]
回答ありがとうございました。


> UDS とは LDA の記述ですから当然、プロシージャーで
> 読み書きもできます。
> くわしくは S/36 プロシージャーの手引きで。
> 
RE:S36環境でプロシージャーの作成 S36 さん [ 3月10日(火) 18時12分 ]
置換式をつかう。
A:CRTLIB  ?L'101,10'?  こんな感じ。
*LDA の 101桁目から10バイト。
RE:S36環境でプロシージャーの作成 いさか さん [ 3月12日(木) 13時28分 ]
> 置換式をつかう。
> A:CRTLIB  ?L'101,10'?  こんな感じ。
> *LDA の 101桁目から10バイト。
> 

回答ありがとうございます。
?L'101,10'? で対応できました。

S36プロシージャーの解説書もなく、
ネット検索でも見つからなかったので、
助かりました。
ILEで配列とDSを使って集計したい。。。 はいぢ さん [ 3月10日(火) 11時25分 ]
こんにちは。

以下のような集計をしたいのですが、配列とデータストラクチャを指定してループ処理をすれば
良い、というところかではわかるのですが、サンプルとなるコードがまわりになくて、質問させ
ていただきます。

日ごとに1レコードづつレコードを持っているINFILEを、年月ごとに1?31まで日の項目で
1レコードあるOUTFILEに集計していきたいです。

お忙しいところ申し訳ないのですが、サンプルコードをいただけたらと思います。

RPG-ILE;

INFILE
-------------------------------
 KEYDATEVALUIE
  A201501011,000
  A201501021,500
  A20150103 2,000

OUTFILE
-------------------------------
 KEYYYYMMDay01Day02Day03 .....
  A2015011,0001,5002,000 ..... 

とりあえず、今は日ごとにIF文書いてEVALでセットというのを31コ書いていてカッコ悪いで
す。。。
IFSにあるxmlデータを更新したいのですが ゆうやん さん [ 3月10日(火) 11時55分 ]
この度はお世話になります。

他システムから配信されるxmlファイル(実際はtnsを使いまくったxsd)のうち、特定のデー
タだけバッチで更新したいのですが、この場合、どのような方法があるでしょうか?
RPGLEでxmlの読み込みは出来るようなのですが(←これもよくわかっていないので)、更新す
るにはどうしたらよいのかわかりません。

どうぞよろしくお願いします。
RE:IFSにあるxmlデータを更新したいのですが IKD さん [ 3月11日(水) 14時20分 ]
XML を RPG で出力するのは難しくはありませんが
XML の要素を ROG で取り出すには一般的には XMLパーサーと呼ばれる
XML を分解して構造解析する手法が取られます。
これは XMLを XMLパーサーと呼ばれるユーティリティ・プログラムに渡して
XMLパーサーのメソッドを RPG などの上位プログラムから動作させて
XML の要素を取り出すという手法です。
しかし

  - XML パーサーの扱いが結構、難しくて慣れる訓練を必要とする

  - RPG の XML サポートは PTF レベルが必要であり安定していないのと
    かなり重たいモジュールである

ことから RPG で今すぐ直接、XML を読み取るのは困難です。
実は XML とは構造化されたデータ・ベースであるので
DB2/400 データ・ベース化してしまえば扱いは簡単です。
しかし XML を DB2/400 データ・ベースに展開するシステムを開発していたのでは
目標は遠くなるばかりですから
 RPG で IFS ストリーム・ファイルとしての XML を読み取って解析することが
最も簡単になります。
ただし RPG で IFS ストリーム・ファイルをオープンして読み取るのも
慣れない人にとっては高い壁になります。
レベルの高いソフトウェア・ハウスへの外注を検討されることを
お勧めします。

[参考]

RPG による IFS開発

http://www.as400-net.com/cgi-bin/contents/tips.cgi?con=ifs

XMLパーサー:

http://www.as400-net.com/cgi-bin/contents/service.cgi?con=topics
RE:IFSにあるxmlデータを更新したいのですが ゆうやん さん [ 3月16日(月) 9時20分 ]
IKD様

早速のご回答ありがとうございました。はやくにご回答いただきながらお返事がお返事がなりま
して申し訳ありません。丁寧なご指導、ありがとうございます。

諸事情により外注は難しいので、一旦、cpyfrmstmfして物理ファイルに移動し、そこで読みと
らせて内部テーブルに用意し編集後別DBに出力した後にcpyしなおす、という原始的な方法に
なるかと思います。

またの折にはどうぞよろしくお願いいたします。

> XML を RPG で出力するのは難しくはありませんが
> XML の要素を ROG で取り出すには一般的には XMLパーサーと呼ばれる
> XML を分解して構造解析する手法が取られます。
> これは XMLを XMLパーサーと呼ばれるユーティリティ・プログラムに渡して
> XMLパーサーのメソッドを RPG などの上位プログラムから動作させて
> XML の要素を取り出すという手法です。
> しかし
> 
>   - XML パーサーの扱いが結構、難しくて慣れる訓練を必要とする
> 
>   - RPG の XML サポートは PTF レベルが必要であり安定していないのと
>     かなり重たいモジュールである
> 
> ことから RPG で今すぐ直接、XML を読み取るのは困難です。
> 実は XML とは構造化されたデータ・ベースであるので
> DB2/400 データ・ベース化してしまえば扱いは簡単です。
> しかし XML を DB2/400 データ・ベースに展開するシステムを開発していたのでは
> 目標は遠くなるばかりですから
>  RPG で IFS ストリーム・ファイルとしての XML を読み取って解析することが
> 最も簡単になります。
> ただし RPG で IFS ストリーム・ファイルをオープンして読み取るのも
> 慣れない人にとっては高い壁になります。
> レベルの高いソフトウェア・ハウスへの外注を検討されることを
> お勧めします。
> 
> [参考]
> 
> RPG による IFS開発
> 
> http://www.as400-net.com/cgi-bin/contents/tips.cgi?con=ifs
> 
> XMLパーサー:
> 
> http://www.as400-net.com/cgi-bin/contents/service.cgi?con=topics
PCOMMのフォントサイズについて TU さん [ 3月19日(木) 16時54分 ]
お世話になります。

PCOMMについて質問させてください。

PCOMM画面の文字が小さいので、フォントサイズを大きくしたいのですが、
どこかに設定があるのでしょうか?

教えてください。
よろしくお願いします。

※PCOMMのバージョンは、6.0です。
RE:PCOMMのフォントサイズについて stomo さん [ 3月20日(金) 9時26分 ]
編集-設定-外観-フォントだと思いますが、
ウィンドウサイズを最大化しているとなぜか選択できません。

可変の状態にすると選択できるようになると思います。
RE:PCOMMのフォントサイズについて TU さん [ 3月20日(金) 10時40分 ]
返信ありがとうございます。
早速、試してみたところ、フォントの種類は変更できたのですが、フォントの大きさは変更できません
でした。

質問としては、画面を最大化した際にフォントを大きくしたいです。
説明不足ですいません。

よろしくお願いします。

> 編集-設定-外観-フォントだと思いますが、
> ウィンドウサイズを最大化しているとなぜか選択できません。
> 
> 可変の状態にすると選択できるようになると思います。
RE:PCOMMのフォントサイズについて ASD さん [ 3月20日(金) 14時26分 ]
文字の大きさは自動的にきまります。
大きくしたら、字が かさなる 直前の大きさです。

もし 文字がまめつぶなら、WINDOWSの問題です。
PCOMMのバージョンが WINDOWSに合ってない。

PCOMM6 は 数種類ありPTFもある。詳細なPTFレベルも必要。
WINDOWSも 現場レベルでは、SPまで気にしてる。 
RE:PCOMMのフォントサイズについて TU さん [ 3月20日(金) 15時23分 ]
ASDさん返信ありがとうございます。

PCOMM画面の文字は、まめつぶではなく、普通に見ることが出来ます。
WINDOWSの問題ではなさそうです。

自動的にフォントサイズが決まるということは、
フォントサイズは変えれないということですか?
PCOMMのiniファイル等を変更してフォントサイズが変更できないですか?

よろしくお願いします。

> 文字の大きさは自動的にきまります。
> 大きくしたら、字が かさなる 直前の大きさです。
> 
> もし 文字がまめつぶなら、WINDOWSの問題です。
> PCOMMのバージョンが WINDOWSに合ってない。
> 
> PCOMM6 は 数種類ありPTFもある。詳細なPTFレベルも必要。
> WINDOWSも 現場レベルでは、SPまで気にしてる。 
RE:PCOMMのフォントサイズについて ASD さん [ 3月23日(月) 18時49分 ]
左右の空間を使いたいとの事ですか。

サポートしていません。
RE:PCOMMのフォントサイズについて TU さん [ 3月25日(水) 15時53分 ]
ASDさん返信ありがとうございます。
フォントサイズについては、変更できないことがわかりました。
ありがとうございました。
RE:PCOMMのフォントサイズについて hex さん [ 4月2日(木) 23時16分 ]
> ASDさん返信ありがとうございます。
> フォントサイズについては、変更できないことがわかりました。
> ありがとうございました。

自動サイズ変更フォントを使っていたらサイズは自動的に変更されてしまいます。
固定サイズフォントを使えばいいのでは。
iSeries Access for Windows V5.R3 サービスレベルSI24723 起動時のエラーについて hiro_48 さん [ 3月26日(木) 16時6分 ]
はじめまして。
hiro_48と申します。

数週間前より、一部のユーザーでエミュレータ起動時に
下記エラーメッセージが表示され起動できない現象が発生しております。

「PCSERR100-Windowsグローバルメモリー・ヒープから142バイトのメモリの割り当てに
失敗しました。1つ以上のwindowsアプリケーションをクローズして、再実行してください。」

・エミュレータの再インストール
・タスクマネージャなどでメモリ使用量、プロセスなど確認
しておりますが原因の特定には至らず、対応策に決まっております。

現行のIBMi OS は V7R1M0 です。
エミュレータバージョンはExcelなどのアドオン(データ転送機能)利用の為V5R3で対応したいと考えております。
エミュレータバージョンV7R1ではExcelなどのアドオン(データ転送機能)ではなく違うもののようで
膨大なExcelブックに対応するのも困難な状況です。

上記エラーで対応をされた方が要られましたら対応方法をご教示いただけますと
非常に助かります。
よろしくお願いいたします。



RE:iSeries Access for Windows V5.R3 サービスレベルSI24723 起動時のエラーについて hiro_48 さん [ 3月26日(木) 17時41分 ]
実行環境を追記いたします。

>端末OS:Windows7 Enterprise SP1
>ホスト機(AS/400):OS は V7R1M0
>エミュレーターバージョン:V5R3 SI24723適用済

>同じ環境でも正常に起動する場合、エラーになる場合がある。

【気づいた点:事象の発生するPCで確認しました】
 >ローカルのユーザーでは正常に起動しました。
 >特定のADユーザー(Active Directory)の場合、エラーになる。
 >上記以外のADユーザーではエラーにならない。


何卒ご教示の程お願いいたします。
RE:iSeries Access for Windows V5.R3 サービスレベルSI24723 起動時のエラーについて ASD さん [ 3月26日(木) 23時29分 ]
エラーメッセージは、ああなって、こうなっての、5段階下 くらいの内容。

PCのHDDに異常がある。
ファイルシステムにエラー または I/O エラー。

へんなフフトを入れた。特にワクチン系。
 
WINDOESをクリーンインストールして、CAを入れる。
いろいろ入れて 落ちたら それが 犯人です。

CA5.3 は XPまで ASD さん [ 3月28日(土) 10時49分 ]
そもそも CA5.3 の サポート は XPまで です。
SI30707 が でてます。 
RE:iSeries Access for Windows V5.R3 サービスレベルSI24723 起動時のエラーについて シャリース さん [ 3月27日(金) 20時3分 ]
AS/400のバージョンは異なりますが以前、同じ現象が発生していました。
AS/400が5.4でCAが5.3でした。
やはりすべてのPCではなく特定のPC数代が同じエラーで
エミュレータが立ち上がりませんでした。
PCを再起動してもダメでCAを一度削除して再導入しても現状は改善されませんでした。

IBMのソフトウェアサポートセンターに問い合わせした所、
CAの最新のPTFを充てて解決した記憶があります。
(もしかするとCAのバージョンアップをおこなったかもしれません)

エミュレータを事情により最新のものを使用できないという事で
この辺りに原因があるのではないでしょうか。
スプールコピーについて はたもち さん [ 3月31日(火) 15時15分 ]
教えてください。
自社iSeriesで作成した帳票を客先のiSeriesに転送したいです。
回線の繋がっていないiSeries間のスプールのコピーもしくは移動はどうすればよいのでしょうか?
よろしくお願いします。
RE:スプールコピーについて IKD さん [ 4月1日(水) 18時25分 ]
OS Ver5.4 以上であれば
スプールを含む OUTQ のSAVLIB ができるように改訂されましたので
例えば SAVLIB で

 スプール・ファイル・データ  . .   *NONE ===> *ALL

に変更して保管するとスプールも保管することができます。
*SAVF にこのようにして保管してから添付ファイルとしてメール送信することも
できます。

OS Ver5.4 未満であれば Spoolライターの試供版を使うと保管/復元することが
できます。

 http://www.officequattro.com/jpn/software/contents/spoolwriter.html
RE:スプールコピーについて はたもち さん [ 4月22日(水) 9時49分 ]
IKDさん
ご回答ありがとうございます。
返事遅くなりすいません。

OSはVer5.4ですので、SAVLIBを試してみました。
DSPSAVFで中身を見ると確かにスプールが保管されているようなのですが、
RSTLIBして中身(OUTQ)を見るとスプールが入っていませんでした。
RSTLIB時の設定に特別な何かが必要でしょうか??
申し訳ありませんが、RSTLIB時の方法も教えていただけませんでしょうか?
RE:スプールコピーについて IKD さん [ 4月22日(水) 15時6分 ]
RSTOBJ や RSTLIB でパラメータの指定で注意することは

 RSTLIB SAVLIB(MYLIB) DEV(*SAVF) MBROPT(*ALL) SPLFDTA(*NEW) ALWOBJDIF(*ALL)

 のようにして MBROPT(*ALL)とALWOBJDIF(*ALL) の両方を指定することです。
 この指定がないと復元先ライブラリーに存在するオブジェクトしか復元されません。
 例えば復元しようとするライブラリーが既に存在しているが OUTQ は存在しない場合は
 そのOUTQ は復元されません。
 
 MBROPT(*ALL)とALWOBJDIF(*ALL) を指定すれば存在に関わらず、すべてもれなく
 復元されます。

 66.ライブラリーを上書きで復元するには ?

   http://www.as400-net.com/tips/environment/66.html
RE:スプールコピーについて はなたま さん [ 4月27日(月) 16時7分 ]
IKDさん
ありがとうございます!できました!!

助かりました。
本当にありがとうございました。
CLの中でファイルの件数を確認するには? ロッテン さん [ 4月1日(水) 9時59分 ]
CLの中からファイルの件数を取得したいのですが、適当なコマンドや方法がありますでしょう
か?
RE:CLの中でファイルの件数を確認するには? IKD さん [ 4月1日(水) 18時30分 ]
「ファイルの件数」とは、もしかして「ファイル仲のレコード件数」のことを
意味しておられますか ?

もしそうであれば RPG プログラムであれば、ファイルをオープンしたときの
INFDS を参照すれば簡単にレコード件数を把握することができますが
CLP でレコード件数を調べることはできません。

なぜレコード件数の把握が必要となるのかよろしければ
お聞かせください。
他の方法で問題を解決できるかもしれません。
RE:CLの中でファイルの件数を確認するには? @445 さん [ 4月2日(木) 11時15分 ]
DCL &RCD *DEC (10 0)
RTVMBRD    FILE(xxxxxxx) NBRCURRCD(&RCD) 

で取得できると思います。


> CLの中からファイルの件数を取得したいのですが、適当なコマンドや方法がありますでしょう
> か?
RE:CLの中でファイルの件数を確認するには? hex さん [ 4月2日(木) 23時6分 ]
> CLの中からファイルの件数を取得したいのですが、適当なコマンドや方法がありますでしょう
> か?

「ファイルの本数」なのか「レコード件数」なのか、微妙な言い回しですが


とあるライブラリ(hogelib)に存在するファイルの本数を求める

DCL  &FCNT  *DEC  (10 0)
DSPOBJD  OBJ(hogelib/*ALL)  OBJTYPE(*FILE)  OUTPUT(*OUTFILE)  OUTFILE(QTEMP/tempf)
RTVMBRD  FILE(QTEMP/tempf)  NBRCURRCD(&FCNT)

DSPOBJDコマンドで指定ライブラリ中の、全てのファイル情報をファイルに出力します。
出力したファイルのレコード件数=ファイル数 となります。

注意
RTVMBRDコマンドはCLP中でしか使えません。
パラメータNBRCURRCDには、数字タイプ10桁の変数を指定する必要があります。
タイプ*FILEのオブジェクトには、画面ファイルや印刷ファイルも含まれます。
物理ファイルのみ選択したい場合は、OUTFILEを読み込み、*PFのレコードをカウントしてくださ
い。
DDMファイルのチェック Noric さん [ 4月6日(月) 18時36分 ]
こんにちは

弊社には遠隔地に複数のAS400が設置されDDMファイルにてデータの参照を
行っております。
そのAS400は通常は同じ時間に電源がオン、オフされるのですが停電などで
同時に稼働しないケースがあり得ます。
参照される側のAS400が稼働していない場合、DDMファイルをRPGプログラムで
使用しようとすると当然OPENエラーにて落ちますが、そのRPGプログラム実行前に
DDMファイルが使用不可ならRPGプログラムの実行を回避したいと考えています。
CLプログラム等でDDMファイルの使用可・不可が確認できる方法は有りますか?

よろしくお願いします
RE:DDMファイルのチェック @445 さん [ 4月8日(水) 18時6分 ]
APING      RMTLOCNAME(********) MSGMODE(*QUIET)  
             NBRITER(1) WAITTIME(*NOWAIT)        
MONMSG CPF91CC *N GOTO ANEND

とか

DSPFD DDMLIB/FILENAME SYSTEM(*RMT) 
MONMSG CPF0000 *N GOTO ABEND

とか

CPYF DDMLIB/FILENAME QTEMP/DUMMY *N *N *ADD *YES
MONMSG CPF0000 *N GOTO ABEND
 



> こんにちは
> 
> 弊社には遠隔地に複数のAS400が設置されDDMファイルにてデータの参照を
> 行っております。
> そのAS400は通常は同じ時間に電源がオン、オフされるのですが停電などで
> 同時に稼働しないケースがあり得ます。
> 参照される側のAS400が稼働していない場合、DDMファイルをRPGプログラムで
> 使用しようとすると当然OPENエラーにて落ちますが、そのRPGプログラム実行前に
> DDMファイルが使用不可ならRPGプログラムの実行を回避したいと考えています。
> CLプログラム等でDDMファイルの使用可・不可が確認できる方法は有りますか?
> 
> よろしくお願いします
RE:DDMファイルのチェック Noric さん [ 4月9日(木) 15時13分 ]
@445様
回答ありがとうございます

実は調査を続けていて「RTVMBRD」辺りが良いかなと思っておりました
提案頂いたものと再度確認を行ってみたいと思います
ただCPYFは元のファイルにレコードが無いとエラーになるので、
使用不可の場合と見分けがつかないのではと思います

ありがとうございました
RE:DDMファイルのチェック hex さん [ 4月9日(木) 22時55分 ]
> ただCPYFは元のファイルにレコードが無いとエラーになるので、

MBROPT(*REPLACE) ではコピー元ファイルにレコードが無いとエラーになりますが
MBROPT(*ADD) ならエラーになりません。
EXECUTE IMMEDIATE でエラーが発生したかどうかを知る方法 T.K さん [ 4月8日(水) 10時50分 ]
現在、EXECUTE IMMEDIATE を使用して、
動的に編集した大量のSQL文を実行するプログラム(SQLRPGLE)を作成中なのですが、
この命令を実行してエラーが発生した場合に
そのエラーの内容を取得する方法がわかりません。

たとえば、
"UPDATE TBL1 SET FLDB='Y' WHERE FLDA='X'" というSQLを実行した場合で、
TBL1 に FLDA や FLDB というフィールドが存在しなかった場合、
実行時にはエラーにならず、
GET DIAGNOSTICS で SQLSTATE や SQLCODE を見てみると、
"00000" や 0 となっています。
ちなみに、正しい更新が行われた場合は、ROW_COUNT で正しい件数が取得できます。

SQL文が不正(=構文としては正しいが実行は出来ない)場合に、
結果がエラーである事や、エラーの内容を取得する方法を、
ご存知の方がいらしたらご教示願います。

なお、私のAPIの理解が不足しているのかもせれませんが、
QSQCHKS API で事前にチェック出来ないかと試したところ、
構文チェック以上の事(=SQLRPGLEでやっているプレコンパイルのような、
テーブルやフィールドの属性までチェックする事)は出来ませんでした。
RE:EXECUTE IMMEDIATE でエラーが発生したかどうかを知る方法 @445 さん [ 4月8日(水) 18時11分 ]
/FREE
PR2='UPDATE QTEMP/DUMMY SET AAA=123';
EXEC SQL EXECUTE IMMEDIATE :PR2 ; 
IF SQLCOD <> 0 ;                  
   DSPLY SQLCOD ;                 
   *INLR = *ON ;                  
ENDIF ;                           
/END-FREE
ざっくりこんな感じでAAAが存在しない場合DSPLYが表示されましたが...?。



> 現在、EXECUTE IMMEDIATE を使用して、
> 動的に編集した大量のSQL文を実行するプログラム(SQLRPGLE)を作成中なのですが、
> この命令を実行してエラーが発生した場合に
> そのエラーの内容を取得する方法がわかりません。
> 
> たとえば、
> "UPDATE TBL1 SET FLDB='Y' WHERE FLDA='X'" というSQLを実行した場合で、
> TBL1 に FLDA や FLDB というフィールドが存在しなかった場合、
> 実行時にはエラーにならず、
> GET DIAGNOSTICS で SQLSTATE や SQLCODE を見てみると、
> "00000" や 0 となっています。
> ちなみに、正しい更新が行われた場合は、ROW_COUNT で正しい件数が取得できます。
> 
> SQL文が不正(=構文としては正しいが実行は出来ない)場合に、
> 結果がエラーである事や、エラーの内容を取得する方法を、
> ご存知の方がいらしたらご教示願います。
> 
> なお、私のAPIの理解が不足しているのかもせれませんが、
> QSQCHKS API で事前にチェック出来ないかと試したところ、
> 構文チェック以上の事(=SQLRPGLEでやっているプレコンパイルのような、
> テーブルやフィールドの属性までチェックする事)は出来ませんでした。
> 
RE:EXECUTE IMMEDIATE でエラーが発生したかどうかを知る方法 T.K さん [ 4月8日(水) 18時32分 ]
@445さん
T.Kです。

ありがとうございます。当方の勘違いでした。
というのも、
GET DIAGNOSTICS :WKROWS = ROW_COUNT
のあとで SQLSTATE、SQLCODE を取得していました。
これでは GET DIAGNOSTICS の実行状況に置き換わっていますね。

皆様騒がせして申し訳ありませんでした。

> /FREE
> PR2='UPDATE QTEMP/DUMMY SET AAA=123';
> EXEC SQL EXECUTE IMMEDIATE :PR2 ; 
> IF SQLCOD <> 0 ;                  
>    DSPLY SQLCOD ;                 
>    *INLR = *ON ;                  
> ENDIF ;                           
> /END-FREE
> ざっくりこんな感じでAAAが存在しない場合DSPLYが表示されましたが...?。
> 
> 
> 
> > 現在、EXECUTE IMMEDIATE を使用して、
> > 動的に編集した大量のSQL文を実行するプログラム(SQLRPGLE)を作成中なのですが、
> > この命令を実行してエラーが発生した場合に
> > そのエラーの内容を取得する方法がわかりません。
> > 
> > たとえば、
> > "UPDATE TBL1 SET FLDB='Y' WHERE FLDA='X'" というSQLを実行した場合で、
> > TBL1 に FLDA や FLDB というフィールドが存在しなかった場合、
> > 実行時にはエラーにならず、
> > GET DIAGNOSTICS で SQLSTATE や SQLCODE を見てみると、
> > "00000" や 0 となっています。
> > ちなみに、正しい更新が行われた場合は、ROW_COUNT で正しい件数が取得できます。
> > 
> > SQL文が不正(=構文としては正しいが実行は出来ない)場合に、
> > 結果がエラーである事や、エラーの内容を取得する方法を、
> > ご存知の方がいらしたらご教示願います。
> > 
> > なお、私のAPIの理解が不足しているのかもせれませんが、
> > QSQCHKS API で事前にチェック出来ないかと試したところ、
> > 構文チェック以上の事(=SQLRPGLEでやっているプレコンパイルのような、
> > テーブルやフィールドの属性までチェックする事)は出来ませんでした。
> > 
RE:EXECUTE IMMEDIATE でエラーが発生したかどうかを知る方法 IKD さん [ 4月9日(木) 11時54分 ]
下記のRPGソースに SQLのエラーが発生したときの取得方法を解説しています。


http://www.as400-net.com/tips/dfu-query-sql/20.html
AS上にあるTXTファイルのハッシュ値を求めたい eye さん [ 4月21日(火) 15時7分 ]
AS→Windowsサーバーへ、TXTファイルのFTP転送を行うのですが、
これが時折失敗しているようなのです。
そこで、FTPで送る前と送った後のそれぞれのハッシュ値を比較調査したいと思っています。
Windowsの方は、色々と便利なツールがあるようなので、何とかなりそうですが、
AS側のファイルのハッシュ値を求める方法が見つかりません。
どなたかご存知の方がいらっしゃいましたら、ご教授願えませんでしょうか。

ASのバージョン:V7R1M0 L00
RE:AS上にあるTXTファイルのハッシュ値を求めたい だらっくま さん [ 4月21日(火) 16時33分 ]
PASE環境の OpenSSL を使うと md5/sha1 などのハッシュ値が求められるよう
です。

  $ openssl md5 UPLOAD.DAT                             
  MD5(UPLOAD.DAT)= 210768f3e62414d6eaebfed31ac1f0d4

但し、TXTファイルとのことですが、
ftp転送時にEBCDIC/ASCII変換を行っているなら、ハッシュ値は一致しないかも?
RE:AS上にあるTXTファイルのハッシュ値を求めたい eye さん [ 4月21日(火) 17時18分 ]
> PASE環境の OpenSSL を使うと md5/sha1 などのハッシュ値が求められるよう
> です。
> 
>   $ openssl md5 UPLOAD.DAT                          
   
>   MD5(UPLOAD.DAT)= 210768f3e62414d6eaebfed31ac1f0d4
> 
> 但し、TXTファイルとのことですが、
> ftp転送時にEBCDIC/ASCII変換を行っているなら、ハッシュ値は一致しないかも?
> 

回答ありがとうございます。
すみません、難しい単語が多くて全部は理解出来ていないのですが、
文字コードについては、
BINARY     
LTYPE C 943
と、指定しています。
RE:AS上にあるTXTファイルのハッシュ値を求めたい eye さん [ 4月22日(水) 11時16分 ]
> PASE環境の OpenSSL を使うと md5/sha1 などのハッシュ値が求められるよう
> です。
> 
>   $ openssl md5 UPLOAD.DAT                          
   
>   MD5(UPLOAD.DAT)= 210768f3e62414d6eaebfed31ac1f0d4
> 
> 但し、TXTファイルとのことですが、
> ftp転送時にEBCDIC/ASCII変換を行っているなら、ハッシュ値は一致しないかも?
> 

OpenSSL、md5/sha1 というのは、標準装備されているものなんでしょうか?
何かインストールが必要ですか?
無知で申し訳ないのですが、よろしくお願い致します。
RE:AS上にあるTXTファイルのハッシュ値を求めたい IKD さん [ 4月22日(水) 18時31分 ]
まずご自分がどのようなことをされたのか正確にかつ詳しく述べないと
回答は難しいかと思います。
ご質問ははじめは System i からの Ftpで送信しているように聞こえますが
途中での話では Windows サーバー側から Get しているかに聞こえます。
PASE 環境の使い方や OpenSSL もここまで回答を頂いたのですから
ご自分でも調べてみてはどうでしょう?

障害は、どのような障害であるのかを詳しく記述されないと
回答ができないかと思います。
失敗だけではエラー・メッセージや環境などを調査しないと
データの比較だけでは解決は難しいでしょう。
まずご自分の情報を出してみてください。
RE:AS上にあるTXTファイルのハッシュ値を求めたい eye さん [ 4月23日(木) 13時4分 ]
> まずご自分がどのようなことをされたのか正確にかつ詳しく述べないと
> 回答は難しいかと思います。
> ご質問ははじめは System i からの Ftpで送信しているように聞こえますが
> 途中での話では Windows サーバー側から Get しているかに聞こえます。
> PASE 環境の使い方や OpenSSL もここまで回答を頂いたのですから
> ご自分でも調べてみてはどうでしょう?
> 
> 障害は、どのような障害であるのかを詳しく記述されないと
> 回答ができないかと思います。
> 失敗だけではエラー・メッセージや環境などを調査しないと
> データの比較だけでは解決は難しいでしょう。
> まずご自分の情報を出してみてください。

アドバイスありがとうございます。

しかしながら、私もどのような障害なのか、分からないのです。
使用したデータも、ログも残っていなくて、
そもそも失敗なのかどうかさえ怪しい状況です。

PASE環境、OpenSSLについても、検索してみましたが、
私には理解出来ませんでした。(英語は読めません)
社内の人間にも聞いてみましたが、分かる者がいないそうです。

社内で、そういう回答だったので、
今回は、出来ない、ということで終わりにしようと思います。

みなさま、ありがとうございました。
DSPFのCHANGEキーワードについて LiR さん [ 4月30日(木) 20時50分 ]
プログラム作成時に参考にしたプログラムの中でCHANGEキーワードが使われていました。
普段使用したことがないので、そのまま流用したのですが、対象の画面の値を変更してもインジケータ
ーがオンになってきません。
どのような場合に、CHANGEキーワードで指定したインジケーターがオンになるのでしょうか?
よろしくお願いいたします。
RE:DSPFのCHANGEキーワードについて ASD さん [ 5月2日(土) 0時13分 ]
CHANGE(05) こんな感じですか。
ONなっても 確認する前に OFF なってるとか。
RE:DSPFのCHANGEキーワードについて LiR さん [ 5月7日(木) 10時55分 ]
> CHANGE(05) こんな感じですか。
> ONなっても 確認する前に OFF なってるとか。
> 

DSPソースはこんな感じになっています。

A          R DSP01                                                  
A                                      CLRL(22)                     
A                                      OVERLAY                      
A                                      PRINT(*LIBL/QPRINT)          
A                                      CF03(03 ' 終了 ')            
A                                      CHGINPDFT(LC)                
A                                      CHANGE(71)                   

このDSP01をEXFMTした後に*IN71の内容を確認してみたのですが、画面の値を変更していても、して
いなくてもOFFなんです。
イメージとしては値を変更したら*IN71がONになってほしいなと。
なにか、錯覚してます。 ASD さん [ 5月7日(木) 15時37分 ]
CRTDSPF が 落ちてるとか。
RE:なにか、錯覚してます。 LiR さん [ 5月7日(木) 16時16分 ]
> CRTDSPF が 落ちてるとか。
> 

DSPソース見にくかったですね。すみません。

コンパイルが正常に終了していないということでしょうか?
問題なくオブジェクトが作成されています。

CHANGEを使用するためにコンパイルオプションが必要とか
RPG側に何か指定するものがあるのでしょうか?
完全なDDS ASD さん [ 5月7日(木) 17時4分 ]
> > CRTDSPF が 落ちてるとか。
> > 
> 
> DSPソース見にくかったですね。すみません。
> 
> コンパイルが正常に終了していないということでしょうか?
> 問題なくオブジェクトが作成されています。
> 
> CHANGEを使用するためにコンパイルオプションが必要とか
> RPG側に何か指定するものがあるのでしょうか?
RE:完全なDDS LiR さん [ 5月8日(金) 10時31分 ]
DSPソース

R DSP01
                          CLRL(22)
                          OVERLAY
                          PRINT(*LIBL/QPRINT)
                          CF03(03 ' 終了 ')
                          CHGINPDFT(LC)
                          CHANGE(71)
                          RTNCSRLOC(&D1RTNRCD &D1RTNFLD)
                          CSRLOC(D1LIN D1POS)
  D1RTNRCD      10A  H
  D1RTNFLD      10A  H
  D1LIN          3S 0H
  D1POS          3S 0H
  D1AAAA         5Y 2B  3 13
                            CHECK(RB)
                            DSPATR(UL)
31                          DSPATR(RI PC)
                            EDTWRD('   .  ')
キーワードの不足 ASD さん [ 5月8日(金) 19時1分 ]
> DSPソース
> 
> R DSP01
>                           CLRL(22)
>                           OVERLAY
>                           PRINT(*LIBL/QPRINT)
>                           CF03(03 ' 終了 ')
>                           CHGINPDFT(LC)
>                           CHANGE(71)
>                           RTNCSRLOC(&D1RTNRCD &D1RTNFLD)
>                           CSRLOC(D1LIN D1POS)
>   D1RTNRCD      10A  H
>   D1RTNFLD      10A  H
>   D1LIN          3S 0H
>   D1POS          3S 0H
>   D1AAAA         5Y 2B  3 13
>                             CHECK(RB)
>                             DSPATR(UL)
> 31                          DSPATR(RI PC)
>                             EDTWRD('   .  ')
キーワードの不足  ASD さん [ 5月8日(金) 19時13分 ]
CF03(03) の *IN03 は 帰ってますか。
(プログラムは KC で処理するのが 普通)

帰ってる  こうなると IBM に聞くしかない。

帰ってない ファイルレベル レコードレベルのキーワードが不足してる。

 A                                      DSPSIZ(*DS3 *DS4)                   
 A                                      USRDSPMGT CHGINPDFT INDARA          
 A                                      HELP                                
 A          R XXXXXAA                                                      
 A                                      DSPMOD(*DS3)                        
 A                                      PRINT                               
 A                                      INVITE                              
 A                                      SLNO(01)                            
 A                                      CLRL(*ALL)                          
 A                                      ALWROL                              
 A                                      CF07 CF08 CF09 CF10 CF19    

昔からの枕ことば このへんに ヒントがあるかも。 
        
RE:キーワードの不足  LiR さん [ 5月8日(金) 20時13分 ]
> CF03(03) の *IN03 は 帰ってますか。
> (プログラムは KC で処理するのが 普通)

⇒*IN03は帰ってます。
 ということは聞くしかないですか・・・
> 帰ってる  こうなると IBM に聞くしかない。
 

> 帰ってない ファイルレベル レコードレベルのキーワードが不足してる。

念のために、キーワード追加してみました。
ファイルレベル:USRDSPMGT CHGINPDFT INDARA HELP
レコードレベル:INVITE     SLNO(01)   ALWROL  

やっぱり変化ありませんでした。

もう少し、調査してみます。
ありがとうございました。
RE:キーワードの不足  @445 さん [ 5月11日(月) 9時50分 ]
DDSのマニュアルには

コマンドアテンションキー(CAXX,HELP,PRINT,HOMEまたはCLEAR)を押した場合には
CHANGE応答標識はオンになりません。

と書いてあります。

ご参考まで。

> CHANGE(05) こんな感じですか。
> ONなっても 確認する前に OFF なってるとか。
> 
RE:キーワードの不足  IKD さん [ 5月9日(土) 10時1分 ]
ASDさんの DSPF の記述には問題ありません。

CHANGE(71) キー・ワードは確実に動作していることを実際に
DSPF + CLP で動作を下記のソースで確認テストしました。

 DSPF: TEST02FM ( http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QDSPSRC.FILE/TE
ST02FM.MBR )
---------------------------------------------------------------------------
-----------
0001.00      A                                      DSPSIZ(24 80 *DS3)   
0002.00      A                                      MSGLOC(24)           
0003.00      A                                      PRINT                
0004.00      A          R DSP01                                          
0005.00      A                                      CLRL(22)             
0006.00      A                                      TEXT(' 明細画面 01') 
0007.00      A                                      CF03(03 ' 終了 ')    
0008.00      A                                      CHGINPDFT            
0009.00      A                                      CHANGE(71)           
0010.00      A            D1AAAA         5Y 2B  3 13                     
0011.00      A                                      CHECK(RB)            
0012.00      A                                      DSPATR(UL)           
0013.00      A                                      EDTWRD('   .  ')     
---------------------------------------------------------------------------
----------

 CLP : TEST02CL ( http://218.44.135.18/QSYS.LIB/PGMRLIB.LIB/QCLSRC.FILE/TES
T02CL.MBR )
---------------------------------------------------------------------------
-----------
0001.00              PGM                                                  
0002.00              DCLF       FILE(TEST.COM/TEST02FM)                   
0003.00                                                                   
0004.00  DSPLY:      SNDRCVF    RCDFMT(DSP01)                             
0005.00              IF         COND(&IN03 *EQ '1') THEN(RETURN)          
0006.00              IF         COND(&IN71 *EQ '1') THEN(DO)              
0007.00              SNDPGMMSG  MSG('*IN71 は ON です。 ') MSGTYPE(*DIAG) 
0008.00              ENDDO                                                
0009.00              ELSE       CMD(DO)                                   
0010.00              SNDPGMMSG  MSG('*IN71 は OFF です。 ') MSGTYPE(*DIAG)
0011.00              ENDDO                                                
0012.00              ENDPGM                                               
---------------------------------------------------------------------------
-----------

CHANMGE(71) のは問題はなくても実際の DSPF ソースには SETOFF が記述されているとか
標識 71 が DSPF の SFLレコード内でも定義されていたりすると
SFL の操作によって OFF になる場合があります。
ERRMSG や SFLMSG キーワードに同じ標識 71 が定義されていると OFF になります。

要はプログラム・コーディングのどこかにミスがあるはずですので
 71 という文字列を SEU で SCAN して調べてください。
どこか他で使用されているはずです。


なお *IN03 の使用は決して特殊ではありません。むしろ一般的です。
*INKC のほうが S/36 時代の使用方法を引き継いで゜いるので特殊なケースです。
RE:キーワードの不足  LiR さん [ 5月9日(土) 14時29分 ]
ありがとうございます。
もう一度じっくりソースを見直しました。
同じインジケータを使用しているというミスがありました。

CHANGE、ちゃんと認識してくれました。
お礼 LiR さん [ 5月9日(土) 14時31分 ]
ASDさん
IKDさん 

無事にCHANGEキーワードを使用することができました。
お時間いただきありがとうございました。
これからはもう少しじっくりソースを確認してミスのないようにします。

意思疎通は ムズイ ASD さん [ 5月9日(土) 21時42分 ]
ONなっても 確認する前に OFF なってるとか。

標識の たらいの まわしを 言ってます。
開示されない 部分は、回答者には、見えません。
ジョブのいるジョブキューの取得 くらら さん [ 5月4日(月) 21時58分 ]
ジョブが今どの待ち行列にいるかをClプログラム内で検知できるでしょうか?
RTVJOBAにも適当な項目が見当たらず、APIからも見つけることができませんでした。

やりたいことは、特定のジョブ待ち行列にあるジョブの中から特定のジョブを別のジョブ待ち行
列に移動すること、ことをコーディングして自動処理をしたいのです。
RE:ジョブのいるジョブキューの取得 IKD さん [ 5月6日(水) 10時21分 ]
まずはじめに JOBQ の中に待機中の状態ではJOBではありませんので
自分自身から RTVJOBA や API でもJOBとしての調査はできません。
JOBQ に存在している状態ではまだ活動JOB にはなっていないのです。

次に JOBQ に投入されたときに監視することができればよいのですが
JOBQ 投入のトリガーとしてユーザー・プログラムを起動する方法もありません。
つまりJOBQ の投入を察知できる方法もなさそうです。

ですので、その対象となるJOBを投入直前ではじめから適切なJOBQ に投入するように
投入側の CLP で制御するようにするのはどうでしょうか ?

JOBQ を監視できたとしてもそのJOB がJOBQ の先頭にあったのでは
直ちに実行されてしまいますので、やはり投入前に検査して適切なJOBQ に投入するように
お勧めします。
物理ファイルのメール添付 こだこだ さん [ 5月18日(月) 16時23分 ]
PFのデータをメールで送信します。
CSV形式で添付してます。
DBTOMAILを使ってますが、添付ファイルには
項目名がありません。データのみとなってます。
項目名も添付するにはどうしたらよいでしょうか。
DBTOMAILでは不可能なのでしょうか。
RE:物理ファイルのメール添付 IKD さん [ 5月19日(火) 16時22分 ]
そもそもは DBTOMAIL って何でしょう ?
残念ながら聞いたことがありません。

i5/OS の用語でもないので誰からも回答がないのは
そのせいでしょう。
また何をしたのか、もう少し詳しく他人にもわかるよに
説明されないと ....
RE:物理ファイルのメール添付 こだこだ さん [ 5月19日(火) 20時13分 ]
申し訳ありません。
AS400用のフリーのメールツールです。
DBTOMAILとSRCTOMAILとあり、PFを添付して送れたり、ソースの内容を送れた
りします。
このコマンドと配信先のSMTPサーバーさえ意識していればそういったことが出
来るものです。

質問としては、このコマンドでなくて良いのです。
メールにPFを添付してCSVメール送信、しかも項目名TEXTも一番最初の行に付
与されて送る
ことは可能なのでしょうか、その方法はどういった方法でしょうか、という内
容です。

説明が不明確で申し訳ありません。お願い致します。
RE:物理ファイルのメール添付 こだこだ さん [ 5月20日(水) 10時42分 ]
> 申し訳ありません。
> AS400用のフリーのメールツールです。
> DBTOMAILとSRCTOMAILとあり、PFを添付して送れたり、ソースの内容を送れた
> りします。
> このコマンドと配信先のSMTPサーバーさえ意識していればそういったことが出
> 来るものです。
> 
> 質問としては、このコマンドでなくて良いのです。
> メールにPFを添付してCSVメール送信、しかも項目名TEXTも一番最初の行に付
> 与されて送る
> ことは可能なのでしょうか、その方法はどういった方法でしょうか、という内
> 容です。
> 
> 説明が不明確で申し訳ありません。お願い致します。
RE:物理ファイルのメール添付 こだこだ さん [ 5月20日(水) 10時43分 ]
PFからストリームファイルへの変換 で解決することにしました。
回答をくれた方、ありがとうございました。
PFからストリームファイルへの変換 こだこだ さん [ 5月20日(水) 10時41分 ]
PFからSTMFへ変換して日本語列名のついたCSVを作成したいと思ってます。
CPYTOIMPFでは、英字のフィールド名はつけることができましたが、COLHDG 
の内容はつけることができませんでした。
ADDCOLNAM パラメーターには、*NONE *SQL *SYS しかありません。
不可能なのでしょうか。
いっきは無理です ASD さん [ 5月20日(水) 15時35分 ]
コマンドとRPGとで、CLを組み立てます。
RE:いっきは無理です こだこだ さん [ 5月20日(水) 18時49分 ]
> コマンドとRPGとで、CLを組み立てます。
RE:いっきは無理です こだこだ さん [ 5月20日(水) 18時50分 ]
> > コマンドとRPGとで、CLを組み立てます。
ASD様
コマンドは何で、RPGとCLではどのようなことをするのですか?
RE:いっきは無理です こだこだ さん [ 5月21日(木) 15時6分 ]
DSPFFDの結果をPFに出力します。
欄見出しの項目を読み込みながら、カンマ区切りで結合していって
最後に別のPFにWRITEします。
そのデータをCPYIMPFでSTMFへREPLACEでコピー、
その後にデータ部をADDでコピーします。
そのSTMFをメール添付で送信すれば、日本語の見出し付きCSVを
添付して送信することができるはずです。

しかし、これ以外に簡単な方法はないのでしょうか。
これしかないか、それとも他にあるのか教えていただけませんでしょうか。
ASのデータをPCに転送 ASD さん [ 5月21日(木) 16時12分 ]
ASのデータをPCに転送
AS400を扱えば ついて回ります。
正しい手順を、ひとつ覚えれば、一生飯が食えるのに、
手抜きしたいと言う発想には、ついていけない。

DSPFFDをFILEに出力。
RPGで編集。
PCに転送。

全体をCLにすれば、ハンドリングは不要になる。
転送方法には、いろいろあるが、開示できない。
RE:ASのデータをPCに転送 こだこだ さん [ 5月21日(木) 17時55分 ]
そういった機能が既にあるかどうかが分からなくて質問していました。
怠慢なことをして申し訳ありませんでした。
度々回答いただいてありがとうございました。
素材が提供されてる ASD さん [ 5月21日(木) 18時3分 ]
出来合いのプレハブは無い。
すぐれた素材を提供する。
ひとつの、考えだから、良いとも、悪いとも言えない。

なれれば、なんて事は、ない。
IBMは 最近 情報提供しなくなった。
新規の人は、苦労すると 思う。
RE:素材が提供されてる IKD さん [ 5月21日(木) 21時17分 ]
教えを乞うのにもっと簡単な方法はないですか? と
言ってはダメでしょう。

CPYTOIMPF による CSV出力は フィールド名の出力であって
欄見出し(COLHDG)は出力されません。
そのオプションもありません。
フィールドのテキストや欄見出しをCSV出力しようとすれば
API を駆使して任意のデータ・ベースを読み取るプログラムを
自作するしかありませんが

DSPFFD の欄見出しをまず CSV のヘッダーとして出力して
これに CPYTOIMIF で ADD するという発想は独創的で
素晴らしいアイデアであると思います。
何よりも簡単に実現できる方法ですね。
ADD によって CSVを合成するという発想がユニークです。

最も簡単な実現方法だと思います。
回答を聞いて理解できないからと言って「他の方法は ?」と聞くのは
せっかく素晴らしいアイデアを教えてくれた人に失礼でしょう。
まずはお礼を述べてご自分でも試してはどうでしょうか ?
簡単だと思いますよ。

この程度で難しいとか面倒と感じられるのであれば
それを先に解決すべきですね。
まずは回答者にお礼とお詫びですね。
RE:素材が提供されてる こだこだ さん [ 5月23日(土) 17時37分 ]
回答ありがとうございます。

やり取りを見てもらえればわかりますが、
DSPFFDからCPYIMPFの案は自分からあげてます。
その後確認もとりました。
その上で再度質問しています。

ただそのほかの方法はどんなものがあるか聞いてみ
たかっただけです。

たしかに「簡単な...」という表現大変失礼しました。
申し訳ありません。

APIを駆使して、ということでこのあたりをまずは
すぐ聞く前に一度学習してから問い合わせることに
します。

ありがとうございました。
RE:素材が提供されてる こだこだ さん [ 5月23日(土) 18時54分 ]
いや、申し訳ありません。
回答していただいたことに対してまず、お礼でした...。
深く反省しました。
今後質問する際は注意致します。
回答いただいて本当にありがとうございました。
また宜しくお願い致します。
AS/400で流通BMSを扱う方法について シャリース さん [ 5月22日(金) 9時42分 ]
お世話になります。
ご相談させて下さい。

私のお客様に流通系のお客様がいます。
現状、JCA手順でEDIで受注データのやり取りをおこなっていますが
今後、JCA手順は無くなっていく方向の様で、
代わりに流通BMSという仕組みに変わっていくらしいです。

そこでAS/400でどのようにデータを受けるのか
調べたのですが今一イメージが掴めません。

現状の全銀/JCA手順で有ればV.24回線を準備しTOOLBOXに
「4. JCA手順通信メニュー 」
「5. 全銀ベーシック手順通信メニュー」
「7. 全銀 TCP/IP 手順通信メニュー」
が用意されているので上記の通信手順で接続する場合は
詳細が分らなくても何とかなっていますが、
「流通BMS」は用意されていません。

そもそも「流通BMS」はインターネットを経由して
XML形式のデータを受取るようなのですが
そんな事がAS/400で可能なのでしょうか。

Toolbox+PLUSにMAXクラウドというサービスがあって
月額費用を払って使えるサービスが有るのですが
新たなインフラ費用をかけずにAS/400で流通BMSを取り込む
仕組みは構築できるのでしょうか?

そもそもAS/400だけで流通BMSでデータの送受信が可能かどうか
新たなインフラを追加しなければいけないのか、そればどのようなものか、
対応されている方がいらっしゃればヒントかアドバイス頂けると助かります。

PCのデータをASに取り込む ASD さん [ 5月22日(金) 13時7分 ]
AS400で、可能か。ずいぶん高飛車な発言ですね。
C++があるので、どんな物でも、スキルが有れば、構築できます。

PCデータをAS400に、入れる仕事は、よく有ると、思います。
便利 簡単 を考えるのは プロトタイプを 作ってからです。
1. PCでデータ受信
2. AS400に転送
3. RPGで解読
4. PFに追加

RE:PCのデータをASに取り込む シャリース さん [ 5月25日(月) 13時26分 ]
質問の仕方がまずかったようですね。
高飛車な発言、お詫びします。
確かにスキルさえ有れば不可能は無いですね。

さて、ASDさんのアドバイスでは、
最初の受信はPCとありますので、
やはりこの方法が「簡単・便利」という事でしょうか。

PCで受信するのであれば、
流通BMSを受けた後、PC側でフリーのツールを利用して
XML→CSVに変換した後、AS/400に取り込めば、AS/400でのRPG解読が
軽減されますね。

C++で開発するスキルは有りませんので、
直接AS/400に取込む事を考えた場合、何かしらの設備やユーティリティみたいな
ソフトのを用意しなければ難しいでしょうか。
費用をかけずに実現できるのであれば追加でアドバイスお願いします。

直接データを受信するのが難しいのであれば
PCを介して取込む運用を検討します。
ASに接続するのは簡単 ASD さん [ 5月25日(月) 16時38分 ]
ASをFTPサーバーにして、インターネットに接続すれば、簡単にできる。

FTPに DLTF DLTLIB などが 入っていると、システムが破壊される。

セキュリティーとのバランスを取っています。
RE:ASに接続するのは簡単 シャリース さん [ 5月25日(月) 19時1分 ]
なるほど。
確かにASをFTPサーバにして社外からの受信を直接受けるのは危険ですね。
PCで一度受信してからASに取込む方向で検討したいと思います。

今後もこのような仕組みが増えるらしいので
汎用的に利用できるような仕組みを考えてみます。
アドバイスありがとうございました。
ASはサーバーではなくクライアントにして IKD さん [ 5月26日(火) 8時35分 ]
System i は問題なくインターネットに接続することができます。
グローバルIP の登録や別のハードウェアも必要ありません。

IBM System i が流通BMS だけでなく外部の TCP/IP サーバーに接続できるようにするには
PC に DNS サーバーのアドレスを登録しているように System i も CFGTCP で
DNS サーバーのアドレスを登録すれば System i を TCP/IP クライアントとすることができます

つまり System i から インターネットへの接続が可能になります。

 ( http://www.as400-net.com/ 81.System i からインターネットにアクセスできるように
するには ? )

流通BMSサーバーに XML を受信にいくのであれば、Ftpプロトコルでは無理でしょう。
PORT 番号が違いますので。

流通BMSのプロトコルは公開されていますので C言語だけでなく RPG でTCP/IPクライアント・プ
ログラムを
書けば実現は難しくありません。
ただし
    ・TCP/IP通信
    ・EBCDIC/ASCII変換
    ・XML解析( XMLパーサー)

の知識が必要となり、ハードルはあります。
コストをかけたくないのであれば勉強が必要となります。予算があるのであれば PCベースで動作す
る、
有償のソフトウェアを購入するしかありません。
全銀Bセンター通信時の完了コード36の原因について AS屋 さん [ 5月26日(火) 13時58分 ]
こんにちわ。

私が携わっているシステムで全銀Bセンターでデータ受信しているものがあります。
こちらが受身側になっています。
先日、この全銀Bセンターの通信で完了コード36のエラーが発生し、受信に失敗しました。
その通信ログを確認しましたところ、相手側のセンターコードなどがブランクでした。
完了コード36のエラーはどのような原因で発生するのでしょうか。
どうぞ、宜しくお願い致します。
画面罫線 りらら さん [ 5月29日(金) 9時58分 ]
GRDRCDで罫線引いてます。
GRDATRでcolor指定してもその色にならないのですが、どうしてでしょうか?
先日RPG 229番に出てましたがそれも中ではWHT指定なのに画面はブルーに見えますが・・・
RE:画面罫線 白黒のくま さん [ 6月3日(水) 14時6分 ]
うちでも試してみましたが、PCOMM 5.8/6.0 では罫線色が反映されませんでした。

気になったのでPCOMMのトレース機能で調べてみましたが、
5250ストリームを見ると、DDSで指定した色情報が
想定通りにASからPCOMMに送られてきているようでした。

ですので、PCOMMのほうでそれを画面に反映していないようです。
どうやら、PCOMMは、5250ストリームで何色が指定されようともそれを無視して、
PCOMM設定の「カラー・マッピング」⇒「その他」「区分線」で設定された色で
罫線を描画するようです。

この動作を変更する方法があれば良いのですが、
調べた限りでは見つかりませんでした。

5250ストリーム上は、色情報が流れていますので、
色情報に対応した5250エミュレータがあれば、
色付き罫線が表示できるのではないでしょうか。
RE:画面罫線 りらら さん [ 6月4日(木) 11時18分 ]
白黒のくまさん

ありがとうございます。
とてもよくわかりました。

残念ながら今は、対応できないと見てよいのでしょうね。

?白黒のくま? パンダですか(笑)
DDS ALLキーワード qpm さん [ 6月3日(水) 15時55分 ]
DDSで使用するALLキーワードについてです。
他のすべての選択/除外の処理が終わったあとに行う処置で、SでALLを
指定すると、他の基準に該当しないレコードは全て選択されるように、
OでALLを指定すると他の基準に該当しないレコードは全て除外すると
されています。普段何気なく、OでALL指定をつけており基準に満たない
場合にすべてが選択されないようにしていますが、一旦このキーワード
はどういった時のためにあるのでしょうか、教えてください。
RE:DDS ALLキーワード i5レガシー さん [ 2月14日(火) 17時43分 ]
> DDSで使用するALLキーワードについてです。
> 他のすべての選択/除外の処理が終わったあとに行う処置で、SでALLを
> 指定すると、他の基準に該当しないレコードは全て選択されるように、
> OでALLを指定すると他の基準に該当しないレコードは全て除外すると
> されています。普段何気なく、OでALL指定をつけており基準に満たない
> 場合にすべてが選択されないようにしていますが、一旦このキーワード
> はどういった時のためにあるのでしょうか、教えてください。
1111
サブプロシージャ内で定義したSQLカーソルのスコープについて T.K さん [ 6月3日(水) 19時34分 ]
お世話になっております。

どなたかご存知の方があればご教示ください。

現在、再帰呼出しするサブプロシージャを作成中なのですが、
そのサブプロシージャ内で定義したSQLのカーソルは、
その呼出し階層に対応したローカル変数として新しく定義されるのでしょうか?

現在V5.4(古いOSです)で動かしている限り、
SQLカーソルを定義したサブプロシージャ(たとえば、'SP'(Level-0))の中で、
CALLP 'SP' (Level-1)
と再帰的に呼出し、Level-1からLevel-0へReturnした後で、
Level-0のNextRecordをFetchしようとするとエラーになりますので、
こちらの期待通りに呼出しの都度新しくカーソルが作られる(新しく割付けられる?)
わけではないと思っています。

古い記事ですが、以下、
*ttps://www.e-bellnet.com/special/tec/tec_0806.html
にi5における不具合のような話が載っていましたので、
変数の定義については疑わしい部分があると読めますが、
SQLのカーソルについてはどうなのか判然としません。

記事にある不具合についてはV6.1で修正されているのだと思いますが、
SQLカーソルについても再帰呼出時に特に考慮する必要がないように
コンパイルされるのでしょうか?

それとも、そもそもSQLのカーソルを上記のように使うこと自体が
だめなのでしょうか?

以上、お分かりの方がおられましたらよろしくお願いいたします。
RE:サブプロシージャ内で定義したSQLカーソルのスコープについて IKD さん [ 6月7日(日) 8時46分 ]
興味深い高度な話だと思います。

再帰呼び出しの手法は意図的に使用されているのであれば無限再帰(スタック・オーバーフロー)に
ならない限り、問題はありません。
再帰呼び出しもテクニックとして利用することもありますので。

さてプロシージャー内に定義したSQLカーソルは、一見するとローカル変数として
定義されているので、再帰呼び出しでもそれぞれ独立してプロシージャー内で
定義されているはず、というのも妥当な推論です。

ところで SQLカーソルは変数なのでしょうか ?
SQLのコンパイル・リストおよび QTEMP/QSQLTEMP のRPGソースを調べてみてください。
SQLのコンパイルはコンパイラーによって QTEMP/QSQLTEMP に展開されてから
これを最終的にコンパイルする仕組みをとっています。

展開されたコンパイル・リストまたは QTEMP/QSQLTEMP を精査してみると
定義したはずの SQLカーソルは、どこにも見当たりません。
( SQL カーソルはコメント・アウトされています。)
SQL カーソルは式として展開されていますがローカル変数として
保護する仕組みもないようです。

つまり SQLカーソルとは概念であって変数ではないのです。
従ってローカル変数として他から保護されているものではありません。
グローバル変数として理解するしかありません。

結論として SQLカーソルはローカル変数とはなりません。

-- SQLバインドは OPM のときに開発された手法ですので ILE化によって SQL展開を変更する
  のは従来のソフトウェア資産と矛盾することになると IBM は考えたのでしょう。
  System i は、そうそう通常の使用では不具合はありません。
   元々これは変数ではないので不具合ではありません。
  簡単にバグだと決めつける記事のほうが論拠に欠けるものです。
RE:サブプロシージャ内で定義したSQLカーソルのスコープについて T.K さん [ 5月9日(月) 20時8分 ]
> 興味深い高度な話だと思います。
> 
> 再帰呼び出しの手法は意図的に使用されているのであれば無限再帰(スタック・オーバーフロー)

> ならない限り、問題はありません。
> 再帰呼び出しもテクニックとして利用することもありますので。
> 
> さてプロシージャー内に定義したSQLカーソルは、一見するとローカル変数として
> 定義されているので、再帰呼び出しでもそれぞれ独立してプロシージャー内で
> 定義されているはず、というのも妥当な推論です。
> 
> ところで SQLカーソルは変数なのでしょうか ?
> SQLのコンパイル・リストおよび QTEMP/QSQLTEMP のRPGソースを調べてみてください。
> SQLのコンパイルはコンパイラーによって QTEMP/QSQLTEMP に展開されてから
> これを最終的にコンパイルする仕組みをとっています。
> 
> 展開されたコンパイル・リストまたは QTEMP/QSQLTEMP を精査してみると
> 定義したはずの SQLカーソルは、どこにも見当たりません。
> ( SQL カーソルはコメント・アウトされています。)
> SQL カーソルは式として展開されていますがローカル変数として
> 保護する仕組みもないようです。
> 
> つまり SQLカーソルとは概念であって変数ではないのです。
> 従ってローカル変数として他から保護されているものではありません。
> グローバル変数として理解するしかありません。
> 
> 結論として SQLカーソルはローカル変数とはなりません。
> 
> -- SQLバインドは OPM のときに開発された手法ですので ILE化によって SQL展開を変更
する
>   のは従来のソフトウェア資産と矛盾することになると IBM は考えたのでしょう。
>   System i は、そうそう通常の使用では不具合はありません。
>    元々これは変数ではないので不具合ではありません。
>   簡単にバグだと決めつける記事のほうが論拠に欠けるものです。
> 

すみません。回答をいただいている事を今まで気づいていませんでした。

SQLカーソルは変数ではないということなんですね。

お客様の仕様としてはスタックがオーバーフローするような無限階層の呼び出しではなく、
呼び出し階層の最大値を限定することがOKでしたので、最大の階層分のカーソルを定義して
階層に応じたカーソルを使用するようなプログラムに変更したところ、
それはそれで正しく動作したのですが、やはりイマイチです。

結局、SQLで読むことをやめて、
各階層で下位呼び出しの直前に現在の読み込み位置を保存しておき、
下位層からリターンしたときに次の読み込み開始位置を再度設定する、
ということにしました。

実質的には変わりない内容ですが、ソースコードが短くなるのでこちらを採用しました。

ご回答ありがとうございました。
xmlのfloat型の情報がテキストで入っている。整数に変換するには? ゆうやん さん [ 6月8日(月) 12時20分 ]
xml方式で送信されるデータをASで使用することになり、パーサーが使えないのでテキストで物理ファイ
ルに受信します。
その中で、金額や数量がfloat型に設定されています。float型というのは下記のように表現されるもの
みたいなのですが、

-INF, -1E4, -0, 0, 12.78E-2, 12, INF, NaN

これをRPG内で使用できる整数型の値に変換するにはどのようにすればよいのでしょうか?
何か変換用のコマンドがありますか?

いろいろうといもので質問の意図がわかりにくければご指摘ください。
整数に変換 ASD さん [ 6月8日(月) 13時19分 ]
CALL命令 は知ってますか。

CALL  SUBRFZ
PARM  PARM01   16バイト 文字
PARM  PARM02   31バイト ゾーン 小数以下9桁

こんな 感じでどうですか。
これで 浮動小数点形式 から ゾーン10進になります。

次に SUBRFZの中身を作れば 完成です。     
ご回答ありがとうございます! ゆうやん さん [ 6月9日(火) 9時38分 ]
すぐにご回答くださいまして、ありがとうございます。

これは、SUBRFZというプログラムを作って、それを呼び出すいうことですよね。

重ねての質問で恐縮なのですが、-INFとか-1E4という16進数は、それを10進数に変換コマンドがあるの
でしょうか?SUBRFZの中で、変換用のロジックを作るということでしょうか。
統一された表現でない ASD さん [ 6月9日(火) 11時9分 ]
値の中には、未定義 無限大 無限小 などが あるかも知れない。
表現は、世界共通ではない。

-12.34E-2 
Eの前と後ろに 文字をわける。
%DEC 関数で それぞれ 数値にする。
-------------------------------------
トレッキーなテクニックを 希望されてるようですが、
なまける方法にすぎません。
RE:統一された表現でない ゆうやん さん [ 6月9日(火) 13時19分 ]
ご回答、ありがとうございます。

いえいえ、xmlとかRPGLEとかが本当にうっすらとしかわかっていなくて、なにかそういうコマンド?が
あるのかと。

いろいろ調べてみたのですが、float型の説明がいろいろあって、どうもわからないと思っていました
が、そもそも世界標準の表現ではないのですね。

ヒントも頂きまして、誠にありがとうございました。
RE:統一された表現でない 白黒のくま!(パンダではないっ!) さん [ 6月11日(木) 11時12分 ]
RPGの %FLOAT() 関数で 文字列→浮動形式への変換が出来ます。

INF/NaNには対応していませんが、
そもそも、価格・数量のフィールドに、INFやNaNが入ることは
無いのではないでしょうか。
RE:統一された表現でない ゆうやん さん [ 6月11日(木) 11時52分 ]
白黒のくま!(パンダではないっ!) さん 

ご教示下さいまして、ありがとうございます。なんだか可愛らしい名前ですね。

> RPGの %FLOAT() 関数で 文字列→浮動形式への変換が出来ます。

そういう関数があるんですね、勉強になりました。ILEにいまだにへどもどしております。
はい、今回float型でくるフィールドは価格です。
値がないということは考えにくいのですが、一応送信元に確認してみます。

これからもどうぞよろしくま(笑)。
AS400 が正常に起動しません SORA さん [ 6月16日(火) 11時22分 ]
初めて投稿します

SORAといいます

AS400ハードに関して質問させて下さい
毎日、開発用としてAS400を稼働させています

AS400の電源は壁のコンセントから3mの延長ケーブルを経て供給させているのですが
数日前に3m から 5m のケーブルに変更しAS400の電源を投入したところ正常に起動
しなくなってしまいました

エラーは 前面のパネルに C20031FF と表示されています

通常であれば電源投入後15分くらいでTCP接続で利用可能になるのですが
いつまでたってもPINGがとばない状態です

ですが
AS400は深夜に電源がおちるようにスケジュールされていまして
朝になると電源がおちているところをみると
内部的にはある程度のところまではOSが起動しているようにみえます
TCPのサービスが起動する前にエラーが発生していると推測しているのですが

どのように回復させたらいいかわかりません
同じような経験をされた方はいらっしゃいませんでしょうか

よろしくお願いいたします

※1 再度 3m にもどしましたが同じ現象がでます
※2 アテンションのランプはついていますが、日常的につきぱなしの状態ですのであてになりません
※3 C20031FF をネットで調べてみると ISLコマンドの完了を待機中という事ですが ISLって何


AS400の情報
============
9406-520
V5R3
RE:AS400 が正常に起動しません IKD さん [ 6月16日(火) 18時3分 ]
ネットに出ている C20031FF は System i のエラー・コードではありません。
IBM Frex System のエラー・コードのようですね。

 http://pic.dhe.ibm.com/infocenter/flexsys/information/index.jsp?topic=%
2Fcom.ibm.acc.7954.doc%2FC20031FF.html

次に電源コードを変更したくらいで System i がダウンすることはありません。

何をされたのか正確に思い出してください。
また以前からアテンションが点いていたとのことであれば
コンソールが接続されていないのではありませんか ?
まずコンソールを接続することが先決でしょうか ?

C20031FF も以前から出ていたことはありませんか ?
ご自分のやったことを正確に述べないと解決はできないと思います。
RE:AS400 が正常に起動しません SORA さん [ 6月17日(水) 12時38分 ]
IKD さん 

レスをありがとうございます

>ご自分のやったことを正確に述べないと解決はできないと思います。 
そうですよねぇ

私もそう思います
やった事といえば
事務所を最近、移転した関係でAS400も運搬して運びました
仮の場所に設置し電源を投入した際には正常に動作しました

置き場所の関係でケーブルを変更したところ今回のトラブルが発生しました
それ以外は特にきっかけというような覚えはありません
私なりに考えたのは
延長ケーブルに他のサーバーもつながっていましたので
電圧が関係したのかとも思いました

最初このトラブルが発生した際は前回かきましたが
深夜にスケジュールされた POWER OFF されました
その後でも電源を入れ、マニュアル操作で電源をシャットダウンさせる事を
繰り返していたら

今回は
C20031FFが表示された後でパーティションの異常という表示になり深夜に電源が
おちる事もなくなり状況を悪化させたようです


ハードのトラブルですので
これ以上はこの会議室にふさわしくないと思いますので
保守をCALLしようと思います

ありがとうございました

バーコードの印刷 鮎キチ さん [ 6月16日(火) 12時21分 ]
SYSTEM I5でCANONのページプリンタに帳票を印刷してます。
顧客からの要求でバーコードを求めらたのですが、バーコードの印刷は可能なのでしょうか?
バーコードを印刷するとしたら、プリントファイルを使うのですか、APWでしょうか?
バーコードはCODE128だと思います。
RE:バーコードの印刷 黒クマ さん [ 6月16日(火) 16時55分 ]
マニュアルを見ればわかることですが、
質問する前にまず自分で調べましたか!
TTOファイルとは? AS屋 さん [ 6月16日(火) 15時0分 ]
AS屋と名前を書かせて頂いてますが、ASをよく知りません・・・

TTOファイルってなんでしょうか。

知っている方が居ましたら教えてください。
RE:TTOファイルとは? 黒クマ さん [ 6月16日(火) 16時57分 ]
まず自分で調べてから質問しましょう!
AS400 TTO で ぐぐる ASD さん [ 6月17日(水) 8時2分 ]
ヤフー にて AS400 TTO で 検索してください。

一発で でます。 
RE:AS400 TTO で ぐぐる AS屋 さん [ 6月17日(水) 9時12分 ]
> AS屋と名前を書かせて頂いてますが、ASをよく知りません・・・
> 
> TTOファイルってなんでしょうか。
> 
> 知っている方が居ましたら教えてください。

黒クマさん、ASDさんありがとうございます。

調べてみます。

調べました! AS屋 さん [ 6月17日(水) 9時28分 ]
> AS屋と名前を書かせて頂いてますが、ASをよく知りません・・・
> 
> TTOファイルってなんでしょうか。
> 
> 知っている方が居ましたら教えてください。

黒クマさん、ASDさん、早速調べてみました。
すぐに理解できる内容でした。
ありがとうございます。
今後は、もっと調べてから質問いたします。

サブファイルの再表示に関して nmkt さん [ 6月22日(月) 14時33分 ]
初めまして。
現在サブファイルを使用した画面を作成しています。
サブファイルのレコードのうち1フィールドが入力可能項目で他は表示のみの項目です。
この入力項目はエラーチェックが不要なので何を入力されてもOKです。
1回実行キーを押すと、更新確認のメッセージをFMT01に表示し、再度実行キーを押されたらデータ
ベースを更新するという流れにしたいのですが、1度目の実行キーを押されたタイミングでサブファ
イルのデータが見えなくなってしまいます…。
ただし、更新確認のメッセージは表示されていて、デバッグするとサブファイル内にレコードもあり
結果としてデータベースも更新できています。
サブファイルの中にレコードがあるのに画面に表示されない原因が全く分かりません。
コントロールレコードでは
20  SFLDSP      
20  SFLDSPCTL   
21  SFLINZ      
と定義していて
WRITEFMT01                   
SETON          20 
SETOF          21 
EXFMTCTL01     
で画面を出力しています。

この標識20を強制的にOFFにするとサブファイルのデータは見えるようになったのですが
ファンクションキーが全く効かなくなってしまったのでこの対応ではダメのようです。

まとまりのない文章で申し訳ありません。
情報が不足しているようでしたらご指摘ください。
何かアドバイスをいただけると幸いです。
ご教授よろしくお願いいたします。              
RE:サブファイルの再表示に関して IKD さん [ 6月22日(月) 16時8分 ]
デバッグすると SFLレコードは存在しているということなので
考えられる原因は

1. SFL があるが表示されているページが正しくない。
2. SFL があるが表示が指示されていない。
3. 上記の 1でも 2でもない場合

のどれかが想定されます。


実行キーを押してSFLが表示されなくなった時点でロール・ダウンー・キー(PageUp)を
押してみてください。
これで SFLが表示されれば
 「1. SFL があるが表示されているページが正しくない。」
であると予想されます。
表示されなければ
  「2. SFL があるが表示が指示されていない。」
であると予想されます。

【解決方法】
1. の場合
====> A            DSPREC         4S 0H      SFLRCDNBR(CURSOR)

      を DDSに追加してつねに DSPREC = 1 を更新してみてください。

2. の場合

  EXFMT CTL01

    の直前で SFLDSP の標識がオンになっていない。

    なお参考までに SFLINZ の意味はおわかりでしょうか ?
    これは SFLINZ を実行すると SFL の中を空の SFLレコードで埋め尽くすという意味で
    通常の SFL処理プログラムではほとんど必要ありません。
    むしろパフォーマンス低下の原因となってしまいますので SFL の処理にまだ
    慣れていない頃は SFLINZ は使わないほうがいいです。
    ( SFLINZ の誤解が多いのは確かです。)

    SFLINZ を使わなくてSFLの一般の処理に不都合を生じることはありません。
    SFLINZ による誤動作の可能性も考えてみてください。
             
RE:サブファイルの再表示に関して nmkt さん [ 6月23日(火) 10時47分 ]
IKD様

アドバイスありがとうございます!
早速確認してみました。

> 1. SFL があるが表示されているページが正しくない。
→次ページ以降でもデータは表示されませんでした。
(SFLRCDNBRはDDSで定義していて1のセットもできていました)

> 2. SFL があるが表示が指示されていない。
→DDSでSFLDSPとSFLDSPCTLに20をつけていて、
直前で標識20をONにしています。

> 3. 上記の 1でも 2でもない場合
こちらのようです・・・。

実は他のプログラムをお手本に作成していまして
それがSFLINZを使用していたのでそのまま使用しています。
標識のつけ方などもそのプログラムと全く同じにしているのに
なぜかサブファイルが表示されず、近くの人に相談したのですが解決の糸口がみつからず
こちらに投稿させていただきました。

1から作り直せば意外とうまくいくのかもしれませんがあまり時間がないため
できれば今のプログラムで解決できたらと思っています。

他に何か思い当たることがありましたらアドバイスいただけますと幸いです。

よろしくお願いいたします。
RE:サブファイルの再表示に関して IKD さん [ 6月23日(火) 14時10分 ]
SETOFF              21 

というのが気になりますが 折角、サブ・ファイル・レコードを出力しているのに
その後でSFLINZ を実行していたのでは、すべてのサブ・ファイルがブランク・レコードで
埋め尽くされてしまうのでご指摘の症状のように

  ・サブ・ファイル・レコードは存在する
  ・しかし画面上はすべて空白である。

のような状態になります。

そこで、デバッグで

  ・サブ・ファイルの出力後に SFLINZ が実行されていないか ?
  ・どこか別の場所で SFLINZ の標識がオンになっていないか ?
     (この可能性が高いです。)

を調べてみてください。どこか他で標識 21がオンになってはいないでしょうか ?

[参考]
サブ・ファイルを正しく理解されていないと ...

  SFLINZ でサブ・ファイルをブランク・レコードで
  埋め尽くしたもののを UPDATE 命令でレコードを更新する、

という手法で書かれているようなプログラムがあります。(過去に見て、大変驚きましたが)
サブ・ファイルの正しい手法はやはり学習されることをお勧めします。

 http://www.as400-net.com/tips/rpg/101.html            
RE:サブファイルの再表示に関して nmkt さん [ 6月24日(水) 11時13分 ]
IKD様

ご丁寧な回答ありがとうございます。
解決いたしました。
大変お恥ずかしいのですが、全フィールドに
35 DSPATR(ND)
がセットされていまして
この35の標識の制御がうまくいってなかったために2回目は非表示になっておりました。

ご指摘の通り、元のプログラムがまさに
  SFLINZ でサブ・ファイルをブランク・レコードで
  埋め尽くしたもののを UPDATE 命令でレコードを更新する
となっておりまして、メインファイルがREADできなくなったら
標識35をONにして全フィールドを非表示にしており、そのまま35がONになったままでした。。
今回、改めてSFLINZの動きを勉強する良い機会となりました。

本当にありがとうございました。
AS/400で画像データを扱うには? HT さん [ 7月2日(木) 10時20分 ]
お世話になります。

OS/400 VER 4.4 の使用環境なのですが、
品番に該当の画像(写真)の情報を付加してAS/400で印刷するとはできるの
でしょうか。?
今まで、文字情報しか扱ったことしかありません。
画像情報を処理する場合の処理方法を教えて頂けませんでしょうか。

よろしくお願いいたします。
AS400 画像 印刷 ASD さん [ 7月3日(金) 11時44分 ]
AS400 画像 印刷。
ヤフー で ぐぐれば いろいろ 出てます。 
  
ちから技 ASD さん [ 7月5日(日) 20時7分 ]
パソコンでさえ、そのようなシステムは、存在しない。

10億円かければ、たぶんホストオンデマンド印刷機が、要望を満たす。

バーコード印刷の拡張と、考えて、ちから技でやれば、できる。
転送速度は、きわめて、遅い。
バーコード印刷が、朝飯前なら、挑戦するのも、ありかな。

印刷物に、URLを印刷して、ユーザーが、対処するのも手です。
RE:AS400 画像 印刷 IKD さん [ 7月5日(日) 9時13分 ]
グラフィック印刷は AFP で行うことになりますが
V4R4M0 では AFP は導入されていないと思います。

APW が導入されているか調べてみてください。
しかし APW のマニュアルを見つけるのは難しいです。

古い System i でもサポートされているのは GDDM ですが
対応しているプリンターを見つけるのは難しいし
今の時代には適当ではありません。

V4R4M0 をサポートしている市販製品も少ないでしょう。

その前に回答してくれた人にお礼の返事をすべきでしょう
RE:AS400 画像 印刷 HT さん [ 7月6日(月) 12時13分 ]
> グラフィック印刷は AFP で行うことになりますが
> V4R4M0 では AFP は導入されていないと思います。
> 
> APW が導入されているか調べてみてください。
> しかし APW のマニュアルを見つけるのは難しいです。
> 
> 古い System i でもサポートされているのは GDDM ですが
> 対応しているプリンターを見つけるのは難しいし
> 今の時代には適当ではありません。
> 
> V4R4M0 をサポートしている市販製品も少ないでしょう。
> 
> その前に回答してくれた人にお礼の返事をすべきでしょう
RE:AS400 画像 印刷 HT さん [ 7月6日(月) 12時19分 ]
返信が遅くなっってしましまして、すみせん、
ご助言頂きましてありがとうございました。

自身でももう少し調べます。

RE:AS400 画像 印刷 HT さん [ 7月6日(月) 12時20分 ]
> 返信が遅くなってしましまして、すみせん、
> ご助言頂きましてありがとうございました。
> 
> 自身でももう少し調べます。
> 
> 
RE:AS400 画像 印刷 HT さん [ 7月6日(月) 12時49分 ]
すみません、文面が不十分で下記、返信をしてしまいました。
返信記事を削除して再返信しようとしたのですが、
記事が削除できません。

すみませんが、

返信が遅くなってしまいまして、すみせん。
ご助言頂きましてありがとうございました。
 
自身でももう少し調べます。

で返信として頂けませんでしょうか。

よろしくお願いいたします。
TXTファイルをAS400にFTPで転送時、末尾の"が欠落することがある。 生地 さん [ 7月8日(水) 16時40分 ]
タイトルの通り、拡張子.txtファイルをFTPでAS400に転送したとき、AS400側で一番右の"が
落ちていることがたまにあります。
この時、一番レコード長が長いのだけ落ちます。それ以外のデータは落ちません。"が付いたま
まです(OK)。

例:下記の3件のうち、AS400では1件目のみ"が落ちている場合があります(付いている時の
方が圧倒的に多い。また該当がファイルの何件目にあるかは関係ない)。
同じ長さのデータが複数件あれば、すべて落ちています。

"100000001","20150707","1","101.90","1","2","11"
"100000002","20150707","1","80.80","1","2","10"
"100000003","20150707","1","80.70","1","2","9"

この原因と対処方法をどなたかお教えいただけませんでしょうか?当方でも調べているのです
が、まだ未解決です。よろしくお願いいたします。
RE:TXTファイルをAS400にFTPで転送時、末尾の ASD さん [ 7月8日(水) 21時31分 ]
1. 転送前に、すでに、なかったとか。

2. いろいろ、試行錯誤して、うまくいく、方法をさぐる。
RE:TXTファイルをAS400にFTPで転送時、末尾の 生地 さん [ 7月13日(月) 8時2分 ]
ご返答ありがとうございます。転送前にはあります。
2項はいま対応中です。

> 1. 転送前に、すでに、なかったとか。
> 
> 2. いろいろ、試行錯誤して、うまくいく、方法をさぐる。
個々の詰めが、甘い ASD さん [ 7月13日(月) 11時30分 ]
FTPは PUTしたら、GETして、ベリファイする。
文字化けしてたら、再転送を試みる。

データの確認は、16進で行う。
当然、検証用プログラムは、開発する。

RE:TXTファイルをAS400にFTPで転送時、末尾の IKD さん [ 7月9日(木) 14時12分 ]
? FTP は手動ですか ? 
   それとも FFFTP などのユーティリティーを使用されているのでしょうか ?

?Ftp のアップロード先は IFS ですか ?
  それともライブラリー・システム (QSYS.LIB) 配下のデータ・ベースですか ?

? アップロードは無変換ですか ?
   それとも ASCII/EBCDIC 変換を指定していますか ?

? 末尾の" が欠落しているとは、どのようにして確認されていますか ?
   WRKLNK での IFS 表示は、時によって文字が欠落したり
    不要な文字の混入などがあります。
RE:TXTファイルをAS400にFTPで転送時、末尾の 生地 さん [ 7月13日(月) 8時1分 ]
ご返答ありがとうございます。

> ? FTP は手動ですか ? 
>    それとも FFFTP などのユーティリティーを使用されているのでしょうか ?
パソコンの仕組みからの転送ですが、FFFTPではございません。
> 
> ?Ftp のアップロード先は IFS ですか ?
>   それともライブラリー・システム (QSYS.LIB) 配下のデータ・ベースですか ?
AS400のライブラリーです。FTPでデータを授受するライブラリーを用意しています。
> 
> ? アップロードは無変換ですか ?
>    それとも ASCII/EBCDIC 変換を指定していますか ?
おそらくですが無変換です。
> 
> ? 末尾の" が欠落しているとは、どのようにして確認されていますか ?
>    WRKLNK での IFS 表示は、時によって文字が欠落したり
>     不要な文字の混入などがあります。
AS400でCPYFRMIMPFが実行されると異常終了(MSGW)になります。通常出ませんが、1年24
5回程度のうち3回ぐらい不定期に発生します。
RE:TXTファイルをAS400にFTPで転送時、末尾の IKD さん [ 7月13日(月) 15時50分 ]
(1)「パソコンの仕組みからの転送」
   --> 意味がわかりません。Windows の DOS コマンド・プロンプトのことですか ?
       それとも他の意味であればアプリの名前をお教えください。

(2) AS400のライブラリーです。FTPでデータを授受するライブラリーを用意しています。
  --> Ftpのアップロード先がライブラリー・システムのファイルであれば
       後続の回答の「CPYFRMIMPFで MSGW のエラーとなる」との回答と矛盾しています。
       アップロード先が ライブラリー・システムのファイルであれば
    CPYFRMIMPF を使う必要はありませんから。

(3) おそらくですが無変換です。
  --> これもアップロード先がライブラリー・システムのファイルであれば
    ASCII/EBCDIC 変換が必要であるはずなので意味不明です。
       「おそらくですが」も意味不明
       IFS に対してアップロードしているのではないでしょうか ?

(4)AS400でCPYFRMIMPFが実行されると異常終了(MSGW)になります。
 ---> これも意味不明です。CPYFRMIMPF で MSGW になったからといって
       なぜ " の欠落が原因であると判断されたのでしょうか ?
       IFS またはライブラリー・システムのファイルのダンプを確認されたのでしょうか ?

       またせっかく MSGW のエラーが発生しているのであれば
       そのエラー・メッセージは何でしょうか ?
       それがエラーの原因でありエラー・メッセージはまさにその原因を
       教えてくれているはずです。
    エラー・メッセージの内容は何となっていますか ?
マークなどの印字方法について KDM さん [ 8月5日(水) 19時15分 ]
社内で印刷している帳票ばあります。
その帳票に用途などのスタンプを人が押していますが、
間違いや手間がかかるということで自動で印字できな
いかの確認の依頼がきています。できることなら自動
にしたいと考えてますが、スタンプが通常の文字だけ
ではない、ロゴみたいなものです。プログラムから
印字するにはどうすればよいでしょうか。

SYMBOLを作成してAPWでマージすれば可能かと思いまし
たが、ネット上からダウンロードできる資料を見ても
手順があまり理解できませんでした。まずこの方法で
も可能なのか自信がありません。また社内で既に作成
しているものもあるかと思ったのですが、コマンドが
EDTSYMAPWしか見つけられず、作成することしかでき
ません。

この方法も1つありなのかと、既存のSYMBOLを確認
する方法が分かれば、何とかなるかと思っています。

どなたか教えていただけませんでしょうか。

バージョンはV6.1です。
RE:マークなどの印字方法について KDM さん [ 8月6日(木) 10時36分 ]
> 社内で印刷している帳票ばあります。
> その帳票に用途などのスタンプを人が押していますが、
> 間違いや手間がかかるということで自動で印字できな
> いかの確認の依頼がきています。できることなら自動
> にしたいと考えてますが、スタンプが通常の文字だけ
> ではない、ロゴみたいなものです。プログラムから
> 印字するにはどうすればよいでしょうか。
> 
> SYMBOLを作成してAPWでマージすれば可能かと思いまし
> たが、ネット上からダウンロードできる資料を見ても
> 手順があまり理解できませんでした。まずこの方法で
> も可能なのか自信がありません。また社内で既に作成
> しているものもあるかと思ったのですが、コマンドが
> EDTSYMAPWしか見つけられず、作成することしかでき
> ません。
> 
> この方法も1つありなのかと、既存のSYMBOLを確認
> する方法が分かれば、何とかなるかと思っています。
> 
> どなたか教えていただけませんでしょうか。
> 
> バージョンはV6.1です。
> 
RE:マークなどの印字方法について KDM さん [ 8月6日(木) 10時38分 ]
記号セットファイル、記号セット、記号IDを作成してデザイン。
APWで合成して印字することができることがわかりました。
尚社内のファイルの場所も分かりました。
自己解決です。
SCS制御コード ASD さん [ 8月6日(木) 18時27分 ]
SCS制御コード で ぐぐれば、必要な知識は、得られます。

APWは アプリの ひとつです。

RE:SCS制御コード KDM さん [ 8月7日(金) 10時23分 ]
> SCS制御コード で ぐぐれば、必要な知識は、得られます。
> 
> APWは アプリの ひとつです。
> 
> 
回答ありがとうございます。
いただいたキーワードで一度調べてみます。
ありがとうございました。
ジョブについて TU さん [ 8月31日(月) 18時1分 ]
あるジョブが現在、実行中なのか?
それとも、終了しているのかがわかるコマンドは存在するのでしょうか?

教えていただけませんでしょうか。
※バージョンV7.1
RE:ジョブについて 白黒のくま さん [ 9月1日(火) 10時57分 ]
本サイトのCLの

79. API: QUSRJOBI による正しいジョブ情報の検索
http://www.as400-net.com/tips/cl/79.html

に書かれています。

RE:ジョブについて ASD さん [ 9月2日(水) 10時42分 ]
WRKJOBQ  WRKACTJOB で だいたい 間に合う。
RE:ジョブについて TU さん [ 9月4日(金) 9時25分 ]
白黒のくまさん・ASDさん、ご意見ありがとうございました。
参考にしてみます。 
エミュレータ上で「愛」の漢字を入力すると文字化けする。 イッシン さん [ 9月2日(水) 10時51分 ]
初めて投稿させて頂きます。

AS400のエミュレータで「愛」の漢字を入力すると文字化けしてしまいます。

「愛知」と入力したいのですが、「→知」と言うふうに「愛」の字が化けてしまいます。

ホスト・コード・ページは「1399」日本語英数小文字拡張を使用しています。

「939」日本語英数小文字拡張を使用すれば、文字化けが発生しないことは、
分かっているのですが、「939」に変更すると他の文字が文字化けを起こしてしまいます。

「1399」のままで「愛」の文字が化けない設定などはあるのでしょうか?

ご教授の程、お願い致します。
RE:エミュレータ上で「愛」の漢字を入力すると文字化けする。 kin さん [ 9月3日(木) 11時10分 ]
> 初めて投稿させて頂きます。
> 
> AS400のエミュレータで「愛」の漢字を入力すると文字化けしてしまいます。
> 
> 「愛知」と入力したいのですが、「→知」と言うふうに「愛」の字が化けてしまいます。
> 
> ホスト・コード・ページは「1399」日本語英数小文字拡張を使用しています。
> 
> 「939」日本語英数小文字拡張を使用すれば、文字化けが発生しないことは、
> 分かっているのですが、「939」に変更すると他の文字が文字化けを起こしてしまいます。
> 
> 「1399」のままで「愛」の文字が化けない設定などはあるのでしょうか?
> 
> ご教授の程、お願い致します。


エミュレータはなんでしょうか?バージョンは?
RE:エミュレータ上で「愛」の漢字を入力すると文字化けする。 イッシン さん [ 9月3日(木) 14時30分 ]
> > 初めて投稿させて頂きます。
> > 
> > AS400のエミュレータで「愛」の漢字を入力すると文字化けしてしまいます。
> > 
> > 「愛知」と入力したいのですが、「→知」と言うふうに「愛」の字が化けてしまいます。
> > 
> > ホスト・コード・ページは「1399」日本語英数小文字拡張を使用しています。
> > 
> > 「939」日本語英数小文字拡張を使用すれば、文字化けが発生しないことは、
> > 分かっているのですが、「939」に変更すると他の文字が文字化けを起こしてしまいます。
> > 
> > 「1399」のままで「愛」の文字が化けない設定などはあるのでしょうか?
> > 
> > ご教授の程、お願い致します。
> 
> 
> エミュレータはなんでしょうか?バージョンは?

□イッシン
エミュレータは下記を使用しております。

iSeries Access for Windows
ワークステーションプログラムVer5.9

文字入力はMicrosoftIMEを使用しております。
CCSID ASD さん [ 9月4日(金) 15時37分 ]
システム値から 設定を やりなおす。

他人と違う事をしたら、トラブリます。

RE:CCSID イッシン さん [ 9月4日(金) 15時50分 ]
> システム値から 設定を やりなおす。
> 
> 他人と違う事をしたら、トラブリます。
> 
> 

お客様が受注登録を入力する為にエミュレータを使用しており、
数十台の端末で「1399」の日本語英数小文字拡張の設定にしています。

「愛知県」と項目に入力することが多く、
現状、「愛」の漢字を入力するたびに、CTRL+F3の英語モードと日本語モードの
切替で文字化けを直して頂いている状況ですので、お客様より煩わしいので、
何とかならないか?とのご要望がありましたので、こちらに質問させて頂きました。
RE:CCSID ASD さん [ 9月4日(金) 16時47分 ]
仕事なら 日本オフィスシステムに 問い合わせたらどうですか。
200万円は、かからないと、思うが、保証はしない。

WINDOWS-XP か IME か CA のどれかを 交換する事になるが、
あまりにも、異常な設定だから、解決しないかも。 
RE:CCSID すかぴ さん [ 9月4日(金) 17時20分 ]
エミュレータのPTFは最新ですか?
過去、似たような現象がありました。
RE:CCSID イッシン さん [ 9月4日(金) 17時44分 ]
> エミュレータのPTFは最新ですか?
> 過去、似たような現象がありました。

WRKPTFGRPで確認すると下記のような状況になっております。

PTF  グループ         レベル  状況
SF99616                   4   導入済み
SF99616                   5   導入済み
SF99610                9279   未導入  
SF99609                  53   導入済み
SF99609                  54   導入済み
SF99608                  14   導入済み
SF99601                  12   導入済み
SF99562                  10   導入済み
SF99562                  11   導入済み
SF99356                  14   導入済み
SF99354                   5   導入済み
SF99351                   5   導入済み
SF99187                  11   導入済み
SF99115                   9   導入済み   
SF99115                  12   導入済み   
RE:CCSID ASD さん [ 9月4日(金) 19時5分 ]
これは AS400本体のPTFです。

CAのバージョンとFIXはHELP画面の日付で見ます。

5.9なるバージョンはありません。CA6.1かな。

FIXを知らない事から、たぶんFIXが、当たってない。

(エミュレーターのPTFを IBMでは、FIXと呼ぶ)

CA6.1 は WINDOWS7 には 対応してない。   
RE:CCSID イッシン さん [ 9月7日(月) 16時37分 ]
> これは AS400本体のPTFです。
> 
> CAのバージョンとFIXはHELP画面の日付で見ます。
> 
> 5.9なるバージョンはありません。CA6.1かな。
> 
> FIXを知らない事から、たぶんFIXが、当たってない。
> 
> (エミュレーターのPTFを IBMでは、FIXと呼ぶ)
> 
> CA6.1 は WINDOWS7 には 対応してない。 

HELP画面の日付を見ますと「20110428 J」よなっています。
バージョンは5.9です。
OSはVISTAを使用しています。  
RE:CCSID イッシン さん [ 9月16日(水) 13時31分 ]
お世話になっております。

CA7.1を入手しSI56695を適用で文字化けが回避できました。

書き込みして下さった方々、ありがとうございました。
pcomが突然フリーズ 品川健志 さん [ 9月7日(月) 15時48分 ]
入力し実行キーを入力後、画面がフリーズし入力が出来なくなる。
考えられる原因を教えてください。
端末を再起動するとASは使えるようになります。
ASのLOGはどのようにみればいいでしょうか?
RE:pcomが突然フリーズ くろくまくん さん [ 9月8日(火) 10時54分 ]
これだけの情報で原因が何か?
質問するのは神様でもわからないと思いますよ。
ジョブログの確認方法もマニュアル、ネットに
山ほどあると思います。
まずは自身で調べましょう!それでわからなければ
もう一度質問してみればいいのでは・・・・
回答できません。 IKD さん [ 9月8日(火) 15時15分 ]
確かにフリーズしました、原因を教えてください、では
答えようがないですね。
ご自分が何をしたのかとか、どのような頻度で発生するとか
どのような処理中に発生したとか、どのような環境であるとか
相談者へできるだけ情報を伝えようと努力されないと
手抜きの質問と言われても仕方ないでしよう。

自分が訊かれても答えようがない質問となっていませんか ?

RPGLEでのコメントについて as400初心者 さん [ 9月14日(月) 10時2分 ]
いつもお世話になっております。

最近AS400を学習しはじめているAS400ビギナーです。
RPG3では*でその行全体をコメントにする以外に、右端に短いコメントを
付与出来たのですが、RPGLEでプロンプトから注記欄にコメントを入力すると
「レコード長を超えて入力されたデータが失われた」と表示されます

RPGLEでは画面右端にコメントは記載できないのでしょうか?
また皆様はRPGLEではどのようにコメントを記載されているのか参考にさせて
頂きたいので教えて下さい
RE:RPGLEでのコメントについて hex さん [ 9月14日(月) 22時31分 ]
ソースファイルのレコード長が足りないんでしょう。

ソースファイルは
・ステートメント番号 6
・日付 6
・ソース n
からできています。

RPG3のソースは80バイトですから、ソースファイルは6 + 6 + 80 = 92バイトで作成しなければなり
ません。
これに対してRPGLEのソースは100バイトなので、RPGLEを格納するソースファイルは
6 + 6 + 100 = 112バイトで作成しなければなりません。

当該のRPGLEが格納されているソースファイルにDSPFDしてみましょう。

この場合、考えられるのは
1.QRPGSRCにRPGLEを作成した
2.QRPGSRCをコピーしてQRPGLESRCを作成した
3.QRPGLESRCを作成する際、ソースファイル作成コマンド(CRTSRCPF)のレコード長をデフォルト
(92バイト)で作成した

等でしょうか。

対応例
1 QRPGLESRCをレコード長112バイトで作成
2 新規メンバを作成
3 F15で古いメンバをコピー
RE:RPGLEでのコメントについて as400 初心者 さん [ 9月15日(火) 13時14分 ]
>hex様

コメントありがとうございます。
教えていただいた方法で確かに右横のコメントが設定出来るようになりました。

対応例の通りに進めさせていただきます。
ありがとうございました。

スクリーンセーバーが動くとエミュレータがログイン画面に戻る くまごろう さん [ 9月16日(水) 9時59分 ]
スクリーンセーバーが動き、そこから復帰すると一度元の取引中画面に戻った後何かキーを押すとエ
ミュレータがログイン画面に戻ります。
原因と対策がわかればお願いします。
クライアントPC=VISTA
PowerSystems720
むちゃを言われても ASD さん [ 9月17日(木) 11時2分 ]
常に裏で通信してるから、無理です。
スクリーンセーバーをやめる。
RE:むちゃを言われても くまごろう さん [ 9月24日(木) 13時7分 ]
> 常に裏で通信してるから、無理です。
> スクリーンセーバーをやめる。
やはり手はありませんか。ありがとうございました。
RE:スクリーンセーバーが動くとエミュレータがログイン画面に戻る hex さん [ 9月28日(月) 23時57分 ]
ちょっと情報が足りませんかねー。
お使いのエミュレータ情報とか、スクリーンセーバーの設定とか、解決するために何をやったかとか
「取引中画面」って何? とか。

可能性としては
1.PC(Pcom)の問題
2.AS/400の問題
3.PCとAS/400の問題
4.「取引中画面」の機能

などが考えられますが、関連する情報がない現在、こちらでは判断がつきません。

Pcomのパッチや、上記4などで、特に問題がない場合で考えられるのは
システム値QINACTITVに数値が設定されていて(指定分数、入力が無いとシステムから切断される)
その時間とスクリーンセーバー起動時間が近い場合、そんな状況になると思いますが。

QINACTITVに数値が設定されている場合で、システム的に問題が無ければ
設定を変えるのも手ですが、必ずシステム管理者と相談の上、自己責任で実行してください。
RPGLEフリーフォーマット時のDSPFについて as400 初心者 さん [ 9月16日(水) 14時40分 ]
いつもお世話になっております。

RPGLEのフリーフォーマットでは標識を使用しないことが推奨されているよう
ですが
DSPFで入力項目にプロテクトをかけたりカーソルを合わせたり
サブファイルの制御をするためには、DSPFでの標識設定が必要だと思うのですが
RPGLEフリーフォーマットでその辺りの制御を行う際は皆様はどのようにして
いますでしょうか?
RE:RPGLEフリーフォーマット時のDSPFについて IKD さん [ 9月19日(土) 10時30分 ]
フリー・フォーマットでは、すべての標識を使わないようにすべきである、
というようなことはありません。

RPG III の固定フォーマットの時代では結果の標識は定義していましたが
ILE-RPG や SEU の画面では見た目で標識が定義されている位置を読み取ることはできません。

そこで 
  ・%EOF などを使って桁位置を判断しなくてもよくする
  ・桁位置を覚えていなくても判断できる

ようにするために比較や結果の標識を使わないように推薦されているだけです。

DSPF は標識で制御されていますのでRPGソース側で標識を全く使わない、ということはできません

そうしなければならない合理的な理由もありません。

余談ですが標識は他の開発言語でいうところのブール値(論理変数)に相当します。
どのような言語でもブール値は使用しています。例えばCLP、VB, C++, VC++, Java にもありま
す。
DSPFに必要なだげではなく BOOL値は、どのような言語でも必要となります。

標識の使用をやめてBOOL値が必要になつたときに独自のBOOL値を定義するのも
おかしな方法です。
RPG には標識というBOOL値が与えられているのですから、それを利用すべきです。
ただし

     SETON            80

よりも

          MOVE  *ON        *IN80

のように標識を変数のように扱う傾向にはあります。
これは標識を変数のように見せるテクニックだと思います。

 [結論]
  DSPF の制御にはやはり標識を使います
 
RE:RPGLEフリーフォーマット時のDSPFについて as400 初心者 さん [ 9月19日(土) 13時2分 ]
コメントありがとうございます。

了解いたしました。
DSPFについては標識を使用して%EOFなどとうまく使い分けていこうと思います。
詳細に教えていただき、ありがとうございました。
記事の削除 管理人 さん [ 10月2日(金) 9時13分 ]
「他のジョブログをGET DIAGNOSTICS CONDITIONで取得」の記事は不適切なハンドル・ネームを
使用していたため、この記事を削除しました。
RE:記事の削除 質問者 さん [ 10月5日(月) 15時35分 ]
> 「他のジョブログをGET DIAGNOSTICS CONDITIONで取得」の記事は不適切なハンドル・ネームを
> 使用していたため、この記事を削除しました。
> 

新規で記載しようとしたときに自動的にブラウザが表示したハンドルネームだったのですが、
何がどう不適切でしたでしょうか。
RE:記事の削除 すかぴ さん [ 10月14日(水) 8時26分 ]

> 新規で記載しようとしたときに自動的にブラウザが表示したハンドルネームだったのですが、
> 何がどう不適切でしたでしょうか。

自動的に表示されるのがIDなのでダメなのでしょう。
ここの掲示板の仕様なのか?使いづらいですね。変更する方法あるのでしょうか・・。
RE:記事の削除 質問者 さん [ 10月14日(水) 18時35分 ]
> 
> > 新規で記載しようとしたときに自動的にブラウザが表示したハンドルネームだったのですが、
> > 何がどう不適切でしたでしょうか。
> 
> 自動的に表示されるのがIDなのでダメなのでしょう。
> ここの掲示板の仕様なのか?使いづらいですね。変更する方法あるのでしょうか・・。

そうだったんですね。理解しました。ありがとうございます。
ILERPGでのデバッグについて AS400 初心者 さん [ 10月5日(月) 16時2分 ]
ILERPGデバッグのステップ実行について教えて下さい


デバッグモードを開始し、ソースデバッグの画面でF10キーを押下すると
1ステップずつプログラムが実行されますが
F仕様書の所になると複数回F10キーを押下しないと次のステップに進んでくれ
ません。

RPG3のSTRISDBと同じ感覚でステップ実行出来ると思っていたのですが
ILERPGのステップ実行はこういうものなのでしょうか?
もし1回キーを押せば次の行に進むに出来るのなら、その方法を教えていただ
けないでしょうか?
また、なぜF仕様書の所になると何回もF10キーを押さないと先に進めないので
しょうか?

RE:ILERPGでのデバッグについて ASD さん [ 10月6日(火) 22時6分 ]
RPGの1行が、何ステップになるかは、RPGコンパイルリストに乗っている。
プログラムの中間表現 (IRP) リストまで、印刷すれば、解るかも。
RE:ILERPGでのデバッグについて AS400 初心者 さん [ 10月7日(水) 14時2分 ]
なるほど。そういうところで確認する方法もあるのですね。
勉強になりました。
知らないことがまだまだ山積みですが一つずつ学んでいきたいと思います。

コメントありがとうございました。
RE:ILERPGでのデバッグについて マルす さん [ 10月7日(水) 10時3分 ]
H-仕様書で OPTION(*NODEBUGIO)を指定します。
RE:ILERPGでのデバッグについて AS400 初心者 さん [ 10月7日(水) 13時56分 ]
> H-仕様書で OPTION(*NODEBUGIO)を指定します。


まさにやりたかったことです!!!!
本当にありがとうございます。
これでデバッグ作業をスムーズに進めることができます。
教えていただき本当にありがとうございました。

RE:ILERPGでのデバッグについて さたわ さん [ 10月7日(水) 12時33分 ]
READやWRITE(F仕様書対象ファイルへの命令)行の次の行にF6(止める)指示を置き、F12で飛ば
せば複数回F10を押す必要はありません。

また、下記も知っていると便利ですよ!

・ある条件の時に止めたい
 BREAK  ステートメント  WHEN  変数  条件  値        

・指定したステートメントで指定回数通過した場合に止める
 BREAK  ステートメント  SKIP  回数

・プログラム内の変数の値を変更する
 EVAL 変数 = 値

使い慣れるとSTRISDBよりかなり便利だと思います
RE:ILERPGでのデバッグについて AS400 初心者 さん [ 10月7日(水) 14時0分 ]
色々教えていただきありがとうございます!
デバッグ入る前にコンパイルで指定するのとかちょっと面倒だと感じていたの
ですが
慣れてくると気にならなくなってきました。
教えていただいたものも使っていきたいと思います。

ありがとうございます。

PS
個人的にはSTRISDBで画面上にずっとウォッチ対象として変数を表示できたことが
便利だったのですがILEのデバッグでは無くなってしまったようで残念です。。。


0E 0F 不整合を見つける方法 ぺーたー さん [ 10月9日(金) 8時37分 ]
データコンバートの失敗などで、漢字用フィールドに、0E OFのシフト文字の組み合わせが乱れ
てしまった項目があります。
多くは、0E 0F 0F になっているかと思われますが、この不整合状態を検地するには、フィー
ルドを1バイトづつ区切ってシフト文字がどうかを判断し、0E 0Fの組み合わせでない場合(そ
れぞれ1づつカウントして2で割り切れない)は、エラーとして判断する仕様しか考え付きませ
ん。
これを別の単純化された方法があれば(関数を使するなど用)ご教示ください。
RE:0E 0F 不整合を見つける方法 IKD さん [ 10月10日(土) 9時58分 ]
面白い課題だと思います。

ある別のサイト(米国誌の記事を写しただけのサイト)では
これと同じ質問があり、それに対する回答は「方法はない」というものでしたが、
やはり米国サイトを丸写ししているようではダメで
これはダブル・バイトを正しく理解していないし経験もあまりない米国人での発想です。

プログラムでシフト文字をLOOPしながら検査するよりも
シフト文字が正常に揃っていないと不都合になりエラーとなるAPI や
既存のプログラムやコマンドにやらせてみてはどうでしょう ?

例えば API : QDCXLATE に検査するフィールドを与えて実行してみると

  CPF2669: 2バイト文字セット・ソースが正しくない 

というエラーがたちまち出ることが実験によってわかりました。
IBM 提供のプログラムが検査してくれるのですから
これほど確かなことはありません。
ご自分でされるのであれば、シフト文字が正しく揃っていないと
エラーを起こすプログラムは何か? と探してみるのも面白いでしょう。

これをユーティリティのコマンドにでもまとめても有益かも知れません。

昔、S/36 の移行でパック形式が壊れているのをチェックするプログラムを
作りましたがシフト文字の検査プログラムも検討してみるのも
よいかと思います。

参考までに 35. 漢字の0E,0Fを補正するサブルーチン ( http://www.as400-net.com/tips
/rpg/35.html )
があります。
仕様を簡単にして、自作 ていす さん [ 10月10日(土) 22時2分 ]
APIは、用意されてない。

自分で、インターフェース ロジックを考えて ください。

仕様は、絞りこまないと、難しい。

インターフェイスの例 
  CALL 'SUBRXX'
   PARM          FLD1
   PARM          FLD2
オブジェクト、ライブラリ、メンバー 新入社員(初心者) さん [ 10月11日(日) 16時29分 ]
AS/400はオブジェクト、ライブラリ、メンバーでファイルの種類とかを表していると思うんですが
、正直それぞれがどういった意味なのかあまり理解できていません。
ライブラリ・・・ファイル?
オブジェクト・・・DBファイル、プログラムファイル?
メンバー・・・データ?
もし、よろしければ教えていただけないでしょうか。
RE:オブジェクト、ライブラリ、メンバー hex さん [ 10月11日(日) 23時21分 ]
PCで例えると

ライブラリ=フォルダ。 但し、その中にフォルダを作成することはできない
       オブジェクトを格納する場所。

オブジェクト=フォルダを開いたとき、ひとつのアイコンで表示されるモノ
       データファイル、プログラム、コマンドなど。
       オブジェクトは必ずライブラリに格納されている必要がある。

メンバー=データファイルの中のひとかたまり。 エクセルのシートみたいなもの
       ファイルの中にメンバーがあり、データは必ずメンバーに格納される。
       メンバーのレコード長などは、格納されているファイルと同じになる。

こんな感じですね。
PRTSRCMBRでRPGLEのソースが印刷出来ない AS400 初心者 さん [ 10月21日(水) 12時59分 ]
いつもお世話になっております。

RPGのソースを印刷する際にRPG3ではPRTSRCMBRから行っていたのですが
同様の操作をRPGLEに対して行ってもエラーが表示されて印刷できません。

PRTSRCMBRではRPGLEのソースは印刷出来ないのでしょうか?
PRTSRCMBRに特にこだわっているわけではないのですが
皆様はRPGLEのソースの印刷はどのように行っていますか?

■エラーメッセージ
ファイルEVXF241PのOPEN中にエラーメッセージCPF4131が表示されました
RE:PRTSRCMBRでRPGLEのソースが印刷出来ない IKD さん [ 10月22日(木) 9時35分 ]
PRTSRCMBR は ToolBox のコマンドですから今では
一般的な使用頻度は少ないと思います。

CPF4131 は LVLCHK のエラーですから
CHGPF EVXF241P + F4 で
レベルチェック *NO に変更するとそのエラーはなくなると思います。
お試しください。

RE:PRTSRCMBRでRPGLEのソースが印刷出来ない AS400 初心者 さん [ 10月22日(木) 11時55分 ]
コメントありがとうございます。
勉強になります。


コメント頂いた内容を実行しようとしたのですが
CHGPF EVXF241Pを入力してF4を押した際に、F10で出てくる追加のパラメー
ターの中にも
レベルチェックという項目がなかったため試すことが出来ませんでした。


>PRTSRCMBRは、一般的な使用頻度は少ない

そうだったんですね、社内ではいつもこちらを使用していましたので定番かと
思っていました。
IKDさんは、RPGソースを印刷する際はどのような方法で印刷されています
でしょうか?
よろしければ教えて下さい。
RE:PRTSRCMBRでRPGLEのソースが印刷出来ない IKD さん [ 10月22日(木) 20時12分 ]
 レコード様式レベルの検査 てないですか ?

 それくらいはご自分で考えてください。
 想像すればわかるはずです。

 RPGソースの印刷は 20年以上、必要と感じたこともありません。
 何の不便もありません。印刷はいつでもできますが
 何のために ?
RE:PRTSRCMBRでRPGLEのソースが印刷出来ない AS400 初心者 さん [ 10月23日(金) 10時18分 ]
>レコード様式レベルの検査てないですか?

ありました。
結果的には、CHGPRTF EVXF241P + F4でレベルチェックをNOにすることで
RPGLEの印刷が行えるようになりました。

RPGソースの印刷は、ASエミュレーターのSEUの画面に表示出来る文字数が
限られているためソースを印刷し、またこれを持ってコードレビューに使って
おります。

色々ご教示頂き本当にありがとうございました。
表示出来る文字数 ASD さん [ 10月23日(金) 21時45分 ]
表示を 27X120 に 変える。 
取引先へ送信する「延べ単レコードのデータファイル」の作成方法について シャリース さん [ 10月27日(火) 18時37分 ]
取引先のシステムとデータ交換をおこなうのですが、
CSV形式やTAB区切りのASCIIテキストの受渡しで有れば良かったのですが、
1レコードに各項目の開始位置が決まっていて、
それぞれ開始位置に合わせてセットしてASCIIテキストに
ダウンロードしての受渡すという面倒なプログラムを組みました。

データが全て半角文字で数字は小数点以下が発生しない、マイナスも発生しないという条件が有れば
プログラム内部でデータ構造を定義してそれぞれセットして書き出せば良いのですが
漢字を含む場合はシフトコードの数だけデータが前詰となるため半角スペースを挿入したりとか、
小数点以下を持つ数字は「0000123.45」のように小数点を表示してセットしなければならず苦労しました。
簡単に対応する方法は無いでしょうか?

ちなみに弊社では、完璧ではありませんが次のように対応しました。
?漢字のシフトコードの問題では、
 * 名称(漢字)                                            
C                   Z-ADD     1980          I                          
C     I             ADD       J             I                          
C                   MOVEA     F5H022        @REC(I)                    
C     X'0E'         SCAN      F5H022                                 80
C     *IN80         IFEQ      *ON                                      
C                   ADD       2             J                          
C                   ENDIF                                              
 * 名称カナ                                                        
C                   Z-ADD     2141          I                          
C     I             ADD       J             I                          
C                   MOVEA     F5H023        @REC(I)


?小数点以下のセットについては
 * 数量
C                   Z-ADD     644           I                        
C     I             ADD       J             I                        
C                   MOVEL     *BLANK        W@D010            8      
C                   EVAL      W@D010     =  %EDITW(F5D010:'0     . ')
C                   MOVEA     W@D010        @REC(I)       
※本当は開始位置645桁目で表示桁数は7文字なのですが%EDITWだとどうしても先頭文字の
ゼロが表示されないため、1桁多く定義してセット位置の座標も1つ前にしています。
今回はマイナスはないので考慮していません。

??共にもっとスマートにできる方法は無いでしょうか。
長文になってしまいまして申し訳ございません。
RE:取引先へ送信する「延べ単レコードのデータファイル」の作成方法について ASD さん [ 10月27日(火) 22時53分 ]
沢山の要望がありますが、それぞれ、別な事象です。

それぞれを 別なプログラムに分担させる。




RE:取引先へ送信する「延べ単レコードのデータファイル」の作成方法について シャリース さん [ 10月28日(水) 20時45分 ]
漢字のシフトコード挿入とか、
小数点の編集など、
それぞれ事象に合わせて機能毎にサブプロ化して
組み込みなさい。

と解釈致しました。
コツコツ事象に合わせて自作していくしかないですかね。
回答ありがとうございました。
セオリーに従う ASD さん [ 10月28日(水) 22時59分 ]
セオリーに従って、下から組み立てます。

1. コード変換と送信にFTPを使うのが、楽です。
   PC側に FTPサーバーを立てる

2. PTPは OE OF を無視するので、直前に桁合わせのバッチプログラムを挿入する。
   定番のプログラムです。内部記述で組みます。
  
3. RPGで 出力イメージを作る。OE OF の問題は ここでは考えない。

 
 
リモートOUTQで半角カナが文字化けする サクライ さん [ 10月28日(水) 9時28分 ]
リモートOUTQを作成して5577エミュレーターが入っているキャノンのレーザープリンターに印刷を
すると、半角カナが文字化けします。
試しにMFRTYPMDLを*CANLIPS3で印刷してみましたが同様に文字化けしました。
もう1台のAS400からは文字化けしません。どこかに設定等あるんでしょうか。

文字化けする環境
OS:V5R4
CCSID:5026

文字化けしない環境
OS:V5R2
CCSID:5026

RE:リモートOUTQで半角カナが文字化けする IKD さん [ 10月28日(水) 17時21分 ]
スプールのCCSIDは、実行時のジョブの CCSIDに依存します。

同じネットワーク内の同一のプリンタに印刷すると
OS V5R2M0 からの印刷で半角カナは文字化けせずに
平常に印刷できるが、
OS Ver5.4 から同じネットワークのプリンタに印刷すると
半角カナが英子文字に文字化けして印刷されてしまう
ということでよろしいのでしょうか ?

それとも他の状況なのであれば現状をもう少し詳細に
ご説明ください。

各々の印刷を実行したジョブの CCSIDを DSPJOBで調べてみてください。
ちがいはないでしょうか ?

すべてのスプールが文字化けするのか一度の特定のスプールだけが
文字化けかるのかの情報も必要です。
RE:リモートOUTQで半角カナが文字化けする サクライ さん [ 11月18日(水) 16時11分 ]
> スプールのCCSIDは、実行時のジョブの CCSIDに依存します。
> 
> 同じネットワーク内の同一のプリンタに印刷すると
> OS V5R2M0 からの印刷で半角カナは文字化けせずに
> 平常に印刷できるが、
> OS Ver5.4 から同じネットワークのプリンタに印刷すると
> 半角カナが英子文字に文字化けして印刷されてしまう
> ということでよろしいのでしょうか ?

その通りです。

> 各々の印刷を実行したジョブの CCSIDを DSPJOBで調べてみてください。
> ちがいはないでしょうか ?

I5/OS メインメニューをホスト印刷して印刷しても文字化けします。

> すべてのスプールが文字化けするのか一度の特定のスプールだけが
> 文字化けかるのかの情報も必要です。

調べた限りでは全てのスプールになります。
印刷はプリンターセッションからですか シャリース さん [ 10月28日(水) 20時39分 ]
印刷はプリンターセッション経由ですか?

仮にそうであるとして
V5.2から出力する場合とV5.4から出力する
プリンターセッションのホストコードページが異なっているとか。
V5.2の方は930で、V5,4は939とか1390とかだったりして。
RE:印刷はプリンターセッションからですか サクライ さん [ 11月18日(水) 16時12分 ]
プリンターセッションではなくリモートOUTQです。
Windows上のユーザー切替 風前のともしび君 さん [ 10月28日(水) 18時10分 ]
お疲れ様です。
ひとつ質問があります。

あるPCにプリンターセッションの設定がしてある。
そのプリンターセッションが立ち上がっているPCをWindows上でユーザー切替する。

他のPCからAS400に印刷PGMを起動してWindows上でユーザー切替されたプリンターセッションで印
刷したいというときに印刷はされるものでしょうか?

※プリンターセッションを設定してあるPCを別ユーザーきって使用する要件が出てきました。Windows
はほぼ無知なので困っております。。。不躾ながらお知恵を拝借できればありがたく思っております
RE:Windows上のユーザー切替 IKD さん [ 10月30日(金) 17時14分 ]
試しましたか ?
RE:Windows上のユーザー切替 風前のともしび君 さん [ 11月10日(火) 9時37分 ]
試してみましたら、ユーザー切替されているプリンターセッションでも印刷が可能なことがわかりま
した。

Windowsはアカウント作成もおぼつかないほどでしたので後回しにしがちでした、、、時間がかかり
申し訳御座いません。

有難う御座いました。
Queryの帳票見出しについて はたもち さん [ 11月4日(水) 13時35分 ]
お世話になります。
AS/400の Queryで抽出条件をCL起動でパラメータを受け渡して実行できると思いますが、
帳票の見出しをパラメータで受け渡して可変にすることはできるのでしょうか?

Queryで年度毎に出力する処理があるのですが、
帳票見出しに年度を記載しなくてはならず、
Queryを開いて変更→実行しています。
年度をパラメータで受け渡して帳票発行出来たら楽なのに…と思いまして。

見出しを可変にすることは無理でしょうか?
RE:Queryの帳票見出しについて IKD さん [ 11月4日(水) 18時4分 ]
「Queryで抽出条件をCL起動でパラメータを受け渡して実行できる」

==> とありますが、これはできません。*QMQRY なら可能ですが *QRYDFN の場合は
        レコード選択画面を表示するとこはできますが CLPから動的にパラメータを
        渡すことはできません。
        ( QUERYプロンプトというコマンドによってQUERY にパラメータを渡す機能を
          無償で提供したことがありますが、これは Queryの機能ではありません。)

 ご希望の *QRYDFN の欄見出しを動的に変えることもできません。
*QMQRY であっても基本的にはできません。*QMFORM を動的に変化させるとしても
かなの複雑は処理となりますので、できないと思ったほうがいいでしょう。
 
RE:Queryの帳票見出しについて はたもち さん [ 11月6日(金) 9時16分 ]
> お世話になります。
> AS/400の Queryで抽出条件をCL起動でパラメータを受け渡して実行できると思いますが、
> 帳票の見出しをパラメータで受け渡して可変にすることはできるのでしょうか?
> 
> Queryで年度毎に出力する処理があるのですが、
> 帳票見出しに年度を記載しなくてはならず、
> Queryを開いて変更→実行しています。
> 年度をパラメータで受け渡して帳票発行出来たら楽なのに…と思いまして。
> 
> 見出しを可変にすることは無理でしょうか?
RE:Queryの帳票見出しについて はたもち さん [ 11月6日(金) 9時20分 ]
IKDさま
ご返信ありがとうございます。
そうでした。パラメータを渡せるのではなく、条件入力の画面を出すことができるのでした…
やっぱり、見出しの可変は不可能なんですね。
出来ないことがはっきりわかってスッキリしました♪
ありがとうございます。
孫ポップアップ画面から戻ると親画面が消えてしまう。 PLS さん [ 11月9日(月) 15時17分 ]
A -> B(ポップアップ画面)-> C画面(ポップアップ画面)の
画面構造にて、
CからBに戻った場合、B画面の囲い罫線とA画面全部が消えてしまいす。
A -> B画面間は問題ないのですが。。。

なぜでしょう。。。
RE:孫ポップアップ画面から戻ると親画面が消えてしまう。 PLS さん [ 11月9日(月) 15時55分 ]
> A -> B(ポップアップ画面)-> C画面(ポップアップ画面)の
> 画面構造にて、
> CからBに戻った場合、B画面の囲い罫線とA画面全部が消えてしまいす。
> A -> B画面間は問題ないのですが。。。
> 
> なぜでしょう。。。

追記)
C -> B 遷移時のBのロジックは、A -> B 遷移時のBのロジックと
同じ箇所を走ります。(WRITE , EXFMT) 
RE:孫ポップアップ画面から戻ると親画面が消えてしまう。 PLS さん [ 11月9日(月) 18時45分 ]
> A -> B(ポップアップ画面)-> C画面(ポップアップ画面)の
> 画面構造にて、
> CからBに戻った場合、B画面の囲い罫線とA画面全部が消えてしまいす。
> A -> B画面間は問題ないのですが。。。
> 
> なぜでしょう。。。

<回答>
DSPFコンパイル時のパラメタを以下の通りに指定する。

画面復元  . . . . . . . . . . . RSTDSP → *YES
書き出し据え置き  . . . . . . . DFRWRT  → *NO
RPG、RPGLEでビット反転の命令 sakura さん [ 11月16日(月) 13時11分 ]
RPG/RPGLEでビットを反転する命令というのはありますでしょうか?
もしもあれば現在は分岐で振り分けているものを1文で表現できるため
使っていきたいと思っています。

IF *IN01 = *ON;
 *IN01 = *OFF;
ELSE;
  *IN01 = *ON;
ENDIF;

RE:RPG、RPGLEでビット反転の命令 IKD さん [ 11月17日(火) 9時29分 ]
ありません。標識を標識エリアやフィールドとして扱うことやビットオン、ビットオフの命令は
ありますがビットを反転させる命令は存在しません。

RPG のテストビットやビットオン、オフの命令は便利でわかりやすいものですが
C 言語でもビットオン、オフやテストビットの命令はありません。
C 言語では、他の変数と AND OR して結果を間接的に判断するものでこれに比べてRPG のほうが
直接的に判断することができます。
それでもビットの反転命令は存在しません。
RE:RPG、RPGLEでビット反転の命令 sakura さん [ 11月17日(火) 13時12分 ]
了解しました。
やっぱりないのですね。IFで分岐させると行数が増えてしまうので
もしあればと思い質問させていただきました。
コメントありがとうございました。
裏技なら あるが ASD さん [ 11月17日(火) 9時57分 ]
<PRE>
1.  JA  ADD  5  JA  1/0    31=      JAが0と5 を行ったり来たり。
2.      MOVE   *IN31   *IN41
     41         SETOF           31
     N41        SETON           31
3. 失敗例
    31     SETOF        31
      N31        SETON        31
4.  試してないが
    *IN31   COMP  '0'      3131  ><     
    
RE:裏技なら あるが sakura さん [ 11月17日(火) 13時16分 ]
サンプルソースを記載していただきありがとうございます。
全部試してみます!

コメントありがとうございました。
RE:裏技なら あるが しろくま ー百獣の王ー さん [ 11月17日(火) 11時22分 ]
こんなのはどうでしょうか?

EVAL      *IN01 = NOT *IN01
RE:裏技なら あるが sakura さん [ 11月17日(火) 13時26分 ]
こういう方法もあるんですね!
非常に参考になりました。

実は配列で行おうと思っていたのですが、記載いただいたものを参考にして
一度標識に値を入れて、それを配列に移そうと思います。

コメントありがとうございました。

*IN(I) = NOT *IN(I)
ARY(I) = %DEC(*IN(I):1:0)
COLHDGの読み方 KDM さん [ 11月19日(木) 11時15分 ]
質問があります。
DDSなどに記載する COLHDG は何かの略でしょうか。
またその読み方を教えてください。
RE:COLHDGの読み方 ASD さん [ 11月19日(木) 11時45分 ]
カラムヘッディング。
8バイト 3個 の DFU 見出し。
(ただし 独断と偏見) 
YAHOO を DDS COLHDG で ぐぐると 一発で でます。
RE:COLHDGの読み方 KDM さん [ 11月19日(木) 20時45分 ]
> カラムヘッディング。
> 8バイト 3個 の DFU 見出し。
> (ただし 独断と偏見) 
> YAHOO を DDS COLHDG で ぐぐると 一発で でます。
回答ありがとうございます!
なるほどしっくりきました。
なおこちらでもぐぐってみます!
メンバー・ロックされてしまう現象について ゆうやん さん [ 12月8日(火) 15時57分 ]
お世話になります。項目をデータベースにしましたが、どういうジャンルにしていいのかわからないの
で仮に選択しました。

今回修正したPGMをテストするために、新しくライブラリを用意し、使用する全てのPF/LF及び下位のプ
ログラムをコピーして環境を用意しました。

対象のRPGプログラムを実行したところ、下位のプログラムで使用するDB(CHAIN/READのみ)がPGM終了
してもロックされた状態のままです。特定のDBではなく、下位PGMで使用する全てのDBがそのようになっ
ています。どのDBも特にメンバーの指定などはありません。

ファイル・ロックやレコード・ロックではなくメンバー・ロックという点も不思議ですが、更新対象で
もないのになぜだかわかりません。

ご回答のほどよろしくお願いします。
RE:メンバー・ロックされてしまう現象について ゆうやん さん [ 12月8日(火) 17時45分 ]
申し訳ありません、その後の調査で対象のDBにアクセスする下位の共通プログラムがLR標識を立ててい
なかったことが判明しました。これが原因なのでしょうか?
ただ、それならば上位のプログラム終了時に同時にクローズし解放されるのではないかとも思います。
RE:メンバー・ロックされてしまう現象について ASD さん [ 12月8日(火) 18時29分 ]
セッションが終了するまで、解放されません。
1. 終了呼び出しをする。パラメーターとかで。
2. FREE 命令をだす。
 
RE:メンバー・ロックされてしまう現象について ゆうやん さん [ 12月9日(水) 10時35分 ]
ASD様

早速のご回答ありがとうございました。
やはりそうですか…。
このPGMはJOBスケジュール起動の夜間バッチでしか動かないために、オンラインにて単体でテス
トするとこのような現象が出ることに今まで気付かなかったみたいです。
処理速度 ASD さん [ 12月9日(水) 15時13分 ]
処理速度を上げる為、普段は、LRをONに しないのが、望ましい。

ただし、LR ON のタイミングを プログラマーが明示的に 指示するのも めんどい。 

ファイルを扱うものは、LR ON を 推奨します。
RE:処理速度 ゆうやん さん [ 2月1日(月) 20時38分 ]
> 処理速度を上げる為、普段は、LRをONに しないのが、望ましい。
> 
> ただし、LR ON のタイミングを プログラマーが明示的に 指示するのも めんどい。 
> 
> ファイルを扱うものは、LR ON を 推奨します。


申し訳ありません!しばらくこちらを見ていなかったもので、ご回答いただいていたのを知りませんで
した。教えていただいてありがとうございました。
RE:メンバー・ロックされてしまう現象について IKD さん [ 12月9日(水) 11時19分 ]
症状からすると呼び出される下位のプログラムが LR終了していないのが
原因のようですね。

下位のプログラムで必ずしも更新が必要ないときは
CHAIN(N) などにすればレコードは解放されます。

また上位のプログラムが ILE であるなら
DSPPGM で上位のプログラムを調べてみてください。

活動化グループ属性が 万一、*CALLER になっていれば
そのまた上位が終了しないとこの上位プログラムも解放されません。
活動化グループ属性が QILE になっていても同じです。
*NEW が最も望ましいのですが CRTBNDRPG をそのまま
実行してしまうと QILE になってしまいます。
RE:メンバー・ロックされてしまう現象について ゆうやん さん [ 12月9日(水) 14時58分 ]
IKD様

ご回答、ありがとうございます。

下位の共通プログラムは今回改変になっておらず、
残念ながらご指導いただいた対応が出来ません。
レコードロックはされていないので、この点は後回しにされそうです。

上位のPGMはRPG?で今のタイミングではコンバートもできないので、
教えていただいた方法で逃げることも出来なさそうです。

確認はしていないのですが、毎回SBMJOBで実行するしかないのか。。。と思い始めています。

ともあれ、色々教えていただいてありがとうございました。お礼申し上げます。

CLからRPGをコールする際にライブラリを動的に指定する方法 まろにー さん [ 12月9日(水) 15時39分 ]
いつも勉強させていただいております。
ふと疑問に思いましたので投稿させて頂きます。


CLからRPGをコールする際に「CALL PGM(ライブラリ/RPG名)」と指定しますが
その際のライブラリのところを動的に指定する方法はありますでしょうか?


現在、会社ごとにライブラリーを分けて管理して
それぞれのライブラリの中に同じ名前のCLやRPGやPFやDSPFがある状態になり
ます。

 会社A ALIB
 会社B BLIB
 会社C CLIB

今までは会社ごとにCL側に変数の値にそれぞれのライブラリを指定していたの
ですが、
この方法だと会社が増えれば増えるほど手間が増えるので
動的にコールするCLを1つ用意してそれをそれぞれのライブラリに置くという
方法が出来ればと思っています。

表記の方法や、またはそれに代わる何か良い方法があれば
教えて下さい。


RE:CLからRPGをコールする際にライブラリを動的に指定する方法 まろにー さん [ 12月9日(水) 15時44分 ]
<追記>
CLでの方法と記載しましたが、RPGでユーザープロフィールのIDを取得する方
法があれば
それでも実行したいことが行えますので、もしRPGから実行中のユーザープロ
フィールIDを
取得する方法があれば、教えて下さい。。。

※RPGでユーザープロフィールIDを取得する方法がわからず、CLからはわかったため
 CLで作成しました。しかし今度はCLでライブラリを指定する方法がわからな
いという
 状況で困っている状態です。。。
RE:CLからRPGをコールする際にライブラリを動的に指定する方法 IKD さん [ 12月9日(水) 18時3分 ]
RPG ソースに入力仕様書にプログラム情報として
下記のように SDS を定義すれば
254 - 263桁目にユーザー名が入ります。
こういうことを希望されているのでしょうか ?

    IINFDSP     SDS                                       
    I* プログラム 名                                         
    I                                        1  10 PGM    
    I* 状況コード ( *STATUS )                             
    I                                       11  150STATUS 
    I* 以前の状況コード ( *STATUS )                       
    I                                       16  200BEFSTS 
    I* 原始ステートメント                                 
    I                                       21  28 STMNO  
    I* 例外エラーのルーチン                               
    I                                       29  36 ROUTIN 
    I* 受取パラメータの数                                 
    I                                       37  390PARMS  
    I* CPF メッセージ番号                                 
    I                                       43  46 CPFID  
    I* オブジェクト・ライブラリー                                   
    I                                       81  90 OBJLIB 
    I* 最後に使用した ファイル                                
    I                                      201 208 LSTFIL 
    I* ジョブ 名                                           
    I                                      244 253 JOB    
    I* ユーザー 名                                           
    I                                      254 263 USER   
    I* ジョブ 番号                                         
    I                                      264 269 JOBNBR 
    I* 原始ファイル                                       
    I                                      304 313 SRCFIL 
    I* 原始 ライブラリー                                       
    I                                      314 323 SRCLIB 
    I* 原始 メンバー                                         
    I                                      324 333 SRCMBR 
RE:CLからRPGをコールする際にライブラリを動的に指定する方法 まろにー さん [ 12月10日(木) 10時15分 ]
>254 - 263桁目にユーザー名が入ります。
>こういうことを希望されているのでしょうか ?


はい!ありがとうございます!
これが知りたかった情報です!

SDSを使えばRPGからユーザープロフィールなど様々な情報が取得出来るんですね。
大変勉強になりました。活用させていただきます。
ありがとうございました。
メンバーサイズ取得 saka さん [ 12月14日(月) 10時25分 ]
CL等で

メンバーサイズ
 初期レコード数
 増分レコード数
 最大増分値

を取得する方法ありますか?

RTVOBJD
RTVMBRD

では取得できなさそうでした。
RE:メンバーサイズ取得 saka さん [ 12月14日(月) 10時31分 ]
すみません。分かりました。

DSPFD TYPE(*MBR)

ですね。
WRITE されない なかた さん [ 12月14日(月) 15時47分 ]
Aファイルを読んで、BファイルにWRITE、書き込んだ結果をAファイルにUPDAT
と言う事してますが、BファイルのWRITEが効いて状況になっています。
WRITEが行われないのは何か原因があるのでしょうか?
ちなみに、Aファイルのメインでの読み込みはSQLで回しながら読み込みし、
AファイルにUPDATは、CHAIN後に行っています。
AファイルのUPDATは出来て、BファイルのWRITEが出来ません。
RE:WRITE されない IKD さん [ 12月15日(火) 10時49分 ]
プログラムの書き方がわからないと何とも回答のしようがありません。
SQLでデータを読んでCHAIN して更新することも
危うい書き方ですし。

ご質問は
 「WRITE命令を実行したのにレコードが追加されません。
  原因はなんでしょう?」
という質問と変わりありません。

「WRITEが効いていない」という抽象的な表現も避けるべきでしょう。
この種の質問は情報は出さないで回答ばかり求めるのは
無理があります。
「WRITEが効いていない」そのものも、どのようにして確認されたか
表現が必要です。
レコードが追加されているのに確認を誤っている可能性もありますから。
こののままでは回答できないでしょう。

RE:WRITE されない saka さん [ 12月18日(金) 16時52分 ]
以前、ある一定数WRITE(EXCPT?)しないと、他(のジョブ?/プログラム?)から、
見えないという現象がありました。

DSPDBM等で見ているとある一定数出力するとわっと出てきました。

書かれていない動作をして困っていましたが、
確かCRTPFする時やCHGPFのFRCRATIOを1にして正常な動作をしたと記憶します。
ILERPGでパラメータ2にパラメータ1の値が追加されて送られる AS400 初心者 さん [ 12月16日(水) 10時9分 ]
いつもお世話になっております。

プロシージャにパラメータとして文字列2つを送った際に
パラメータ2にパラメータ1の値が含まれて送られてしまっています。


例)
 パラメータ1 'あいうえ'
 パラメータ2 'あいうあいうえあい'

 プロシージャ2のパラメータ2の表示(DSPLYで確認)
 
 '→あいうあいうえあい←            →あいうえ←                
 (→←はシフトインアウト文字)    ↑
                   なぜかここにパラメータ1の値が。。

■仕様
 MAIN(送り側)
  パラメータ1 30
  パラメータ2 50

 プロシージャ(受け側)
  パラメータ1 30 OPTIONS(*VARSIZE)
  パラメータ2 50 OPTIONS(*VARSIZE)
RE:ILERPGでパラメータ2にパラメータ1の値が追加されて送られる AS400 初心者 さん [ 12月16日(水) 10時11分 ]
すいません。
記載がずれていますが、「なぜかここにパラメータ1の値が」は
上の行の→あいうえ←の部分を指しています。
DEBUGする となり さん [ 12月16日(水) 11時13分 ]
そんなこと、よくあります。
パラメーター1 と 2 が DS上で 重なってる。
長さの定義が違う 文字30のつもりが 数値3.0 とか。 
RE:DEBUGする AS400 初心者 さん [ 12月16日(水) 11時47分 ]
> そんなこと、よくあります。

ありがちなんですね。。
私の方でもDSで重なっているのかと思ったのですが
メイン側でもプロシージャ側でもDSは一切使っていないのです。。
OPTIONS(*VARSIZE)が悪いのかと思いその記述を外したり
文字の長さをメイン側とプロシージャ側で揃えても治りませんでした。

メイン側で送る時にはパラメータ2にはパラメータ2の値のみが入っているの
ですが。。
 
RE:DEBUGする AS400 初心者 さん [ 12月16日(水) 13時3分 ]
凡ミスでした。。。
送り側の方でパラメータ1とパラメータ2の長さを逆に指定していました。
失礼いたしました。
iseriesからのデータ転送 KDM さん [ 12月18日(金) 10時9分 ]
iseries Access for windowsを使用しています。
メニューのボタンから「system i からのデータ転送」
というものがあり、何気なくデータを落としてきたり
アップしたりしています。
この転送はどういった方法で行われているのでしょうか。
(例えばFTPで行っている、などのレベルで分かりません)
よろしくお願い致します。
RE:iseriesからのデータ転送 となり さん [ 12月18日(金) 14時14分 ]
転送クライアント と 転送サーバーが TCP/IP で 通信しています。

TCP/IP は PPTPでなく FTPでなく その他です。

RE:iseriesからのデータ転送 KDM さん [ 12月18日(金) 15時27分 ]
となり様、ご回答ありがとうございます。
いただいた回答から調べてみます。
> 転送クライアント と 転送サーバーが TCP/IP で 通信しています。
> 
> TCP/IP は PPTPでなく FTPでなく その他です。
> 
> 
共用について koyo さん [ 12月18日(金) 12時12分 ]
Win7からフォルダのアクセス制限の掛け方についてお尋ねします。V5R2、iSeriesナビゲータからの操作
です。
[統合ファイル・システム][共用]よりフォルダAに対して許可の画面より、ユーザーをPublicだけにし、
[読み取り]にチェックをしたのですが、ユーザ(特権:ユーザー)でWin7からログインしても、新規、
更新削除、全て可能な状態でアクセス出来てしまいます。
ちなみに[統合ファイル・システム][ファイル共用]よりフォルダAのアクセスを[読み取り専用]にすると
、Win7からも読み取り専用になります。

識者の方、どうぞ宜しくお願い致します
バグ となり さん [ 1月5日(火) 11時18分 ]
iSeriesナビゲータ には 多数のバグ が あります。

ILERPG フィールドやDSPFの入力項目の型を調べる方法 AS400 初心者 さん [ 1月5日(火) 17時53分 ]
文字列処理を行うプロシージャを作成しているのですが、
型がOかJかで文字列の長さの取得の仕方を変える必要がありそうでした。

そこで、PF/LFのフィールドの型やDSPFの入力項目の型を調べる方法があれば
と思ったのですが、そのような命令はRPGLEにありますでしょうか?
RE:ILERPG フィールドやDSPFの入力項目の型を調べる方法 IKD さん [ 1月6日(水) 12時33分 ]
RPG でフィールドの型を取得する命令はありません。

プロシージャーを呼び出すときに型もキー・ワードとして
渡すという方法になります。
またはプロシージャー内で O または J を識別するための
ロジックを組み込むかになります。
RE:ILERPG フィールドやDSPFの入力項目の型を調べる方法 AS400 初心者 さん [ 1月6日(水) 15時42分 ]
> RPG でフィールドの型を取得する命令はありません。
> 
> プロシージャーを呼び出すときに型もキー・ワードとして
> 渡すという方法になります。
> またはプロシージャー内で O または J を識別するための
> ロジックを組み込むかになります。
> 

コメントありがとうございます。
了解しました。そのような命令はないのですね。
プロシージャー内でロジックを組み込む形で検討してみます。

ありがとうございました。
RPG dosirouto さん [ 1月17日(日) 8時38分 ]
過去にAS400でRPGでのシステム開発をしていた者ですが、最近改めて触れたくなり、RPGをPCで開
発する為のツールを探しています。 できれば現状の環境下でもコンパイルして動きを確認できるよ
うなTOOLがあれば嬉しいのですが・・・ 願わくばどなたか教えて頂けませんでしょうか?
RE:RPG IKD さん [ 1月17日(日) 10時5分 ]
RPG を PC上でコンパイルできるツールは 10年以上前に米国で販売されていましたが
販売停止となりました。
このツールは販売停止を機に無償ライセンスで配布していたと記憶しています。
米国の掲示板で探してみればと思いますがおそらくは RPG || であったと思います。
またこの時代のものは入手できたとしても 32ビットWindowsでは動作できないでしょう。

IBM の VisualAge または Visual RPG も PC上でコンパイルが可能だったと重いますが 
RPG II でしょうし現在は販売していないか、入手可能としても相当、高価で
個人の趣味レベルでは購入は難しいです。

IBM i を保有していてソフトウェア保守(SWMA)に加入していることが前提となるからです。
これらの条件が揃ったとしても数十万円は必要となるでしょう。

中古の IBM i を探して購入することのほうが現実性がありそうです。
または IBM i をインターネット公開しているSSOにお願いしてネットからの接続で
試行をさせてもらえるなら、それが最も簡単ですね。
IBM 系 の SSO に就職すれば日中もIBM i で開発できて給料までもらえます。
ただしこの時代にあって IBM i の適用業務の新規開発を本業とするには少し無理があって
ビジネス・モデルとしては成り立ちにくい時代になってきています。

どこかの IBM i にネット接続できれば、費用も安くて済むでしょうし
設備も自宅でインターネット接続かが可能であることと
PCOMM または クライアント・アクセスがあれば最新の IBM i に接続して開発することができま
す。

今やクライアント/サーバーの時代ではなくネットの時代ですからクラウド利用を
検討されてはどうでしょう ?
RE:RPG dosirouto さん [ 1月17日(日) 15時45分 ]
有難うございます。 無理って事ですね・・・
実は昔、三菱銀行の割賦金システムは一人で大規模修正しましたし、オムロンの総括本部の大規模修
正等も手掛けていましたが、バブルの影響で会社が傾き辞めてしまったんです!
当時はプログラマーの求人自体がなくなってしまって、大好きな仕事だっただけに、今またプログラ
マーが引く手数多になってるのを見て、なんとか・・・と思ったのですが、ブランクが空きすぎてい
た為、なんとか使って思い出せるかと甘い考えをしてしまいました。

本当に有難う御座います!
プログラミング楽しいですよね^^
RE:RPG IKD さん [ 1月17日(日) 16時27分 ]
金融系のシステムを一人で保守されていたのであれば、なかなかの猛者で
いらっしゃいますね。

確かに現在は人手不足であり優秀な人材が足りません。
これは将来的な傾向です。

IT系であれば Find-Job (http://www.find-job.net )をご存知でしょうか ?
やはりここが IT系の最大の求人サイトであり弊社も毎日、優秀な人材を探しています。

登録しておけばキャリアに合った法人のほうからスカウトがありますので
ご利用なさってはいかがでしょうか ?
ご自分のデータを登録/更新するだけで求人中の企業にアピールすることができます。

弊社もここで同じ IBM業界の経験者を見つけて入社して頂きました。
同じ業界の経験者のほうが話が早いので助かっています。
RE:RPG dosirouto さん [ 1月17日(日) 21時25分 ]
有難うございます。
私がAS400でのプログラミングをしていたのは、もう20年も前の事です。
正直、悲しいですが使い物にならないと自分でも理解しています。
遣り甲斐満点の仕事だっただけに、むかしの熱い思いがこみ上げてきてしまい、
『バブルがなければ、今頃・・・』等と、子供じみた考えから、
RPGを自宅で特訓できないかと考えた訳です(笑)

当時はRPGに関してのみ、自分でも秀才だと自分でも思っていました。
夢の中でアイディアが浮かんで、飛び起きてメモを取り、
翌日組み上げて解決するなんて事もありました。 職人なのかマニアなのか(笑)

古い記憶でも、メモリ同様に簡単に引き出せたら良いのですが、脳ミソと言う物は・・・
もう本当に離れなければならないのが、ちょっと寂しいですが、
親切にアドバイス頂きまして、本当に有難う御座います。

これも何かのご縁! 良き日々が訪れます様、お祈り申し上げております。 
RE:RPG クロクマくん さん [ 1月18日(月) 15時28分 ]
こんにちわ、クロクマと申します。

AS400(RPG)もまだまだ、企業では使用されておりますよ、しかし今の世代の方には、
慣れない言語であり、現状はRPGプログラマーの後継者がいないのも現実です。

特に今の若い方には、あの黒画面(5250エミュレーター)を使用し開発していくのが
なかなか敷居が高いらしいです。
そのような事もあり、最近ではブラウザー(ネット接続)でAS400に接続し、
SEUの代わりにブラウザー上で、RPGを開発する下記のようなWeb化ツールも
あるようです。

クロクマ(私)が、あるASユーザーで既存の5250アプリケーションのWeb化のプロジェクトに
参加していたときに使用していたのが、「EnterpriseServer」という製品を
使用していました。

その製品の一機能に「eStudio」という開発統合化ツールの機能があり、
まさにSEUを使用せずにブラウザー上(PC)でRPGソース編集、HTMLソース編集、そして
コンパイル、ビルド、実行まで行うことができるツールでした。

ぜひ一度、この開発元(オフィスクアトロ)のHPでも参照してみてください。
http://www.officequattro.com

では、良きプログラムライフを!!



RE:RPG dosirouto さん [ 1月20日(水) 23時37分 ]
ここは親切な方が多くて涙が出ます。
クロクマさん、わざわざ有難うございます。
早速見に行って見ますね(^o^)/
SQLRPGLEへの動的SQLへの組込方について AS400 初心者 さん [ 1月27日(水) 17時40分 ]
いつもお世話になっております。


ユーザーの操作によって、動的に条件文を作成し
その結果を文字型の変数にまとめたものを
EXEC SQLでのSQL実行時にWHERE文として指定したいのですが
どのように記載すればよろしいでしょうか?

例)
STRSQLという文字型変数に、ユーザー操作による条件指定の結果を格納する
(STRSQLには、'WHERE AAA = 10 OR AAA = 15 OR AAA = 20 OR BBB = 11'が入る)

INSERT INTO LIB/FILEA SELECT AAA,BBB,CCC,DDD FROM LIB/FILEB というような
SQL文にSTRSQLの内容を結合して、結果としては下記のようなSQLの実行を行い
たいです。

INSERT INTO LIB/FILEA SELECT AAA,BBB,CCC,DDD FROM LIB/FILEB
WHERE AAA = 10 OR AAA = 15 OR AAA = 20 OR BBB = 11

RE:SQLRPGLEへの動的SQLへの組込方について AS400初心者 さん [ 1月28日(木) 9時59分 ]
?の理解で合っているかはわかりませんが、動的なSQL自体は実行出来ました。
ただ、2点気になるところがあります。
?の部分について、質問させて下さい。

------------------------------------------------------------
?
//TESTSQL(文字型の変数)をPREPARE文でSTMT1というSQL文に設定する
EXEC SQL PREPARE STMT1 FROM :TESTSQL;

//上記で設定したSTMT1というSQL文をEXECUTE文で実行する
EXEC SQL EXECUTE STMT1;

※TESTSQLには、'INSERT INTO LIB/FILEA SELECT AAA,BBB,CCC FROM LIB/FILEB
 WHERE AAA = 10 OR AAA = 15' が入っている状態
------------------------------------------------------------
?
 1.SQL実行後にデータ追加先のファイルがロックされたままになっている。
   サインオフするとファイルのロックが解除されます。   

   WRKOBJLCKで確認すると下記の状況でした
     ロック :*SHRRD
     状況  :HELD
     有効範囲:*JOB

 2.SQL実行時にファイルにINSERTされていない時がある
   (誰も使用していないファイルで、かつ追加先のファイルはデータが0件の
    状態です。また、INSERTされていない時に再度同じプログラムを実行
すると
    データが追加されます)

------------------------------------------------------------

?の2も気になりますが、?の1の方がまったく解決方法がわからず困っていま
す。。
私のやり方がよくないのかもしれませんが、RPG終了時にファイルロックが解
放されるようにするには
どのようにすればいいかご助言いただけないでしょうか?

宜しくお願い致します。


RE:SQLRPGLEへの動的SQLへの組込方について AS400初心者 さん [ 1月28日(木) 10時58分 ]
> 下記1の理解で合っているかはわかりませんが、動的なSQL自体は実行出
来ました。
> ただ、2点気になるところがあります。
> 下記2の部分について、質問させて下さい。
> 
> ------------------------------------------------------------
> 1
> //TESTSQL(文字型の変数)をPREPARE文でSTMT1というSQL文に設定する
> EXEC SQL PREPARE STMT1 FROM :TESTSQL;
> 
> //上記で設定したSTMT1というSQL文をEXECUTE文で実行する
> EXEC SQL EXECUTE STMT1;
> 
> ※TESTSQLには、'INSERT INTO LIB/FILEA SELECT AAA,BBB,CCC FROM 
LIB/FILEB
>  WHERE AAA = 10 OR AAA = 15' が入っている状態
> ------------------------------------------------------------
> 2
>  1.SQL実行後にデータ追加先のファイルがロックされたままになっている。
>    サインオフするとファイルのロックが解除されます。   
> 
>    WRKOBJLCKで確認すると下記の状況でした
>      ロック :*SHRRD
>      状況  :HELD
>      有効範囲:*JOB
> 
>  2.SQL実行時にファイルにINSERTされていない時がある
>    (誰も使用していないファイルで、かつ追加先のファイルはデータが
0件の
>     状態です。また、INSERTされていない時に再度同じプログラムを実行
> すると
>     データが追加されます)
> 
> ------------------------------------------------------------
> 
> 私のやり方がよくないのかもしれませんが、下記2点について
> ご助言いただけないでしょうか?
>
>  ・RPG終了時にファイルロックが解放されるようにする方法
>  ・2回に1回しかSQLが実行されない状態の解決方法
> 
> 宜しくお願い致します。
> 
> 
> 
RE:SQLRPGLEへの動的SQLへの組込方について IKD さん [ 1月28日(木) 14時59分 ]
「サインオフするとファイルのロックが解除されます」という症状から推察すると
LR-終了していない、つまりプログラムが正常終了しないでスタックの残ったままに
なっている、という可能性がかなり高いです。

ロックを解放する方法ではなく、ご自分のプログラムの基本ができているかを
よく調査しましょう。
RE:SQLRPGLEへの動的SQLへの組込方について AS400初心者 さん [ 1月28日(木) 17時38分 ]
はじめにそれを疑いました。
実際のソースは、下記のような構成になっているため、
LR終了はしていました。
--------------
EXSR SQL;
*INLR = *ON;
RETURN;
--------------

それで色々継続して試した結果、COMMITを入れると
ファイルのロック自体は解除されるようになりました。

EXEC SQL PREPARE STMT1 FROM :STRSQL;
EXEC SQL EXECUTE STMT1;
EXEC SQL COMMIT;    ←この文を追加しました。

バグ となり さん [ 1月28日(木) 15時23分 ]
丁寧にDEBUGしてください。
コンパイル時のCOMMIT値は? @445 さん [ 1月28日(木) 15時57分 ]
コンパイル時 COMMIT(*NONE) ですか?
RE:コンパイル時のCOMMIT値は? AS400初心者 さん [ 1月28日(木) 17時44分 ]
> コンパイル時 COMMIT(*NONE) ですか?

質問投稿させていただいた時は、COMMIT(*CHG)でした。

色々試す中で、COMMIT(*NONE)にすると
データが追加されないことがあるという現象は発生しなくなりました。

COMMIT(*NONE)でも問題はないのでしょうか?
RE:コンパイル時のCOMMIT値は? IKD さん [ 1月28日(木) 21時3分 ]
SQLバインドのプログラムをコンパイルするときには
COMMIT を使っていないのであれば COMMIT *NONE でコンパイルするのが
正しいやり方です。

COMMIT は SQL での更新をロール・バック(ROLLBK=元に戻す) ために
ヒストリーにログを書くために使用するだけです。

どのような業務で更新されているのか不明ですが
SQL 更新の場合、ひとつひとつの UPDATE/INSERT を行って
複数のファイルを更新していくと、どれかの更新が失敗すれば
既に更新した他の更新も元に戻さないと整合性が取れなくなってしまう場合があります。

このようなときのために COMMIT から次の COMMIT のあいだまでに
問題が発生すれば ROLLBK で元に戻すことができます。
ただし COMMIT を使う場合は環境の用意も必要です。

このように複数のファイルを更新しているのでなければ COMMIT は *NONE で
問題はありません。

ただし、SQL による COMMIT/ROLLBK の更新はパフォーマンスも低下しますし
メモリも大量に消費します。
前時代的な方法ですのであまりお勧めはできません。
RE:コンパイル時のCOMMIT値は? AS400初心者 さん [ 1月29日(金) 9時41分 ]
詳しく教えていただきありがとうございます。
非常に勉強になりました。

今回しようと思っていることは、
 1.画面内の8項目くらいを表示
 2.項目でファンクションキーを押下するとその項目のポップアップに
   一覧を表示
 3.その一覧で選択された値が(複数、飛び石可)その項目の抽出条件
 4.8項目でそれぞれ動的に設定された値を1つのWHERE文として変数に格納
 5.SQL文を実行(ここでWKに抽出結果を書き込み)
 6.RPGで再度抽出


という流れになります。
3の部分をRPGでやるよりはSQLで出来る方が開発工数や、実行速度という観点で
良いのではと思い、色々試行錯誤して作成していました。


>ただし COMMIT を使う場合は環境の用意も必要です

1点、ご説明いただいた中で質問させていただきたいのですが
こちらの環境というのは、ジャーナルファイルが必要ということでしょうか?
RE:コンパイル時のCOMMIT値は? IKD さん [ 1月29日(金) 11時2分 ]
COMMIT *NONE でコンパイルした SQLRPGLE の実行にはジャーナルは必要ありません。

COMMIT を使う場合はもちろんジャーナルが必要となります。
ジャーナルには SQL での更新前と更新後のログが記録されますので
ROLLBK できるようになるわけです。
従って COMMIT *NONE であればジャーナルは必要ありません。

上記のご説明の部分で 2 の POPUPにデータを抽出して表示するために
SQL を利用するのではないのですね ?

小職が少し前に開発したストアド・プロシージャーでは SQL 文で
上記のように POPUPを表示するシステムを開発したものですから。
RE:コンパイル時のCOMMIT値は? AS400初心者 さん [ 1月29日(金) 11時55分 ]
はい。POPUPの部分はSQLではなくRPGで行っています。
幸いPOPUPに表示するのはマスターからのシンプルで静的な抽出条件でしたので。


*NONE以外でのCOMMIT時はやはりジャーナルが必要ということで了解いたしま
した。

詳細なご説明に加えて、参考になるお話もいただき
ありがとうございました。

 
投稿のお名前について 管理人 さん [ 2月2日(火) 20時15分 ]
パスワードを投稿のお名前には厳に使用しないでください。
パスワードを公開することにもなりますので
投稿された記事は無条件に削除致します。

ルールとマナーを厳守のほどお願い致します。
可変長ファイルへのFTP送信は出来ないのでしょうか? ゆうやん さん [ 2月4日(木) 20時47分 ]
いつもお世話になります。またお知恵をお借りしたく、お願いします。

1レコード1フィールドのPFですが、その項目を可変長(VARLEN)で定義しています。
このファイルにFTP PUTでデータを送ろうとすると、BINでもASCIIでも送信できません。
(ファイルのオープンが出来ません。ただ、ASCIIモードでappendを使用するとファイルのオープンは出
来ているようですが、結果データは受信できていません)

そもそも可変長のファイルにはFTPでデータの送信をすることは不可能なのでしょうか?
なんらかの指定をすれば可能なのでしょうか?

ご存じのことがあれば教えてください。どうぞよろしくお願いします。
FTP となりのSE さん [ 2月5日(金) 14時8分 ]
できる事は、できる。できん事は、できません。
裏技など ありません。
RE:FTP ゆうやん さん [ 2月5日(金) 14時20分 ]
となりのSEさん

ご回答とご教示ありがとうございます。
では、そもそも出来ないことなのですね。
勉強になりました。

そもそも となりのSEさん さん [ 2月5日(金) 19時8分 ]
FTPは フィールドの属性を無視して、ファイルを転送します。
できること
1. 16進転送。レコード長も無視します。
2. テキスト転送 1レコード1フィールドと 解釈されます。

原始的だから、応用が広い。できる事が、上位機能では、ありません。
CPYF と 組み合わせれば なんとか なるかも。
いよいよ なら RPGを 使うとか。
RE:そもそも ゆうやん さん [ 2月5日(金) 21時26分 ]
なるほど、シンプル機能だからこそこれほど広まっているのですね。
可変長では受信そのものが出来ないので、まずは固定長で受信して
いろいろ加工するしかないみたいです。

再度のご指導ありがとうございます、またの折にはどうぞよろしくお願いします。
SQL cursorで次のレコードに切り替わらない AS400 初心者 さん [ 2月8日(月) 9時56分 ]
いつもお世話になっております。
論理ファイルの無い物理ファイルをSQLで並び替えして、サブファイルに表示
するという
プログラムを作成したいと思っています。

下記のSQLでcursorを定義して、FETCHで1行ずつサブファイルに書き込むという
流れになるかと思うのですが、実際にソースを書いたところ同じレコードが
サブファイルに書き込まれており、デバッグで確認してもCursorが次のレコードに
遷移していないようです。

私の書き方が悪いのだとは思うのですが、不慣れなもので思うように
動いてくれないという状態です。
お手数おかけしますが、ご教示いただけないでしょうか?

-------------------------------------------------
※SORTSQLにSQL文が文字列で入っています
※DSSQLにファイルと同じ構成のDSが用意されています
 (AやBはDSのフィールドです)

EXEC SQL DECLARE CSR CURSOR FOR WKSTATEMENT;
EXEC SQL PREPARE WKSTATEMENT FROM :SORTSQL;

EXEC SQL OPEN CSR;
FOR RRN1 = STRRRN TO ENDRRN;
   EXEC SQL FETCH CSR INTO :DSSQL;

   //DSから画面へセット
   P_SCD = A
   P_SCD = B

   WRITE SFL01
ENDFOR;
EXEC SQL CLOSE CSR;
-------------------------------------------------


RE:SQL cursorで次のレコードに切り替わらない IKD さん [ 2月8日(月) 16時20分 ]
同じレコードが出力されているという症状からすると
CURSOR が効いていないということですから

EXEC SQL DECLARE CSR CURSOR FOR WKSTATEMENT;
EXEC SQL PREPARE WKSTATEMENT FROM :SORTSQL;

が怪しいのですが、ずいぶん間接的な表現になっていますので

EXEC SQL DECLARE CSR CURSOR FOR :SORTSQL;

にして実行してみてください。
コンパイル・エラー等があればご自分で修正してください。

EXEC SQL FETCH CSR INTO :DSSQL;

の A, B が :DSSQL の DSで定義されているフィールドであると
予想していますが :DSSQL のフィールドには SFLレコードのフィールド名を
そのまま使えば、

//DSから画面へセット
   P_SCD = A
   P_SCD = B

は不要となります。その他に大きな問題は見受けられませんので
公開されていないところにも単純な記述のミスがある可能性も含めて
チエックしてください。

CRTSQLRPG で指定しているパラメータにも注意してください。
RE:SQL cursorで次のレコードに切り替わらない AS400 初心者 さん [ 2月10日(水) 10時52分 ]
ご教示ありがとうございます。

別のSQLRPGLEを用意して、カーソルで同じSQL文を読みだすという形で確認し
たところ
正常にレコードが切り替わって表示されました。

同じファイル、同じタイプ、同じコンパイルパラメータ、同じSQL文となっており
同じレコードのみが表示されたソースと、レコードが切り替わったソースの差異は
大きなところで言うと下記になります。

下記の中のいずれかの影響で、同じレコードしか表示しなくなるということは
あり得るのでしょうか?

-------------------------------
差異(同じレコードが表示されたソース)
-------------------------------
 ・サービスプログラムのプロシージャを使用している
 (自分自身はメインプログラム)
 
 ・cursorのSQLの前に、削除のSQLとデータ抽出のSQLを実行している
 (これらはカーソルは使用しておりません。また動作は正常に実行できてい
ます)
 
 ・サブファイルを6つ使用している
RE:SQL cursorで次のレコードに切り替わらない IKD さん [ 2月11日(木) 10時10分 ]
使用方法の差異によって簡単に原因を推察することは
できないでしょう。
要はあてずっぽうではなく、ひとつひとつ実験して原因を
突き止める作業が必要です。

・サービスプログラムのプロシージャを使用している
 (自分自身はメインプログラム)
==> SQL CURSOR は親には伝わらなかったという過去の記憶も確かにありますが
    これを原因と仮定するのであれば小さなプログラムを作って
    プロシージャー呼出しのSQL と、そうでないSQLバインドRPG とを
  比較実行して検証する必要があります。
  
 
 ・cursorのSQLの前に、削除のSQLとデータ抽出のSQLを実行している
 (これらはカーソルは使用しておりません。また動作は正常に実行できてい
ます)
===> これも原因となりうる可能性は高いですね。
   初めに示されたSQL ではなく FETCH のつど、このような特殊な操作を
   しているのであれば危ない操作であり、できれば避けたいものです。
 
 ・サブファイルを6つ使用している
===> SQL が正常に処理されFETCH も正しく進行しているのに SFLレコードに書き出す
     RRN が正しくないとご指摘の症状になる可能性が大いにあります。

===> データ・ベースを SORT するのに無理やりSQL を使わずとも LF を一時的にでも
     作成して READ するほうがパフォーマンスも圧倒的に優れており
   処理構造もシンブルで保守も容易です。
     LF を作ってはいけない、という事情があれば別ですが(それでも一時的にQTEMPなどに
     LF を作成するほうが IBM i には適しています)

     IBM i のある(有名な)経理パッケージを見たことがありますが、開発者がDB2/400の
  レコード・レベルのアクセス(READ, READE, CHAIN, ....)を知らないらしいようで
    すべて SQLバインドで開発していました。
  おかげでその経理パッケージはパフォーマンスが悪くてユーザーからクレームが
    多かったようです。
  別のユーザーでもやはりすべてSQLのみで組んでいるところユーザーもあり、
  やはりパフォーマンスの問題を抱えていました。

  IBM i には適した方法がありますので肩の力を抜いてシンプルで自然なやり方が
  スマートです。
  徒に凝った方法は避けるほうが賢明です。
  SQL は、SQL でなければできないケースにおいてのみ SQLを使うようにしたほうが
    いいでしょう。
    IBM i の場合は数十万レコードのデータ・ベースを扱うのも珍しくありません。
    そのようなケースで SQLだと実用にはなりません。
    レコード・レベルの操作をお勧めします。

RE:SQL cursorで次のレコードに切り替わらない AS400 初心者 さん [ 2月12日(金) 10時47分 ]
>IKD様

詳細にご説明頂き、いつも本当に感謝しています。
ありがとうございます。


処理の流れとしましては、

 1.画面表示(ここでユーザーが任意の検索項目、検索値を設定
        検索項目のサブファイルから値を選択する形で検索値を設定)
 2.実行キー
    ↓2-1 検索内容を含んだSQLでWKファイルを作成
    ↓2-2 抽出をRPG(プロシージャ一部使用)でWKからWK2ファイルを作成
    ↓
 3.画面表示(ここで質問内容のSQL CURSORで順番に表示用のサブファイルに
        書こうとしていました。
        またFキー押下で、押下したキーによってソート条件を
        変更して、サブファイルへの書きなおしをしようと思ってい
ました)


最後の3についてはLFを複数作れば済む話なのですが
SQLで出来ればLFを作成せずにソートが出来るようになるので
ケースバイケースで使い分け出来るようになればと思っていました。

ですがコメント頂いた内容を見て、今回のケースではSQLで行うには
逆に複雑になってしまうように感じましたので、LFを作成して
Fキー押下時にそれぞれのLFを読み直してソートするという形で
実装したいと思います。


いつも本当にありがとうございます。
デバッグが必要な段階で失敗 となりのSE   さん [ 2月11日(木) 10時54分 ]
表示順の索引ファイルを、表示するプログラムにする。

RE:デバッグが必要な段階で失敗 AS400 初心者 さん [ 2月12日(金) 11時2分 ]
> 表示順の索引ファイルを、表示するプログラムにする。

コメントありがとうございます。
これは論理ファイルを事前に作成しておいて、
それらを表示するプログラムに変更する方が良いということでしょうか?

その方がシンプルな仕様になりますので
その方向で設計しようと思います。

ありがとうございました。
OPNQRYF IKD さん [ 2月14日(日) 10時54分 ]
OPNQRYF(QUERY ファイル・オープン)というコマンドがありますが
これはオープンするデータ・ベースのレコードのアクセスやアクセス・パスを
一時的に変更するものです。

SQLバインドにするよりは、こちらのほうが一般的ですが
利用目的はバッチの印刷帳票出力のような場合に限られます。

SFLレコード照会のように対話式の場合はエンド・ユーザーに対して
パフォーマンスが重要視されますから、やはり LF の参照によって
照会を実現すべきでしょう。

OPNQRYFは調べておいて実行する練習をしておけば今後の適用業務開発に
役に立ちます。
RE:OPNQRYF AS400 初心者 さん [ 2月15日(月) 17時23分 ]
「OPNQRYF」は、初めてお聞きするコマンドでした。
CLから行うという形になるのですね。
クエリーも使いこなせるように学習したいと思います。

パフォーマンスに関わる部分はLFの方が良いということも
非常に参考になりました。
LF、クエリー、SQLとプログラムによって使い分けていきたいと思います。

ありがとうございました。
【RPGLE】 プロシージャのソースデバッグについて AS400 初心者 さん [ 2月10日(水) 11時2分 ]
いつもお世話になっております。

プロシージャーのソースデバッグの方法について教えて下さい。


現在、プロシージャを作成してサービスプログラムとしてまとめて
それらをバインドディレクトリーに登録する形でプログラムのモジュール化や
汎用化を進めているのですが、一点プロシージャにすることで不便なところが
あります。

メインプログラムであれば、デバッグビューに*SOURCEや*ALLを指定することで
ソース画面でデバッグ出来ますが
プロシージャーの場合に同じようにデバッグビューを指定しても
STRDBGでソース画面が表示されません。

これは私のやり方が間違っているのか、そもそもプロシージャはソースデバッグが
出来ないものなのでしょうか?


RE:【RPGLE】 プロシージャのソースデバッグについて IKD さん [ 2月11日(木) 10時31分 ]
CRTRPGMOD で デバッグ用ビューを *SOURCE にして
STRDBG では サービス・プログラム に *SRVPGM の名前を指定すれば
プロシージャーもソース・デバッグできますよ。

RE:【RPGLE】 プロシージャのソースデバッグについて AS400 初心者 さん [ 2月16日(火) 9時26分 ]
返信が遅くなり申し訳ありません。
コメント頂いた内容を実施したのですが、まだソースデバッグに成功していな
い状況でして。。


例えば下記のような構成の際に
RPG Cのソースデバッグは可能ということでよかったでしょうか?

その場合、RPG_AからRPG_Cを呼ぶ時に(下記のRPG_Aソースの箇所)、
RPG_Cのソースデバッグ画面に切り替わって、
RPG_Cのソースが終わったらRPG_Aのソースデバッグ画面に戻ってくる
という流れになるのでしょうか?

---------------------------------------------
■構成
 RPG_A(メイン)
 SRV_B(サービスプログラム)
 RPG_C(サービスプログラム内のプロシージャ)

■RPG Aのソース
 IF RPG_C(aa:bb) <> 0;

---------------------------------------------
RE:【RPGLE】 プロシージャのソースデバッグについて IKD さん [ 2月17日(水) 10時41分 ]
文面から推察すると RPG_A と SRV_C の両方のデバッグを同時にするように
見受けられますが、それは無理です。
両方のソース画面が一度のデバッグで交互で表示されることはありません。
デバッグのAPI は公開されており小生もAPI によってデバッガーを
自作しましたが、そのAPIの内容からしても無理です。

回答させて頂いた方法ではない方法を実行されるのであれば
別の方法 ( STRDBG の別の指定 )を行ったと書いて頂かないと
正しい解決はできません。
まずは回答のとおり素直に実行してください。
RE:【RPGLE】 プロシージャのソースデバッグについて となりのSE さん [ 2月18日(木) 0時11分 ]
出来るかも知れないし、できないかも知れない。
デバッグしたいなら、今できる方法を、利用する。

そもそも、プロシージャは、デバッグ済みが、プログラムの前提です。
AS/400 接続プリンターの件 ミドルエイジ さん [ 2月16日(火) 8時56分 ]
AS/400に接続していますプリンターですが、今まではPC個々にプリンターセッションを作成
して、PCと直結させていました。
今回、ネットワーク構成を変更しSTRREMWTRで起動時にプリンタセッションを立ち上げます。

ただ、それ以降用紙タイプの判別が出来なくなり汎用用紙、専用用紙が連続してセットされてい
る用紙に印字されます。
仕様プリンターは、Apti V800シリーズです。

解決策をご存知の方がいらっしゃいましたら、ご教示お願いします。
RE:AS/400 接続プリンターの件 金 さん [ 2月17日(水) 15時5分 ]
> AS/400に接続していますプリンターですが、今まではPC個々にプリンターセッションを作成
> して、PCと直結させていました。
> 今回、ネットワーク構成を変更しSTRREMWTRで起動時にプリンタセッションを立ち上げます。
> 
> ただ、それ以降用紙タイプの判別が出来なくなり汎用用紙、専用用紙が連続してセットされてい
> る用紙に印字されます。
> 仕様プリンターは、Apti V800シリーズです。
> 
> 解決策をご存知の方がいらっしゃいましたら、ご教示お願いします。

STRRMTWTRで書き出しプログラムを開始させていらっしゃるのではと思いますが、コマンドのパラメータ
デフォルトでしょうか。
RE:AS/400 接続プリンターの件 ミドルエイジ さん [ 2月18日(木) 12時55分 ]
お忙しいところありがとうございます。

おっしゃる通りコマンドのパラメータは、デフォルトです。 
RE:AS/400 接続プリンターの件 IKD さん [ 2月17日(水) 16時11分 ]
ご質問の内容は

  以前は STRPRTWTR でライター起動していたが
  STRRMTWTR で起動するようにしたら用紙替えのメッセージが
  表示されなくなった。

  というように読めますが、そうであれば IBMの仕様のとおりであると思います。
  RMTWTR(遠隔地のライター)は遠隔地のTCP/IPネット・ワークのプリンターに
 接続することを前提としていますから、遠隔地のプリンターの用紙替えのメッセージが
 ホスト(ローカル)に出力されることが、そもそもおかしい。
 つまり、そのような仕様はないと思います。

 ※ご希望はPC の通常使うプリンターとして設定されているプリンターに
    印刷されたいようですので Windows の LPRを起動して LPRでPCに投げれば
    PCに設定されているプリンターに印刷出力することができます。
    Spoolライターもこの原理でPCへ印刷を指定するライターを作成しました。
RE:AS/400 接続プリンターの件 ミドルエイジ さん [ 2月18日(木) 12時53分 ]
IKDさま

ご教示ありがとうございます。
初めての環境ゆえ戸惑っておりますが、早速試してみます。

お忙しいところ、ありがとうございました。
FTP PUTの途中で通信が途切れたら? ゆうやん さん [ 3月24日(木) 18時59分 ]
いつもお世話になっております。
FTPで四苦八苦しています。

AS/400からFTP PUTでデータを送信している途中に断線が起こって
データが全件送信されなかった場合、

レスポンスコードは"226 Transfer complete."で戻ってくるのでしょうか?
それとも"426"の接続がクローズ、転送は異常終了で戻ってくるのでしょうか?
断線しているから何も戻ってこないままタイムアウトするのでしょうか?

自分のPCをサーバに見立ててテストしようとしたのですが、
接続が確立できなくてテストできませんでした。

どうぞよろしくお願いします。
RE:FTP PUTの途中で通信が途切れたら? となりのSE さん [ 3月25日(金) 13時1分 ]
答えは、一通りとは、限りません。

FTPサーバーを立てて、テストして ください。
RE:FTP PUTの途中で通信が途切れたら? ゆうやん さん [ 3月25日(金) 18時8分 ]
となりのSE様

こういう場合、レスポンスコードは状況によって異なるのですね。
それが分かっただけでも大きな進展で、ありがたいです!

ご回答、誠にありがとうございました。
RE:FTP PUTの途中で通信が途切れたら? となりのSE さん [ 3月25日(金) 23時48分 ]
プログラマーからみたら、ほとんどの場合、メッセージは帰ってこない。
単に失敗してるだけ。

MONMSGとか 考えてると思うが、無理です。

RE:FTP PUTの途中で通信が途切れたら? ゆうやん さん [ 3月28日(月) 15時9分 ]
となりのSEさん

そうなんですか、返ってこないのですか。

MONMSGでは無理でしょうが、
FTPそのもののレスポンスコードはなんらかの形で返ってくると思っていました。
(AS以外だとコード226で返ってきてもデータサイズが違っているとかありますよね
断線したら返しようがなくてタイムアウトのレスポンスコードが返るとか…)

なんにせよ一意のコードではないことがわかってよかったです。
誠にありがとうございました。

ゆうやん
JOBQみたいなもの となりのSE さん [ 4月5日(火) 10時52分 ]
FTPが 通信セッションを 投入。
通信セッションは TCP/IP を投入。
終了のみモニターしてる。らしい。
-------------------------------
FTPの、信頼性は、きわめい低い。(AS400内部とくらべて) 
エラーがないから、正常転送とも 言えない。
正確を期すなら、ベリファイする。


 
RE:FTP PUTの途中で通信が途切れたら? IKD さん [ 3月28日(月) 16時40分 ]
Windows の DOS窓や FFFTP, IBM i の FTPコマンドもすべて一般に使用されているFtpは
Ftpプロトコルを内部で通信として利用しているアプリケーションです。
Ftpプロトコルでは、ちゃんとエラー・コードは戻ってきますが IBM i の Ftpコマンドを
開発した人が *ESCAPE でメッセージを呼出し側に戻せば、ユーザーは MONMSG で
監視することができるのですが恐らくは Ftpアプリの中で完結させようとして
*ESCAPEメッセージを戻さないアプリとして開発したためにこのようにFtpのエラーを
モニターできなくなってしまっています。
IBM i の Ftpの開発者があまり IBM i の知識が無かったためでしょう。
どうしてもエラーをモニターしたいのであれば自前で Ftpを作ればエラーを監視することが
できます。

今回の問題はエラー・コードはあるが IBM i のFtpではエラー・コードが
きちんと報告されない、ということになります。
RE:FTP PUTの途中で通信が途切れたら? ゆうやん さん [ 3月30日(水) 11時8分 ]
> 今回の問題はエラー・コードはあるが IBM i のFtpではエラー・コードが
> きちんと報告されない、ということになります。

なるほど、拾っていないのは残念ですがFTPのレスポンス自体は返ってきているのですね。
ありがとうございました!

ゆうやん
2台のAS400での相互接続について shintata さん [ 3月26日(土) 12時3分 ]
少し前になるのですが、会社のAS400が2台体制になりました。
一部の物理ファイルをお互いに共有したいのですが、直接送受信する方法(コマンド)はありませんか?
特にリアルタイムではなく、ある周期ごとに実行するだけでよいのですが。
ご存知の方、ご教授ください。
RE:2台のAS400での相互接続について IKD さん [ 3月26日(土) 21時13分 ]
IBM i には DDMファイルという仮想的なネットワーク・ファイルを
作成することができます。

CRTDDMF コマンドで SNA または TCP/IPネットワーク上で相手側の
物理ファイルがローカルの手元にあるかのように扱うことができます。
つまり DDMを更新すると相手方の物理ファイルも同時に更新されます。

弊社は 6台の IBM i がありますが、それらはすべて DDM でネットワークとして
結ばれており最も多い利用方法は CPYSRCF で DDMファイルで
ソース・ファイルの送受信を行うことです。
スプール・ファイルを送受信することもあります。
DDMファイルは複数台の IBM i があるときは非常に重宝しますので
ぜひお試しください。
RE:2台のAS400での相互接続について Hirox さん [ 4月2日(土) 18時21分 ]
上記のDDMですが、SQLでの使用では使えないです。
詳しくは、
http://www.as400-net.com/cgi-bin/contents/tips.cgi?con=dfu-query-sql
を参照して下さい。

RPGなどで使用する場合は問題ないのですが、SQLで使えないのが…。
参照URLでは、確かにリモート接続先のファイルは参照できるのですが、
接続先のデータをローカルDBのファイルに更新する方法がわからなくて
困っています。

オラクルみたく、データベースリンクを張って、リモート先のテーブルをロー
カルのテーブルに
更新するというSQLをやりたいのですが、どうも出来そうにないですね・・・。
誰かそういう使い方をやっているよ!という方が、もしいられたら教えて下さい。
RE:2台のAS400での相互接続について IKD さん [ 4月20日(水) 9時34分 ]
上記の遠隔他リレーショナル・データベースを指定するようにしてください。
遠隔地でのQUERY400 の使用方法が参考になります。
RE:2台のAS400での相互接続について shintata さん [ 7月7日(木) 17時54分 ]
ずいぶん時間が経ってからの返信で申し訳ありません。
今のところ必要な機能がDDMファイルでの利用でできました。

1台体制の時にはまったく使ってみることのなかった機能ですが、
使ってみると非常に便利な機能であることがわかりました。

IKDさんありがとうございました。
Hiroxさんもありがとうございます。別の問題で悩んでおられまし
たが、うまくいきましたでしょうか?

無事、当初の問題は解決いたしましたので、遅ればせながらご報告しておきます。
RE:2台のAS400での相互接続について HIROX さん [ 6月23日(金) 15時14分 ]
この書込みが役に立つかはわかりませんが、長年出来なかったのが
本日あっさりと出来ました。

IKDさんが参考になると言っていたのは多分
http://www.as400-net.com/tips/dfu-query-sql/26.html
だと思うのですが、これはリモートに接続をしてしまうことから
接続先が変わってしまい、やりたかった
接続先DBのAを接続元のDBのBへ追加・更新
が出来ませんでした。

色々調べた結果、サーバーの設定をきちんとすれば、CONNECT文を
発行することなく、リモート先のDBテーブルを参照できました。
これで、接続先DBのAを接続元のDBのBへ追加・更新も可能に
なりました。

あまりやっている人がいないのでしょうね。
ネットで海外の情報にもあたりましたが、全然なかったです。

ともかく私も解決したので、すっきりしました。
PRTFのコンパイル時の指定 as400 初心者 さん [ 3月31日(木) 16時55分 ]
いつもお世話になっております。

PRTFのコンパイル時の指定をソースファイル上に記載しておくことは出来ます
でしょうか?

※RPGLEでの活動化グループなどの指定を
 H仕様書にあらかじめ記載するようなイメージで考えています
RE:PRTFのコンパイル時の指定 IKD さん [ 3月31日(木) 17時34分 ]
できます。
グッドアイデアだと思います。

PRTF を見ただけでは再作成するときに CRTPRTF で
どのように指定したのか、不明になることが多いので
ソースに記述しておくのはよいことだと思います。
RPG などでも、どのようにバインドするのか
コンパイル・コマンドを記述することはよくあります。

DDS の コメント行として

  A*   CRTPRTF MYLIB SRCFILE(, ....

のように記述しておけばよいのではないでしょうか ?

※ eStudio で作成されるILE-RPG にもコンパイル命令が
  コンパイル・プロセッサーとして記述されてこの部分だけが
    外部保管されています。
  コンパイル・プロセッサーが保管されているので
    ブラウザ上で Ctrl + F7キーを押すだけでコンパイルすることが
    できます。
RE:PRTFのコンパイル時の指定 as400 初心者 さん [ 3月31日(木) 18時48分 ]
いつもご教示いただきありがとうございます。

DDS自体にはH仕様書のようなコンパイルを補助のコマンドはありませんが
コメントとしてコンパイル文を記載しておくということですね。
非常に参考になりました!
ありがとうございます。

※いつもDSPF/PRTFのコンパイルは14から行っているため
 コンパイル文を打つ、またはコンパイル文自体をコメントとして記載する
 というのは盲点でした


早速、運用に組み込ませていただきます。
ありがとうございました。
ポップアップ表示のサービスプログラムでポインターを利用 AS400 初心者 さん [ 4月5日(火) 11時21分 ]
いつもお世話になっております。

リストからアイテムを選択させる際のポップアップ表示をよく使用しているの
ですが、
このポップアップ表示のプログラムをプロシージャ化して、
かつ、サービスプログラム化したいと考えています。

そこで質問なのですが、普段はサービスプログラムのプロシージャーを呼ぶ時は
RET = TESTPROC(P1:P2);

のように記載しています。
これでは1つの値を戻すことは出来ますが
複数の値をコール側に戻したい場合に出来ません。

そこでポインターを使用すれば出来るのではと思うのですが
そのようなポインターの使用方法は可能でしょうか?


イメージとしては、
RET = プロシージャー名(引数1:引数2);

上記のようなイメージでかつ、引数1と引数2に指定した戻り値が返ってきて
ほしいと思っています。

----------------------------------------
コール側
RET = プロシージャ名(引数1:引数2)

プロシージャ側
ポップアップでアイテムをリスト表示(サブファイル)
選択されたアイテムのコード(複数項目)をコール側に返す
RE:ポップアップ表示のサービスプログラムでポインターを利用 IKD さん [ 4月5日(火) 16時36分 ]
全くその通りで大正解○です。
RET = プロシージャー名(引数1:引数2);

で引数1, 引数2 をポインター渡しにするとプロシージャー内で
引数から定義される変数 ( BASED(PTR) )を更新して戻ると
親の呼出し側の変数の値も更新されます。

発想しておられることは大正解です。
ただしプロシージャー内でも 入力パラメータから BASED によって
フィールドを定義して、そのフィールドを更新するようにしないと
MCH3105のエラーとなります。

ここまで理解しておられますので、そのようなミスはされないと思いますが。
RE:ポップアップ表示のサービスプログラムでポインターを利用 AS400 初心者 さん [ 4月6日(水) 10時3分 ]
いつもご教示いただきありがとうございます。

色々なコンパイルエラーや実行エラーに悩まされましたが
考え方としては正解で、実行可能というアドバイスを頂きましたので
必ず出来ると信じて色々試行錯誤し続けたところ、無事に作成完了致しました!

これで毎回ポップアップのソースを書く必要がなくなりそうです。

いつも丁寧にアドバイス頂きありがとうございます。
印刷ファイルの文字縮小について szr さん [ 4月14日(木) 18時21分 ]
RPG3 より 印刷ファイルを利用して印刷するプログラムを作成していて
明細行の項目(半角英語/半角数字/倍角かな/倍角漢字)を縦1/2に縮小して印刷したいです。
scs制御コードを使用し、行っているのですが、縦横両方1/2しかできません。

縦のみ1/2,横のみ1/2にする方法はありますでしょうか。

宜しくお願い致します。
RE:印刷ファイルの文字縮小について となりのSE さん [ 4月14日(木) 22時35分 ]
SCS制御コードを良く知らないとの、質問でしょうか。
コード上は可能です。
PCOMMは 受け付けるが、動作はしません。
RE:印刷ファイルの文字縮小について szr さん [ 4月19日(火) 9時13分 ]
ご返答ありがとう御座います。

> SCS制御コードを良く知らないとの、質問でしょうか。
> コード上は可能です。
コード上可能は理解しておりました。

> PCOMMは 受け付けるが、動作はしません。
ということは、現状出来ないという事なのでしょうか。

たびたび申し訳御座いませんが宜しくお願いします。
代替フォント となりのSE さん [ 4月19日(火) 11時24分 ]
SCS制御コードに精通してないですね。
どうしてもなら、代替フォント命令を使う。

エミュレーターは、PCOMMだけではない。
もしかしたら、動作するものも あるかも。
文字コード変換エラー KDM さん [ 4月20日(水) 13時16分 ]
javaで作成したWebアプリケーションを使用して JDBC経由で
iseriesの物理ファイルへデータを書き込んでいます。
ユーザーはwindows7のInternetExplorerから入力しています。

データを書き込んだ時に、「?」などの文字が、 iseries上に正常に
登録できません。

これを回避する方法はありませんでしょうか。
コード変換チェックが出来ればよいのですが手段がよく分からない状況
です。

iseriesでは、全角のシフトインシフトアウトの関係で、IE側で入力した
文字の文字数をiseries側でチェックするプログラムは作成しました。
なので出来れば同じ流れでiseries側でチェックが出来ればと考えています。

良い方法をお教えいただきたく、よろしくお願い致します。
RE:文字コード変換エラー KDM さん [ 4月20日(水) 18時0分 ]
質問を訂正します。
i series Access からODBC経由でデータをCSVに落とす際にエラーとなるPCが
あります。
エラーとなるのは、例えば「?」です。
データはWebから入力され、JDBC経由で物理ファイルへ」登録されたものです。
物理ファイルを直接見ると「・」となっています。これも変ですが・・・。

このデータを自分のPCでODBC経由でCSVへ落とすと正常に出力されます(エ
ラーなしで「?」と出力される)。
そのPCで使っていた転送記述をそのまま自分のPCで使ってもOKです。
逆はNGです。登竜でエラーとなってしまいます。原因は「?」などの文字だと
いうことはわかっています。

ClientAccessのバージョンも同じくして、i series AccessODBCドライバーの
バージョンも同じくしても
そのPCだけはエラーとなります。

windows上の「?」の文字コードも同じでした。

ClientAccessを再インストールしてもダメでした。

やはり関連ファイルやフォルダー全て削除しなければダメなのでしょうか。
それとも問題箇所が違っているのでしょうか。
officeのバージョンは違いますけど、office絡んでないので関係ないですよ
ね?・・・

教えてください。よろしくお願い致します。

RE:文字コード変換エラー シャリース さん [ 5月18日(水) 9時33分 ]
コメントが付かないようなので分かる範囲で。

恐らくAS400側の物理ファイルがWebから入力された外字(機種依存文字)を扱えない
コード化文字セットID(CCSID)となっているのでしょう。

>物理ファイルを直接見ると「・」となっています。

AS400側でコマンドが入力できる環境であれば調べてみて下さい。
DSPPF lib/file でCCSIDのコードを確認する。

5026、5035の設定では機種依存文字は扱えません。
1399であれば可能で有ったと思います。
AS/400 の MBCS について T.K さん [ 4月27日(水) 16時58分 ]
お世話になっております。

業務システム開発でSystemiを使用しております。

今回、日本語と中国語の環境で動く仕組みを開発しております。

その機能の開始が、外部I/FデータをIFSにおいてもらって、
これをCPYFRMIMPFで取り込むことから始まります。

I/FデータはUTF-8で作成していただくように
ユーザー側へお願いしてあるのですが、ユーザー様より
「日本語、中国語で3バイト文字セットは存在するか」
という質問を受けました。

I/Fデータを作成する際に、UTF-8からEBCDICへの変換結果の
フィールドの長さが、こちらの提示したフォーマットのフィールド長に
収まるかどうかを事前にチェックしたいから、という理由です。

AS/400で3バイト以上からなる文字セットについて聞いたことも
意識したこともなかったものですから、ハッキリとした回答を
返すことができません。

どなたか回答やヒントをお持ちの方がいらしたらよろしくお願いいたします。

RE:AS/400 の MBCS について すかぴ さん [ 4月27日(水) 17時49分 ]
当方、タイ語をAS/400で少し扱いました。
タイ語は特殊で、1文字を構成するのに4バイト分使用したりと、
1バイトからnバイトの文字で構成されているようです。

中国語に関しては、DBCS環境になると思いますので、2バイト文字で良いと思われます。
RE:AS/400 の MBCS について T.K さん [ 4月27日(水) 18時55分 ]
> 当方、タイ語をAS/400で少し扱いました。
> タイ語は特殊で、1文字を構成するのに4バイト分使用したりと、
> 1バイトからnバイトの文字で構成されているようです。
> 
> 中国語に関しては、DBCS環境になると思いますので、2バイト文字で良いと思われます。
> 


すかぴ さん 早速のご回答ありがとうございます。
当方でもご回答の内容をもう少し理解してお客様へ回答したいと思います。

ありがとうございました。
RE:AS/400 の MBCS について IKD さん [ 4月28日(木) 6時54分 ]
IBM i には 3バイト文字セットは存在しません。
この質問をされたのは UTFの漢字が 3バイトであるためであろうと
予想されます。

都市伝説としてIBMのアナウンス・レターの翻訳が適切でなかったために
CCSID 1399 は UTF であると信じている人や個人サイトで発表されてたりもしますが
これは全くの誤りです。
UTF-16 は英文字でも 2バイト、漢字は 3バイトであり
UTF-8 は英小文字が 1バイト、漢字はやはり 3バイトです。
EBCDIC と互換があるはずがないのですが特約店のSE が 1399 は ユニコードです、と
説明する例があまりにも多いのはIBM 発表レターの翻訳に誤りがあったせいで
このちがいがわかれば UTF が IBM i に存在しえないことはわかるはずなのですが。

CCSID 1399 とは 5035 + NEC漢字のセットです。
UTF とは何の関係もありません。

IBM i に存在している漢字はEBCDICですから 2バイト・セットしかありません。
お馴染みのAPI: QDCXLATE では EBCDIC/UTF 変換はできません。
UNIX API: iconv が必要です。

参考URL

 http://www.as400-net.com/tips/database/28.html
RE:AS/400 の MBCS について T.K さん [ 5月9日(月) 19時5分 ]
> IBM i には 3バイト文字セットは存在しません。
> この質問をされたのは UTFの漢字が 3バイトであるためであろうと
> 予想されます。
> 
> 都市伝説としてIBMのアナウンス・レターの翻訳が適切でなかったために
> CCSID 1399 は UTF であると信じている人や個人サイトで発表されてたりもしますが
> これは全くの誤りです。
> UTF-16 は英文字でも 2バイト、漢字は 3バイトであり
> UTF-8 は英小文字が 1バイト、漢字はやはり 3バイトです。
> EBCDIC と互換があるはずがないのですが特約店のSE が 1399 は ユニコードです、と
> 説明する例があまりにも多いのはIBM 発表レターの翻訳に誤りがあったせいで
> このちがいがわかれば UTF が IBM i に存在しえないことはわかるはずなのですが。
> 
> CCSID 1399 とは 5035 + NEC漢字のセットです。
> UTF とは何の関係もありません。
> 
> IBM i に存在している漢字はEBCDICですから 2バイト・セットしかありません。
> お馴染みのAPI: QDCXLATE では EBCDIC/UTF 変換はできません。
> UNIX API: iconv が必要です。
> 
> 参考URL
> 
>  http://www.as400-net.com/tips/database/28.html

返信が大変遅くなり申し訳ありません。

丁寧な語説明をありがとうございました。
ストリーファイルが取り込めません IFS初心者 さん [ 5月20日(金) 22時26分 ]
「CPYFRMSTMF」を使ってIFS領域に置かれたストリームファイルを取込もうと思っているのですが、
普通のPFをコピー先にセットすると1REC目最大長まででその後は欠落してしまいます。
どのコマンドを使ってもいいのですが、長大な延べ単レコードを持つストリームファイルを
取りこむ方法はないものでしょうか?
コピー先のファイルの作成が普通のPFではないのでしょうか?
ちゃんとつづいていてくれれば、タグで改行などもしなくていいです。
よろしくお願いします。
RE:ストリーファイルが取り込めません IKD さん [ 5月21日(土) 8時39分 ]
症状から理論的に考えればIFSストリーム・ファイルの改行が
認識されていないことになりますから
CPYFRMSTMF + [F4} の後に [F9]を押してレコード区切り文字(RCDDLM)を
正しく指定することが必要になります。

実際の IFSストリーム・ファイルの改行コードがどのように
なっているかは WRKLNK で「F10=16 進表示」で調べれば判断できます。

ただし IFSストリーム・ファイルが ASCIIファイルであるのなら
ほとんどの改行コードは CRLF(= 0x0d0a) ですから
CPYFRMSTMF RCDDLM(*CRLF) で希望のとおりになるのではないかと
思います。

その他の特殊なファイルであれば最初に書いたような調査が必要となります。
RE:ストリーファイルが取り込めません IFS初心者 さん [ 5月22日(日) 13時16分 ]
IKD様

お世話になります。ご回答ありがとうございます。

今回取り込もうと思っているファイルは、xmlファイルをFTPで受信したもので、改行コードがありません。
そもそもがそういうものを、取り込むことが不可能なのでしょうか。
IFS領域に送信してもらう時点で改行コードが入っていないと取り込めないということでしょうか?
RE:ストリーファイルが取り込めません IKD さん [ 5月22日(日) 18時0分 ]
XMLは構造化データ・ベースであるので
XMLにもレコード単位を示すタグが必ず存在します。
(ブラウザでXMLを表示させてみれはよくわかります。)

そのXMLのタグ構造を調べてみれば、どのタグが
レコードを示しているのかがわかるはずです。
XMLの解析でよく DOM に変換するとか言いますが
DOM とは DB2/400で言うところの構造化データ・ベース、
つまりただの物理ファイルのことです。
改行コードの検査は不要です。

XMLのタグの意味を理解できれば CPYFRMIMPF での
指定のヒントが出てきます。

Spoolライターや EnterpriseServer等の製品では CPYFRMXML というコマンドを
作りました。下記の例は CPYTOXML ですが CPYFRMXML も用意されています。
IBM i にも XMLパーサーの機能は提供されていますが
ボリュームがかなり莫大なものになってしまいます。

■他のファイル形式への変換
  ( http://www.officequattro.com/jpn/technet/contents/tnet_12.html )
RE:ストリーファイルが取り込めません IFS初心者 さん [ 5月23日(月) 14時54分 ]
IKD様

再びご回答頂きまして、誠にありがとうございます。
そもそも使うコマンドが"CPYFRMSTMF" ではなくて"CPYFRMIMPF"なんですね。

その、"CPYFRMIMPF"のマニュアルを見てみたのですが、
xmlの場合はフィールド定義ファイルというのが必要とありました。

まずそれの作り方もわからないので、今から悪戦苦闘してみます。

バッチの処理時間 emi さん [ 6月10日(金) 9時51分 ]
バッチ処理の実行後に、処理に要した時間を確認したいのですが、
どこで見れますか?

バージョン:V7R1M0 L00
RE:バッチの処理時間 シャリース さん [ 6月13日(月) 12時10分 ]
私はDSOLOGコマンドで
バッチの投入時間と終了時間を探して算出しています。
RE:バッチの処理時間 シャリース さん [ 6月13日(月) 19時42分 ]
DSOLOGコマンド→DSPLOG の間違いです。訂正します。
PHPからODBC接続でAS400のデータを取得する方法 AS400 初心者 さん [ 6月21日(火) 9時44分 ]
VBAやVBからODBC接続でAS400のデータを取得して帳票を出力したりしています。

今回これをPHP経由で行えないかと思っているのですが
可能でしょうか?

もし可能であれば接続部分のサンプルソースを教えていただけないでしょうか?
IBM iへのデータ転送が未完了のまま次のステップにいってしまう YA さん [ 6月23日(木) 14時7分 ]
お世話になります。

CLにてIBM iへのデータ転送を実行し、プログラムをCALLしています。
しかしながら、データ転送が未完了のまま次のステップにいきプログラムがCALLされてしまいま
す。しかも、この現象は一部のパソコンを使用している人達に起こる現象です。何か設定があるので
しょうか?

ちなみにCLプログラムでは、
 STRPCCMD   PCCMD('RFROMPCB.EXE +                       
              C:\TEST.DTT /I') PAUSE(*YES)  のように記載してあります。
アドバイスをお願いします。
                                                        
RE:IBM iへのデータ転送が未完了のまま次のステップにいってしまう IKD さん [ 6月23日(木) 16時48分 ]
IBM i では CALL 命令は CALL したプログラムが実行されて終了まで
待って次のステップへと進みます。
これは周知の事実で当然なことです。

しかし Windows では CALL に相当する命令はありません。

Windows では別のプロセスに投入することになります。
投入したジョブの完了を待つことはしません。
ただ投入するだけです。
これが普通のやり方です。
つまり IBM i で言うところの SBMJOB です。
( Windows でも投入したプロセスが終了するまで待機する、という
処理はありますが利用されている頻度は少ないです。
   CreateProcess + WaitForSingleObject でしたっけ? )

SBMJOB であれば別のプロセスに「投入」すればそれは完了したことになって
次のステップに進みます。
従って STRPCCMD PAUSE(*YES) で RFROMPCB.EXE のプロセスの完了を
待機はしますが RFROMPCB.EXE の内部の処理で実際のダウンロードを別のプロセスに
投入しているのであれば、その投入が完了すれば RFROMPCB.EXE は完了したことに
なるので STRPCCMD も完了したと見なされてしまいます。

従って RFROMPCB.EXE の動作内容がわからないとどうにもしようがありません。
PC による設定で回避できる問題ではありません。
RFROMPCB.EXE で落としたファイルの存在をチェックするなりの
別の手段が必要です。
特定のPCの設定などに依存する問題ではありません。
STRPCCMDは別セッション となりのSE さん [ 6月23日(木) 19時58分 ]
PCは別セッションでASに接続します。
  悪い言葉で言えば たれながし。
  応答はありません。

STRPCCMD の PAUSE(*YES) も 動作不安定です。
 
相当な工夫が必要です。     
RE:STRPCCMDは別セッション YA さん [ 6月24日(金) 9時21分 ]
> お世話になります。
> 
> CLにてIBM iへのデータ転送を実行し、プログラムをCALLしています。
> しかしながら、データ転送が未完了のまま次のステップにいきプログラムがCALLされてしまいま
> す。しかも、この現象は一部のパソコンを使用している人達に起こる現象です。何か設定があるの

> しょうか?
> 
> ちなみにCLプログラムでは、
>  STRPCCMD   PCCMD('RFROMPCB.EXE +                      
 
>               C:\TEST.DTT /I') PAUSE(*YES)  のように記載してあり
ます。
> アドバイスをお願いします。
>                                             
            
RE:STRPCCMDは別セッション YA さん [ 6月24日(金) 9時24分 ]
回答ありがとうございます。

そうなんですね。参考になりました。別方法を検討してきます。

> お世話になります。
> 
> CLにてIBM iへのデータ転送を実行し、プログラムをCALLしています。
> しかしながら、データ転送が未完了のまま次のステップにいきプログラムがCALLされてしまいま
> す。しかも、この現象は一部のパソコンを使用している人達に起こる現象です。何か設定があるの

> しょうか?
> 
> ちなみにCLプログラムでは、
>  STRPCCMD   PCCMD('RFROMPCB.EXE +                      
 
>               C:\TEST.DTT /I') PAUSE(*YES)  のように記載してあり
ます。
> アドバイスをお願いします。
>                                             
            
QSYSOPRに出るメッセージについて 彷徨う技術者 さん [ 7月6日(水) 19時1分 ]
DSPMSG QSYSOPR で「I5/OS の使用制限を超えました?操作員の処置が必要です。」という
メッセージが最近しきりに出ます。

このメッセージの意味と、どのような対応が必要かを教えて下さい。
RE:QSYSOPRに出るメッセージについて となりのSE   さん [ 7月6日(水) 23時47分 ]
CPFxxxx が出てるはず。
DISK使用率が 80%を超えた。WRKSYSSTS で確認。
ほっておけば、DISKクラッシュします。 
使用率を60%にする。
RE:QSYSOPRに出るメッセージについて 彷徨う技術者 さん [ 7月7日(木) 10時3分 ]
> DSPMSG QSYSOPR で「I5/OS の使用制限を超えました?操作員の処置が必要です。」という
> メッセージが最近しきりに出ます。
> 
> このメッセージの意味と、どのような対応が必要かを教えて下さい。
RE:QSYSOPRに出るメッセージについて 彷徨う技術者 さん [ 7月7日(木) 10時14分 ]
最近使用率が70%を超え、担当者が対応に追われています。
メッセージが出るようになったのも同じ頃だったような気がします。
環境が若干特殊なため、70%超でもメッセージが出るようにしてあるのかも知れません。

容量を減らす作業を急ぎます。迅速なご回答、ありがとうございました。

RE:QSYSOPRに出るメッセージについて IKD さん [ 7月7日(木) 11時35分 ]
CPFxxxx が何であるかお知らせください。

今の段階では「I5/OS の使用制限を超えました?操作員の処置が必要です。」という
エラー・メッセージからわかることは CPF9E17 かまたは CPF9E7A です。
いずれもライセンス・プログラムの契約クライアント数をオーバーしている、という警告です。

  - CPFxxxxを確認しないと確かなことは言えませんが多くの場合
    クライアント・アクセスの契約クライアント数のオーバーで出ます。
    この場合は契約上の問題はありますが使用する上では問題ありません。
    いずれにせよ CPFの番号をお知らせください。
  またメッセージの詳細を表示されれば確かな情報がわかると思います。

 ※ DISK容量オーバーの警告は 使用率 95% を超えないと出ません。
     70% や 80% の使用率はめずらしくはありませんので
     これらの使用率で警告は出ません。

 ※ 70%の使用率で警告ができるようにとの設定変更はできませんし、そのような
     機能はありません。
RE:QSYSOPRに出るメッセージについて 彷徨う技術者 さん [ 7月7日(木) 13時27分 ]
ありがとうございます。CPF9E7Fとなっていました。そうですか、使用率ではありませんでしたか。
以下、追加メッセージ情報を貼り付けます。

                             追加のメッセージ情報                             
                                                                              
 メッセージ ID  . . . . :   CPF9E7F       重大度 . . . . . . . . :   40       
 メッセージ・タイプ . . :    情報                                             
  送信日付  . . . . . . :   16/07/07       送信時刻  . . . . . . :   13:05:23 

  メッセージ . . :   I5/OS の使用制限を超えました?操作員の処置が必要です。   
  原因??プロダクト 5761SS1, ライセンス条項 V6, 機能 5051 に対する 8 プロセッ
    サーのプロセッサー使用制限を超えました。                                  
     -- I5/OS のすべてのアクティブ区画にわたる現在のプロセッサー使用状況は    
   .20 です。   

      -- ローカル区画の現在のプロセッサー使用状況は 1.00 です。                 
  回復手順?? I5/OS の活動状態のすべての区画での合計プロセッサー使用カウント  
    は, I5/OS のすべてのバージョンのプロセッサーの使用量を含みます。したがっ  
    て, I5/OS の個々のバージョンにかかわらず,プロセッサーの使用制限は        
   I5/OS 活動状態のすべての区画におけるプロセッサーの合計カウントを考慮する必  
    要があります。使用制限を超えないようにシステム区画処理リソースを変更するか 
    , IBM 営業担当員に連絡して,追加のライセンス資格および新しい I5/OS ソフト 
     ウェア・ライセンス・キーを購入してください。ライセンス・キー情報追加      
   (ADDLICKEY) コマンドを使用してソフトウェア・ライセンス・キーを追加してくだ 
    さい。  


いろいろ検索してみたのですがよく分からず、質問させていただきました。何か分かることが
ありましたらご回答いただけたら幸いです。
                                                                                                                              
金を払うか、放置するか となりのSE さん [ 7月7日(木) 14時2分 ]
IBMと相談して、リミッターを変更する。(金を払う)

放置しても、クラッシュは、しません。  
RE:金を払うか、放置するか けんしう さん [ 8月25日(木) 16時17分 ]
ASでは、クライアントアクセスを利用している場合、
同時使用されているクライアントアクセスのセッション数を内部でカウントしています。

そして、その同時使用可能なライセンス数を超えてクライアントアクセスのセッションを
起動しようとしたので、エラーになったということです。

エラーメッセージの内容としては、
「同時使用可能なクライアントアクセスのセッション数の上限を超えたからエラーになったよ。
 上限数を超えて使いたかったら、ライセンスキーを購入して同時使用可能なライセンス数を増やしてね」
と言っているのです。

ちなみに文面の通りで、ライセンスキーを購入すると、
IBMからクライアントアクセスのソフトウエアが送られてくるのではなく、
追加ライセンスのキーが記載された書類が送られてくるだけです。
そのキーをADDLICKEYコマンドでASに入力することで、購入したライセンスが使えるようになります。

ちなみに、クライアントアクセスは、一定数のライセンスを購入すると、
リミッターが解除され無制限に使用可能になります。

なお、このエラーが出たからと言って購入が必須なわけではありません。
同時利用数の上限の範囲内で調整しながら使えば何の問題もありません。

頻繁に発生するようであれば、ライセンスキーの購入の検討が必要かもしれません。
IBM i マニュアルへのリンク情報 管理人 さん [ 7月26日(火) 10時59分 ]
IBM マニュアルへのリンク
   IBM マニュアルがまた深く移動して見つけにくくなっています。
   ナレッジ・センターへの最新のリンクは次のとおりです。
  取り急ぎお知らせ致します。

IBM Knowledge Center へのリンク

https://www.ibm.com/support/knowledgecenter/ja/
V6R1からの SFTP について KDM さん [ 8月1日(月) 13時9分 ]
System i V6R1を使用しています。
取引先とFTPでデータの受け渡しをしてますが、今後はSFTPを
使用を要求されています。

試しに自分のwindowsPCにSSHサーバーを構築して、iseriesの
QShell のコマンドから sftp で接続しようとしていますが
うまくいきません。

コマンドラインから、
QSH CMD ('/QOpenSys/bin/sftp -i /home/ssh_host_rsa_key PCのUser@192.168.xxx.
.xxx')
として実行しても、
Host key verification failed.
となります。

何か記述方法が間違っているのでしょうか。
RE:V6R1からの SFTP について IKD さん [ 8月2日(火) 8時41分 ]
IBM i を SFTPクライアントにするということでしょうか ?

WRKLNKで確認すればわかることですが '/QOpenSys/bin’ には sftp は
ありません。(on i5/OS Ver.6.1)
つまり SFTPのクライアントPGM は用意されていないので
面倒ですが自作ということになります。

SFTP は PORT=24なので(データPORTはまた別) i5/OS の FTPコマンドは
使えません。
FTPクライアントは Java か C/400で慣れている人なら半日もあれば
開発できますが SSH なので経験がないと面倒です。

SFTPの動作を確認したいのであればまず Windowsの DOS窓から
SFTPコマンドを Ftpと同じように叩けば確認することができます。

参考までに IBM i の STRTCPSVR には *SFTP というオプションはありませんので
IBM i が SFTPサーバーになれることもないようです。。
RE:V6R1からの SFTP について 桃色ぐま さん [ 8月2日(火) 14時2分 ]
QSH CMD('/QOpenSys/bin/sftp -vvv -i /home/ssh_host_rsa_key PCの
User@192.168.xxx.
.xxx')

のように -vvv をつけると、もっと詳しいログが出ると思いますので、
まずそちらでエラーの原因を見て下さい。
RE:V6R1からの SFTP について KDM さん [ 8月2日(火) 21時36分 ]
桃色ぐま様ありがとうございます。
-vvvをつけていろいろ対応しながらたりました。
結構よいところまで進んだのですがパスフレーズの部分で
妙なエラーがでてきました。


debug1: sending SSH2_MSG_KEX_ECDH_INIT                                   
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY                                
debug1: Server host key: ECDSA 37:e6:f6:e8:e3:a5:20:7c:16:68:c1:41:dd:58:
0                                                                        
debug1: read_passphrase: can't open /dev/tty: No such device or address  
debug2: readpassphrase: not a 5250 return ENOTTY                         
Host key verification failed.                                            
Connection closed                 
下から3行目あたりでパスフレーズを入力する画面が開けずにエラーとなっているような
気がします。
でも、本当は入力なんてせずにそのまま接続したいのです。

sftp -b をつけて外部ファイルにしてしまえばよいのでしょうか・・・。

                                       
RE:V6R1からの SFTP について 桃色ぐま さん [ 8月3日(水) 10時11分 ]
それならばまず、画面が開ける状態では正しく接続できるのか試したらどうで
しょう?

STRQSH

でQSHコマンド入力画面を開き、

ssh -vvv ...

を入力。
接続できますか?画面で何か聞かれましたか?
RE:V6R1からの SFTP について 桃色ぐま さん [ 8月3日(水) 10時12分 ]
sftp -vvv ...

でした。すみません。
RE:V6R1からの SFTP について KDM さん [ 8月3日(水) 12時49分 ]
桃色ぐまさん。本当にありがとうございます。
QSHで手打ちで試したんです。
sftp -vvv -i xxxx ABC@HOSTA

そしたら
debug1: sending SSH2_MSG_KEX_ECDH_INIT                                   
debug1: expecting SSH2_MSG_KEX_ECDH_REPLY                                
debug1: Server host key: ECDSA 37:e6:f6:e8:e3:a5:20:7c:16:68:c1:41:dd:58:
0                                                                        
★debug1: read_passphrase: can't open /dev/tty: No such device or address  
★debug2: readpassphrase: not a 5250 return ENOTTY                         
Host key verification failed.                                            
Connection closed                                                        
★の部分がパスフレーズのことを言っているっぽいのですが内容がはっきりしないんです。
sshサーバーはwindowsで自分のPCです。OPenSSHをインストールしてたててます。
自分のPCからTeraTermではきちんと接続(windowsのユーザーとパスをきいてくる)
できるんです、でもSystem i からだとこんなになるんです。
RE:V6R1からの SFTP について 桃色ぐま さん [ 8月3日(水) 18時0分 ]
うちのASで試してみたのですが、sftpだと常にcan't open /dev/ttyになるみたいですね…。

STRQSHしたあと、

  ssh -vvv -i ...

してみてください。これなら、画面で何の入力を求められているかわかると思います。

あと、あてずっぽうになるのですが、
sftpを実行したときのログの最初の方に、

  Could not create directory '/home/xxxx/.ssh'.

みたいなエラーが出ていませんか?
RE:V6R1からの SFTP について KDM さん [ 8月4日(木) 10時24分 ]
桃色ぐま様、ありがとうございます。
ssh -vvv -i ...
をすると、接続する方のPassPhraseを求められ、
そのあと接続先のPassPhraseを求められていました。
入力していき、無事接続されたように思います。

windowsへ接続されたので、dirなどを実行しては
みたものの反応はありませんが…。
抜けることができないので F3 でqshを終了してます。
exitでも反応がないのではたして接続されているのか
不安にはなりますが、
ユーザー@ホスト C:\Users\ユーザー>
とでてくるのでおそらくつながったと思います。



RE:V6R1からの SFTP について 桃色ぐま さん [ 8月4日(木) 16時14分 ]
■1
> をすると、接続する方のPassPhraseを求められ、

これは、秘密鍵 /home/ssh_host_rsa_key のパスフレーズということですか?
この秘密鍵は、ssh-keygen で作ったかと思いますが、
ssh-keygen での作成の際にパスフレーズなしにすれば、パスフレーズを聞か
れなくなると思います。

■2
> そのあと接続先のPassPhraseを求められていました。

これはおかしいです。

-i /home/ssh_host_rsa_key を指定したという事は、
公開鍵暗号方式によるログインを行おうとしているのだと思いますが、
この方式でのログインがうまくいったなら、
接続先のパスワードを聞かれることはありません。

ssh-keygen で公開鍵・秘密鍵のペアを作成したあと、
公開鍵をwindowsのopensshに登録したかと思いますが、
その手順が正しく行われたかもう一度見直すと良いと思います。
また、windowsのほうのsshdのログも見てみると良いかと思います。

RE:V6R1からの SFTP について KDM さん [ 8月5日(金) 15時21分 ]
桃色ぐま様、ありがとうございます。
IBM iの方で、鍵をパスフレーズなしで再作成してみました。そして
QSHで /OpenSys/bin/ssh -vvv guest@192.168.192.xxx
すると以下のようになってしまいました。
debug2: we sent a keyboard-interactive packet, wait for reply              
debug1: Authentications that can continue: publickey,password,keyboard-intera
ractive                                                                    de
debug3: userauth_kbdint: disable: no info_req_seen                         
debug2: we did not send a packet, disable method                           d
debug1: No more authentication methods to try.                             
Permission denied (publickey,password,keyboard-interactive).    
懸命に訳してみましたが、英語の壁があるようで…。
3行目あたりで鍵認証、パス、キーボード?が認証できますよ!と きて
いきなり no info_req_seen が無い、と。
それで、もう試せません!
アクセス拒否!
という感じかと思います。

回答をもらってもう一度やってみたのですが、ここあたりで返事をだしておこうかと
思いました。
RE:V6R1からの SFTP について HY さん [ 5月21日(火) 15時44分 ]
お世話になります。

SFTPでPCからAS400に接続したく、SSHで接続しているのですが、teratarmで接続は出来るのですが
コマンドききません。
pwd exitは、使えますが、ls等全然反応がありません。
どなたかご教授願えますでしょうか?
RE:V6R1からの SFTP について IKD さん [ 8月2日(火) 15時56分 ]
Ver7.1からは SFTPが導入されてますが Ver6.1 では PTFが必要です。
SFTP の場合は 事前に SSHの認証局の設定が必要となります。
先のエラー・メッセージは認証に失敗したメッセージのようです。。
オープン系の別サーバにデータを書き出す(送る) シャリース さん [ 8月9日(火) 16時24分 ]
いつも参考にさせていただいています。
IBM i で作成したデータをオープン系のサーバにデータを送信したいです。
直ぐに思いつくのは、オープン系のサーバにFTPサーバをたててIBM i から
転送すれば良いのですが、諸事情によりFTPサーバを立てる事ができません。
そこで例えば、オープン系サーバの或るフォルダーをIBM i からみて
共有フォルダーの様に設定できればと思ったのですが、できないうでしょうか。
その他、良い方法が有れば教示頂ければと思います。
RE:追記 シャリース さん [ 8月9日(火) 16時54分 ]
ちなみにCPYTOIMPFコマンドでTOストリームファイルにオープン系サーバを指定しましたが、
CPE3025「このようなパスまたはディレクトリーはない。」とエラーになりました。
IFS以外の指定ができないようです。
RE:追記 IKD さん [ 8月10日(水) 8時47分 ]
面白いアイデアだと思いますが実現可能です。

IBM i のIFSには QNTC という名前のフォルダーが用意されていますが
これがネット・ワーク経由で他のPCサーバーを IBM i からローカルに
見える仕組みです。

 /QNTC/192.168.1.xx

のように /QNTC配下に他のPCサーバーのIPを登録すれば
CPYTOIMPF であたかもローカルのIFSにあるのと同じように
ファイル・コピーを始めとしての処理を行うことができます。

下記の例では /QNTC に社内のローカルPCサーバーを登録しておいてから
IBM i をWeb公開して HTMLの中でそのPCサーバーのローカル・アドレスを
/QNTC で記述する方法を示しています。
この方法であれば、そのPCサーバーには HTTPサーバーもFtpサーバーも
起動させる必要はありません。
下記のサイトをご参考にしてください。

 TechNet :他のPCサーバーをWeb公開するには

http://www.officequattro.com/jpn/technet/contents/tnet_26.html

 ※この例以外にも TechNet には高度なテクニックが紹介されています。
     ( http://www.officequattro.com/jpn/technet.html )

素晴らしいヒントありがとうございます シャリース さん [ 8月12日(金) 18時31分 ]
IKD様アドバイスありがとうございます。
「/QNTC」というものの存在を初めて知りました。
やりたい事が満たせる気がしました。

しかしマニュアルで少し調べてチャレンジしたのですが、
WRKLINKで共有フォルダーを参照すると
「ネットワーク・サーバー 172.XX.XX.XX でユーザー XXXXX の機密保護情報を
  交換中にエラーが発生しました。」のエラー            
PCサーバのアカウントににIBM i のユーザーIDとパスワードの設定に難儀しています。
もう少し頑張ってみます。
RE:素晴らしいヒントありがとうございます シャリース さん [ 8月22日(月) 18時14分 ]
上手くいきました。


1. PCサーバ側にIBM iのユーザーIDとパスワードを登録する。
  その際、Administratorの権限でないと駄目だった。←この設定が漏れていてなかなかうまくいかな
かった。
2. CRTDIR DIR('/QNTC/サーバIP')を登録する。
3. WRKLNK OBJ('/QNTC/サーバIP')でOPT=2で入るとPCサーバの共有化されたフォルダーが見える。

エミュレータのホストコードページを939(又は1399)、
IBM i のCCSIDを5035にする事で小文字も表示されます。
漢字で作成されたフォルダーは見えませんでした。

IKD様、ありがとうございました。 
RE:素晴らしいヒントありがとうございます SYARI-SU  さん [ 9月8日(木) 19時32分 ]
> 上手くいきました。
> 
> 
> 1. PCサーバ側にIBM iのユーザーIDとパスワードを登録する。
>   その際、Administratorの権限でないと駄目だった。←この設定が漏れていてなかなかうま
くいかな
> かった。
> 2. CRTDIR DIR('/QNTC/サーバIP')を登録する。
> 3. WRKLNK OBJ('/QNTC/サーバIP')でOPT=2で入るとPCサーバの共有化されたフォルダーが
見える。
> 
> エミュレータのホストコードページを939(又は1399)、
> IBM i のCCSIDを5035にする事で小文字も表示されます。
> 漢字で作成されたフォルダーは見えませんでした。
> 
> IKD様、ありがとうございました。 
RE:素晴らしいヒントありがとうございます シャリース さん [ 9月8日(木) 19時35分 ]
IBM i をリブートするとQNTCに設定したフォルダーが見えなくなります(消えた?)
これは仕様でしょうか。対策として取りあえず、リブート後にCRTDIRで再作成しています。
用語について KDM さん [ 8月13日(土) 10時3分 ]
部品交換でIBMの方が見えて作業してました。
マイクロが古いのでアップしたほうがよいといわれましたが。
マイクロとは何のことを言ってるかわかりません。
10万くらいの部品なのだそうですが
何の略ですか?
マイクロプロセッサですか?
教えてください。
RE:用語について IKD さん [ 8月13日(土) 17時9分 ]
その IBM i のリリースはいくつですか ?

にしてもマイクロ(SLIC)が古いから交換などと
いう話は聞いたことがありません。
100 % ありえない話です。

マイクロとは OSのまだ下の低辺層に位置するP-ROM です。
マイクロ・プロセッサーではありません。
本当に交換が必要であると言ったのなら
その人は IBM の人ではありませんね。

他の人に質問してきちんとした説明を
受けたほうがいいです。
RE:用語について KDM さん [ 9月1日(木) 18時15分 ]
回答ありがとうございます。
ファームウエアのことを言っているようで
それが古いとディスク交換を停止して行わないと
いけなくなるそうです。
ファームウエアのことを”マイクロ”といっているのは
理解できますか?

> その IBM i のリリースはいくつですか ?
> 
> にしてもマイクロ(SLIC)が古いから交換などと
> いう話は聞いたことがありません。
> 100 % ありえない話です。
> 
> マイクロとは OSのまだ下の低辺層に位置するP-ROM です。
> マイクロ・プロセッサーではありません。
> 本当に交換が必要であると言ったのなら
> その人は IBM の人ではありませんね。
> 
> 他の人に質問してきちんとした説明を
> 受けたほうがいいです。
マイクロコードとは IKD さん [ 8月13日(土) 18時14分 ]
マイクロ・コード(SLIC)とはOSとCPU命令の命令のやり取りを
仲介するハード・ウェア(PROM)に書かれた機械語です。

つまりCPUを新たな技術で新しいものにしたとしても
マイクロを書き換えればOSは、そのまま利用することが
できる、といった現代で言うところの JVM ( Java Vertical Machine)の
ようなものです。

JVM は現在のマシンのちがいを吸収しますがマイクロは
将来の技術革新を吸収します。

つまり将来、新しい記述でCPUを変えたとしても OS やユーザー・プログラムは
そのまま使用することができる、という利点が IBM の自慢でした。
これは CISC(32ビットCPU)から RISC(64ビットCPU)への移行においても
効果を発揮しました。
( 米国の他のメーカーでは苦労がありましたが IBM は成功しました。)

マイクロはこのような技術ですからそうそう変わるものではありません。
マイクロのリリース・アップなんてありえません。
また PROM に書かれているので減衰や経年劣化も考えにくいものです。
マイクロが古くてIBM i が誤動作するとすれば、その前に
CPU 基盤の電池が劣化して再起動できなくなってしまいます。

まずこれのほうが経年変化で起こる最初のトラブルです。

IBM の人であればこのこともマイクロのことも十分承知しているはずですので
そのようなことは言わないと思います。
RE:マイクロコードとは KDM さん [ 9月1日(木) 18時15分 ]
回答ありがとうございます。
もう1人の方にも書いたのですが
ファームウエアのことを言っているようで
それが古いとディスク交換を停止して行わないと
いけなくなるそうです。
ファームウエアのことを”マイクロ”といっているのは
理解できますか?

> マイクロ・コード(SLIC)とはOSとCPU命令の命令のやり取りを
> 仲介するハード・ウェア(PROM)に書かれた機械語です。
> 
> つまりCPUを新たな技術で新しいものにしたとしても
> マイクロを書き換えればOSは、そのまま利用することが
> できる、といった現代で言うところの JVM ( Java Vertical Machine)の
> ようなものです。
> 
> JVM は現在のマシンのちがいを吸収しますがマイクロは
> 将来の技術革新を吸収します。
> 
> つまり将来、新しい記述でCPUを変えたとしても OS やユーザー・プログラムは
> そのまま使用することができる、という利点が IBM の自慢でした。
> これは CISC(32ビットCPU)から RISC(64ビットCPU)への移行においても
> 効果を発揮しました。
> ( 米国の他のメーカーでは苦労がありましたが IBM は成功しました。)
> 
> マイクロはこのような技術ですからそうそう変わるものではありません。
> マイクロのリリース・アップなんてありえません。
> また PROM に書かれているので減衰や経年劣化も考えにくいものです。
> マイクロが古くてIBM i が誤動作するとすれば、その前に
> CPU 基盤の電池が劣化して再起動できなくなってしまいます。
> 
> まずこれのほうが経年変化で起こる最初のトラブルです。
> 
> IBM の人であればこのこともマイクロのことも十分承知しているはずですので
> そのようなことは言わないと思います。
> 
i Access client Solutions でCLからのデータ転送の自動化 Fox1971 さん [ 8月17日(水) 16時6分 ]
PCOMの場合は以下のように直接データ転送モジュールの呼び出しを行っているが、

例)C:\PCOMWIN\PCSFT5.EXE C:\PCOMWIN\PRIVATE\%2.TTO

i Access Client Solutionsでも同様にデータ転送モジュールを呼び出して完了させたいが、
どのモジュールを呼び出せばいいのかが分かりません。

PCOMからi Access Client Solutionsに切り替えたいと考えています。
RE:i Access client Solutions でCLからのデータ転送の自動化 まめたろぅ さん [ 8月18日(木) 19時37分 ]
ACSのZIPを解凍したDocumentationフォルダー内の GettingStarted_ja.html
に記載があります。
9.1.15 Download
9.1.16 Upload

例えば、64bitのWindowsPCにACSを導入したフォルダーがC:\ACSだとすると
C:\ACS\Start_Programs\Windows_x86-64\acslaunch_win-64.exe
/PLUGIN=download C:\ACS\FILE.DTFX
C:\ACS\Start_Programs\Windows_x86-64\acslaunch_win-64.exe
/PLUGIN=upload C:\ACS\FILE.DTTX
のように指定します。
OPNDBFでCPF4125が発生する原因 初心 さん [ 8月19日(金) 11時15分 ]
CL
 OVRDBF FILE(AAAAA) SHARE(*YES)
 OPNDBF FILE(*CURLIB/AAAAA) OPTION(*ALL)    
 CALL ABCD
の、
OPNDBFのステップでCPF4125が稀に発生します。
どの様な時に、発生するものでしょうか。
RE:OPNDBFでCPF4125が発生する原因 IKD さん [ 8月19日(金) 22時1分 ]
「エラーが出ました。何が原因ですか?」と
尋ねるのなら「私は何をしました。」とか
条件や環境などわかっていることすべて
説明する義務がありますよ。

エラーが出る原因はただひとつではないのです。
エラーの原因は無限個あります。

エラーだけを述べて
ご自分は説明せずにすべて回答者にやらせて
原因を教えてくれとは
虫がよすぎませんか?

厳しいようですがこのように質問が多すぎます。

質問されるならきちんと誠意を尽くして。
RE:OPNDBFでCPF4125が発生する原因 初心 さん [ 8月20日(土) 10時10分 ]
IKD様

配慮が足りず、大変失礼致しました。

実行環境のOSは、「V6R1」になります。
試したことは、
 1.問題PGM.同士の複数実行
 2.問題となっているテーブルをUPDATEモードで読み込んだ状態のままにしての実行。
  (ロック待機の状態となるのみ。)
を行ってみましたがエラーを再現することはできませんでした。

また、稀に起こると書かせて頂いた通り、
落ちた時の実行ログを見ると、
落ちる前にも普通に動いており、しっかりクローズもされてました。

CPF4125がどの様な状態の時に発生するのかがわからず
エラーを再現できてない状況となっております。
RE:OPNDBFでCPF4125が発生する原因 IKD さん [ 8月21日(日) 11時9分 ]
CPF4125 のロー・レベル・メッセージを良く読むと
「原因??前のメッセージにリストされている理由により,...」とあります。
つまり、このエラーの前に別の原因となるエラーが表示されているはずだと
言っています。
従って、このジョブのログを詳しく調べる必要があります。

多くのCPFエラーの原因は

 1. 最初に起こったCPFエラーに原因がある。(以前のCPFエラー)

  2. CPFエラーのロール・レベル・メッセージの中に
   「次の xx の理由によってエラーが起こった」と原因が明記されている。

のパターンに分類されますが多くのユーザーは
エラー・メッセージを読まないで「これが原因ではないか?」との「あてすっぽう」で
原因を推測しがちです。

この場合は 1.に該当しますのでCPF4125の前にエラーが出ていないかまず
調べることです。

CPF4125 は「前のメッセージがない場合には,内部オブジェクトを割り振ろうとした時にエラーが
起こりました 」
とあります。

おまけに「回復手順??前にリストされたメッセージを参照してください 問題があればこれを
訂正して, OPNDBF コマンドをやり直してください 」とあります。

なんと親切に詳しく解説されているではありませんか。
ユーザーがエラーを解決できない原因の大半は「エラー・メッセージを読まない」ことにあります。
Windows, UNIX, ...などの他のOSでは IBM i ほど詳しいエラー・メッセージの記述はありませ
ん。
ところがメッセージが詳しすぎるせいか多くのユーザーはメッセージを読まないで
原因だけを仮定によって特定しようとします。

エラーがおきたときこそ論理的思考が必要となります。
それには「読む」ことです。
RE:OPNDBFでCPF4125が発生する原因 初心 さん [ 8月21日(日) 16時59分 ]
ご回答ありがとうございます。
また、しっかりログを読み込んでとのご指摘、大変恐縮です。

今回の場合、前にメッセージはありませんので、
「エラーが内部オブジェクトを割り当てようと発生しました」
になりますが、
IKD様でしたら、どのような時とお考えになりますか。

自分は読んでもわからず、IKD様ご指摘の
「あてすっぽう」的な前レスで記述した内容により、
再現テストを行い、再現できない状況に陥ってます。

RE:OPNDBFでCPF4125が発生する原因 IKD さん [ 8月22日(月) 7時11分 ]
以前のメッセージがないということは
間接的な障害に起因しているということではないので
別のジョブと競合が起きている、という通常の結果と予想されます。

従ってどのジョブと競合が起きているのかを調べる必要があります。

OPNDBF FILE(*CURLIB/AAAAA) OPTION(*ALL) 
MONMSG  CPF4100 EXEC(DO)
WRKOBJLCK OBJ(*CURLIB/AAAAA) OBJTYPE(*FILE) OUTPUT(*PRINT)
ENDDO

として競合ジョブをリストしてそのジョブを調べれば
予想もしなかったことに原因があるかも知れません。
少なくとも原因は明確にはなります。
RE:OPNDBFでCPF4125が発生する原因 初心 さん [ 8月22日(月) 9時50分 ]
ロックについては少しちがうかなと思いながら、
テストを実施しましたが再現出来ず状態でしたが、
実際にはIKD様が言われる様、
予想もしなかった原因があるかもしれませんね。
本番ソースへの変更が許可されるかわかりませんが
チャンジ出来ればと思います。

色々、ありがとうございました。


RE:OPNDBFでCPF4125が発生する原因 となりのSE さん [ 8月22日(月) 12時30分 ]
休みの日 QSECOFR で 動かす。

エラー発生 JOBLOGを見て DEBUG

エラーなし 原因は 権限 または 他のjobとの競合
RE:OPNDBFでCPF4125が発生する原因 初心 さん [ 8月22日(月) 20時47分 ]
ありがとうございます。

権限の問題はなさそうなので、他のjobとの競合ですよね・・・
サブクエリでOBRDBF(&MBR) T.K. さん [ 8月24日(水) 18時34分 ]
お世話になります。

RPGLEのSQLでのファイル一時変更(OVRDBF)について、
どなたかご存知の方がいらしたらご教示ください。

今、あるファイル(PF=F1およびそのPFのLF=F1L1)に、
以下のようにメンバーを追加して、

(PF) ADDPFM F1 M0001
(LF) ADDLFM F1L1 M0001 DTAMBRS((F1 (M0001))

その後
OVRDBF F1 TOFILE(F1) MBR(M0001)
OVRDBF F1L1 TOFILE(F1L1) MBR(M0001)
のように一時変更した後で、

物理ファイルであるF1と論理ファイルであるF1L1の
サブクエリをJOINするようなSQLを実行したところ、
物理ファイルF1の一時変更は正しく反映されていましたが、
論理ファイルであるF1L1の一時変更は効いておらず、
*FIRSTメンバーが開かれていました。(SYSREQ-3-14で確認)

また、試しに、ファイルを入れ替えて、
物理ファイルであるF1をサブクエリのファイルにしたところ、
こんどはF1の一時変更が効いておらず、
やはり*FIRSTメンバーが開かれていました。

私の勘違いであれば申し訳ありません。

そうでない場合、回避する方法はあるでしょうか?
ちなみに一時変更先のメンバー名は固定ではなく、
変数として処理します。

以上、ご存じのかたがあればよろしくお願いいたします。
RE:サブクエリでOBRDBF(&MBR) IKD さん [ 8月25日(木) 9時51分 ]
ご質問に当たっては肝心要なところを「サブクエリ」とういう曖昧模糊な表現に
してしまっては駄目です。

肝心なところをボヤかして適切な回答は得られません。
実際に近い具体的なSQL文の表現で
バインドSQL なのかどうかも説明不足

RE:サブクエリでOBRDBF(&MBR) T.K さん [ 8月26日(金) 12時2分 ]
> お世話になります。
> 
> RPGLEのSQLでのファイル一時変更(OVRDBF)について、
> どなたかご存知の方がいらしたらご教示ください。
> 
> 今、あるファイル(PF=F1およびそのPFのLF=F1L1)に、
> 以下のようにメンバーを追加して、
> 
> (PF) ADDPFM F1 M0001
> (LF) ADDLFM F1L1 M0001 DTAMBRS((F1 (M0001))
> 
> その後
> OVRDBF F1 TOFILE(F1) MBR(M0001)
> OVRDBF F1L1 TOFILE(F1L1) MBR(M0001)
> のように一時変更した後で、
> 
> 物理ファイルであるF1と論理ファイルであるF1L1の
> サブクエリをJOINするようなSQLを実行したところ、
> 物理ファイルF1の一時変更は正しく反映されていましたが、
> 論理ファイルであるF1L1の一時変更は効いておらず、
> *FIRSTメンバーが開かれていました。(SYSREQ-3-14で確認)
> 
> また、試しに、ファイルを入れ替えて、
> 物理ファイルであるF1をサブクエリのファイルにしたところ、
> こんどはF1の一時変更が効いておらず、
> やはり*FIRSTメンバーが開かれていました。
> 
> 私の勘違いであれば申し訳ありません。
> 
> そうでない場合、回避する方法はあるでしょうか?
> ちなみに一時変更先のメンバー名は固定ではなく、
> 変数として処理します。
> 
> 以上、ご存じのかたがあればよろしくお願いいたします。

質問の内容が曖昧で申し訳ありません。

実際は以下のようなSQLの宣言です。
項目名などは変えましたが構造については実際動作しているものです。

C/EXEC SQL
C+
C+ DECLARE C1 CURSOR FOR
C+
C+ SELECT B.CNT, B.MNSQ, B.MXSQ, A.*
C+
C+ FROM FILE1L1 A
C+
C+ LEFT JOIN
C+ (
C+  SELECT
C+        COUNT(*) AS CNT,
C+        MIN(CRSQ) AS MNSQ,
C+        MAX(CRSQ) AS MXSQ,
C+        CRTP, DIR, USER, JOB, JOBN, IITM, ILOT
C+  FROM  FILE1
C+  WHERE CRTP = :PMCRTP AND
C+        DIR  = :PMDIR  AND
C+        USER = :PMCUSR AND
C+        JOB  = :PMCJOB AND
C+        JOBN = :PMCJBN AND
C+        LVL  = 0       AND
C+        DMYF = 0
C+  GROUP BY
C+        CRTP, DIR, USER, JOB, JOBN, IITM, ILOT
C+ ) B
C+
C+ ON     A.CRTP = B.CRTP AND
C+        A.DIR  = B.DIR  AND
C+        A.USER = B.USER AND
C+        A.JOB  = B.JOB  AND
C+        A.JOBN = B.JOBN AND
C+        A.IITM = B.IITM AND
C+        A.ILOT = B.ILOT
C+
C+ WHERE  A.LVL  = 0       AND
C+        A.DMYF = 0       AND
C+        A.CRTP = :PMCRTP AND
C+        A.DIR  = :PMDIR  AND
C+        A.USER = :PMCUSR AND
C+        A.JOB  = :PMCJOB AND
C+        A.JOBN = :PMCJBN
C+
C+ ORDER BY
C+        A.CRTP, A.DIR,  A.USER, A.JOB, A.JOBN,
C+        A.IITM, A.ILOT, A.CRSQ
C+
C/END-EXEC

上記のようなSQLで、FILE1が物理ファイル、
FILE1L1がその物理ファイルを基礎としている論理ファイルです。

業務的な要件は説明できませんが、
FILE1のデータを自身のデータの条件でグループ化し、
件数/最小値/最大値も計算したデータを読込んで
順次処理したい、という意図です。

上の事はこのSQLカーソルC1をOPENした際に起こるようなのです。

何かお分かりの方がいらしたら、よろしくお願いいたします。
RE:サブクエリでOBRDBF(&MBR) T.K さん [ 8月26日(金) 13時24分 ]
> > お世話になります。
> > 
> > RPGLEのSQLでのファイル一時変更(OVRDBF)について、
> > どなたかご存知の方がいらしたらご教示ください。
> > 
> > 今、あるファイル(PF=F1およびそのPFのLF=F1L1)に、
> > 以下のようにメンバーを追加して、
> > 
> > (PF) ADDPFM F1 M0001
> > (LF) ADDLFM F1L1 M0001 DTAMBRS((F1 (M0001))
> > 
> > その後
> > OVRDBF F1 TOFILE(F1) MBR(M0001)
> > OVRDBF F1L1 TOFILE(F1L1) MBR(M0001)
> > のように一時変更した後で、
> > 
> > 物理ファイルであるF1と論理ファイルであるF1L1の
> > サブクエリをJOINするようなSQLを実行したところ、
> > 物理ファイルF1の一時変更は正しく反映されていましたが、
> > 論理ファイルであるF1L1の一時変更は効いておらず、
> > *FIRSTメンバーが開かれていました。(SYSREQ-3-14で確認)
> > 
> > また、試しに、ファイルを入れ替えて、
> > 物理ファイルであるF1をサブクエリのファイルにしたところ、
> > こんどはF1の一時変更が効いておらず、
> > やはり*FIRSTメンバーが開かれていました。
> > 
> > 私の勘違いであれば申し訳ありません。
> > 
> > そうでない場合、回避する方法はあるでしょうか?
> > ちなみに一時変更先のメンバー名は固定ではなく、
> > 変数として処理します。
> > 
> > 以上、ご存じのかたがあればよろしくお願いいたします。
> 
> 質問の内容が曖昧で申し訳ありません。
> 
> 実際は以下のようなSQLの宣言です。
> 項目名などは変えましたが構造については実際動作しているものです。
> 
> C/EXEC SQL
> C+
> C+ DECLARE C1 CURSOR FOR
> C+
> C+ SELECT B.CNT, B.MNSQ, B.MXSQ, A.*
> C+
> C+ FROM FILE1L1 A
> C+
> C+ LEFT JOIN
> C+ (
> C+  SELECT
> C+        COUNT(*) AS CNT,
> C+        MIN(CRSQ) AS MNSQ,
> C+        MAX(CRSQ) AS MXSQ,
> C+        CRTP, DIR, USER, JOB, JOBN, IITM, ILOT
> C+  FROM  FILE1
> C+  WHERE CRTP = :PMCRTP AND
> C+        DIR  = :PMDIR  AND
> C+        USER = :PMCUSR AND
> C+        JOB  = :PMCJOB AND
> C+        JOBN = :PMCJBN AND
> C+        LVL  = 0       AND
> C+        DMYF = 0
> C+  GROUP BY
> C+        CRTP, DIR, USER, JOB, JOBN, IITM, ILOT
> C+ ) B
> C+
> C+ ON     A.CRTP = B.CRTP AND
> C+        A.DIR  = B.DIR  AND
> C+        A.USER = B.USER AND
> C+        A.JOB  = B.JOB  AND
> C+        A.JOBN = B.JOBN AND
> C+        A.IITM = B.IITM AND
> C+        A.ILOT = B.ILOT
> C+
> C+ WHERE  A.LVL  = 0       AND
> C+        A.DMYF = 0       AND
> C+        A.CRTP = :PMCRTP AND
> C+        A.DIR  = :PMDIR  AND
> C+        A.USER = :PMCUSR AND
> C+        A.JOB  = :PMCJOB AND
> C+        A.JOBN = :PMCJBN
> C+
> C+ ORDER BY
> C+        A.CRTP, A.DIR,  A.USER, A.JOB, A.JOBN,
> C+        A.IITM, A.ILOT, A.CRSQ
> C+
> C/END-EXEC
> 
> 上記のようなSQLで、FILE1が物理ファイル、
> FILE1L1がその物理ファイルを基礎としている論理ファイルです。
> 
> 業務的な要件は説明できませんが、
> FILE1のデータを自身のデータの条件でグループ化し、
> 件数/最小値/最大値も計算したデータを読込んで
> 順次処理したい、という意図です。
> 
> 上の事はこのSQLカーソルC1をOPENした際に起こるようなのです。
> 
> 何かお分かりの方がいらしたら、よろしくお願いいたします。
> 

たびたび申し訳ありません。
大事なことを記述し忘れました。

OS/400のバージョンは古くて V5R4M0 です。
RE:サブクエリでOBRDBF(&MBR) IKD さん [ 8月26日(金) 15時27分 ]
[ OVRDBF のファイル名と SQL文のファイル名が異なっている ]

ご示し頂いた記述に間違いがなければ
上記は要約すると


OVRDBF F1 TOFILE(F1) MBR(M0001)
OVRDBF F1L1 TOFILE(F1L1) MBR(M0001)
 :
SELECT ...
FROM FILE1L1 
FROM  FILE1

ということになりますが SQLでは FILE1 ですが
実際に OVRDBF しているのは F1L1 であり、名前が異なっていますが
現実のソースもこのように異なっているようなことはありませんか ?

 (もちろん異なっている場合は期待通りの OVRDBF は
 効力を発揮しません)
RE:サブクエリでOVRDBF(&MBR) T.K さん [ 8月26日(金) 17時0分 ]
> [ OVRDBF のファイル名と SQL文のファイル名が異なっている ]
> 
> ご示し頂いた記述に間違いがなければ
> 上記は要約すると
> 
> 
> OVRDBF F1 TOFILE(F1) MBR(M0001)
> OVRDBF F1L1 TOFILE(F1L1) MBR(M0001)
>  :
> SELECT ...
> FROM FILE1L1 
> FROM  FILE1
> 
> ということになりますが SQLでは FILE1 ですが
> 実際に OVRDBF しているのは F1L1 であり、名前が異なっていますが
> 現実のソースもこのように異なっているようなことはありませんか ?
> 
>  (もちろん異なっている場合は期待通りの OVRDBF は
>  効力を発揮しません)

実際にはこのSQLを組み込んだプログラムは、
メインでCALLされるプログラムからは4階層目でCALLされるのですが、
メインでCALLされるプログラムでは、
DSPDBRの*OUTFILEから物理ファイルとそれを基礎とする全論理ファイルに
メンバーを追加し、その後追加したメンバーに対してOVRDBFを行っています。
論理ファイル名は*OUTFILEのWHREFIを使用しており、
論理ファイルのメンバーと物理ファイルのメンバーは正しくつながっていました。
また、OVRDBF OVRSCOPE=*JOB、SECURE=*YESとしています。

メインのプログラムの時点でSYSREQ-15を見ると物理ファイルと全ての論理ファイルに
意図したメンバーで一時変更がかかっていることになっており、
SQLを組込んだプログラムの実行前、実行後でもそれは変わっていませんでした。

不可解なのは、このSQLでメインのファイルとサブクエリ側のファイルの記述を逆にしたときに、
やはりサブクエリ側に記述したファイルに対してこれが起こっているという点です。

何かお気づきの点がおありになった方、ご指摘をよろしくお願いいたします。

自分でもさらに調べてみたいと思います。
i Access Client Solutions CWBLOGONバッチの代案 たじやん さん [ 10月5日(水) 18時9分 ]
Windows10化に向けてi Access Client Solutionsを研究しています。

現在はi Access for Windowsを利用していて、CWBLOGON対策用にバッチをしかけてます。
(下記リンク参照)

https://www.e-bellnet.com/category/hint/1206/1206-3.html 


同様の事がi Access Client Solutions でも可能という記事を見つけて挑戦しているのですが
できません。

http://www-01.ibm.com/support/docview.wss?uid=nas8N1010575

同じ内容がACSのZIPを解凍したDocumentationフォルダー内の GettingStarted_ja.htmlに記載
記載があります。
9.1.8 Logon


具体的には下記のようなバッチを実行しています。
start acslaunch_win-64.exe /plugin=logon /system=xxxx /userid=xxxx /password=x
d=xxxx


既に実装済みの方がいらっしゃいましたらご指南いただけないでしょうか。
どうぞよろしくおねがいいたします。
RE:i Access Client Solutions CWBLOGONバッチの代案 すかぴ さん [ 10月6日(木) 13時29分 ]
C:(path)\Windows_x86-64\acslaunch_win-64.exe /PLUGIN=logon /SYSTEM=xxxxxx /USERID=xxxx /PASSWORD=xxxx
で、一応出来ています。

d=xxxx  は、何でしょうか?

RE:i Access Client Solutions CWBLOGONバッチの代案 たじやん さん [ 10月6日(木) 13時41分 ]
すかぴさん

早速のお返事ありがとうございます。

内容的には全く同じですよね・・・?

>d=xxxx  は、何でしょうか?

表現足らずで申し訳ございませんでした。

xxxxは夫々の値を表しております(SYSTEM=システム名,USRID=QUSERのように)。
また実行環境は Windows10 になります。

お手数ですがよろしくお願い致します。

RE:i Access Client Solutions CWBLOGONバッチの代案 たじやん さん [ 10月6日(木) 17時42分 ]
すかぴさん

無事実行することが確認できました。

原因はパラメータ部分(PLUGIN、SYSTEM,USERID,PASSWORD)を小文字入力していた為でした。

誠に申し訳ございませんでした・・・・。

今後ともよろしくおねがいいたします。
Macでのi Access Client Solutions donotcryforme さん [ 10月13日(木) 9時43分 ]
Macでのi Access Client Solutionsで質問です。

acsbundle.jar=>管理=>5250セッション管理機能
にある、セッション(AS400.hod)からは正常に起動します。

上記はDocuments\IBM\iAccessClient\Emulator
に保管しているのですが、
AS400.hodをクリックしても、何も起こりません。
アイコンも白でアプリとリンクしていないようです。

現在は、使用するたびに、
acsbundle.jar=>管理=>5250セッション管理機能
の手順で起動しており、
Documentsにある、AS400.hodを直接クリックするだけで
開きたいと考えています。

i Access Client Solutionsと一緒にある、
GettingStarted_ja.html
を見てもよく分かりませんでした、。

JAVAは最新のをインストールしています。

どうぞよろしくおねがいいたします。
RE:Macでのi Access Client Solutions ほにゃほにゃ さん [ 3月3日(金) 14時5分 ]
> Macでのi Access Client Solutionsで質問です。
> 
> acsbundle.jar=>管理=>5250セッション管理機能
> にある、セッション(AS400.hod)からは正常に起動します。
> 
> 上記はDocuments\IBM\iAccessClient\Emulator
> に保管しているのですが、
> AS400.hodをクリックしても、何も起こりません。
> アイコンも白でアプリとリンクしていないようです。
> 
> 現在は、使用するたびに、
> acsbundle.jar=>管理=>5250セッション管理機能
> の手順で起動しており、
> Documentsにある、AS400.hodを直接クリックするだけで
> 開きたいと考えています。
> 
> i Access Client Solutionsと一緒にある、
> GettingStarted_ja.html
> を見てもよく分かりませんでした、。
> 
> JAVAは最新のをインストールしています。
> 
> どうぞよろしくおねがいいたします。


Windows版のほうの知識になりますけども、
hodファイルが白色ということはアプリが割り当てられていないので、
「ファイル・アソシエーション」利用してみたらどうでしょう。

メニュー→ツール→ファイル・アソシエーションで、hodにチェック入れてOKしてみてください。
これやらないとWindows版でも直接ファイルクリックでは起動しません。
Tomcatの開始 KDM さん [ 10月20日(木) 15時17分 ]
iseries(V6R1)に、apache-tomcat-6.0.47を入れて
STRQSHでコマンドラインからstartup.shを手動で実行しました。
これでポート8080でIEから参照できました。

しかし、QSHを終了するとアクティブであったジョブが停止して
webページも参照できなくなります。

この状態だと画面を開いたままにしなければなりません。

CLでQSHコマンドを実行するようにしてCALLをかけたのですが
正常にそのまま終了してしまいます(コマンドを実行して単に
そのまま処理が終了して終わり)。結局ページが見える時間も
一瞬ということでしょうか。

起動させたままにする方法はありましたら教えてください。
RE:Tomcatの開始 IKD さん [ 10月21日(金) 8時18分 ]
ご指摘の動作は仕様どおりの結果です。
そのような結果になるのは予想できます。

さらに通常の対話式JOBでTomcatを使用するには一時的な起動は
できても実用上の環境の条件が不足しています。

Tomcatを起動させるなら EnterpriseServerの試供版が
簡単だと思います。(ただし OS V5R2M0 - )
RE:Tomcatの開始 KDM さん [ 10月21日(金) 9時20分 ]
IKD様、回答ありがとうございました。
仕様なのであれば仕方ありません。
iseriesでapache Tomcatを稼働させたいと
思っていたのですが、やはり無料でやるという
のは困難だと思います。
RE:Tomcatの開始 IKD さん [ 10月21日(金) 10時14分 ]
IBM i でTomcatを起動させるにはいくつかのノウハウが
必要となります。
それゆえ製品の上で Tomcat を動作させているユーザー様も
おられますが投資なしというのであれば
相当の調査学習が必要になります。
RE:Tomcatの開始 KDM さん [ 10月21日(金) 14時58分 ]
ありがとうございます。
取り急ぎQSHコマンドからstartup.shを実行して F12 で切断→サインオフ
すればジョブが残ったままとなりtomcatが起動したままとなりました。
Powered by Apacheも稼働させました。
しかし、ApacheとTomcatを連携させる方法が分からず足踏み状態です。
RE:Tomcatの開始 IKD さん [ 10月22日(土) 11時12分 ]
Apache は PORT=80, Tomcat は PORT=8080 ですので
HTML上でもPORT指定すれば問題ありません。

しかしTomcat はマルチスレッドJOBで動作させないと
実際の業務には使えないと思います。

RPGのCGI ではなくJSPを使う理由は何でしょう?
PHPやJSPでは重くなると思いますが?
RE:Tomcatの開始 KDM さん [ 10月26日(水) 21時22分 ]
> Apache は PORT=80, Tomcat は PORT=8080 ですので
> HTML上でもPORT指定すれば問題ありません。
> 
> しかしTomcat はマルチスレッドJOBで動作させないと
> 実際の業務には使えないと思います。
> 
> RPGのCGI ではなくJSPを使う理由は何でしょう?
> PHPやJSPでは重くなると思いますが?

IKD様ありがとうございます。
単純に知識の幅が狭かっただけでAS400上で動的WEBをしたかったからです。
java経験者もいますしApache tomcatを稼働させてjavaで開発できれば
よいと考えたからにほかなりません。
RPGにて、Zタイプ(タイムスタンプデータ)項目に RPG さん [ 11月4日(金) 14時16分 ]
RPGにて、Zタイプ(タイムスタンプデータ)項目に
MOVELにて、2016-11-04-00.00.00.000000 として更新したのに 
0001-01-01-00.00.00.000000  になってしまう。
DSPLAY では正しく表示されるのに、更新後のファイルの中身は
初期値になってしまう。。。
どうすればいいでしょうか? 
RE:RPGにて、Zタイプ(タイムスタンプデータ)項目に @445 さん [ 11月7日(月) 16時56分 ]
CRTRPGPGM .... CVTOPT(*DATETIME)
を指定されていますか?


> RPGにて、Zタイプ(タイムスタンプデータ)項目に
> MOVELにて、2016-11-04-00.00.00.000000 として更新したのに 
> 0001-01-01-00.00.00.000000  になってしまう。
> DSPLAY では正しく表示されるのに、更新後のファイルの中身は
> 初期値になってしまう。。。
> どうすればいいでしょうか? 
ファイルに損傷がある場合の回復方法 TU さん [ 11月5日(土) 19時56分 ]
いつも参考にさせていただいています。

ファイルに損傷がある場合の回復方法がわからないので教えてほしいです。
また、下記方法でやっても、損傷から回復できないのです。

よろしくお願いします。

■方法

?損傷ファイルをCPYFで別ライブラリにバックアップをとる。

?損傷ファイルの論理ファイル・物理ファイルともに削除する。

?物理ファイルを再作成。

?バックアップから再作成したファイルにCPYFでデータを戻す。

?論理ファイルを再作成すると、「部分的に損傷がある」とエラーになってしまう。
RE:ファイルに損傷がある場合の回復方法 IKD さん [ 11月6日(日) 11時28分 ]
ファイルに損傷があるとはハード・デスクの損傷も考えられますので
事態は深刻かもしれません。
ミラーリングはされているのでしょうか?

ところで CPYF では、どのようなCPFエラーが出ますか ?
重大度が低ければ CPYF の許容エラー(ERRLVL)というバラメータを
上げればエラーを無視してコピーできる可能性があります。
お試しください。
RE:ファイルに損傷がある場合の回復方法 TU さん [ 11月8日(火) 9時42分 ]
IKD様

返信ありがとうございます。

CPYFではエラーが出ず、CRTLFで「部分的に損傷がある」というエラーが出てしまいます。
現在、エラーコードが調査できない状況です。
RE:ファイルに損傷がある場合の回復方法 昔のSE さん [ 11月7日(月) 10時46分 ]
メッセージは、機械翻訳だから、不具合がある以上の情報はない。
DDSを開示してないので、想像だが。
10進フィールドに16進エラーがある。
RE:ファイルに損傷がある場合の回復方法 TU さん [ 11月8日(火) 9時45分 ]
昔のSE様

返信ありがとうございます。

数値フィールドをチェックして、10進エラーになるレコードはすべて削除しましたが、
CRTLFを行うと「部分的に損傷がある」というエラーが出てしまいます。
RE:ファイルに損傷がある場合の回復方法 昔のSE さん [ 11月9日(水) 16時24分 ]
AS400を使って3か月くらの人かな。
エラーメッセージの詳細を調べれば、なにか、わかるかも。
F1 とか F10 

データファイルに不適切なコードがある

QDDSSRC が 壊れてる

CRTLFを初めて使うなら 先輩に聞く。 
RE:ファイルに損傷がある場合の回復方法 ほにゃほにゃ さん [ 3月2日(木) 12時17分 ]
横からすみません。
ハードディスクの損傷の可能性は低いと思います。
たった一個の「部分的損傷」であれば、それは稀にですが正常な環境でも起こりうることです。
もしほかのライブラリのソースファイル、ほかのDDSでのコンパイルでも同じエラーが出たというなら
システムオブジェクトに問題がある可能性が高いと思います。
その場合は下手にさわるより業者やメーカーに相談した方がいいと思います。

部分的に損傷したオブジェクトが一つだけなら、直し方が2つあります。

今回の場合

・該当のソースメンバーを複製、
 あるいは内容のコピーペーストして新規作成してコンパイルを試す
・RCLLIBコマンドでライブラリ指定して実行

です。

詳しいことはわからないのですが、損傷したオブジェクトは
複製したり名前をつけなおしたりすると治ることがあります。
あとは、裏の手で、RCLLIB実行してみる方法があります。
損傷したオブジェクトの再ビルドを行うコマンドです。
RCL系のコマンドは非常に曲者で、気軽に使っていいものではないです。
ロックもかかるしオブジェクト内容によっては時間がかかることがあるので、
RCLLIB用にひとつライブラリを新規作成してそこにソースファイルのみ移動して
業務時間外に実行するのがいいでしょうね。
その時にコピーで移動してたらコピー自体でなおってしまうかも。

こういった手段が有効なのは「部分的な損傷」のときです。
「損傷」となると、それ自体を回復させることはまず不可能で、
過去のテープから損傷のない状態のファイルを復元しなおしたり、
同じものが別ライブラリにあればそれをコピーして持ってきたりという手段になります。

RCLLIB実行することで「部分的な損傷」から「損傷」に変わる場合があります。
これはコマンド実行のせいでよりひどくなったのではなく
コマンド実行により再度オブジェクトの状態が判定され、表記が訂正されたということです。

コピーペーストが面倒くさくない程度のソースなら、
コピーペーストで作成しなおすのが一番楽で間違いないと思いますよ。
RE:ファイルに損傷がある場合の回復方法 ほにゃほにゃ さん [ 3月30日(木) 22時32分 ]
ご覧になってないかとはおもいますが私の記載に間違いがありましたので訂正します。
RCLLIBではライブラリ本体のみにしか働きかけず、中のファイルに効果はないようです。
RCLSTGというコマンドで、システム全体の再利用をかけなければいけません(とても時間がかかります)。
すみませんでした。
RE:ファイルに損傷がある場合の回復方法 TU さん [ 3月31日(金) 17時51分 ]
ほにゃほにゃ様

詳しい解答ありがとうございます。
また、返信が遅れすいませんでした。

結局、今回は、業者・メーカーにお願いし復旧できました。
また、このような事態になった場合に参考にさせてもらいます。
ありがとうございました。

グリッド罫線付き画面プログラムについて ima さん [ 11月17日(木) 18時45分 ]
グリッド罫線付きの画面プログラムをCALLして、終了させると呼出し元のプログラムに
罫線が残ってしまう現象が発生していますが、何か解決方法はあるものでしょうか?

(画面サイズは132×27)
RE:グリッド罫線付き画面プログラムについて IKD さん [ 11月18日(金) 7時1分 ]
画面罫線は最後に消去しないと残ったままになります。

1. ToolBox 罫線の場合

D S#KBFR          S              2A   INZ(X'2FC6')

A          R CLRKSN                                      
A                                      TEXT(' 罫線消去 ')
A            S#KBFR         2   O  1  2DSPATR(BL RI)     

C  LR               WRITE     CLRKSN 

      または

2. GRID BOX 罫線の場合

A*( 罫線クリヤー )                             
A          R GRDCLR                    GRDRCD  
A                                      GRDCLR  

C  LR               WRITE     GRDCLR

 で消去してください。
RE:グリッド罫線付き画面プログラムについて ima さん [ 11月18日(金) 17時49分 ]
早速ご回答頂き、誠にありがとうございます。

『2. GRID BOX 罫線の場合』に該当しており
記載されているロジックは既に入っていますが、うまく消えてくれません。

元々DSPSIZ(24 80 *DS3)の画面サイズで作成されており、
 その時は呼出し元に戻ると消えていましたが
 DSPSIZ(27 132 *DS4)へ変更したことで残ってしまう様になりました。

何か他にお心当たりがあれば、ご教授願えればと思います。

当方でも継続して解決方法を模索してみます。
RE:グリッド罫線付き画面プログラムについて IKD さん [ 11月20日(日) 10時1分 ]
ご質問の最初にそのような状況であることを
公示しておいたほうがいいですね。

わかっていることは最初にすべて列記しておいてください。

*DS4 に変更したときの CRTDSPF に問題があるとか
推測するしかありません。

CRTDSPF での
拡張表示  . . . . . . . . . . .   *YES
画面復元  . . . . . . . . . . .   *NO 

のパラメータを調べて他と確認してください。
また本当に

  WRITE CLRKSN

が実行されているかも確認が必要です。
最初は正常に期待どおりに動作していて再作成して
誤動作になったのであれば再作成の手順に誤りがあったと
考えるのが自然です。

変化した操作、環境、ソースについて白是手みてください。
RE:グリッド罫線付き画面プログラムについて ima さん [ 11月25日(金) 11時22分 ]
ご回答頂いた皆様ありがとうございます。

確かにわかっている情報は予め公示するように気をつけます。

頂いたご回答を元にいろいろ試験してみます。

SCS制御コード 昔のSE さん [ 11月21日(月) 15時39分 ]
制御の順番が正しくないかも

1. 画面サイズ変更
2. 罫線書き込み
3. 罫線表示
4. 罫線消去


RE:SCS制御コード 技術職員 さん [ 8月8日(火) 18時50分 ]
元々がDSPSIZ(24 80 *DS3)の画面サイズから、
拡張でDSPSIZ(27 132 *DS4)に変更した場合ですが、
罫線処理はちょっと特殊です。

?*DS4に一度罫線情報を書き込む
?*DS4をGRDCLR
?プログラムを終了

上記の方法では画面上の変更が*DS4に適応されず,罫線は残ったままとなります。
対処としては下記の方法をご利用ください,

?*DS4に一度罫線情報を書き込む.
?*DS4をGRDCLR
?FRCDTAを記述した画面をWRITEする.
?プログラムを終了する.

データ表示強制を挟むことで*DS4にGRDCLRを反映させ,画面上から罫線が消します.
RE:SCS制御コード 技術職員 さん [ 8月8日(火) 19時6分 ]
私の環境では下記の記述で*DS4の罫線要素を消せましたので、
ご参考にご利用ください。
また、他の方法がありましたら教えていただけると助かります。

--------
★DDS側 ソース(DSPSIZ(27 132 *DS4 24 80 *DS3) の定義を前提)

A*- UNLIND( *DS4 画面のラインを消す為に一度画面切替状態でクリアする )
A          R UNLIND                    FRCDTA
A*- UNLINE( GRDRCD で記載されたライン情報を削除する )
A          R UNLINE                    GRDRCD
A                                      GRDCLR
A          R LINE                      GRDRCD
A                                      GRDATR((*COLOR BLU) (*LINTYP SLD))
A                                      GRDLIN((*POS (*DS4 25 1 132) +
A                                                   (*DS3 22 1 80)) +
A                                             (*TYPE LOWER))

--------
★RPG側 ソース
/FREE
    WRITE LINE;
      ? 処理 ?
    WRITE UNLINE; 
    WRITE UNLIND; 
    RETURN;               
/END-FREE 
VBAやVBSからAS400のデータをSQLで取得時の文字化け AS400 初心者 さん [ 11月19日(土) 10時2分 ]
VBAやVBSからSQLでAS400のデータを取得した時に文字化けが発生しています。
ツール等で取得する場合や、ASで該当項目を表示する場合には文字化けは発生
しておりません。

SQLで取得する場合に何か工夫が必要になりますでしょうか?


--------------------------------------------------------------------
文字化けしている項目は下記になります
  項目:商品名
  属性:A
  内容:全角英小文字、全角スペース、半角スペース、半角数字が混在

関係あるかわかりませんがホストコードページは、930日本語英数カナです
--------------------------------------------------------------------
RE:VBAやVBSからAS400のデータをSQLで取得時の文字化け まめたろう さん [ 11月20日(日) 14時36分 ]
項目の属性がAですので、格納できるデータは半角文字のみがサポートされます。
その項目に全角文字を無理やり格納することもできますが
EBCDICからPCコードに項目単位で文字変換する時に全角文字を半角文字として
変換するので文字化けが発生します。
項目の属性をAから0(オー)に変更する対処が必要があります。
項目の属性が0(オー)であれば半角文字と全角文字の
両方がサポートされますので文字化けは発生しなくなると思います。
RE:VBAやVBSからAS400のデータをSQLで取得時の文字化け AS400 初心者 さん [ 11月21日(月) 20時48分 ]
> 項目の属性がAですので、格納できるデータは半角文字のみがサポートされ
ます。
> その項目に全角文字を無理やり格納することもできますが
> EBCDICからPCコードに項目単位で文字変換する時に全角文字を半角文字として
> 変換するので文字化けが発生します。
> 項目の属性をAから0(オー)に変更する対処が必要があります。
> 項目の属性が0(オー)であれば半角文字と全角文字の
> 両方がサポートされますので文字化けは発生しなくなると思います。
> 

属性Aなのに何故全角文字が入っているのか不思議だったのですが
どういう方法かわかりませんが無理矢理入れていたんですね。
社内で使用している市販のツールで抽出した際には文字化けしていなかったので
何か方法があるのかと思いました。

属性をOに変更することで対応したいと思います。

ありがとうございました。
RE:VBAやVBSからAS400のデータをSQLで取得時の文字化け HIROX さん [ 12月15日(木) 10時8分 ]
> 属性Aなのに何故全角文字が入っているのか不思議だったのですが
> どういう方法かわかりませんが無理矢理入れていたんですね。
> 社内で使用している市販のツールで抽出した際には文字化けしていなかったので
> 何か方法があるのかと思いました。
> 
> 属性をOに変更することで対応したいと思います。
> 
> ありがとうございました。

無理やりではなくRPGだと普通に入ってしまうんですよね。
文字属性チェックがRPGではされないのが原因です。

で、話は戻ってO属性に物理ファイルを変更すると、その物理ファイルを使用
しているRPG
などはリコンパイルが必要になります。
大変なので、私がよくやる手は以下の2つです。

1.SQLを発行する場合
A属性のフィールドに対して下記のようなSQLにします。
CAST(商品名 AS VARCHAR (256) CCSID 5026)
CCSIDの5026は環境に合わせて変更で。

2.ツールで自動SQL発行(SQLは変えられない)で、文字化けの場合
その物理ファイルの該当フィールド属性をOに変えた論理ファイルを切ります。
この場合、論理ファイル自体はデータを持たないので、容量圧迫はしません。
RE:VBAやVBSからAS400のデータをSQLで取得時の文字化け AS400 初心者 さん [ 12月27日(火) 9時14分 ]
すいません、、コメント頂いていたのに気付きませんでした。

HIROXさんありがとうございます!!
この1番が知りたかった方法でした
VBAで記載しているSQL文の商品名欄を教えていただいた内容に修正すると
商品名の文字化けがなくなりました

また、2の方法も非常に興味深い内容でした。
PFで指定している属性をLFで変更出来るなんて知りませんでした。
色々ありがとうございます。非常に勉強になりました。
QSHのechoでタブ文字(\t)を認識させたい wai さん [ 12月16日(金) 10時4分 ]
CLから.shを呼び出し、所定のIFSディレクトリにログ出力するプログラムを作成しています。
任意の場所にタブ文字(\t)を入れたいと考えいますが、書き方がわかりません。
5250でstrqsh
>echo "aaa\tbbb"
aaa\tbbb
上記の結果aaaとbbbの間にタブがはいった形で出力させたいです。

RE:QSHのechoでタブ文字(\t)を認識させたい wai さん [ 12月22日(木) 11時31分 ]
> CLから.shを呼び出し、所定のIFSディレクトリにログ出力するプログラムを作成しています。
> 任意の場所にタブ文字(\t)を入れたいと考えいますが、書き方がわかりません。
> 5250でstrqsh
> >echo "aaa\tbbb"
> aaa\tbbb
> 上記の結果aaaとbbbの間にタブがはいった形で出力させたいです。
> 
> 
RE:QSHのechoでタブ文字(\t)を認識させたい wai さん [ 12月22日(木) 11時35分 ]
「\」は、認識しないため、バックスラッシュで記載する必要あり。

5250であれば、キーボード設定で、バックスラッシュをJISからSJISへ変換して登録。
.shであれば、ファイルの文字コードをSJISで保管。
RPGLEでSQL UNION使用時のファイル識別方法 初心者 さん [ 12月21日(水) 11時27分 ]
RPGLEにSQLを組み込んでいます。UNIONで2つのファイル(A,B)を読んで、ORDER BYで並べ替えをします。
読込時に、現在読みこんでいるファイルA,Bを判別したいので、その方法を教えてください。
(読み込んでいるファイルによって処理を変えたい。)

SQLを使用しない普通のRPGLEなら「ファイル仕様書の継続行」を使った「ファイル情報データ構造」を定義すればできるのですが、
「SQLで使用するテーブルでは、ファイル仕様書で記述する必要ない」ので、「ファイル仕様書の継続行」を使用することができません。

RPGLEで複数レコード様式を持つ論理ファイルを読むときのように、I仕様書でレコード名+レコードIDを指定する方法で
「A_REC   71」
「B_REC   72」
と指定して、
「71=*ON」なら、赤字で表示。
「72=*ON」なら、青字で表示。
と処理できれば、よいのですが。
RE:RPGLEでSQL UNION使用時のファイル識別方法 昔の人 さん [ 12月27日(火) 0時27分 ]
ファイルに、レコード識別フィールドを付加する。
つまり、SQLの前に、ファイルを加工しておく。

IFS ストリームファイルの最大レコード長は? CTK さん [ 1月7日(土) 15時33分 ]
AS/400で作成した5909バイトのレコード長を持った物理ファイルを
CPYTOIMPFでストリームファイルに書き出そせるのですが
内容を確認すると「132のレコード長が使用されました」というメッセージに表示されて
分割されてしまいます。

いろいろ文献を調べているのですがわかりませんでした

5909バイトだと長すぎるのでしょうか?

CPYTOIMPF FROMFILE(AAALIB/AAA001) TOSTMF('/AAAPQTEMP/AAA001.TXT') +
MBROPT(*REPLACE) RCDDLM(*CRLF) DTAFMT(*DLM) STRDLM(*NONE) FLDDLM(',')

で作成しました
RE:IFS ストリームファイルの最大レコード長は? IKD さん [ 1月8日(日) 11時34分 ]
出力先ファイルがストリーム・ファイルなのでレコード長が制限される理由は
ありません。
また MBROPT(*REPLACE) が以前に保管されているストリーム・ファイルの
影響を受けることもありません。(実際に実験してみましたが問題ありませんでした。)

このようなご質問をされるときには「132のレコード長が使用されました」の
CPFメッセージIDを必ずお知らせ頂いたほうがよいかと思います。

CPFメッセージの詳細には原因と解決方法が記述されています。
調べてみるとこれは CPIB604 でないかと思われますが
もし CPIB604 であるとすると

原因??レコード長を判別することができませんでした。 &1 の任意のレコード長が
  使用されました。                                                          

とありますので FROMFILE に指定したデータ・ベースを DSPFD コマンドで調べて
レコード長が正しく表示されているかどうか調べてみてください。
RE:IFS ストリームファイルの最大レコード長は? CTK さん [ 1月10日(火) 8時57分 ]
> このようなご質問をされるときには「132のレコード長が使用されました」の
> CPFメッセージIDを必ずお知らせ頂いたほうがよいかと思います。

メッセージIDはCPIB604でした

> CPFメッセージの詳細には原因と解決方法が記述されています。
> 調べてみるとこれは CPIB604 でないかと思われますが
> もし CPIB604 であるとすると
> 
> 原因??レコード長を判別することができませんでした。 &1 の任意のレコード長が
>   使用されました。                                  
                        
> 
> とありますので FROMFILE に指定したデータ・ベースを DSPFD コマンドで調べて
> レコード長が正しく表示されているかどうか調べてみてください。

レコード長は正しい「5909バイト」でした

   17/01/10                   ファイル記述の表示                              
DSPFD コマンドの入力                                                         
 ファイル . . . . . . . . . . . . . . . . . : FILE       CE0093             
   ライブラリー . . . . . . . . . . . . . . :            CT@LIB             
  情報のタイプ . . . . . . . . . . . . . . . : TYPE       *ALL               
 ファイル属性 . . . . . . . . . . . . . . . : FILEATR    *ALL               
  システム . . . . . . . . . . . . . . . . . : SYSTEM     *LCL              
ファイル記述の見出し                                                          
 ファイル . . . . . . . . . . . . . . . . . : FILE       CE0093             
 ライブラリー . . . . . . . . . . . . . . . :            CT@LIB              
 ファイルのタイプ . . . . . . . . . . . . . :             物理                
 ファイル・タイプ . . . . . . . . . . . . . : FILETYPE    *DATA               
 補助記憶域プール ID  . . . . . . . . . . . :            00001                
データベース・ファイル の属性                                                          
 外部記述ファイル . . . . . . . . . . . . . :            YES                  
 ファイル・レベル ID. . . . . . . . . . . . :            1170107103325        
 作成日 . . . . . . . . . . . . . . . . . . :            17/01/07           
 テキスト ' 記述 '. . . . . . . . . . . . . : TEXT        積荷明細書ファイル(I
SOOL) 
 配布ファイル . . . . . . . . . . . . . . . :            NO       
 分割 SQL テーブル  . . . . . . . . . . . . :            NO              
 DBCS 使用可能  . . . . . . . . . . . . . . :            YES             
 メンバーの最大数 . . . . . . . . . . . . . : MAXMBRS        1           
 制約の数 . . . . . . . . . . . . . . . . . :                0           
 トリガーの数 . . . . . . . . . . . . . . . :                0           
 メンバー数 . . . . . . . . . . . . . . . . :                1           
    アクセス・パスの保守 . . . . . . . . . . . : MAINT      *IMMED          
    アクセス・パス回復 . . . . . . . . . . . . : RECOVER    *NO             
    強制キー順アクセス・パス . . . . . . . . . : FRCACCPTH  *NO             
    メンバー・サイズ                             SIZE                       
      初期レコード数 . . . . . . . . . . . . . :                 10000      
      増分レコード数 . . . . . . . . . . . . . :             1000           
      最大増分回数 . . . . . . . . . . . . . . :                3           
    レコード容量 . . . . . . . . . . . . . . . :                 13000      
    記憶域割り振り . . . . . . . . . . . . . . : ALLOCATE   *NO             
    連続記憶域 . . . . . . . . . . . . . . . . : CONTIG     *NO             
    入れたい記憶装置 . . . . . . . . . . . . . : UNIT       *ANY            
    強制書き出しレコード数 . . . . . . . . . . : FRCRATIO   *NONE           
    最大ファイル待機時間 . . . . . . . . . . . : WAITFILE      30             
                       
    最大レコード待機時間 . . . . . . . . . . . : WAITRCD       60             
   
    許される削除済みレコードの最大 (%) . . . . : DLTPCT     *NONE               
 
    削除済みレコードの再使用 . . . . . . . . . : REUSEDLT   *NO                
  
    コード化文字セット ID  . . . . . . . . . . : CCSID       5026             
   
    読み取り操作可能 . . . . . . . . . . . . . :            YES               
   
    書き込み操作可能 . . . . . . . . . . . . . :            YES               
   
    更新操作可能 . . . . . . . . . . . . . . . : ALWUPD     *YES             
    
    削除操作可能 . . . . . . . . . . . . . . . : ALWDLT     *YES             
    
    レコード様式レベルの検査 . . . . . . . . . : LVLCHK     *YES               
  
    アクセス・パス . . . . . . . . . . . . . . :             キー順           
   
    アクセス・パス・サイズ . . . . . . . . . . : ACCPTHSIZ  *MAX1TB            
  
    アクセス・パス論理ページ・サイズ . . . . . : PAGESIZE   *KEYLEN             
 
    キーの最大長 . . . . . . . . . . . . . . . :                7            
    
    最大レコード長 . . . . . . . . . . . . . . :             5909            
    
    揮発性 . . . . . . . . . . . . . . . . . . :            NO              
     
    メモリーに保存 . . . . . . . . . . . . . . : KEEPINMEM  *NO              
    
    ファイルは現在ジャーナル処理中 . . . . . . :            NO                  
 
  アクセス・パス記述                                                          
   
    アクセス・パスの保守 . . . . . . . . . . . : MAINT      *IMMED            
       
    固有キー値が必要 . . . . . . . . . . . . . : UNIQUE     NO                
                      
    キー順序 . . . . . . . . . . . . . . . . . :             指定されていない  
                     
    アクセス・パスのジャーナル処理 . . . . . . :            NO                  
                    
    アクセス・パス . . . . . . . . . . . . . . :             キー順           
                      
    制約タイプ . . . . . . . . . . . . . . . . :            NONE             
                       
    キー・フィールドの数 . . . . . . . . . . . :              1               
                      
    レコード様式 . . . . . . . . . . . . . . . :            CE0093R          
                       
      キー・フィールド . . . . . . . . . . . . :            KEYNO             
                      
        順序 . . . . . . . . . . . . . . . . . :             昇順           
                        
        符号の指定 . . . . . . . . . . . . . . :            UNSIGNED         
                       
        ゾーン/ディジットの指定 . . . . . . . :            *NONE              
                     
        代替照合順序 . . . . . . . . . . . . . :            NO               
                       
    分類順序 . . . . . . . . . . . . . . . . . : SRTSEQ     *HEX            
                        
    言語 ID. . . . . . . . . . . . . . . . . . : LANGID     JPN             
                        
  メンバー記述                                                               
                       
    メンバー . . . . . . . . . . . . . . . . . : MBR        CE0093          
                        
      メンバー・レベル ID. . . . . . . . . . . :            1170107103325     
                      
      メンバー作成日 . . . . . . . . . . . . . :            17/01/07
      テキスト ' 記述 '  . . . . . . . . . . . : TEXT        積荷明細書ファイル
(ISOOL)       
      メンバーの満了日 . . . . . . . . . . . . : EXPDATE    *NONE             
                            
      アクセス・パスの保守 . . . . . . . . . . : MAINT      *IMMED            
                            
      アクセス・パスの回復 . . . . . . . . . . : RECOVER    *NO               
                            
      メンバー・サイズ . . . . . . . . . . . . : SIZE                         
                            
        初期レコード数 . . . . . . . . . . . . . :               10000       
                             
        増分レコード数 . . . . . . . . . . . . :             1000            
                             
        最大増分回数 . . . . . . . . . . . . . :                3            
                             
      現在の増分回数 . . . . . . . . . . . . . :                     0       
                             
      レコード容量 . . . . . . . . . . . . . . :                 13000       
                             
      現在のレコード数 . . . . . . . . . . . . :                     1        
                            
      削除済みレコード数 . . . . . . . . . . . :                     0        
                            
      記憶域割り振り . . . . . . . . . . . . . : ALLOCATE   *NO              
                             
      連続記憶域 . . . . . . . . . . . . . . . : CONTIG     *NO              
                             
      入れたい記憶装置 . . . . . . . . . . . . : UNIT       *ANY              
                            
      強制書き出しレコード数 . . . . . . . . . : FRCRATIO   *NONE              
                           
      共用オープン・データ・パス . . . . . . . : SHARE      *NO                
                           
      許される削除済みレコードの最大 (%) . . . : DLTPCT     *NONE               
                          
      メンバー・アクセスの数 . . . . . . . . . :                     0         
                           
      データ・スペース活動統計 . . . . . . . . :                               
                           
        データ・スペース・サイズ(バイト) . . :              77824              
     
        物理ファイルのオープン・アクセス . . . :                            24  
      
        物理ファイルのクローズ・アクセス . . . :                            24  
      
        書き出し操作 . . . . . . . . . . . . . :                             
1        
        更新操作 . . . . . . . . . . . . . . . :                            
          
        削除操作 . . . . . . . . . . . . . . . :                            
          
        論理読み取り . . . . . . . . . . . . . :                             
5        
        物理読み取り . . . . . . . . . . . . . :                             
1        
        消去操作 . . . . . . . . . . . . . . . :                            
          
        データ・スペース・コピー操作 . . . . . :                                
      
        再編成操作 . . . . . . . . . . . . . . :                             
         
        アクセス・パスの作成/再作成 . . . . . :                             1  
      
        キー選択で拒否されたレコード . . . . . :                                
      
        非キー選択で拒否されたレコード . . . . :                                
      
        GROUP-BY 選択で拒否されたレコード  . . :                               
       
      アクセス・パス活動統計 . . . . . . . . . :                               
       
        アクセス・パス論理読み取り . . . . . . :                             5 
       
        アクセス・パス物理読み取り . . . . . . :                               
       
        アクセス・パス・サイズ . . . . . . . . :                      32768    
       
        アクセス・パス項目の数 . . . . . . . . :                     1         
       
        アクセス・パス有効 . . . . . . . . . . :            YES               
        
        暗黙のアクセス・パスの共用 . . . . . . :            NO                 
       
        アクセス・パスのジャーナル処理 . . . . :            NO                  
      
        固有部分キー値の数 . . . . . . . . . . :                              
        
          キー・フィールド 1 . . . . . . . . . :                          1   
        
      最終変更日/時刻 . . . . . . . . . . . :              17/01/07  10:33:31
        
      最終保管日/時刻 . . . . . . . . . . . :              17/01/10  07:37:28
        
      最終復元日/時刻 . . . . . . . . . . . :                                
        
      最終使用日付 . . . . . . . . . . . . . . :            17/01/07         
         
      使用日数カウント . . . . . . . . . . . . :                1             
        
        リセット日付 . . . . . . . . . . . . . :                             
         
      オブジェクトが部分トランザクションで復元されました,                          
  
        ジャーナル変更適用が必要 . . . . . . . :            *NO                
       
      部分トランザクションが存在しています,                                     
     
        ロールバックの終了 . . . . . . . . . . :            *NO               
        
      ジャーナル・レシーバー を適用のために開始中 . . . :                                
      
        ライブラリー . . . . . . . . . . . . . :                             
         
        ASP 装置 . . . . . . . . . . . . . . . :                            
          
  レコード様式リスト                                                          
                   
                        レコード    様式 レベル                                   
                    
   様式        フィールド    長      ID                                          
                    
  CE0093R        1632     5909  3A25AAF3F2DE6                              
                      
     テキスト  . . . . . . . . . . . . . . . . :                            
                     
   様式の合計数  . . . . . . . . . . . . . . . :           1                 
                    
   フィールドの合計数  . . . . . . . . . . . . :        1632                  
                   
   合計レコード長  . . . . . . . . . . . . . . :        5909                 
                    
  メンバー・リスト                                                            
                   
                               ソース・   作成        最終変更                    
削除済み           
   メンバー        サイズ        タイプ   日付      日付     時刻     レコード 数   レコード
 数            
  CE0093               110592        17/01/07 17/01/07 10:33:31          1 
         0            
    テキスト:   積荷明細書ファイル(ISOOL)                                     
                
   メンバーの合計数  . . . . . . . . . . . . :                 1              
                   
   使用可能でないメンバーの合計数  . . . . . :                 0                
                 
   合計レコード数  . . . . . . . . . . . . . :                 1             
                    
   合計削除レコード  . . . . . . . . . . . . :                 0              
                   
   合計メンバー・サイズ  . . . . . . . . . . :            110592              
                   
RE:IFS ストリームファイルの最大レコード長は? CTK さん [ 1月10日(火) 11時57分 ]
該当のIFSストリームファイルですが、
CPYFTOIMFP後FTPでWindowsサーバーに送信しているのですが
そちらを確認したところ問題なく送信されていることが判明しました。

WRKLNKで表示する際だけの問題なのでしょうかね??

いろいろご指導ありがとうございました
ライブラリAのオブジェクトすべてをライブラリーBに追加・上書きコピーしたい ramu さん [ 1月24日(火) 19時35分 ]
ライブラリーAにあるオブジェクトをすべてBにコピーし、既にBにある場合は強制的に上書きするようなCLコマンドはありませんでしょうか?
ライブラリーAに存在しないオブジェクトはライブラリーBに残したままにしたいので一度消さずに対応したいです
CPY(COPY),CPYF,CRTDUPOBJなどあらってみましたが、ライブラリー内の全指定だと既にオブジェクトがある場合に上書きしてくれないようでした。
一旦リスト化してオブジェクト単位でコピーしていくしかないでしょうか?
RE:ライブラリAのオブジェクトすべてをライブラリーBに追加・上書きコピーしたい IKD さん [ 1月25日(水) 9時15分 ]
確かに CRTDUPOBJ や STRPDM では上書き確認のメッセージが
出力されてしまいます。

対象がデータ・ベースだけであるなら CPYF によって
 MBROPT(*REPLACE) を指定すればご希望の処理になりますが
ファイルだけに限定されてしまいます。

そこで、RSTLIBまたは RSTOBJ で MBROPT(*ALL) ALWOBJDIF(*ALL) を
指定すれば 無条件で上書きしてくれます。

従って
(1) CRTSAVF で *SAVF を作成する
(2) SAVLIB でライブラリーA を *SAVF に保管
(3) RSTLIB で *SAVF からライブラリーB に
      MBROPT(*ALL) ALWOBJDIF(*ALL) で復元する
RE:ライブラリAのオブジェクトすべてをライブラリーBに追加・上書きコピーしたい ramu さん [ 1月25日(水) 10時36分 ]
IKD 様
ご指定の方法で試してみたところ、狙い通りの動きになりました。
ありがとうございます!
VBAからASのプログラムをコール時に引数を送る方法 AS400 初心者 さん [ 1月25日(水) 19時26分 ]
VBAからASのCLをコールする際に引数を送ることは出来ますでしょうか?
現在下記のような流れでVBAからASのCLをコールするというところまでは
成功したのですが、引数を送る方法がわかりませんでした。

引数が送れたらCLをコントロールしやすくなるのですが。。

*----------------------------------------
set cmd = New ADODB.Command
cmd.ActiveConnection = con
cmd.CommandType = adCmdText
cmd.CommandText = "CALL HOGELIB.HOGEPGM"
cmd.Execute
*----------------------------------------
(ASのプログラムをコールする箇所を記載しました)
RE:VBAからASのプログラムをコール時に引数を送る方法 シャリース さん [ 2月2日(木) 20時5分 ]
弊社では、AS側にストアドプロシージャを用意してCLを実行しています。

http://tigertaizo.hatenablog.com/entry/2013/10/17/171655
RE:VBAからASのプログラムをコール時に引数を送る方法 AS400 初心者 さん [ 2月6日(月) 19時56分 ]
1.ストアドプロシージャを作成(これがコールされると登録したCLがコールされる)
2.VBAから引数を与えて上記ストアドプロシージャをコール
3.ストアドプロシージャが受け取った引数をCLコール時に与える

上記のようなイメージで合ってますでしょうか?
記載いただいたページの内容を勉強させていただきます。

ありがとうございました。
AS400のwebアプリケーションサーバーでJAVA PHP KDM さん [ 1月31日(火) 21時17分 ]
AS400上にwebアプリケーションサーバーを構築して、そこでPHPかJAVAを動かしAS400の物理ファ
イルを更新したりしたいのですが可能でしょうか。

目的はグリーン画面を一挙にweb化したいなどということではなく(それをやるならばそれなりのツ
ールを購入した方が効率もコスパも良い)無償で構築してちょっとした更新のアプリを動作させてみ
たいだけです。

会社は規模も小さいのでそれなりにできるとなればそういったツールを購入する方向には持っていき
ますが、すくなくともGUIの画面でちょとした業務ができることを見せられればと思ってます。

そこでおききしたいのが、Powered by apacheでサーバーを構築して、PHPなりを動作させること
はできるのかということと、まず大まかなやることが分かればと思います。
WEB系は素人のため質問が稚拙で申し訳ありません。
RE:AS400のwebアプリケーションサーバーでJAVA PHP IKD さん [ 2月1日(水) 9時32分 ]
JavaでJSP&Servletを試すのは無料でできますが
(ただし JDKが IBM i に導入されていることが前提)
JSP&Servlet の構築には Java+ Servlet + HTML+ JavaScript
の知識が必要でかなりハードルは高いです。

PHPはZendからの購入が必要で結構、高価です。
無料では使えません。
またPHPは i5/OSのリリース・アップに追随していなくて
動かなくなるので高価な保守契約の持続も必要。
DB2アクセスは ODBCドライバー経由なので
大規模なDB2への「ちょっとした更新」も相当時間も
労力もかかります。

さらにネットでの攻撃の対象はほとんどがPHPを対象としています。
ネット公開にはPHPは非常に危険です。
またPHPは HTMLの中にスクリプトが混在したような形式なので
オープン系では入門用として普及していますが
ロジックとインターフェースの分離の MVC3階層モデルに
逆行しています。

市販のWeb化ソフトでも開発工数の少ないものを選べば
効果は十分に得られます。
ただし市販ソフトの多くは

 ・PCサーバーを別途、必要とする。
  ・WebSpare(WAS)を必要とするためパフォーマンスが悪くなり
      他の業務の実行までが遅くなる。
  ・特殊なスクリプト言語などの学習が必要となる。
  ・そのためベンダーに外注を必要とする。
  ・特殊な言語や構造のため

   - 修正が自社でできず毎度、外注となる。
     - 後輩への技術継承ができなくて後輩が育たない。

 ・試供版を使わず特約店の勧めるままに買ったけれど
    5250環境のようには動作しないので「塩漬け」となって
    全く使用しない。
  ・海外輸入ソフトのため技術サポートや要望が伝わらない。

 などの問題も数多く発生しているのも現実です。
 自社でも容易に開発できてサポートのよいところから購入するのが
  ポイントです。
 特殊なスクリプトを使用しているものはお勧めできません。
  試供版を活用することをお勧めします。
RE:AS400のwebアプリケーションサーバーでJAVA PHP KDM さん [ 2月1日(水) 10時42分 ]
> JavaでJSP&Servletを試すのは無料でできますが
> (ただし JDKが IBM i に導入されていることが前提)
> JSP&Servlet の構築には Java+ Servlet + HTML+ JavaScript
> の知識が必要でかなりハードルは高いです。
> 
> PHPはZendからの購入が必要で結構、高価です。
> 無料では使えません。
> またPHPは i5/OSのリリース・アップに追随していなくて
> 動かなくなるので高価な保守契約の持続も必要。
> DB2アクセスは ODBCドライバー経由なので
> 大規模なDB2への「ちょっとした更新」も相当時間も
> 労力もかかります。
> 
> さらにネットでの攻撃の対象はほとんどがPHPを対象としています。
> ネット公開にはPHPは非常に危険です。
> またPHPは HTMLの中にスクリプトが混在したような形式なので
> オープン系では入門用として普及していますが
> ロジックとインターフェースの分離の MVC3階層モデルに
> 逆行しています。
> 
> 市販のWeb化ソフトでも開発工数の少ないものを選べば
> 効果は十分に得られます。
> ただし市販ソフトの多くは
> 
>  ・PCサーバーを別途、必要とする。
>   ・WebSpare(WAS)を必要とするためパフォーマンスが悪くなり
>       他の業務の実行までが遅くなる。
>   ・特殊なスクリプト言語などの学習が必要となる。
>   ・そのためベンダーに外注を必要とする。
>   ・特殊な言語や構造のため
> 
>    - 修正が自社でできず毎度、外注となる。
>      - 後輩への技術継承ができなくて後輩が育たない。
> 
>  ・試供版を使わず特約店の勧めるままに買ったけれど
>     5250環境のようには動作しないので「塩漬け」となって
>     全く使用しない。
>   ・海外輸入ソフトのため技術サポートや要望が伝わらない。
> 
>  などの問題も数多く発生しているのも現実です。
>  自社でも容易に開発できてサポートのよいところから購入するのが
>   ポイントです。
>  特殊なスクリプトを使用しているものはお勧めできません。
>   試供版を活用することをお勧めします。
> 
IKD様、ありがとうございます。
 WAS Expressを入れてみようと思いましたがパフォーマンスに影響が大きいようで
ストップしようと思います。まず導入の資料がなかなかわかりにくいものでまだ実施
できてなかった次第です。

 市販のものですがおっしゃるとおりです。営業はZend、LANSA、ミガロなどを提案
してきますがライセンスもさることながら保守費も結構なものです。昨年勢いでAxes
を購入しましたが簡単にWEB化できる反面、画面が必要だったりするので新規作成に
向かずおっしゃるとおり塩漬けです・・・。

javaはハードルが高いようですが何とも言えません。オープンソース系未経験ですし・・・。
購入するものは今後検討するものとして別で考えます。

 ちなみに統合WebアプリケーションサーバーとJDKがあれば簡単なものは構築できる
ものでしょうか。統合Webアプリケーションサーバーが今一どういったことができるのか
がイメージが湧きません。もしできれば補足でざっくりと教えてもらえませんでしょうか。
(webアプリサーバーなのでjavaサーブレットは動くのでwebは作れる、などのレベル)
あるいは、自前でWinサーバー立てて(とりあえずPCで).NETでODBC経由で作る方が
入りやすいのでしょうか。

回答いただいて大変ありがとうございます。もう少しだけよろしくお願い致します。
RE:AS400のwebアプリケーションサーバーでJAVA PHP IKD さん [ 2月1日(水) 12時5分 ]
「アプリケーション・サーバー」という名前が良くない(?)のですが
言ってしまえば Java , 特に Servlet が動くサーバーのことです。
それ以外の意味はありません。
Java&Servlet の稼働環境のことです。
あえて「アプリケーション・サーバー」という名前になっています。
( 実は API を使えば APPサーバーは作れますが)

さて JSP とは Servlet が動作すする HTML と考えることができます。
普通のHTMLでも拡張子を .jsp にしてしまえばそれはJSP となります。

Servlet は JSP に埋め込まれた命令に従って動作しますので
Webデザイナーが JSPを見ても全く理解できません。
従ってプログラマーが HTML + JavaScript を理解していなければなりません。

開発の方法は出力したいHTML(+JavaScript)をまずプロトタイプ・モデルとして
作成して動作を確認します。(しかしこのHTMLは全く使用しません。)

次にこのHTMLを出力するための JSP&Servletを開発します。
プログラマーがそのようなHTMLが出力されるように頭の中で
想像しながら開発するのです。
いかに効率の悪い方法と思われませんか ?
IBM XMLブリッジも同じ開発方法でパフォーマンスも悪くなります。

Windows サーバーなどで無料で開発を体験するのであれば
Tomcat が多く使われます。
この方法での学習は費用はかかりません。
開発用には eclipse を使いますが英文になります。
Visual Studio も無料ダウンロードは英文のみです。

ご希望のようにPCサーバーで開発してODBCで IBM i に投げる方法も
可能です。
ただし更新となると対象D/Bが例えば 30万レコードあるとすると
30万レコードすべてを読み取ってから更新が行われますので
パフォーマンスが悪くなります。
学習されるのであればまず簡単な静的なHTMLを IBM i の IFS に
配置して表示するところから始めると構造がよく理解できると思います。

次に多くの売り手はソフトの欠点は語らずに販売します。
5250環境で当たり前のようにできていたことが
できなかったりするのは珍しくありません。
それで「塩漬け」になるのですがこのような製品は長くは
続かないでしょう。

そのような製品が多いので試供版で十分にお試しになることが
重要です。
RE:AS400のwebアプリケーションサーバーでJAVA PHP KDM さん [ 2月1日(水) 13時39分 ]
> 「アプリケーション・サーバー」という名前が良くない(?)のですが
> 言ってしまえば Java , 特に Servlet が動くサーバーのことです。
> それ以外の意味はありません。
> Java&Servlet の稼働環境のことです。
> あえて「アプリケーション・サーバー」という名前になっています。
> ( 実は API を使えば APPサーバーは作れますが)
> 
> さて JSP とは Servlet が動作すする HTML と考えることができます。
> 普通のHTMLでも拡張子を .jsp にしてしまえばそれはJSP となります。
> 
> Servlet は JSP に埋め込まれた命令に従って動作しますので
> Webデザイナーが JSPを見ても全く理解できません。
> 従ってプログラマーが HTML + JavaScript を理解していなければなりません。
> 
> 開発の方法は出力したいHTML(+JavaScript)をまずプロトタイプ・モデルとして
> 作成して動作を確認します。(しかしこのHTMLは全く使用しません。)
> 
> 次にこのHTMLを出力するための JSP&Servletを開発します。
> プログラマーがそのようなHTMLが出力されるように頭の中で
> 想像しながら開発するのです。
> いかに効率の悪い方法と思われませんか ?
> IBM XMLブリッジも同じ開発方法でパフォーマンスも悪くなります。
> 
> Windows サーバーなどで無料で開発を体験するのであれば
> Tomcat が多く使われます。
> この方法での学習は費用はかかりません。
> 開発用には eclipse を使いますが英文になります。
> Visual Studio も無料ダウンロードは英文のみです。
> 
> ご希望のようにPCサーバーで開発してODBCで IBM i に投げる方法も
> 可能です。
> ただし更新となると対象D/Bが例えば 30万レコードあるとすると
> 30万レコードすべてを読み取ってから更新が行われますので
> パフォーマンスが悪くなります。
> 学習されるのであればまず簡単な静的なHTMLを IBM i の IFS に
> 配置して表示するところから始めると構造がよく理解できると思います。
> 
> 次に多くの売り手はソフトの欠点は語らずに販売します。
> 5250環境で当たり前のようにできていたことが
> できなかったりするのは珍しくありません。
> それで「塩漬け」になるのですがこのような製品は長くは
> 続かないでしょう。
> 
> そのような製品が多いので試供版で十分にお試しになることが
> 重要です。

IKD様 ありがとうございます。
詳しく回答していただき感動しています。
工場系でおっしゃるように1000万件弱のデータも扱っていたりしますので
ODBCはあまりあてにしないようにしたいと思います。
「Web統合アプリケーションサーバー」を作成してみて、そこに静的なページを
配置してみつつHTMLに触れてみつつ やってみたいと思います!
RE:AS400のwebアプリケーションサーバーでJAVA PHP シャリース さん [ 2月2日(木) 21時13分 ]
AS400にHTTPサーバ(powered by Apache)を設定し、
RPGLEだけでWebプログラムを構築する事が可能です。
仕組はAS400を利用したCGIです。

当然、RPGLEですのでDBの読み書きもCHAIN命令やWRITE、UPDAT命令を使用しますので
ODBCやJDBCも必要有りませんしSQLも必要ありません。
簡単なシステムであればAS400のOSの標準機能だけでWEBシステムを構築できます。
但し、ブラウザで動かすので、HTMLやJavascript、CSSの知識は若干必要です。

AS400は既に1995年頃からこの仕組でWEBシステムを構築する事が出来ていました。
今はネットで見つける事ができませんがIBMが研修用に用意した
「AS400 V3 TCPIP機能とインターネット」資料だけで勉強して
簡単なサブシステムをいくつも構築しました。

この仕組で大規模なWEBシステムを構築するのは大変です。
私の感覚では、通常のエミュレータで動く画面を作成する工数の3倍から10倍はかかります。
プログラムのメンテナンスも大変です。
そこで当HPのEnterpriseServerのようなミドルウエアが飯の種となるのでしょう。

RE:AS400のwebアプリケーションサーバーでJAVA PHP KDM さん [ 2月6日(月) 13時0分 ]
> AS400にHTTPサーバ(powered by Apache)を設定し、
> RPGLEだけでWebプログラムを構築する事が可能です。
> 仕組はAS400を利用したCGIです。
> 
> 当然、RPGLEですのでDBの読み書きもCHAIN命令やWRITE、UPDAT命令を使用しますので
> ODBCやJDBCも必要有りませんしSQLも必要ありません。
> 簡単なシステムであればAS400のOSの標準機能だけでWEBシステムを構築できます。
> 但し、ブラウザで動かすので、HTMLやJavascript、CSSの知識は若干必要です。
> 
> AS400は既に1995年頃からこの仕組でWEBシステムを構築する事が出来ていました。
> 今はネットで見つける事ができませんがIBMが研修用に用意した
> 「AS400 V3 TCPIP機能とインターネット」資料だけで勉強して
> 簡単なサブシステムをいくつも構築しました。
> 
> この仕組で大規模なWEBシステムを構築するのは大変です。
> 私の感覚では、通常のエミュレータで動く画面を作成する工数の3倍から10倍はかかります。
> プログラムのメンテナンスも大変です。
> そこで当HPのEnterpriseServerのようなミドルウエアが飯の種となるのでしょう。
> 
> 
シャリース様ありがとうございます。
参考のサイトがあれば教えていただけませんでしょうか
参考図書 シャリース さん [ 2月28日(火) 20時18分 ]
ネット上を調べてみましたが参考になるサイトを見つける事ができませんでした。
iMagazine(アイマガジン株式会社)のバックナンバーで
「MidrengeServer」?22(2005年夏)で
iSeries:[Web化」を特集しています。
CGIプログラミング編ではサンプルコーティングも掲載されています。
取引先マスタ-の照会など具体的に分かり易いです。
参考になるのではないでしょうか。
バックナンバーを入手してみてはいかがでしょうか。
RE:AS400のwebアプリケーションサーバーでJAVA PHP IKD さん [ 2月5日(日) 11時18分 ]
シャリースさん、ありがとうございます。

IBM i には IBM i に適した開発手法があるはずだ、という考え方があります。
CGI や JSP&Servlet, PHP は IBM i のようにDDSや RPGを持たないプラットフォームでの
開発手法であり、効率のよい開発手法がすでにある IBM i で
あえてわざわざ大変な回り道をする必要はないと思います。

このような考えに基づいて AutoWeb を発表致しました。
DDS + RPG/COBOL の知識だけで Web開発ができます。

3/9に名古屋でセミナーを開催致しますので
KDMさんシャリースさんを始め、近隣の方もぜひお越しください。
( http://www.officequattro.com/jpn/seminar/contents/12.html#seminar1 )

RPGは驚くほど小さくコンパクトでありながら実行速度に優れています。
私達は RPGに精通しているのですから RPGをもっと活用したいものです。

今回は 24*80 の画面制約を無くした5250ハンドラーの特集セミナーです。
RE:AS400のwebアプリケーションサーバーでJAVA PHP KDM さん [ 2月6日(月) 13時19分 ]
> シャリースさん、ありがとうございます。
> 
> IBM i には IBM i に適した開発手法があるはずだ、という考え方があります。
> CGI や JSP&Servlet, PHP は IBM i のようにDDSや RPGを持たないプラットフォーム
ムでの
> 開発手法であり、効率のよい開発手法がすでにある IBM i で
> あえてわざわざ大変な回り道をする必要はないと思います。
> 
> このような考えに基づいて AutoWeb を発表致しました。
> DDS + RPG/COBOL の知識だけで Web開発ができます。
> 
> 3/9に名古屋でセミナーを開催致しますので
> KDMさんシャリースさんを始め、近隣の方もぜひお越しください。
> ( http://www.officequattro.com/jpn/seminar/contents/12.html#seminar1 )
> 
> RPGは驚くほど小さくコンパクトでありながら実行速度に優れています。
> 私達は RPGに精通しているのですから RPGをもっと活用したいものです。
> 
> 今回は 24*80 の画面制約を無くした5250ハンドラーの特集セミナーです。
IKD様ありがとうございます。
Auto Web をみてみます。
取り急ぎお礼までです。
RE:AS400のwebアプリケーションサーバーでJAVA PHP K.H さん [ 11月30日(木) 11時37分 ]
一応Linux+Apache+DB2+PHPで出来てます。テスト段階ですが適当なPCをサーバかわりにして、
CentOS7をWeb用でインストールして、AS400と接続するためのドライバーを入れました。
ドライバーはIBMのサイトから取得しました。全部自力です。
やり方はエクセルにまとめましたが、ここで答えられるほど短くはないです。
一応情報まで。
小数点以下の値の表示について はたもち さん [ 2月3日(金) 13時16分 ]
帳票で小数点以下の値を表示する際、0.25 が .25となってしまいます。
フィールド桁は S(5,2) です。
EDTWRD('0   .  ') で出来るかな?と思ったのですが、出来なくて…

1.編集語(EDTWRD)は画面でしか使用できないのでしょうか?
  初歩的な質問なのですが、分からないので教えてください。

2. .25 を0.25表示する方法も併せて教えていただけると嬉しいです。

よろしくお願いします。
RE:小数点以下の値の表示について シャリース さん [ 2月3日(金) 18時36分 ]
PRTFであれば、EDTWRD('  0 .  ')
但し、この表示だとマイナス値の表示ができません。
後ろマイナス表示であれば、EDTWRD('  0 .  -')でOKですが
前マイナスはどうだったかな?
RE:小数点以下の値の表示について はたもち さん [ 2月6日(月) 10時9分 ]
シャリースさん、ありがとうございます。
PRTFならOKなんですね。
でも、今回行いたいのはO仕様書なんです。
O仕様書では無理でしょうか?
ER図 KDM さん [ 2月9日(木) 12時2分 ]
ER図は今まで疑問に思うこともなくEXCELで作成していました。
ほかにもっとましな方法があるのではないかと思いはじめています。
参考にご使用のものを教えていただけますでしょうか。

ファイルをロックせずにロック状態を調べる方法 AS400 初心者 さん [ 2月10日(金) 10時54分 ]
CLのプログラムであるファイルのロック状態を見て
続きの処理の実行をするかどうかを分岐させたいと考えています。

ALCOBJだと、ファイルのロック状況を確認後にロックされていなければ
ファイルをロックしてしまうと聞きました。
ファイルをロックせずにロック状況のみをCL内で調べる方法はありますでしょ
うか?
RE:ファイルをロックせずにロック状態を調べる方法 IKD さん [ 2月11日(土) 9時26分 ]
ALCOBJ は、レコードをロックしますがロックに成功すれば
DLCOBJ で解除してしまえばよいだけです。


             ALCOBJ     OBJ((QTRFIL/SHOHIN *FILE *SHRUPD)) WAIT(0) 
             MONMSG     MSGID(CPF1085) EXEC(DO)                    
             SNDPGMMSG  MSG(' 他で使用中です。 ')                  
             GOTO       LCKEND                                     
             ENDDO                                                 
             DLCOBJ     OBJ((QTRFIL/SHOHIN *FILE *SHRUPD))         
             SNDPGMMSG  MSG(' レコード・ロックはありません。 ')    
LCKEND:   

CHKRCDLCK コマンド(パラメータなし)を使えばこの現在のジョブにレコード・ロックが
あるかどうか調べることができますが特定のファイルのレコード・ロックを調べることは
できません。

APi: QDBRJBRL は

   CALL       PGM(QDBRJBRL) PARM(&RCVVAR &RCVLEN +
              'RJBL0100' &JOBINFO &APIERR) 

のようにして ジョブを &JOBINFO に指定してレコード・ロックを &RCVVAR に戻すことが
できますが、これも特定のファイルのレコード・ロックを調べる目的では使用できません。

やはり一般的には ALCOBJ で成功すればレコード・ロックはなかった、
失敗すればどこか他でレコード・ロックされていると判断するのが一番、簡単です。
どこでロックされているかは WRKOBJLCK で調べることになります。
RE:ファイルをロックせずにロック状態を調べる方法 AS400 初心者 さん [ 2月13日(月) 14時32分 ]
IKD様、コメントありがとうございます。

実はそのロック状態を調べて処理を行うという処理が
1分単位に動く可能性がある処理になります。

処理自体は一瞬で終わるのですが、1分単位で一日に何度も動く可能性のある
処理になりまして、短い時間でもファイルロックされてしまいますと
他の更新系の処理を行うところで影響が出るのはと思い
ファイルロックせずにロック状態を調べる方法がないかを質問させていただき
ました。

通常はALCOBJでファイルロックを判断するということで了解いたしました。
ありがとうございました。
httpの初期ページ KDM さん [ 2月10日(金) 18時5分 ]
会社でV6R1を使ってます。
i navigator から2001ポートを使ってHTTPサーバーを作成しました。
ポート10010で設定し文書ディレクトリーもきちんと設定したつもりです。
MyApacheというサーバー名にしてます。
/www/myapache/htdocs に index.html がありますが
文言のみ変更して サーバーも再始動。
IEのキャッシュも削除してURL入力してアクセスすると、どうしても
ApacheDefaultのページ(変更前のページ)が表示されます。
アクセスして初期段階で表示するhtmlがどこか別の場所にあるので
しょうか。ログにはどのページを引っ張ってきているなどの記述は
ありませんでした。
確認する方法などありますでしょうか。
よろしくお願い致します。
RE:httpの初期ページ IKD さん [ 2月11日(土) 9時44分 ]
HTMLを自作したときに最初によくある間違いで
コンテンツを変更したのに再表示させてみると
以前のコンテンツが表示されてしまっている、という問題です。

これはサーバー側にキャッシュされているのではなく
ブラウザにキャッシュされているためです。
そのためブラウザのインターネット・オプションで
キャツシュをクリヤーすれば新しいコンテンツが正しく表示されます。
ブラウザには一定期間、キャッシュが残りますので
どうしてもブラウザ・キャッシュは避けることはできません。

そこで一般的にキャッシュさせたくないコンテンツには
次のように no-cache を指定すれば、変更して再表示すれば
つねに最新のコンテンツが表示されます。


<html>
<head>
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Cache-Control" content="no-cache">
<title>...</title>
</head>
<body>



</body>
</html>

ただしすべてのコンテンツをいつも no-cache にするべきではありません。
ブラウザにキャッシュされることによってパフォーマンスを高める仕組みに
なっていますので、すべてを no-cache にすると毎回、コンテンツが
ダウンロードされてきますのでパフォーマンスが低下してしまいます。

Web開発にはブラウザの設定操作の学習がどうしても必要となります。
テストのときはキャッシュをクリヤーしてから行うのが一般的ですが
Webデザイナーは何でもキャッシュのせいにしたがるようで
それも問題ですがキャッシュを消すことを習慣づけてもよいかも知れません。

RE:httpの初期ページ KDM さん [ 2月11日(土) 15時30分 ]
> HTMLを自作したときに最初によくある間違いで
> コンテンツを変更したのに再表示させてみると
> 以前のコンテンツが表示されてしまっている、という問題です。
> 
> これはサーバー側にキャッシュされているのではなく
> ブラウザにキャッシュされているためです。
> そのためブラウザのインターネット・オプションで
> キャツシュをクリヤーすれば新しいコンテンツが正しく表示されます。
> ブラウザには一定期間、キャッシュが残りますので
> どうしてもブラウザ・キャッシュは避けることはできません。
> 
> そこで一般的にキャッシュさせたくないコンテンツには
> 次のように no-cache を指定すれば、変更して再表示すれば
> つねに最新のコンテンツが表示されます。
> 
> 
> <html>
> <head>
> <meta http-equiv="Pragma" content="no-cache">
> <meta http-equiv="Cache-Control" content="no-cache">
> <title>...</title>
> </head>
> <body>
> 
> 
> 
> </body>
> </html>
> 
> ただしすべてのコンテンツをいつも no-cache にするべきではありません。
> ブラウザにキャッシュされることによってパフォーマンスを高める仕組みに
> なっていますので、すべてを no-cache にすると毎回、コンテンツが
> ダウンロードされてきますのでパフォーマンスが低下してしまいます。
> 
> Web開発にはブラウザの設定操作の学習がどうしても必要となります。
> テストのときはキャッシュをクリヤーしてから行うのが一般的ですが
> Webデザイナーは何でもキャッシュのせいにしたがるようで
> それも問題ですがキャッシュを消すことを習慣づけてもよいかも知れません。
> 
> 
IKD様ありがとうございます。
質問にあるとおりIEのキャッシュは
削除をしているつもりでしたが
no-cacheを付けないとだめなのですね。
試してみます
RE:httpの初期ページ KDM さん [ 2月24日(金) 11時3分 ]
IKD様おっしゃっるとおりでした。
IEにインターネットオプションから削除しても消えていなかったようです。
すみませんでした。ありがとうございました。
RE:httpの初期ページ シャリース さん [ 2月20日(月) 16時30分 ]
>ポート10010で設定し文書ディレクトリーもきちんと設定したつもりです。

HTTPサーバのポートを10010で設定した...と書いてありますが、
今回の設定がポート10010の場合、URLの設定はどのように指定しましたか。

通常、HTTPサーバのデフォルトのポートは80ですよね。
10010で設定した場合は、
http://サーバIP:10010/と指定していますか。
(→ポート指定をしないとポート80のINDEX.HTMLを見に行きます)

ハスしていたらごめんなさい。
RE:httpの初期ページ KDM さん [ 2月24日(金) 11時5分 ]
シャリース様、原因が初歩的なところにあったようで
大変ご迷惑おかけしました。
すみませんでした。
キャッシュが消えてなかったようです。
IEのインターネットオプションの削除では消えないものがあったようです。
オペレーションコンソールについて i5レガシー さん [ 2月14日(火) 17時8分 ]
以前、i5 V7R1で、Windows7PCにオペレーションコンソール(LANコンソール)を設定し、諸々の導入作業を行いま
した。その後、別のPC(Windows7)にオペレーションコンソール設定し、初期導入したPCと入れ替えたら接続できなくなりました
できなくなりました。IBMコールセンターに問い合わせたところ、LANコンソールになって、PCのMACアドレスをi
5が記憶している為、と言われ、言われるがままに操作パネルをごちゃごちゃと操作し、無事接続でき
ました。その時の操作はメモしてないのですが、V7R3でも同様なのでしょうか?また、同様であれば、手順書等
、手順書等あるのでしょうか?ご存知の方いらっしゃいましたら宜しくお願い致します。
RE:オペレーションコンソールについて ほにゃほにゃ さん [ 3月3日(金) 14時1分 ]
> 以前、i5 V7R1で、Windows7PCにオペレーションコンソール(LANコンソール)を設定し、諸々の導入作業を行いま
> した。その後、別のPC(Windows7)にオペレーションコンソール設定し、初期導入したPCと入れ替えたら接続できなくなりました
> できなくなりました。IBMコールセンターに問い合わせたところ、LANコンソールになって、PCのMACアドレスをi
> 5が記憶している為、と言われ、言われるがままに操作パネルをごちゃごちゃと操作し、無事接続でき
> ました。その時の操作はメモしてないのですが、V7R3でも同様なのでしょうか?また、同様であれば、手順書等
> 、手順書等あるのでしょうか?ご存知の方いらっしゃいましたら宜しくお願い致します。

コンソール接続トラブルの原因はいろいろあります。
パネル操作にも状況によって何種類かありますし、パネルの読み方も覚える必要あります。
ちゃんと探してませんがユーザー向けのマニュアルはないんじゃないですかね。
PC再起動を繰り返しても接続不可なら切り分け含め保守コールへ相談がいいでしょう。

あと、V7R3はIBM i Access Client Solutionsというソフトによる
LANコンソール接続以外は受け付けないですよ。すでにV7R3使ってるならその間違いはないかもしれませんが。。
RE:オペレーションコンソールについて i5レガシー さん [ 3月7日(火) 13時7分 ]
ほにゃほにゃ様

レスありがとうございます。

> PC再起動を繰り返しても接続不可なら切り分け含め保守コールへ相談がいいでしょう。

そうですね。下手に変なことして、余計トラブルを複雑にするよりも、原因切り分けが先ですね。
 
> あと、V7R3はIBM i Access Client Solutionsというソフトによる
> LANコンソール接続以外は受け付けないですよ。すでにV7R3使ってるならその間違いはないかも
しれませんが。。

クライアントアクセスではだめなのでしょうか?上記ソフトは、Windows10に限って、と理解して
いたのですが。。。。(まだ実際には触ってないので、ここの知識も無いのです)
RE:オペレーションコンソールについて ほにゃほにゃ さん [ 3月10日(金) 19時43分 ]
> ほにゃほにゃ様
> 
> レスありがとうございます。
> 
> > PC再起動を繰り返しても接続不可なら切り分け含め保守コールへ相談がいいでしょう。
> 
> そうですね。下手に変なことして、余計トラブルを複雑にするよりも、原因切り分けが先ですね。
>  
> > あと、V7R3はIBM i Access Client Solutionsというソフトによる
> > LANコンソール接続以外は受け付けないですよ。すでにV7R3使ってるならその間違いはないかも
> しれませんが。。
> 
> クライアントアクセスではだめなのでしょうか?上記ソフトは、Windows10に限って、と理解して
> いたのですが。。。。(まだ実際には触ってないので、ここの知識も無いのです)


お返事遅くなりすみません。V7R3のLANコンはACSじゃないとだめというのは仕様らしいのです。

https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/rzaq9/rzaq9.pdf

↑はV7R3の説明書です。
9ページ目(資料内でふられているページ数)に説明があります。

以下にその中の一文抜粋します。

>システムが 7.3 にアップグレードされると、IBMi Access for Windows コンソールは動作を継続しないことを知っておいてください。

知っておいてほしいそうです。。。。
RE:オペレーションコンソールについて i5レガシー さん [ 3月14日(火) 16時29分 ]
そうなのですか。。。。
クライアントアクセスは、V7R2までなのですね。
ACSはまだ触った事がないので、ちょっと心配です。
RE:オペレーションコンソールについて ほにゃほにゃ さん [ 3月30日(木) 20時38分 ]
返事遅くなりすみません。
ACSは仕事上色々触って試していますが、
慣れれば決して不便なソフトではないと思いますよ。
データ転送なんかは便利になっていますし。(印刷は・・・ですけども(--;))

コンソールもセットアップテストしたことあります。
手順がわかれば難しいことはありませんでした。

7.3が出てもうすぐ1年です。
クライアントアクセスが入れられないWindows10も少しずつ普及してきました。

保守の人たちも慣れて来た頃と思いますので
対応も心配ないのではないかなと思います。



RE:オペレーションコンソールについて i5レガシー さん [ 4月3日(月) 8時48分 ]
ありがとうございます。
少し、安心しました。

何分、古いASの知識だけでここまでやってきたものですから・・・。
バッチを流したいがメニュー入力画面で排他制御されている時 どうしよう さん [ 2月15日(水) 11時1分 ]
お世話になります。困っています。

ある人がメニュー画面の入力画面を
開きっぱなしにします。
他の人が違うメニュー番号でバッチを流したいのですが、
メニュー画面で排他制御しているため、
バッチを流すメニュー番号が選択出来ません。

こういう場合どうすべきでしょうか。

分かりにくい文章ですみません。

RE:バッチを流したいがメニュー入力画面で排他制御されている時 IKD さん [ 2月20日(月) 9時38分 ]
バッチ・ジョブを実行したいときにメニューで入力している人が
必ずしも離席しているとは限らず実際に入力操作中であるかも
しれません。
これは実際に人手によって確認するしか方法はありません。
そこで、

 (1) バッチ・ジョブの CLP で ALCOBJ が失敗したら
      「ジョブ xxxxxxxxxx のユーザー UUUUU でファイル FFFFFFF が使用中です。」の
       メッセージを出力して終了する。
       このメッセージで実際の状況を現地に問い合わせて確認することができます。

  (2) 入力プログラムの待ち時間などを調整する。

      次の A と B の両方を対策すればよいが B だけでも効果的である。

      A. 不要なレコード・ロックをしないようにPGMを修正する

          更新用のファイルのレコード・ロックは外しても更新時に
          再び再アクセス(CHAIN)して処理できるようであれば
          表示のときにはレコード・ロックはしないようにする。
     つまりできるだけ不要なレコード・ロックをかけないよう修正する。

      B 一定の待ち時間を調整する

          DSPF の EXFMT や READ 命令は永続待機であり、操作員が入力するまで
          待機し続けます。
          これを「最大レコード待機時間」(通常は WAITRCD :*NOMAX) を変更すると
          EOF と同じように DSPF でもエラーとなって放置を検出することができますので
          そのときは終了処理を行うように PGM も修正します。


 ... (1) と (2)の両方を行えば良いと思いますが (1)の処理を実装するのは
      結構、面倒です。
      (2) だけでも行っておいて (1)では ALCOBJに失敗したら「他で使用中です。」と
   いうメッセージを出力すれば、それは一定時間内の使用であるので
      放置によるレコード・ロックによるものではなく
   今回の運用の問題は避けることができます。
統合アプリケーションサーバ KDM さん [ 2月19日(日) 15時44分 ]
会社ではV6R1を使ってます。
基本RPGLEで開発、黒画面で運用です。
統合アプリケーションサーバをi navigatorで
作成(wasではなく)しました。

www/.../htdocs にindex.htmlを置いてます。
これをjspで動的ページを開くようにしたいので
すが、webappsディレクトリもなく、どこに
jspをおいたらよいか、また置いたjspに
どうやってアクセスさせたらよいか(urlに
どうかけば...)わかりません。

wasでアプリケーションサーバを作らないと
jspをうごかせないのでしょうか。

RE:統合アプリケーションサーバ ほにゃほにゃ さん [ 3月30日(木) 22時27分 ]
以前から気になっていた質問で、もうご覧になっていないかもしれませんが
こちらから質問させてください。

i navigatorで統合アプリケーションサーバ作成とは
どの項目からどのように作成されたもののお話でしょうか。

こちらが不勉強でしたら申し訳ない限りですが、
そういったものの作成はできないと認識しています。

作成できるのであれば、私も試してみたいです。
5250ハンドラーで シャリース さん [ 2月20日(月) 15時55分 ]
お世話になります。

当HPで5250ハンドラーの紹介を沢山していますが一つ教えて下さい。
24×80の画面制約から解放されると、入出力する項目も多くなりますね。

通常の画面プログラムは画面サイズに制限が有りますので
入出力項目が99個を超える事は無いと思いますが、
5250ハンドラーは画面サイズが大きくなるので入出力項目は100を超えて設定した場合
1画面、エラー標識でDSPATR(RI PC)を99個超えて設定したい場合の対応はどのように考えたら良いで
すか。
RE:5250ハンドラーで IKD さん [ 2月20日(月) 17時5分 ]
(1) SFLレコードを使う場合
       01-99 の標識で十分カバーできると思います。

(2) RECORD タイプでの入力の場合

      そのままですと最大 99個の標識までしか使用することが
      できません。
      IBM の DDSでは仕様上では最大256個まで入力可能とありますが
      標識99個以上の指定の方法については解説はありません。

     これに準拠するということになればそれまでですが
     実用上、AutoWeb で ILE-RPG の新たな標識域を用意しようと思います。
     これはとりあえず 2バイトの HEX の数をタイプ N (論理値) として
     定義します。
     DSPF の DDS には標識欄には 標識 X01 (=X'01')として記述すると
     2バイトですので 16X16= 256個までの論理値を表現することができます。
    この拡張は CRTEXDSPF で吸収して 5250ハンドラーで
    指定した論理値を検査することによって実現可能です。
    ( SEU では X01 の記述はエラーになりますが CRTEXDSPF では
       これを吸収することができます。)

    他にご要望やご意見がございましたらお聞かせください。
    よろしくお願いいたします。
RE:5250ハンドラーで シャリース さん [ 2月20日(月) 17時29分 ]
IKDさん、回答ありがとうございます。

IBMの仕様上、最大256個まで指定可能なのですね。
どのように利用するのか知りたい所ですね。

SFLレコードの場合、1レコード99を超える事はあまりない気がしますが、
RECORDタイプの場合は、充分あり得ると思っています。

具体的にAutoWEBでどう設定するのか、
詳細が決まりましたら情報の公開をお願します。
出来ればIBM標準に準拠して頂けるといいですね。
RE:5250ハンドラーで シャリース さん [ 2月20日(月) 17時37分 ]
5250ハンドラーの要望あります。

画面が大きくなった分、画面デザインやコーディングが非常に大変になりますね。
PC上で動くデザイナー的なツールが欲しいですね。
マウスでDBの項目を選んでドラッグ&ドロップで配置したり
座標を変更出来たりと出来るものがいいですね。
で、それが自動的にソースファイル→コンパイルとなればなお良し。

入出力項目を一つ一つ座標を指定していきながら、
コーディングしていたら日が暮れそうです。
そのようなツールを期待しています。
RE:5250ハンドラーで IKD さん [ 2月20日(月) 18時29分 ]
なるほど、それはいいですね。

SDA の代わりにマウスでドラッグ&ドロップで移動させていく方法は楽で
開発効率は各段と上がると思います。
ぜひそのデザイン機能を実現させたいと思います。

現在、計画のひとつにあるのはブラウザ上で印刷設計をマウスでデザインすると
いうものを計画しています。これに良く似た方法となるのではないかと思います。
同じ技術が使えるのではないかと思います。

別件ですがFAXにしてもお客様のご要望で最近、連続無介入でのFAX送信も実現致しました。
このお話も貴重なお話として是非、採用させて頂きたいと存じます。

ありがとうございました。

 - 現在、北海道、北陸、関東、関西、中国など多くのユーザー様よりお問い合わせを
   頂きまして誠にありがとうございます。
   この場をお借りしまして皆様には、お礼申し上げます。
   3/9日名古屋セミナーで発表できますことを楽しみにしております。
AS400全体のHDD容量の調べ方 AS400 初心者 さん [ 2月22日(水) 16時37分 ]
いつもお世話になっております。

使用しているAS400の全体のHDD容量を調べる方法は何かありますでしょうか?
STRSSTのメニューから現在の使用率はわかったのですが
全体でそもそもHDDの容量がどれだけあるのかわかりませんでした。
RE:AS400全体のHDD容量の調べ方 IKD さん [ 2月23日(木) 9時14分 ]
WRKSYSSTS : システム状況の処理 コマンドで見ます。

 WRKSYSSTS + [実行] で5250画面の右上に

  システム ASP ............... xxx G (ギガバイト)
  システム ASP 使用率 (%) .... xx.x % (使用率 % )

 使用率やHDD容量を調べるのに SSTツールを使うことはしません。
RE:AS400全体のHDD容量の調べ方 AS400 初心者 さん [ 2月23日(木) 10時21分 ]
> WRKSYSSTS : システム状況の処理 コマンドで見ます。
> 
>  WRKSYSSTS + [実行] で5250画面の右上に
> 
>   システム ASP ............... xxx G (ギガバイト)
>   システム ASP 使用率 (%) .... xx.x % (使用率 % )
> 
>  使用率やHDD容量を調べるのに SSTツールを使うことはしません。
> 

ありがとうございます!!
こんな便利なコマンドがあったんですね
大変勉強になりました。
いつもご教示いただきありがとうございます。
IFS領域のwindows共有 KDM さん [ 2月22日(水) 21時49分 ]
V6R1を使用している者です。
windowsPCからAS400のIFS領域を共有で見ようと思ってます。
QIBMなど一部のディレクトリは操作できるのですが、/www/INTAPPSVR
など wwwは見ることができません(QSECOFRで認証を答えても表示されません)
どうしたら見ることができるのでしょうか。

htmlファイルをアップしたいと思ってます。

よろしくお願いします。

RE:IFS領域のwindows共有 KDM さん [ 2月23日(木) 17時5分 ]
iナビゲーターからできたのですがエミュレータで
設定する箇所がわかりません。ちなみにiナビゲーターでは
ファイルシステム→統合ファイルシステム→rootで
一覧表示し、該当フォルダーで右クリックから "供用の作成"
でした。

どなたかエミュレータから設定する場所を教えていただけま
せんでしょうか。

よろしくお願い致します。
RE:IFS領域のwindows共有 IKD さん [ 2月23日(木) 22時33分 ]
IFS共有はネット・サーバーが行いますが共有化の設定コマンドはありません。
iSeriesナビゲータによる設定のみです。

どうしてもやるなら API: QZLSADFS  の使用が必要です。
(弊社では ADDIFSSHR というコマンドを提供していますが )

次に IFS へのアップロードは IFS共有へのコピーは
機密保護上、好ましくないので Ftpを使うのだ一般的です。
FFFTP や DOSコマンド・プロンプトのFtpコマンドに精通しておく
必要があります。


-- Webだからと言ってJavaやPHPが必要なわけではありません。
   オープン系では C言語に比べると Java のほうがマシだからと
   いう理由で採用されているからに過ぎません。

   Webには特殊なスクリプトやJSP & Servletが要ると誤解されていたのは
   昔の話で今では米国ユーザーで Javaで Web開発するという話はありません。
   PHP や delphi なんかのスクリプトが必要だというものは売り手のベンダーが
   持ち出した話に過ぎません。
  これで多くのIBMユーザーが苦労してきました。
  今の現状からJavaで開発できるようになるには少なくとも3?5年は
   かかると思います。

   IBM i にはRPGという最も適した開発効率のよい言語があります。
   オープン系の真似をするよりもRPGを生かすことを考えたほうが
   自然であると考えます。
  Java も RPG も出力する原理は同じです。
RE:IFS領域のwindows共有 KDM さん [ 2月24日(金) 11時17分 ]
IKD様ありがとうございます。
QZLSADFS・・・ありました。APIを使えば結構なことができるということで
無知でお恥ずかしい限りです。

javaの件も、過去の私の投稿を参照していただいたようでありがとうございます。

RPGでweb開発できないことはない、ということでしょうか。

頻繁にjavaを使おうとしている理由に、会社でjavaで作成された別のサーバーの
システムがあるので合わせて扱えるようになれれば、みたいなことを考えてました。

RPGでのweb開発・・・道のりと文献の数と考慮するといかがなものでしょうか。

このままだとRPGでのWEBを覚えている間に 他の担当がjava(別のサーバーに構築)
で作成したものがどんどん増えて、気が付けば会社にとって私が存在価値がなくなって
しまいそうです。

そもそも そんなものに流される必要はない訳ですが・・・わかってます。
増えて
RE:IFS領域のwindows共有 IKD さん [ 2月24日(金) 17時14分 ]
ネット・サーバーのAPIは一般的には知られていませんので
ご存知なくても問題はありません。

RPG では出力に印刷スプールを出力します。
これと同じようにWeb適用業務というのは 印刷スプールの代わりに
HTMLを出力するだけです。
JSP & Sevlet も同じです。
RPG では出力したい内容を直接、記述すればそのとおりに
出力されます。HTMLも同じです。(当たり前のことですが)
RPGによるWeb開発は HTMLを出力するプログラムを書くことだけです。
他にはありません。出力仕様書に HTMLを書けばそれで終わりです。

しかしJSP & Sevlet は HTMLを出力するといっても少し異なります。
まずこのような結果のHTMLを出力したいとなると
JavaScript を含む出力結果のHTMLを手動で作成します。
(しかしこのHTMLはPGM としては全く使用しません。)

次にこのHTMLが出力されるような HTML に近いJSPを作成して
Servlet のロジックを作成して希望のHTMLが出力されるように
Servlet ( Java ) を作成します。

JSP が雛型でそれに入れるロジックがServlet(Java)です。
Java を学習しただけでは JSP & Servlet は開発できません。
Java を十分学習して自由に動かせるようになって次にHTMLを
学習して独力でHTML+ JavaScriptを作ってから初めて
Servlet を作ることができます。
つまりこのような長い道のりが必要であることと雛型のHTMLを
用意しなければならないとは恐ろしく開発効率が悪いとは思いませんか?
つまりは二重の開発が必要となります。
IBM XMLブリッジもこの手法です。

PHP とは JSPの中にServeletを埋め込んだようにものです。
やさしいように見えますが 皆さんが開発されている
IBM i の法人の業務プログラムのほうが雑誌に紹介されている学習用の
JSP よりはるかにレベルが高いのです。
PHP や JSP ではRPGのような高度な処理はできません。

さてRPG用のWeb開発手法といえるものは大して難しいものではなく
RPG がわかればすぐにでも開発することができます。( CGI )
しかし IBM i の開発者が Java をやるとなると降りていって
学習するのにはるかに時間がかかります。

他部門でJavaの開発している部隊から見るとリレーショナル・データベース
(物理ファイル/論理ファイル)を駆使しているあなたのほうが
実は、はるかに雲の上の存在です。
Java は元々が制御言語ですからデータ・ベースというと彼らは何やら
すごい難しいものを楽々と操作しているように見えているはずです。

c言語から見てもRPGはこんなに小さくてコンパイルも実行も速いのは
不思議なくらいです。

RPG開発は大いに誇りを持って頂いてよいかと思います。
RE:IFS領域のwindows共有 KDM さん [ 2月25日(土) 10時39分 ]
IKD様、ありがとうございます!

javaの人間が言ってました(RPGと比較して発言されたものではありません)。
 便利ツールがあって 使い勝手の良いものが作れる。
 極端ですが例えばカレンダー機能だとか表示ソートボタン?だとかもそう。
効率もシーサーで驚くほど早く作れる、とか(サポートは切れてますが)。

CGIでは機能が集約されたような部品(ライブラリー?)はそろっているものでしょうか。
であればCGIが開発効率も良いし、おっしゃるようにそちらで作成した方が絶対良いと思
います(iseries上のjava開発ではそろっているのか定かではありません、あくまでPC
サーバーでは利用しているらしいです・・・)


RE:IFS領域のwindows共有 AS400 初心者 さん [ 2月25日(土) 16時57分 ]
横から失礼いたします。
非常に興味深い内容で拝見しています。

ASのWeb化には私もとても興味がありまして
KDM様の以前の書き込みの「無償で構築してちょっとした更新のアプリを動作
させてみたいだけ」
というところと同じことを思っていました。


今回の書き込みの件名とは合わないかもしれませんが、
色々調べていますとこんな内容も見つかりました
何かの参考になりますでしょうか?
http://hoboweb.blog25.fc2.com/blog-entry-18.html

RE:IFS領域のwindows共有 KDM さん [ 2月25日(土) 18時46分 ]
>初心者 さんありがとうございます。
このサイトのサンプル、よかったです。
CGI、もちろん試させていただきます。

CGIはもちろんしますけど、今ZEND
Server Community Editionを
インストール中です。

ここでphpも少し作ってみようと思います。

またよろしくお願いします!
5035 5026 を扱える環境は KDM さん [ 2月27日(月) 15時7分 ]
ユーザーとライブラリー、PF、プログラムの関係で質問させてください。

会社ではCCSIDが5035、5026の環境を使い分けているようです。

・ライブラリーでCCSIDが決まっているのでしょうか。
 ライブラリーの中のファイルで決まっているのでしょうか

・PFは生成ユーザーで決まりますでしょうか(5035ユーザーで生成したものであれば半角英数が扱
扱えるなど)

基本的な部分で大変おはずかしいのですが…よろしくお願いします。

RE:5035 5026 を扱える環境は IKD さん [ 2月28日(火) 9時8分 ]
システム値 QCCSID が 65535 (=白紙の意味) で、なおかつ
国コード(QCNTRYID)がJP (=日本) であれば
起動したジョブは自動的に CCSID は 5026 (カナ優先)となります。
( これが IBM i が初期導入されたときの設定です。)

QCCSID が 65535 以外の値に設定されていれば
起動ジョブはその値となります。

また CHGJOB CCSID(5035) のようにCLPなどで実行している場合は
ジョブのCCSID は 5035 (英小文字優先) となります。

ちなみに「ジョブのCCSID」とは DSPJOB で表示される「ジョブ定義属性表示」の
「省略時のコード化文字セット ID」のことであり
「コード化文字セット ID」のことではありません。

ファイルのCCSIDは一般的には、そのファイルを作成したソース・ファイルに
指定されているCCSIDによって決まります。
ソースがないときはファイル作成時に指定します。(CRTPF)

プログラムのCCSIDもソース・ファイルのCCSIDによって決まります。
プログラムのCCSIDというのはプログラム内に使用されている固定の文字列を
どのようなCCSIDで解釈するか、ということです。
プログラムが実行時にファイルの読み方を変えることはありません。
例えばプログラム内で英小文字を記述したいのであれば
ソース・ファイルは CCSID : 5035 で作成します。

ご参考までに特約店や一部のSEがよく言う「CCSID: 1399 はユニ・コードです」は誤りです。
IBM のレターの和訳のミスのために 1399をユニコードであると
信じている人が゜いますがこれは誤り。

例えば UTF-8 のCCSIDは 1208, UTF-16 の CCSIDは 1200 です。
またユニコードの漢字は3バイト、EBCDICの漢字は 2バイト。
同じであるはずがありません。

また 5250エミュレータのキー・ボード操作で Ctrl+F3キーで
CCSIDが変わるとの誤解もありますがこれも誤り。
エミュレータの変換テーブルが変わるだけで
ジョブのCCIDが変わることはありえません。

RE:5035 5026 を扱える環境は KDM さん [ 2月28日(火) 17時22分 ]
IKD様大変分かりやすい説明ありがとうございました。
和訳の誤解までとは…です。

FTPのコマンドを作成するRPG(半角英数のパスワードをPFに
書き出すプログラム)があります。コンパイルする時
わざわざ5035ユーザーで実行していましたが、ご回答からすると
これは意味がないということでしょうか・・・

あるのはその出力される側のファイルを作成する時ということ・・・


RE:5035 5026 を扱える環境は KDM さん [ 2月28日(火) 18時15分 ]
LFは物理次第と考えてよろしいでしょうか。
RE:5035 5026 を扱える環境は シャリース さん [ 2月28日(火) 20時3分 ]
最近のIBMiのデフォルトCCSIDは5035の様です。
最近購入したIBM iをDSPSYSVAL SYSVAL(QCCSID) で確認すると5035になっていました。

RPGで作成したFTPコマンドを5035で動かす意味は有りますよ。
多分、IBMi側でFTP転送記述を作成し、それをSTRPCCMDで
PCに実行させてるのではないかと推測しますが、
FTPのコマンドスイッチは小文字で無いと正しく動きません。
RE:5035 5026 を扱える環境は KDM さん [ 3月1日(水) 1時59分 ]
シャリースさまありがとうございます。
そういえば5026ユーザーで実行するとNGで、
5035のユーザーで実行するときちんと転送
できるという経験あります。

転送記述を作成する部分には関係してくるのでしょうね。
RE:5035 5026 を扱える環境は ほにゃほにゃ さん [ 3月4日(土) 14時20分 ]
> 最近のIBMiのデフォルトCCSIDは5035の様です。
> 最近購入したIBM iをDSPSYSVAL SYSVAL(QCCSID) で確認すると5035になっていました。
> 
> RPGで作成したFTPコマンドを5035で動かす意味は有りますよ。
> 多分、IBMi側でFTP転送記述を作成し、それをSTRPCCMDで
> PCに実行させてるのではないかと推測しますが、
> FTPのコマンドスイッチは小文字で無いと正しく動きません。

シャリース様
横入り失礼します。
議題の本筋とは関係ないのですが、CCSIDデフォルト値について
誤解をされていらっしゃるようなので拙文ですが説明させてください。

まずシステム値QCCSIDのデフォルト値はバージョンで変化しません。
これは購入されている一次言語(OSのメインの言語を購入時に決める)に左右されます。
現在日本語は2962と2930の2つがリリースされており、
それぞれを導入した際のデフォルト値はIBMのサイトで公開されています。
2962ですとQCCSIDは65535、2930ですとQCCSIDは1399になります。
5035がデフォルト値の日本語ライセンスは存在しません。

2962
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/nls/rbagsjapkatandbcs.htm

2930
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/nls/rbagsjapanese.htm

DSPSYSVAL SYSVAL(QCCSID) OUTPUT(*PRINT)で実行してみてください。
デフォルトの値と現在の値の両方が記載されたスプールファイルが生成されます。
おそらく65535になっていると思います。デフォルト1399であれば
あえてそれより文字範囲の狭い5035に変更することはないと思うので。

シャリース様の文章で最も気になった点は、「最近購入したIBM iを?確認すると」という部分です。
QCCSIDの変更は文字を扱うDBサーバなのですから、大変重要な変更です。
5035ということは、間違いなく誰かが手動で変えているはずですが、
シャリース様の知らないうちに(=ユーザーに通達していない状態で)何者かが変えたというのはまずいと思います。

ASにWASやZENDを入れる際に前提条件がQCCSID 5035または1399とありますが、これは必須ではありません。
QCCSIDが変更できないユーザーのための、「最低限CCSIDを変更しなければならない箇所」
というのを必ずメーカー側が情報を持っているはずなんです。
シャリース様の文章を読んで私が疑ってしまうのは、
「ASの知識の乏しい業者がユーザーの依頼を受けてWAS等を導入し、説明書にしたがって詳細な調査もなく無断でQCCSIDを変更した」
という状況です。
業者側すらもシステム値のことを理解しないまま勝手に変更している場合があるのです。
全国的に有名な会社であってもASに関しては知識が非常に乏しいパターンもあります。
また、ASのプログラミングに強い会社でもOSの仕組みへの理解は素人並な事もあります。
ASの構築専門のSEがいる業者ならば、無断でシステム値変更はまずありえません。

「よく考えてみればバージョンアップ時に事前にCCSID変更の通知はあり、半角カナ英数小文字の文字化けに関しては考慮の上だった」
等であれば問題ないのですが、全て作業が終わった後の報告書のみにシステム値変更の記載があるという話でしたら、その業者は今後疑ったほうがいいと思います。
RE:5035 5026 を扱える環境は ほにゃほにゃ さん [ 3月4日(土) 14時35分 ]
> > 最近のIBMiのデフォルトCCSIDは5035の様です。
> > 最近購入したIBM iをDSPSYSVAL SYSVAL(QCCSID) で確認すると5035になっていました。
> > 
> > RPGで作成したFTPコマンドを5035で動かす意味は有りますよ。
> > 多分、IBMi側でFTP転送記述を作成し、それをSTRPCCMDで
> > PCに実行させてるのではないかと推測しますが、
> > FTPのコマンドスイッチは小文字で無いと正しく動きません。
> 
> シャリース様
> 横入り失礼します。
> 議題の本筋とは関係ないのですが、CCSIDデフォルト値について
> 誤解をされていらっしゃるようなので拙文ですが説明させてください。
> 
> まずシステム値QCCSIDのデフォルト値はバージョンで変化しません。
> これは購入されている一次言語(OSのメインの言語を購入時に決める)に左右されます。
> 現在日本語は2962と2930の2つがリリースされており、
> それぞれを導入した際のデフォルト値はIBMのサイトで公開されています。
> 2962ですとQCCSIDは65535、2930ですとQCCSIDは1399になります。
> 5035がデフォルト値の日本語ライセンスは存在しません。
> 
> 2962
> https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/nls/rbagsjapkatandbcs.htm
> 
> 2930
> https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/nls/rbagsjapanese.htm
> 
> DSPSYSVAL SYSVAL(QCCSID) OUTPUT(*PRINT)で実行してみてください。
> デフォルトの値と現在の値の両方が記載されたスプールファイルが生成されます。
> おそらく65535になっていると思います。デフォルト1399であれば
> あえてそれより文字範囲の狭い5035に変更することはないと思うので。
> 
> シャリース様の文章で最も気になった点は、「最近購入したIBM iを?確認すると」という部分です。
> QCCSIDの変更は文字を扱うDBサーバなのですから、大変重要な変更です。
> 5035ということは、間違いなく誰かが手動で変えているはずですが、
> シャリース様の知らないうちに(=ユーザーに通達していない状態で)何者かが変えたというのはまずいと思います。
> 
> ASにWASやZENDを入れる際に前提条件がQCCSID 5035または1399とありますが、これは必須ではありません。
> QCCSIDが変更できないユーザーのための、「最低限CCSIDを変更しなければならない箇所」
> というのを必ずメーカー側が情報を持っているはずなんです。
> シャリース様の文章を読んで私が疑ってしまうのは、
> 「ASの知識の乏しい業者がユーザーの依頼を受けてWAS等を導入し、説明書にしたがって詳細な調査もなく無断でQCCSIDを変更した」
> という状況です。
> 業者側すらもシステム値のことを理解しないまま勝手に変更している場合があるのです。
> 全国的に有名な会社であってもASに関しては知識が非常に乏しいパターンもあります。
> また、ASのプログラミングに強い会社でもOSの仕組みへの理解は素人並な事もあります。
> ASの構築専門のSEがいる業者ならば、無断でシステム値変更はまずありえません。
> 
> 「よく考えてみればバージョンアップ時に事前にCCSID変更の通知はあり、半角カナ英数小文字の文字化けに関しては考慮の上だった」
> 等であれば問題ないのですが、全て作業が終わった後の報告書のみにシステム値変更の記載があるという話でしたら、その業者は今後疑ったほうがいいと思います。
> 


補足ですが、システム値の中でも業務への影響度が低いものに関しては軽い説明や報告というのはあると思います。
ただ、QCCSIDの場合は一般ユーザーが利用するジョブの文字解釈にも関わるので、通常はユーザーへの説明や注意はあるものと思います。
RE:5035 5026 を扱える環境は シャリース さん [ 3月16日(木) 14時8分 ]
ほにゃほにゃさん、貴重な情報ありがとうございます。
また、コメントが付いている事が気が付かずにお礼が遅れまして申し訳ございません。

DSPSYSVAL SYSVAL(QCCSID) OUTPUT(*PRINT)で確認した所、
確かに出荷時の値は、"65535"でした。(現在の値は5035)
AS400リプレースにあたり、同じ環境になる様に業者には依頼しましたので
おそらく前機のCCSIDが何処かのタイミングで5035に変更した(された?)のではないかと推測します。

私もCCSIDに関しては今一理解ができていないにもかかわらず、
他システムとの連携で機種依存文字を扱えるように1399のDBを作ったり、
Apacheを立ててRPGでCGIを動かし英数小文字を扱ったりと
試行錯誤でTRYしている時に私自身が変更しているかもしれません。

今の所、問題は発生していませんが、
今一度CCSIDの設定の確認と整理が必要との認識はしております。     
RE:5035 5026 を扱える環境は ほにゃほにゃ さん [ 3月30日(木) 21時54分 ]
シャリース様、
お返事ありがとうございます。
怒涛の長文を投げてしまったので、無視されて当然かと思っていました。。

問題発生していないのであれば、よかったです。
結局は、文字化けによる業務の混乱が一番の問題で、
それさえおこっていなければ、なんでもいいですから。

Apacheなど利用を考え始めると65535や5026でつまづく事が多いですよね。
その場合の最低限のCCSID変更箇所や注意点、一応わかるのですが、
さすがに仕事絡み過ぎるのでここでは記載しないでおきます^^;
IBMや、IBMのかわりにサポートしてくれる業者のほとんどなら、知っていると思いますよ。


5026時代に英小文字、半角カナ、\マークなどをDBに使っていましたら、
表示や印刷の状況を、こっそり確認しておいたほうがいいかもしれません。

本当にお返事ありがとうございました。
RE:5035 5026 を扱える環境は AS400 初?E??Eemail さん [ 3月2日(木) 10時19分 ]
> ユーザーとライブラリー、PF、プログラムの関係で質問させてください。
> 
> 会社ではCCSIDが5035、5026の環境を使い分けているようです。
> 
> ・ライブラリーでCCSIDが決まっているのでしょうか。
>  ライブラリーの中のファイルで決まっているのでしょうか
> 
> ・PFは生成ユーザーで決まりますでしょうか(5035ユーザーで生成したものであれば半角英数が
が扱
> 扱えるなど)
> 
> 基本的な部分で大変おはずかしいのですが…よろしくお願いします。
> 
> 
ライブラリーの移行について AS400 初心者 さん [ 2月28日(火) 16時5分 ]
RSTLIB で、1つ又は2つ前のバージョンへの復元は可能だが、3つ前以上は不可と聞きました。
逆に、上位バージョンについても、このような制約はあるのでしょうか?
初歩的な質問で申し訳ありませんが、よろしくお願いします。
RE:ライブラリーの移行について ほにゃほにゃ さん [ 3月1日(水) 18時34分 ]
> RSTLIB で、1つ又は2つ前のバージョンへの復元は可能だが、3つ前以上は不可と聞きました。
> 逆に、上位バージョンについても、このような制約はあるのでしょうか?
> 初歩的な質問で申し訳ありませんが、よろしくお願いします。

実際にV5R1→V7R3復元経験ありますが、制限は特に無いんじゃないでしょうか。
下のバージョンに復元するにはSAVLIBのときにターゲット・リリースを指定しなければならず、それが2つ下までだからなので、
どうしても移動したければ2つ下に移動したあともう一回そこでターゲット・リリースを指定して保管とやれば
3つ前以上へデータを持っていくこともできますよ。
RE:ライブラリーの移行について AS400 初心者 さん [ 3月2日(木) 8時37分 ]
ほにゃほにゃさん
V5R1→V7R3復元聞いて安心しました。下バージョンも何回かに分ければ良いんですね。
ありがとうございました。
OVRDBFについて 新人さん さん [ 3月5日(日) 16時54分 ]
OVRDBFはファイルの一時変更するためのコマンドと書かれてましたが、
OVRDBFをするメリットは何でしょうか?。
RE:OVRDBFについて ゴロっち さん [ 3月6日(月) 11時24分 ]
> OVRDBFはファイルの一時変更するためのコマンドと書かれてましたが、
> OVRDBFをするメリットは何でしょうか?。

私はよく使っているのが、帳票等のデータ抽出のワークファイルなどでメンバーを追加して
OVRDBFを使用してそのCLでCALLされるプログラムでは
そのメンバーにデータを書いたり削除したりしています。

なぜなら、同じプログラムを使用している人が複数いる場合に同じデータベースへ追加・更新・削除を
おこなうと抽出のデータがおかしくなり正しい結果が得られないので。

あとは違うライブラリーの同じファイル名を読むときに一時的にファイル名を変更するときにも使用しています。
JOBとプログラムの関係 初心者 さん [ 3月5日(日) 19時24分 ]
JOBとプログラムの関係性があまり理解できていません。
疑問に思っていることを下記にまとめました。

?JOBとは一個単位の実行プロセスでJOBが投入された後にプログラムが実行されるのでしょうか?
?プログラムを実行するタイミングでJOBは投入されるのでしょうか?。
?プログラム(バッチ処理やトリガー処理など)内にJOBの投入の記述を組み込む必要はありますか?

全くの初心者なのでよろしくお願いいたします。
RE:JOBとプログラムの関係 IKD さん [ 3月6日(月) 18時1分 ]
IBM i の JOBとは Windows のプロセスと同じことです。
言葉が違うだけです。

サイン・オン(=Windows のログオン) で対話式のジョブが開始されて
サイン・オフ(=Windowsのログアウト)で対話式ジョブ(=Windowsのプロセス)
が終了します。

JOB と言及されているのはSBMJOBコマンドでバッチ投入する話だと
思いますがそのJOBで実行プログラムを指定します。
Windows でもプログラム内にプロセスの記述なんかはしないですね。
その逆はあっても。

恐らく知りたいことは質問には書かれていないのではないでしょうか?
知りたいことを直接、記述されたほうが回答もスムースです。
PCOMM5250の接続について ゴロっち さん [ 3月6日(月) 11時10分 ]
AS/400と5250とのIP接続で現場のフォークリフトの端末を乗せて使用しているのですが、
PCOMMの前バージョン(3270+5250のV6.01)では接続が切れて再接続してもリンクが確立してサインオン画面が
表示されるのですが、
新バージョン(5250のV6.16)では、サインオン画面にならず真っ黒の画面のままでAS/400のWRKACTJOBか
ら一度終了させてから再接続しています。

何か設定があるのでしょうか?
ちなみにセッションパラメーターのワークステーションIDは前バージョンも新バージョンも入力されています。

解られる方、教えてください。
お願いします。
RE:PCOMM5250の接続について ほにゃほにゃ さん [ 3月10日(金) 20時54分 ]
> AS/400と5250とのIP接続で現場のフォークリフトの端末を乗せて使用しているのですが、
> PCOMMの前バージョン(3270+5250のV6.01)では接続が切れて再接続してもリンクが確立してサインオン画面が
> 表示されるのですが、
> 新バージョン(5250のV6.16)では、サインオン画面にならず真っ黒の画面のままでAS/400のWRKACTJOBか
> ら一度終了させてから再接続しています。
> 
> 何か設定があるのでしょうか?
> ちなみにセッションパラメーターのワークステーションIDは前バージョンも新バージョンも入力されています。
> 
> 解られる方、教えてください。
> お願いします。


状況がよく見えないのですが、新バージョン(PCOMM V6.0.16)だと
一回途切れても自動再接続されないということでしょうか。
その場合、IP設定画面の「自動再接続」にチェックが入っていないだけではないでしょうか?

ソフトのバージョンの違いでAS上のジョブの残り方が異なるということはありえません。

もし、どう切り分けてもソフトのせいで異なるというのなら
そのPCOMMおかしくなってしまっているかもしれません。
Windows7をサポートしないPCOMMを入れてうまくいかなくなり、
それを削除→新しいPCOMMを入れるという流れで意味不明なバグに見舞われた例をいくつか見ました。
円記号付きのメンバー名について じどら さん [ 3月10日(金) 15時11分 ]

クライアントでFTPを行う際に、円記号付きのメンバーが取得できません。

GET AAALIB/QCLSRC.\00001 C:\work\00001.RPG

501 CHARACTER (\) NOT ALLOWED IN OBJECT NAME.

どの様にすれば取得できるのでしょうか?
RE:円記号付きのメンバー名について ほにゃほにゃ さん [ 3月10日(金) 20時35分 ]
> 
> クライアントでFTPを行う際に、円記号付きのメンバーが取得できません。
> 
> GET AAALIB/QCLSRC.\00001 C:\work\00001.RPG
> 
> 501 CHARACTER (\) NOT ALLOWED IN OBJECT NAME.
> 
> どの様にすれば取得できるのでしょうか?


$マークにしてやってみると成功しませんか?
本来はASのメンバーの名付けには¥マークは使えません。
文字化け状態の$を、¥としていつも見ていらっしゃるんだと思います。

ひどい話なんですが昔ながらの日本語入力設定ホストコードページ930+CCSID5026だと
$は常に文字化けして¥に見えてしまうんですよね。
ホストコードページ939+CCSID5035なら¥じゃなく$に見えるはずです。

実はAS400の説明書には命名に¥が使えるなんて一言も書いてないんですよ。$は書いてありますけど。
みんな「¥」だと思って使っているだけなんです。

ここまで書いて$でFTPして取得できなかったらちょっと恥ずかしいですが。。ご参考まで。
AS400のCLからpowershellを起動する方法 AS400 初心者 さん [ 3月11日(土) 17時31分 ]
いつもお世話になっております。
AS400のCLからpowershellのプログラムを直接コールする方法がもしあれば教
えて下さい

STRPCCMDでBATファイルのように指定すれば、CLから起動出来るかと思ったの
ですが
実行してみても黒画面は表示されますが処理は動きませんでした。
(powershell自体は簡単なテストメールを送る処理になります)

---------------------------------------------
// 現在動作しているBATコールのCL記述
STRPCCMD PCCMD('C:\HOGE\HOGE.BAT') PAUSE(*NO)

// 試しに作成したpowershellコールのCL記述
STRPCCMD PCCMD('C:\HOGE\HOGE.PS1') PAUSE(*NO)
---------------------------------------------
RE:AS400のCLからpowershellを起動する方法 高森 正仁 さん [ 3月14日(火) 14時54分 ]
投稿されてから時間がたっているので解決されているかもしれませんが、

「C:\HOGE\HOGE.PS1」を直接ダブルクリックしたとき、想定される処理は
実行されており正しい結果は得られていますでしょうか?
RE:AS400のCLからpowershellを起動する方法 AS400 初心者 さん [ 3月14日(火) 15時58分 ]
コメントありがとうございます。
ダブルクリックではPowershellのため動かないのですが、
対象のHOGE.PS1を右クリックから「Powershellから実行」を選んだ際には
想定通りの動作(メール送信)がされていました。
RE:AS400のCLからpowershellを起動する方法 高森 正仁 さん [ 3月15日(水) 11時3分 ]
CL記述ではなくWindows環境の問題だと思います。
以下について確認してみてはいかがでしょうか。

・PowerShellの実行ポリシー
・CLでPowerShellのEXEを指定して実行
ユーザーがあるライブラリーのみ見ることが出来るようにするには? AS400 さん [ 3月22日(水) 11時47分 ]
すみません、初心者です。

あるユーザーがあるライブラリー1つだけ見ることが出来るようにするには
どのようにしたら良いでしょうか?

よろしくお願いします。
RE:ユーザーがあるライブラリーのみ見ることが出来るようにするには? IKD さん [ 3月24日(金) 18時5分 ]
ご質問の内容はほとんどの IBM i ユーザーなら
ご存知のはずですが、それでも回答が出てこないのは
具体的にやりたいとことを述べられていないからです。

よくあるケースですがやりたいことはわかっているのに
内容をわざわざ置換えて抽象的な質問に変えてしまって質問すると
回答は出てきません。

回答の出やすいように考えて質問されるのも
ひとつの方法です。
RE:ユーザーがあるライブラリーのみ見ることが出来るようにするには? 初心者 さん [ 4月5日(水) 18時39分 ]
すみません返信できずに。

自分でもうまく表現できず、抽象的になってしまいました。

お客様にテストライブラリーのみ見ることが出来るように
したかったようです。

それ専用のユーザーを作成すればよいのでしょうか。

またわかりにくければご指摘ください。
追加や削除が出来ない照会限定のアカウント作成方法 AS400 初心者 さん [ 3月23日(木) 16時53分 ]
いつもお世話になっております。

外部からFTP経由でCLをコールしたり、PFの照会を行うことしか出来ないような
ユーザーアカウントの作成方法はありますでしょうか?

データ、ファイル、ライブラリの追加や削除が不可で
CLやRPGのコール、SQLでのデータ抽出のみが許可されているアカウントになり
ます。
機密保護をレベル40にする となりのSE さん [ 3月25日(土) 11時22分 ]
PCOOM経由と なんら 変わりません。

RE:機密保護をレベル40にする AS400 初心者 さん [ 3月27日(月) 19時43分 ]
コメントありがとうございます。
機密保護レベルで設定出来るというのは知りませんでした。

USRPRFに対して機密保護レベルを設定する方法を調べてみます。
ありがとうございました。
USEPRFでは無い となりのSE さん [ 3月27日(月) 23時54分 ]
機密保護が活動すると すべての一般ユーザーは、全てが不許可に、変わります。

(業務に支障が出るので、慎重な準備が必要です。)
(QSECOFR は 当然対象外です)

次に PFひとつひとつに 見て良いユーザーを 登録します。

ツールが無いと、膨大な作業量です。

ともあれ、機密保護の手引きを読んでください。   
RE:USEPRFでは無い ほにゃほにゃ さん [ 3月30日(木) 21時29分 ]
黒画面にサインオンさせたくない場合、
ユーザープロファイルの初期メニューに*SIGNOFFを指定します。
これで、サインオンはできないけれどFTPはできるユーザーになります。

また、QSECURITYが30あれば、40にあげなくても、権限による制限をおこなうことができます。

対象のユーザープロファイルに特殊権限*ALLOBJがないことを確認した上で、
さわらせたくないライブラリや
実行させたくないコマンドに
その特定のユーザーの*EXCLUDEをつけてあげるのが一番小規模な変更になると思います。
WRKOBJ オブジェクト名orコマンド名
で実行し、2=権限の編集から、F6=新ユーザーの追加 です。
*EXCLUDEになったオブジェクトやコマンドは、そのユーザーから見ると「存在しないもの」になります。
(見つからないというエラーになります)

お試しください。
RE:USEPRFでは無い AS400 初心者 さん [ 3月31日(金) 12時0分 ]
詳細に教えていただきありがとうございます。
コマンド自体に権限設定をしていくということも出来るんですね。
こんな方法があったとは、、大変勉強になりました。

ありがとうございました。
社内に取り入れたいと思います。
RE:USEPRFでは無い ほにゃほにゃ さん [ 4月1日(土) 23時13分 ]
AS400 初心者 さん
お返事ありがとうございます。

コマンドの権限変更を行う場合は、
権限変更の記録をきちんととっておいてください。

私から提案をしておいて、ですけども、
QSYSオブジェクトに対するこういったちょっとした権限変更は
引継ぎの対象から漏れやすく注意が必要です。

リプレイス時に権限を回復できていなかった場合や、
マシン故障で変更前のフルバックアップからOSを戻した時に
いつも通り動かずに混乱します。

くれぐれもご注意くださいませ。

メールを受信したらCLを実行 AS400 初心者 さん [ 3月30日(木) 16時56分 ]
いつもお世話になっております。

メールを受信したらCLを実行する、であるとか
メールを受信したら添付されているCSVのデータをPFに取得する、などの
仕組み作りはAS400で可能でしょうか?

また他の言語を利用すればASと連携させて上記のような仕組みが構築出来るの
であれば、
どのような言語がAS400と連携しやすいのでしょうか?
RE:メールを受信したらCLを実行 ほにゃほにゃ さん [ 3月30日(木) 22時19分 ]
「ASで異常があったら、ASから担当者へメール送信」というパターンはよく聞きますけど
メール受信でCLキックって珍しい感じがします。

具体的にどのような時に誰がどういう形でメールし、
そしてどんなCLをキックされたいのでしょうか。
ちなみにメール受信は、AS400上での受信ということですか?
(それも珍しいような。。何かのアプリいれてます?手動で設定されてるのかな。。)

そもそも、キックのトリガーがメール受信であることは要件定義において必須でしょうか。

もし、メール受信以外を利用したキックに変えられるならば、
解決方法の幅が広がるように思います。

PGM言語についてはあまり詳しくないので、他の方の回答をお待ちしています。
RE:メールを受信したらCLを実行 AS400 初心者 さん [ 3月31日(金) 10時23分 ]
想定している状況としましては、
 1.取引先からCSVが添付されたメールを受信
 2.添付CSVをASのPFに取り込むためのCLがコール

というようなイメージです。

現在はメールを受信した際に、
担当者が特定のフォルダにそのCSVをドラッグドロップして
その後ASのメニューを実行すると、BAT→VBS→CSVをPFに取込、
と動くような仕組みにしています。

これをメール受信したら自動でCSVをPFに取り込むというような形に
出来ればと思っています。
RE:メールを受信したらCLを実行 ほにゃほにゃ さん [ 4月2日(日) 0時3分 ]
メール受信がPCでしたら、
PCから添付ファイルを自動で特定のフォルダまで持っていくのはAS400とは関係のない部分なので
ソフトを探したり、別の技術系の掲示板を頼られたほうが良いかと思います。

フォルダに入った後の手順が決まっていて
かつすでにAS400のメニューから半自動で動く仕組みがあるなら
そのメニューから動かすPGMをジョブスケジュールでバッチとして動かされてはどうでしょうか。
パラメータ渡しが必要ならそれは別途考える必要ありますが。

そのメール受信がたとえば一日一回のペースで、
その日のうちのどこかのタイミングでASへ取り込みさえすればよいということでしたら、
メニューで動かしているプログラムをジョブスケジュールで自動で一日一回動かすのはどうでしょう。
成功時、エラー時にたとえばQSYSOPRにメッセージを送るようCLを足して、
メッセージ監視サービスやソフトなどをご利用ならばそれで担当者へ連絡がいくようにしてみると楽ですよね。

フォルダに入れるまでと、入れた後の取り込みは分けて考えるほうが対応策がシンプルになると思います。


今使っている運用等々で工夫できないか考えれば
意外に簡単な方法もある内容なのでは?と思いました。

会社の運用ですので、ノードやバージョンの変化についていける・引継ぎがしやすい
というポイントも考慮の上で、もう一度現状の整理されてみてはいかがでしょうか。
(十分ご検討の上でしたら、すみません。。。)
SQLServer経由でAS400(リンクサーバー)のRPGやCLを実行したい ramu さん [ 4月4日(火) 11時7分 ]
お世話になります。

WindowsのC#などのプログラムからSQLServerのリンクサーバーとして定義されているAS400に対してSQLServer経由でRPGもしくはCLプログラムを実行する方法を探しております。
クライアントPCにAS400のODBCドライバやなどをインストールさせたくないことが主な理由です。

SQLServerのバージョンは"Microsoft SQL Server Standard Edition"
AS400のバージョンは"V7R1M0"です。

リンクサーバーとしてSQLServerからAS400に対して以下2つのプロバイダーで接続しています。
IBM DB2 FOR i IBMDA400 OLE DB Provider
Microsoft OLE DB Provider for ODBC Drivers 
(データソースのODBCドライバは"IBM i Access ODBC Driver"を使用)

良い方法がありましたらご教唆頂ければ幸いです。
RE:SQLServer経由でAS400(リンクサーバー)のRPGやCLを実行したい ramu さん [ 4月4日(火) 12時40分 ]
すみません情報補足します。

SQLServerのバージョンは"Microsoft SQL Server 2008R2 Standard Edition"です
自己解決しました。 ramu さん [ 4月11日(火) 17時32分 ]
お世話になります。
設定値を見直してEXECメソッドで実現でしましたのでお知らせします。

失礼致します。
APWで 初心者 さん [ 4月5日(水) 18時32分 ]
APWで矢印(⇒)を作成することは出来るのでしょうか?
RE:APWで ほにゃほにゃ さん [ 5月13日(土) 11時24分 ]
記号の作成をすればできるとおもいます。
https://www.ricoh.co.jp/pps/download/pdf/apw_symbol_generation.pdf

ですが、APW利用ユーザーが減っていく一方の今、
APW依存のものを増やしていくのは本当はあまりおすすめできません。
単純に「やじるし」を変換して「⇒」入力では問題あるのでしょうか。
業務と同じ形での表示や印刷をためしてみて、それで問題なければ、
変換を使って入力したほうがいいような気がします。


APWのマニュアル一式はリコーのサイトにあります
(リコーのinfoprintシリーズが元々IBMのものだったので
AS400の印刷機能関連資料がリコーのサイトに置いてあることがあります。)
https://www.ricoh.co.jp/pps/download/manual/other/apw_v3.html
iナビゲーターでSQL発行時のファイルロックについて AS400 初心者 さん [ 4月8日(土) 9時18分 ]
いつもお世話になっております。

iナビゲーターでのSQL実行時の挙動について教えて下さい。

1.SQLスクリプト入力欄からSQLを実行し抽出結果が表示されている状態にする
2.FROM句に使用しているファイルをWRKOBJLCKで確認する
  
  →下記の様にロックしたままになっていることがあります。

   ------------------------------------------------------------
   QZDASOINIT   QUSER        *SHRRD      HELD           *JOB
   ------------------------------------------------------------


必ずロック状態を継続するわけでもなく原因がわからないのですが
ファイルロック状態を保持しないようなSQLスクリプトの実行方法や設定は
ありますでしょうか?
RE:iナビゲーターでSQL発行時のファイルロックについて HIROX さん [ 4月18日(火) 15時29分 ]
QZDASOINITが*SHRRDでロックしていたとして、何か問題があったのでしょうか?
RE:iナビゲーターでSQL発行時のファイルロックについて AS400 初心者 さん [ 4月19日(水) 11時7分 ]
iナビゲーターでデータを抽出して表示している状態で
AS側のCLが動き、ファイルクリアが失敗するというケースがありました。


WKファイルをiナビで見るべきではない、もしくは
確認が終わったら閉じるべきなのかもしれませんが
RE:iナビゲーターでSQL発行時のファイルロックについて HIROX さん [ 5月2日(火) 12時21分 ]
結論でいえばTCP/IP越しでのファイルロックを保持しないようなSQLスクリプ
トはないですね。
QZDASOINITについては下記参照のこと。
https://www.ibm.com/support/knowledgecenter/ja/ssw_i5_54/rzaii/rzaiiodbc25.htm

ファイルクリアが失敗というのはCLRPFMがこけたってことですよね。
私も経験あります。結局、RPGでDELETEという代価案にしました。

RE:iナビゲーターでSQL発行時のファイルロックについて AS400 初心者 さん [ 5月8日(月) 13時27分 ]
コメントありがとうございます。

実はiナビだけではなく他の接続方法の時にも同じような現象が発生しており
ます。
 1.vb.netからAS400にODBC接続して、SQL抽出結果を画面表示
 2.JAVAからAS400にJDBC接続して、SQL抽出結果を画面表示

上記2点をテスト的に行っておりまして、その際にiナビからの時と同じように
ロックが残ってしまうという状況です。
現象発生条件としては、上記1や2、iナビからのSQL実行と
AS側でのDSPDBMがほぼ同時に行われた時に、両方とも問題なく動作は行われる
のですが
ロック状態が残ってしまうようです。

同時にファイルを参照しただけでこのような状況になるのでは
他の言語からSQL経由でASのデータを使ってGUI表示やサブシステム作成というのは
無理があるのかなと悩み中です。
私のやり方が悪いだけかもしれませんが。。。
RE:iナビゲーターでSQL発行時のファイルロックについて HIROX さん [ 6月2日(金) 16時30分 ]
QZDASOINITについては下記参照のこと。
https://www.ibm.com/support/knowledgecenter/ja/ssw_i5_54/rzaii/rzaiiodbc25.htm

↑これ読まれましたか?
iナビだけでなく他の接続方法でも同じ現象・・・とありますが、それは当然
でしょう。
iナビもODBC接続ですからね。
JDBCは調べてないからわからないけど、ほぼ同じ原因かなと。
物理ファイルのデータをPCにダウンロード KDM さん [ 4月10日(月) 18時4分 ]
V6R1で運用しています。クライアントはwindows7で
i series Access for windowsを使ってます。

ユーザー自身で物理ファイルのデータの最新が必要な
場合があります。今はシステム担当の自分が提供したり
あるいは、転送記述をユーザーPCにあらかじめ置き、
CLからキックさせてデータ転送で運用してます。

今後windows10になることもあり、i series Access
 for windows を使い続ける可能性も薄く、このまま
転送対象を増やして、ユーザーPCへの設定も各々やって
というのも考え物です。

他社の運用がわからないのでおききしたいと思っての投稿
です。

いかがされてますでしょうか
RE:物理ファイルのデータをPCにダウンロード 隣のSE さん [ 4月13日(木) 11時4分 ]
1. CSVに変換
2. コード変換
3. 物理的な接続

スキルが無いなら PCOMMでやる。
RE:物理ファイルのデータをPCにダウンロード なんか さん [ 4月15日(土) 9時20分 ]
他社の運用をお聞きしたいという質問に対して、ひどい回答ですね

そんな感じだと掲示板が殺伐としませんか?
質問もしにくくなるかと
RE:物理ファイルのデータをPCにダウンロード 名無しの名無し さん [ 4月18日(火) 15時12分 ]
我社ではウェブレポートというツールを導入して使用しています。

http://www.jbcc.co.jp/products/soft/bi/webreport/
Chicago がお勧めです。 IKD さん [ 4月19日(水) 8時26分 ]
IBM i のデータ・ベースのダウンロード/アップロードなら
 Chicago をお勧め致します。
AutoGUI というGUI の5250エミュレータも付属していますので
iSeries Access の後継としても使えます。

長年の実績と国内数多くのユーザーが全国にいます。
Windows や Office の新しいバージョンにも適宜、対応が追加されますので
安心してご使用頂くことができます。

 国内には数多くのユーザー様がいますので
 他社製品のように途中で廃止するようなこともありません。
( JBCC のワーク・フレンドは廃止になりました。)

[試供版]
http://www.officequattro.com/jpn/download/contents/ch/tutorial/tutorial_chi
_std.html
全銀 TCP/IP アドレスは利用不能とは fujiya さん [ 4月11日(火) 9時31分 ]
fujiyaといいます。教えてください。

as/400 ツールボックス 全銀TCP/IP 使用しています。
全銀 TCP/IP 手順のAセンター(コネクション要求側)でデータ受信です。

実行すると、以下で終了。
処理状況・・・・・・・  60( 接続エラー )
ソケット戻り値・・・・  03421(アドレスは利用不能です )

アドレス利用不能とは、どの様な状態でしょうか?
どのような対処をすべきでしょうか?
もし、物理的にそのアドレスがないとすると、as/400 から無いことを
どう調べればよいでしょうか?
 
回答のほど、よろしくお願いします。
RE:全銀 TCP/IP アドレスは利用不能とは IKD さん [ 4月11日(火) 18時45分 ]
「アドレス」とは不親切なメッセージですね。
TCP/IPで IPアドレスのことを省略して「アドレス」と表現することはないからです。

宛先の IPアドレスなのか PORT番号のことを言っているのか意味不明です。
また TCP/IP通信で「アドレスが使用不能である」というメッセージも存在しません。
「バインドに失敗した」とか「PORT番号は使用中である」とか
「Socketを作成することができません」とかならわかりますが。
「利用使用不能である」と言い切るメッセージも原因不明なのに
なぜ利用不能であると断定できるのかわかりません。

 TCP/IPクライアントであれば

  1. socketを作成 (ここで失敗はほとんどない)
  2. connect (相手方 IPアドレス+ PORT番号に接続)
  3. 通信の開始

の手順で実行されますが失敗するのは connect の部分です。


相手先のサーバーが待機していないか、こちらから外部への接続が中断されているか
IPアドレスや PORT番号がわかるのでであれば
 CFGTCP + [実行] によって回線状況を調べることができますが
相手先のIPアドレスとPORT番号をまず調べてください。
PING で簡単なチェックもできます。
RE:全銀 TCP/IP アドレスは利用不能とは fujiya さん [ 4月20日(木) 10時32分 ]
IKD さん 適切なご指摘ありがとうございます。
今回の問題は、ルータ側の問題でした。

連絡 遅れてすみません。
MSGFとMSGQの関連性について KEN さん [ 4月13日(木) 16時15分 ]
新規作成したMSGF(A_FILE)と、新規作成したMSGQ(A_MSGQ)は、どのように
結びつければ良いでしょうか

例)A_FILE内にあるメッセージを、A_MSGQへ出力するには?

また、システムメッセージがQSYSOPRに出力されるカラクリも教えて下さい。

よろしくお願いします。




RE:MSGFとMSGQの関連性について IKD さん [ 4月17日(月) 9時18分 ]
SNDPGMMSG コマンドで自分自身へのメッセージ送信ができますが
基本は メッセージ・テキスト(MSG)パラメータに送信するメッセージを
記述します。

しかし毎度、同じような定型メッセージを送信したいのであれば
ここで メッセージ・ファイル(MSGF)に事前に登録しておいた
メッセージを MSGF を指定して送信します。
MSGF にパラメータとして MSGDTA を指定することもできます。

SNDPGMMSG は大きく分けてこのどちらかの方法を使って送信します。
つまり定型的なメッセージを送る場合に MSGF を使うようにします。

次に送信先の MSGQ は TOMSGQ に指定します。
TOMSGQ の通常の省略値は *TOMSGQ, つまり自分自身のMSGQ です。
他のMSGQ に送信したい場合は SNDUSRMSG を使いますが
PGM では SNDUSRMSG を使うことは稀れです。

システム操作員メッセージ (QSYSOPR) のメッセージ待ち行列に
送るには *TOMSGQ の代わりに *SYSOPR を指定します。

ただし厳密に言うと プログラマーには QSYSOPR を見る権限は
ありません。
内部統制法ではプログラマーは QSYSOPR を見たり操作することは
禁じられています。

実際にCLPで SNDPGMMSG を使ってみるとよく理解できると思います。
RE:MSGFとMSGQの関連性について ほにゃほにゃ さん [ 5月13日(土) 10時29分 ]


>また、システムメッセージがQSYSOPRに出力されるカラクリも教えて下さい。

システムの仕様になっています。下のページに説明があります。

https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/rzahb/rzahbmsq.htm
コンパイルオプションの変更 KAZU さん [ 4月19日(水) 12時2分 ]
CRTLFを実行する際、キーワードLVLCHKのデフォルト値は、*YES となっていますが、
この値を*NO に変更する事は出来るのでしょうか?

大量の論理ファイルを一括生成するため、1ファイル毎にこの値を変更するのが大変なので、
何とかならないか悩んでいます。DSPFなどは、一括コンパイル後、CHGDSPF で *ALLを
指定すればよいのですが、CHGLF だと1ファイルしか指定できません。

ご存知の方いらっしゃいましたらよろしくお願いします。
RE:コンパイルオプションの変更 すかぴ さん [ 4月19日(水) 13時10分 ]
CHGCMDDFT  で変更されては如何でしょうか?
ただし、OSバージョンアップ等した場合に、元に戻ってしまいますが。
RE:コンパイルオプションの変更 KAZU さん [ 4月19日(水) 15時11分 ]
ありがとうございます。
CHGCMDDFT で変更できました!
IBMiのシステム名取得方法 TU さん [ 4月24日(月) 19時10分 ]
サインオン画面の右上にあるシステム名をRPGまたはCLで取得したいです。
ご存知の方いらっしゃいましたらよろしくお願いします。


■サインオン画面右上

システム・・・・:xxxxx ←ここの値を取得したい。
サブシステム・・:xxxxx
表示装置・・・・:xxxxx
RE:IBMiのシステム名取得方法 IKD さん [ 4月25日(火) 7時5分 ]
システム名は RTVNETA で取得します。
( システム値にはこの値はありません。)

 DCL        VAR(&SYSTEM)    TYPE(*CHAR) LEN(8)
 :
  RTVNETA    SYSNAME(&SYSTEM)

 です。
RE:IBMiのシステム名取得方法 TU さん [ 4月25日(火) 9時41分 ]
IKD様
素早い返信ありがとうございます。

WRKSYSVALで、探していました。
早速試したところ、取得できました!
ありがとうございました。

IKD様、この関連で、もうひとつ教えてほしいです。
このシステム名のIPアドレスをRPG・CLで取得したいですが、
コマンドとかあるのでしょうか?

RE:IBMiのシステム名取得方法 IKD さん [ 4月26日(水) 8時33分 ]
IBM i のIPアドレスは複数個、設定できますので
IPアドレスを簡単に取得できるコマンドはありません。

あまり知られてはいませんが IPアドレスは
 
  QUSRSYS/QATOCIFC

という物理ファイルに登録されています。

 ( RUNQRY *NONE QUSRSYS/QATOCIFC で調べてみてください。 )

そこでCLPでは

             PGM                                                    
             DCL        VAR(&DUMY) TYPE(*CHAR) LEN(1)               
             DCLF       FILE(QUSRSYS/QATOCIFC) ALWGRAPHIC(*YES) +   
                          DCLBINFLD(*INT)                           
                                                                    
 READ:       RCVF       RCDFMT(QIFC)                                
             MONMSG     MSGID(CPF0864) EXEC(GOTO CMDLBL(REDEND))    
             IF         COND((&LIND *NE '          ') *AND +        
                          (%SST(&LIND 1 1) *NE '*')) THEN(DO)       
             SNDPGMMSG  MSG('IPADR=' *CAT &INTERNET) MSGTYPE(*DIAG) 
             ENDDO                                                  
             GOTO       READ                                        
 REDEND:                                                            
             ENDPGM                                                 

 のようにすると &INTERNET には IBM i の IPアドレスが入ります。
  
  QUSRSYS/QATOCIFC は特殊なファイルですので上記のような DCLF を
  指定しないと CLPでは動作しません。
  IBM i にローカルIP とグローバルIP の両方が指定されている場合は
  複数のIPアドレスが表示されます。
  つまり IPアドレスは LANカードに対して定義されますので
  複数の LANカードが装填されている IBM i には複数個の IPアドレスが
  定義されています。

RE:IBMiのシステム名取得方法 TU さん [ 4月26日(水) 11時10分 ]
IKD様
返信ありがとうございます。

早速試したいと思います。
ありがとうございました。

アラーム音について BX さん [ 5月2日(火) 11時4分 ]
いつも大変お世話になっております

早速ですがアラーム音について悩んでいます

具体的にいうと、バーコードを読み込んだ際に正常値とエラー時(マスタ未登録等)で
音を変えたいのですが、DDSのALARMキーワードだとどちらか一方になってしまいます

エラー時にSNDBRKMSGも行ったのですがALARMキーワードと同一音でしたので不可でした

お知恵を貸していただけると助かります
RE:アラーム音について IKD さん [ 5月3日(水) 8時31分 ]
 IBM i では複数のアラート音を使い分けることはできませんので
 実現には Windows の Beep音を使うことになりそうですが
 PCオーガナイザーやJavaSciript でと言う前に
 そもそも成功のときは IBM i で成功を検知することが
 できますが失敗のときは IBM i には入力されないのですから
 失敗を検知することはできないのではないでしょうか ?

 バー・コード・リーダーのマニュアルを今一度調べてみては
 いかがでしょうか ?

 ( もし失敗を検知できているのであれば DDSのHTMLキー・ワードで
   JavaScriptを埋め込めば実現可能です。
   ただし HTMLキー・ワードが有効になるエミュレータ(例えばAutoWeb)
   が必要となります。)

RE:アラーム音について BX さん [ 5月3日(水) 9時53分 ]
IKD様、ご返信ありがとうございます

    A  50                 ALARM

上記をRPG標識で行うとエラー時または正常時の片方でしか
アラームを鳴らすことが出来ずに困っておりました

例えば入力域以外でアクション(スペースキー等)すると
IBM i で警告音が出ますが、それらを応用することは可能でしょうか?

    C             Z-ADD   1       ROW
    C             Z-ADD   1       COL
    C             EXFMT   DSP01

上記EXFMT後に人的ではなく自動でスペースキーを入力するような
コーディングが出来ればとも考えたのですが…

社内SEとしてIBM i専門でやってきたのでWindowsの知識が乏しく
可能であればIBM iで制御したいという思いもありますので
試行錯誤してみます
RE:アラーム音について IKD さん [ 5月15日(月) 8時48分 ]
入力域以外で入力しようとしたときに鳴る警告音は
IBM i ではなく 5250エミュレータが鳴らしています。
IBM i で入力前の処理を検知することはできないからです。

したがってこの音を IBM i で意図的に発生させるのは
無理かと思います。
全銀ベーシックA 処理状況とAPI戻りコードについて ITBOX さん [ 5月6日(土) 13時57分 ]
全銀ベーシックの疎通テストを行いましたが、
処理状況34、API戻りコード30?16が発生しました。

API30?16のコードの意味、または原因が分かる方がいましたら教えてください。

こちらは、全銀Aセンター側になります。

どうぞ、宜しくお願い致します。

RE:全銀ベーシックA 処理状況とAPI戻りコードについて ほにゃほにゃ さん [ 5月13日(土) 10時15分 ]
処理状況 34 ですか。

TOOLBOX全銀BSCAセンターLOG1の処理状況であれば
数字の真上でF1を押せば、処理状況の欄で使われる完了コード一覧と概要が見られます。
さらにその完了コード一覧のなかから該当のコード(下線付き白字)の真上で実行キーを押すと
もう少し詳しい内容がわかります。

V5R4のTOOLBOXの全銀BSCAセンターLOG1の
完了コード一覧で確認しましたが34というコードはないように見えました。

契約中のTOOLBOXでしたらネオアクシスに問い合わせる方が早いと思います。

RE:全銀ベーシックA 処理状況とAPI戻りコードについて ITBOX さん [ 6月16日(金) 15時52分 ]
ほにゃほにゃ さん 

ご返信が遅くなり申し訳ございませんでした。
回答ありがとうございます。

TOOLBOXの解説書に、API戻りコードの記載があり、
原因が分かりました。

ご報告が遅くなりましたが、無事に解決できました。
ありがとうございます。
各サブシステム配下の動作の違いについて KAZU さん [ 5月11日(木) 11時1分 ]
V7.2のi5を新規に導入しました。

それまで使用していたV5のAS400のアプリケーション、データを、そのままV7.2に
ライブラリー移行して、問題なく動作している事は確認したのですが、WRKACTJOBで
活動内容を参照したところ、V5では 対話型プログラムも、バッチ処理もQBATCH で
動作していたのが、V7.2ではQBASE で動作しています。
ネット等で調べたところ、どちらのサブシステム配下で動作しても、パフォーマンスの
問題だけで、それ以外は問題ないものと個人的に解釈したのですが、本当にこれで
良いのでしょうか?
ちなみに新ASでは、サブシステムでの動作に関わる設定は行っていないのですが、旧ASは
別の会社が導入設定し、その記録は無いため、何を行ったかは不明です。
また、新旧ASとも、QBASE、QBATCHのMAXACTIVE は、5に変更しています。

単純に、OSバージョンによるものでしょうか?
れとも、何か意図があって、何らかの設定を行ったものなのでしょうか?
何か問題点や、考えられる障害等、ご存知の方いらっしゃいましたらご教授お願い致します。
RE:各サブシステム配下の動作の違いについて IKD さん [ 5月11日(木) 14時25分 ]
良くないと思います。

ロー・エンド・モデルの IBM i であれば昔は QBASE配下一本で
動作していましたが,通常は QINTER, QBATCH, QSPL に
分割して動作させることが正しい運用です。

QINTERと QBATCH, QGPL はご指摘のように各々、実行優先度も
異なりますが重要なのは QBATCH のジョブ記述が以前はどのように
なっていたかで QBASE に変更すると運用動作が変わってくる可能性が
あります。

これはQBATCHでは同時に実行できるジョブが一個ずつと限定されて
いる場合が多く、逆にそれを利用して月次バッチ業務が組まれている
可能性もあります。

QBASE で全部を運用するのはあくまでロー・エンド・モデルや
エントリー・モデルの IBM i 用です。
今ではほとんどの IBM i ユーザーは QINTER で動作されているはずですので
至急、変更されるべきであると思います。
i5/OSを導入した特約店フィールドSE のミスであると思います。
その特約店に変更を依頼してください。
RE:各サブシステム配下の動作の違いについて KAZU さん [ 5月11日(木) 15時10分 ]
IKD様
早速のご回答ありがとうございます。

> i5/OSを導入した特約店フィールドSE のミスであると思います。
> その特約店に変更を依頼してください。

確かに、このi5/OS 7.2 は、特約店SEにて導入しました。
私の分担作業は、導入移行だったのと、元々その辺の知識不足でお恥ずかしいのですが、
導入時にそのような設定は、意図的(例えば誰かからかの指示による導入シート等)に
されるものなのでしょうか?
今回、このような設定になった可能性としては、どのような理由が考えられますでしょうか?

特約店に変更依頼するとして、本来の分割として正しい割り当ては、どうなればよいかを
確認するには、どうすれば良いのでしょうか?安易に、旧ASに合わせた場合、全てが
QBATCH(対話式も)である事も、おかしいですよね?

スキル不足でお恥ずかしいですが、追加でお教えいただければ幸いです。
よろしくお願い致します。
RE:各サブシステム配下の動作の違いについて IKD さん [ 5月11日(木) 16時2分 ]
KAZUさんのスキル不足が原因ではなく担当した特約店のフィールドSEの
経験不足が原因ですので特約店に細かな設定を指示する必要もありませんし
通常はお客様が設定数値の指示をする必要はありません。

特約店フィールドSEが気を利かせて通常、設定すべきところは
設定し、ライセンス・プログラムもすべて導入するのではなく
お客様の事情に応じて導入を割愛するなどするのは
特約店SEの仕事です。
(例えば国際言語では中国語も無償で梱包されていますが
 必要がないとSEが判断した場合は中国語は導入しません。)

その他、システム値もお客様に相談しながら設定を変更するのも
特約店SEの仕事です。

特約店のSE責任者(課長クラス)なら QBASE に設定するなど
自社のミスであることぐらいはわかると思いますから
特約店の営業マンに「対話式サブ・システムが QBASE のままになっています」
と言えばわかると思います。
新入社員の担当SE の初歩的なミスです。

確か QBASE は i5/OSの導入時の値のままですので設定しなければ
QINTER にはなりません。
( もちろん QINTERも初期導入はされています。)

変更はお客様の要求として正常なものですから
早期に対応してもらってください。
RE:各サブシステム配下の動作の違いについて KAZU さん [ 5月11日(木) 16時30分 ]
IKD様

ありがとうございます。
早速関連区に連絡をとり、対応してもらいます!
RE:各サブシステム配下の動作の違いについて ほにゃほにゃ さん [ 5月13日(土) 10時43分 ]
KAZU様

作業的には、
WRKSYSVAL QCTLSBSDをQSYS/QCTLに変更しIPLをかければサブシステムQBASE→QCTL&QINTER&QBATCHとなります。

ただ特約店SEが作業を行ったマシンであれば
これは作業ミスの範疇だと思いますので
IKD様がおっしゃる通りで特約店に伝えるべき内容だと思います。
RE:各サブシステム配下の動作の違いについて ほにゃほにゃ さん [ 5月13日(土) 14時53分 ]
ほにゃほにゃの方で発言した「作業ミス」は言い過ぎだったと思うので訂正します。
旧マシンから新マシンへのリプレイスなど明確に設定を揃える必要のあるマシンがなく、
新規の検証機または検証区画の構築で
お客様との会話の中で最低限の設定以外はそのままで良いとなった場合は
QBASEで出荷する可能性もあるとおもいます。
何故ならQBASEによる起動がシステム値QCTLSBSDのデフォルト値だからです。

余談:
AS起動時のサブシステム起動は、QCTLSBSDに設定されたサブシステムから始まります。
QBASEとQCTLはこのために用意されたサブシステムで、
自身が起動することでシステム値QSTRUPPGMに設定されたスタートアッププログラムを開始するような仕組みになってい
ます。
(サブシステム記述を調べていくと確認ができます)
システム値QSTRUPPGMにデフォルトで用意されているQSYS/QSTRUPの内容を
RTVCLSRCで確認すると、その中で複数のサブシステムの起動を行なっていることが確認できます。
IF文でQBASEの場合とQCTLの場合とで
起動するサブシステムを変えていることがわかります。
RE:各サブシステム配下の動作の違いについて KAZU さん [ 5月15日(月) 13時31分 ]
ほにゃほにゃ さん 

わかりやすい説明ありがとうございます!
ただ、皆様の今までのご説明をお聞きすると、何故デフォルト値をQSYS/QCTLにしないのか
不思議です。(IBMには理由があるのでしょうが・・・)
RE:各サブシステム配下の動作の違いについて ほにゃほにゃ さん [ 5月20日(土) 13時44分 ]
KAZU さん

QBASEのユーザーも時々いますよ。
AS400は資産継承が売りなので、基本的に必須でない変更はしないのではと思います。
CLにてデータ転送を行うとエラーになります。 shirouto さん [ 5月27日(土) 11時39分 ]
pcsft5では正常に動いていたCLがcwbtfではエラーになります。

strpccmd pccmd('"c:\program files\ibm\personal communications\pcsft5.exe" "
c:\test.tto"') pause(*no)

で問題なかったんですが、

strpccmd pccmd('"c:\program files\ibm\client access\cwbtf.exe" test.dtf') p
ause(*no)

では、データ転送画面で設定を開くまではたどり着きましたが、実行できません。
dtfを""で囲うとエラーになります。

わかる方、居ましたらご教授お願いします。
RE:CLにてデータ転送を行うとエラーになります。 shirouto さん [ 5月27日(土) 14時28分 ]
データ転送側のプロパティの始動タブ内の要求オプションにチェックを入れて実行できました。
実行後、画面が戻ってこず、最大化・最小化などして元に戻すと正常になるのには何か足らないので
しょうか?
Access Client Solutionsのデータ転送での文字コード s さん [ 6月8日(木) 10時40分 ]
Access Client Solutionsのデータ転送機能を使ってテキストデータをホスト上のデータベースにアップロードしようとしています。
テキストデータの文字コードはASCII(Shift-JIS)です。
IBM System i Access for Windowsでのテキスト転送なら、変換元文字コードをASC?にしておけば、正常にアップロードできていたのですが、Access Client Solutionsのデータ転送機能には文字コードASC?がなくなっています。
Shift-JISを利用してアップすると、一部を除いては正常にアップロードされます。
「\」や「?」のみ、正しく変換されず化けてしまいます。

どうすれば「\」や「?」を正しくアップロードできるでしょうか。

ちなみにホスト上のデータの内容をHEXで確認したところ、「B2」で格納されていました。本来、「\」が「5B」です。
RE:Access Client Solutionsのデータ転送での文字コード IKD さん [ 6月10日(土) 7時14分 ]
直りません。

「\」や「$」は文字というより「通貨記号」という記号なのです。
従って日本語環境の「\」は英語環境では「$」となるのは
正しい動作です。

IBM i の開発者はサブ・ルーチン名やフィールド名に
通貨記号を意味なく多用しがちですが、これが現代のように
ASCII 環境との互換が日常化してくると問題となります。

データのアップロードやダウンロードだけでなく
インターネットでの動作やPCオーガナイザー(STRPCO)でも
動作しななります。

データに特殊記号が含まれている場合は仕方ありませんが
プログラム名、ファイル名、フィールド名の一部に
特殊記号を挟むのは厳に避けるべきでしょう。
唯一、互換性のある記号は「_」(アンダースコア)です。
RE:Access Client Solutionsのデータ転送での文字コード s さん [ 6月13日(火) 10時1分 ]
「\」を送信して「$」が表示される、ではなく「\」を送信したら英語環境のバックスラッシュに変換されてアップされてしまっているようですがこれも正しい動作になるのでしょうか?
(Ctrl+F3を押したらバックスラッシュが表示されました。EBCDICコードの"B2"ですね。)
Jis-Codeの"5C"をアップロードしたらEBCDICの"B5"に変換してほしかったのですがそれも無理なのでしょうか。


今回やりたかったことはPC上のフォルダのパスをアップして画面上に表示したり、ホストの画面でフォルダのパスを指定し、それをPC側にダウンロードして読みこんで処理をするといったことがしたかったのですがRPG側でコード変換処理をするしかないということでしょうか。

RE:Access Client Solutionsのデータ転送での文字コード IKD さん [ 6月13日(火) 12時37分 ]
バックスラッシュ(キー・ボードの「ろ」)が通貨記号です。
英文キー・ボードではここに「$」があります。
「\」はたまたま右上にありますが「ろ」のキーと同じです。
半角モードで「ろ=バックスラッシュ」を押してみてください。
「\」と表示されるはずです。

5250エミュレータでバックスラッシュが表示される場合は
設定を変更している可能性があります。

[参考] 日本語では c:\temp のように表現しますが
         英文では \ の部分がバックスラッシュになります。

【注意】他人に教えてもらうのに「これでも正しい?」とは
        随分、失礼な表現ですね。
        ご自分の説明は別にして通貨記号を知らないのに
        人に教えをこう態度ではありません。
        私はあなたに説明する義務はないのですよ。
RE:Access Client Solutionsのデータ転送での文字コード s さん [ 6月13日(火) 13時48分 ]
ありがとうございました。
表現に失礼があったようで申し訳ありません。今後気をつける様ににいたします。
「これでも」ではなく「これも」だったのですがこちらの知識不足で申し訳ありませんでした。

5250エミュレータのデータ転送機能を利用して\を転送した場合は、「\」がそのままアップされていたのでACSでも同じようにしたかったのですができないのでしょうか
QTEMPに作成したファイルの中身を見たい emi さん [ 6月14日(水) 13時53分 ]
QTEMPに一時的に作成したワークファイルの中身を見る方法を教えて下さい。

エミュレーターを起動して、自分自身のQTEMPなら勿論分かるのですが、
プログラムの起動はWEB画面から行うので、別ユーザー(別のジョブ)のQTEMPを覗きたいのです。

今は、プログラム内に、QTEMPのデータを通常のライブラリにコピーするコードを一時的に組み込ん
で確認していますが、
プログラムをいじらずに確認する方法はありませんでしょうか?
RE:QTEMPに作成したファイルの中身を見たい IKD さん [ 6月18日(日) 18時7分 ]
残念ながら他のQTEMPを見る簡単な方法はありません。

海外サイトでは RUNJOBCMD というコマンドで割り込み要求を
使った例というのもありますがこのコマンドの使用は
セキュリティ上、好ましくありません。

自分のQTEMPを他人に覗かれてしまうというセキュリティ・ホールが
生まれるからです。

MI を使えば QTEMPを見れる、という海外の紹介も
割り込み要求を WRKREGINF に登録するという方法で
大げさすぎます。

今、何とかやれているならその方法を引き続き使うしか
なさそうです。
今後、この調査を継続する値打ちはあると思いますが。
桁違いの2バイト文字への項目への代入 AS400 初心者 さん [ 6月15日(木) 8時53分 ]
RPG4(FREE-FORMAT)で少ない桁の2バイト文字項目から多い桁の2バイト文字
項目へ代入する際に
どのように処理を書かれていますでしょうか?

弊社ではこのように記載しておりますが、もっと良い方法があるのではと思い
投稿させていただきました。
宜しくお願い致します。

------------------------------
// DS定義
------------------------------
D TEST_DS   DS
          34  INZ('            ')※34桁分
   A_DS       2  19

// 変数定義
D MSG               20    INZ(' テストメッセージ
1 ')

------------------------------
// 処理部分
------------------------------
 RESET  TEST_DS;             // クリア
 A_DS = %SUBST(MSG:2:18);    // シフトインアウトを除いて抽出
 
 FIELD1 = TEST_DS;           // PFの項目へ代入
RE:桁違いの2バイト文字への項目への代入 IKD さん [ 6月20日(火) 13時58分 ]
ご質問の趣旨は「少ない桁から多い桁へのコピー」とは少し違うような気がします。
シフト文字を除去するコピーの方法のほうが正しい気がします。

                       MOVEL(P) MSG                TEST_DS
   または
        TEST_DS = MSG

    の後に

         FIELD1 = A_DS

  でご希望の結果が得られると思います。せっかくDSを定義しているのに
   %SUBST で演算するのは回りくどいように見えます。
 これでお試しください。

 INZ('            ')※34桁分 も不要です。
RE:桁違いの2バイト文字への項目への代入 AS400 初心者 さん [ 6月23日(金) 11時58分 ]
ご教示頂いた内容で処理を行いたいと思います。
INZも不要ということで了解致しました。
ありがとうございました。
toolbox for ustを使用した全銀ベーシックのレコード長について ITBOX さん [ 6月16日(金) 16時13分 ]
toolbox for ustを使用した
全銀ベーシックAセンターによる通信を行う場合、
受信可能な最大レコード長は何バイトまで可能なのでしょうか
2500バイトの受信は可能でしょうか。

また、その場合、伝送ブロック長の設定は、2048から
変更する必要があるのでしょうか。

どうぞ、宜しくお願い致します。
RE:toolbox for ustを使用した全銀ベーシックのレコード長について すずき さん [ 9月30日(月) 16時3分 ]
送りたいファイルのレコード長が2,500バイトならば
最大伝送テキスト長は2,513以上にしておけば大丈夫ですよ。
設定上は32,767バイトまで定義できます。
acsエミュレータ saki さん [ 6月30日(金) 10時17分 ]
ACSのエミュレータ画面ですが、ディスクトップからアイコン起動したいのですが可能でしょうか?
(HODファイル)可能な場合方法をお教え下さい。(WIN10,IBMI V7.1)
RE:acsエミュレータ まーくん さん [ 7月20日(木) 17時40分 ]
ACS Session Mgr を開いて
構成済みセッションをクリックして ディスクトップに移動すると
hodの拡張子ファイルが出来るのでクリックすると起動するようです。
回答になってるかな?
RE:acsエミュレータ s さん [ 7月21日(金) 9時55分 ]
拡張子hodファイルをダブルクリックでACSのエミュレーター起動するためにはACSを起動し、「ツール」→「ファイルアソシエーション」で「hod」にチェックを入れます。(起動PGMの関連付けのような感じです。)

他には、バッチファイル等にプラグインの記述を書いてバッチファイル起動すればエミュレータその他の起動も可能になります。
プラグインに関してはACSのHELPファイルに記載がありました。
RE:acsエミュレータ SAKI さん [ 7月24日(月) 15時50分 ]
ご回答有難うございました。すごいですね。(いろいろ調べたのですが出来なかったもので助かりま
した)
装置回復処置 saki さん [ 6月30日(金) 10時25分 ]
ジョブの設定で装置回復処置というパラメータが有ります。現状*DSCMSGとなっておりますが、これ
を*ENDJOBに変更したいと思います。エミュレータが切断された後、再度起動すると回復の画面が表
示されなくなるのは確認できたのですが、その他に違いは有りますでしょうか?(V7.1)
RE:装置回復処置 IKD さん [ 7月5日(水) 7時38分 ]
CHGJOB DEVRCYACN(*ENDJOB) を知っている、あるいは使っている人も
少ないのではないかと思いますが、障害後の余計な対応をなくすために
弊社でも装置回復処置は *DSCMSG ではなく *ENDJOB に変更しています。
( ただしエンド・ユーザー向けの適用業務のみ )

今のところ *ENDJOB で不要な対応は必要なくなた他に
特にちがいというか、問題はありません。
RE:装置回復処置 SAKI さん [ 7月5日(水) 18時46分 ]
ご回答頂けるとは思いませんでした。大変参考になりました。有難うございます。
RE:装置回復処置 GH さん [ 7月7日(金) 13時21分 ]
システム値 QDEVRCYACN を*ENDJOB にする。

障害からの回復は、通常できないから、落ちた方が 安心です。

 




 
RE:装置回復処置 SAKI さん [ 7月7日(金) 16時19分 ]
ご回答ありがとうございます。開発でも使用致しますので一部業務についてchgjobをかけようと思います
います。
PHPからODBC接続 KDM さん [ 7月12日(水) 19時6分 ]
V6R1にZEND SERVER CE を入れてphpを試してます。
db2クライアントは入ってないのでODBCで接続できるかを試してます。
phpで以下のように記述してIEからアクセスしますがエラーになります。
---
<?php
$user = 'USER1';
$password = 'PASS1';
$hostname = 'MySYSTEM';
$server="Driver={iSeries Access ODBC Driver};
         System=$hostname;
         Uid=$user;
         Pwd=$password;";

odbc_connect($server, $user, $password);
 echo "<td>コード</td>\n";
 echo "<td>名称</td>\n";
---
odbc_connectをコメント化すると当然、コードと名称の文字が表示されますが
有効にすると
---
Internal Server Error
サーバーに内部エラーまたは構成ミスが発生したため、要求を完了できませんでした。
サーバー管理者に連絡し、[アドレッシングなし] エラー発生時刻と、エラーの原因と思われる動作を
を報告してください。 
このエラーについての詳細は、サーバー・エラー・ログにある場合があります。
---
と出ます。

zendサーバーのエラーログには何もなく、原因が分かりません。
ドライバーも、Client Access ODBC Driver に変更してもダメでした。
クライアント側はiSeries Access for windowsを使ってます。
phpはeclipseで書いてFTPでホストにあげてます。

誰か教えていただけないでしょうか。
お願い致します。
RE:PHPからODBC接続 HIROX さん [ 8月16日(水) 16時32分 ]
http://sugutsukaeru.jp/support/3/

そもそもAS400の問題じゃないと思いますよ。
HT対応について AS400 初心者 さん [ 7月15日(土) 9時6分 ]
こちらに記載する質問かどうか迷ったのですが
きときとセミナーの記事でWindows CEのHT対応という記載があり
興味がありましたので教えて下さい。

HT対応というのは具体的にはどのようなことが可能になりますでしょうか?
RE:HT対応について IKD さん [ 7月15日(土) 10時41分 ]
ご質問ありがとうございます。

AutoWeb の Windows CE ハンディ・ターミナル対応というのは
 ハンディ・ターミナル に DDSで作成したDSPFのアプリケーションが
 使用可能になるということです。
 簡単に言えば、


 ・ハンディ・ターミナルで DSPF を HTMLで表示できる。

 ということに尽きます。
 

 これまでは

 ・ハンディ・ターミナルには専用言語による開発が必要でした。
      ( AutoWebなら DSPFの DDSだけで開発可能です。)

  ・ハンディ・ターミナルに 5250エミュレータも発売されているが
    やはりあの黒いグリーン画面であり、GUI化されていない。
      ( AutoWeb ならエミュレータなしでGUI画面が表示できます)

  ・しかしハンディ・ターミナル(Windows CE)のブラウザは
    IE 7.0 とリリースが古いので現在、発売されている
  Webフェーシングでは表示できない。
      ( AutoWeb は IE 7.0 用の画面を自動選別して出力します。)

 そこで AutoWeb ではハンディ・ターミナルからの接続要求であることが
 検出されたら IE7.0用にHTMLテンプレートによる出力を行うようにして
 この問題を解決しました。
 ( ハンディ・ターミナルには5250エミュレータは不要です。)
 今後、ハンディ・ターミナル専用の特殊機能も増やしていく予定です。
 AutoWeb では接続クライアント数の制限や契約金額の割増しはありませんので
 台数が多い場合にもコスト・パフォーマンスに優れています。
 今回はキーエンス社のHTを対象にしましたが Windows CE搭載であれば
 他社のHTでも使用可能です。

 ... お蔭様で AutoWeb は現在、ご引合い?ご注文、納品が続いております。
     この場を借りましてお礼申し上げます。
RE:HT対応について AS400 初心者 さん [ 7月18日(火) 17時53分 ]
コメントありがとうございます。
ハンディ対応というのはAutoWebが対応ということだったんですね。
ハンディに5250エミュレーターを乗せるのに比べて
デザイン性があがるというのはあると思うのですが、
機能面や反応速度など他にも何か特徴や、メリット等はどんなものがあります
でしょうか?
RE:HT対応について IKD さん [ 7月18日(火) 21時17分 ]
GUI化の利点をすべて得ることができます。
操作する人が不慣れであってもコンボボックスやラジオ・ボタンなどで
操作は一目瞭然ですが5250エミュレータであれば入力すべき候補を
あらかじめ知っておかねばなりません。

ハンディターミナルの操作で文字などをいちいち入力していたのでは
現場の効率は上がりません。
いまどき5250エミュレータ画面を現場で作業される方に見せるのは
操作しずらいことになります。
CHAIN命令 SAKI さん [ 8月8日(火) 15時9分 ]
CHAIN命令についてお聞きします。キーが3個有り(いずれも昇順)最初の2つに値をセットしCHAI
Nした場合、3つ目のキーの最小が必ず読めますでしょうか?キーリストも2つだけ指定です。(現
状この様なPGが有りどの様な動きをするのかを調べております)(ソースタイプRPG)
RE:CHAIN命令 SAKI さん [ 8月8日(火) 15時15分 ]
すみません。補足です。最小のレコードが読めるとして、連続して同じキーでCHAINしても同じ最小のレコードが
のレコードが読めるでしょうか?
RE:CHAIN命令 IKD さん [ 8月9日(水) 8時14分 ]
ご質問の文章にある「キー」とはキーのことではなく「キー・フィールド」のことであると
読み替えて解釈します。

複数の、例えば3つのキー・フィールドを持っている索引ファイルに対して
上位2つだけのキー・フィールドをキー・リストとしてCHAIN命令を実行すると
CHAIN が成功したときは3つめのキー・フィールドは一番、小さなキー・フィールドとなる
レコードが取得されているか? というご質問であると解釈しました。

つまり複数のキー・フィールドを持っている索引ファイルを一部の上位だけの
キー・フィールドで CHAIN するとどうなるか? ということでしょうか?

ご質問がこのとおりであれば

 3番目のキー・フィールドが上位2つの同じキー・フィールドであるレコードの中で
  最小のレコードが取得されている保証はどこにもありません。

CHAIN が成功するということはキー・リストでレコードを取得することだけの話
ですから最小レコードを取得するという仕様はありません。
前後の演算の結果に影響されると思います。

このようなCHAIN は非常に脆弱で不安定な演算になりますので
やはりキー・フィールドの一部ではなく、フル・キーでCHAIN すべきでしょう。

事情があって上位のキー・フィールドだけで検索したい場合は

  SETLL & READE を使うべきで、これなら意図的に行う演算であり

確実な結果が得られます。
RE:CHAIN命令 SAKI さん [ 8月10日(木) 11時19分 ]
ご回答有難うございました。
PCOMで半角カナ文字化け yangyang さん [ 8月17日(木) 12時35分 ]
PCOMで半角カナ文字化けが出てきて、
例:「ライブラリー」が正しく表示できないようです。
RE:PCOMで半角カナ文字化け GH さん [ 8月17日(木) 15時37分 ]
コントロールを押しながらF3を押す。

RE:PCOMで半角カナ文字化け yangyang さん [ 8月17日(木) 16時10分 ]
ご回答をありがとうございました。
「Ctrl+F3」を押しなくても、半角カナとほかの文字も正しく表示できる方法がないですか。
RE:PCOMで半角カナ文字化け GH さん [ 8月18日(金) 16時2分 ]
PCOMMのホスト コード ページ を 文字化けの少ない方に変更する。
 
文字データを見て 自動追従する方法は ありません。
AS400 CPYSPLF もっこ さん [ 8月21日(月) 22時4分 ]
はじめまして、as400初心者です。

as400で漢字を含むスプールファイルをCPYSPLFを使いコピーすると桁ずれが起きてしまいます。

これはas400の仕様で、1バイト目が制御文字、2バイト目が空白とそこまでは分かったのですが、

1から1バイトはそのままで、3桁から最後の桁までを、2桁から上書きするSQLを作成したのですが、

桁ずれしたままでした。

どなたか対処方法をご教示いただけないでしょうか。

よろしくお願いいたします。
RE:AS400 CPYSPLF IKD さん [ 8月22日(火) 14時25分 ]
CPYSPLF の実行では制御文字(CTLCHAR)パラメータは何と指定されていますか?

 制御文字が *NONE であれば2バイトの制御文字が挿入されてしまうことは
 ありませんし、
 自動的に2バイトの制御文字が挿入されてしまう仕様はありません。
RE:AS400 CPYSPLF もっこ さん [ 8月23日(水) 22時24分 ]
ご返信ありがとうございます。

CTLCHAR(*FCFC)です。

http://popup15.tok2.com/home2/iseries/faq/faq003.html

にあるようなことがプロジェクトで必要でした。

結論は、SQLでSELECTで結合するのではなくUPDATEで結合すれば桁ずれがなくなり解決できました。

お騒がせいたしました。
RE:AS400 CPYSPLF IKD さん [ 8月24日(木) 15時53分 ]
お読みになったサイの情報は少し古いようです。

スプールは現在 OS V5R4? SAVLIB, SAVOBJなどで保管することができるように
なっています。(もちろん復元も可能です。)
( ただし スプール・ファイル・データ  . . SPLFDTAを *YESに設定する必要があります。)

CPYSRCF で 制御文字  CTLCHAR (*FCFC) を指定するのはこのデータを
使ってスプールを復元するためであって現在のOSリリースでは
必要ありません。

参考までにスプールをデータに変換するのであれば CPYSPLF を使わなくても
OVRPRTF によって出力することも可能です。

この方法は近日中に http://www.as400-net.com で紹介します。
AS400 パスワードリセット後、起動できない binbin さん [ 8月22日(火) 15時58分 ]
AS400 パスワードを忘れたので、メインボードでパスワードをリセットした後、
システムが起動できなくなった、スクリーンで黒点がずっと動くことを現象になりました。
ハードウェアの問題ですか。どうすればいいでしょうか。
RE:AS400 パスワードリセット後、起動できない IKD さん [ 8月23日(水) 20時47分 ]
この障害は解決したのでしょうか ?

  1.「パスワードのリセット」という言葉も作業もIBM i には存在しません。
      どのような操作をされたのですか?

  2.起動できなくなった、というのはIPLが完了しないという意味でしょうか?
      メイン・ボード、スクリーンという用語もIBM i にはありません。
      ご質問の内容が不明です。

  3.操作ミスやソフトウェアの問題でハード・ウェアの障害が発生することは
  ありえません。
   (当たり前と言えば阿多の前の話ですが)

RE:AS400 パスワードリセット後、起動できない binbin さん [ 8月24日(木) 11時8分 ]
おかげさまで、その障害は解決しました。
「パスワードのリセット」というのは物理リセットで、
ハード・ウェアのメインボードで二つ白いリセットスイッチを押すということです。
ご迷惑をかけて申し訳ありませんでした。

こちらはリセットスイッチをもう一度押して、FSPカードはよくきれいようにした後、
再起動して、OKになりました。
DB2 型転換の問題について binbin さん [ 8月23日(水) 16時51分 ]
下記のSQL文はシステム7.1でOKになったが、5.4で異常終了(SQL0418)になってしまいました。
select A1,A2from test
where UPPER(A1) = UPPER(#[paramMap,B1])
上記のSQL文は下記のように修正(型指定)したら、両方OKになりました。
select A1,A2from test
where UPPER(A1) = UPPER(CAST(#[paramMap,B1]) AS VARCHAR(10))
5.4バージョンで型が一致でも、全部で型指定しなければならないですか。
SQL修正の量がいっぱいなので、SQLを修正しない(CASTを利用しない)で、
両方(システム5.4と7.1)で正常終了の方法がないですか。
教えていただけないでしょうか。
PCからCL、RPGをCALL後引数を使う KDM さん [ 9月4日(月) 21時14分 ]
PCからAS400内のバッチを呼び出して結果(例えばOKやNG)を
見てPCの処理を判断したいのですが、方法はありますでしょうか。
PC側が仮にVBで作成されたものだとすると可能でしょうか。
また逆は可能でしょうか。
教えていただけませんでしょうか。
RE:PCからCL、RPGをCALL後引数を使う HIROX さん [ 9月5日(火) 14時49分 ]
このような漠然とした質問に回答は難しいでしょう。

RE:PCからCL、RPGをCALL後引数を使う HJ さん [ 9月5日(火) 17時8分 ]
この様な一連の処理をするソフトがあります。
PCOMM と 呼ばれています。
RE:PCからCL、RPGをCALL後引数を使う HJ さん [ 9月6日(水) 10時7分 ]
AS400のFTPに 必要な機能があります。
ただし VBで FTP クライアントが作れないと、完全自動は難しいです。


RE:PCからCL、RPGをCALL後引数を使う IKD さん [ 9月5日(火) 17時54分 ]
なるほどそのとおりで CGI としても呼び出すこともできますが
VB とかODBCとか質問された方は頭の中にイメージは
持っているのだと思いますが
何をやりたいのかを明確に書かないとうかつに回答すると
そういう希望ではないと言われそうなので
どなたも回答しずらいのだと思います。
ご質問に当たっては具体的な情報はより多く語らないと
回答される方への誠意になりません。
RE:PCからCL、RPGをCALL後引数を使う KDM さん [ 9月6日(水) 8時46分 ]
回答くださいました皆様、漠然とした質問および情報不足の点お詫び致します。
PCOMMの件もありがとうございます。

PC側windows、ホストはV6R1です。
PC側はwindowsに限らず、javaであればRPGをパラメーター付きでcallした際
ホスト側のプログラムの終了を判断でき、且つRPG側でセットされたパラメーター
も取得できます。
VBだと一方通行でパラメーターも受け取れないとのことでこの質問に至りました。

IKD様のお察しのとおり具体的にVBとRPGのやり取りのイメージでした。

AS側に接続元とプログラム管理ファイルを自前で用意し、VB側SQLで自分の実行
結果を監視する方法も考えてはいるのですが、他にやりようがないかを考えて
いました。

回答くださいました方、どうもありがとうございました。
論理ファイルのセレクト条件について TU さん [ 9月13日(水) 10時4分 ]
論理ファイルについて質問です。
今日以上のデータのみをセレクトしたいのですが、
論理ファイルの条件文だけで出来るでしょうか?

ソース例
※下記書き方では、エラーになり、論理ファイルは作成できませんでした。

A          R TESTR                     PFILE(TESTP)
A*
A            KEY1           5A         COLHDG('キー1')
A            KEY2           2A         COLHDG('キー2')
A            YMD            8S 0       COLHDG('日付')
A*                                                        
A          K KEY1                                      
A          K KEY2
A*
A          S YMD                       CMP(GE *DATE)          
RE:論理ファイルのセレクト条件について IKD さん [ 9月14日(木) 22時7分 ]
できません。
アクセス・パスの内容が動的に毎日変化することは
あり得ません。
アクセス・パスも一種のファイルですから
それが変化するLFは作成することはできません。
SQL で実行する毎にアクセス・パスを作るというのであれば
可能ですが。
RE:論理ファイルのセレクト条件について TU さん [ 9月15日(金) 9時29分 ]
IKD様
返信ありがとうございます。

出来ないことがわかったので、勉強になりました。
RE:論理ファイルのセレクト条件について HIROX さん [ 9月15日(金) 14時35分 ]
なぜ必要なのか?という目的を書いておけば、代替案も出しやすいんですけど。
参考までに下記のSQLでVIEWを作成すれば、本日以降のデータ群のみを対象と
したの
作成できます。

CREATE VIEW LIBRARY/TESTVIEW AS 
SELECT * FROM LIBRARY/TEST
WHERE YMD >= INT(REPLACE(SUBSTR(CHAR(CURRENT_TIMESTAMP),1,10),'-',''))

LIBRARYは環境に合わせて変更で。

但し、適切なINDEXファイルを作っておかないと、VIEWの呼び出しで時間がかかる
可能性はあります。
RE:論理ファイルのセレクト条件について TU さん [ 9月19日(火) 10時43分 ]
HIROX様
返信ありがとうございます。

SQL参考にさせていただきます。
RE:論理ファイルのセレクト条件について HJ さん [ 9月20日(水) 20時29分 ]
CMP (GE 20170920) に 変える。 

20170920 の部分は RPGで 毎日書き換える。

LFは 毎回再作成が必要です。 
RE:論理ファイルのセレクト条件について TU さん [ 9月22日(金) 11時15分 ]
HJ様
返信ありがとうございます。

なるほど、ソースを変更してLFを再作成するんですね。
参考になります。
PCOMでAS400へつながらない binbin さん [ 9月13日(水) 18時40分 ]
PINGは通るが、クライントのPCOMでAS400へつながらない。
PCOM画面で登録画面(ユーザ、パスワード入力画面も出てこない)も表示できないで、
黒い画面(白いカーソルだけ)が表示しかない、一番左下、「セッションが開始しました」という表示
しかないです。
この場合、どうすればいいでしょうか。
教えていただけないでしょうか。
RE:PCOMでAS400へつながらない HJ さん [ 9月14日(木) 8時29分 ]
正しい設定をしてください。


相手がAS400でなくとも、このようなメッセージは、でます。
RE:PCOMでAS400へつながらない binbin さん [ 9月14日(木) 11時12分 ]
>正しい設定をしてください。
>相手がAS400でなくとも、このようなメッセージは、でます。
どんなメッセージでもないで、ユーザ、パスワード入力画面もないし、
PINGが通る、、、
どうすればいいでしょうか。
RE:PCOMでAS400へつながらない HJ さん [ 9月14日(木) 13時2分 ]
PING AS->PC  PC->AS 両方やりましたか。
アドレスは 正しいですか。

よくあること HJ さん [ 9月14日(木) 21時46分 ]
PCOMM が 壊れてます。
削除して、再インストール してください。

ファイヤウォールも 関係するかも。

別のPCを 用意して PCOMMを入れる。業務的には、ダメPCの修復は後でやる。
台数制限とか HJ さん [ 9月14日(木) 22時1分 ]
ASにメッセージは ないですか。
RE:PCOMでAS400へつながらない binbin さん [ 9月14日(木) 14時36分 ]
PING AS->PC  PC->AS 両方やりまして、PING成功できました;
iサーバーIPを正しい設定できました、ラインACTIVE状態、netstatでTELNETサービスが23番ポートで正常動く状態です。
RE:PCOMでAS400へつながらない 通りすがり さん [ 9月14日(木) 15時23分 ]
・AS400のバージョン
・PCOMMのバージョン
・他クライアントでの接続確認
・AS400のSYSVAL値
等々の情報がないと分からないと思います。
RE:PCOMでAS400へつながらない binbin さん [ 9月14日(木) 16時7分 ]
ご回答をありがとうございました。インライン回答させます。
・AS400のバージョン:6.1
・PCOMMのバージョン:5.7(Windows版)
・他クライアントでの接続確認⇒確認しました。
・AS400のSYSVAL値⇒一部抜粋します。
 1.QUSRLIBL 0 空白10 TAATOOL 20 TAATOOLE 30 QRPG 40 QTEMP 50 QIDU 60 QGPL
  2.QSYSLIBL 0 空白10 QSYS 20 QSYS2962 30 QSYS2 40 QHLPSYS 50 QUSRSYS
  3.QCCSID IDENTIFIER 65535
  4.QAUTOVRT AUTOCONFIGURE :*NOMAX
  5.QAUTOSPRPT 0(OFF)
  6.QAUTORMT 1(ON)
  7.QAUTOCFG 1(ON)
  8.QAUDLVL2 *NONE
  9.QAUDLVL  *NONE
  10.QAUDFRCLVL *SYS
  11.QAUDENDACN *MOTIFY
  12.QAUDCTL *AUDLVL
RE:PCOMでAS400へつながらない IKD さん [ 9月15日(金) 8時55分 ]
「セッションが開始しました」とメッセージされているのは
通信の接続は成功していることを意味しますので
PING が通ることになります。
次にサイン・オン画面が出ないのは装置が不適切であるので

 ・装置が選択できない   または
  ・選択された装置が使用不能である。

ということになりますがシステム値では

  QAUTOCFG:自動構成装置 = 1 (オン)  
  QAUTOVRT: 動構成装置の数 = *NOMAX (無制限)

であれば装置は選択されます。
と、いうことは選択された装置が使用不能ということになります。

選択された装置が使用不能であるということは

  ・装置が「使用不可」となっているか「オフ」であるか
    クライアントの要求に対して「不適切」な装置である。

ということになります。
今まで接続の実績があるなら「使用不可」となっているだけの
可能性だ高いと思います。

恐らくは DSPMSG QSYSOPR でエラー・メッセージが報告されているはずです。
メッセージがなければ WRKCFGSTS *DEV で「使用不可」の装置をオプション=1で
オンにしてから再接続します。

確実に接続実績のある装置名を指定して接続するのも
可能性があります。

いずれにしても論理的に原因を追究することが大事です。
QCTL接続 SAKI さん [ 9月21日(木) 11時8分 ]
エミュレータ画面(ACS)のセッション(ジョブ)をQCTLに接続したいのですが
TRFCTLコマンドで一時的に接続は出来ます。また、ADDWSコマンド
で接続も確認出来ています。しかし、QINTERを再起動した後接続を
するとQINTERに付いてしまいます。エミュレータ起動した際に必ず
QCTLに接続する方法は有りますでしょうか?
ただ、目的は、QINTERが起動していない場合、QCTLに接続出来れば
良いのですが。

V6.1のIBMI使用です。
RE:QCTL接続 koma さん [ 9月23日(土) 0時17分 ]
お疲れ様です。
QINTERのワークステーション名項目に該当の端末IDをジョブ制御「*ENTER」で登録すればQINTER
には接続されません。
RE:QCTL接続 SAKI さん [ 9月25日(月) 13時23分 ]
出来ました!。大変有難うございました。
STRSEUの画面に色 初心者SE さん [ 9月26日(火) 10時26分 ]
いつもお世話になっております。
たまに、STRSEUの画面で色を変えていたり、
反転表示しているコーディングソースを見かけるのですが、
どのようにやっているのでしょうか。
RE:STRSEUの画面に色 IKD さん [ 9月26日(火) 22時26分 ]
http://www.as400-net.com : AS/400 TIPS & Technichis 

 の TOOLS で

10. SEU のカラー化
48. (再)ソースのカラーをつける COLORSRC

 で方法を紹介しています。
  メンバー登録が必要ですので
  メンバー登録してください。

 確かに最近はSEU のカラー化をよく見かけます。
 
 メンバー登録して頂ければ他にも多くのテクニックを
 入手できますので是非ご利用ください。
RE:STRSEUの画面に色 初心者SE さん [ 9月28日(木) 14時4分 ]
IKD様
ありがとうございます。

メンバー登録して試してみようと思います。
 
SQL KDM さん [ 10月4日(水) 11時45分 ]
AS400で使っているSTRSQLコマンドから手入力するSQLコマンドの一覧のサイトがもしあれば教え
ていただけませんでしょうか。よろしくお願い致します。
RE:SQL IKD さん [ 10月4日(水) 13時14分 ]
http://www.as400-net.com の「IBM i マニュアル PDF」の中に
 SQL のマニュアルPDF もあります。
RE:SQL KDM さん [ 10月5日(木) 16時13分 ]
IKD様、ありがとうございます!
ASのCPU使用率が100%近くになった場合 AS400 初心者 さん [ 10月5日(木) 16時18分 ]
いつもお世話になっております。
WRKSYSSTSでASのCPU使用率が表示されますが、このCPU使用率が上がり過ぎて
ASがダウンするなど何らかのトラブルが発生しますでしょうか?

レコード数が227万件、合計メンバーサイズが2016563200のPFがあり
このファイルをSQLから条件を選択して抽出するプログラムを作成しているの
ですが
SQLを実行するとCPU使用率が80%近くまで上昇します。

もし複数のPCからこのSQLを実行した場合はCPU使用率がもっと上がると思われ
ますので
このままプログラムを作成していいものかと躊躇しています。
RE:ASのCPU使用率が100%近くになった場合 IKD さん [ 10月5日(木) 20時38分 ]
227万件のレコードをSQLで読むというのはかなり乱暴に思えます。
SQLでのレコード抽出はすべてのレコードを読んでから
抽出するので当然パフォーマンスは良くありません。
それとSQLは索引部分をすべてCPUメモリの中に取込んで
しまうので大量のメモリを消費します。
その SQL も 227万件のレコードを全部読んでから
レコードを抽出しているのです。

ただしメモリ消費量が 100% 近くなったとしても
IBM i 自体には何の問題もありませんが
当然、他の業務はかなり遅くなってしまい
エンド・ユーザーからはクレームの嵐になります。

Windows PCに比べて IBM i のCPU容量は小さいとは思いませんか?
これは IBM i がレコード単位のアクセスが基本であるので
1レコードを読取るメモリがあれば十分であるのに対して
Windows のアーキテクチャーはプログラムがファイルを
読むのはファイル全体を読んですべてメモリに入れてから
処理するからです。
つまり Windows適用プログラムはファイル全体を読み込んで
しまわないと処理できないのです。
Windwosはストリーム・ファイルしか扱えないので
こんなことになってしまっています。
これが Windows がビジネス・ユースに向いていない原因です。

つまり 100MB の容量のファイルを読むには CPUが 100MB を
必要となってしまいます。
これに対して IBM i は 1レコード分しか読まないので
例えば 1レコードはせいぜい 1024バイトくらいしか必要ないのです。

ところが SQL となると IBM i でも話は別で
Windows と同じことが起こります。
つまりすべてのレコードを読んでメモリに入れる必要があるので
メモリを大量消費してしまいます。

ところが227万件あるデータ・ベースでもキーつきのファイルであれば
RPG で CHAIN すれば 0.01秒もかかりません。

もちろんメモリの消費も起こりません。
これは対象データ・ベースが 1000万件であっても同じです。
レコードは一瞬で抜き出されます。

長々と書いてしまいましたが SQL は大量データ・ベースのアクセスには
全く向いていませんし大量データ・ベースに SQL でフクセスするのは
不適切です。

たまに CHAIN を知らない開発者が無理やりなんでもSQLで
アクセスしているのを見かけますが IBM i にはせっかく
レコード・レベルのアクセスとして CHAIN があるのですから
是非利用してください。
大量データ・ベースに対しては苦手であってもSQLはやめましょう。

ご参考までに COBOL には CHAINはありません。
RE:ASのCPU使用率が100%近くになった場合 AS400 初心者 さん [ 10月6日(金) 10時9分 ]
色々ご教示頂きありがとうございます。


実はVBでASのデータを抽出してFormに表示する必要がありまして
下記のような流れでのプログラムを作成しております。

?対象データをユーザーの任意の検索条件で抽出
?抽出結果をリスト表示
?リストから選ばれたレコードを詳細データを別Formで表示


手順?で抽出する際にリスト表示する項目が多いとCPU負荷が高かったため
リスト表示する項目を大幅に減らしたところ、CPU使用率は20%程度までに抑え
られました
(それでも大きいとは思いますが)

ただこのプログラムを複数のユーザーに提供すると同時に実行される可能性が
あるため
最悪の場合CPU使用率100%いってしまうのではと思っておりました。

IKDさんのコメントでCPU使用率が100%にいってもASが落ちることはないという
ことでしたので少し安心しました。
ですがそもそもそのような大きなテーブルをSQLで抽出するということがあま
り良くないということですね。

負荷がかかり過ぎて他のASのプログラムに影響が長時間あると良くないため
検索範囲指定が広い場合はエラーにしたり、
2分待ってもSQL実行結果が返ってこなければエラーにして処理を中断するなどの
処理を加えたいと思います。

ありがとうございました。
AS400で√計算 AS新人 さん [ 10月10日(火) 11時8分 ]
いつもお世話になっております。ASで√の計算ってできますか?
√314の値を求めたいのですがどうすれば良いのでしょうか?
RE:AS400で√計算 IKD さん [ 10月10日(火) 11時29分 ]
IBM i で数学関数が唯一用意されているのが
OPNQRYF コマンドです。
ただし OPNQRYF を使用するには少し学習が必要です。

OPNQRYF の MAPFLDパラメータには特別な数値関数を組込み関数として
利用することができます。
 %SQRT (平方根) が今回、求めておられる関数に相当します。

OPNQRYF の組込み関数は
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_71/dbp/rbafobif.ht
m

51.RPG で数学関数を使用するには?

http://www.as400-net.com/tips/rpg/51.html
RE:AS400で√計算 AS新人 さん [ 10月10日(火) 13時28分 ]
IKD様、ありがとうございます。
OPNQRYF初めて聞きました。
勉強してみます!!
SQRT HJ さん [ 10月10日(火) 16時14分 ]
RPG400 に SQRT 命令があります。 
ACSのFileEncodingについて ACS検証 さん [ 10月10日(火) 16時5分 ]
お世話になります。

Windows10導入に向けてACSの検証実施しておりますが、
.DTFXを用いてデータを落とす際に漢字が文字化けしてしまいます。
※Shift_JIS、Windows-31j、UTF-8等すべてで発生

【例】
・クライアントアクセス⇒箱
・ACS⇒・?・・

クライアントアクセスやPcommV12ではASC?テキストで出力されておりますが、
ACSではASC?の設定が出来ないのでしょうか。
追加方法等あれば御教授お願い致します。


RE:ACSのFileEncodingについて ACS検証 さん [ 10月10日(火) 16時12分 ]
環境依存文字の考慮が足りておりませんでした。失礼しました。

正しくは ASC? =ASCII です
漢字 HJ さん [ 10月20日(金) 18時50分 ]
CAは、漢字フィールドで、OE OF で囲まれた部分を変換します 。
PCOMMは 文字フィールドなら 漢字変換します。

CCSIDに注意。
RE:漢字 くろ さん [ 11月27日(月) 22時7分 ]
私はダウンロードはx-IBM942、アップロードはwindows31jを指定しています。
スプールファイルの情報取得について AS新米 さん [ 10月13日(金) 19時0分 ]
スプールファイルの情報を出力したく、WRKSPLFを用いて出力しようとしましが、
OUTQによっては出力されませんでした。

権限、所有者によって閲覧できない等の設定があるのでしょうか。
QUSRSPLA等のAPIを使用して出力をトライしましたが、QUSRTVUSを使用して総称見出しから
データを取り出す時点で対象データの取得が出来ませんでした。

【例】
WRKSPLF SELECT(*ALL TESTOUTQ) OUTPUT(*PRINT)
RE:スプールファイルの情報取得について IKD さん [ 10月13日(金) 20時55分 ]
 API の操作だけでなくエラーヘの原因をふと想像してしまうことは
 やってはいけないことではありませんが、
 それが原因と仮定するならそれが原因である証拠を見つけることが
 必要です。

 想像するより QUSRTVUS のAPIエラー・コードを調べるべきで
 それが近道です。
 どのような情報を取得して何をしたいのかを明確にして
 質問されたほうがよろしいかと。

 QUSRSPLA も QUSRTVUS も問題なく動作します。
 うまく動作しないからといって原因をただやみともに
 想像するのではなくエラーの内容を調べないと
 原因はわかりまらんし解決もできません。

 APIエラー・コードが ERRMSG構造体に戻されていますので
 きちんと調べて原因を追究しましょう。
 
 何をしたかもわからないでエラー・コードもわからない状態では
 解決はできません。

  (1). 具体的ににやりたいこと
  (2). 具体的にやってみたこと
  (3). 結果としての具体的なエラー内容
 
 290. API エラー報告

 http://www.as400-net.com/tips/rpg/290.html
RE:スプールファイルの情報取得について AS新米 さん [ 10月16日(月) 13時43分 ]
具体的な内容記載をしておらず申し訳ありません。

(1)具体的にやりたいこと
待ち行列内スプール毎のページ数を出力したい
※調査対象OUTQに月4万スプールが作成されており(ジョブ番号、ファイル番号がバラバラ)、
手集計の手間があるためWRKSPLF、もしくはAPI等を用いて出力したい

(2)具体的にやってみたこと
ページ数を取得し、印刷機器の負荷量調査を行いたい。
また、完成すればJOB番号/FILE番号を取得する事が出来るためその他にも応用したい。

(3)結果としての具体的なエラー内容
APIERRを確認し、エラー発生確認が出来ず、
手前の処理のユーザー・スペースに対象データ書き込みがされていないことを確認
→QUSLSPLのパラメータを確認し、記述間違いだった事が判明しました。

ページ数はQUSRSPLAのSPLA0200フォーマットで出力し、149?152桁の値で取得できました。

IKD様
APIERRについて初めて知りました。API記述では汎用使用出来るのですね。
今後ともよろしくお願い致します。
acs カーソル位置表示 saki さん [ 10月16日(月) 10時24分 ]
ACSエミュレータ画面でカーソルの位置(行桁)の表示
方法をお教え下さい。
(以前のCAでは表示されていたのですが)
v6.1
RE:acs カーソル位置表示→自己解決 SAKI さん [ 10月16日(月) 14時50分 ]
すみません。自己解決です。
メニューの編集→設定→外観→表示→表示のOAIでの行列標識をオンに
すれば表示されました。
pcomプリンタセッション 改ページが上手くいかない やん さん [ 10月18日(水) 18時53分 ]
ラインプリンターで出力していた印刷をEPSON VP-5200にPCOMプリンタセッション(PDTファイル使用
使用:ESC_P)を使用して印刷しようとしているのですが、用紙の高さが4.5インチ、6.5インチの帳
票の改ページが上手くいきません。5インチは上手くいきます。ラインプリンタでは、どれも上手く
いきます。プリンタセッションを介さないWindows(メモ帳など)からvp-5200に印刷を行っても4.
5インチなど改ページがきちんと行われます。PCOMのデフォルトのPDTファイル(ESC_P)ではダメな
のでしょうか?追加設定が必要なこと教えていただけないでしょうか?
RE:自己解決 やん さん [ 10月19日(木) 17時17分 ]
高さを整数インチの帳票に用紙を変更することになり、問題が解消されることとなりました
FTP PUTにて接続はピアによってリセットされましたのエラー さん [ 10月23日(月) 12時30分 ]
DOS窓で、FTPを利用し、PCにあるSAVFを、ASへPUT時、以下のエラーが発生し、困っています。

C:\Users\xxxx>ftp XXX.XXX.XXX.XXX
xxx.xxx.XXX.xxx に接続しました。
220-QTCP AT xxx.xxx.xxx.xxx.
220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.
501 OPTS UNSUCCESSFUL; SPECIFIED SUBCOMMAND NOT RECOGNIZED.
ユーザー (xxx.xxx.xxx.xxx:(none)): xxxxxx
331 ENTER PASSWORD.
パスワード:
230 xxxxxx LOGGED ON.
ftp> bin
200 REPRESENTATION TYPE IS BINARY IMAGE.
ftp> put d:\aaaaaa.sav xxxxlib/bbbbbb
200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
150 SENDING FILE TO MEMBER bbbbbb IN FILE bbbbbb IN LIBRARY xxxxLIB.
> Netout :接続はピアによってリセットされました
426-CANNOT WRITE TO MEMBER bbbbbb IN FILE bbbbbb IN LIBRARY xxxxLIB.
426 DATA TRANSFER ENDED.
ftp: 2280421395 バイトが送信されました 794.51秒 2870.23KB/秒。

送信元ファイルのサイズは、3.64GBほどあります。

実行環境は、PCはWIN10、ASはV5R4です。
PCのファイヤーウォールはOFFにして実行しても同じ現象よなります。
RE:FTP PUTにて接続はピアによってリセットされましたのエラー ⇒自己解決 さん [ 10月23日(月) 16時37分 ]
PC内のファイルが壊れていたようでした。
ベリファイ HJ さん [ 10月24日(火) 12時58分 ]
GET したら ただちに PUTして ベリフアイする。
PCの信頼性は、すごく ひくい。
 
ACSのSQLスクリプトの実行画面について AS400 初心者 さん [ 10月25日(水) 13時47分 ]
iナビからの「SQLスクリプトを実行」の場合は文字化けせずに実行出来ましたが
ACSの「SQLスクリプトの実行」から2バイト文字を入力すると□に文字化けし
てしまいます。
文字化けしない方法はありますでしょうか?
CPYF で文字データの$がコピーされない とうしろう さん [ 10月26日(木) 10時42分 ]
CPYF  FMTOPT(*MAP *DROP) で、データをコピーしたところ、
文字データの中に含まれていた、'$' や '%' がコピーされず、
その部分だけ空白になってコピーされました。

今まで CPYF コマンドを使ってきて、このようなことは初めてです。

回避策はあるのでしょうか?
RE:CPYF で文字データの$がコピーされない とうしろう さん [ 10月26日(木) 11時11分 ]
上の投稿で訂正します。

文字フィールド中の'%' はコピーされていました。
 '$' が空白に置き換えられてコピーされました。

COLOR(YLW)またはCOLOR(TRQ)でカラムセパレータを消したい。 JUN さん [ 11月1日(水) 16時56分 ]
お世話様です。

DSPFで指定するカラー表示の制限を外したいと思っています。

具体的には、
 
 COLOR(YLW) 黄色

 COLOR(TRQ) 空色

に指定した場合、桁区切り(カラムセパレータ)が同時に表示されますが、

このカラムセパレータを消したいと思っています。

(行間隔縮小モードを指定すれば消えると書いているものもありましたが)

 合わせて、行間隔縮小モードとはどの様に指定するものなのかも知りたいと思います。

よろしくお願いします。
QTEMPのファイルをPCに転送したい はたもち さん [ 11月3日(金) 9時59分 ]
お世話になります。

“QTEMPにCSV形式で作成したファイル” をPCに転送する処理をユーザーメニューに組込みたいで
す。

PCOMM機能ではライブラリのQTEMP指定が出来ません。
FTP転送はIPが固定でない為使用出来ず...
何か良い方法は無いでしょうか?

よろしくお願いします。
RE:QTEMPのファイルをPCに転送したい IKD さん [ 11月3日(金) 15時32分 ]
 PCOMM, ClienatAccess, ASC ...いずれを使ってもクライアント・モジュールからは
 QTEMP を見ることはできません。
 従ってこれらの製品ではご希望の機能の実現はできません。

 これに対してサーバー・サイドから転送を実行することができれば
 QTEMP からの送信も可能となります。
 サーバー・サイドからの転送を実現するには

  ・サーバー・サイドで動的なSQL要求を処理する
   ・サーバー・サイドから指定されたPCクライアント・ファイルに送信する

 という2つの技術が要求されます。
 いずれも残念ながら簡単に実現はできませんが
 製品としてなら AutoWeb のサーバー転送があります。

  http://www.officequattro.com/jpn/software/contents/autoweb/data.html

 既存のPCにあるデータ転送定義をそのまま使えるのはもちろんですが
 データ転送定義をサーバーヘ側(IBM i)に移すだけで
 サーバー・サイドの転送となりご希望の機能が実現できます。
RE:QTEMPのファイルをPCに転送したい HJ さん [ 11月4日(土) 23時56分 ]
転送用ライブラリーにコピーする。
RUNRMTCMD について おざたか さん [ 11月9日(木) 9時36分 ]
お世話になります
環境:Windows7 32Bit
     Excel2013
     IBM i Access for Windows R7V1 SI62603

RUNRMTCMD を使って、EXCELを起動すると終了してくれません
試しに開いて閉じるというVBAを記述
Sub auto_open()
    Application.Quit
    ThisWorkbook.Close False
End Sub
直接起動では、問題なく開いて閉じます
RUNRMTCMDで実行すると、開きますが閉じてくれません
同じような処理をACCESS2013でテストしたところ、
ACCESSでは開いて閉じると正常に動作します

Windows側で何か必要なのでしょうか?
ご教授のほどよろしくお願いいたします

RUNRMTCMDの件 坂下 さん [ 11月10日(金) 10時33分 ]
お世話になります。私もRUNRMTCMDで質問があります。

RUNCMTCMDでnotepadを起動すると

・WindowsXPでは画面上にnotepadが起動

・Windows7や10だとタスク マネージャー上では起動しているのですが、
 画面上には見えない。

設定やRUNRMTCMDで指定するユーザーでWindows側をログインしておいたり、
色々しているのですが、できません。

ご教授の程、宜しくお願い致します。

RE:RUNRMTCMDの件 坂下 さん [ 11月10日(金) 12時47分 ]
自己解決しました。

コンパネの着信リモート・コマンドの「システムとして実行」を外す。

レジストリで
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Windows\NoInteractiveSe
rvices の NoInteractiveServices を0に。

といったあたりがキーポイントだったような気がします。

パスワード投稿者名の禁止 管理人 さん [ 11月10日(金) 20時44分 ]
最近、パスワード名を投稿者名に利用される方があります。
パスワードを投稿者名に使用されている場合は理由の如何にかかわらず
直ちに削除致します。

またそのIPアドレスからのアクセスを禁止致します。
パスワードを使用することは厳に禁止致します。

マナーをお守りください。
Access Client Solutionsのデータ転送でASCIIコード変換の指定ない T さん [ 11月17日(金) 15時58分 ]
5250エミュレーターのデータ転送でASCIIコードに変換指定してCSVファイルを作成していたのですが

Access Client Solutionsのデータ転送にはASCIIコードへの変換指定がありません。
その他の変換では環境依存文字が化けてしまいます。
どうすればよろしいでしょうか?
RE:Access Client Solutionsのデータ転送でASCIIコード変換の指定ない くろ さん [ 11月27日(月) 13時50分 ]
windowsへのダウンロードならば、変換をx-IBM942で行ってみてはどうですか
RE:Access Client Solutionsのデータ転送でASCIIコード変換の指定ない T さん [ 11月28日(火) 18時28分 ]
くろさん
ご教授ありがとうございます。
一部を除いてはデータ転送が上手くいきました。
変換をx-IBM943したら問題が解決できそうです。
いろいろテストしてみます。
本当にありがとうございました。
TOOLSのDSPPGMSTKのパネルグループのコンパイル かず さん [ 11月27日(月) 17時56分 ]
TOOLSの『55.入出力レコードを表示するDSPPGMSTK』のソースをダウンロードしてパネルグループのコンパイルをしたいのですが、エラーになりコンパイルができません。
クラスのインポートが必要みたいなんですが、クラスはどこにあるんでしょうか。
公開されておらず、コンパイルができなのでしょうか。
データ転送ツールについて K.H さん [ 11月30日(木) 11時25分 ]
クライアントアクセスやACSのツールにDTF(データ転送)というのがありますが、
DTFは事前に設定してクライアントに配布しておけば、データをエクセルに落とし込むことが
できるので重宝しております。

しかし当方は各店舗ごとデータを保存するライブラリを分けているので、ファイルを指定するときに、
TOKYOLIB.URIAGE、OSAKALIB.URIAGEといった感じで、DTFを店舗分それぞれ作らないといけません。
これを解決する方法はございませんでしょうか。
RE:データ転送ツールについて IKD さん [ 11月30日(木) 20時42分 ]
なるほど。つまりIBM i サーバー側の判断でどのDTFを利用するかを
判断しなければなりませんが
これをできるのはサーバー・サイドによるデータ転送だけです。

 http://www.officequattro.com/jpn/software/contents/autoweb/data.html

 であれば店舗を判断してDTFを加工したり利用するDTFを判断したりすることが
できます。
データ転送はこれからの時代はサーバー・サイドにDTFを置いて
転送先を指定するデータ転送に変わっていくでしょう。
サーバー・サイドに転送記述があれば配布の必要もありませんし
Win10問題も発生しません。

デモが名古屋セミナーで12/8(金)に開催される予定です。
ほぼ満杯ですが、あと3席の残りがあります。
http://www.officequattro.com/jpn/seminar/contents/20171208.html
RE:データ転送ツールについて K.H さん [ 11月30日(木) 22時50分 ]
IKDさま

ご返事ありがとうございます。
サーバーサイドにDTFなんて夢のような機能です。
以前東京駅のセミナーに伺ったことがありますが、
名古屋は遠いのでまた次の機会に伺わせていただきます。
AutoWebのリンクも見させていただきます。
配列の要素数について K.H さん [ 12月19日(火) 12時52分 ]
配列について教えてください。

ここのサイトにある、「大量バッチ処理の RPG の速度をあげるには」を見させていただきました。
CHAINを使うよりLOOKUPを使う方がパフォーマンスが良いという内容です。

私も配列に入れて処理するほうが断然早いなと思ってそうしていたのですが、上司からなんで
無駄なことするの?配列みたいな有限なものにDBの内容突っ込んで落ちたらどうするんの?
とダメだしされました。

オープン系の言語では配列の要素など決めずにどんどん放り込めますが、
RPGは前もって数を指定しないといけません。
これはなんとかならないものでしょうか。

ご存じの方おられたら教えてください。
よろしくお願いいたします。
RE:配列の要素数について IKD さん [ 12月19日(火) 20時23分 ]
その上司の方のご心配のために

44.ILE-RPG の動的配列の使用法

213. 配列指標のエラーを出さないようにするには ?

を用意しています。参考にしてください。

大量バッチで件数の少ないマスターにCHAINを
繰り返すよりは LOOKUP のほうが圧倒的に
パフォーマンスに優れた方法です。
この方法は米国サイトに紹介されていたテクニックで
実際にかなり効果はありました。

一方、CHAINする対象のマスターの件数が
多い場合は適切ではありません。
いちがいにオーバーしたら?と決め付けるのでは
なくケースに応じた適切な方法を選択すべきです。
オーバーしたらどうするの?と決め付けるより
213.配列指標のエラーを出さないようにするには 
もご覧ください。
開発は単純ではありません。
RE:配列の要素数について K.H さん [ 11月29日(木) 15時42分 ]
IKD様

ご返事遅れ申し訳ありません。
情報ありがとうございます。
コマンド初期値の件 stomo さん [ 12月20日(水) 10時8分 ]
テストであるジョブだけCRTPFのコマンドの初期値を変更したく、
コマンドをQTEMPにコピーして、CHGCMDDFTをかけましたが、
EDTLIBLの中にもないQSYSのCRTPFが優先されてしまいます。

(WAITFILEとWAITRCDを*IMMEDにしてどのファイルがLCKWするかを調査)

今回はあきらめてCL上のすべてのCRTPFのパラメータを変更しました。

CL上でQTEMP/CRTPFにする以外の方法でいい案があれば教えていただきたいです。


RE:コマンド初期値の件 IKD さん [ 12月20日(水) 19時45分 ]
QTEMP/CRTPF として実行すれば それが優先されますが。
後はライブラリー・リストを変えるしかありません。
RE:コマンド初期値の件 @445 さん [ 12月21日(木) 9時0分 ]
QTEMPをQSYSより上位にすることはCHGSYSLILB QTEMP *ADD
で可能です。(解除はCHGSYSLIBL QTEMP *REMOVE)
ライブラリー参照の順位はDSPLIBLで確認してください。


RE:コマンド初期値の件 stomo さん [ 12月21日(木) 14時30分 ]
今回は「あるジョブだけ」だったのでCHGSYSLIBLだと全ジョブになってしまいますが、
それでもできる方法が分かり勉強になりました。

ご返信、誠にありがとうございます。
RE:コマンド初期値の件 @445 さん [ 12月21日(木) 17時35分 ]
CHGSYSLIBLは現行ジョブにのみ適用されるはずなので
コマンド実行後サインオフすれば元に戻ります。
全JOBに対しはシステム値(QSYSLIBL)を変更することになりますね。
RE:コマンド初期値の件 stomo さん [ 12月23日(土) 16時45分 ]
確かにヘルプに

「システム・ライブラリー・リスト変更 (CHGSYSLIBL) コマンドは,現行スレッドのライブラリ
ー・リストのシステム部分を変更します。」

と書いてありますね!

更に勉強になりました!ありがとうございます。
JOBQ未処理件数の監視 KDM さん [ 12月27日(水) 0時50分 ]
V6R1を社内で稼働させてます。
JOBQで1件ずつジョブを走らせてデータを別システムへ計上する処理があります。
アクティブジョブは1ジョブで1ジョブずつ処理させてます。
中継のマクロの動作の不具合が原因でジョブがたまってしまう事象が稀に発生します。
ある程度はマクロからの不具合は発生しないようにしてますが、それでも他のパターン
が原因で待ちがたまってしまう恐れがあります。
JOBQの待ち件数を監視したいのですが、この情報をCLか何かで取得する方法は
ありませんでしょうか。
よろしくお願いします。
WRKJOGQ MKB さん [ 12月27日(水) 8時31分 ]
WRKJOBQ でスプールに 落とす。
RPG で 解読。
RE:WRKJOGQ KDM さん [ 12月27日(水) 14時6分 ]
MKB様、ありがとうございます。
Qがたまった時に確認してみます!
RE:WRKJOGQ KDM さん [ 12月27日(水) 20時59分 ]
MKB様この方法でとることができました。
APIの方も試しています。
ありがとうございました。
RE:WRKJOGQ まめたろぅ さん [ 12月27日(水) 12時4分 ]
API QSPRJOBQ を利用すればJOBQの待ち件数を取得できると思います。
サンプルは下記サイトを参考にすればどうでしょうか。
http://www.think400.dk/apier_5.htm#eks0005
RE:WRKJOGQ KDM さん [ 12月27日(水) 14時15分 ]
まめたろぅ様、まめたろぅさん様、ありがとうございます。
APIで試したいのですが、CLでCALLすればよいと思ってますが
その考え方でよろしいでしょうか。
IBM Knowledge Centerを見ましたところ以下をパラメータとして呼ぶのだ
ということは分かったのですが以下5パラメータのうち1、2が
どうしても何をセットしてよいか理解することができませんでした。
1が変数名で2が長さ、でしょうか。
1 Receiver variable Output Char(*) 
2 Length of receiver variable Input Binary(4) 
3 Format name Input Char(8) 
4 Qualified job queue name Input Char(20) 
5 Error Code I/O Char(*) 
質問の目的とはズレてしまい申し訳ありません。
RE:WRKJOGQ まめたろぅ さん [ 12月27日(水) 16時14分 ]
< CLでCALLすればよいと思ってますが
< その考え方でよろしいでしょうか。
はい、CLでCALLできます。

< 1が変数名で2が長さ、でしょうか。
そうです。
サンプルでは、変数の長さが144バイトとして設定しています。
APIを呼んで返ってくる変数の中で48バイト目から4バイト分がジョブの数です。
RE:WRKJOGQ まめたろぅ さん [ 12月27日(水) 16時19分 ]
補足します。
1の変数の中身は空っぽのまま API に渡せばいいです。
APIからの結果が1の144バイト分の変数に返ってきますので
その中の48バイト目から4バイト分を確認すればよいでしょう。
RE:WRKJOGQ KDM さん [ 12月27日(水) 17時41分 ]
まめたろぅさん様、ありがとうございます!
早速試してみます!
RE:WRKJOGQ KDM さん [ 12月27日(水) 20時58分 ]
まめたろぅ さん様、144バイトの中身をデバッグで見たのですが、バイナリー部分は見えません。
当然ですよね。CHARの144でかえってきたもののバイナリー部分を取る方法を教えていただくことは
できませんでしょうか。
------------------------------------------------------------------
DCL        VAR(&RCVV) TYPE(*CHAR) LEN(144)
DCL        VAR(&JQCNT) TYPE(*CHAR) LEN(04)

CALL       PGM(QSPRJOBQ) PARM(&RCVV &SIZE &FNAME &JFNAME &ERRCD) 

CHGVAR     VAR(%SST(&RCVV 48 4)) VALUE(&JQCNT)
------------------------------------------------------------------
JQCNTにそのままセットではだめなのかと…。

RE:WRKJOGQ HIROX さん [ 12月28日(木) 10時41分 ]
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_61/cl/chgvar.htm

JOBQ0100 Format

The following table shows the information returned for the JOBQ0100
format. For more details about the fields in the following table, see
Field Descriptions.
Offset Type Field
Dec Hex
0 0 BINARY(4) Bytes returned
4 4 BINARY(4) Bytes available
8 8 CHAR(10) Job queue name
18 12 CHAR(10) Job queue library name
28 1C CHAR(10) Operator controlled
38 26 CHAR(10) Authority to check
48 30 BINARY(4) Number of jobs
52 34 CHAR(10) Job queue status
62 3E CHAR(10) Subsystem name
72 48 CHAR(50) Text description
122 7A CHAR(10) Subsystem library name
132 84 BINARY(4) Sequence number
136 88 BINARY(4) Maximum active
140 8C BINARY(4) Current active

って書いてあるのだから、読めるように変数に入れてあげましょうよ。
RE:WRKJOGQ まめたろぅ さん [ 12月28日(木) 12時50分 ]
> CHGVAR     VAR(%SST(&RCVV 48 4)) VALUE(&JQCNT)

この場合には、%BIN 関数が有効です。
下記のように指定すればよいでしょうか。
CHGVAR VAR(%BIN(&JQCNT)) VALUE(%SST(&RCVV 48 4))

あと、APIからの戻り変数 &RCVV の各項目の位置は
OFFSETだったので、「48バイト目から4バイト」ではなく
「49バイト目から4バイト」かも知れません。
上記のCHGVARを試してうまく値が取得できなければ
CHGVAR VAR(%BIN(&JQCNT)) VALUE(%SST(&RCVV 49 4))
も試してみて下さい。

もう少しで実現できそうですね。
RE:WRKJOGQ KDM さん [ 12月28日(木) 16時51分 ]
まめたろぅ 様 無事できました!
ありがとうございました!
1コマンドではだめで一旦SSTしたものを*DECにCHGVARしたら取れました。
またおっしゃるとおり49から4バイトでした。

DCL        VAR(&RCVV) TYPE(*CHAR) LEN(200)
DCL        VAR(&JQCNT) TYPE(*CHAR) LEN(04) 
DCL        VAR(&JQCNT2) TYPE(*DEC) LEN(10) 

CALL       PGM(QSPRJOBQ) PARM(&RCVV &SIZE &FNAME &JFNAME &ERRCD)
CHGVAR     VAR(&JQCNT) VALUE(%SST(&RCVV 49 4)) 
CHGVAR     VAR(&JQCNT2) VALUE(%BIN(&JQCNT))    
【訂正】RE:WRKJOGQ まめたろぅ さん [ 12月28日(木) 13時34分 ]
ちょっと試してみたら上記の方法では変換エラーになってしまいました。

下記の方法でどうでしょうか。
DCL VAR(&JQCNT)   TYPE(*CHAR)    LEN(004)
DCL VAR(&JQCNT2)  TYPE(*CHAR)    LEN(004)

CALL PGM(QSPRJOBQ) PARM(&RCVV &SIZE &FNAME &JFNAME &ERRCD)
CHGVAR VAR(&JQCNT2) VALUE(%SST(&RCVV 49 4))
CHGVAR VAR(&JQCNT)   VALUE(%BIN(&JQCNT2))

当方のマシンでは
この方法にて、&JQCNT にジョブ数の値が取得できました。
RE:【訂正】WRKJOGQ KDM さん [ 12月30日(土) 19時50分 ]
まめたろぅ さんありがとうございます!
&JQCNT2を *CHAR  にされてる点が違うということでしょうか。
本体の違いでしょうか、大変参考になります。
数値項目にNULLを入力できますか? SK さん [ 12月27日(水) 17時49分 ]
数値項目に、NULLを登録したいのですが、
方法はございますか?

ALWNULLを試してみた所、空白なのかデータが入っているのか、
分からない状態になりました。
よろしくお願いいたします


RE:数値項目にNULLを入力できますか? HIROX さん [ 12月28日(木) 9時57分 ]
物理ファイルの数値項目にNULLを許可しているということですよね?

であれば、数値またはNULLしかそのフィールドには入らないはずですよね。
つまりブランクはあり得ないと思うのですが?
RE:数値項目にNULLを入力できますか? SK さん [ 1月26日(金) 8時38分 ]
ご回答の程、ありがとうございます。
V7R3 QNTC stomo さん [ 1月8日(月) 11時57分 ]
V7R3でQNTCによるWindows SBMの参照ができなくなりました。

エラーコード3401でCPDB053が発生します。

サービスリクエストはこれからかけますが、
もしご存知の方、いらっしゃいましたら、教えていただいただけると幸いです。

英語サイトでは似たような事例を確認しましたが。。。
RE:V7R3 QNTC stomo さん [ 1月11日(木) 11時54分 ]
V7R3になってSMBがv2になったことが原因のようです。

v2の仕様?を守れば動作しましたし、

ADDENVVAR ENVVAR(QIBM_ZLC_SMB_VERS) VALUE(1) LEVEL(*SYS)
もしくは
ADDENVVAR ENVVAR(QIBM_ZLC_SMB_VERS) VALUE(1) LEVEL(*JOB)

でv1にすることはできるようです。


5250の自動Close ゴロっち さん [ 1月16日(火) 15時5分 ]
5250でSIGNOFFしたのちに、自動的にセッションを落とす方法(右上の”X”を押す代わり)は
ないでしょうか?
RE:5250の自動Close IKD さん [ 1月16日(火) 20時22分 ]
意味がよくわかりません。

SIGNOFF + セッション終了 とは ?
何をしたいのですか?
SIGNOFF するとジョブは終了して装置も解放されます。
セッション終了の意味がわかりません。

隠れた質問の趣旨を話さないと回答はできません。
RE:5250の自動Close ゴロっち さん [ 1月17日(水) 8時47分 ]
お返事ありがとうございます。
SIGNOFFしてサイン・オン画面にはできるのですが、
その後にWINDOWSの機能のALT+F4か右上の"X"を押してプログラムを終了させるのを自動で行いた
いのですが可能でしょうか?
よろしくお願いします。
RE:5250の自動Close HIROX さん [ 1月17日(水) 14時9分 ]
それはもはやAS400関係ないのでは?
エミュレーターの問題であるだろうし、エミュレーターは複数ありますしね。
ACSのデータ転送シフト SAKI さん [ 1月17日(水) 16時5分 ]
IBMI V6.2 ACS V1.1.5.0を使用しております。
ACSのデータ転送で、シフトコードをブランクとして
転送出来ますか?
ちなみに、エミュレータ画面をコピーし貼り付ける
場合は、設定で可能なので出来そうな気がしてご質問
しました。
出来るとも、出来ないとも HJ さん [ 1月20日(土) 10時10分 ]
簡単ではないが、必要なら、可能。
OEの前に40を挿入。
OFの後ろに40を挿入。
WRKOBJLCK SAKI さん [ 1月18日(木) 16時55分 ]
IBMI V6R2M0を使用しています。
WRKOBJLCKで見られるロック状況をファイルに
書き込む事は可能でしょうか?画面かプリント
しか無いので他にコマンド有りますか?
もしくはCLPの中でしか使用出来ないコマンド
でも良いのですが。
RE:WRKOBJLCK IKD さん [ 1月22日(月) 15時5分 ]
オブジェクト・ロックのリストAPI (QWCLOBJL) がユーザー・スペースに
ロック情報を出力するAPI です。
これは何度か使いました。

CPYSPLF を使えばWRKOBJLCK のリストをスプールから
ファイルに変換することもできます。
簡単な方法ですが時間がかかるのと不細工な方法ではあります。
RE:WRKOBJLCK SAKI さん [ 1月22日(月) 17時20分 ]
ご回答有難うございました。
CLからのシェルスクリプト nu さん [ 1月30日(火) 21時19分 ]
IFS内のファイルをmvする、ついでにMYLIB/MYTABLEにdb2でinsertするスクリプトを
mvするファイルと同じディレクトリに置いています。

そのスクリプトをCLからSTRQSHで実行しようとしていますがうまく動きません。
STRQSH CMD('/hoge/hoge/movefiles')

QSHで/hoge/hoge/ディレクトリに移ってからスクリプト(movefiles)は実行できるので
CLからでも問題なく呼び出せると思っていたのですが、バッチで実行するには何か必要なのでしょうか。

何か情報がありましたらご教示ください。
よろしくお願いします。
RE:CLからのシェルスクリプト nu さん [ 1月31日(水) 11時53分 ]
自己解決しました。

カレントディレクトリを変更してからSTRQSHしたら問題なく実行できました。

CHGCURDIR DIR('/hoge/hoge')
STRQSH CMD('movefiles')

物理ファイルの削除 ふぅどまん さん [ 1月31日(水) 16時10分 ]
SAVLIBしたライブラリをリネームして復元しました。
不要になった為、DLTLIBしたところ削除ができませんでした。
原因は、ある物理ファイルに従属した論理ファイルがいた為です。

対象の論理ファイルを削除しようとDSPDBRで確認したところ、
従属ファイルのライブラリがブランクになってました。
対象論理が見つからない為物理ファイルが削除できない状態です。

長くAS400をやっていますが、こんな事ははじめてです。
何か策はありますでしょうか。
よろしくお願いします。
策ではないが  HJ さん [ 1月31日(水) 18時33分 ]
ライブラリーに属さないオブジェクトは ときどき 発生する。

時間はかかるが RCLSTG なら ライブラリーQRCLに 入れてくれる。
 
お礼 ふぅどまん さん [ 2月1日(木) 9時44分 ]
早い回答、有難う御座いました。
上手くいきました。
ファンクションキー操作不能 AS新人 さん [ 2月1日(木) 16時12分 ]
AS400の入力画面にてときたまファンクションキーと実行キーが効かなくなってしまうことがあります。
数字等の入力は問題なくできます。またエクセル等ではファンクションキーは効くのでキーボードロック
も考えられません。なにが原因なのでしょうか。
RE:ファンクションキー操作不能 SAKI さん [ 2月5日(月) 10時58分 ]
詳細をお教え下さい。

・AS400の入力画面というのは、アプリケーションでしょうか?それともOS画面ですか?

・効かないというのは、何回か押下すると効く様にになりますか?常にでしょうか?

・実行キーというのは、右下CTLですか?ENTERキーですか?
RE:ファンクションキー操作不能 AS新人 さん [ 2月5日(月) 16時17分 ]
ASの入力画面はアプリケーションです。ユーザーが受注情報などを入力するところです。

ファンクションキーは何回押しても反応しません。

実行キーはENTERです。

よろしくお願い致します。
RE:ファンクションキー操作不能 SAKI さん [ 2月5日(月) 16時32分 ]
効かなくなる時のの条件がわかれば良いのですが
?(ある日からこの現象が起きる様になった、ある特定
のPCで起こる、ある時間帯に発生する等)
何度押しても効かないとなると、画面のロックか
バグではないでしょうか?画面ファイルのファンクション
定義に標識は指定していないでしょうか?
RE:ファンクションキー操作不能 AS新人 さん [ 2月7日(水) 9時12分 ]
画面ファイルを確認したとこファンクションキーに標識はありませんでした。

特定の作業をする1台のPCだけなのでなにか別の原因かもしれません。
RE:ファンクションキー操作不能 @445 さん [ 2月7日(水) 12時25分 ]
エミュレータがPCOMMならキーボードの定義ファイルが壊れているかもしれませんね。
設定-キーボードから一旦IBMデフォルトに変更して動作するか確認されてはいかがでしょう?

Auto webのRPG側の開発について AS400 初心者 さん [ 2月22日(木) 11時49分 ]
Auto webを導入すると画面設計は今まで通りDDSの開発で出来るということですが
ILERPGでフリーフォーマット形式や、RDiでの完全フリーフォーマット形式の
プログラムの書き方に影響はありませんでしょうか?
SEU、RDi両方で開発可能でFreeフォーマットや完全フリーフォーマットでの
書き方にも対応していれば非常に有りがたいです。
RE:Auto webのRPG側の開発について IKD さん [ 2月23日(金) 8時22分 ]
大丈夫です。

AutoWebは5250ストリームを直接、読み取って解析していますので
RPGやCOBOLの書き方に影響されることはありません。

SEU, RDi のどちらで開発されても問題ありませんし
FREEフォーマットもOKです。
今後は FREEフォーマットも急速に普及していくと思われます。
FREEフォーマットであれば直感的で
演算内容が非常にわかりやすくなりますので
弊社の社内でも利用する機会が増えています。
ぜひお勧め致します。

試供版もぜひご利用ください。

※ご参考までにAutoWebでは HTMLインターフェースになっても
  RPG でカーソル位置の読取りも可能ですし
 DSPF の制御も5250エミュレータと全く同じです。
RE:Auto webのRPG側の開発について AS400 初心者 さん [ 2月24日(土) 14時48分 ]
回答ありがとうございます。
RPGの開発方法には影響が無いということで安心しました。
社内で検討させていただきます。
CPYFRMIMPFについて TU さん [ 2月26日(月) 15時45分 ]
CPYFRMIMPFについて教えて下さい。
CSVをPFにする際に、このコマンドを使用しています。

ジョブログを見ると
「ストリーム・ファイルがオブジェクトにコピーされたが,
レコードが切り捨てられた。」
と表示されています。

このメッセージを監視したいのですが、
どのようにしたら、よいのでしょうか?
教えて下さい。

例)

■CSVデータ

"TEST","11","123456789"

■PFのDDSソース

R TESTR

FLD1 4A
FLD2 2A
FLD3 8A

■結果

FLD3が入力値9桁に対し、PFが8桁の為、
データが切り捨てられるが、PFにコピーされてしまう。
これを監視したい。

※PF内容

FLD1  TEST     
FLD2  11       
FLD3  12345678

RE:CPYFRMIMPFについて IKD さん [ 3月5日(月) 20時51分 ]
エラー・メッセージID は CPFA096 でしたか?

このような質問をするときには MSGID を連絡したほうがいいですね。
MONMSG CPF0000 でモニターできます。
くわしくは「46. 想定外のエラー処理をすべてモニターする CLP」
     ( http://www.as400-net.com/tips/cl/46.html )
RE:CPYFRMIMPFについて TU さん [ 3月7日(水) 17時47分 ]
IKD様
返信ありがとうございます。

メッセージIDは、CPIA083でした。
(※記載がなくすいません)

URLを参考にしてみて、RCVMSGを追加してみました。

■追加コマンド

RCVMSG     MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) +         
             MSGDTA(&MSGDTA) MSGID(&MSGID) SEV(&SEV) + 
             MSGF(&MSGF) MSGFLIB(&MSGFLIB)

■結果

&MSG:3 レコードがメンバー TESTF にコピーされました。
&MSGID:CPC2959
&SEV:00 

結果が正常になっていました。
やはり、メッセージID:CPIA083は監視できないのでしょうか?
             
RE:CPYFRMIMPFについて IKD さん [ 3月10日(土) 19時58分 ]
RCVMSG より

  CPYTOIMPF .....
  MONMSG  CPFA96 ...

 
のように MONMSG を追記されたのでしょうか?
RCVMSG はメッセージを受け取るだけですから
メッセージを監視(MONITOR)できるわけではありません。

モニター可能なメッセージは限定されています。
昔はモニター可能なメッセージ一覧が IBM から
印刷物として刊行されていたのですが
今は存在しません。(電子媒体も見つかりません)

このガイドは開発の上で貴重な本なので
今でも時々参照して調べています。
RE:CPYFRMIMPFについて TU さん [ 3月13日(火) 10時17分 ]
IKD様
返信ありがとうございます。

CPYFRMIMPF .....
MONMSG CPIA083 .....

と記述したのですが、モニタリングできませんでした。
モニター可能なメッセージは限定されていることから、
「CPIA083」できないということでしょうか?
RE:CPYFRMIMPFについて IKD さん [ 3月13日(火) 13時25分 ]
CPIA083 は重大度が 10ですから MONMSG は効かないと思います。
RCVMSG で最後のメッセージを取得して、それが CPIA083 であれば
何らかの措置を講じるという方法になりそうです。
お試しください。
RE:CPYFRMIMPFについて TU さん [ 3月13日(火) 18時53分 ]
IKD様
返信ありがとうございました。
試してみます。
RE:CPYFRMIMPFについて koma さん [ 3月21日(水) 15時38分 ]
メッセージIDではむずかしいと思いますので、メッセージ内容を検索してはどうでしょうか?
具体的には、
1.ジョブログをファイルに変換する。(CPYSPLF)
2.変換されたファイルを「レコードが切り捨てられた」で検索する。(SQL.QUERY)
 ※検索はあいまい検索がおすすめです。
RE:CPYFRMIMPFについて TU さん [ 3月23日(金) 16時8分 ]
koma様
返信ありがとうございます。

試したところ、QUERYで、確認できました。
ありがとうございました。
全銀TCP/IPエラー 最大テキスト数オーバー SA さん [ 2月28日(水) 12時57分 ]
お世話になります。

AS400にて基幹業務システムを構築しており、
TOOLBOXの全銀TCP/IP通信にて、
外部物流倉庫会社とのEDIを行っております。
(物流倉庫へ出荷指示のデータなどを全銀TCP/IP通信にて送信しています)

今回、物流倉庫へデータ送信する際、
通常時よりレコード件数が多くなってしまったため、
全銀TCP/IP通信にて「最大テキスト数オーバー」というエラーになってしまいました。

・完了コード29「最大テキスト数オーバー」

暫定対応としてはレコードを分けて送信したのですが、
恒久対応としてこの全銀TCP/IPの「最大テキスト数」の設定を変更できないかと考えております。

「最大テキスト数」の変更について、
ご存知の方いらっしゃいましたら、ご教示頂けますでしょうか。

よろしくお願い致します。
ブレイクメッセージ SAKI さん [ 3月5日(月) 11時43分 ]
IBMI V6R2M0 を使用しています。
画面プログラム(RPG)からCLPをCALLし、そのCLから
QBATCHにジョブを投入しています。
投入元画面に処理完了のメッセージをSNDBRKMSG
で表示しています。
その際、投入元の画面処理が途中で中断してしまう
のですが、処理を中断しない方法、もしくは何秒か
経過したら自動でメッセージ中断画面から元に戻る
等の方法は有りますでしょうか?
RE:ブレイクメッセージ IKD さん [ 3月5日(月) 15時29分 ]
SNDBRKMSG( Send Break Message) とはその名前が示すとおり
中断するためのメッセージの送信なのですが
ご質問の内容は「中断メッセージを送っているのに
中断しないようにしたい」ということなので

  1. SNDBRKMSG ではなく SNDUSRMSG で送信する
  2. 元のジョブの中断メッセージモードを *BREAK ではなく *NORMAL などに
     変更する。

 のいずれかの処置になります。
 この業務だけのメッセージで中断させたくないのであれば
 1. を、すべての中断メッセージを拒否したいのであれば
2. ということになります。
RE:ブレイクメッセージ saki さん [ 3月6日(火) 10時0分 ]
ご回答有難うございます。
メッセージとしては画面使用中に表示(ブレイク)して
欲しいのですがそのメッセージ画面をそのままにしてい
ると元々使っていた画面で処理が継続中の場合ファイル
をロックした状態になります。SNDUSRMSGの場合、
ユーザーが意識して表示しないと表示されないですよね?
ACSでプリンター設定し印字したらCPIが変更されない TT さん [ 3月27日(火) 17時23分 ]
ACSでプリンター設定し、ある帳票を出力したがずれて印字された。
RPGで罫線を指定、行毎にCPIやLPIを変更しています。
クライアントアクセスでは問題なく出力されていました。
お判りになる方がいましたらご教示お願いします。
RE:ACSでプリンター設定し印字したらCPIが変更されない IKD さん [ 3月27日(火) 18時17分 ]
ACS のプリンタ・セッションはほとんど使えないというのが
残念ながら一般的な評価です。

多くのIBMユーザーはプリンタ・セッションは廃止の方向にあります。
SpoolライターVer5.0では LPR印刷などで
IBM i からネット・ワーク・プリンタや複合機に直接、印刷することができます。
試供版をお試しになればいかがでしょうか?

近々 iPhone , iPad などからモバイル・プリンタへ AirPrint で
印刷する機能も追加を予定しています。
ACSの文字化け SAKI さん [ 3月29日(木) 17時28分 ]
IBMI V7R2M0 を使用しています。
ACSのデータ転送で文字化けします。
DSPUSRPRFやDSPOBJDで出力されたファイル
をEXCEL形式で転送します。テキストが
文字化けします。CHARタイプだと化ける様です。
混用タイプだと化けないです。混用タイプにする
にはDDSを作成しなければならず
簡易的に化けずに転送出来ないでしょうか?
RE:ACSの文字化け ま?くん さん [ 4月27日(金) 16時6分 ]
こんにちは

DSPUSRPRF ? OUTPUT(*OUTFILE) OUTFILE(LIB/FNAME)のような感じで
取得したテキストのCCSIDは290になるので、そこにダブルバイトの文字が
入ってくることは想定されていないようです。
ACSに限らず、iAWでも同様に文字化けが発生します。

出来上がったファイルのフィールド(UPTEXT)の属性を変更してあげれば、
取得できます。次のようなSQL文にて。
ALTER TABLE LIB/FNAME ALTER COLUMN UPTEXT SET DATA TYPE CHARACTER(50)
CCSID 5026 NOT NULL WITH DEFAULT

よろしくお願いいたします。
RE:ACSの文字化け SAKI さん [ 5月1日(火) 14時21分 ]
有難うございました。出来ました。
サブファイルについて TU さん [ 3月30日(金) 17時2分 ]
現在、サブファイルの学習をしています。
そこで、下記URLを参考にして、プログラムを作成してみました。

初回はいいのですが、次ページを押すと、1行しか表示されなくて、
また、次ページを押すとエラーになってしまいます。

コンパイル方法が悪いのでしょうか?
初歩的なことですいません。

教えて下さい。

■参考URL

http://www.as400-net.com/tips/rpg/103.html

■変更箇所

上記ソースを参考にして、下記部分を変更してコンパイルしました。

・DSPF
変更なし

・RPG
SFL001FM→自分の画面ID
SHOHIN→自分のテストファイル

■初回画面
                            商品マスター照会                         
          
                                                                     
          
                                                                     
          
                                                                     
          
                                                                     
          
                                                                     
          
   ?                商品名                   単価       品種コード   
         
 0001                                                                
          
 0002                                                                
          
 0003                                                                
          
 0004                                                                
          
 0005                                                                
          
 0006                                                                
          
 0007                                                                
          
 0008                                                                
          
 0009                                                                
          
 0010                                                                
          
 0011                                                                
          
 0012                                                                
          
 0013                                                                
          

■次ページボタン押下
                            商品マスター照会                         
         
                                                                     
         
                                                                     
         
                                                                     
         
                                                                     
         
                                                                     
         
   ?                商品名                   単価       品種コード   
        
 0014                                                                
     

■さらに次ページボタン押下

(C G D F) ファイル TESTDSP に重複しているレコードの書き出しが試みられた。
    
RE:サブファイルについて IKD さん [ 4月1日(日) 9時30分 ]
エラーはサブ・ファイル・レコードのRRN が
カウント・アップされていないことを示しています。
(重複レコードを書き出そうとした)
これ以外にも原因はあります。
ROLLUPキーを押した後の処理がもれていませんか?
たぶん TOPRRN が加算されていません。

コンパイルのやりようで SFLの動作が変わることは
絶対にありません。
エラーの原因をあてすっぽうで想像するのではなく
ご自分のコーディングをもう一度しっかり見直しましょう。
またエラー・メッセージを読めば理論的に問題は
解決します。
エラー・メッセージを繰返し読みましょう。
RE:サブファイルについて IKD さん [ 4月2日(月) 8時7分 ]
SFLPAG と SFLSIZ が同じ値になっている可能性もあります。
SFLSIZ > SFLPAG でないとサブ・ファイルは自動拡張されません。
RE:サブファイルについて TU さん [ 4月2日(月) 10時4分 ]
IKD様
返信ありがとうございます。

コーディングを確認ところ、
SFLSIZ(14)・SFLPAG(13)になっていましたので、
自働拡張されていると思います。

また、デバッグを行ってプログラムを確認してみました。
EXFMTのすぐ下のSETOFFで止めました。

1回目のROLLUPキーを押下しても、EXFMTのままで、
SETOFF行に止まりませんでした。
2回目にROLLUPキーを押下した時に、SETOFF行に止まりました。

なぜ、1回目のROLLUPキーが反応しないのでしょうか?
ROLLUPキーが反応しない為、カウント・アップされないと思います。

初歩的なことですいませんが、ご教示願います。
RE:サブファイルについて SAKI さん [ 4月2日(月) 10時59分 ]
1回目というのは、1画面目から2画面目にROLLUP
でしょうか?2回目は、2画面目から3画面へROLLUP
ではないでしょうか?
いずれにしても、自動拡張なので既に作成されている
ページ内はシステムで制御なのでデバッグにはかえって
来ません。
RE:サブファイルについて TU さん [ 4月2日(月) 11時52分 ]
SAKI様
返信ありがとうございます。

ページ内はシステム制御は返ってこないのですね。
勉強になります。

自働拡張機能を利用するということは、
10,000件のDBをサブファイルにする場合、
初回、10,000件全レコードをREADして、
サブファイルにWRITEしなければ、ならないということでしょうか?

すいませんが、ご教示願います。
RE:サブファイルについて SAKI さん [ 4月2日(月) 14時21分 ]
SFLSIZ(14)・SFLPAG(13)
RE:サブファイルについて SAKI さん [ 4月2日(月) 14時25分 ]
SFLSIZ(14)・SFLPAG(13) の場合
1画面13行分作成し表示(EXFMT)をしたら
ROLLUPを押すと標識がオンになるはずなので
(制御がPGに戻ってくる)次の画面分作成
する。次にEXFMTすると1から26行までは
システムが制御で、2画面からROLLUPすると
標識がオンになります。
RE:サブファイルについて TU さん [ 4月5日(木) 13時51分 ]
SAKI様
ご回答有難うございました。
ILEのソース日付 SAKI さん [ 4月9日(月) 9時42分 ]
V6R2M0を使用しております。
ILEのオブジェクトからコンパイル元の
ソースの日付・時間を検索する方法は
有りますでしょうか?1本ずつなら
DSPPGMで画面表示出来ますが、本数が
多いので。DSPOBJDでは出来なかった
様です。
RE:ILEのソース日付 HJ さん [ 4月9日(月) 10時30分 ]
DSPFD で FILE 落とす
RE:ILEのソース日付 SAKI さん [ 4月9日(月) 11時20分 ]
ご回答有難うございます。
DSPFDはソースメンバーの事ではないでしょうか?
プログラムオブジェクトからは無理でしょうか?
RE:ILEのソース日付 HJ さん [ 4月9日(月) 11時56分 ]
ツールの作成かな。

DSPLIB を FILE に落とす。

FILE を RPGで 読んで ILE を見つける

見つけるたびに RPG内で RTVOBJDを含むCLを実行する。

RTVOBJD の SRCDATE を 取り込む。



 


RE:ILEのソース日付 SAKI さん [ 4月9日(月) 12時57分 ]
ご回答有難うございます。RTVOBJDだと値が入ってきません。どうしても取得させたくないみたいで
す。DSPPGMコマンドで画面で表示しか出来ないのでしょうか?
RE:ILEのソース日付 IKD さん [ 4月9日(月) 17時2分 ]
as400-net.com の Tools の 42.ILE-RPGのソースを検索する RTVRPGSRC でも
説明していますが RPG III などの OPMプログラムではオブジェクトの生成の基となる
ソースはひとつだけなので RTVOBJD でソースを見つけることができるのですが
ILE-RPG の場合は複数のモジュールから生成されることを基本としていますので
各モジュールに対応するソースはひとつですが
*PGM は複数のモジュールから成ることを基本としていますので
オブジェクトに対してソースは唯一ではありません。
(現実にはほぼ1対1なのですが)

従ってILEのソースを探すにはモジュールのソースを探すことになりますが
たいていのモジュールは *PGM が作成されると破棄されてしまっていますので
モジュールが既に存在しないということになってしまいます。

Tools の「 42.ILE-RPGのソースを検索する RTVRPGSRC」を
見て頂ければILEのソースの検索の方法の参考になると思います。
( ただし Tools の参照はメンバー登録が必要です。)
RE:ILEのソース日付 初心者 さん [ 4月10日(火) 8時14分 ]
私はRTVRPGSCを用いて落としてます。
C                     MOVEL*BLANK    #SRFL                               
C                     MOVEL*BLANK    #SRLIB                              
C                     MOVEL*BLANK    #SRMBR                              
C                     MOVEL*BLANK    #CCSID                              
C                     MOVEL*BLANK    #SRCCD                              
C                     MOVEL*BLANK    #SRCCT                              
C                     MOVEL*BLANK    #SRCHD                              
C                     MOVEL*BLANK    #SRCHT                              
C                     CALL 'RTVRPGSC'PLIST1                              
C                     MOVEL#SRFL     ODSRCF           FILE               
C                     MOVEL#SRLIB    ODSRCL           LIB                
C                     MOVEL#SRMBR    ODSRCM           MBR                
C                     MOVEL#SRCHD    ODSRCD           ソース変更日     
C                     MOVEL#SRCHT    ODSRCT           ソース変更時間   
RE:ILEのソース日付 SAKI さん [ 4月10日(火) 14時1分 ]
大変有難うございました。全てうまくいきました。
長時間放置の端末 漁師 さん [ 4月11日(水) 12時1分 ]
画面を長時間放置している端末に、メッセージを通知(使用督促等)を考えてます。

そこで質問ですが、DSPW状態のジョブが最後にCTRLキーを押した時刻を検出できるコマンドとかはあ
りますでしょうか?

たとえば最後にCTRL押してから1時間以上経過していれば、未使用と判断したいと思います。

RE:長時間放置の端末 IKD さん [ 4月11日(水) 17時46分 ]
システム値 :QINACTITV によって不在時が一定時間を超えると
サイン・オフする機能があります。
くわしくは http://www.as400-net.com の実行環境の
「25. ユーザー不在時の不正アクセスを防止するには?」を
参照ください。
RE:長時間放置の端末 漁師 さん [ 4月16日(月) 10時41分 ]
IKDさん
返信が遅れてすみません。

ありがとうございました。

QINACTITVを使ってみます。
Pcomm(HACP)ライセンスについて 初心者 さん [ 4月23日(月) 17時48分 ]
Pcomm(HACP)のライセンスについて教えて下さい。

ACSの印刷が上手くいかず、クライアントアクセスを利用してPCをプリントサーバー化して使用しております。

Win7サポート切れの2020年にはプリントサーバーをクライアントアクセスからPcommへ切替しようと考えています。

Pcommのライセンスカウント方法については以下の情報を聞いたのですが、間違いないでしょうか。

⇒PCOMMを通して実際に印刷指示をかける利用者数でライセンス数をカウント
※プリンタセッション使用のみでも印刷指示をかける人が複数いれば複数分のライセンス要
ライセンス HJ さん [ 5月7日(月) 17時19分 ]
PCにインストールしたら、1台です。
常時 使用しなくとも アウトです。
プリンタセッションのみでも、だめです。
------------------
利用者数は CAの話です
RE:ライセンス 初心者 さん [ 5月8日(火) 10時51分 ]
HJ様回答有難う御座います。
現在Win10/ACSインストールユーザーが400程度、ACSでは一切プリンタセッションを使用しておりません。
プリンタセッションはWin7/CAのPCへ集約している状況です。
2020年移行はCA⇒Pcommの運用となるため、以下のようになります。

【現在】
ACS端末(400ユーザー/800セッション)⇒CAプリンタセッション(2ユーザー/60セッション)⇒プリンタ(50台)
【今後】
ACS端末(400ユーザー/800セッション))⇒Pcommプリンタセッション(2ユーザー/60セッション)⇒プリンタ(50台)

この場合のHACPライセンスは2or400のどちらになるのでしょうか。
RE:ライセンス 初心者 さん [ 5月8日(火) 11時13分 ]
内容補足します。
・1PCあたり1ユーザーで使用の場合となります。
PCの台数 HJ さん [ 5月8日(火) 13時59分 ]
画面用PC 400台。印刷用PC 60台。合計 460。
ユーザーは関係ないです。
利用者数 HJ さん [ 5月8日(火) 18時55分 ]
クライアントアクセスと混同しています。
CAは利用者数で 課金されます。
(利用者数の厳密な定義は知らない。NOMAXで やってるから)
それもAS400ごとです。
-------------------------------
PCOMMは フロアにあるPCの台数です。
利用者の概念はないので、インストールしたら、使用とみなされます。
複数のAS400につないでも、1台は1台です。
----------------------------
CAとPCOMM まぜても 別に安くはなりません。
両方の 料金が掛かります。



PCOMMはPCのソフトです HJ さん [ 5月8日(火) 14時37分 ]
WINDOWS10 の ライセンス数と 同じ数量になります。
セッション数は 無関係です。

AS400に接続しなくとも ライセンスは必要です。 
  
RE:PCOMMはPCのソフトです 初心者 さん [ 5月8日(火) 14時51分 ]
上記の内容だと以下のライセンス数が必要となりますが、

【ライセンス数】
・画面用PC:400台※各2セッション(ACSでライセンス400個必要)
・印刷用PC: 2台※各30セッション(Pcommでライセンス2個必要)

最初の質問にあった[PCOMMを通して実際に印刷指示をかける利用者数でライセンス数をカウント]
という情報については間違いという認識で宜しいでしょうか。

何度もすみません。

  
印刷指示  HJ さん [ 5月8日(火) 19時21分 ]
印刷指示しなければ、無料って ことですか。
そんなわけ ないでしょう。 
印刷セッション数 HJ さん [ 5月8日(火) 19時47分 ]
1台のPCに 4個が 推奨です。

印刷セッションが干渉しあう 不具合があるから 苦労すると思う。
RE:印刷セッション数 初心者 さん [ 5月9日(水) 10時58分 ]
【ライセンス数について】
それぞれACS,Pcommのライセンスを保持している前提での話です。
ACSライセンスをもつPCの画面端末からPcommライセンスを持つPCの印刷端末へ印刷指示をした場合のライセンス数の
のカウント方法についての質問になります。ACSライセンスを持つPC分もPcommライセンスが必要かどうかです。

【セッション数について】
複数端末を持つためにはPCの能力、リソース、過剰なトラフィックがかかる問題があり、
現実にプリントサーバーを立てて多くのセッション等持たせるのは難しいです。
実施する環境(スプール数、印刷の集中等)に左右されるため、半年ほど検証を行っており、
問題の発生は起こっておりません。(プリントサーバーの月1再起動は実施しています)
※バージョン6.0以降はデフォルトでMAXセッション数が52セッションまで作成出来るようです。
印刷用PC HJ さん [ 5月15日(火) 18時41分 ]
必要です。それは 印刷用セッションを立てるPC の事です。
RE:印刷用PC 初心者 さん [ 5月18日(金) 9時15分 ]
↓こちらの回答頂けますでしょうか。

⇒PCOMMを通して実際に印刷指示をかける利用者数でライセンス数をカウント
※プリンタセッション使用のみでも印刷指示をかける人が複数いれば複数分のライセンス要
ACS移行後のマクロ移行方法について kobayashi さん [ 5月23日(水) 18時21分 ]
ACSに移行するときにマクロの変換機能がありますが、変換機能が認識しなかったり正常な変換が出来ません。
何か良い方法ご存じでしょうか?
RE:ACS移行後のマクロ移行方法について IKD さん [ 5月28日(月) 8時8分 ]
ACSのマクロ変換は正しく変換されないことは良く知られています。

AutoWebのデータ変更を使うとPCOMMや iAccessのデータ変換定義を
IFS に配置するだけでそのままサーバー・サイドで
データ変換することができます。
これによってクライアントの5250セッションも廃止することが
できます。

  http://www.officequattro.com/jpn/software/contents/autoweb/data.html

RE:ACS移行後のマクロ移行方法について kobayashi さん [ 5月28日(月) 13時24分 ]
IKD さん
ありがとうございます。
マクロ機能はAutoWebで実装出来るという事でしょうか。

変換できないとの事で自分で再度作り直ししないといけないという事ですね。
ありがとうございます。
CRTLF SAKI さん [ 5月30日(水) 13時4分 ]
V7R1M0 CRTLFコマンドですが、既に存在する場合、置換をしたいのですが可能でしょうか?(PD
Mの14番では可能ですが)
RE:CRTLF HIROX さん [ 5月30日(水) 13時12分 ]
PDMの14番で可能であればわかるのでは?

14入力後にF4(エミュレーター使用前提ですが)で、設定可能項目が見えます
よね?
LFのソースメンバーで14番はCRTLFのはずです。

14番で可能ならば、その内容の項目が何なのか?を見ればいいだけです。
RE:CRTLF tsu さん [ 5月30日(水) 14時33分 ]
PDMの省略時の設定(PDM画面中でF18を押す)で”オブジェクトの置き換え”が'Y'になっているからでは?
CLPで既存LFを削除しないでCRTLFを実行すると、CPF5813のエラーとなります。
プロンプト画面からのコマンド実行でも同様です。
CRTLFコマンドのオプションには残念ながら”既に存在していたら置き換える”のパラメーターはないようです。
CLPで作成するなら、
1.DLTFで削除
2.MONMSGでエラー対応
3.CRTLF

もしくは
1.CHKOBJでLF検査
2.MONMSGで存在しなければ4.CRTLFへ
3.DLTF
4.CRTLF

で可能かと..
RE:CRTLF SAKI さん [ 5月30日(水) 17時15分 ]
やはりそうでしたか。ご回答有難うございました。
AS400からPCにFTP たかみー さん [ 6月1日(金) 16時14分 ]
AS上でFTPコマンドを使用して、IFSにコピーしたタブ区切りのCSVファイルをPCに送信したいので
すが、うまくいきません

IFS上にはCPYTOIMPFで固定のIFSフォルダに作成されています

FTP XXX.XXX.XXX.XXX
>USER
>PASSWORD
>NAMEFMT 1
 500 'SITE': command not understood
 クライアントNAMEFMTは1。    
>LCD /TEST
  ローカル作業ディレクトリーは/TEST
>BIN
  200 Type set to I
>PUT TEST.CSV C:?FTPROOT?TEST.CSV
  229 Entering Extended Passive Mode (|||57029|) 
  550 The parameter is incorrect.

上記のようなメッセージが表示されてしまいます
PCからASをサーバーとしてGETする場合は問題なくできています

何が問題なのでしょうか
よろしくお願いします
RE:AS400からPCにFTP IKD さん [ 6月2日(土) 16時20分 ]
>USER
>PASSWORD
のところが詳しく記載されていませんが
IBM i は EBCDIC で PC は ASCIIであるのは
ご存知ですね。

IBM i の Ftpコマンドは他のIBM i への転送を
前提にしていますのでコード変換が必要ですが
対応されていますか?
Ftp認証は正しく行われていましたか?

また PCでは初期値ではFtpサーバーは起動されていませんので
起動が必要ですがPCのFtpは起動されていますでしょうか?

メッセージは PASSIVE モードでの動作が必要であるのと
パラメータが正しくないと告げています。

>PUT TEST.CSV C:?FTPROOT?TEST.CSV

は文法的に正しくありません。
>PUT /TEST.CSV C:\FTPROOT\TEST.CSV
RE:AS400からPCにFTP たかみー さん [ 6月8日(金) 16時42分 ]
>は文法的に正しくありません。
>>PUT /TEST.CSV C:\FTPROOT\TEST.CSV

FTPサーバーのルートディレクトリへPUTするように変更し、問題は解消されました
ありがとうございました
RPG DELET でのエラー HIROX さん [ 6月6日(水) 18時13分 ]
もし、同じような症状に合われた方、何かわかるよ!という方がいらっしゃれば
教えて頂きたく。

ある物理ファイルを単純にREAD した後に DELET 命令でレコードをDELETしよ
うとした時に、
RPGがこけてしまいます。
ステップなどで見てみると、DELET命令時に標識がONで正常削除が出来ていな
く、次のREAD時に
RPGがこけています。

ジョブログのエラーでは、
「機械命令内での機能エラーX'1716'。内部ダンプ識別コード(ID)はです。
ライブラリー●●●LIBファイル▲▲▲▲Pの装置またはメンバー▲▲▲▲Pに障害が
 ある。                                                              
ライブラリー●●●LIBファイル▲▲▲▲Pのプログラム装置またはメンバー▲▲▲▲P
 にエラーがあるために,入出力操作を使用することができない。
(C G S D F) ▲▲▲▲PでCPF5129入出力エラーが検出された。   」

とあります。
色々調査はしてみたのですが、お手上げです。

復旧は物理ファイルを削除の後、ファイルを切り直しで対応しようと思ってい
ますが、
その前に何かできること、情報などがあればご教授願いたく。

よろしくお願いします。

AS400バージョン:V7R1M0    
RE:RPG DELET でのエラー IKD さん [ 6月14日(木) 8時2分 ]
エラー・メッセージからすると事態は深刻なように
見えます。

          READ FILE             50
 N50      DELETE @RECORD

 のようにレコードの削除命令はREADが成功したときだけに
 条件づけられていますか?
 もし無条件に DELETE 命令を実行していると
 予測できないことが起こる可能性があります。
 必ず READが成功しているときだけの削除が必要です。
 まさかバッチ・プログラムで削除してるってことは
 ないですよね?
RE:RPG DELET でのエラー HIROX さん [ 6月14日(木) 12時39分 ]
お返事ありがとうございます。

もちろん、READが成功した時だけDELET命令がされるようになっています。
その辺りには問題がないことだけは確認済みです。

そもそもがRPGのPGMによるエラーではないと考えています。
物理ファイルに対して何かできないことはないのかな?と考えていました。

ですが、下手にいじるよりは・・・と思い、データを逃がして物理ファイルを
リネームし再度きりなおし、データを戻して対応しました。

アクセスパスが何かおかしいまではわかったのですが、これ以上は無理かなーと
思っています。

停電 HJ さん [ 6月18日(月) 10時58分 ]
ファイルのアクセス中に、停電すると、たまに損傷が起こる。
到着順だと、データは、取り出せる。
PCへのデータ転送 文字化け状態時は起動しない たじやん さん [ 6月15日(金) 15時53分 ]
i Access for Windows 7.1を利用中です。

OS:Windows7(サポート外承知でWindows10_1703でも一部利用中)

CLでSTRPCOコマンドを用いExcelへデータ転送をしています。

文字化け状態(Ctrl+F3で解除)時にデータ転送すると、STRPCOコマンドが機
能しません。
(Windows7、Windows10共に。サービスパックのバージョンにも起因しないかと)

気を付ければ良いだけの問題ですが、原因がわかる方がいらっしゃいました
ら、是非ご教示頂けますか?

よろしくお願いいたします。
RE:PCへのデータ転送 文字化け状態時は起動しない HJ さん [ 6月19日(火) 12時8分 ]
STRPCCMDの 文字列に ¥記号を使ってる。
はずしてたら ごめん。
RE:PCへのデータ転送 文字化け状態時は起動しない IKD さん [ 6月19日(火) 20時49分 ]
自分が何をやってるのかを語らないで
「エラーが出ました。わかる人はいますか?」では
神様でもわからないと思いますよ。
質問では自分のやったことを十分説明しないと
回答する人に失礼以前ですね。
RE:PCへのデータ転送 文字化け状態時は起動しない たじやん さん [ 6月20日(水) 8時57分 ]
お二人ともご回答ありがとうございました。

>STRPCCMDの 文字列に ¥記号を使ってる。 

Excelデータのパス指定時に「¥」を使わなければなりませんので避けられな
い、という事ですかね。
何故「¥」がダメなのかをご教示頂けると・・・。

>自分が何をやってるのかを語らないで
>「エラーが出ました。わかる人はいますか?」では
>神様でもわからないと思いますよ。
>質問では自分のやったことを十分説明しないと
>回答する人に失礼以前ですね。

私の書き込みでご理解頂けると思っていましたが、ソース開示した方がよかっ
たですね。
ご指摘頂きありがとうございました。今さらですが↓のような感じです。

STRPCO     PCTA(*NO)                               
MONMSG     MSGID(IWS4010)                          
STRPCCMD   PCCMD('C:\TEMP \A.BAT') PAUSE(*NO)
MONMSG     MSGID(IWS4010)         
                 
CCSID HJ さん [ 6月20日(水) 11時41分 ]
STRPCCMDでは 文字列を 画面表示する。(非表示だから見えません)
これが WINDOWSコマンド として 実行される。
エン記号は ダラー記号に変換されるので、構文エラーになる。

スラッシュに変える。これでだめなら、手はない。


RE:CCSID たじやん さん [ 6月20日(水) 14時27分 ]
>STRPCCMDでは 文字列を 画面表示する。(非表示だから見えません)
>これが WINDOWSコマンド として 実行される。
>エン記号は ダラー記号に変換されるので、構文エラーになる。
>スラッシュに変える。これでだめなら、手はない

わかりやすいご回答、誠にありがとうございました。
補足 HJ さん [ 6月22日(金) 21時47分 ]
パス区切り文字に、スラッシュが使えるのは、場合によります。

スラッシュを 制御スイッチと解釈する APIも 存在します。


マイナス入力不可 SAKI さん [ 6月21日(木) 14時21分 ]
V7R1M0 画面ファイルで、数字項目(小数点以下有り)ですが、マイナスでの入力が出来ない様
様にしたいです。EDTCDE(2)等で、マイナスキー(フィールドイグジット)で入力すると表
示上は}が表示され、その後再表示で}が消えプラスの表示になります。しかしその項目をファイル
に更新するとマイナスになっています。デバッグで見てもマイナスです。COMP等でチェックかける
のも良いですが、その項目のみマイナス入力を不可にする方法は有りますでしょうか?
RE:マイナス入力不可 HIROX さん [ 6月28日(木) 15時35分 ]
エミュレーターは何をお使いなんですかね?

そもそもEDTCDE(2)で?入力が可能な状態が、エミュレーター側の原因って可
能性は
ありませんか?
私の会社では、複数のエミュレーターを使っていますが、未だにバグなんかを発見
したりします。

なので、私はまずPCOMMでどうなるか?を先に確認しています。
RE:マイナス入力不可 SAKI さん [ 6月29日(金) 12時58分 ]
Iシリーズアクセス5.7とACS1.1.8.0です。Iシリーズアクセスの方は画面上入力時はマイナス入力
可能でマイナス表示されますが、再表示でマイナス記号は消えます。PCOMは無いので確認出来ま
せん。いまのところCOMPで対応しようかと考えています。ご回答有難うございました。
データ転送時のサインオンポップアップのリセットについて YOU さん [ 6月22日(金) 20時50分 ]
PCOMMのデータ転送(PCSFT5)をスケジューラに登録して自動実行しようと考えています。
初回実行時以外にも稀にデータ転送実行時にサインオンのポップアップが出る事があると聞き、
対策を検討しております。
原因や回避方法をご存じの方がいらっしゃいましたら、教えてください。
最悪、ポップアップが出た場合は手入力するしかないと思っています。

別のエミュレータにすればバッチ認証ができるため、そういった心配はいらないと思うのですが、
都合によりエミュレータはPCOMM限定とさせてください。

自動実行環境:Win10、PCOMM12
 
よろしくお願いします。
RPGがどのCLからCALLされているかを簡単に調べる方法 AS400初心者 さん [ 6月26日(火) 13時30分 ]
弊社ではRPGがどのCLからCALLされているかを調べる際には
同じライブラリのQCLSRCにある使用中のCLのソースをすべて開いて
上段に検索キーワードを入れてF16というように実施しております。

もっと簡単にこれを調べる方法はありませんでしょうか?
また皆様はどのようにされてますでしょうか。

※標準機能ではないと思いますが弊社ではAIDという機能がAS内に入っておりまして
 指定したPFやLFがどのRPGやCLで使用されているかを調べてくれるものがあります。
 これのRPGを調べるものがあれば便利だと思うのですが、このAIDの中には無いようです。。


よろしくお願いいたします。
RE:RPGがどのCLからCALLされているかを簡単に調べる方法 T さん [ 6月26日(火) 15時9分 ]
弊社では'PDMを使用したストリングの検索' (FNDSTRPDM)コマンドを使用しています。
参考になりますでしょうか?
RE:RPGがどのCLからCALLされているかを簡単に調べる方法 AS400初心者 さん [ 6月26日(火) 17時46分 ]
>Tさん

コメントありがとうございます。
実行キーを押すと対象のソースが連続で表示されるんですね。
非常に便利ですので早速本日から使用させていただきます。
ありがとうございました!
RE:RPGがどのCLからCALLされているかを簡単に調べる方法 stomo さん [ 6月28日(木) 9時26分 ]
DSPPGMREF PGM(CL名)をしてみてください。

CLが呼び出しているオブジェクト(RPG)が分かります。

これでは「CLが呼び出しているRPGが分かる」となりますが、

DSPPGMREF PGM(*ALL) OUTPUT(*OUTFILE)

でファイルに落とすことで、逆引きができるファイルが作成されます。
RE:RPGがどのCLからCALLされているかを簡単に調べる方法 AS400 初心者 さん [ 6月28日(木) 15時53分 ]
> stomoさん

DSPPGMREF PGM(OBLIB/*ALL) OUTPUT(*OUTFILE) OUTFILE(LIB/FILE)

コメントありがとうございます。
上記コマンドで結果をファイルに残すことができました。
FILEに残るのでSQLでの検索もできますし便利ですね。
やはり自分が知らないだけで色々便利なコマンドがありますね、活用させていただきます。
ありがとうございました。
RPGがどのPGからCALLされているかを取得する方法  SAKI さん [ 7月25日(水) 9時22分 ]
V7R1M0 複数のPGから呼ばれるRPGで、どのPGから呼ばれたかを
そのRPG実行時に取得(状況コード等)する方法はございますでしょうか?
RE:RPGがどのPGからCALLされているかを取得する方法  IKD さん [ 7月25日(水) 16時8分 ]
実行時ならWRKACTJOBで

 1. そのジョブを「5=処理」で選択します。
 2. ジョブの処理が表示されたら「11.呼出しスタックの処理」を選択します。
 3. 呼出しスタックをみれば、どのように呼び出されているのかを
    確認することができます。
RE:RPGがどのPGからCALLされているかを取得する方法  SAKI さん [ 7月26日(木) 10時31分 ]
ご回答有難うございました。画面ではなくPG内で取得したいです。(取得したPGID等をファイ
ルに書き出したい)
RE:RPGがどのPGからCALLされているかを取得する方法  IKD さん [ 7月26日(木) 15時21分 ]
それなら、そのように質問されないと...

API : QUSLJOB で可能です。
APWでのバーコード印字 BX さん [ 8月10日(金) 15時26分 ]
お世話になります

APWは「5761AP1 V6R1M0 多機能DBCS印刷装置サポート」になります

そしてAPWでバーコードの印字を行ないたいのですが
「ADDAPW」に「BARCODE」パラメータが存在しません

例:「QAPS/ADDAPW LINE(1) BARCODE((1 10 1))」→F4 でエラーになる

6.1のマニュアルが存在せず、下記のマニュアルを参考にしているのですが
「BARCODE」パラメータは廃止になってしまったのでしょうか?
https://www.ricoh.co.jp/pps/download/pdf/apw_mpt_barcode.pdf
RE:APWでのバーコード印字 IKD さん [ 8月10日(金) 21時11分 ]
APW では元々 BARCODEパラメータは存在しません。
BARCODEパラメータはDDSキー・ワードとして存在していますが
*AFPDS 用の DDSキー・ワードです。

コマンド: QAPS/ADDAPW というコマンドはありますが
このコマンドには BARCODE というパラメータは存在しません。
パラメータが廃止されることはありません。

i5/OS Ver6.1 のマニュアルは今も存在しています。

https://www.ricoh.co.jp/pps/download/pdf/apw_mpt_barcode.pdf

は IBM ではなく RICHO のマニュアルです。( URLをご覧ください)
最新のリリース別のマニュアルは
http://www.as400-net.com/index.html
の左下部に紹介されています。
RE:APWでのバーコード印字 まめたろぅ さん [ 8月13日(月) 16時15分 ]
ADDAPW はコマンドラインで使用するものではないのでAPWソースで指定して下
さい。
(RPGソースと同じように例えばQAPWSRCのように)
APWソースで下記のように指定すればBARCODEキーワードの指定も有効です。
APWソースで記述する場合にはQAPSの指定は不要です。
ADDAPW LINE(1) BARCODE((1 10 1))
APWソースでの記述が完成したら、CRTAPWでAPW書式を作成します。
このCRTAPWコマンドの原始ファイル(SRCFILE)パラメータにAPWソースを指定し
ます。
書式が作成できたら、MRGAPWで書式をスプールにマージして完成です。
RE:APWでのバーコード印字 BX さん [ 8月17日(金) 9時35分 ]
IKDさん、まめたろぅさん、ありがとうございます

ソースに記述し下記2パターンで確認してみました
(コンパイルも通りました)

?ADDAPW LINE(1) SYMBOL(1 10 CODE39 BARCODE *LIBL)
?ADDAPW LINE(1) BARCODE((1 10 1))

?は正常にバーコードが印字され
?はバーコードが印字されずに、それ以降の印字箇所も白紙となりました

IBMiのバージョンは7.3、APWが6.1なんですが関係があるのですかね?
RE:APWでのバーコード印字 BX さん [ 8月17日(金) 9時40分 ]
文字化けしてしまったので再送です

IKDさん、まめたろぅさん、ありがとうございます

ソースに記述し下記2パターンで確認してみました
(コンパイルも通りました)

1.ADDAPW LINE(1) SYMBOL(1 10 CODE39 BARCODE *LIBL)
2.ADDAPW LINE(1) BARCODE((1 10 1))

1.は正常にバーコードが印字され
2.はバーコードが印字されずに、それ以降の印字箇所も白紙となりました

IBMiのバージョンは7.3、APWが6.1なんですが関係があるのですかね?
RE:APWでのバーコード印字 まめたろぅ さん [ 8月17日(金) 10時57分 ]
SYMBOL(APWの記号)を使用した場合には印刷できて
BARCODEキーワードの指定で印刷できないということは
IBM i からプリンターへの印刷方法が理由でしょう。
(IBM iやAPWのバージョンは関係ないのではないかと思います)
エミュレータ(PCOMやクライアントアクセス)のプリンターセッション経由での
印刷ではないでしょうか。
その場合、BARCODEキーワードは郵政バーコードのみサポートなのでCODE39な
どは印字されません。
もし、プリンターがネットワークプリンター(IPアドレスを設定できる)であれば
プリンターセッション経由の印刷ではなく、HPT(RMTOUTQ)での印刷を試してみ
てはどうでしょうか。
リコーさんの下記サイトを参考にしてみて下さい(既にご存知かも知れませんが)。
https://www.ricoh.co.jp/pps/download/pdf/hpt_guide_v15.pdf
309. SEU で、できる一発大量変換について HIROX さん [ 8月18日(土) 15時35分 ]
気になって仕方ないので質問です。

AS/400 Tips & Techniques のRPGにある、タイトルの記事、
http://www.as400-net.com/tips/rpg/309.html

の内容ですが、

「この状態をセットしたら「 F15 = 走査検索/コピー・サービス」( Shift +
F3 )を押すと
一発で大量の文字列をいくつでも変換することができる。 」

というのが、間違っていると思うのですが・・・。

正しくは
「この状態をセットしたら「 F17 = 変更」( Shift + F5 )を押すと
一発で大量の文字列をいくつでも変換することができる。 」

と思うのです。

どうでしょうか?
RE:309. SEU で、できる一発大量変換について 通りすがり さん [ 8月24日(金) 16時38分 ]
その通りだと思います。
やってみるのが一番手っ取り早いです。
RE:309. SEU で、できる一発大量変換について HIROX さん [ 8月27日(月) 9時39分 ]
今、元の記事を見てみましたが、修正してありますね。
良かったよかった。
FTPで「接続がリモート ホストによって閉じられました。」と接続が切れる ITUKI さん [ 9月29日(土) 16時9分 ]
FTPについて 困っております。
よろしくお願いいたします。

FTPでASのPGMをCALLすると1分で「接続がリモート ホストによって閉じられました。」とでます。


FTP例)ftp> QUOTE RCMD CALL AOBJLIB/PGM000C

get・putで大量データを送受信するので タイムアウトは、100分に設定してあり
get・putでエラーが出ることはありません。

CHGJOBも試してみましたが 同じエラーが出ました。
FTP例)ftp> QUOTE RCMD CHGJOB DFTWAIT(600)

何か設定の変更でしょうか?
よろしくお願いいたします。
RE:FTPで「接続がリモート ホストによって閉じられました。」と接続が切れる IKD さん [ 10月1日(月) 18時38分 ]
「タイムアウトは、100分に設定してあり」とありますが
何のタイムアウトをどのようなコマンドで設定されたのでしょうか?

FTP の非活動タイムアウトは CHGFTPA で省略値は 300秒、つまり
5分なのですが、この値を100分= 6000秒に設定したということなのでしょうか?
RE:FTPで「接続がリモート ホストによって閉じられました。」と接続が切れる ITUKI さん [ 10月2日(火) 8時58分 ]
返信有難うございます。

タイムアウトの設定は、CHGFTPAで6000秒になっています。
※タイムアウトなしも試して 再起動もしました。

time 10000 10000
など試してみました。

AS上でのPGM処理は、3分程度で終わるPGMです。

よろしくお願いいたします。
RE:FTPで「接続がリモート ホストによって閉じられました。」と接続が切れる IKD さん [ 10月2日(火) 16時56分 ]
FTP コマンドで
220 CONNECTION WILL CLOSE IDLE MORE THAN 100 MINUTES.
のように 100分の非活動タイムアウトを FTP がログしていますか?
( 通常はこの値は 5分です)

この値(分)をお知らせください。
RE:FTPで「接続がリモート ホストによって閉じられました。」と接続が切れる ITUKI さん [ 10月2日(火) 19時16分 ]
220 CONNECTION WILL CLOSE IF IDLE MORE THAN 100 MINUTES.

上記のように表示されます。
ぐぐってみた HJ さん [ 10月2日(火) 18時29分 ]
RCMD自体に30-60秒のタイムアウトがある。
これは、変更できない。
----------------
回避策 RCMDでFTPを呼び出して、送信する。

RE:ぐぐってみた ITUKI さん [ 10月2日(火) 19時19分 ]
返信ありがとうございます。

変更できない等の資料は、どこにありますでしょうか?
IBMのサイトですか?

> 回避策 RCMDでFTPを呼び出して、送信する。
これがいまいちわかりません。
具体的には、どのようにできますでしょうか?

よろしくお願いいたします。
RE:ぐぐってみた HJ さん [ 10月2日(火) 20時9分 ]
AS400 RCMD  タイムアウト で グーグルでくぐる。
4 件目 です。URLを張るのは マナー違反だからごめんね。
IBMでない。
----------------
PC側にFTPサーバーを立てる。
ファイヤーウォールのポート解除も必要。
AS側に、RPG後 FTPを実行する ジョブを作る。
PCの アドレスをパラメーターで渡す。 192.168.11.125 とか。
デメリット ファイル名ごとに、ジョブが必要。
RE:ぐぐってみた ITUKI さん [ 10月3日(水) 18時55分 ]
PCが複数あるのでPC側にFTPサーバーを立てるのは、厳しい状況です。
別な手を考えてみます。

ありがとうございました。
CA400 でサインオン画面のデータ転送機能停止 あたる さん [ 10月4日(木) 12時0分 ]
DBのダウンロードをされたくないので、サインオンできなくするか、または転送機能を中止する方法
がないでしょうか
RE:CA400 でサインオン画面のデータ転送機能停止 IKD さん [ 10月12日(金) 10時41分 ]
レスがないようなので ...

出口プログラム(WRKREGINF)にプログラムを作成して制御するぐらいしか
方法はありません。
ファイルの読取り権限があればダウンロードされていまいますので。
出口プログラムの定義箇所はいろいろありますし
調べて出口プログラムの書き方もサンプルを探して作成するしか
ありませんから相当、面倒なことになります。
DTAQの最大項目長 SAKI さん [ 10月19日(金) 10時12分 ]
V7R1M0使用
既に存在するDTAQの最大項目長を知る方法はございますでしょうか?
RE:DTAQの最大項目長 HIROX さん [ 10月19日(金) 11時48分 ]
下記が参照になるかと・・・。

ttp://www.as400-net.com/tips/tools/54.html
RE:DTAQの最大項目長 SAKI さん [ 10月21日(日) 10時9分 ]
取得出来ました。有難うございました。
ユーザープロファイルのチェック すかぴ さん [ 11月9日(金) 9時1分 ]
OSのユーザープロファイルについて質問です。
今回、OS標準のログイン以外に、ログイン画面を作成する必要が出てきました。

RTVUSRPRFで、あるユーザープロファイルが有効(*ENABLE)であるかはチェックが出来ますが、
パスワードは、CHKPWDだとJOBを稼働させているユーザープロファイルのパスワードしかチェック出来ないと思います。

JOBを稼働させているユーザー以外のパスワードをチェックする仕組み(コマンド等)などありますでしょうか?
RE:ユーザープロファイルのチェック IKD さん [ 11月9日(金) 16時20分 ]
コマンドはないと思います。
API : QSYGETPH でプロフィール・ハンドルの取得に成功すれば
パスワードは正しいと判定することができます。
QSYGETPH で長いパスワードを検索するときは
その長さも併せて指定する必要があります。
QSYGETPH の使い方は

  http://www.as400-net.com/tips/rpg/198.html
RE:ユーザープロファイルのチェック すかぴ さん [ 11月9日(金) 18時42分 ]
IKD様
ご教授ありがとうございます。早速実装して動作確認しました。
実現したい事ができそうです!
Chao!!でIBMiマニュアルを無料で閲覧できるようにしては シャリース さん [ 11月13日(火) 18時13分 ]
IKD様
いつも貴社HPにはお世話になっております。
IBM Watson DiscoveryのChao!!ですが、面白い技術ですが、
いまいちどう活用したら良いか良いアイデアが浮かびませんね。
貴社の製品マニュアルをChao!!で検索してもあまり面白みがありません。
情報量が少ないせいかマニュアルに書いてなさそうな質問すると
トンチンカンな回答しか返ってきません。
(例えば、スプリットウインドウ機能を停止する方法は?)
IBMiマニュアルは無料で閲覧できるようにしてはいかがでしょうか。
なかなか2万円/月は厳しですよね。
色々触ってみればアイデアが生まれるかもしれませんし、
Chao!!の学習能力も向上するかもしれませんよ。
是非ご検討を。
ACSのキーボード設定でEnterキーに[field exit]を設定したい KS さん [ 11月19日(月) 15時27分 ]
お世話になります。
ACSのキーボード設定のデフォルトでは
Enterキーが「実行」で実行(Ctrl右)が改行(NewLine)となっています。
この設定を昔の「IBM Client Access for Windows」のIBMデフォルトと同じにしたいです。
Ctrl(右)キーを実行キーの設定はできたのですが、
EnterキーをNewLineでは無くてField Exit(カーソルから後ろを消去して、且つ、次の行へ飛ぶ)に設
定したいのですが、どう設定して良いかわかりません。
「IBM Client Access for Windows」のIBMデフォルトをACSへマイグレーションしましたが、Ctrl=実行
は移行されましたが、Enterキーの設定が移行されません。
ご教示お願い致します。
RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい HaHi さん [ 11月19日(月) 18時58分 ]
通信→構成→キーボード→キーの検索
’キーを押してください’と表示されるので
エンターキーを打鍵で現在の設定が確認できます。

次に中段のホスト機能で
Field Exitはフィールドの終了でしょうか?
をクリックしキーの割り当てをクリック
’キーを押してください’
と表示されるので実行すればOKです。

Field Exitが
フィールドの終了なのか
フィールドの終了及び入力なのか
フィールドの消去
フィールドの末尾までの消去・・・・
なのか分かりませんので一度実施され確認されてはと思います。
RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい KS さん [ 11月20日(火) 9時49分 ]
HaHiさんコメントありがとうございます。

現在利用中のエミュレータ「iSeries Access for Windows 6.0」の
キーボード設定で「Enter」の設定内容を確認すると"Field Exit"となっていて
動きは、カーソル以降がクリアされて、且つ、次の入力フィールドにカーソルが移動します。

ACSでいうと「フィールドの末尾までの消去」+「改行(NewLine)」の合わせ技です。
"ホスト機能"のどれにあたるのか色々調べましたが解りませんでした。
"ホスト機能"に合わせ技の新規登録ができないものでしょうか。


RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい HaHi さん [ 11月20日(火) 11時45分 ]
https://www.ibm.com/support/knowledgecenter/ja/SSEQ5Y_12.0.0/com.ibm.pcomm.do
doc/reference/html/kbd_reference05.htm

を見ますと、フィールド終了 (Field Exit)とありますのでフィールドの終了ではございませんか?




STRPDMで試しましたが、ご要望の機能を満たしていると思われましたが。。。
違ってたらごめんなさい。
RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい AS400初心者 さん [ 11月20日(火) 16時12分 ]
1年ほど前にACSに移行した際にKSさんと同じ悩みに直面した記憶があります。
下記のようにそれぞれ変更頂けると以前と同じような使用感になるのではないでしょうか。

CategoryでHost Functionsを選択する

Field Exitを選択してAssign a Keyをクリックする
 →Enterキーを押下して割り当て
  (テンキー右下のエンターキーも同じ動きにしたい場合は
   Assign a Keyの後、テンキー側のエンターキーも押下してAssignする)

Enterを選択してAssian a Keyをクリックする
 →右CTRLキーを押下して割り当て

RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい KS さん [ 11月21日(水) 14時52分 ]
HaHi さん、AS400初心者 さん 
アドバイスありがとうございます。

ACSを最新のものをダウンロードしてるため、現在すべて日本語表記となっていて
「Field Exit」がどのホスト機能にあたるのかわかりません。
例えば、ホスト機能に以下のものがあります。
Enterキーに割り当てられそうな機能を抜粋しました。
・フィールドの終わり・・・カーソルがフィールドの最後に飛ぶ
・入力フィールドの終了および入力・・・カーソル以降の文字が消去+実行のような機能
・フィールドの消去・・・カーソル以降の文字が消去されるが、カーソルは現在の位置に留まる
・フィールドの末尾までの消去・・・上記と同じ動き
・改行(NewLine)・・・文字は消えず、改行のみ
・実行・・・既存の実行キー
どれも「Field Exit」では無いようです。
引き続き、情報収集していますのでお分かりの方がいらっしゃいましたら
アドバイスよろしくお願いいたします。
RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい AS400初心者 さん [ 11月21日(水) 16時3分 ]
>KSさん

> ACSを最新のものをダウンロードしてるため、現在すべて日本語表記となっていて
>「Field Exit」がどのホスト機能にあたるのかわかりません。

そういうことでしたか。
日本語化されていても並び順は同じかと思われますので一応表示順番を記載いたします。
Categoryをホスト機能にしてからField Exitは42行目に表示されておりました。
登録内容によっては前後するとは思いますので参考程度にしかならないかもしれませんが。
なおField Exitの上の行は「Fast Cursor Up」という項目が表示されていました。
RE:ACSのキーボード設定でEnterキーに[field exit]を設定したい KS さん [ 11月27日(火) 17時48分 ]
AS400初心者さん、
わざわざ数まで数えて頂きましてありがとうございます。
お手数をおかけしまして申し訳けございませんでした。

せっかくなのでチャレンジしてみました。
42行目には、「カーソル切替」でEnterキーを設定した所、
カーソルの形がブロックになったり、アンダーラインになったりと切り替わりましたが、
Field Exit機能では有りませんでした。

ちなみに41行目は「カーソル上移動」となっていますので
「Fast Cursor Up」と同等機能の様な気がします。

うんー、Field Exit機能は削除されてしまったんでしょうか。
仕方ないうので取りあえずは、「フィールドの末尾までの消去」にEnterキーを割り当てて
+tabキーの合わせ技で対応したいと思います。

アドバイスを頂きました皆様、ありがとうございました。
Re:自己解決しました! KS さん [ 11月27日(火) 18時1分 ]
解決しました!

ホスト機能の「フィールドの終わり」を選択したら
Field Exit機能になりました。
しみじみと考えて英語を直訳すると「フィールドの終わり」ですね。

色々お騒がせしました。
RE:Re:自己解決しました! KS さん [ 11月27日(火) 18時4分 ]
「フィールドの終わり」では無くて「フィールドの終了」でした。
「フィールドの終わり」も存在していますので注意して下さい。
半角カナを入力出来なくしたい SAKI さん [ 11月26日(月) 14時7分 ]
V7R1M0 エミュレータ画面(アプリ)でAタイプのフィールドが有ります。このフィールドで半角カ
ナが入力出来てしまいます。画面のDDSだけで入力出来ない様に制限をかけるにはどうしたら良いで
しょうか?ちなみにCCSIDは5026です。
RE:半角カナを入力出来なくしたい IKD さん [ 11月27日(火) 8時22分 ]
5250エミュレータ(PCOMM)で試してみると
確かにタイプAのフィールドに半角カナが入力できてしまいました。

一方、AutoWebで同じテストをするとタイプAに半角カナを入力しても
無視されてスペースに戻ってしまいます。
つまり入力はできません。
AutoWebでは5250ストリームに設定されている属性を正確に
検査しているので属性に合わない入力を除外しているのだと
思いますが5250エミュレータでは日本語が正しく考慮されていない
のではないかと思えます。
SQLで変数を使いたい OSA さん [ 11月27日(火) 10時1分 ]
DataTransferFromAS400(DTF)かRunSQLScripts
どちらでもいいのですが、SQLで

SELECT * FROM TOKYOLIB.売上ファイル;

という東京の売上ファイルを参照するSQLがあったとして、
このTOKYOをOSAKAやFUKUOKAに一時的に
変更する術は無いのでしょうか。

変数で指定できればいいのですが。

ちなみに副問い合わせで
SELECT * FROM (SELECT LIB||'.売上ファイル' FROM ....);
と指定するのは無理でした。
FROM句の副問い合わせは単なる文字の組み合わせで
実現できないようです。当たり前かもしれませんが。

何がしたいかと言うと、1つのSQLスクリプトファイルで
大阪でも福岡でも動くように変数化したいのです。

解るかた教えてください。よろしくお願いいたします。



RE:SQLで変数を使いたい この手の質問 さん [ 11月28日(水) 8時27分 ]
自分では理解して想像できているのかもしれませんが、状況や環境がわからな
いので、
質問への回答は難しいでしょうね。

DataTransferFromAS400っていうのは?
想像ですが、windows環境から何かを動作させ、AS400にあるデータをSQLで抜
こうってこと
なのですか?

あなた様はわかっているのでしょう。
でも答える側は知っている前提で質問されても、???ですよ。
RE:SQLで変数を使いたい SAKI さん [ 11月28日(水) 9時21分 ]
AS400で実行するのでしたらざっとですが以下
で出来ます。詳細は調べて頂けたらと思います。

QRYを作成
RTVQMQRYで上記QRYからソースを作成(タイプはブランクで良い)
受け渡したい項目を変数(&XXX)で記載
CRTQMQRYでコンパイル。
CLPにてライブラリー名?を変数(パラメータ)で受取
STRQMQRYコマンドで実行RTVQMQRYで作成したQMQRYを実行
その際SETVARパラメータで受取ったライブラリー名を使用
RE:SQLで変数を使いたい OSA さん [ 11月28日(水) 10時4分 ]
SAKI様

ご返事ありがとうございます。

ごめんなさい。せっかくご返事いただいたのですが、
QRYやQMQRYやCLを使うのはやりたい方法とは違いまして、
前述した、
DTF(IBM iからのデータ転送)
RunSQLScripts(ACSに組み込まれています)
もしくはiナビゲーターにもSQLスクリプトを
直接入力できると思いますが、
そちらで出来る方法を探しておりまして。

ご丁寧にお答えくださり感謝します。
RE:SQLで変数を使いたい シャリース さん [ 11月28日(水) 15時43分 ]
やりたい事をしっかり把握できていないのですが、
簡単なbatファイルを用意して、その中で直接DTFの内容をshellやVBScriptで
書き換える仕組を組み込んだらどうでしょうか。
外していたら無視して下さい。
RE:SQLで変数を使いたい OSA さん [ 11月28日(水) 16時17分 ]
シャリース様

確かにvbscriptを使えばDTFの中身を
書き換えて実行することが可能だと思いますが、
ファイルが.vbsと.dtfの2つになるのでちょっと厳しいです。

無視しては失礼ですからお礼だけ。
ありがとうございました。
RE:SQLで変数を使いたい シャリース さん [ 11月28日(水) 16時52分 ]
OSAさんの利用シーンが分からないので、ご参考までに弊社では...
データダウンロードを基幹システムのいたる所に組込んでいます。
ダウンロードの仕組は全て統一されていて
ダウンロード用の中間ファイルを必ず作成します。

この中間ファイルは、同一DBに対して同時に複数名が処理されても
問題無いように端末ID(弊社は固定)をメンバー名にして書き出します。
そこでデータダウンロードする際は、メンバー名を操作端末IDにVBSで書き換えてから
ダウンロードが始まる様にしています。

dtfを書き換えるvbsは全てのダウンロードで共通で利用していますので
1本用意しているだけとなります。

他の方の参考になればと思い記載させていただきました。
RE:SQLで変数を使いたい OSA さん [ 4月2日(火) 11時13分 ]
シャリース様

よく解りました。
ありがとうございました。
RE:SQLで変数を使いたい OSA さん [ 11月28日(水) 16時27分 ]
言葉足らずで申し訳ありません。

現在、

拠点ごとにライブラリを分けて売上や仕入などを
ファイル管理しているので、
TOKYOLIB/URIAGE → tokyo_uriage.dtf
OSAKALIB/URIAGE → osaka_uriage.dtf
CYUBULIB/URIAGE → cyubu.uriage.dtf
といった感じでdtfを複数作っています。


やりたいことは、

それを、1本のdtf
変数/URIAGE → uriage.dtf
にしたいのです。
今のままではファイルX拠点分のDTFが
存在するので管理が大変なのです。


そのやり方として考えたのが、

使用端末(win10)のユーザーIDかIPアドレスをSQLで取得して、
さらにそのSQL内でその情報とライブラリ関連に関する情報を
JOINすることで拠点のライブラリを取得し、
SELECT * FROM :LIB/URIAGE;
といった感じで組み込めないかと
思いました。

一応補足しておきます。
「329. RPG ? から ILE-RPG への移行 (2)」で追加情報 シャリース さん [ 12月13日(木) 11時45分 ]
お世話になります。

 AS400 Tips & Techniques のRPGの?329ですが
弊社では、もう一つ上手く移行されなかったケースが有りました。
ご参考まで。
FREE(プログラムの非活動化)命令
この命令が含まれるRPGはILEに変換せずにそのままRPGのままです。
QTEMP ファイルについて 平年寄 さん [ 12月26日(水) 10時13分 ]
CL内にて
ソースファイルから CRTPF で QTEMP にファイル(名前を"AAA")を作成
プログラムを CALL その中で "AAA"をOPEN すると
ライブラリーリスト上でQTEMPより下位にあるライブラリーの "AAA"
を OPEN します。
もちろん意図的に OVRDBF すれば大丈夫なのですが
QTEMP は優先順位が低いのでしょうか。
誰かご教授お願いします。
DEBUG HJ さん [ 12月26日(水) 20時16分 ]
QTEMP の特別扱いは ありません。
DEBUG してください。
1. 実行時のライブラリーリストを見る。動的に変わります。
   DSPLIBL  *PRINT
   CALL     XXXXCLPGM    

2. 上位CLの OVRがかかってる。
DSPLIBLでライブラリーリストを再度確認して シャリース さん [ 12月28日(金) 9時18分 ]
そのジョブは、カレントライブラリ定義が有ったりして。
QTEMPより上に実はカレントでライブラリーが定義されていませんか?
EDTLIBLでは確認できないのでDSPLIBLで確認してみては。
タスクスケジューラでのデータ転送の自動化 JAS さん [ 1月11日(金) 12時1分 ]
データ転送(DTFX)をbatファイルに記述し、Windows(2016)のタスクスケジューラから
実行する方法をアドバイス頂けないでしょうか?

batファイルの中身は
aaaa.dtfx
とだけ記述していますが、実行中のままタスクが止まっております。

スタートアップに以下を登録してあり、
acslaunch_win-64.exe /PLUGIN=logon 

Windowsサーバへログイン後は、タスク実行が正常に終了しますが、
サーバ再起動などを行い、初回Windowsログインを行わない(acslaunch_win-64.exe /PLUGIN=logonが実行されていない)状態で、
タスクの実行時間が来た際はタスクが実行中のままとなってしまいます。

batファイルの先頭に直接、acslaunch_win-64.exe /PLUGIN=logonの記述を追加して試してみましたが、
初回Windowsログインを行わない状態では、タスクが実行中のままとなります。

Windowsサーバへのログインを伴わず、データ転送をタスクスケジューラで自動化するにはどのような設定が必要でしょうか?

RE:タスクスケジューラでのデータ転送の自動化 T さん [ 1月11日(金) 13時26分 ]
/PLUGIN=upload /PLUGIN=download を使用すると実行されると思います。 

参考URL
https://www.e-bellnet.com/category/hint/1702/1702-2.html
ttoのデータオプション変更について SU さん [ 2月7日(木) 13時18分 ]
ttoのデータオプションを使用してデータ抽出をしています。
抽出したい条件は実行する日のデータのみを対象にしたいのですが、
毎回、データオプション変更のWHERE条件を変更しないようにしたいです。

条件で日付をDATE命令を入れてもエラーで上手くいかずに困っています。
おそらく入力が間違えていると思うので、ご存知の方がいらっしゃれば、
教えてください。

宜しくお願いします。
RE:ttoのデータオプション変更について IKD さん [ 2月12日(火) 16時24分 ]
ご自分はWHERE文でどのようにされたのかと
どのようなエラーが来るのかをくわしく書かないと回答は
来ないと思います。
ご質問するからにはご自分の情報も十分伝えないと
回答だけください、ではダメだと思います。
RE:ttoのデータオプション変更について SAKI さん [ 2月15日(金) 16時11分 ]
CURRENT DATEが使えそうです。日付の形式を合わせて比較すれば。(実績はないです)
OPNQRYFで替えたキーでSETLLやREADEをする OSA さん [ 2月8日(金) 11時5分 ]
OPNQRYFを使ってキー順を替えたとき、

RPGでREADすれば確かにその順序で読んでくれるのですが、

そのファイルをSETLLやREADEをするとき、

元のキー順でないと怒られてしまうのですが、

替えたキーでSETLLやREADEをする方法をご存知のかた

教えていただけませんでしょうか。

よろしくお願いいたします。
RE:OPNQRYFで替えたキーでSETLLやREADEをする HJ さん [ 2月8日(金) 19時25分 ]
QTEMPにそれ用のファイルを作る。
RE:OPNQRYFで替えたキーでSETLLやREADEをする OSA さん [ 2月10日(日) 22時10分 ]
HJ様

ご返事ありがとうございます。
RE:OPNQRYFで替えたキーでSETLLやREADEをする OSA さん [ 2月10日(日) 22時10分 ]
HJ様

ご返事ありがとうございます。
たぶん HJ さん [ 2月11日(月) 23時32分 ]
たぶん アドレスソートになってる。
キー順のRRNのみで、キーは無い。

WIDDOW内のカーソル位置を指定する方法について はてな さん [ 3月4日(月) 15時10分 ]
お世話になります。

WIDDOW内のカーソル位置を指定する方法についてご教示ください。

以下のようにWINDOWとサブファイルを設定した画面があります。

A          R WINDOW                                       
A                                      OVERLAY            
A                                      WINDOW(07 29 16 48)
A                                      RMVWDW             
A                                      USRRSTDSP          
A                                      WDWTITLE((*TEXT -  
A                                      ' 問合せ '))   
A                                  1 12' 【名前検索】 ' 
A                                  3  1' 問合キー:'         
A            SKEY          25W  B  3 11DSPATR(UL)
A  21                                  DSPATR(PR)
A                                  4  1' 選択 =1'
 *-----------------------------------------------------
A          R SFL                       SFL             
A            SFSEL          1Y 0B  5  2EDTCDE(4)      
A            SFNAME        34J  O  5 13                
 *-----------------------------------------------------                                                     
A          R SFLCTL                    CSRLOC(LN RN)   
A                                      SFLCTL(SFL)     
A                                      SFLSIZ(0100)    
A                                      SFLPAG(0010)    
A                                      WINDOW(WINDOW)  
A                                      OVERLAY         
A  22                                  SFLDSP
A  22                                  SFLDSPCTL    
A  22                                  SFLEND(*MORE)
A  23                                  SFLINZ       
A  23                                  SFLCLR       
A            LN             3Y 0H
A            RN             3Y 0H
 *-------------------------------------------------------
A          R DUMR                      ASSUME    
A                                      FRCDTA    
A                                      PUTOVR    
A            DMY            2   O  1  2DSPATR(ND)

■行っている処理■
・WINDOWを書き出す
・WINDOWのSKEYに問合キーを入力しWINDOWを読み込む
・問合キーに基づいて検索し、サブファイルのSFNAMEに
 検索結果をセットして表示する。
・SFSELに'1'を入力し任意の名前を選択してもらい、
 結果を読み込む。
以上が想定する一覧の流れです。

■ご教示頂きたい内容■
検索結果を選択してサブファイル先頭のSFSEにカーソルを
セットしたい。

■既に試した方法■
・WINDOWの標識21をONにして(1)WINDOW,(2)サブファイルの順にWRITE
 ⇒ 【結果】WINDOWのSKEYにフォーカスされる
・サブファイル・コントロールCSRLOCの LN/RN にSFSEL位置をセットしてWRITE
 ⇒ 【結果】WINDOWのSKEYにフォーカスされる

以上になります。

ご教示のほど宜しくお願いいたします。
説明不足がありましたらご指摘ください。
RE:WIDDOW内のカーソル位置を指定する方法について はてな さん [ 3月4日(月) 15時24分 ]
投稿した記事タイトルに誤りがありました
大変失礼しました。

こちらで訂正させて頂きます。
誤:RE:WIDDOW内のカーソル位置を指定する方法について
正:RE:WINDOW内のカーソル位置を指定する方法について
CSRLOC HJ さん [ 3月4日(月) 17時59分 ]
適切なレコードに CSRLOCを定義する。

RE:CSRLOC はてな さん [ 3月5日(火) 7時21分 ]
HJさん

回答有難うございました。

回答ついでにもう一つお願いします。
適切なレコードとはどのレコードでしょうか。

サブファイル定義のSFLにはCSRLOCが書けないと思われ
悩んでしまいます。

宜しく教示ください。
たぶん HJ さん [ 3月5日(火) 10時52分 ]
たぶん SKEYの有る レコード。

DDSのコンパイルリストに 警告エラーが出てるはず。
警告エラーを解除すれば、前に進める。
RE:たぶん はてな さん [ 3月5日(火) 17時20分 ]
HJ様

ご教示頂いた通りでカーソルをセットできました。

何故WINDOW?の疑問が残りますがこちらは
勉強不足の自分への課題とします。

有難うございました。
仮想画面 HJ さん [ 3月5日(火) 19時1分 ]
実画面はOS400が 作成してる。構文に 工夫の余地はない。
まずは、ルールを覚えましょう。
-------------------------------
サブファイルを止めて、内部記述にすれば、工夫の余地はある。
何でも できるが 超めんどうくさい。 
RE:仮想画面 はてな さん [ 3月6日(水) 10時52分 ]
HJ様

フォローありがとうございます。
お世話になりました。
RE:仮想画面 IKD さん [ 3月6日(水) 9時53分 ]
検索して見つかった最初のSFLレコードのときだけに
標識:22をオンにセットして

A            SFSEL          1Y 0B  5  2EDTCDE(4)
A  22                                  DSPATR(PC)

 のように DSPATR(PC) (=Position Cursor)を定義すれば
 ご希望のようにカーソルは最初のSFLレコードの SFSELに
 位置づけられます。
RE:仮想画面 はてな さん [ 3月6日(水) 10時56分 ]
IKD 様

任意の項目にカーソルをセットする、、、
固定位置以外=任意の項目にセットしたいケースでは
使えそうですね。

アドバイス有難うございました。
CLプログラムからシステム36のプロシジャーをCALLする CTK さん [ 3月13日(水) 9時48分 ]
システム36モードで作られているプロシジャー(タイプOCL36)を
CLプログラムでCALLする方法はありますか?



システム36のプロシジャーとはRPG?等で作成されたPGMやソートなどの処理をまとめたもので
現在のCLにあたるものなのですが、既存システムでかなりの量があります。

それを再利用するにあたってCLで制御したいのです。

現在このシステム36のプロシジャーを理解するエンジニアがいない状態で困っています。
RE:CLプログラムからシステム36のプロシジャーをCALLする HJ さん [ 3月13日(水) 11時24分 ]
STRS36PRC です。
システム36のプロシジャーは逐次解読されて、OS400のMIを呼び出します。
見かけがCLと 異なるが、中身は同じです。
RE:CLプログラムからシステム36のプロシジャーをCALLする CTK さん [ 3月14日(木) 16時1分 ]
できました。
ありがとうございます。
ACSによるデータ切り捨てデータ転送について T さん [ 4月10日(水) 14時49分 ]
ローカルPCからIBM iフィールドに大きすぎる文字データ(半角文字を含む)をデータ転送した場合、
例)PC:16バイト IBM i:18バイト
  サンプルA商品1袋

Client Accessのデータ転送では余分なデータを切り捨てし、文字化けも起こさず転送できました。
   サンプル A 商


ACSではエラーとなって転送できませんでした。(エラーコード:MSGDB0036)
そこで、ACSで文字切り捨て機能を有効にするため、以下を追加してAcsConfig.propertiesファイルを変更しました。
com.ibm.iaccess.dataxfer.jdbc.AllowCharacterTruncation = true

結果:
エラーにならず転送できたのですが、内容を確認したら文字化けを起こしていました。
   サンプル A 商・・・

文字化けを起こさない設定等わかる方がいらっしゃいましたらご教授下さい。
よろしくお願いします。
RE:ACSによるデータ切り捨てデータ転送について T さん [ 4月11日(木) 14時12分 ]
申し訳ありません。
例)の内容が正しくありませんでした。こちらは無視して下さい。

ご質問の内容を簡単に説明しますと、
Client Accessのデータ転送では文字を切り捨てた後ろに、
シフトイン(0F)を自動的にセットしてくれましたが、
ACSのデータ転送ではセットされません。

自動的にセットされるようにする方法がありましたらご教授下さい。
よろしくお願いします。
RE:ACSによるデータ切り捨てデータ転送について IKD さん [ 4月16日(火) 11時21分 ]
ACSにはシフト文字の考慮はされていないようです。
調整のためのオプションも用意されていません。
またCSVへのダウンロードでは漢字は完全に文字化けを起こしてしまいます。
AutoWebのデータ転送機能の開発にあたっては
iAccessの動作に準拠しました。

https://www.officequattro.com/jpn/software/contents/autoweb/index.html#data
RE:ACSによるデータ切り捨てデータ転送について T さん [ 4月16日(火) 12時0分 ]
現状のACSにはオプション等は用意されていないということですね。
IKDさん、ご教授ありがとうございました。
RPG? C仕様書にて はせがわいくよ さん [ 4月29日(月) 11時53分 ]
RPG?のC仕様書について教えてください。
軽減税率対応のため、品目マスターの税率を変えようとしているのですが
品目クラスがSIのものでコードが00000000SIP0019より大きいものだけ10%にしたいのです
。逆に言えば全て品目クラスがSIのものを10%にしてから、コードが00000000SIC9999以下のも
のの税率を0にすればいいのですが、
結果のフィールドの桁数が6桁しかないので
品目クラス  IFEQ  'SI'
品目コード  ANDLE  '00000000SIC9999'
税率     MOVE  0

ということができません。
品目コードは15桁でSIC,SIP,SIR,SIをふくむものがあるのですが、SIP以降のみ10%にしたいの
です。
どうぞよろしくおねがいいたします。


RE:RPG? C仕様書にて IKD さん [ 5月1日(水) 22時17分 ]
記述しておられるのは RPG III のようですが
RPG III は 20年前の言語ですので、
そろそろILE-RPGに代えることをお勧めします。
ILE-RPG ですとフリー・フォーマットで
下記のように見た目も自然でわかりやすい記述になります。

 /FREE
    IF 品目クラス = 'S1' AND
       品目コード <= '00000000SIC9999'
         税率 = 0;
    ENDIF;
 /END-FREE
名前付きリテラル HJ さん [ 5月7日(火) 10時38分 ]
I仕様書で、名前付きリテラルを定義する。
詳しくは、名前付き固定情報 RPG で くぐる。
RE:名前付きリテラル HIROX さん [ 5月8日(水) 11時49分 ]
SIP以降ということは、品目コードは15桁でSIC,SIP,SIR,SI のSIの場合も
10%にするってことなんですかね?

それなら比較は正しいように見えるので、名前付きリテラルまたは、CATで
変数に入れ込んでやれば、いいような気がします。

RENAMEについて AS400初心者 さん [ 5月11日(土) 22時33分 ]
RENAMEについて教えてください。
例えば下記のようにAをSETLL READEしたあと、BのファイルをCHAINしてUPDATEする処理があった場合、
Aファイルのレコードの位置づけはどうなりますか?。BファイルのCHAINよりAファイルのレコードの
位置づけは変わったりしますか?
Aは論理ファイル、Bは物理ファイルとし、Aはリネームして別名A1とします。AのもとはBの
物理ファイルとします。

 KEY1 SETLL A
 KEY1 READE A
      DOW  EOF(A) = *OFF
  
 AAA  CHAIN B
      IF   FOUND(B) 
      UPDATE B
      END IF

 KE1  READE A
      ENDDO
RE:RENAMEについて IKD さん [ 5月12日(日) 8時42分 ]
前提としてファイルAのアクセス・パスの保守 (MAINT)が *IMMED である場合ですが
ファイル B へのCHAINによってファイルA の次に読み込むアクセス・パスが
影響を受けて変わることはありませんが ファイルBのUPDATEによってファイルAの
アクセス・パスが変更されてしまうと次に読み込むレコードは変わります。
これは以前に検証済みです。
RE:RENAMEについて AS400初心者 さん [ 5月12日(日) 16時14分 ]
ご回答ありがとうございます。
CHAINだけだとAファイルの読み込み位置については影響がでないことは分かりました。
BファイルのUPDATEにより、物理ファイルのレコード順が変わった場合は、
次に読み込むレコードも変わってしまう認識であってますでしょうか?
RE:RENAMEについて IKD さん [ 5月13日(月) 6時45分 ]
その通りです。
UPDATEによってアクセス・パスも更新されてまうと
次に読み込むレコードの順序が変わっていまいます。
この症状を初めて見たときはOSのバグかと思ってしまいましたが
そうではありませんでした。
正常な結果です。
システム日付と曜日について SU さん [ 5月15日(水) 10時50分 ]
お世話になります。質問です。
AS400の会社で使用しているAS400の日付について和暦で見せるために
システム日付が現在2031/mm/ddに設定されています。
(画面表示では31/m/dとなる)
GO POWERなどのスケジュールも31/m/dとなりますが、なぜか曜日はズレることもなくあっています。
例:31/5/12(日)となっている。通常2031/5/12は日ではないのに。。。

目的は元号が変わりましたので、今後は31/MM/DDではなく西暦で表示しようとなり19/MM/DDに変更したいのです。
その時にCHGSYSVAL QDATEで2019/MM/DDに戻してGO POWERを確認すると19/5/12となりますが、曜日が土になっていました。
おそらく19/5/12を和暦とみている気がしています。
(確認すると平成19年5月19日は土曜でした。)

教えていただきたいのが、
?曜日をどうすれば変更できますか。
?as400のシステム日付を確認した時に現在2031/5/12と表示されていましたが本当に和暦とみて曜日をあわせることができるのか。
 年の下2桁で見せかけで強引にしていたと思っていたのですが和暦ができるのであれば西暦に戻すにはどうすればよいのか
を教えてください。

前任者と入れ替わりで入社して半年ですがas400初心者での独学で、問い合わせできる環境がなくて困っています。
よろしくお願いします。
RE:システム日付と曜日について SU さん [ 5月15日(水) 11時0分 ]
間違えましたので別スレッドに書き直しました
システム日付と曜日について SU さん [ 5月15日(水) 10時59分 ]
お世話になります。質問です。
AS400の日付について和暦で見せるためにシステム日付が現在2031/mm/ddで設定されています。
(画面表示では31/m/dとなる)
GO POWERなどのスケジュールも31/m/dとなりますが、なぜか曜日はズレることもなくあっています。
例:31/5/12(日)となっている。通常2031/5/12は日ではないのに。。。

目的は元号が変わりましたので、今後は31/MM/DDではなく西暦で表示しようとなり19/MM/DDに変更することになりました。
5/12の休日に出勤してCHGSYSVAL QDATEで'20190512'に戻しGO POWERを確認すると19/5/12となりますが、曜日が土になっていました。
おそらく19/5/12を和暦とみている気がしています。
(確認すると平成19年5月19日は土曜でした。)
曜日がずれていたので一旦元に戻しました。

教えていただきたいのが、
?曜日をどうすれば変更できますか。
?as400のシステム日付を確認した時に現在2031/5/12と表示されていましたが本当に和暦とみて曜日をあわせることができるのか。
 年の下2桁で見せかけで強引にしていたと思っていたのですが和暦ができるのであれば西暦に戻すにはどうすればよいのか
を教えてください。
 曜日だけの問題なのかシステム日付にも何か問題があるのかが不明

前任者と入れ替わりで入社して半年ですがas400初心者での独学で、問い合わせできる環境がなくて困っています。
よろしくお願いします。
RE:システム日付と曜日について T さん [ 5月15日(水) 11時15分 ]
システム値のQDAYOFWEEKで曜日を変更できます。
前任者が西暦を強引に和暦に見せようとして曜日を調整したのではないでしょうか。
RE:システム日付と曜日について IKD さん [ 5月15日(水) 11時20分 ]
今日の曜日はシステム値 QDAYOFWEEK です。

 DSPSYSVAL QDAYOFWEEK で表示し
 CHGSYSVAL QDAYOFWEEK + F4キーで変更できます。
RE:システム日付と曜日について SU さん [ 5月15日(水) 11時42分 ]
お世話なります。
CHGSYSVAL QDAYOFWEEKで変更できるんですね。

WRKSYSVAL  QDAYOFWEEKでは変更できなかったのと、IBMのマニュアルでは変更不可みたいなことが記載されていたのでできないと考えておりました。

今週の土曜に試してみます。

ちなみにですがCHGSYSVAL QDAYOFWEEKでF4から新しい値を*SATにすれば変わる考えで大丈夫でしょうか
RE:システム日付と曜日について SU さん [ 5月15日(水) 11時46分 ]
今、試しにCHGSYSVAL SYSVAL(QDAYOFWEEK)でF4を押しましたが、
パラメーター SYSVAL に対して 'QDAYOFWEEK' が正しくない。と表示されています。

変更できないのではないでしょうか。
RE:システム日付と曜日について T さん [ 5月15日(水) 13時47分 ]
申し訳ありません。システム値にQDAYOFWEEK(曜日)があったので変更できると思ってしまいました。
確かに変更不可になりますね。
もう少し調べてみます。
RE:システム日付と曜日について T さん [ 5月15日(水) 15時20分 ]
システム値 QYEAR(年)に31がセットされていませんか?
弊社のシステム日付は西暦で設定されていますが、
QYEAR(年)19から31に変更したところ、曜日が1つずれました。

※変更する場合には注意が必要です。
 ジョブ・スケジュール項目にジョブをスケジュールしていると影響を受ける可能性があります。
 その他にも注意する必要があるかもしれません。
 弊社のスケジュールしていたジョブがすべて開始されてしました。(泣)
RE:システム日付と曜日について SU さん [ 5月15日(水) 17時22分 ]
私が5月12日に変更したのは、QDATEのみです。

その時に確認したのは、QDATETIMEで8桁表示で確認しましたが、
QYEAR(年)はQDATEを変更しても変わるものではないことなのでしょうか。
別で変更する必要があることですか。

私もマニュアルを再度確認しましたが、QDAYOFWEEKは『システム日付は、時刻が真夜中の午前 12:00:00 になると自動的に更新されます。』と書いていました。
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_72/rzakz/rzakzqdate.htm

つまり、5/12の日はQDATEで19/5/12に変更した後、GO POWERの日付は19/5/12(土)になっていたけど、
翌日には5/12(日)に変わっていた???
休日の日にしか変更できるチャンスがないので、翌日まで放置はできず確認はできませんでしたが。。。

疑問なのは現状31/5/12は日でスケジュールになっていることが不明です。
QYEARは今確認すると31になってました。
ASで和暦や西暦でみるようなコマンドなどございますか。

WRKJOBSCDEも確認していましたが、投入日が31/5/12になっていましたので、19に変更しても開始はされませんでした。

来週から運用開始するので曜日の部分だけうまくいかずに困っています。



RE:システム日付と曜日について IKD さん [ 5月15日(水) 17時57分 ]
Chao!! を使ってIBM Watson で IBMマニュアルを
「システムの曜日を変更するには?」で調べてみました。
次が Watson からの回答です。

曜日 (QDAYOFWEEK) システム値

曜日 (QDAYOFWEEK) システム値は、システム上の曜日を指定します。

   :

この値は変更できません。 システムが設定します。 QDATE の値により、QDAYOFWEEK の値が決
まります。

システムにグレゴリオ暦が使用されていないと、この値は正しく設定されません。
RE:システム日付と曜日について SU さん [ 5月16日(木) 8時31分 ]
おはようございます。
色々調べていただきまして感謝です。

実はグレゴリオ暦も影響があるのかについては月曜日に調べてました。
弊社のQLEAPADJの設定値は0になってました。(つまり設定しているということでよろしいでしょうか)

例えばですが、QDATEで'190512'で変更した場合、いまQLEAPADJは0ですが、QDATEを実行した為、
QLEAPADJも0で実行しないと曜日が反映されないのでしょうか。

RE:システム日付と曜日について SU さん [ 5月16日(木) 9時28分 ]
別件での質問ですが、QDATEで年月日を変更したあとに、WRKJOBSCDEの各JOBの日付に合わせて次の投入日が31/5/12になった状態だったので、
31/5/12→19/5/12に変更したいのですが、変更する場合はOPTに2を入れて実行すれば変更になりますか。

全部でJOBは6つありますが、スケジュールは下記のとおりです。
1番目 状況:SCD 日付:*STA 時刻:20:00:00 頻度:WEEKLY 回復処置:*SBMRLS 次の投入日:31/05/18
2番目 状況:SAV 日付:25/12/28 時刻:20:00:00 頻度:WEEKLY 回復処置:*SBMRLS 次の投入日: ←現在動いていない?
3番目 状況:SCD 日付:*ALL 時刻:15:47:00 頻度:WEEKLY 回復処置:*NOSBM 次の投入日:31/05/16
4番目 状況:SCD 日付:*SUN 時刻:12:00:00 頻度:WEEKLY 回復処置:*SBMRLS 次の投入日:31/05/19
5番目 状況:SCD 日付:*ALL 時刻:16:17:00 頻度:WEEKLY 回復処置:*NOSBM 次の投入日:31/05/16
6番目 状況:HLD 日付:*ALL 時刻:08:00:00 頻度:WEEKLY 回復処置:*NOSBM 次の投入日:31/05/17

2番目は稼働していないと思います。
1番目が今週の休日出勤で変更したく、投入日を31/5/18から19/5/18にしたいのですが、金曜の夜にQDATEで'190517'に変更して翌日に曜日が変わっているか確認しようと思います。
  手順:金曜日に日付変える。土曜日に曜日が正確になっている予定。日付と曜日が想定通りになっているのを確認してからスケジュールのoptを2で実行すると、投入日は19/05/18になりますでしょうか。
 ※4番も同様?
3、5、6番目は毎日稼働しているようなので、スケジュールのoptを2で実行すると投入日が変わりますか。

ちなみにですがこの投入日はQDATEを変更しても変わりませんでした。

RE:システム日付と曜日について T さん [ 5月16日(木) 10時34分 ]
昨日、システム値QYEAR(年)を19から31に変更した直後スケジュールしていたジョブが開始され、
次の投入日が31/5/16となっていました。(31/5/17、31/5/18など)
システム値QYEAR(年)を19に戻した後、ジョブスケジュールの
optを2で実行することで19/5/16に変わりました。

ちなみにQYEARを変更すると、システム値に対して行った変更はただちに有効となります。
この値を変更すると,システム値QDATEにも影響します。
と説明があります。

QDATEとQYEARを変更することで、深夜12時を待たなくても曜日が変更されると思います。
昨日テストした際にGO POWERで確認したら曜日が変わっていました。
RE:システム日付と曜日について SU さん [ 5月16日(木) 11時25分 ]
ご返信ありがとうございます。

年を進めた場合はジョブスケジュールが実行されるようですね。
今回は戻るので実行はされないと思いますので、opt=2で実行します。

スケジュール見るのは初めてで、毎日稼働しているJOBはQSYSから実行するようにCALLでされていました。
3番目 CALL PGM(QSYS/QSJHEARTBT)
4番目 CALL PGM(QSYS/QS9AUTOPTF)
5番目 QSYS/WRKSRVAGT TYPE(*SRVINF) COLSRVINF(*YES) SNDSRVINF(*YES)
※番号は前回に書いた各JOBのスケジュールです。

ネットで調べていましたが3番目と4番目の意味が理解できず、もしこれが当日実行されない場合、
システム自体が動かなくなるなどございますか。

当日はスキップして翌日稼働した時にASに影響が出て稼働しなくなるなど


また、QDATEとQYEARを変更することで、31年の5月の曜日は正しい曜日になっていたとのことでしょうか。
私が変更したときは19/5/31が土曜日になっていました。31/5/12は日曜日でした。
今の運用で無理やり曜日を操作していると思いますので19年にした場合、ずれているのかもです。
それをどうすれば修正できるのか悩ましいです。
RE:システム日付と曜日について T さん [ 5月16日(木) 11時28分 ]
システム値QYEAR(年)を変更することで、すぐにQDAYOFWEEK(曜日)も変わるのを確認しました。
RE:システム日付と曜日について T さん [ 5月16日(木) 13時39分 ]
QDATEは変更していません。19/05/16のままです。
QYEARを31に変更した時、5/16は金曜日になっていました。2031年5月の曜日と同じです。

試しに
QDATE 19/05/16
QYEAR 19
に変更してみてはどうでしょうか。
RE:システム日付と曜日について SU さん [ 5月16日(木) 15時2分 ]
今、変更して確認はしたいのですが、弊社はAS400が1台のみで平日の業務中に変更すると
影響が出る為、避けています。

私が5/12で変更したときは2019/5/12は土曜日でしたので、やはりシステム日付を和暦とみるような
やり方があるのでしょうか。
現状の2031は2031年ではなく平成31年とみなすような設定をAS400で持っている???
そのため、2019年と変更しても平成31年とみて曜日も土曜日となったなど。。。

そのような設定はASにございますでしょうか。
RE:システム日付と曜日について T さん [ 5月16日(木) 17時28分 ]
参考になればいいのですが。
https://www-01.ibm.com/support/docview.wss?uid=ibm10872332
RE:システム日付と曜日について HaHi さん [ 5月17日(金) 20時24分 ]
V6R1以降ならCHGTIMZONを利用する事により、曜日も一致します。
令和元年なのでYEAROFSに-18を入力し即反映を実施すれば
2001年5/17となりeSAも正常に発報可能。
JOBSCDEも正常なはず。
ただし、過去に戻るので次回の自動起動時間は確認要!

この方法で3社実施済み。

RE:システム日付と曜日について HaHi さん [ 5月17日(金) 20時40分 ]
訂正します!
2031年の際、曜日があってたのならタイムゾーンの設定が
+12になっていたと考えられます。

よって西暦にされたいのなら設定を0とする事により解消できると考えます。
RE:システム日付と曜日について SU さん [ 5月20日(月) 11時40分 ]
和暦から西暦の件ですが本日から運用予定でしたが曜日の件により6月に延期になりました。
弊社のバージョンはV7R1なので、CHGTIMZONを利用できます。


CHGTIMZONはおそらくQTIMEZONEのことだと思いますが、DSPSYSVALで確認すると下記のようになっていました。

システム値 . . . . . . :   QTIMZON             
記述 . . . . . . . . . :    時間帯             
                                               
                                               
時間帯 . . . . . . . . :   QP0900JST      名前 
                                               
                                               
関連の設定値 :                                 
  オフセット . . . :   +09:00                  
  フルネーム . . . :    日本標準時             
  省略名 . . . . . :   JST                     
  年オフセット . . :   12                      


ご指摘の通り12を加算していました。これで2031年になることですね。
CHGTIMZONで変更する場合は、今使用している同じ名前(QP0900JST)で変更するべきでしょうか。
その場合、下記のような記述で問題ないでしょうか。

                          時間帯記述変更  (CHGTIMZON)                          
                                                                               
 選択項目を入力して,実行キーを押してください。                                
                                                                               
 時間帯記述  . . . . . . . . . .   QP0900JST     名前                         
 オフセット  . . . . . . . . . .   0           *SAME, -779 から 779 分       
 標準時間 :                                                                    
   省略名  . . . . . . . . . . .   JST           文字値 , *SAME, *GEN, *MSG   
   フルネーム  . . . . . . . . .                                               
                                                                               
 夏時間調整時間 (DST):                                                         
   省略名  . . . . . . . . . . .   *SAME          文字値 , *SAME, *NONE...     
   フルネーム  . . . . . . . . .                                               



また、JOBSCDEは朝一で稼働しそうなのはないので、朝一で変更すれば問題ない気がします。

RE:システム日付と曜日について SU さん [ 5月20日(月) 11時43分 ]
先ほどの件ですが崩れていたので、修正しました。


                          時間帯記述変更  (CHGTIMZON)                          
                                                                               
 選択項目を入力して,実行キーを押してください。                                
                                                                               
 時間帯記述  . . .    QP0900JST    名前                         
 オフセット  . . .    0        *SAME, -779 から 779 分       
 標準時間 :                                                                    
   省略名  . . .    JST       文字値 , *SAME, *GEN, *MSG   
   フルネーム  . .                                               
                                                                               
 夏時間調整時間 (DST):                                                         
   省略名  . . .    *SAME      文字値 , *SAME, *NONE...     
   フルネーム  . .                                     
RE:システム日付と曜日について Hahi さん [ 5月20日(月) 16時24分 ]
CHGTIMZONのQP0900JSTで西暦を利用の場合=0、令和元年の場合=-18を入力実行し
即反映?システム値変更?だったと思います。
これを実行する事により、即反映されます。

よろしくお願いいたします。
RE:システム日付と曜日について HaHi さん [ 5月24日(金) 16時14分 ]
以下、訂正します。

利用するコマンドはWRKTIMZONでした。
 
*********************************************************
OPT  オフセット     時間帯    省略名   フルネーム                 
     +10:00    QP1000AES3  AEST       オーストラリア東部標準時   
     +10:00    QP1000UTCS  UTC+10:00S UTC+10:00標準時            
     +09:30    QP0930ACST  ACST       オーストラリア中部標準時   
     +09:30    QP0930ACS2  ACST       オーストラリア中部標準時   
     +09:30    QP0930ACS3  ACST       オーストラリア中部標準時   
     +09:00  > QP0900JST   JST        日本標準時                 
     +09:00    QP0900KST   KST        韓国標準時                 
     +09:00    QP0900UTCS  UTC+09:00S UTC+09:00標準時            
     +09:00    QP0900WIT   WIT        WAKTUインドネシア時        
     +08:00    QP0800AWST  AWST       オーストラリア西部標準時   
     +08:00    QP0800AWS2  AWST       オーストラリア西部標準時   
***************************************************
+09:00  > QP0900JST   JST        日本標準時  
OPTへ2実行

F9 実行→最終ページの年オフセットを"0"へ修正し確定
****************************************************
元の画面に戻るので
+09:00  > QP0900JST   JST        日本標準時 
のOPTへ8=システム値の更新を実行

これにて即反映されます。

過去に戻るので
GO POWER の設定確認
WRKSYSVAL QIPLDATTIM の確認
WRKJOBSCDEの確認
をされるべきだと考えます。

私の経験値では
スプールファイルの発行日付も変更されます。
またDSPLOGは今現在以降のLOGが表示されますので
以下の手順で削除された方が管理しやすいと考えます。
https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_73/rzahb/rzahbloj.htm


htm






RE:システム日付と曜日について SU さん [ 5月24日(金) 16時26分 ]
ありがとうございます。
報告して、6月に変更のスケジュールを立ててみようと思います。

RE:システム日付と曜日について SU さん [ 5月27日(月) 15時9分 ]
お世話になります。
前回、WRKTIMZONの件で、最終ページの年オフセットを"0"へ修正し確定とございましたが、
年オフセットはF9を押すことで表示されますでしょうか。
弊社のASをみていると下記の通りにF9が見当たらず、また下の情報がすべてでした。

 
                          時間帯記述変更  (CHGTIMZON)                          
                                                                                
  選択項目を入力して,実行キーを押してください。                                
                                                                                
  時間帯記述  . . . . . . . . . . > QP0900JST      名前                         
  オフセット  . . . . . . . . . .   540           *SAME, -779 から 779 分       
  標準時間 :                                                                    
    省略名  . . . . . . . . . . .   *MSG           文字値 , *SAME, *GEN, *MSG   
    フルネーム  . . . . . . . . .                                               
                                                                                
  夏時間調整時間 (DST):                                                         
    省略名  . . . . . . . . . . .   *NONE          文字値 , *SAME, *NONE...     
    フルネーム  . . . . . . . . .                                               
                                                                                
  標準時間メッセージ  . . . . . .   CPX0941        名前 , *SAME                 
                                                                                
                                                                                
                                                                                
                                                                                
                                                                                
                                                                         終り   
 F3= 終了    F4=プロンプト   F5= 最新表示    F12= 取り消し                         
 F13= この画面の使用法                    F24= キーの続き                       
  既に区域の最後が表示されている。                                              
RE:システム日付と曜日について HaHi さん [ 5月28日(火) 7時53分 ]
F24= キーの続き  打鍵後
F9=すべてのパラメーター が表示されます。

当方もV7R1の環境でチェックしておりますので
ご安心くださいませ。

因みに
V5R3からV7R3までの環境があります。

                追加のパラメーター                                    
                                                                        
年オフセット . . . . . . . . .   0             *SAME, -140から140年
別名 . . . . . . . . . . . . .   'A   /T    '                          
RE:システム日付と曜日について SU さん [ 5月30日(木) 9時24分 ]
承知致しました
何から何までご丁寧に対応していただきましてありがとうございました。
CPWの調査 SAKI さん [ 5月28日(火) 11時31分 ]
CPW(バッチと対話それぞれ)の値を見たいのですがコマンド等お教え下さい。
RE:CPWの調査 IKD さん [ 5月29日(水) 6時44分 ]
ありません。

CPW値はIBMからモデル別に発表されているだけで
マシン毎に値が登録されているわけではありません。
最寄りのIBM特約店にご相談されてほうがいいと思います。
Chao!! でIBMマニュアルすべてを検索しても
CPWという言葉も登録されていませんでした。
RE:CPWの調査 SAKI さん [ 5月29日(水) 10時12分 ]
承知いたしました
RE:CPWの調査 HaHi さん [ 5月29日(水) 13時42分 ]
必要なのは
マシンタイプ・モデル

WRKLICINF プロセッサー・グループ

DSPSYSVAL QPRCFEAT  プロセッサー機構

にて特約店なら調査可能と思われます。
CPYFで上書き削除してしまったファイルの復元方法 AS400初心者 さん [ 6月11日(火) 8時42分 ]
AS400にはジャーナルという仕組みがありますが、
このジャーナルを利用してCPYF(*REPLACE)で上書きして消してしまったファイルを復元や
削除してしまったファイルを復元することは可能でしょうか?
可能であればお手数ですがやり方など教えて頂けないでしょうか
宜しくお願い致します。
RE:CPYFで上書き削除してしまったファイルの復元方法 IKD さん [ 6月11日(火) 10時55分 ]
上書きしてしまったファイルのジャーナルはあるのでしょうか?
すべてのファイルが自動的にジャーナルされているわけではなく
ジャーナルとして指定したファイルに対する更新が
変更前・変更後としてジャーナルされますが
指定していなければそのファイルに対応するジャーナルはありません。

汎用機ではジャーナルすることが一般的ですが
IBM i の場合はジャーナルを指定すると動きが遅くなるので
ジャーナルされる方は少ないと思います。
ジャーナルされていることがわかっているのであれば
別ですが。

日次のBACKUPテープからの復元を試みたほうが
よいでしょう。
RE:CPYFで上書き削除してしまったファイルの復元方法 IKD さん [ 6月11日(火) 15時52分 ]
S/36のときはCATALOGというファイルの登録簿を調べて消去されたファイルも
手動で強制的に復元できましたが IBM i では S/36環境でもそのような機能は
ないと思います。
RE:CPYFで上書き削除してしまったファイルの復元方法 AS400初心者 さん [ 6月12日(水) 8時48分 ]
ご返信ありがとうございます。
弊社環境を確認しましたところ、ライブラリの記述確認で
「ジャーナリング情報内の現在ジャーナル処理中」がNOになっていました。
IKDさんの仰る通りジャーナル登録されていないようです。

何かあった際には、日次のバックアップテープからの復元を行いたいと思います。
ありがとうございました。
PCOMフォントの選択 ASUSERKK さん [ 6月11日(火) 17時24分 ]
PCOMのセッションを作成した時、
フォントをTermnalが選択できなません。
以前はTermnalが選択できたと記憶しておりますが、
リストに表示すらされません。何が原因かおわかりでしょうか。
インストーラーは下記です。
5770XE1 V7R1M0 DVD SK3T409805
RE:PCOMフォントの選択 IKD さん [ 6月12日(水) 15時51分 ]
PCOMM などの5250エミュレータでは
画面を最大化で表示しているとフォントは変更できません。
小さめに表示しないと変更できません。
画面を最大化したままで変更しようとしていませんか?
RE:PCOMフォントの選択 すかぴ さん [ 6月14日(金) 13時1分 ]
こんにちは。IKDさんが示されているように、フォント変更は最大化した状態だと出来ないようですね。
しかしながら、リストにも表示されていない → 以前にそのような事がありました。
PC再起動することで、リストに表示されるようになった事もあります。
はっきりとした回答出来ず申し訳ありません。
RE:PCOMフォントの選択 ASUSERKK さん [ 7月4日(木) 13時16分 ]
インストール先にグループ会社の
セキュリティがかけられている為と判明いたしました。
お騒がせいたしました。
CLからIFS環境にある任意のファイルを削除したい シャリース さん [ 6月21日(金) 13時21分 ]
お世話になります。
CLでIFS環境のあるフォルダーに書き出された任意のファイルを削除したいです。
(パス、ファイルIDは、分かっているので指定可能です)
何かコマンドが無いかと調べたのですが、それらしいコマンドが探し出せませんでした。
手動でWRKLNKからOPT=4で削除できるので何か方法があるのではないかと思っています。
分かる方がいらっしゃいましたらご教示お願いいたします。
RE:CLからIFS環境にある任意のファイルを削除したい シャリース さん [ 6月21日(金) 13時27分 ]
自己解決しました。

DLT*で調べていたのですが、それっぽいのが見つからなかったのですが
RMV*で探していたら、RMVLNKで削除する事が出来ました。
ACSのデータ転送 SAKI さん [ 6月21日(金) 17時13分 ]
V7M1R0 
ACSのデータ転送で無変換のモードが無さそうですが何か無変換で転送する方法
は有りますでしょうか?
RE:ACSのデータ転送 IKD さん [ 6月21日(金) 18時3分 ]
PCOMM では無変換のデータ転送オプションはありましたが
確かにACSでは無変換のデータ転送はにいようです。
無変換をどのように使われたいのか不明ですが
IFSであれば Ftpを使うのが一般的です。
Windowsのコマンド・プロンプトでFtpを使うことが
できますし、無償のFFFTPなどが一般によく使われています。
RE:ACSのデータ転送 SAKI さん [ 6月25日(火) 15時6分 ]
ご回答有難うございました。
RE:ACSのデータ転送 GA さん [ 7月10日(水) 13時6分 ]
DOSRANDOMファイルを指定すると無変換に該当するかと思います
CHGUSRPRFについて ROY さん [ 7月2日(火) 18時39分 ]
初めての投稿です。

AS400のCM上にて誤って、「CHGUSRPRF <アカウント名> 」で実行してしまいま
した。
画面には"変更しました"の文字が表示されましたがパラメータを指定していな
い場合
何か変更されているのでしょうか?

見た限りでは最終変更日が変わったのみに思われますが、なにも変更されてい
ないか
気になっているためどなたか詳しい方がいらっしゃればご教授いただければと
思います。
RE:CHGUSRPRFについて IKD さん [ 7月2日(火) 19時36分 ]
CHGUSRPRF コマンドのパラメータの省略値はすべて *SAMEです。

参考までにCHGUSRPRF + F4キーを押してみると
すべてのパラメータは *SAME になっているはずです。
ただし社内で CHGUSRPRFコマンドを変更していれば
事情は変わりますが CHGUSRPRF + F4 ですべて *SAME と
表示されているのであれば何も変更されていません。

つまり何も更新されていませんのでご安心ください。
RE:CHGUSRPRFについて ROY さん [ 7月2日(火) 19時48分 ]
IKDさんありがとうございます!
変更がないとは思いつつも気が気ではありませんでした。
胸をなでおろしております。

今回の件で改めてASのことをもっと知ろうと思いました。
以後このようなことはないように気を付けます。
本当にありがとうございます。
STRPCCMDの外部アプリ起動について ASUSERKK さん [ 7月4日(木) 13時27分 ]
CL内で下記のような処理があります。
STRPCCMD   PCCMD('C:\PROGRA~1\IBM\PERSON~1\PCSFT5.EXE

Windows7サポート終了に伴いWindows10への切り替えを行う中、
Windows10の端末インストール先はC:\Program Files(x86)の為、
当然ながら起動しません。

PGMに工夫し、場合分けで
C:\PROGRA~1\IBM\PERSON~1\PCSFT5.EXE

C:\PROGRAM Files(x86)\IBM\PERSON~1\PCSFT5.EXE
のインストール先を判断しPCSFT5.EXEを実行する
良い方法はありませんか。
RE:STRPCCMDの外部アプリ起動について HJ さん [ 7月4日(木) 21時16分 ]
パスは通ってるから、PCSFT5.EXE だけで 十分です。
 
RE:STRPCCMDの外部アプリ起動について IKD さん [ 7月10日(水) 20時4分 ]
HJさんの解説はおわかりになりますか?

Windowsにもライブラリー・リストと同じような
PATH と呼ばれる環境変数がありファイル名だけを指定するだけで
PATH の記述に従ってシステムが自動的にプログラムのありか(場所)を
検索してくれます。

HJさんの話は各々のWindowsバージョンに導入された場所が
インストーラによってPATH記述に追加されているはずだから
C:\ ,,,のようにフル・パス名を指定するのではなく
ファイル名だけを指定すればシステム(Windows)がPATHによって
検索してくれるはずだから、むしろファイル名だけを
指定したほうがよい、という回答です。

環境変数:PATHの使い方はネットでGoogleしてみてください。
RE:STRPCCMDの外部アプリ起動について ASUSERKK さん [ 7月12日(金) 10時56分 ]
HJ さん,IKD さん 

ご回答ありがとうございました。

起動が確認できました。助かりました。


ログイン中セッションの強制終了について sansan さん [ 7月23日(火) 19時9分 ]
夜間バッチ処理前に、ログイン中のセッションを強制終了させるCLを実行したいのですが
どのコマンドを使用すればよいでしょうか?
RE:ログイン中セッションの強制終了について HJ さん [ 7月24日(水) 10時55分 ]
一部なら ENDSBS。全部なら ENDSYS。
システム値(QMAXSIGN)変更の反映タイミング はたもち さん [ 8月6日(火) 8時54分 ]
システム値を変更した場合の反映タイミングは様々だと思うのですが、
QMAXSIGN(認められる最大サインオン試行回数) を変更した場合の反映タイミングは
再起動後でしょうか?即時反映でしょうか?

また、システム値に関する便利な(分かり易い)HPがあれば教えていただけませんでしょうか?
RE:システム値(QMAXSIGN)変更の反映タイミング すかぴ さん [ 8月6日(火) 9時57分 ]
お使いのバージョンが違うかもしれませんが、ナレッジからシステム値で検索をかけると、情報が色々出てくると思います。

https://www.ibm.com/support/knowledgecenter/ja/ssw_ibm_i_72/rzarl/rzarlsysval.htm
RE:システム値(QMAXSIGN)変更の反映タイミング HJ さん [ 8月6日(火) 16時54分 ]
AS400が使えるなら、DSPSYSVAL CMD4 。
F1 (HELP) で 詳細が表示されます。
RE:システム値(QMAXSIGN)変更の反映タイミング IKD さん [ 8月8日(木) 9時22分 ]
WRKSYSVAL *ALL であれば
システム値の一覧が見れますので
わかりやすく便利です。

QMAXSIGNON は即時反映されると思います。
RE:システム値(QMAXSIGN)変更の反映タイミング はたもち さん [ 8月27日(火) 17時39分 ]
即時反映ということが分かり、安心しました。
みなさま、ありがとうございました。
マクロ開発 s_yaha さん [ 8月14日(水) 10時4分 ]
5250エミュレーターの移行で困っています。

旧:IBM i Access
新:IBM i Access Client Solutions

Win10に伴う変更となっています。

従来はVBSなので調べればある程度でてきたので、楽だったのですが、
今回はそもそも言語としてはなんの分類に入るのかすらわからない状態です。

やりたいこと
・保存されているファイルを読み込む(テキストデータ、CSVなど)
・データ内を各行処理する。(ループ処理)

わからないこと
・ファイルの読込み方法
・読み込んだデータの配列化
・ループ分の書き方

オンラインのマニュアルを一通り読んだのですが、それらしいものが見つかっておりません。
RE:マクロ開発 T さん [ 8月19日(月) 14時33分 ]
「そもそも言語」というのは、Access Client Solutionsが何の言語で作られているかというのことでしょうか?

RE:マクロ開発 IKD さん [ 8月20日(火) 8時53分 ]
ACS のマクロ(?)でローカルにあるファイルをオープンしたり...とか
何をされたいのでしょうか?
アップロード?
「従来はVBS」とかも意味不明です。

もう少し背景も含めて具体的にくわしく書かれないと
どなたも回答できないと思います。
RE:マクロ開発 すかぴ さん [ 8月20日(火) 11時58分 ]
従来のCAで作成されたマクロが、VBSで記述されているが、ACSで作成されたマクロの言語が不明だと言うことだと思います。

当方自身は、マクロをほとんど使用していないので、具体的なアドバイスが出来かねますが、社内からも同様の問合せあり、
マクロ移行ツールを紹介しておきました。(マニュアルに記載)
以下、抜粋ですが社内事例でも完全に移行するのは無理なようです。
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
マクロ変換ユーティリティーが使用可能です。 セッション管理機能から、次の選択を行います。
    「ツール」->「マクロの変換...」
技術注記:
マクロ変換ユーティリティーは、PC5250 が単なる記録されたキー・ストローク以上のものを含むカスタム・マクロである場合、このマクロを変換できないことがあります。

--------------------------------------------------------------------------------------------------------------------------------------------------------------------------
RE:マクロ開発 T さん [ 8月20日(火) 15時7分 ]
参考になればいいのですが。

https://www.ibm.com/support/knowledgecenter/ja/SSS9FA_13.0.0/com.ibm.hod.doc/doc/macro/macro21.htm
RE:マクロ開発 HJ さん [ 8月30日(金) 10時35分 ]
EXCELのVBA を 使う。
EXCEL VBA ファイル で クグると たくさんヒットします。
PDT がそのまま使えます IKD さん [ 9月3日(火) 8時2分 ]
調べましたところ ACS は独自のマクロを使っているようで
PDT から ACSマクロへの変換ツールが用意されているようですが
バグのため変換できない、という評価が多く聞かれます。

そこで現行のPDTをそのまま使うということで
現在、開発を進めています。

 https://www.officequattro.com/support/2178
MACアドレスの取得 はたもち さん [ 9月2日(月) 15時50分 ]
PCのMACアドレスを取得するフリーのプログラム(RTVPCNAM)をネットで見つけ使用しています。
あるユーザーが久しぶりに動かしたところ、取得できない事象がありました。
PC側の設定が何か変わったのではと思いますが、原因が分からず困っています。
MACアドレスが取れなくなる原因を教えていただければと思い、投稿させていただきました。
RE:MACアドレスの取得 IKD さん [ 9月3日(火) 8時11分 ]
RTVPCNAM というのは http://www.as400-net.com の
「40. 遠隔PC名の取得」( http://www.as400-net.com/tips/c400/40.html )
のことでしょうか?

 1.取得できない場合のエラー・メッセージや状況

 2.IBM i OSバージョン

 3.Windowsのバージョン

 などをお知らせください。
RE:MACアドレスの取得 はたもち さん [ 9月10日(火) 8時36分 ]
IKDさま
返信遅くなり申し訳ありません。

RTVPCNAM というのは…
  ⇒はい、そのサイトのオブジェクトを使用しています

1.取得できない場合のエラー・メッセージや状況
  ⇒DSPJOBLOGには特にエラーは出ていませんでした
   他に見る場所がありますでしょうか?

2.IBM i OSバージョン
  ⇒v7r2です

3.Windowsのバージョン
  ⇒バージョンは Windows10 Pro の1803 です

この内容で良かったでしょうか?
よろしくお願いいたします。
RE:MACアドレスの取得 IKD さん [ 9月10日(火) 19時45分 ]
OS Ver7.2 でテストをしてみますが
具体的にどのような症状だったのでしょうか?
エラー・メッセージや結果の状況について
具体的にお知らせください。
QSYSOPRもご確認ください。
RE:MACアドレスの取得 IKD さん [ 9月11日(水) 18時15分 ]
?このRTVPCNAMというプログラムは MACアドレスの取得までは案内していませんが
 ご自分で修正されたのでしょうか?

?このプログラムのコンパイルには ASNET.COM/CVTMOD4 というサービス・プログラムが
  必要となりますが弊社のユーザー様なのでしょうか?

? AutoWebで「実行環境の設定」で

   DEVNAME *PC

  と設定されていますでしょうか?
PFのデータをCRLF無しで、WindowsPCへFTPする すかぴ さん [ 9月4日(水) 10時0分 ]
お世話になります。
タイトルの通りですが、RPG等で出力したPFのファイルを、改行コード(CRLF)を除去した形式で、
WindowsPCにFTPしたいのですが、実現する方法はございますか?
RE:PFのデータをCRLF無しで、WindowsPCへFTPする HJ さん [ 9月4日(水) 10時47分 ]
1. FTPの機能 1.コード変換してテキストにする。2.無変換
   よって無変換を採用。
2. コード変換はASで行う。
   CPYTOIMPF を利用するが 癖がある。
3. RPGで 癖を吸収する。

できるけど めんどい。
RE:PFのデータをCRLF無しで、WindowsPCへFTPする すかぴ さん [ 9月4日(水) 17時3分 ]
ヒントありがとうございます。

1. PFを、FTPでIFSにBINARYで送信。
2.CPY コマンドで、FROMCCSIDとTOCCSIDを指定し、DTAFMT(*TEXT) で変換
3.PCへファイルをFTP送信

で、望んでいたものが出来ました。
サイン・オン時のエラーについて 初心者 さん [ 9月11日(水) 17時20分 ]
お世話になります。
i5の知識が浅いのですが、新たにv7r3を新規導入し、初期設定を行っています。
教えていただきたいのは、クライアントPCにPCOMM(V14.0)をインストールし、
サインオンしようとすると、「CPF1110:ワークステーションが認可されていない」
というメッセージで、サインオンできません。
もしかすると常識的な事かもわかりませんが、どなたか教えていただけますか?
どうぞよろしくお願いいたします。
ちなみに、LANコンソールからも、QSECOFRではサインオンできますが、他のプロファイル
だと同様のメッセージが出力されます。
RE:サイン・オン時のエラーについて IKD さん [ 9月11日(水) 17時40分 ]
WRKSYSVAL QLMTSECOFR (機密保護担当者の装置のアクセスの制約) が 1 になっていると
ご指摘の症状になります。
これを 0 に変更してください。

IBM特約店のSEによる導入であれば 0 にセットしているはずですが。
RE:サイン・オン時のエラーについて 初心者 さん [ 9月12日(木) 10時4分 ]
IKD様
早速のご回答ありがとうございました。
本日、ご指示いただいた設定で、問題なく接続できました。
本当にありがとうございました。
表示パネルの内容について 初心者 さん [ 9月12日(木) 12時9分 ]
現在、i5(V7R3)の導入作業を行っています。
お聞きしたいのは、i5本体にある表示パネルなのですが、「01 A N」という表示がされています。
(まだ電源投入してコンソール接続しただけで、一度もPWRDWNSYSはしていません)
以前、別のi5では「01 B N」という表示だったと記憶しているのですが「01 A N」でも問題ないのでしょうか?
調べたところ、A領域とB領域に分かれていて、PTFが永久適用か一時適用か、という説明がされていたのですが、
よく意味が分かりません。「01 B N」の方が良いのであれば、それを変更するにはどうすれば良いのでしょうか?
どうぞよろしくお願い致します。
RE:表示パネルの内容について HaHi さん [ 9月13日(金) 8時43分 ]
01 B N であるべきです。
機種がわからないのですが、導入作業なのでS914かS924でしょうか。
→キーで02に変更し→Aをハイライトし↑でBへ変更し確定、何度か⇒を押し01で確認でOKです。

もしくは
PWRDWNSYS OPTION(*INNME) RESTART(*YES) IPLSRC(B) 
を行う方が簡単だと思います。
RE:表示パネルの内容について 初心者 さん [ 9月13日(金) 11時27分 ]
HaHi様
PWRDWNSYSのリスタートのIPLSRC(B)で起動、動作できました。
詳しいことは理解できていないのですが、IBMに聞いても「01 B N」で、という回答でした。
ありがとうございました。
RE:表示パネルの内容について IKD さん [ 9月13日(金) 14時33分 ]
01 A N は手動IPLという意味です。
つまり操作員がIPLに付ききっりでIPLの操作を行うという意味です。

しかし通常の業務では毎朝、誰かが付ききっりとはできませんから
自動で不在席IPLを行うのですが
それが 01 B N  です。

OSの導入などは 01 A N で行いますが完了すると最後は
01 B N にセットしておくのが通例です。
01 A N のままになっていたというのは恐らく特約的SE のミスです。
RE:表示パネルの内容について 初心者 さん [ 9月13日(金) 17時51分 ]
IKD様
ご説明ありがとうございます。
先日、サインオンに関する質問をした者です。色々とやり忘れ?があるようで、
また何か出てくるようだと困るのですが、このようなサイトがあると助かります。
今後も有効に活用できれば嬉しいです。
RE:表示パネルの内容について HaHi さん [ 9月13日(金) 20時51分 ]
A=A域で永久適用されたPTFのみの領域
B=B域で永久適用及び一時適用されたPTFの領域
D=DVD,TAPE,USBからの起動
です。
PTFを適用後のIPLで起動しない等の事象発生時はA域から起動させます。
マイクロコード(LIC)PTFで不具合があった場合、A域起動で救われる可能性があります。

N=自動(ノーマル)
M=手動(マニュアル)
Nは文字通り自動的にOSが起動します。
Mはマイクロコードまで起動しこの時点ではコンソールのみ接続できます。
STRUPを起動したくない場合や制限状態で起動したい場合以外はほとんどCEさんが使う機能です。

POWER7位から
P=永久(パーマネント)
T=一時(テンポラリー)
が最終項目に増えましたがこちらはファームウェアをどこから起動するかの選択です。

02で上記選択を実施し01で確認し起動します。

IKDさんがおっしゃる通り
01 B N にセットしておくのが通例です。ファームウエアはどちらでも良いと思います。
RE:表示パネルの内容について 初心者 さん [ 9月17日(火) 14時44分 ]
HaHi様
補足ありがとうございます。
このへんの事は、全く意識しないで利用しておりました。
少しずつでもスキルアップできればと思います。
ありがとうございました。
AS400 から PCへの GETコマンドが固まる しん さん [ 10月8日(火) 14時30分 ]
2019年8月ごろで動いていた AS400からPCへのGETコマンドが固まり困っております

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\hamano.SANNDOM>cd \

C:\>ftp
ftp> open 192.168.1.150
192.168.1.150 に接続しました。
220-QTCP AT WWW.XXXXXX.CO.JP.
220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.
ユーザー (192.168.1.150:(none)): qsecofr
331 ENTER PASSWORD.
パスワード:
230 QSECOFR LOGGED ON.
ftp> quote site namefmt 1
250  NOW USING NAMING FORMAT "1".
ftp> quote type b 1
200 REPRESENTATION TYPE IS SHIFT JIS KANJI.
ftp> get /QSYS.LIB/DBFLIB.LIB/AAAAA.FILE AAAAA.MBR C:\ZZZZ.TXT
200 PORT SUBCOMMAND REQUEST SUCCESSFUL.

ここで止まってしまいます エラーメッセージは出ません

2019年8月末ごろのWINDOWS UPDATE 以後動かなくなったように思われます

クライアントOS windows7 32bit 及び windows10 64bbit
何故か windowsXP では動きます

AS400 モデル8202-E4D  V7R1M0


windows ファイアーウォール と ウイルスチェックのソフトを止め実行しましたが
同じ結果でした

PCOMM14付属の FTP クライアントではGET できました。

なにか 情報をお持ちでしたら宜しくお願い致します。
 
AS400 から PCへの GETコマンドが固まる しん さん [ 10月8日(火) 14時30分 ]
2019年8月ごろで動いていた AS400からPCへのGETコマンドが固まり困っております

Microsoft Windows [Version 6.1.7601]
Copyright (c) 2009 Microsoft Corporation.  All rights reserved.

C:\Users\hamano.SANNDOM>cd \

C:\>ftp
ftp> open 192.168.1.150
192.168.1.150 に接続しました。
220-QTCP AT WWW.XXXXXX.CO.JP.
220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.
ユーザー (192.168.1.150:(none)): qsecofr
331 ENTER PASSWORD.
パスワード:
230 QSECOFR LOGGED ON.
ftp> quote site namefmt 1
250  NOW USING NAMING FORMAT "1".
ftp> quote type b 1
200 REPRESENTATION TYPE IS SHIFT JIS KANJI.
ftp> get /QSYS.LIB/DBFLIB.LIB/AAAAA.FILE AAAAA.MBR C:\ZZZZ.TXT
200 PORT SUBCOMMAND REQUEST SUCCESSFUL.

ここで止まってしまいます エラーメッセージは出ません

2019年8月末ごろのWINDOWS UPDATE 以後動かなくなったように思われます

クライアントOS windows7 32bit 及び windows10 64bbit
何故か windowsXP では動きます

AS400 モデル8202-E4D  V7R1M0


windows ファイアーウォール と ウイルスチェックのソフトを止め実行しましたが
同じ結果でした

PCOMM14付属の FTP クライアントではGET できました。

なにか 情報をお持ちでしたら宜しくお願い致します。
 
もしかしたら構文エラー HJ さん [ 10月9日(水) 13時30分 ]
get /QSYS.LIB/DBFLIB.LIB/AAAAA.FILE AAAAA.MBR C:\ZZZZ.TXT

get /QSYS.LIB/DBFLIB.LIB/AAAAA.FILE/AAAAA.MBR C:\ZZZZ.TXT

RE:もしかしたら構文エラー しん さん [ 10月9日(水) 16時49分 ]
構文のご指摘ありがとうございます

投稿の時に間違って / を消してしまいました 申し訳ございません

ネットワークの問題 しん さん [ 10月9日(水) 16時55分 ]
本日 ハブの別のポートでは 動く事が判明いたしました

セキュリーティー ハブが 遮断している
または ハブが故障している のではないかと思われます。

PCOMMは繋がっているのに getコマンドだけ動かないのは不思議ですが
パソコンの問題では なさそうです

ありがとうございました。


RE:ネットワークの問題 HJ さん [ 10月9日(水) 17時31分 ]
そうゆう壊れ方もある。
ACSでShift + Esc キーが効かない SNH さん [ 10月9日(水) 11時2分 ]
Windows10導入に伴い、ACSを使用していますがShift+Escキーが効きません。
キーボート設定はシステム要求となっています。
効かせる方法は無いでしょうか? よろしくお願いします。

RE:ACSでShift + Esc キーが効かない T さん [ 10月9日(水) 13時9分 ]
ACSのバージョンが古いのではないでしょうか?
Version: 1.1.8.1 ではシステム要求になります。
RE:ACSでShift + Esc キーが効かない SNH さん [ 10月9日(水) 13時15分 ]
返信ありがとうございます。
ACSのバージョンは最新の1.1.8.2です。
RE:ACSでShift + Esc キーが効かない SNH さん [ 10月9日(水) 13時57分 ]
自己解決しました。
Intel Management and SecurityのホットキーがShift+Escの設定となっていた為でした。
Cent OS7にACSをインストール SU さん [ 10月16日(水) 9時6分 ]
いつも大変お世話になっております。

今回、LinuxにACSをインストールしてODBCでASのデータベースを
他のソフトと接続することが目的です。

LinuxはCentOS7でよいとのことなのでセットアップはしました。
ACSもダウンロードしてきました。

先ほど、ACSをインストールしてみましたが、
『アーカイブの読み込み中にエラーが発生しました。』でインストールできませんでした。

ACSはCentOS7でもインストール可能なのでしょうか。

伝わりにくくて申し訳ございませんが、リナックスをサーバーにして社内でWEB上で在庫情報を見れるようにするソフトが
リナックスで動くソフトとのこと。
その為、ODBCも必要とのこと。
リナックスはこちらで用意してくれと言われまして不要なPCでインストールしてみましたが、
ベース環境もサーバー(GUI使用)を選びましたがこれでよいのかもわからず困っています。

情報をいただけないでしょうか。
宜しくお願いします。
問題の切り分け HJ さん [ 10月16日(水) 10時53分 ]
アーカイブの読み込み中にエラー
ダウンロードに失敗している。かも知れない。

不要なPC
HDDが壊れてるかも。テストするなら、新品を使うべき。
RE:問題の切り分け SU さん [ 10月16日(水) 11時42分 ]
HDDに故障があるようでした
試してからでないと新品は購入できないので、別の壊れていないPCで試してみます。
RE:問題の切り分け SU さん [ 10月17日(木) 8時21分 ]
何とかCentOS7にACSまでインストールでき起動までは確認できました。
ここからですが、ODBC接続はwindowsのようにコンピュータに管理など設定できないのか
どこにあるのかが疑問です。

23日に業者がくるのでそれまでには設定を完了しておかないとテストができません。

申し訳ございませんが宜しくお願いします。
同一テーブルの参照 AKIRA さん [ 11月7日(木) 0時15分 ]
DB2のSQLについてです。
テーブルは1つだけです、自己結合?です。

店舗ごとの商品テーブル(SHOTBLという名前)で、列は3つです。
1. 店舗コード 2.商品コード 3.仕入先コード

〔やりたいこと〕
店舗 商品 仕入先
001 aaa ttt
002 aaa sss
この2件のレコードがあるとします。

001の店舗の仕入先に、002の店舗の仕入先をセットするには、どのようなSQL文が必要ですか?
商品で結合します。

上手くいかない例は、
UPDATE SHOTBL T01 SET T01.仕入先 = T02.仕入先
WHERE EXISTS(SELECT T02.仕入先 FROM SHOTBL T02 WHERE T02.商品 = T01.商品)
などです。
思い出しながら書きましたので、細かい部分で違ってたかもしれません。
とにかく、INNER JOIN もダメだし、、
DB2で、system i5 のコマンドラインからSTRSQLで起動するエディタでは無理なのでしょうか
RE:同一テーブルの参照 T さん [ 11月7日(木) 16時15分 ]
>001の店舗の仕入先に、002の店舗の仕入先をセットする
の条件が入っていないので上手くいかないのではないでしょうか?

条件を指定すると上手くいくと思います。
UPDATE SHOTBL T01                                
SET T01.仕入先 = (SELECT T02.仕入先 FROM SHOTBL T02
WHERE T02.店舗 = 002 AND T01.商品 = T02.商品)
■RPGカテゴリの「142.ILE入門 (2)」について five miles out さん [ 11月20日(水) 15時42分 ]
■RPGカテゴリの「142.ILE入門 (2)」について

ILEの「モジュール/サービスプログラム」のバインド機能を初めて使用しようとしています。
表題内容の再現を実際に行ってみるのが先ずは最良と思い、早速試みてみました。
なお、任意のライブラリや、必要となる「HINSHU」PFの準備は行っています。

? プロシージャー : RTV_HSNAME のRPGソースの作成
? サービス・プログラムからモジュールを作成する
 については、問題無く完了しました。

? EXPORT ファイルを記述する
 ソースメンバーは「SMP002」と命名し、属性は「BND」として作成しました。

? サービス・プログラムを作成する
 問題はこの?で、上手く行きません。
 CRTSRVPGMを実施しますと
  ライブラリ名/QSRVSRC.SMP002  行 4: ***ERROR 構文が正しくない。
  ライブラリ名/QSRVSRC.SMP002  行 4: ***ERROR 構文が正しくない。
  ライブラリ名/QSRVSRC.SMP002  行 4: ***ERROR 構文が正しくない。
  ライブラリ名/QSRVSRC.SMP002  行 4: ***ERROR エクスポート・ブロックが完了して
     いない? ENDPGMEXP の前にファイルの終わりが見つかった。              
  4 個のエラーと 0 個の警告により,バインダー言語コンパイルが正常に実行さ 
     れなかった。
 となってしまいます。
 ?が上手く出来ているので、?記述内容に問題があるようには思えません。
 また念の為に?の
  0002.00              EXPORT     SYMBOL("RTV_HSNAME")
 については「"」ではなく「'」での囲みも試しました。

何方かお詳しい方、お手数ですがご教授宜しくお願い致します。
RE:■RPGカテゴリの「142.ILE入門 (2)」について AS400 初心者 さん [ 11月25日(月) 9時28分 ]
サービスプログラムのコンパイルで失敗しているということですので
MODULE、SRCFILE、AUTの指定に不備がある可能性はないでしょうか?

CRTSRVPGM SRVPGM(SRVOBLIB/サービスプログラム名)
MODULE(SRVOBLIB/プロシージャ名)
SRCFILE(SRVSOLIB/QSRVSRC)
AUT(*ALL)

※SRVOBLIB → サービスプログラムのオブジェクトライブラリ
※SRVSOLIB → サービスプログラムのソースライブラリ
※QSRVSRC  → EXPORTファイルがある場所。
         EXPORTファイルはサービスプログラムと同名にしておく



弊社では下記のような流れでサービスプログラムの作成を行っています。
参考になれば幸いです。

1.プロシージャを作成(処理部、ヘッダー部)
2.プロシージャをモジュール化する
3.EXPORTファイルを作成する
4.サービスプログラムを作成する
5.サービスプログラムの識別番号をEXPORTファイルに記述する
6.サービスプログラムを再作成する
RE:■RPGカテゴリの「142.ILE入門 (2)」について five miles out さん [ 11月25日(月) 15時34分 ]
AS400 初心者 さま

ご多忙のところ、お時間を割いてのご助言ありがとうございます。
ご指摘につきましては、問題ありませんでした。
但し「CRTSRVPGM」の際に、例文では記述にありませんでしたが『EXPORT(*ALL)』を
指定する事で解決致しました。

また、貴社手順のご連携につきましても、重ねましてありがとうございます。
是非とも参考にさせて頂きます。
AS400とACCESS2019の接続について SU さん [ 12月5日(木) 17時44分 ]
ACCESS2019を購入してAS400のDB2を接続してみましたが、リンクテーブルまでは成功しました。
リンクテーブルを使用したクエリーを2つ作成し、その2つを組み合わせたクエリーを
作成したのですが実行してみたところ、下記のようなエラーが出ました。

 システムで予約されているエラー(-7711)です。このエラーに対するメッセージはありません。

ネットで調べてみましたが、該当するような感じではなく、解決策がわからず困っています。
もう一つ気になったのはリンクテーブルを開いてデータは変更できるのか思いましたが
こちらはキーを押しても変更されない状態でした。

この2つはAS400が原因なのでしょうか。
切り分けがわからずなので申し訳ございませんが同じようなことで解決できた方がいらっしゃれば
アドバイスをお願いします。
同僚がAS400のEthernetケーブルを誤って抜いてしまった。 AS400一途 さん [ 12月16日(月) 13時40分 ]
同僚がAS400のEthernetケーブルを誤って抜いてしまった。EthernetのStatusがRCYPNDになっていた。

Vary off → Vary on でStatusはActiveになったが、Ethernetは使用不可のまま、
いろいろと調べてみたが、Ethernetは使用可能にするのには再起動しかない。
再起動以外にEthernetは使用可能にする方法はありますか?
RE:同僚がAS400のEthernetケーブルを誤って抜いてしまった。 HJ さん [ 12月16日(月) 17時8分 ]
1. WRKTCPSTS で IP を OFF
2. WRKCFGSTS *CTL で 回線 OFF
3. WRKCFGSTS *CTL で 回線 ON
4. WRKTCPSTS で IP を ON

間違えて 自分をOFF にしないこと。再起動を推奨。

テストできないが、たぶん これでいいはず。
RE:同僚がAS400のEthernetケーブルを誤って抜いてしまった。 AS400一途 さん [ 3月30日(月) 15時43分 ]
 HJ さん 
ご教授ありがとうございます。
WRKCFGSTSでoffするIPは何のIPでしょうか?
ご説明よろしくお願いします。
ACSホットスポット AS400_KSM さん [ 1月14日(火) 11時59分 ]
皆様は、ACS→ホットスポット→「マクロの実行」ができますでしょうか?
所定の場所にマクロを保存して、同名の名前を画面上に作成、3-Dボタンで表示
に?を付けてもボタン表示になりません。クライアントアクセスの時は問題なかったのに。。
UDATE Yの指定について AS400初心者 さん [ 1月15日(水) 13時58分 ]
いつもお世話になっております。
弊社の昔に作られたプログラム(RPG3)で内部印刷定義に「UDATE Y 」という指定がありまして
これが動作すると「31」という平成31年を意味する内容が出力されております。

UDATEはユーザー日付を意味するようなのですが、
この設定を変更する方法があれば教えて頂けないでしょうか。
プログラムは変更せずにUDATEの設定を変更して「02]が印字されるように出来ればと思っております。
宜しくお願い致します。
RE:UDATE Yの指定について IKD さん [ 1月16日(木) 16時43分 ]
システム値 QDATEは 6桁ですので「31」と2桁で表示されることはありません。

QDATE は変更可能ですが変更するとすべてのプログラムに
影響してしまいますのであまり知識のないままに
変更することは大変危険です。

DSPSYSVAL QYEAR で 31 のように表示されているようであれば
そのシステムは和暦で管理しているようです。
一般には西暦管理ですので QYEAR は 20と表示されるはずです。
IBM iを和暦で管理することはお勧めできませんが
何か理由があっての話だと思います。
RE:UDATE Yの指定について AS400 初心者 さん [ 1月27日(月) 8時39分 ]
>IKD様
返信が遅れて申し訳ありません。
QDATEの変更は危険ということですので、このまま運用を続けたいと思います。
ありがとうございました。
AS400でFTP GTEで文字欠落 AS400こまったさん さん [ 1月21日(火) 21時56分 ]
AS400のCLプログラムでWINDOWS10のPCからFTPでCSVファイルを取得しようとしていますがカタカナなどが消えて取得されます。
カタカナや漢字を欠落させずFTPで取得する方法有るでしょうか

CLのFTPコマンドは、下記の通りです。
ログインID パスワード
CD /
TYPE C 932
NAMEFMT 1
GET CSVFILE.CSV /FTPDATA/FTPAS.CSV (REPLACE
QUIT

CSVファイルには"ABCDE"とか"ABCテスト"などと入っています。
WRKLNKで/FTPDATA/FTPASを見ると"ABCテスト"が"ABC"となっています。

この様な問題を解決された方すみませんがご教授願います。
RE:AS400でFTP GTEで文字欠落 IKD さん [ 1月21日(火) 22時41分 ]
WRKLNK でそのファイルのCCSIDを見ると819になっていませんか?
FTPでそのままアップロードしただけではCCSIDは 819になってしまいます。
これはIBM iのFTPの仕様です。(CHGFTPA で819と設定されているので)

これをWRKLNKの「13= 属性の変更」で

 属性  . . . . . . . . . . . . . > *CCSID      
 新しい値  . . . . . . . . . . .   943         

としてCCSIDを変更すると日本語が正しく表示されます。
( 参考サイト: 22.CCSID 819 は日本語ではない : http://www.as400-net.com/ifs/2068/ )

 
RE:AS400でFTP GTEで文字欠落 AS400こまったさん さん [ 1月23日(木) 22時22分 ]
IKDさんご教授ありがとうございます。
WRKLNKでCCSIDを943に変更したところ"ABCテスト"と表示されること確認出来ました。

"ABCテスト"と確認できたので
CPYFRMIMPF FROMSTMF('/FTPDTA/FTPAS.CSV') TOFILE(QS36F/M01184P) MBROPT(*REPLACE) RCDDLM(*CRLF) FROMRCD(1) ERRRCDOPT(*REPLACE) RPLNULLVAL(*FLDDFT)
とコピーコマンドを実行したところ
6464 レコードがメンバー M01184P にコピーされました 
エラーのために,コピー・コマンドが終了した。
とエラーが出ました。
WRKLNKで件数を確認したところ受信データが6469件ありました。

今回の最終目標としては、
CLプログラム内で自動でPCからデータ取得しAS400のファイルにコピーしたいのです。
当方でカタカナ等を含まないデータは、下記のロジックで問題なく出来ました。
FTP ? ? ? ?RMTSYS(&IPA) ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
CPYFRMIMPF FROMSTMF('/FTPDTA/FTPAS.CSV') + ? ? ? ? ? ? 
? ? ? ? ? ? ?TOFILE(&LIBN/&ASFL) MBROPT(*REPLACE) + ? ? ? 
? ? ? ? ? ? ?FROMCCSID(943) RCDDLM(*CRLF) FROMRCD(1) + 
? ? ? ? ? ? ?ERRRCDOPT(*REPLACE) RPLNULLVAL(*FLDDFT) ? ? ?

FTPコマンドは、下記の様になります。
ログインID ?パスワード
CD /
TYPE C 943
NAMEFMT 1
GET CSVFILE.CSV /FTPDATA/FTPAS.CSV (REPLACE
QUIT ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?

GET時にCCSIDを943に変更してみてもコピーコマンドでエラーが出ます。
今日1日色々トライしましたが全てダメでした。

ネットで色々検索しましたがPCからAS400に送るパターンは、あるのですが
AS400からPCへ取りに行くパターンが見つかりません。
私が行おうとしていること無理なのでしょうか?
RE:AS400でFTP GTEで文字欠落 IKD さん [ 1月24日(金) 8時55分 ]
エラーの出た CPYFRMIMPFの実行コマンド行にカーソルを合わせて
F10キーを押すとロー・レベル・メッセージが表示されますので
このメッセージを調べてください。
原因が特定できないと解決はできません。
また「エラー・レコード・ファイル」を指定すれば
どのレコードがエラーになっているのかがわかります。
原データにCCSID 943 として判別できない文字があれば
エラーになる可能性があります。

参考サイト: 24.CPYFRMSTF と CPYFRMIMPF はどうちがう?
   ( http://www.as400-net.com/ifs/2074/ )
RE:AS400でFTP GTEで文字欠落 AS400こまったさん さん [ 1月26日(日) 2時35分 ]
ご指摘の様にロー・レベル・メッセージ確認しました。

エラー内容は、
「アクセス・パスでキーが重複しています。」

「重複するキーの値が指定された。」
「メンバー M01184P のレコード・キーが重複している。」
の2種類表示されていました。

コピーされたデータを見たところ半角カタカナが入っているデータが全て原因の様です。
P-BOXケショウバコ
P-BOXケシヨウバコ
SV6011ホカセンジョ
SV6011Zホカ センジョウ
キーが重複の原因は、上記の
P-BOXケショウバコ<=「ョ」小文字
P-BOXケシヨウバコ<=「ヨ」大文字
がP-BOXでコピーされるため次レコードとキー重複となる様です。
SV6011ホカセンジョ・SV6011Zホカ センジョウも同様にカタカナが欠落していました。

今回 FTPでGETしようとしているデータは、
QS36F/M01184PをP-COM転送(BIFF8)でPCにM01184P.XLSで送り
その後M01184P.XLSの数字フィールドに「1」を入れてM01184P.CSVと保管したものを即FTPでGETしようとしています。
当然QS36F/M01184PのキーはUNIQUEになっています。

CCSID 943 として判別できない文字があるのではないかと言う事なので
WRKLNKでデータ確認しましたが文字化けしている様な物は、見つかりませんでした。

念のためPCのDOSで下記の様にFTP転送し
FTP
OPEN 999.888.777.666
FTPUSER
FTPUSER00
quote type c 943
put c:\ftpdata\M01184P.CSV /FTPDATA/M01184P.CSV
quit

WRKLNKで確認 PCからPUTしたデータは、そのままで半角カタカナ目視出来ました。

これを
CPYFRMIMPF FROMSTMF('/FTPDTA/FTPAS.CSV') TOFILE(QS36F/M01184P) MBROPT(*REPLACE) RCDDLM(*CRLF) FROMRCD(1) ERRRCDOPT(*REPLACE) RPLNULLVAL(*FLDDFT)
すると同じエラーが出ました。
RE:AS400でFTP GTEで文字欠落 IKD さん [ 1月26日(日) 10時2分 ]
ファイル : QS36F/M01184P のCCSIDは5026ですか?

P-BOXケショウバコ の「ケショウバコ」の部分が欠落して
コピーされた結果キーの重複となっているのであれば
「ケショウバコ」の文字列がコピー先のファイルで
認識されない、つまり半角カナ文字が認められない、
ということは 

 ?CCSIDが 5026ではない
  ?CCSID 943 -> 5026 の変換テーブルが存在しない。

のいずれかが予想されます。
?は考えにくいのですが可能性としてあります。
 
 P-BOXケショウバコ<=「ョ」小文字
 P-BOXケシヨウバコ<=「ヨ」大文字

 の意味がよくわからないのですが。
RE:AS400でFTP GTEで文字欠落 AS400こまったさん さん [ 1月27日(月) 21時3分 ]
IKDさん回答ありがとうございます。
P-BOXケショウバコ<=「ョ」小文字
P-BOXケシヨウバコ<=「ヨ」大文字
は大文字と小文字がわかりにくいと思ったので違いの説明で書きました。
惑わせるような感じですみませんでした。

コピー先のファイルは、一番先のダウンロード元ファイルになるので認識出来ないファイルではないと思います。
仮にIKDの言うCCSID 943 -> 5026 の変換テーブルが存在しない場合は、どの様に対応対処すればよいのでしょうか?
ご教授お願いいたします。
RE:AS400でFTP GTEで文字欠落 IKD さん [ 1月26日(日) 10時11分 ]
NEC選定外字が ? になってしまいましたが

 1.CCSIDが 5026ではない
 2.CCSID 943 -> 5026 の変換テーブルが存在しない

 2は考えにくいのですが可能性としてあります。

です。
RE:AS400でFTP GTEで文字欠落 IKD さん [ 1月28日(火) 13時54分 ]
DSPFD QS36F/M01184P で QS36F/M01184P の CCSIDを確認されましたか?

変換テープルが存在しない場合は可能性としてかなり低いので、
変換テーブルが存在しない場合は OSを再導入するより
他の IBM i から変換テーブルをRSTOBJ しないといけませんが
可能性としてはよほどの場合です。
RE:AS400でFTP GTEで文字欠落 AS400こまったさん さん [ 1月28日(火) 22時9分 ]
IKDさん色々お世話になりました。
本日最終目的を達成すことが出来ました。
エラーの原因は、XLSからCSVに変換した際に品名が自動変換されたことによるエラーでした。
今回Excelでは「2020-5」と言う品名がCSVに変換し確認すると2020-5 => 2020/5/1 => May-5と
段階変改されAS400で認識出来ないと言う事でした。
Excelからcsvに変換後csvファイルを開かなければ問題なく出来ました。
本当に色々とありがとうございました。

UDFをCLで固定で送りたい su さん [ 1月31日(金) 15時1分 ]
質問があります。宜しくお願いします。
CLプログラムからRPGを実行したいのですが、その時にUDSを固定にしたいのです。
現状のPGMのソースでUDFは下記の通りに記載されています。
I           UDS                                     
I                                        1   80LC010
I                                        9  120LC020
I                                       13  180LC030
I                                       19  240LC040
I                                       33  330LC060
I                                       40  470LC080
I                                       48  550LC090
I                                       62  690LC110
I                                       70  770LC120
I                                      126 135 LC200
I                                      288 2910LC850
I                                      292 2950LC851
I                                      296 2990LC852

これをCLで値を固定でやりたいのです。
例えば、LC010は123456とCLで決めておきたい。

できればCLのサンプルをいただきたいのですが宜しくお願いします。
RE:UDFをCLで固定で送りたい IKD さん [ 1月31日(金) 20時42分 ]
「固定でやりたい」という意味がさっぱりわかりません。

1. CLPで LDAの値をセットして

2. RPGでは LDAの値は受取るがLDAの値は変更しない

のような意味にも取れますが

固定 ........ とは?

「LC010は123456とCLで決めておきたい。」

---> CLPでこのLDA値をセットする方法が知りたいのか
     それとも他の意味なのか?
     
このLDAは QTEMP/MYLDA のように決めているのですか?
やりたいことの情報が乏しいので質問の意図が
伝わりません。 
抽象的な表現ではなくもう少し言葉を尽くして
具体的に数多く表現されたほうが質問の意図が
伝わります。
  
RE:UDFをCLで固定で送りたい IKD さん [ 2月3日(月) 9時19分 ]
*LDA にCLPで値をセットするのであれば

CHGDTAARA DTAARA(*LDA (1 8)) VALUE('12345678')

のようにします。
手が空いている時間が長い AS400一途 さん [ 2月6日(木) 10時50分 ]
AS400の運用保守を担当しています。AS400監視サーバ(Windows)がAS400がエラーを検知して。AS400監視サーバにログをFTP PUTして、AS400監視サーバからエラーメールが送信される仕組みの環境です。エラーメールが送信されてくるのは一日一件あるかないかぐらいです。AS400を実際に操作する時間も通常はほとんどありません。
手が空いている時間が圧倒的に長いです。こんな時にAS400に関することで何を行えば手が空いている時間を効率的に使用できるのか、皆さんのアドバイスをお願いします。
RE:手が空いている時間が長い IKD さん [ 2月16日(日) 18時18分 ]
IBM iの運用がいかに楽であるかを示すような
よい例ですね。

私が新人のときはオペレーションの合間に
一般的なコンピュータの書籍をオペレータ室で
仕事の合い間に読んでいました。
1年後には情報系の専門学校卒業の後輩が入社すると
聞かされていたので先輩として恥ずかしくないように
知識を得ようとあせって勉強していました。

身体を悪くして通院していたときは病院での
待ち時間をコンピュータ書籍を読んで過ごしました。
新幹線では普段、読みづらい英語の雑誌を意図的に
持ち込んで勉強していました。

今なら AS400 Tips& Technichs (http://www.as400-net.com )で
学習するとかいかがでしょうか?

IBM のプログラミングPDFを読むのもいいかも知れません。
RPGを開発できる人が少なくなっているのですから
逆にRPGの開発ができるならそれは希少価値であり
大いなるチャンスと思って学習に励んでください。
必ず努力した分、後で大きな見返りがあります。

学習すればそれはあなたの貴重な財産になります。
努力はあなたを裏切りません。
頑張ってください。
RE:手が空いている時間が長い AS400一途 さん [ 2月17日(月) 11時58分 ]
IKDさん、コメントありがとうございます。
AS400 Tips& Technichsは既に学習しています。IBMの公式HPでAS400コマンド一覧でも学習しています。
それでも時間が有り余っています。
現在のAS400運用保守は2021年9月までの予定となっています。2021年10月以降は未だ未定です。
以前はAS400の開発も行っていました。またAS400の開発の仕事に戻ることも考えられますが、
その場合は数年間の開発のブランクがどう影響するのかが問題になると思います。
RE:手が空いている時間が長い IKD さん [ 2月23日(日) 9時19分 ]
ご事情がおありのようですね。
確かにしばらく離れているとすぐにはいつもの開発ペースには
戻れないのは事実です。
向学心がおありのようですから、

1.上司に相談して開発の仕事に復帰させてもらう。
  (たとえ現在の保守を続けても)

2.転職も検討する。
   人手不足の現状ですから向学心のある方を求めているところは
   多いはずです。
   ただし昔のようにイチから開発という仕事は少なくなっています。
   開発会社も新規開発ではなくプログラム・メンテが中心です。

-- 同世代の人ではなく年上の経験豊かな方に相談されるほうが
   よいかと思います。
RE:手が空いている時間が長い AS400一途 さん [ 2月25日(火) 16時41分 ]
IKDさん、返信ありがとうございます。
新規開発よりもプログラム・メンテを希望しています。
Indeedで検索して探しています。
英語を使用する環境で仕事してきた経験もありますので、AS400以外では英語を使用する仕事にも興味もあります。

RE:手が空いている時間が長い IKD さん [ 2月25日(火) 18時15分 ]
弊社もIndeedに募集したことがありましたが
利用している企業は少ないようです。

弊社でも募集しています。
https://www.officequattro.com/jpn/outerlink/recruit_rpgpgmr.html

今年の1月よりハローワークでは在籍中であってもマイページを作って公開希望すれば
あなたを希望する会社からのリクエストが会社側から郵送されてきます。
つまり企業からのお誘いというかご招待です。
IBM iの開発者も結構登録しています。

また今年からハローワークに出向かなくても希望する職種の求人情報を
自宅でインターネットで検索することができるようになっています。
意外とハロー・ワークのほうが民間より圧倒的に求人情報は多いはずです。

 ハローワーク・インターネット・サービス

 https://www.hellowork.mhlw.go.jp/
RE:手が空いている時間が長い AS400一途 さん [ 2月26日(水) 9時56分 ]
IKDさん、返信ありがとうございます。
御社の求人、ハローワーク・インターネット・サービスを利用してみたいと思います。
昨日定例会がありました。私は海外の5拠点のAS400運用保守を1人で担当しています。
5拠点の中で最後にAS400の使用終了するのが2021年9月と聞きました。
5拠点のAS400が順次使用終了となっていきますので、これから手が空いている時間が
さらに長くなっていくのは確かです。
折角AS400の仕事をするなら遣り甲斐がある仕事をしたいと思います。

RE:手が空いている時間が長い IKD さん [ 2月26日(水) 11時23分 ]
すごい重要なお仕事をされているのですね。

弊社では一般的な適用業務の開発というよりは
これまでになかったツールの開発や保守が中心となりますので
一般の開発会社のような請負開発ではありません。
調べたり実験したりアイデアを考えて話し合ったりすることが
業務になります。
いわゆる研究開発型かも知れません。
新しいことをするのが好きな方には向いていると思います。
対象はもちろんIBM iですので今までに培われたIBM iの適用業務の
ノウハウがやはり役に立ちます。
新しい機能が動いたときはやはり感動があります。

ご希望のご事情なども十分考慮させて頂きますので
ぜひ弊社もご検討ください。
RE:手が空いている時間が長い AS400一途 さん [ 2月26日(水) 15時0分 ]
IKDさん、返信ありがとうございます。
海外拠点とのやり取りはメールで英文ですが、電話での英語会話がないのが物足りないです。
以前いた女性担当者は英語が堪能でその当時は海外拠点と電話会話があったと聞いています。
その女性担当者が退職後、英会話ができる人がいなくなったため、海外拠点は
日本の運用保守チームに英会話ができる人がもういない、電話会話は無理と認識して
英文メールだけのやりとりになったそうです。

社内のメールの英文はGoogle翻訳が標準になっています。
私は英語は英語で理解する習慣が身に付いています。同じチームメンバーとギャップが生じて
いけないと思いからGoogle翻訳では英語がどのような日本語になるのか、
逆に日本語がどのような英語になるのか知るためのGoogle翻訳を使用しています。

Google翻訳の英語は学校で習った英語に近いと思います。
ビジネス英語とは少し違う感じがします。

御社の業務:調べたり実験したりアイデアを考えて話し合ったりすることが業務は
とても遣り甲斐がある仕事だと思います。
新しい機能が動いたときはやはり感動は格別だと思います。

御社のホームページを拝見しました。御社は大阪府にあるのですね。
私は千葉県在住です。
RE:手が空いている時間が長い IKD さん [ 2月27日(木) 8時34分 ]
弊社での英語との関わりは英文の仕様の読取りです。
深い技術になるとIBM iでも英文しかない場合があり
Microsoftや一般の仕様はほとんどが英文です。
英文の読解力がおありならそれは非常に強みになりますね。

弊社でも以前は海外輸出を検討して東南アジアや
中国に赴き現地で英語で説明したり翻訳担当も
社内に置いたりしたことがありました。
自社サイトも和文と英文の両方を用意したことも
ありました。

この時代ですから英訳ができれば製品の英語化も
可能ですね。ネットでの販売が可能になると思います。
日常英会話がストレスなくできるのは
活躍できる機会を増やしてくれると思います。

小職も昔、仕事で何度か訪米の機会に恵まれ
先進的な米国の事情を見て大いに刺激を受けました。
歴史を見ても要人は必ずと言ってよいほど
海外視察の経験を持っているようです。

千葉県に在住とのことですがハローワーク経由での
ご応募の場合は転居費用はハローワークが出してくれる
制度があります。
独身の場合は住居費は会社で負担できると思います。
半角から全角に SAKI さん [ 2月17日(月) 9時44分 ]
V7.2以上で、英数字カナを全角に変換する関数や命令は有りますでしょうか?
PTFを適用すると既存のアプリケーションが動かなくなる AS400一途 さん [ 2月25日(火) 8時40分 ]
以前いた担当者が同僚に"PTFを適用すると既存のアプリケーションが動かなくなるから、PTF適用はすべきでなない。"と言っていたようです。
私は未だかつてIBMやベンダーからそのような話を聞いたことがありません。PTFを適用して既存のアプリケーションが動かなくなることをあるのでしょうか?
RE:PTFを適用すると既存のアプリケーションが動かなくなる IKD さん [ 2月25日(火) 12時4分 ]
ないでしょう。

PTFによって既存のAPPが動かなくなるとは根拠のない話です。

DSPPGM で適用業務プログラムを見ると「サービス・プログラム」という項目が
ありますがPTFによってこのサービス・プログラムが変わると適用業務の稼働に
影響がありますがひとつの適用業務プログラムに対してサービス・プログラムの
数はたかだか数個しかありません。
IBM がせっかく安定動作しているこれらのサービス・プログラムを
頻繁に入れ替えるでしょうか?

論理的証拠に基づかない根拠のない都市伝説だと思います。
RE:PTFを適用すると既存のアプリケーションが動かなくなる AS400一途 さん [ 2月25日(火) 16時35分 ]
IKDさん、返信ありがとうございます。
論理的証拠に基づかない根拠のない都市伝説として認識することにします。
RE:PTFを適用すると既存のアプリケーションが動かなくなる HaHi  さん [ 2月28日(金) 14時37分 ]
10度ほど経験があります。(10度と言っても約30年の内の10度ですが)

アプリケーションが動かなくなったこともありますし、起動しなくなった事もあります。

アプリケーションが動かなかったものはほぼサードベンダーのパッケージが当PTFに対応していなか
ったためで、サードベンダーのPTFで解決。

また起動しなかった時は、マイクロコードのスリップで解決。

1. サードベンダーのパッケージは事前に調査。
2. PTF適用前にシステム全体バックアップ(時間がなければSAVSYS)の取得
が最良かと思います。

勿論、SWMAは大前提です。
PHPからRPGを実行は可能? TA さん [ 3月19日(木) 13時58分 ]
初めまして。
ご質問ですがPHPからRPGを実行することはかのうでしょうか。
もしできるなら何が必要なのか教えてください。
RE:PHPからRPGを実行は可能? IKD さん [ 3月26日(木) 15時35分 ]
現在、ネット攻撃のターゲットのほぼ100%が
PHPのサーバーを狙って攻撃しています。
IBM iにPHPを導入すると格好の攻撃の的になります。
失礼ですがその程度のご理解では
PHPでWeb化するのは止めておいたほうが
無難です。
RE:PHPからRPGを実行は可能? AS400 初心者 さん [ 4月8日(水) 16時1分 ]
横から失礼いたします。

素朴な疑問なのですが、phpを導入したとしてもAS400をインターネット上に公開しなければ
特に攻撃は受けないように思うのですがいかがでしょうか?

社内のVPN内でしかAS400に接続しないようにしておけば
安全にphpを使用出来るのかと思いまして。
WindowsサーバーのデータをIFS にFTPで転送する方法 nh さん [ 4月10日(金) 14時14分 ]
Windows サーバーのフォルダーを IFS にBATCHで転送したいのですが
何度も試行しましたがうまくいきませんご教授いただければ幸いです。
Windowsサーバー IPアドレス:192.168.116.91
               転送フォルダー:C:\FULLBACKUP\WORK
SYSTEM i IFS   IPアドレス:192.168.100
               /OPT/WORK
CLPプログラム
DLTF       FILE(QTEMP/FTPLOG)                             
MONMSG     MSGID(CPF2105)                                 
CLRPFM     FILE(QTEMP/FTPLOG) MBR(OUTPUT)                 
                                                          
OVRDBF     FILE(INPUT) TOFILE(EIGSRC/QTMPSRC) MBR(INPUT)  
OVRDBF     FILE(OUTPUT) TOFILE(QTEMP/FTPLOG) MBR(OUTPUT)  
FTP        RMTSYS('192.168.116.100')                      

INPUT内容
QSECOFR WSECOFR                                  
lcd /QOPT/Work                                   
bin                                              
get "192.168.116.91\FullBackup\Work" /QOPT/Work  
quit                                             

                                 以 上




 

RE:WindowsサーバーのデータをIFS にFTPで転送する方法 IKD さん [ 4月10日(金) 20時30分 ]
QTEMP/FTPLOG にはどのようなエラーが出ていたのですか?
RE:WindowsサーバーのデータをIFS にFTPで転送する方法 nh さん [ 4月13日(月) 13時33分 ]
先日の内容を御送りしますよろしくお願いします。

Windowsサーバー IPアドレス:192.168.116.91
               転送フォルダー:E:¥FullBack¥Work

SYSTEM i IFS   IPアドレス:192.168.116.100
               /OPT/Kwork

CLPプログラム

DCL        VAR(&SWS) TYPE(*CHAR) LEN(8)                      
                                                             
DLTF       FILE(QTEMP/FTPLOG)                                
MONMSG     MSGID(CPF2105)                                    
CLRPFM     FILE(QTEMP/FTPLOG) MBR(OUTPUT)                    
                                                             
OVRDBF     FILE(INPUT) TOFILE(EIGSRC/QALLSRC) MBR(INPUT)     
OVRDBF     FILE(OUTPUT) TOFILE(QTEMP/FTPLOG) MBR(OUTPUT)     
FTP        RMTSYS('192.168.116.100')                         
CALL       PGM(FTPGETCHK)                                    
                                                             
RTVJOBA    SWS(&SWS)                                         
IF COND(%SST(&SWS 1 1) = '1') THEN(DO)                       
   SNDMSG MSG('転送が正常に完了した。') TOUSR(*REQUESTER)  
                ENDDO                                                  
             ELSE CMD(DO)                                              
                SNDMSG MSG('転送が異常終了した。') TOUSR(*REQUESTER) 
             ENDDO                                                     
             DLTOVR     FILE(INPUT OUTPUT)                             
             CHGJOB     SWS(00000000)                                  
ENDPGM     

INPUT内容
CONSOLE CONSOLEP                                 
cd  /Kwork                                       
bin                                              
get "??192.168.116.91?FullBackup?Work"           
quit                                             

ログ

出力がファイルへ宛先変更された。                                      
指定された上書きファイルから入力を読み取り。                          
リモート・ホスト192.168.116.100へポート21で接続中。               
220-QTCP AT KNIC.                                                       
220 CONNECTION WILL CLOSE IF IDLE MORE THAN 5 MINUTES.                  
ログインID (console)を入力してください。                            
331 ENTER PASSWORD.                                                     
230 CONSOLE LOGGED ON.                                                  
 OS/400 IS THE REMOTE OPERATING SYSTEM. THE TCP/IP VERSION IS "V7R3M0". 
250  NOW USING NAMING FORMAT "0".                                       
257 "QGPL" IS CURRENT LIBRARY.                                          
FTPサブコマンドを入力してください。                                   
> cd  /Kwork                                                            
250-NAMEFMT SET TO 1.                                                   
250 "/Kwork" IS CURRENT DIRECTORY.                                      
FTPサブコマンドを入力してください。                                   
> bin                                                                   
200 REPRESENTATION TYPE IS BINARY IMAGE.                                
200 REPRESENTATION TYPE IS BINARY IMAGE.            
FTPサブコマンドを入力してください。               
> get "??192.168.116.91?FullBackup?Work"            
250  NOW USING NAMING FORMAT "1".                   
257 "/Kwork" IS CURRENT DIRECTORY.                  
省略時のファイル名は##192.168..91#FullBac。     
指定されたオブジェクト名が長すぎる: 168..91#Full  
FTPサブコマンドを入力してください。               
> quit                                              
221 QUIT SUBCOMMAND RECEIVED.                       














                                                            
RE:WindowsサーバーのデータをIFS にFTPで転送する方法 IKD さん [ 4月13日(月) 14時39分 ]
指定されたオブジェクト名が長すぎる: 168..91#Full  

というエラーが出ています。
指定した

get "??192.168.116.91?FullBackup?Work"

の 文字 ??192.168.116.91?FullBackup?Work が正しく認識されていません。

1. ? はコピーしたので文字化けしているのだと思いますが
   実際はどのような文字でしょうか?

2. 192.168.116.91 と相手のPCサーバーのIPアドレスはここでは必要ありません。
   get で指定するのは相手先パス名でこちらのIBM i のIPアドレスも必要ありません。

3. 相手先のパスの区切文字は \(円マーク)ではなく /(スラッシュ)ですので
   ご注意ください。

異常の点に注意してもう一度やり直してみてください。
RE:WindowsサーバーのデータをIFS にFTPで転送する方法 nh さん [ 4月14日(火) 9時40分 ]
get "??192.168.116.91?FullBackup?Work"

の 文字 ??192.168.116.91?FullBackup?Work が正しく認識されていません。

1. ? はコピーしたので文字化けしているのだと思いますが
   実際はどのような文字でしょうか?

2. 192.168.116.91 と相手のPCサーバーのIPアドレスはここでは必要ありません。
   get で指定するのは相手先パス名でこちらのIBM i のIPアドレスも必要ありません。

3. 相手先のパスの区切文字は \(円マーク)ではなく /(スラッシュ)ですので
   ご注意ください。

1.の回答

入力は ”##192.168.116.91#FullBackup#Work”  です

2.について
 WindowsサーバーのIPアドレスをは不要のご指摘ですが IPアドレスを指定しなければ
 Windowsサーバーのフォルダーはどのようにして見つけられるのでしょうか?

AS400未経験者にAS400運用保守レクチャー AS400一途 さん [ 4月22日(水) 10時25分 ]
現在、私が就業している部署でAS400運用保守を担当しているのは私1人です。
もし私に何かアクシデントがあって出勤できない時は代わりに運用保守できる人材がいません。

もしもに備えて、AS400が全く未経験で、Windows運用保守経験者2名をAS400運用保守が出来るよ
に私がレクチャーすることになりました。

私はこれまでAS400が全くの未経験者にAS400運用保守のレクチャーを行なったことがありません。
上記の経験がある方からノウハウ等をご教授いただければ幸いです。
よろしくお願いいたします。
RE:AS400未経験者にAS400運用保守レクチャー IKD さん [ 4月25日(土) 9時34分 ]
昔からIBM iの学習用としてEOL(Easy of Leaning)という学習プログラムがあります。

https://www.i-learning.jp/service/selfstudy/eol.html

テープを聞きながらIBM iにライブラリーを導入して実地で学習していくと
いうものです。
ただしこれはプログラミングの学習が中心で運用がどこまで開設されているか
わかりません。
それ以外の研修コースもあるようです。
RE:AS400未経験者にAS400運用保守レクチャー AS400一途 さん [ 4月28日(火) 8時55分 ]
IKD様

お世話になっております。AS400一途です。
ご教授ありがとうございます。
社内で検討いたします。

引継ぎ、ご指導のほど、よろしくお願いいたします。

AS/400からのFTP転送について woody さん [ 5月11日(月) 13時1分 ]
いつもお世話になっております。
以下の内容について、何か情報を頂けると助かります。

AS/400からのFTPコマンドより、今までWindows7でFTPサーバを起動してデータ転送をしていたのですが、
Windows10の環境でFTPサーバ機能を有効化して起動しても、AS/400上では接続中の状態で止まってしまいます。
但し、同じネットワーク内で別のパソコンからはFTP接続が可能な状態のため、FTPは正常に起動されていると思います。

AS/400のOSバージョンは、「V7R1M0」です。


FTP RMTSYS('192.168.1.200')
※IP=192.168.1.200(仮):Windows10のPCで、FTPサーバが実行中の状態です。
実際に接続を試みると、
「リモート・ホスト 192.168.1.200 へポート 21 で接続中。」で数十分待っても先に進まない状態です。
同じFTPコマンドでWindows7のパソコン(FTP稼働)では、接続したあとにユーザー、パスワードが聞かれて何も問題ありません。

その他、FTPサイトの追加、認証情報などの基本設定は、Windows7と同じように設定しております。
ファイアウォールの設定ではFTPサーバの通信許可、または自分で別途ポート21の接続を許可する規則を追加したり、
ファイアウォールを一時的に全て無効化するなど色々試行錯誤してみたのですが、状況が何も変わりません。

Windows10のセキュリティ問題で、何かAS400からFTP接続出来ないことがあるのか、
今現在、同様な環境で接続可能な人がいましたら、アドバイス、情報を頂けると幸いです。

以上、宜しくお願いいたします。
セオリーに従って 検査 HJ さん [ 5月13日(水) 19時10分 ]
AS PING 127.0.0.1 
PC PING 127.0.0.1
AS PINN 192.168.1.200  多分おちてる
PC PING 192.168.1.XXX
RE:セオリーに従って 検査 woody さん [ 5月19日(火) 13時43分 ]
HJ さん、
返信が遅くなり申し訳ございません。
返信有難う御座いました。

早速、調査した結果です。
AS400 = 192.168.1.2
PC = 192.168.1.200
AS PING 127.0.0.1 → 応答あり、OK
PC PING 127.0.0.1 → 応答あり、OK
AS PING 192.168.1.200 → 応答なし、NG
PC PING 192.168.1.2 → 応答あり、OK

実際にFTP転送しているWindows7のパソコン(192.168.1.201)でAS400 → PCにpingした
場合、応答がありません。
但し、AS400側のFTPコマンド(FTP RMTSYS('192.168.1.201'))では、接続することが可能です。

Windows10でFTPサーバは立てていますが、質問した通り、
AS400側のFTPコマンドで接続することができません。

どのような原因が考えられるのか、また、何か調べる手段はないでしょうか?
以上、宜しくお願いいたします。
接続は一切していません HJ さん [ 5月20日(水) 13時23分 ]
PING を通すのが 先です。
接続中のメッセージは、サーバーが存在しないときに、出ます。
RE:接続は一切していません woody さん [ 5月27日(水) 23時47分 ]
情報有難う御座いました。
返信が遅れて申し訳ありません。

AS400 → PCへのPingが疎通出来なくても、特に問題ないと思っていました。
当然、PC → AS400へのPingの疎通は必須となりますが。
RE:セオリーに従って 検査 YS さん [ 5月19日(火) 16時31分 ]
横から失礼します。

AS → PC の PING がNGなので、PC側のネットワーク機器(ルーター等)が
PINGコマンドのプロトコルICMPの応答を許可していないのではないでしょうか。
同様に、そのネットワーク機器がFTPのポート番号21に対する外部からのアクセスは
Windows7のIPアドレス宛のみを許可して、それ以外(新しいWindows10など)の
IPアドレス宛のFTPアクセスは拒否する設定などになっていないでしょうか。
RE:セオリーに従って 検査 woody さん [ 5月27日(水) 23時51分 ]
情報有難う御座いました。

>Windows7のIPアドレス宛のみを許可して、それ以外(新しいWindows10など)の
>IPアドレス宛のFTPアクセスは拒否する設定などになっていないでしょうか。
ネットワーク管理者に確認したところ、特にそのような制御はしていないとのこと。

IPアドレスは、DHCPの設定なので変更になる場合があります。
そのため、上記の制御は難しいと思います。
ユーザー・プロフィールの特殊権限について IKD さん [ 7月22日(水) 11時25分 ]
エンド・ユーザーに対するユーザー・プロフィールトを作成するときは
皆さまは特殊権限を与えておられますか?
もし一般に特殊権限を *USRCLS のユーザーに与えているとすれば
どのような特殊権限を与えているのでしょうか?

小職は今まで *ALLOBJ は一般的にどのユーザーにも与えていました。
さらに *JOBCTL と *SPLCTL も与えていました。

知りたいのは多くの情報システム室で *SPLCTL を
与えるのが一般的なのかどうかということです。

皆さまのところではいかがでしょうか?
お教え頂けると幸いです。
RE:ユーザー・プロフィールの特殊権限について シャリース さん [ 7月29日(水) 9時41分 ]
お世話になります。
弊社の場合、エンド・ユーザーに対するユーザー・プロフィールへの特殊権限は、一切付与しており
ません。
例えば、アプリケーションから出力指示がされるとユーザー情報と帳票の種類により
アプリケーション側で自動的に出力先(OUTQ)を決定し即時印刷仕組みになっています。
再発行もアプリケーションから指示して行っていますのでユーザーが「スプールファイルの処理」を操作
操作する事がありません。
但し、会計システムに関しては、利用者が限定的である事、アプリケーションがスプールファイルを利用
利用する前提で作られている事から会計用のユーザープロファイルを作成し、特殊権限には*SPLCTLのみ
のみ付与しています。
RE:ユーザー・プロフィールの特殊権限について IKD さん [ 7月29日(水) 11時47分 ]
シャリースさん回答ありがとうございます。

よくわかりました。
意外と特殊権限は与えていないのですね。
最近、調べてわかったのですが *JOBCTL を与えると
*SPLCTLを与えたのと同じようになってしまうことがわかりました。
IBMマニュアルにはこのことは書かれていなかったのですが
注意が必要ですね。

*IOSYSCFGなどの権限のある人にはスプールはすべて
見せてもよいと思いますが *SPLCTLの権限のある人にも
スプールはすべて見せてもよいものでしょうか?
よろしければご意見をお聞かせください。
RDIのアップデートについて RDI新人運用者 さん [ 9月2日(水) 11時41分 ]
いつも、このサイトのお世話になっているものです。
当社の運用では、ソフトウェア関連を先輩運用者がほとんど更新せずに
引継ぎが行われていました。

RDIの現在verは9.5.1.3。
このverを9.6以降に更新するためには、ライセンスから購入する必要があるのでしょうか?
それとも、Fix Centralなどからファイルのダウンロード等の対応で可能な事なので
しょうか?
教えていただけると幸いです。
ascでエクセルデータをサーバへ転送する方法 初心者 さん [ 10月6日(火) 11時48分 ]
windows10の対応でASCを導入したのですが、エクセルデータをサーバ転送したいのですがうまくい
きません。エクセルは転送できないのでしょうか。
RE:ascでエクセルデータをサーバへ転送する方法 IKD さん [ 10月7日(水) 6時23分 ]
AutoWeb データ転送:

https://www.officequattro.com/jpn/software/contents/autoweb/index.html

にありますようにIBM ACSは XLSXはサポートしていません。
AutoWebのデータ転送ならBIFFもXLSXもダウンロードも
アップロードもできます。
データ転送については10月29日の第2回技術ショート・セミナーで
くわしくご説明致します。
お申し込みは https://www.officequattro.com/seminarlist までどうぞ。
RE:ascでエクセルデータをサーバへ転送する方法 AS400 初心者 さん [ 10月9日(金) 16時53分 ]
https://www.e-bellnet.com/category/technology/2006/2006-02.html

こちらの情報が参考になるかもです。
私の環境でACSのデータ転送を使って.xlsxへのダウンロード、アップロード共に成功しました。
RE:ascでエクセルデータをサーバへ転送する方法 シャリース さん [ 10月23日(金) 9時29分 ]
弊社ではACSでも問題なくExcelデータをIBMIへアップロードできますよ。
どのような問題ですか?
FF-ILE-RPGでの画面プログラムについて five_miles_out2 さん [ 10月16日(金) 13時9分 ]
フリーフォーマット(FF)でのILE-RPGにて、DSPFを用いた簡単なマスターメンテナンスプロ
グラムを、初めて作成しました。
ACS(セッションマネージャー)を使い、DSPFはSDAにて作成しました。

先ず、全編FF記述版を『例1』として作成?実行させましたが、DSPFで定義した標識が一切
反応しません。
つまり、プログラムが起動してキー押下待ち状態で「F3:終了」を押しても標識「03」が
オンになりません(値を表示し目視確認しました)。
因みに色々調べてみて見つけた、ほぼ今件に似た事例でもRPG、DSPF共に、概ね同じような
記述内容でした。

次に『例2』として、演算部以外は固定(演算部は『例1』を流用)記述で作成してみると、
今度は想定通りに動きました…「F3:終了」でプログラムは実行を停止します。
勿論、双方共に同じDSPFを用いています。

既出『例1』にて、ファンクションキー等のDSPFで設定の標識に対するオン・オフを制御
可能とする為の具体的な修正手順が、恥ずかしながら皆目分かりません。
お手数ですが、どなたかご教授を宜しくお願い致します。


■DSPF
==========================================================
  A*%%EC
  A                                  DSPSIZ(24 80 *DS3)
  A                                  PRINT
  A                                  CA03(03 '終了')
  A                                  CA05(05 '照会')
  A                                  CA12(12 '前入力')
  A          R FMT01
  A*%%TS SD 20201015 115000 XXXXXXX REL-V7R3M0 5770-WDS
  A*
  A                              1  2'XXX0001P'
  A                              1 27'***マスターメンテ'
  A                                  DSPATR(HI)
  A                                  DSPATR(RI)
  A                              1 72DATE
  A                                  EDTCDE(Y)
  A*
  A                              4 12'処理モード   '
  A                                  DSPATR(RI)
  A        SHORI          1D  B  4 32
  A N31                              DSPATR(CS)
  A                                  CHECK(FE)
  A N31                              DSPATR(UL)
  A  41                              DSPATR(HI)
  A  31                              DSPATR(PR)

         【 以 下 略 】
==========================================================


■例1:全編FF版
==========================================================
**FREE
CTL-OPT  DFTNAME(XXX0001P)  MAIN(MAIN_LOGIC);
CTL-OPT  OPTION(*SRCSTMT:*NODEBUGIO)  EXTBININT(*YES);
//
DCL-PROC SUB_PROC_01;
// << ファイル定義 >>
   DCL-F   XXX0001PFM  WORKSTN  USAGE(*INPUT:*OUTPUT);
   DCL-F   XXXMAST     DISK     USAGE(*INPUT:*OUTPUT:
     *UPDATE:*DELETE) KEYED  RENAME(XXXMAST:XXXMASTR);
//
// << DS 定義 >>
   DCL-DS  DSPF     LIKEREC(FMT01:*ALL);
   DCL-DS  MASTER   LIKEREC(XXXMASTR:*ALL);

         【 以 下 略 】
==========================================================


■例2:演算部以外・固定、演算部・FF版
==========================================================
H DATEDIT(*YMD/)
 *
FXXX0001PFMCF   E     WORKSTN
FXXXMAST   UF A E   K DISK    RENAME(XXXMAST:XXXMASTR)
 *
 /FREE 
     CLEAR     FMT01;

         【 以 下 略 】
==========================================================
RE:FF-ILE-RPGでの画面プログラムについて AS400 初心者 さん [ 10月23日(金) 13時6分 ]
弊社ではDSPFのファンクションキー指定は下記のように記載しています。
RPGでは*INKAなどで制御可能です。

■RPG
 SELECT
 WHEN *INKC;     // F3終了
  *INLR = *ON;
  RETURN;

 WHEN *INKE;     // F5照会処理
  //照会処理

 WHEN *INKG;
  //戻る処理
 ENDSL;

■DSPF
----------------------------------------------------------------------------------------
A
A                                  DSPSIZ(24 80 *DS3)
A                                  PRINT
A                                  CF03
A                                  CF05
A                                  CF07
----------------------------------------------------------------------------------------
RE:FF-ILE-RPGでの画面プログラムについて five_miles_out2 さん [ 10月26日(月) 9時9分 ]
AS400 初心者さま

おはようございます。
ご多忙な中、丁寧に書込み頂きありがとうございます。
参考にさせて頂きます。

以上、宜しくお願い致します。
RPG「227.DSPF の表示レコードを連続して表示するには」について シルバーレイク さん [ 11月13日(金) 20時35分 ]
この記事と同じことがしたくて、ソースの内容もほぼ同じ状態で作成し実行してみたのですが、設定した待ち時間が経過しても何も動作しません(READ命令で止まったまま?)
何か環境的な要因で再現できないといったことがあるのでしょうか
RE:RPG「227.DSPF の表示レコードを連続して表示するには」について IKD さん [ 11月14日(土) 16時47分 ]
症状からしますととINVITE命令が効いていないことになりますから
記事の解説にありますように

 READ (レコード名) ではなく

 READ (ファイル名) にしているのでしょうか?

ご質問のときはまずご自分がどのように何をされたのかを
すべてくわしくお聞かせください。
それでないと判断はできませんので。
RE:RPG「227.DSPF の表示レコードを連続して表示するには」について シルバーレイク さん [ 11月16日(月) 9時45分 ]
言葉足らずで、失礼いたしました。
DSPFやRPGLEソースの内容については、記事の内容において注意点として書いてあることは実施いたしました。
・CRTDSPFはWAITRCDを指定
・DSPF への入出力の部分を EXFMT や WRITE (レコード名) + READ(レコード名) ではなくREAD (部面ファイル名) に変更する。
・READ 命令のエラー・コード 99 は必ず定義
上記については間違いなく記述しております。

逆に、記事の内容に無いものは必要最低限しかコーディングしてません。
もし何か漏れているならば、その点をお教えいただきたいです。
RE:RPG「227.DSPF の表示レコードを連続して表示するには」について mizu さん [ 7月27日(火) 17時28分 ]
もう解決済みでしょうか?余計なことでしたらすいません。
画面ファイル定義のF仕様書に
RPG?
     FANS103FMCF  E                    WORKSTN   
     F                                              KNUM        1 
ILE-RPG
     FANS103FM  CF   E             WORKSTN              
     F                                     MAXDEV(*FILE)      
の記述をしてみてください。
これがないと進まなかった気がします。
AS/400スプールファイルのPDF出力について 富澤邦浩 さん [ 12月17日(木) 10時29分 ]
AS/400 - ACS5250プリンター - Microsoft Printer to PDF の構成で、AS/400スプールフ
ァイルをPDFファイルにして、エビデンスとして提出しようとしています。
テレワーク在宅勤務中につき、紙の印刷はできません。また、在宅勤務用PCに、プリンタを含めた出
力デバイスは接続禁止です。

PDF出力はできましたが、左90度回転した状態で出力されました。AS/400で出力したのと同じ向き
に出力する方法はありますでしょうか。
よろしくお願いいたします。

以下、設定です
ACS(バージョン: 1.1.8.5)
 ページ設定
 Java印刷サービスの使用:はい
 ページの向きの自動決定:はい
 最適化:はい
 フォント名:MSゴシック
 フォント・スタイル:プレーン
  ページ設定
  サイズ:A4(ISO/DIN & JIS)
  ソース:自動選択
  用紙の向き:横

Microsoft Print to PDF
 用紙 サイズ:A4
 印刷の向き:横
  プロパティ
  印刷の向き:横

用紙の向き、印刷の向きの「縦」「横」の変更はしてみましたが、結果は同じでした。
RE:AS/400スプールファイルのPDF出力について まめたろぅ さん [ 12月17日(木) 13時4分 ]
ページの向きの自動決定:はい ⇒ いいえ
RE:AS/400スプールファイルのPDF出力について 富澤邦浩 さん [ 12月17日(木) 13時17分 ]
まめたろうさん、ありがとうございます。

 Java印刷サービスの使用:はい
 ページの向きの自動決定:いいえ
 最適化:はい

この設定で出力しましたが、やはり左回転でした。
RE:AS/400スプールファイルのPDF出力について まめたろぅ さん [ 12月17日(木) 15時17分 ]
当方で回転せずにうまくいった設定をお知らせします。
ACS
・プリンター設定
  ・Microsoft Print to PDF
    ・用紙サイズ:A4
     印刷の向き:縦
    ・プロパティ
     印刷の向き:縦
・ページ設定
  ・Java印刷サービスの使用:はい
  ・ページの向きの自動決定:いいえ
  ・最適化:はい
  ・ページ設定
    サイズ:A4(ISO/DIN&JIS)
    ソース:自動選択
    用紙の向き:縦
RE:AS/400スプールファイルのPDF出力について 富澤邦浩 さん [ 12月17日(木) 15時44分 ]
まめたろうさん、ありがとうございます。
回転せずに出力できました。
QUERYのメンバーへの追加 尾崎 さん [ 12月22日(火) 8時28分 ]
お世話になります
例えばの条件で書かせて頂きます

テーブルAのフィールドが ID,伝票NO,行NO,品名,数量,単価,金額 とします
このテーブルAに 品名のフィールドが無い状態のレコード ID,伝票NO,行NO,数量,単価,金額 を
追加したいのですが、
QUERY 出力定義が QTEMP のファイル テーブルA と一致しないとなって追加できません
何かオプション指定で回避できるでしょうか?

SQL文なら追加できるのは解るのですが、今回はQUERYでできないかなというテストをしています


RE:QUERYのメンバーへの追加 富澤邦浩 さん [ 12月22日(火) 17時30分 ]
失礼します。
QUERY定義のOUTFILE定義「ID,伝票NO,行NO,数量,単価,金額」のレコードを
テーブルA「ID,伝票NO,行NO,品名,数量,単価,金額」に出力するのですね。
これは無理です。
QUERY定義からのOUTFILE定義「ID,伝票NO,行NO,数量,単価,金額」のレコードを一時ファイルQT
EMP/テーブルBに出力して、
CPYF FROMFILE(QTEMP/テーブルB) TOFILE(テーブルA) MBROPT(*ADD) FMTOPT(*MAP* DRO
P)すれば、
「ID,伝票NO,行NO,品名=ブランク,数量,単価,金額」のレコードが追加できます。
RE:QUERYのメンバーへの追加 T さん [ 12月22日(火) 17時36分 ]
フィールドの数と型が一致しないと追加できません。
結果のフィールドの定義で、品名に代わるフィールドを作成して
フィールドの選択および順序付けで同じ順序で作成して、メンバーに追加してはどうでしょうか?

例)
「結果のフィールドの定義」
フィールド:A
式:' '
カラム見出し:(指定なし)
LEN:(指定なし)
DEC:(指定なし)

「フィールドの選択および順序付け」
ID,伝票NO,行NO,A,数量,単価,金額
RE:QUERYのメンバーへの追加 尾崎 さん [ 12月23日(水) 15時31分 ]
富澤様
CPYFの方法、ありがとうございます
今回はQUERYのみで実現したかったので、今後の参考とさせていただきます

T様
結果のフィールドの定義で存在しないフィールドを作成してみましたが
やはり、出力定義が一致しませんとなってダメでした
QUERY では、やはり出来ないようなので諦めます
ありがとうございました
RE:QUERYのメンバーへの追加 T さん [ 12月23日(水) 17時33分 ]
申し訳ございません。
確認せずに投稿しました。
私の方でも試してみましたがダメでした。

品名はDBCSですか?

この方法で上手くいきました。
 ↓

品名が
LEN:22
DEC:'O'
の場合

結果のフィールドの定義
フィールド:A
式:'□□□□□□□□□□'
DBCSのスペース10個だけですと

「フィールドの選択および順序付け」
フィールド:A
LEN:22
DEC:'J'
になります。一致しません。

結果のフィールドの定義
フィールド:A
式:'□□□□□□□□□  '
必要な長さを、DBCSのスペース9個と後ろにSBCSのスペース2個を組み合わせることで

「フィールドの選択および順序付け」
フィールド:A
LEN:22
DEC:'O'
になります。一致します。

テーブルAの品名と同じ長さと型になれば、レコードが追加できると思います。
端末無操作時間が長いとリモートアクセスの回線が切断団される アルピニスト さん [ 12月24日(木) 9時11分 ]
リモートアクセスでパーソナルコミュニケーションズ(V5.9)で端末処理してますが、端末無操作
時間が3分程度で回線が切断されます。(なにかしらKB操作してれば切断されないのですが)

別の画面を見ていると、つい3分以上経過して、気が付くと端末画面が真っ黒です。

何か切断時間を延長する方法はあるでしょうか?
もしくはバッチ等でCTRLキーを3分毎に押してるような(端末操作しているような)方法はあるでし
ょうか?

RE:端末無操作時間が長いとリモートアクセスの回線が切断団される IKD さん [ 12月25日(金) 9時28分 ]
私は自宅からPCOMMで会社のIBM iに毎日インターネット接続していますが
切断されることは滅多にありません。
切断されることも稀にありますが原因の殆どは
回線の問題です。
PCOMMの接続オプションの接続タイムアウトは省略時の6秒。
自動再接続にチェックが入っています。
3分毎に切断されるというのは異常であり回線の問題であると
思います。
接続オプションや回線を調べてみてはいかがでしょう。
インターネット接続などに切断が多い場合は回線が原因です。

ただしご参考までにAutoWebのようなWeb化されたエミュレータを
使う手もあり回線切断が多いというのでAutoWebを
ご契約する例もあります。
RE:端末無操作時間が長いとリモートアクセスの回線が切断団される アルピニスト さん [ 12月25日(金) 10時50分 ]
IKDさん、有難うございます。
現在 自宅から会社のIBM Iに接続してますが、ポケットWIFIの貧弱な通信環境です。
なかなか通信環境を改善するのは難しいので、とりあえず接続オプションを調べてみます。

今のところ予防策として、対話環境で長時間のDB更新PGMは起動しないようにしています。
キープアライブ HJ さん [ 12月25日(金) 13時54分 ]
通信 構成 リンクパラメーター キープアライブ 有効 60秒

QINACTITV 300

後は一般的な対応になります。
RE:キープアライブ アルピニスト さん [ 12月28日(月) 8時53分 ]
HJさん、ありがとうございます。
お返事が遅れてすみません。

一つ質問ですが、
 "通信 構成 リンクパラメータ ?"
はエミュレータの処理でしょうか?

自分のエミュレータのメニューバーでヘルプを押すと、
 パーソナルコミュニケーションズ
 i Series Access for Windows
  ワークステーション プログラム
 バージョン 5.9 (Windows 版)
と表示され、
メニューバーの通信→構成を押しても、リンクパラメータは表示されません。









QBATCHでデータ転送処理 鮎キチ さん [ 1月5日(火) 10時54分 ]
現在クライアントアクセスを使って、システムIのデータをPCに転送しています。
 CLPで、STRPCOの後に、STRPCCMDで転送処理。

これを夜間処理でQBATCHで処理したいと考えてますが、QBATCHで転送処理可能でしょうか?

試しにCLPを作ってみましたが、『STRPCOを使用することはでききない』と異常終了しました。
また転送処理の.DTF コマンドをQBATCHで起動できるのか見当もつきません。
RE:QBATCHでデータ転送処理 T さん [ 1月6日(水) 11時49分 ]
PCオーガナイザー(STRPCCMD)は対話式しか使えずバッチ処理では使えません。
RUNRMTCMDを使ってPC側から転送処理の.DTFを実行してはどうでしょうか?
RE:QBATCHでデータ転送処理 鮎キチ さん [ 1月6日(水) 14時22分 ]
Tさん、アドバイス有難うございます。

RUNRMTCMDというコマンドは知りませんでした。
さっそく試してみます。

値を戻すコマンドのパラメータについて 富澤 さん [ 1月20日(水) 13時49分 ]
スプール・ファイルの属性(サイズ、オーバーフロー行など)を取得するために、

スプール・ファイルの存在を検査するCHKSPLC
https://www.as400-net.com/tools/6222/

値を戻すコマンド
https://www.as400-net.com/cmd/4497/

をヒントに、スプール・ファイルの属性を取得するCLとコマンドを作成しました。
コマンドで、スプール・ファイル、ジョブ、スプール番号を入力して、APIから属性を取得して、コ
マンドのパラメータにセットして返します。
取得と値返しはうまくいきましたが、値を戻すコマンドを呼び出す場合、全ての値を戻すパラメータ
に変数を設定する必要があります。
取得したいパラメータにのみ変数を設定することは可能でしょうか。(RTVOBJDのようなイメージで
す)

プログラムソースを添付します。
<- コマンド RTVSPLF ソース --------------------------------------------------
-->
             CMD        PROMPT('RETRIEVE SPOOLFILE DESCRIPTION') +
                          ALLOW(*IPGM *BPGM) AUT(*ALL)
             PARM       KWD(SPLF) TYPE(*NAME) LEN(10) DFT(*NONE) +
                          SPCVAL((*NONE)) PROMPT('SPOOLED FILE')
             PARM       KWD(JOB) TYPE(@JOB) DFT(*) SNGVAL((*)) +
                          PROMPT('JOB NAME(*-CURRENT JOB)')
             PARM       KWD(SPLNBR) TYPE(*CHAR) LEN(6) DFT(*LAST) +
                          SPCVAL((*ONLY) (*LAST)) +
                          CHOICE('000001-999999,*ONLY,*LAST') +
                          PROMPT('SPOOLED FILE NUMBER')
/* */
             PARM       KWD(RTNJOB) TYPE(*CHAR) LEN(10) RTNVAL(*YES) +
                          PMTCTL(*PMTRQS) PROMPT('RETURN JOB NAME')
             PARM       KWD(RTNUSER) TYPE(*CHAR) LEN(10) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('RETURN USER')
             PARM       KWD(RTNJOBNBR) TYPE(*CHAR) LEN(6) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('RETURN JOB NUMBER')
             PARM       KWD(RTNSPLNBR) TYPE(*CHAR) LEN(6) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('RETURN SPOOL NUMBER')
             PARM       KWD(OUTQ) TYPE(*CHAR) LEN(10) RTNVAL(*YES) +
                          PMTCTL(*PMTRQS) PROMPT('OUTPUT QUEUE')
             PARM       KWD(QLIB) TYPE(*CHAR) LEN(10) RTNVAL(*YES) +
                          PMTCTL(*PMTRQS) PROMPT('OUTPUT QUEUE LIBRARY')
             PARM       KWD(FORMTYPE) TYPE(*CHAR) LEN(10) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) PROMPT('FORM TYPE')
             PARM       KWD(DEVTYPE) TYPE(*CHAR) LEN(10) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('PRINTER DEVICE TYPE')
             PARM       KWD(TOTALPAGE) TYPE(*DEC) LEN(5 0) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('TOTAL PAGES(00000)')
             PARM       KWD(PAGELEN) TYPE(*DEC) LEN(3 0) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('PAGE SIZE(LENGTH)(000)')
             PARM       KWD(PAGEWIDTH) TYPE(*DEC) LEN(3 0) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('PAGE SIZE(WIDTH)(000)')
             PARM       KWD(PAGEMETHOD) TYPE(*CHAR) LEN(10) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) PROMPT('PAGE +
                          SIZE(MEASUREMENT METHOD)')
             PARM       KWD(LPI) TYPE(*DEC) LEN(3 1) RTNVAL(*YES) +
                          PMTCTL(*PMTRQS) PROMPT('LINES PER INCH(00.0)')
             PARM       KWD(CPI) TYPE(*DEC) LEN(3 1) RTNVAL(*YES) +
                          PMTCTL(*PMTRQS) PROMPT('CHARACTERS PER INCH(00.0)
')
             PARM       KWD(OVRFLW) TYPE(*DEC) LEN(3 0) +
                          RTNVAL(*YES) PMTCTL(*PMTRQS) +
                          PROMPT('OVERFLOW LINE NUMBER(000)')
/* */
 @JOB:       QUAL       TYPE(*NAME) LEN(10)
             QUAL       TYPE(*NAME) LEN(10) PROMPT('USER')
             QUAL       TYPE(*CHAR) LEN(6) DFT(' ') RANGE(000000 +
                          999999) SPCVAL((' ')) FULL(*YES) +
                          CHOICE('000000-999999') PROMPT('NUMBER')
<--------------------------------------------------------------------------
---->

<- CL RTVSPLFC ソース ------------------------------------------------------
---->
/* RETRIEVE SPOOLFILE DESCRIPTION */
             PGM        PARM(&SPLF &JOB &SPLNBR &RTNJOB &RTNUSER +
                          &RTNJOBNBR &RTNSPLNBR &OUTQ &QLIB +
                          &FORMTYPE &DEVTYPE &TOTALPAGE &PAGELEN +
                          &PAGEWIDTH &PAGEMETHOD &LPI &CPI &OVRFLW)
/* */
        DCL        VAR(&SPLF) TYPE(*CHAR) LEN(10) /* SPOOLED FILE */
        DCL        VAR(&JOB) TYPE(*CHAR) LEN(26) /* JOB NAME */
        DCL        VAR(&SPLNBR) TYPE(*CHAR) LEN(6) /* SPOOLED FILE NUMBER *
/
/* */
        DCL        VAR(&RTNJOB) TYPE(*CHAR) LEN(10) /* RETURN JOB NAME */
        DCL        VAR(&RTNUSER) TYPE(*CHAR) LEN(10) /* RETURN USER */
        DCL        VAR(&RTNJOBNBR) TYPE(*CHAR) LEN(6) /* RETURN JOB NUMBER 
*/
        DCL        VAR(&RTNSPLNBR) TYPE(*CHAR) LEN(6) /* RETURN SPOOL NUMBE
R */
        DCL        VAR(&OUTQ) TYPE(*CHAR) LEN(10) /* OUTPUT QUEUE */
        DCL        VAR(&QLIB) TYPE(*CHAR) LEN(10) /* OUTPUT QUEUE LIBRARY *
/
        DCL        VAR(&FORMTYPE) TYPE(*CHAR) LEN(10) /* FORM TYPE */
        DCL        VAR(&DEVTYPE) TYPE(*CHAR) LEN(10) /* PRINTER DEVICE TYPE
 */
        DCL        VAR(&TOTALPAGE) TYPE(*DEC) LEN(5 0) /* TOTAL PAGES */
        DCL        VAR(&PAGELEN) TYPE(*DEC) LEN(3 0) /* PAGE SIZE(LENGTH) *
/
        DCL        VAR(&PAGEWIDTH) TYPE(*DEC) LEN(3 0) /* PAGE SIZE(WIDTH) 
*/
        DCL        VAR(&PAGEMETHOD) TYPE(*CHAR) LEN(10) /* PAGE +
                          SIZE(MEASUREMENT METHOD) */
        DCL        VAR(&LPI) TYPE(*DEC) LEN(3 1) /* LINES PER INCH */
        DCL        VAR(&CPI) TYPE(*DEC) LEN(3 1) /* CHARACTERS PER INCH */
        DCL        VAR(&OVRFLW) TYPE(*DEC) LEN(3 0) /* OVERFLOW LINE NUMBER
 */
/* */
        DCL        VAR(&SPLNO) TYPE(*DEC) LEN(4 0) VALUE(0)
        DCL        VAR(&MSG) TYPE(*CHAR) LEN(132)
        DCL        VAR(&MSGID) TYPE(*CHAR) LEN(7)
        DCL        VAR(&MSGF) TYPE(*CHAR) LEN(10) VALUE('QCPFMSG   ')
        DCL        VAR(&MSGFLIB) TYPE(*CHAR) LEN(10) VALUE('QSYS      ')
        DCL        VAR(&MSGDTA) TYPE(*CHAR) LEN(132)
        DCL        VAR(&TYPE) TYPE(*CHAR) LEN(1)
        DCL        VAR(&TOPGMQ) TYPE(*CHAR) LEN(10)
        DCL        VAR(&APIERR) TYPE(*CHAR) LEN(116) VALUE(X'000074')
        DCL        VAR(&NULL4) TYPE(*CHAR) LEN(4) VALUE(X'00000000')
        DCL        VAR(&SPLVAR) TYPE(*CHAR) LEN(5000)
        DCL        VAR(&SPLLEN) TYPE(*CHAR) LEN(4) VALUE(X'00001388')
        DCL        VAR(&SPLNBR2) TYPE(*DEC) LEN(6 0) VALUE(0)
        DCL        VAR(&BIN4) TYPE(*CHAR) LEN(4)
/* */
             MONMSG     MSGID(CPF0000) EXEC(GOTO CMDLBL(ERROR))
/* */
             RTVJOBA    TYPE(&TYPE)
             IF         COND(&TYPE *EQ '0') THEN(CHGVAR VAR(&TOPGMQ) +
                          VALUE('*SYSOPR   '))
              ELSE       CMD(CHGVAR VAR(&TOPGMQ) VALUE('*TOPGMQ   '))
/* */
             SELECT
              WHEN       COND(&SPLNBR *EQ '*ONLY ') THEN(CHGVAR +
                           VAR(&SPLNO) VALUE(0))
              WHEN       COND(&SPLNBR *EQ '*LAST ') THEN(CHGVAR +
                           VAR(&SPLNO) VALUE(-1))
              OTHERWISE  CMD(CHGVAR VAR(&SPLNO) VALUE(%DEC(&SPLNBR 06 0)))
              ENDSELECT
             CHGVAR     VAR(%BIN(&BIN4)) VALUE(&SPLNO)
/* */
             CALL       PGM(QUSRSPLA) PARM(&SPLVAR &SPLLEN +
                          'SPLA0200' &JOB ' ' ' ' &SPLF &BIN4 &APIERR)
             IF         COND(%SST(&APIERR 5 4) *NE &NULL4) THEN(GOTO +
                          CMDLBL(APIERR))
/* */
             CHGVAR     VAR(&RTNJOB)     VALUE(%SST(&SPLVAR 0049 0010))
             CHGVAR     VAR(&RTNUSER)    VALUE(%SST(&SPLVAR 0059 0010))
             CHGVAR     VAR(&RTNJOBNBR)  VALUE(%SST(&SPLVAR 0069 0006))
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0085 0004))
             CHGVAR     VAR(&SPLNBR2)    VALUE(%BIN(&BIN4))
             CHGVAR     VAR(&RTNSPLNBR)  VALUE(%CHAR(&SPLNBR2))
             CHGVAR     VAR(&OUTQ)       VALUE(%SST(&SPLVAR 0191 0010))
             CHGVAR     VAR(&QLIB)       VALUE(%SST(&SPLVAR 0201 0010))
             CHGVAR     VAR(&FORMTYPE)   VALUE(%SST(&SPLVAR 0089 0010))
             CHGVAR     VAR(&DEVTYPE)    VALUE(%SST(&SPLVAR 0317 0010))
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0149 0004))
             CHGVAR     VAR(&TOTALPAGE)  VALUE(%BIN(&BIN4))
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0433 0004))
             CHGVAR     VAR(&PAGELEN)    VALUE(%BIN(&BIN4))
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0437 0004))
             CHGVAR     VAR(&PAGEWIDTH)  VALUE(%BIN(&BIN4))
             CHGVAR     VAR(&PAGEMETHOD) VALUE(%SST(&SPLVAR 3201 0010))
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0181 0004))
             CHGVAR     VAR(&LPI)        VALUE(%BIN(&BIN4) / 10)
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0185 0004))
             CHGVAR     VAR(&CPI)        VALUE(%BIN(&BIN4) /10)
             CHGVAR     VAR(&BIN4)       VALUE(%SST(&SPLVAR 0445 0004))
             CHGVAR     VAR(&OVRFLW)     VALUE(%BIN(&BIN4))
             RETURN
/* */
 APIERR:     CHGVAR     VAR(&MSGID) VALUE(%SST(&APIERR 9 7))
             CHGVAR     VAR(&MSGDTA) VALUE(%SST(&APIERR 17 100))
             GOTO       CMDLBL(SNDMSG)
/* */
 ERROR:      RCVMSG     MSGTYPE(*LAST) RMV(*NO) MSG(&MSG) +
                          MSGDTA(&MSGDTA) MSGID(&MSGID) MSGF(&MSGF) +
                          MSGFLIB(&MSGFLIB)
 SNDMSG:     IF         COND(&MSGID *EQ ' ') THEN(DO)
             SNDPGMMSG  MSGID(CPF9897) MSGF(QCPFMSG) MSGDTA(&MSG) +
                          TOMSGQ(&TOPGMQ) MSGTYPE(*ESCAPE)
               MONMSG     MSGID(CPF2400) EXEC(RETURN)
               ENDDO
              ELSE       CMD(DO)
              SNDPGMMSG  MSGID(&MSGID) MSGF(&MSGFLIB/&MSGF) +
                          MSGDTA(&MSGDTA) TOMSGQ(&TOPGMQ) MSGTYPE(*ESCAPE)
               MONMSG     MSGID(CPF2400) EXEC(RETURN)
               ENDDO
             ENDPGM
<--------------------------------------------------------------------------
---->
RE:値を戻すコマンドのパラメータについて IKD さん [ 1月21日(木) 16時45分 ]
パラメータが不足しているときは呼び出される側で
そのパラメータを使用しようとするときに
パラメータが渡されていないのでMCH3601のエラーになります。

従って MCH3601をMONMSGしてやればこのエラーは迂回することが
できます。
たとえば次のとおりです。

0001.00              PGM        PARM(&PARM1 &PARM2 &PARM3)      
0002.00              DCL        VAR(&PARM1) TYPE(*CHAR) LEN(10) 
0003.00              DCL        VAR(&PARM2) TYPE(*CHAR) LEN(10) 
0004.00              DCL        VAR(&PARM3) TYPE(*CHAR) LEN(10) 
0005.00                                                         
0006.00              CHGVAR     VAR(&PARM1) VALUE('AA        ') 
0007.00              CHGVAR     VAR(&PARM2) VALUE('BB        ') 
0008.00              MONMSG     MCH3601                         
0009.00              ENDPGM                                     

このCLPではPARM2が使われない場合もエラーは迂回されます。
PARM3はこのCLPで使っていないのでエラーにはなりません。

SPOOLライターのユーザー様ですか?
RE:値を戻すコマンドのパラメータについて 富澤 さん [ 1月21日(木) 18時50分 ]
IKDさん、ありがとうございます。
MONMSG追加でテストしてみます。

私はSPOOLライターのユーザーではなく、SPOOLライターみたいなことを、自作ツールでしようとし
ているものです。
RE:値を戻すコマンドのパラメータについて 富澤 さん [ 1月22日(金) 9時26分 ]
IKDさん、MONMSG追加で、うまくいきました。
ありがとうございました。
*AFPDS帳票のPDF出力 富澤邦浩 さん [ 2月8日(月) 8時54分 ]
*AFPDS帳票のレイアウト変更の案件が来ました。
現在テレワーク中で、*AFPDS帳票の出力テストができません。また、*AFPDS帳票はFAX出力用のた
め、会社にもテスト出力用プリンターがありません。
AS/400で使えるのは、*SCS帳票を共有サーバーのPDFに出力するプリンター定義だけです。
エミュレータで*AFPDS帳票出力用プリンター定義を作り、PDF出力することは可能でしょうか。
よろしくお願いいたします。
解決しました 富澤邦浩 さん [ 2月17日(水) 8時50分 ]
続報です。
*AFPDS帳票は「会社のFAX番号に送信して、テストするように」という指示が出ました。
プリンター定義作成は、しないことになりました。
IFSは嫌いですか? IKD さん [ 2月23日(火) 19時41分 ]
デモなどで画像ファイルなどの保管先として
IFSに保管したファイルを参照して表示や印刷のデモをすると
必ずといっていいほどお客さまからは

「保管場所はIFS以外でもいいですか?」という質問が
出ます。

もちろん/QNTC経由で社内の別のWindowsサーバーに保管されている
ファイルも参照できますしインターネット経由で参照することも
できますよ、とお決まりの回答をするのですが
なぜ「IFS以外」という質問がいつも出てくるのか不思議なのです。
IBMユーザーはIFSは扱いにくいのでしょうか?
IBM iのHDDが高価なので使用するのを避けたいのでしょうか?

なぜ毎回のようにこの質問があるのか知りたいのですが
皆さまはいかがでしょうか?
IFSは嫌いなのでしょうか?
RE:IFSは嫌いですか? IKD さん [ 3月17日(水) 8時16分 ]
調べていくうちにわかったのは
IFSが嫌いなのではなくFTPでのアップロードが
苦手な人が多いようですね。

このためマウスのドラッグ&ドロップだけでアップロードできる機能を
製品に追加しました。 ( https://www.facebook.com/office.quattro/ )
昨今ではFacebookやWordpress, Googleなどオープン系では
ほとんどと言ってよいくらいマウス操作だけで画像なども
アップロードしてしますし私自身も毎日使っています。
IBM iの業界ではどこにもマウス操作によるアップロードは
ありませんでした。
今後はマウス操作による開発支援を増やしていくつもりです。
2重ポップアップウィンドウについて 初心者 さん [ 3月8日(月) 17時19分 ]
お世話になります。AS400初心者です。
ポップアップウィンドウについてご質問があります。
既にポップアップウィンドウが付いている画面により詳しい情報を確認できるように、更にポップアップウィンドウを付けようと考えております。
第一画面を親画面、ポップアップウィンドウを子画面、さらに追加するウィンドウを孫画面とします。
ポップアップウィンドウの正しい書き方について詳しくありませんが、弊社のやり方では親画面で子RPG(別ID)をCALLしています。
それに倣い孫画面も子RPGから孫RPG(別ID)をCALLして表示しようと考えております。

子画面、孫画面共にダミーレコードを定義して、「ASSUME」を記載しています。
http://www.as400-net.com/tips/rpg/244.html
こちらのサイトに記載されていますが、FRCDTA、PUTOVR、DSPATR(ND)も入れております。

親画面⇒子画面⇒孫画面までは、親画面の一部を表示されて思った通りの動きをしています。
ただ、孫画面を閉じたときに子画面が表示されますが、親画面一部と子画面の枠線が消えています。

色々試してみましたが、表示させることが出来ませんでした。

ご教授お願いいたします。
RE:2重ポップアップウィンドウについて HJ さん [ 3月12日(金) 18時37分 ]
ロジックが複雑になります。
孫画面終了 子画面終了 親画面再表示 子画面再表示

プロシージャのデバッグ 富澤 邦浩 さん [ 4月12日(月) 8時59分 ]
既存のプロシージャのデバッグで、フィールドの値、読み取りレコードの登録値を知る方法はあるで
しょうか。
既存のプロシージャで、プログラム設定値マスターを読んで、設定値を返す機能があるのですが、「
テスト機で動く機能が、本番機で動かない」と言われました。デバッグを使って、プロシージャ内の
フィールドと動作を調査したいのです。既存プログラムなので、プログラム内にDUMPをコーディン
グしてテストすることはできません。
また、在宅作業中ゆえ、AS400.comのマニュアル以外のマニュアルを読むこともできません。
よろしくお願いいたします。
RE:プロシージャのデバッグ IKD さん [ 4月13日(火) 3時20分 ]
プロシージャーはパネル・グループの亜流で
インターフェースに過ぎないですから
戻り値を調べる機能はありません。
 
プロシージャーを実行しているCLPのRETURNの直前に
DMPCLPGM を入れればそのときの変数値をすべて
知ることはできますが
CLPを変更したくないのであれば
実行環境のジョブの状況(ライブラリー・リストや
*LDAなどの実行環境)を調べるしかありません。
 
ちなみにご自宅でもインターネット経由で
すべてのマニュアルは見ることはできます。
RE:プロシージャのデバッグ 富澤 邦浩 さん [ 4月13日(火) 15時17分 ]
ありがとうございます。
本番機のプログラムなので
1.プログラムを変更できない
2.コンパイル禁止
3.データ変更禁止
のため、デバッガーで調査しようとしたのですが、難しいのですね。
他の手段を考えることにします。
36環境のプロシージャー 迷犬こなん さん [ 6月4日(金) 10時12分 ]
36環境のプロシージャで教えてください。

ABCと言うプロシージャからDEFと言うCLを呼び出し処理後にDEFで設定した
データアリアの情報をABCで取得し使用したいのです。

DEF内では
DCL VAR(&CODE01) TYPE(CHAR) LEN(1)
DCL VAR(&DATE01) TYPE(CHAR) LEN(8)
DCL VAR(&DLIB01) TYPE(CHAR) LEN(10)
DCL VAR(&DLIB02) TYPE(CHAR) LEN(10)

CALL PGM(XXXXX) PARM(&CODE01 &DATE01 &DLIB01 &DLIB02)
仮に順番に「A」「20210603」「DLIB01」「DLIB02」とします

CHGDTAARA DTAARA(*LDA (601 610)) VALUE(&CODE01)
CHGDTAARA DTAARA(*LDA (611 620)) VALUE(&DATE01)
CHGDTAARA DTAARA(*LDA (621 630)) VALUE(&DLIB01)
CHGDTAARA DTAARA(*LDA (631 640)) VALUE(&DLIB02)
変数を基に上記の様にDTAARAに格納します。

ABCプロシジャーではDEFで設定したDTAARAから情報を取得し変数として使用したいのです。
プロシジャーでDTAARAから情報を取得し変数として使用した経験のある方ご指導願います。
置換式 HJ さん [ 6月18日(金) 20時4分 ]
変数のかわりに、置換式を使います。
?L’開始位置,長さ'?
 
QNTCでWindowsサーバーの共有フォルダを見る方法 AS400 初心者 さん [ 6月16日(水) 19時26分 ]
いつもお世話になっております。

AS/400 Tips Techniquesの記事を参考にして
(https://www.as400-net.com/httpsvr/856/)
QNTCを使用した社内のWindowsサーバーの共有フォルダへのASからのアクセスを
行いたいと思っています。


下記の対応を行った結果、ASからQNTCでWindowsサーバーのIPアドレスまでは表示できますが
その先にある共有フォルダまではASから見れないという状態です。
どのようにすれば良いか教えて頂けないでしょうか。
よろしくお願いいたします。


ASのバージョン:7.3


<実施したこと>

 <Windows Server側>
 ・WindowsサーバーでC:直下にフォルダを作成して、Everyone読み取り書き込み権限で
  共有フォルダを作成し、フォルダ内にtxtファイルを作成

 ・ASで使用しているUSRPRFのアカウントを作成(AS側と同じID/PASS)


 <AS側>
 ・「CRTDIR DIR('/QNTC/192.168.1.87') DTAAUT(*RWX) OBJAUT(*ALL)」のコマンドで
  サーバーIPと同じディレクトリを作成

 ・WRKLNK / → QNTC → Windows serverのIP と5の表示で辿っていくと
  下記のように表示され、共有フォルダが参照出来ない


  ディレクトリー : /QNTC/192.168.1.87
  (指定した名前と一致するオブジェクトを見つけることができない。)  
RE:QNTCでWindowsサーバーの共有フォルダを見る方法 IKD さん [ 6月18日(金) 20時0分 ]
手順としては問題ありません。

Windows側でIBM iと同じユーザーとパスワードが
10バイト以内英大文字で作成されているか
またIPアドレスなどご自分の設定値が
正しいかもう一度十分確認してみてください。
共有フォルダ名も英大文字であることが
望ましいです。
弊社で今、確認しても正常に動作しています。
メッセージからするとログインができないか
共有化が正しくないことになっています。
RE:QNTCでWindowsサーバーの共有フォルダを見る方法 AS400 初心者 さん [ 6月22日(火) 13時3分 ]
IKD様 コメントありがとうございます。

Windows側でIBMiと同じユーザーとパスワードでアカウント作成済み(10バイト以内半角英大文字)
CRTDIRをIPアドレスで作成
共有フォルダ名も英大文字なのですが、やはり接続できませんでした。

また弊社はASを再起動すると、CRTDIRで作成したはずのIPアドレスも
WRKLNK / → / → QNTC で選択した際に出てこないという状態でした。

もう少し資料等を探してどうやったら出来るか調べてみたいと思います。
ありがとうございました。
RE:QNTCでWindowsサーバーの共有フォルダを見る方法 mizu さん [ 7月22日(木) 11時30分 ]
もう解決済みでしょうか?余計なことでしたらすいません。
おそらく、Windows側のSMBのバージョンとIBMi側のSMBのバージョンが合っていないためだと思います。
RE:QNTCでWindowsサーバーの共有フォルダを見る方法 AS400 初心者 さん [ 7月24日(土) 16時59分 ]
> mizu様
貴重なコメントありがとうございます。
ご指摘の通りWindowsサーバー(2016)のSMBバージョンが3.1.1、AS400はV7.3のためSMB2.0で
バージョンが一致していないようでした。

CPYTOIMPFについて くまもん さん [ 9月1日(水) 20時57分 ]
お世話になっております。 いつも参考にさせて頂いています。

CPYTOIMPFについてご教授頂けないでしょうか。

128バイトのファイルに先頭100バイトに値をセットして
後28バイトはBLANKのデータを固定長でCPYTOIMPFを
行っているのですが、IFS上のファイルを見ると
後28バイトが除去された状態となってしまいます。
BLANKが除去されず、128バイトの固定長とするためには
どのような設定をすれば宜しいでしょうか。

宜しくお願い致します。
RE:CPYTOIMPFについて IKD さん [ 9月2日(木) 3時56分 ]
このようなご質問でいつもあることなのですが
ご自分が何をしたのか言わずに
質問されても回答できません。
具体的にどのようなコマンドで実行されたのか
おっしゃっていただかないと解析のしようがありません。
CL 内でSBMJOBしたJOBが終了したか確認する方法 k&k さん [ 9月15日(水) 13時28分 ]
現在 CL内で プログラム AとBとCを順番に実行していますが

AとBは同時に実行しても大丈夫な為、AとBはSBMJOBにて同時に実行します。

ただしCはAとBが終了した後実行したい為、Cの実行前にAとBが終了している事を確認したいです。


その方法を教えてください。

RE:CL 内でSBMJOBしたJOBが終了したか確認する方法 T さん [ 9月16日(木) 16時59分 ]
目的に合っているかわかりませんが、
ジョブ情報の取得(QUSRJOBI)API を使用して処理が終わっているのを確認する。
詳しい方法はネットなどで調べて下さい。
マスタを複数端末で表示する方法 たけ さん [ 10月5日(火) 14時38分 ]
初めまして、教えてください。

マスタを複数端末で閲覧する方法を教えてください。
今1台使用していると、他の端末で見れない状態です。

よろしくお願いいたします。
RE:マスタを複数端末で表示する方法 T さん [ 10月7日(木) 10時9分 ]
物理(論理)ファイルのメンバーを追加して閲覧する。
詳しくは、物理ファイルのメンバー追加・削除で調べて下さい。
RE:マスタを複数端末で表示する方法 AS400 初心者 さん [ 10月13日(水) 17時21分 ]
RPGで作成しているマスタ保守のプログラムということで良かったでしょうか?
ファイルタイプがU(更新)で、レコードの特定にCHAINを使用してると思われますが、
CHAIN(N)を使用していただければロックをかけずにレコードにアクセスできますので
読み取り時はCHAIN(N)で行い、更新前に再度ロックありのCHAINを行うようにRPGを変更することで対応出来るのではと思います。
RE:マスタを複数端末で表示する方法 たけ さん [ 10月14日(木) 11時7分 ]
ありがとうございました。
FTPでファイル名に漢字を使用したい SNH さん [ 10月22日(金) 13時53分 ]
AS/400のFTPでISF上のファイルをPCサーバーに転送する際に受取ファイルを漢字にしたらエラー
となりました、ファイル名に漢字は使用できないのでしょうか?
CPU率について rpg久しぶり さん [ 11月15日(月) 16時55分 ]
お世話になります。

先日as400 がCPU率があがっておちたらしいので
WRKSYSSTSを見てみたら、100になったり、940になっていたりして、
どうしたら落ちてしまうのかわからないです。

御教授下さい。よろしくお願いします。
RE:CPU率について T さん [ 11月16日(火) 13時45分 ]
保守契約をしているのであればIBMサービスラインにまず連絡をした方がいいと思います。
この場で質問するレベルの話ではないと思います。(重大なレベル)
RE:CPU率について IKD さん [ 11月17日(水) 17時19分 ]
CPU使用率のことでしょうか?
CPU使用率は100%近くになっても別に異常ではありません。
効率よくCPUを最大使用しているわけですから
IBM iの特性です。QUERYなどで大量バッチ処理を実行しているときに
よくあります。
IBM iは単一レベル記憶というアーキテクチャーですので
CPU使用が100%を超えたとしてもCPUのメモリ内容を
HDDに退避して繰り返すというスワップ処理が行われのますので
CPUのオーバー・フローによってIBM iが故障することは
ありません。
これはそのように設計されています。
ただしスワップが始まると処理は極端に遅くります。
最近のIBM iではスワップが発生することはほとんどないと
思いますが。

システムASP(=HDD占有率)が100%近くなるのはかなり危ない話です。
RE:CPU率について HaHi さん [ 11月18日(木) 12時24分 ]
システム内のジョブ数が多くなり落ちたのではないですか?

CHGCLNUPが動作しているかの確認が必要だと思います。
RE:CPU率について rpg久しぶり さん [ 11月19日(金) 19時47分 ]
みなさん、ご返答ありがとうございます。

CPU使用率は100超えても大丈夫なのですね。

たしかに急にJOBが増えたんです。

そうすると、CPU率90%をこえるとまずいと聞くのはどの画面のどのCPU率のことでしょうか。
WRKACTJOBでsubmitしていても100%こえるのでしょうか。

あと、ASP使用率の上にあるASPとは一体なんでしょうか。

色々と質問してしまい申し訳ありません。調べてもよくわからなくて。

よろしくお願いします。
RE:CPU率について IKD さん [ 11月21日(日) 10時52分 ]
システムASPとはハード・ディスクの容量のことです。
例えば
------------------------------------------------------
補助記憶域 :                         
  システム ASP . . . . . :    139.5 G
  システム ASP 使用率 (%):    46.7099
  合計 . . . . . . . . . :    139.5 G
  現在の非保護域使用量 . :    10773 M
  最大非保護域 . . . . . :    16078 M
------------------------------------------------------
と表示されていたとすると
HDDディスト容量は 139.5ギガ・バイトの容量に対して
現在はそのうち 46.7099 % を使用済みであることを
示しています。
ASP使用率が98%を超えると操作員メッセージ(QSYSOPR)に
警告エラーが出ます。
このときはHDDを増量させるか不要なデータを削除する必要があります。
RE:CPU率について rpg久しぶり さん [ 11月22日(月) 8時3分 ]
現場に私1人しかいないので、助かります。
本当にありがとうございます!
WRKACTJOBとWRKSYSSTS RPG初心者 さん [ 11月19日(金) 20時51分 ]
お世話になります。

件名の2つはなぜ見る必要があるのでしょうか。

ご教授いただけると幸いです。

よろしくお願いいたします。
RE:WRKACTJOBとWRKSYSSTS IKD さん [ 11月21日(日) 10時59分 ]
WRKACTJOB(活動ジョブの表示)は
WindowsのCtrl+Alt+Dltで見るタスク・マネージャーと同じです。
・活動中にどんなジョブがあるか
・異常な動作をしているジョブはないか
・中断させたいジョブを探して中断させる。
・誰が使用しているのか
・メッセージ待ちのジョブを調べる
など用途は様々です。

またWRKSYSSTS(システム状況の処理)は
システムのCPUの使用率やハード・ディスクの
占有率を調べるのに使います。
これは異常はないかと調べるのに使います。
 
これ以外にも
WRKCFGSTS もよく使いますので調べておいてください。
RE:WRKACTJOBとWRKSYSSTS RPG初心者 さん [ 11月22日(月) 7時58分 ]
ご丁寧な説明ありがとうございます。
本当にわかりやすかったです。
受信データとcsvファイルとの比較 rpg久しぶり さん [ 11月22日(月) 10時33分 ]
度々恐れ入ります。

受信データ1レコード(データは項目に区切られてない)と
csvで区切られたデータの項目がそれぞれ一致するかどうか比較する方法は何かありますでしょうか?

受信データを項目に区切られたDBにコピーして
データ転送してExcelで関数で比較しようと思ったのですが、
DBを作ってはいけないそうです。

よろしくおねがいいたします。
RE:受信データとcsvファイルとの比較 T さん [ 11月25日(木) 10時59分 ]
ご質問の内容にあっているかわかりませんが、
DBを作ってはいけないのであれば、
CSVファイルをコピーして , をテキストエディタとかで置換して
区切られていないCSVファイルにしてはどうですか?

例えばcsvファイルの中が
1,2,3
だとしたら
旧文字列: ,
新文字列:   ←何も指定しない
を実行すると
123
になります。

受信データを転送して比較する。
RE:受信データとcsvファイルとの比較 rpg久しぶり さん [ 12月6日(月) 22時13分 ]
わかりにくい説明で申し訳ありませんでした。
ありがとうございました!
ロールバックするエラーとは rpg久しぶり さん [ 12月6日(月) 22時16分 ]
お世話になります。
ファイルがロールバックするときというのはどのようなエラーが起きた時でしょうか。
よろしくお願いします。
ジャーナルレシーバーの中 rpg久しぶり さん [ 12月6日(月) 22時29分 ]
度々お世話になります。

現場でジャーナルとレシーバーを使っているのですが、
レシーバーの中を見れば物理ファイルの更新履歴を見る事が出来る気がするのですか、
どのように見ればいいのでしょうか。

調べきれず申し訳ございません。

よろしくお願いします。
DFUEXE,QRYEXEについて 富澤 さん [ 12月13日(月) 20時58分 ]
現在の客先のシステムが、継ぎ足し継ぎ足しで、整理ができていない状態です。
オブジェクト一覧を作ったら「DFUEXE」「QRYEXE」という種類のオブジェクトがありました。
DFUのマニュアル、Queryのマニュアルを検索しても、みつかりません。
「DFUEXE」「QRYEXE」について、教えていただけますでしょうか。
よろしくお願いいたします。
RE:DFUEXE,QRYEXEについて IKD さん [ 12月16日(木) 9時15分 ]
そのような名前のオブジェクトはQSYSにはありません。
そのオブジェクトの入っているライブラリーを
調べてみてください。
またDSPOBJDで作成の元になっているソース・ライブラリーを
調べてソースがわかれば使用目的も判明すると思います。
RE:DFUEXE,QRYEXEについて 富澤 さん [ 12月24日(金) 0時53分 ]
IKDさん、ありがとうがいます。
いわゆる「***OBJLIB」に、RPG,CLPなどと一緒に入っています。
DSPOBJD *SERVICEで見ても、ソース情報はブランクです。
別の方より、S/38オブジェクトとの回答をいただきました。
RE:DFUEXE,QRYEXEについて koma さん [ 12月18日(土) 21時36分 ]
おそらくS/38のオブジェクトだと思います。
QRYEXC QUERY
DFUEXC DFU
RE:DFUEXE,QRYEXEについて 富澤 さん [ 12月24日(金) 0時55分 ]
komaさん、ありがとうございます。
S/38オブジェクトなのですね。
LTO使用済サイズ saki さん [ 1月17日(月) 16時52分 ]
LTOへSAVLIBを行っていますが、どこまで使用しているか(あと何ギガ保存できるか?)
を知る方法をお教え下さい。V7R4です
vbsからのパラメーター戻し 迷犬こなん さん [ 2月4日(金) 21時54分 ]
AS400のCLプログラムからでvbsにパラメータを渡して呼び出しvbs処理後に結果を返す事ってできるのでしょうか?
ご存じの方ご教授願います。

ちなみにvbsは下記の様な感じでPCのエクセルを有無を確認します。

  Dim strArg1'受取りパラメータ1(エクセル名)
  Dim strArg2'受取りパラメータ2(エラーフラグ)
  Dim objArg'追加オプションの取得オブジェクト
  Dim objFs'ファイルシステムオブジェクト
  Dim objF'ファイルオブジェクト
  Dim strFldname'フォルダ名
  Dim strnewFldname'新規作成フォルダ名
  Dim MyObject


  Set objArg = WScript.Arguments
  
  If objArg.Count = 1 Then
     strArg1 = objArg.Item(0)'パラメータ01 エクセル名称
     strArg2 = objArg.Item(1)'パラメータ02 エラーフラグ
   Else
    Wscript.Quit
  End If 


  Set objFs = WScript.CreateObject("Scripting.FileSystemObject")

  strFldname = Replace(WScript.ScriptFullName,WScript.ScriptName,"")'コピー元ファイルの存在ディレクトリ名


  If objFs.FileExists(strFldname & strArg1 & ".XLS") = True Then
WScript.echo "指定のエクセルファイルが存在しました。"
  Else
  WScript.echo "指定のエクセルファイルが存在しません。"
**ここでエラーフラグを設定し返したい**
  End If

  Set MyObject = Nothing
  
 Wscript.Quit 
罫線の事で たけ さん [ 3月14日(月) 15時55分 ]
罫線の事で知っていたら教えて頂きたいのですが、あるPGMからCALLし別PGMで罫線のある画面で
処理しPGM終了時、SEETONLRの手前で罫線削除の命令を出しているのですが、罫線消去が半分しか
されず元のPGMで残りの半分が画面に表示されている状態です。WRITEの変わりにEXFMTで処理した
ところこちらでは全て削除されました。WRITEで全て削除される方法を教えて頂けないでしょうか。

宜しくお願い致します。
罫線の事で1 たけ さん [ 3月14日(月) 16時15分 ]
タイトル'罫線の事で'で文章が足りませんでした。

罫線の事で知っていたら教えて頂きたいのですが、あるPGMからCALLし別PGMで罫線のある画面で
処理しPGM終了時、SEETONLRの手前で罫線削除の命令を出しているのですが、罫線消去が半分しか
されず元のPGMで残りの半分が画面に表示されている状態です。罫線が表示されるSFLCTLをEXFMTを
追加して処理してみたところこちらでは全て削除されました。WRITEで全て削除される方法を教えて
頂けないでしょうか。

現在のソース
WRITEFMTCL                    
SETON       LR  
RETRN                         

EXFMT入りのソース(こちらは全部消えます)
WRITEFMTCL                    
ECFMTCTL20                    
SETON       LR  
RETRN                         




OUTQの容量確認方法について 岩崎 さん [ 4月11日(月) 10時42分 ]
OUTQの容量を確認する方法について教えて下さい。

DSPLIBコマンドで出力したスプールファイルを見ると、全てのOUTQのサイズが「16384」となっていいます。
スプールファイルがあるOUTQも空のOUTQも同じ値となっている為、正しいかどうかの判断がつきません。

よろしくお願いします。
RE:OUTQの容量確認方法について HJ さん [ 4月13日(水) 17時48分 ]
中身はDSPOBJDで 探索する
Commitのタイミングに潰え SAYA さん [ 4月18日(月) 17時38分 ]
簡単なことなのかもしれませんが、コミットのタイミングがわかりません。
教えていただけると幸いです。

ファイルを読んで、ある項目がブランクの時だけ項目を設定して更新します。

その場合、項目がブランクかというif文の中でmonitorを設定して
updateの後にコミットしてend ifにするのでしょうか。
それともファイルを読んだところでmonitorを設定して、
if文に関係なくコミットしてしまって大丈夫でしょうか。

よろしくお願い致します。
メッセージキーが見つからず永久ループ たけ さん [ 4月20日(水) 19時55分 ]
お世話になります。

メッセージキーがメッセージ行列に見つからないというエラーで
永久ループをして、システムを止めてしまいそうになりました。

ジョブの中を見てもSTRPDMの後何もしていないようなのですが、
原因がお分かりになる方はいらっしゃいませんか?

よろしくお願い致します。
RE:メッセージキーが見つからず永久ループ IKD さん [ 5月3日(火) 8時38分 ]
メッセージ・キーをどのようにして取得したのかや
実際のCLPなどを開示されないと
ご自分の情報を何も出さないで
原因を教えてくれといっても
誰も答える人はいないでしょう。
27000バイトのデータをas400へ転送したい RPG久しぶり さん [ 5月23日(月) 16時49分 ]
お世話になります。



今27000バイトのデータをClでPCからas400 に転送したいのですが、

データ転送がas400 からPCへは出来るのですが、逆が出来ない環境にいます。

csvもエクセルもテキストも。reflectionというas400を使用しています。



こういった場合、どのようにしたらいいかなど、何かありますでしょうか。

現場にプログラマーがわたし1人で困っています。



どうぞよろしくお願いします。


RE:27000バイトのデータをas400へ転送したい T さん [ 5月24日(火) 10時2分 ]
PCからAS400にデータ転送が出来ない環境というのは、転送ツールがないということでしょうか?
手動にてFTPコマンドでデータ転送が出来ますか?
転送できれば、コマンドファイルを作成して、CL内でRUNRMTCMDで実行してはどうですか?

RE:27000バイトのデータをas400へ転送したい RPG久しぶり さん [ 5月31日(火) 18時6分 ]
ご返信ありがとうございます

データ転送ツール(タブのファイル→転送)はあるのですが、PCからas400へ転送を指定すると

FDFが見つからないと出てきます。なのでas400からPCにファイルを転送して、それをそのままPCからas400へ転送しても同じエラーになります。

FDFを保存する機能が見つからないです。





手動でFTPは出来ます。コマンドファイルというのはバッチファイルと同じでしょうか。

TxtファイルにFTPのアドレスやユーザー、パスワード、putの指定をして

バッチファイルでそのファイルを起動させるために「FTP -s:C?〜」という指定をしてみたのですが、うまく動かず

その原因の見つけ方がわからないのです。





RUNRMTCMDはこのような使い方が出来るのでしょうか。

こちらのコマンドではどのようにパラメータの指定をすればよろしいでしょうか。



ざっくりすぎて申し訳ございません。
RE:27000バイトのデータをas400へ転送したい T さん [ 6月1日(水) 9時44分 ]
参考になるかわかりませんが、弊社ではこんな感じで行っています。
ただし、IKDさんが言うように、RUNRMTCMDが使用できる環境が条件です。
使用しているのが、PCかサーバーかわかりませんが、リモートの許可が必要です。


TXTファイル(FTP)
BATファイルとCMDファイルを作成する。

[TEST.bat]
cwblogon AS400 /u ユーザー名 /p パスワード > C:\TEST\as400.log
exit

[TEST.cmd]
cmd /c "ftp -s:C:\TEST\TEST.txt > C:\TEST\TEST.log"
exit



CLを作成

[CL]
RUNRMTCMD CMD('C:/TEST/TEST.BAT')                 + 
          RMTLOCNAME('111.11.1.11' *IP)           + 
          RMTUSER(ユーザー名)                     + 
          RMTPWD(パスワード)                      + 
          CCSID(943)                                

/**/

RUNRMTCMD CMD('C:/TEST/TEST.CMD')                 + 
          RMTLOCNAME('111.11.1.11' *IP)           + 
          RMTUSER(ユーザー名)                     + 
          RMTPWD(パスワード)                      + 
          CCSID(943)                                

このCLを実行する。
RE:27000バイトのデータをas400へ転送したい RPG久しぶり さん [ 6月1日(水) 14時53分 ]
Tさん。

詳しく書けなくて申し訳ございませんでした。

ご丁寧な説明本当に助かります。

ありがとうございます。やってみます。
RE:27000バイトのデータをas400へ転送したい IKD さん [ 5月25日(水) 6時49分 ]
RUNRMTCMD はIBM ACSでは使えなくなってしまいました。
REFLECTIONとは古いソフトですね。
AutoWebにはデータ転送機能がありますので
お使いになられてはいかがですか>
試供版があります。

データ転送は
https://www.officequattro.com/jpn/software/contents/autoweb/data.html

試供版の申し込みは
https://www.officequattro.com/jpn/mail.html
RE:27000バイトのデータをas400へ転送したい RPG さん [ 5月31日(火) 18時8分 ]
ご返信ありがとうございます。

実はお客様が今後ずっと使用できるようにしなければならないのです。

そういった場合もこちら使用できますでしょうか。
RE:27000バイトのデータをas400へ転送したい IKD さん [ 5月25日(水) 6時49分 ]
RUNRMTCMD はIBM ACSでは使えなくなってしまいました。
REFLECTIONとは古いソフトですね。
AutoWebにはデータ転送機能がありますので
お使いになられてはいかがですか>
試供版があります。

データ転送は
https://www.officequattro.com/jpn/software/contents/autoweb/data.html

試供版の申し込みは
https://www.officequattro.com/jpn/mail.html
RE:27000バイトのデータをas400へ転送したい T さん [ 5月25日(水) 9時52分 ]
IKDさん
弊社でもWindowsサーバー2016以降でRUNRMTCMDが使用出来なくなったので、
違う方法を模索して、AutoWebの購入を検討しましたが、上司から却下されました。

現在は、Windowsサーバー2016以降は、QSH(ssh)コマンドでデータ転送しています。

AutoWebの試供版は、ずっと無償で使用できるのでしょうか?
RUNRMTCMDも試供版にて使用できるのでしょうか?
RPGオブジェクトとソースの整合性チェック方法 ハリー さん [ 5月28日(土) 17時45分 ]
RPGオブジェクトとソースが一致しているかチェックする方法が知りたい。
AS/4操作操作コマンドやツールについてあれば教えてください。
RE:RPGオブジェクトとソースの整合性チェック方法 @445 さん [ 6月3日(金) 10時5分 ]
TOOLBOXが導入されていれば
文書化支援メニューより

文書化データベースの作成

ソース・メンバー登録簿の印刷
RE:RPGオブジェクトとソースの整合性チェック方法 富澤 邦浩 さん [ 6月6日(月) 21時54分 ]
1.DSPOBJD OBJ(RPGプログラム) DETAIL(*SERVICE)で、RPGプログラムのソースライブラリー、ソースファイル、ソースメンバー、ソース変更日時を取得します。結果をDBファイルに出力することもできます。
2.DSPFD FILE(ソースファイル) TYPE(*MBRLIST)で、ソースメンバー、メンバー変更日時を取得します。1.の結果をDBファイルに出力した場合は、RTVMBRD FILE(ソースライブラリー/ソースファイル) MBR(ソースメンバー)でメンバー変更日時を取得します。
3.1.で取得したソース変更日時と、2.で取得したメンバー変更日時が一致するかで、チェックできます。
%GRAPH関数を使用する場合のコンパイル設定について 富澤 邦浩 さん [ 6月6日(月) 22時11分 ]
%GRAPH関数を使用するILE/RPGプログラムをコーディングしましたが、コンパイルすると
*RNF0536 組み込み関数%GRAPHは、図形値のCCSIDが無視されるときには使用できません。
というメッセージが出て、コンパイルできません。

%GRAPH関数を使用する場合、コンパイルオプション等を設定するのでしょうか。
タイプ変換オプション *GRAPHIC は設定しています。
スプールのpdf化 迷犬こなん さん [ 6月8日(水) 19時16分 ]
AS400の印刷物をPDF化しPCのフォルダーに保管してほしいとユーザーから依頼があり
Webで調べてみるとスプールをpdf化できるということで色々試しましたがうまくいきませんのでご教授願います。
当方で実行したコマンドは、下記の通りです。
CPYSPLF FILE(SB0323) TOFILE(*TOSTMF) JOB(025030/GUEST5/ZC) SPLNBR(7) CRTDATE('22/05/18' '10:21:28') TOSTMF('/FTPDATA/SB0323.PDF') WSCST(*PDF) STMFOPT(*REPLACE)

これを実行すると
印刷データの変換中にエラーが起こった
原因−−印刷データを変換する変換サービス・ジョブでクリティカル・エラーが起こりました。
理由コードは 1 です。理由コードとその意味は次の通りです。
1 -- 通信接続が失われました。サーバー・ジョブが予期しない終了となりました。

となります。

ご存じの方ご教授願います。
RE:スプールのpdf化 IKD さん [ 6月13日(月) 18時10分 ]
スプールのPDF化ツールが数多く市販されているのは
IBM提供のものでは漢字や罫線のサポートが
不十分なので市販の製品を使うのが一般的です。
ただし一般の市販製品ではPDF化には別の専用の
Windowsサーバーが必要となるのがほとんどです。
APWを使われているようなら罫線のバグもあります。
お勧めするのはもちろんSpoolライターVer5.0ですが
圧倒的なユーザー数で使われています。
RE:スプールのpdf化 迷犬こなん さん [ 6月13日(月) 22時2分 ]
IKDさん ありがとうございます。
SpoolライターVer5.0よさそうですね?
ただうちの会社交渉しましたが承認取れませんでした。
やはり市販のpdf化ツール使うしかないのでしょうか?
RE:スプールのpdf化 IKD さん [ 6月14日(火) 17時59分 ]
市販のPDF化ツールでSpoolライターVer5.0は
一番値段も安くて機能も豊富ですし
Windowsサーバーも必要としません。
Spoolライターのコストも出ないようなら
PDF化はあきらめて頂くしかなさそうですね。
今の時代でコストをかけずに合理化は
無理かと思います。残念ですが。
RE:スプールのpdf化 T さん [ 6月15日(水) 17時45分 ]
System i ナビゲーター(Access Client)
もしくは、Navigator for i(Access Client Solutions)
を起動

基本操作 → プリンタ出力 → 該当のスプールファイルを開いて
印刷でPDFファイルとしてPCに出力する。
(すでに入っているかもしれませんが、PDFプリンターのフリーソフトが必要になります。)

※ただし、迷犬こなんさんの説明の内容で変換中にエラーと出ているのであれば文字化けすると思います。

もしよろしければ、試してみて下さい。
RE:スプールのpdf化 IKD さん [ 11月9日(水) 18時6分 ]
スプールを無料でPDF化する方法をもうすぐ紹介します。
実はこの無料の方法を梱包して高額で販売している会社があることがわかりました。
IBMユーザーのために無償で使う方法を紹介します。
RE:スプールのpdf化 柴田 政広 さん [ 11月28日(金) 16時50分 ]
CPYSPLF の前に CCSIDを5035に変更してみて下さい

DCL        VAR(&CCSID) TYPE(*DEC) LEN(5 0) 
  
RTVJOBA    CCSID(&CCSID)  

CRTAPW FORMD(TMP) FILE(QTEMP/TMP)   
                    
MRGAPW     FORMD(TMP) FILE(QTEMP/TMP) SPLF(SB0323) JOB(025030/GUEST5/ZC)SPLNBR(7) DEVTYPE(*AFPDS)                     

CHGJOB CCSID(5035)  

CPYSPLF FILE(TMP) TOFILE(*TOSTMF) TOSTMF('/FTPDATA/SB0323.PDF') WSCST(*PDF) STMFOPT(*REPLACE)
 
CHGJOB  CCSID(&CCSID)   

V7.3以上なら こんな感じで出来ると思いますよ。
QRYの実行オプションがバッチ実行の時のジョブについて ソニー さん [ 9月8日(木) 10時42分 ]
お世話になります。



WRKQRYでQRYを作成している時に、「QRY終了」で実行オプションの中に

「バッチで実行」というものがありますが、これを実行するとどこのジョブ?に入るか知りたいです。

QBTCHにしたいのです。



ユーザープロファイルのジョブ記述はDEVELOPERになっていて、ライブラリーはQGPLになっています。



実行したいのですが、お客様先で怖くて出来ません。



初歩的で恐れ入りますが、どなたか教えていただけませんでしょうか。



よろしくお願い致します。




RE:QRYの実行オプションがバッチ実行の時のジョブについて koma さん [ 9月10日(土) 14時16分 ]
ユーザープロファイルのジョブ記述で定義されているジョブ待ち行列で実行されます。
数字のパックの値をExcelまたはtxtにおとしたい RPG初心者 さん [ 11月11日(金) 13時17分 ]
お世話になります。

ご存じでしたらご教授ください。



データをExcelからVBAを使用して、txtにおとそうとしているのですが、

パックが文字化けしてしまい、うまく出来ません。



こちら、文字化けしないようにする方法はあるのでしょうか。



よろしくお願いいたします。
RE:数字のパックの値をExcelまたはtxtにおとしたい RPG さん [ 11月11日(金) 14時33分 ]
すみません、追記ですが、as400上では文字タイプの中にパックの数値が入っています




as400のパックの項目にtxtから値をセットしたい場合 RPG初心者 さん [ 11月28日(月) 15時50分 ]
ご存じでしたらご教授ください。



データをtxtからas400のファイルにおとしたいのですが

数値でas400側がパックの場合、うまくいきません。



txtが27000の長い一桁の項目で、as400の方は同じく27000桁の項目でそれを受け取って、

DSで区切った中にパックがあります。

DSのその値をファイルの項目にセットするところでアペンドします。



よろしくお願いいたします。




RE:as400のパックの項目にtxtから値をセットしたい場合 IKD さん [ 11月30日(水) 16時18分 ]
データ転送でアップロードをしようとしているのか
全く不明でアベンドとか言ってもどんなエラーが
出ているのかもわからないので
回答できる人はしません。
ご自分のやっていることを具台的に話されないと
聞く人には伝わらないと思います。
エミュレータの最大セッション数について 六太郎 さん [ 12月3日(土) 15時32分 ]
お世話になります。
pcomm(ver13.0)を使用しています。
windows10環境でプリンタセッションを複数起動していますが、26個が上限でエラーが出ます。
下記サイトでは最大52個まで可能となっていますが、何か不足している設定があるのでしょうか。
教えていただけると幸いです。

https://www.e-bellnet.com/category/technology/1305/1305-317.html#:~:text=Answer,%E5%80%8B%E3%81%A8%E3%81%AA%E3%81%A3%E3%81%A6%E3%81%84%E3%81%BE%E3%81%99%E3%80%82
RE:エミュレータの最大セッション数について IKD さん [ 12月3日(土) 19時39分 ]
エラーが出るだけでは原因はわかりませんね。
どこにどんなCPFxxxのエラーが出るのか
言わないと回答できる人はいないと思います。
接続しようとするとQSYSOPRに出るのか
PCOMMに出るのかエラーだけでは
神さまでもわからないと思います。
RE:エミュレータの最大セッション数について IKD さん [ 12月3日(土) 19時48分 ]
最大数に関することが原因だと断定して
質問されているようですが別の原因の可能性も
あります。だからエラー・メッセージを
読まないとわかりません。
 
よく質問される方は自分でこれが原因だと
決めさけて質問してしかも自分の情報は出さない。
エラー・メッセージも読まない。
自分の質問の回答も読まないという人が多いです。
ご質問の前にまず相手にわかるように自分のやったことと
結果もくわしく書くようにしましょう。
エラーが出ます。原因は何ですか?では
誰も相手にしてくれません。
RE:エミュレータの最大セッション数について 六太郎 さん [ 12月6日(火) 10時48分 ]
大変失礼いたしました。
WindowsServer2019上でpcomm(ver13.0)のwsを実行していくと、
27個目を起動しようとした段階で「PCSCW001 -これ以上セッションを使用できません。」
というエラーウィンドウが表示されて起動自体しません。

他に内部的なエラーメッセージが出ている場合、調べる方法はあるのでしょうか。
あまり詳しくなくすみません。
RE:エミュレータの最大セッション数について IKD さん [ 12月6日(火) 17時44分 ]
i5/OSのバージョンはいくつですか?
RE:エミュレータの最大セッション数について 六太郎 さん [ 12月6日(火) 18時18分 ]
「V7R2M0 L00」となっていました。
RE:エミュレータの最大セッション数について IKD さん [ 12月6日(火) 20時59分 ]
Ver6.1の途中のPTFからは最大セッション数が26であったのが
50に拡張されています。
それなのに27個でのエラーが出るのはOSの導入で不完全です。
導入した特約店に連絡してCHGSSNMAXコマンドの実行を依頼してください。
RE:エミュレータの最大セッション数について 六太郎 さん [ 12月7日(水) 10時30分 ]
返信ありがとうございました。
特約店に確認します。
RE:エミュレータの最大セッション数について 六太郎 さん [ 12月17日(土) 11時44分 ]
お騒がせしてしまったこの件ですが、無事解決しました。

スタートメニュー→IBM パーソナル・コミュニケーションズ→ユーザー設定
拡張タブ→エミュレーター・セッション最大数を26から52に変更する 

という操作が必要でした。
単純な見落としでしたが同じことで困る人がいるかもしれないので情報共有まで。
RPGエラー メッセージID:RPGxxxxのMONMSG監視 けん さん [ 12月19日(月) 10時56分 ]
いつも参考にさせて頂いております。
標記の件で投稿させて頂きます。

下記の様にRPGの「AAA0001」を実行中にRPG1218のエラーが発生したため
システム応答リストのWRKRPYLEに「RPG1218」応答「C」で登録しました。
メッセージ待ちになってしまい自動応答されません。

 CALL       PGM(AAA0001)         
 MONMSG     MSGID(RPG1218) EXEC(DO)

またMONMSGのIDを「RPG9000」に変更した後、再実行したところ
応答待ちになったので「C」を返したら「EXEC(DO)」以降の処理は実行されました。


メッセージIDによっては必ずメッセージ待ちになってしまうのでしょうか。
何か回避する方法ありますでしょうか。

よろしくお願いいたします。
RE:RPGエラー メッセージID:RPGxxxxのMONMSG監視 IKD さん [ 12月22日(木) 9時35分 ]
最初のエラー・メッセージ:RPG1218はRPGプログラム: AAA001に報告されているので
その上位のCLPで MONMSGしても実行スタックが違うので受取れないと思います。
しかしRPG1218を受取ったRPGプログラムがそのことを示すために別のRPG9XXXXを上位の
CLPに送出するのでCLPでMONMSG RPG9000 で受取ることができたのだと思います。
エラー・メッセージIDの種類によることが原因ではないと思います。
RPGの中でもMONMSGは今はできるようになっていますので

 https://www.as400-net.com/rpg/1232/

RPG内部でモニターするようにすればよいと思います。
しかしRPG内部でのエラーは滅多にないことですから
エラーが出ないようにソースを修正するほうが先決です。
RE:RPGエラー メッセージID:RPGxxxxのMONMSG監視 IKD さん [ 12月22日(木) 11時46分 ]
RPG1218はレコードを割り振ることができないというエラーのようです。
これは更新用としてレコードを(恐らくは)CHAINしにいったところ
他のユーザーも更新用として同じレコードを開いていたため
90秒待った結果解放されなかったということてエラーとなっています。
RPG では

   KEY    CHAIN FILE              9099

  のように記述すると標識90=NOT CHAINのときにオンになり
  99=今回のエラーとして割り振ることができなかったときにオンになる。

 のように標識99を割り振ることによってRPG1218の発生を防ぐことができます。
  なお今回のCHAINが必ずしも更新用としてのCHAINでないのであれば

  KEY   CHAIN(N) FILE

  のようにするとCHAIN(N)はCHAINが成功しても直ちにレコードを解放することが
  できます。
  RPG1218が出てしまうとプログラムは異常終了しますので
 エンド・ユーザーに異常終了を見せてしまうのはよくありません。
  ご参考までに。
FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月16日(木) 9時35分 ]
FFRPG 表示装置ファイルでの ROLLUPキー使用について教えていただきたいです。

画面(DSPF)とフリーフォーマット(FFRPG)でデータ照会プログラムを作ろうとしています。

1画面に1レコードを表示する形です。前後のレコードを表示する時、
ユーザーは、PageUpキー、PageDownキーを押下するという仕様です。

画面(DSPF)には、

A                   ROLLUP(93)     
A                   ROLLDOWN(94)   

と記述しています。

RPG3 では、
C     *IN93   IFEQ  *ON   
と記載して、このあとの行に ROLLUP キーを押下された場合の処理を書いていました。

FFRPG では、
    
      *IN93  = *on;

と記載してみましたが、以下のようにコンパイルエラーになります。

 RNF7030: 名前または標識*IN93が定義されていない。
 RNF7503: 式に定義されていないオペランドが含まれている。  

他の箇所で画面(DSPF)に記述している
CA1 に対する FFRPG の *inka はコンパイルエラーにならないのですが、
ROLLUP ROLLDOWN は上手くいかない状態です。

どなたか、参考になる情報もしくはサイトなどご存じでしたら、ご教示いただきたいです。
何卒よろしくお願いいたします。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月16日(木) 9時41分 ]
申し訳ないです。
FFRPG では、

if *IN93 = *on;

と記述しています。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月16日(木) 15時24分 ]
RPGのコンパイル・リストに

  N    3    3  *IN93                            ROLLUP
  N    4    4  *IN94                            ROLLDWN

のようにROLLUP標識も印刷出力されていますか?
* 7030のエラーが出ているのは標識が定義されていないことを
意味しています。

   IF *IN93 = *ON;

の書き方には問題ありません。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月17日(金) 17時8分 ]
IKD様 ご教示ありがとうございます。
早々にリアクション頂き感謝いたします。

RPG3 で、コンパイルOKとなっている、CRTRPGPGM のコンパイルリストには、

INPUT   レコード SC02S ファイル  様式 SC02S のフィールド  
                                        1   1 *IN91              
                                        2   2 *IN93              
                                        3   3 *IN94              

*IN93       A(1)    A000002  B000002  C000002  D000002    14400  
*IN94       A(1)    A000003  B000003  C000003  D000003    14500

といった記述があり、表示装置ファイルの93 94 の定義がRPGに反映されていると判断しています。

FFRPGでは、コンパイルエラーで、 CRTBNDRPGのコンパイルリストには、
ROLLUP といった表示は無く、以下の表示です。
*RNF7030 30    354 000332   名前または標識 *IN93 が定義されていない。 
*RNF7030 30    386 000364   名前または標識 *IN94 が定義されていない。
*RNF7030 *IN93             **UNDEF**             354     384     489     50   
*RNF7030 *IN94             **UNDEF**             386     493     507     57   
と表示されています。


表示装置ファイルに関する書き方に問題があるかもしれないので、もう少し格闘してみます。 

dcl-f U3E410D workstn(*EXT) infds(infds) usage(*input:*output);
dcl-ds dspSC01 likerec(SC01:*ALL);
dcl-ds dspSC02S likerec(SC02S:*ALL);
dcl-ds dspFMTMG likerec(#FMTMG:*ALL);
dcl-ds dspSC99 likerec(SC99:*ALL);
dcl-ds infds;
   cusr  packed(2:0) POS(370);
end-ds infds;

と書いています。もう少しよく調べてみます。
もし何かお気づきの方がいらっしゃれば、アドバイスいただけるとありがたいです。
よろしくお願いいたします。       
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月19日(日) 12時54分 ]
まさかとは思いますがFFRPGでは当然DSPFは外部記述に
なっていますよね。
なぜここでRPG IIIが出てくるのかよくわかりませんが。
DSPFが内部記述では当然* 7030になります。
FFRPGの F-仕様書を見せて頂けませんでしょうか?
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月20日(月) 9時28分 ]
IKD様 ありがとうございます。

説明が不十分でした。申し訳ありません。
既存のDSPF,RPG が存在しており、正常に稼働しています。

DSPF はそのまま、既存の物を使用し、RPG を FFRPG に書き換えてみようとしています。
DSPFは外部記述です。CRTDSPFで作成された物です。
RPG III のことを記載しているのは、既存のRPG III で書かれたソースと比較しながら考えていたためです。

DSPFに関するf仕様書は以下のように書いています。
U3E410DというDPPFに、SC01,SC02S,FMTMG,SC99 というレコードがある状態です。

dcl-f U3E410D workstn(*EXT) infds(infds) usage(*input:*output);
dcl-ds dspSC01 likerec(SC01:*ALL);
dcl-ds dspSC02S likerec(SC02S:*ALL);
dcl-ds dspFMTMG likerec(#FMTMG:*ALL);
dcl-ds dspSC99 likerec(SC99:*ALL);
dcl-ds infds;
   cusr  packed(2:0) POS(370);
end-ds infds;      

なお、DSPF は従来のA仕様書で、93 94は以下のように既述しています。

A                                      DSPSIZ(24 80 *DS3)        
A                                      PRINT(*LIBL/QPRINT)       
A                                      VLDCMDKEY(91 'ANY VALID KEY')
A          R SC01    
A                                      OVERLAY                   
A                                      PROTECT                   
A                                      ERASE(SC02S)              
A*                                                               
A                                      ROLLUP(93)                
A                                      ROLLDOWN(94)        
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月20日(月) 14時59分 ]
DSPFのDDSソースにINDARAキー・ワードを使用していませんか?
INDARAキー・ワードを使用すると標識エリアを入出力バッフアーから
除去してしまいます。
それならROLLUP標識が未定義になってしまう可能性があります。
またこのDSPFでRPG IIIが動いていたのであれば
RPG IIIではどのような記述をしていたのか
確かめてください。
RPG |||からいきなりファイル仕様書までフリー・フォーマットにする
必要はあるのでしょうか?
ファイル仕様書までフリー・フォーマットにしてしまうと
RPGに精通している人でも困惑してしまいますので
普通は演算仕様書のみフリー・フォーマットにします。
それ以外をフリー・フォーマットにする利点は
見当たりませんので。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 karin さん [ 2月21日(火) 10時54分 ]
IKD さん、ありがとうございます。

FFRPGを始めたばかりで、試行錯誤しております。
コメントいただいた内容、非常に勉強になり、感謝しております。

DSPFのDDSソースにINDARAキー・ワードは使用しておりません。

「演算仕様書のみフリーフォーマットにする」ということには思い至りませんでした。
この形で、やり直してみることに致します。
RE:FFRPG 表示装置ファイルのROLLUPキー使用 IKD さん [ 2月21日(火) 13時2分 ]
フリー・フォーマットへの移行は無理やり力ずくで
移行するのではなくそれなりの理由があってのことです。
DS QUALIFIED など便利な新しい機能を使い始めると
フリー・フォーマットでないと書ききれなかったり
見やすくするためにフリー・フォーマットを
一部だけ採用して徐々に拡大していくことになります。
ただしフリー・フォーマットは万能ではなく
MOVEA などは配列とフィールドの変換に大変便利なのですが
フリー・フォーマットでは使うことができません。
今までの書き方のほうが見やすくわかりやすい場面も
ありますので少しずつフリー・フォーマットに慣れていくほうが
社内でも自然な移行ができると思います。

 https://www.as400-net.com/rpg/1410/  

( ここからフリー・フォーマットの紹介があります。 )

RE:FFRPG 表示装置ファイルのROLLUPキー使用 ho さん [ 5月25日(木) 23時4分 ]
PAGEUP、PAGEDOWNで記述してみるとどうでしょうか?

弊社では下記のように記述して対応しております。
FFRPG、C仕様書のみフリーで書いていた時も下記のやり方で対応していました。


// DSPF

PAGEUP(84 '前頁')  
PAGEDOWN(85 '次頁')


// RPG

IF *IN85;
  // 処理
ENDIF;  

画面の重ね表示 キッズ さん [ 4月2日(日) 0時1分 ]
RPGでDSPFの重ね表示が出来なく困っています。
事の始まりはRPG36の2本のプログラムでの画面が重ね表示出来ているからです。
私がチャレンジしているのは、プログラムAで画面表示します。
その後プログラムBを呼び出しプログラムAの画面9行目から24行までに
プログラムBの画面を重ね表示させたいのです。。
プログラムAのDSPFはコマンド表示レコードとデータ表示レコードに分かれており
コマンドレコードをWRITEしデータ表示レコードをEXFMTしています。
プログラムBのDSPFはデータ表示レコードだけで9行目から24行まで使うので
SLNO(09) CLRL(16)と記述しています。
CRTDSPFで画面復元、書き出し据え置きの設定を変えてみましたが
プログラムAからプログラムBを呼び出すとプログラムAの画面が消えブログラムBの画面だけ
表示されます。
もしやと思いプログラムAのDSPFもCRTDSPFで画面復元、書き出し据え置きの設定を変えてみましたが
やはりプログラムAの画面が消えてプログラムBの画面だけが表示されます。
RPG36では簡単に出来ているのですがPRGでは同じ様にして出来ません。
WINDOWでと思ったのですがDSPFの長さが78桁使用するので使えません。
Webとか色々と探しましたが参考になるもの見つかりませんでした。
どなたかご教授願います。
RE:画面の重ね表示 IKD さん [ 4月3日(月) 8時5分 ]
複数のプログラムでDSPFの共用もできます。
 
CRTDSPFではなく実行時に
OVRDSPF FILE(MYDSPF) SHARE(*YES) OPNSCOPE(*JOB)
CALL PGMA
CALL PGMB
DLTOVR MYDSPF LVL(*JOB)
としてみてください。
RE:画面の重ね表示 キッズ さん [ 4月5日(水) 19時3分 ]
IKDさんご教授ありがとうございます。
OVRDSPF記述してみましたが思う様に出来ませんでした。
私の投稿がわかりにくかったのかもしれないので今一度追記説明させていただきます。

DSPFは下記の様に設定
PGMAD
     R DSP00 <=データ表示
            OVERLAY
     R DSPCMD <=コマンド表示
     
PGMBD
     R DSP01  <=データ表示
            SLNO(09)
            CLRL(16)
            OVERLAY


CALL PGMA
     WRITEDSPCMD
     EXFMTDSP00
     CALL PGMB
          EXFMTDSP01

PGMBが実行された時画面の表示的には
PGMAの画面を消さずに残す
PGMAの消さずに残した画面の
09行目から24行目にPGMBのデータを表示

再度ご教授願います。
RE:画面の重ね表示 通りすがり さん [ 4月7日(金) 9時32分 ]
DSP00とDSP01で表示する行が1行でも被ってる場合
DSP01をEXFMTした場合、DSP00は消えると思います

DSP00でDSP01とかぶる行は別レコードにして
PGMAでWRITEする形にしてみてはいかがでしょうか?
RE:画面の重ね表示 キッズ さん [ 6月24日(土) 13時47分 ]
返信遅くなり申し訳ありません。

色々とご教授頂きましたがDSPFの表示データをワークファイルに落としてPGMBのDSPFにセットするという方法でのりきりました。

IKSさん通りすがりさん ありがとうございました。
CRTPFでエラー たなか さん [ 5月25日(木) 10時21分 ]
初心者です。

物理ファイルを作成しようとしたところ
CRTPF FILE(TAC12345/TSTPDT01) SRCFILE(TAC12345/QDDSSRC) 

下記エラーが表示されました。
Member TSTPFDT01 file QDDSSRC in library TAC12345 not found.

原因、対処方法をお教えください。
RE:CRTPFでエラー たなか さん [ 5月25日(木) 11時10分 ]
自己解決しました。
PCOMM転送 キッズ さん [ 6月24日(土) 14時4分 ]
PCOMM転送で送受信を行おうとしていますが
ISerise => PCは全く問題なく出来るのですが
PC => ISeriseになると「転送途中で止まる」「The format of this file is not supported」とエラーがでるなど
正しく動作しません。

この様な状況を経験回避された方ご教授願います。

下記が私どもの環境と現状になります。
iSeriseV7R4M0

PCOMVER13.0

ISeriseからAFILE(レコード件数15,000)をPCへ転送しA1.XLSで保管
A1.XLSのデータを一切変更せずPCOM転送でISeriseのBFILEへは問題なく転送出来る

PCのA1.XLSの任意の1行の数字を1から2に変更すると
A1.XLSをPCOM転送でISeriseのBFILEへ転送出来ない
現象としては、転送途中で終了する(転送出来る件数は、毎回違う)

AFILEの業者コード別にPCへ転送しそれぞれ別名で保管

業者コード:00001   80件をE00001.XLSで保管
業者コード:00002  320件をE00002.XLSで保管
業者コード:00003  750件をE00003.XLSで保管

それぞれのエクセルの0の列に数字を追記し
E00001.XLS => E00001_YY.XLSで保管
E00002.XLS => E00002_YY.XLSで保管
E00003.XLS => E00003_YY.XLSで保管
E00001_YY.XLS/ E00002_YY.XLS/ E00003_YY.XLSをPCOM転送でISeriseのBFILEへ転送すると
E00001_YY.XLS/ E00002_YY.XLSは、転送出来る
E00003_YY.XLSはThe format of this file is not supportedとなる

E00001_YY.XLS/ E00002_YY.XLS/ E00003_YY.XLSは全く同じ転送方法で送受信しています。

すみませんが色々とご教授願います。
PFが削除できない SASAKI さん [ 7月5日(水) 16時42分 ]
V7R2M0 物理ファイルが削除できません。以前LFは付いていましたが、既に削除しています。
DSPDBRで見ると1ファイルが付いていて、表示されてるのですが、ライブラリーが空欄です。
原因や対応方法は有りますか?
RE:PFが削除できない IKD さん [ 7月6日(木) 20時0分 ]
ご自分の情報をもっと出さないと駄目ですね。
DSPDBRでの出力画面とか言わないと
神さまでも回答してくれないと思います。
データ転送 T さん [ 9月12日(火) 14時54分 ]
Windowsサーバーからデータ転送をCMDファイルを使って行っています。
CMDファイルの中身は以下のようになっています。
C:\ABC\ACS\Start_Programs\Windows_x86-64\acslaunch_win-64.exe /PLUGIN=logon /SYSTEM=POWER /USERID=TEST1 /PASSWORD=ABC /AUTH > C:\ABC\UPLOAD\ABC.log
C:\ABC\ACS\Start_Programs\Windows_x86-64\acslaunch_win-64.exe /PLUGIN=upload /USERID=TEST1 C:\ABC\UPLOADL\TORIHIKI.dttx > C:\ABC\UPLOAD\TORIHIKI.log
exit

通常は問題なく転送できるのですが、たまに失敗します。
LOGファイルの中を確認すると、
「MSGGEN007 (ユーザー名)が要求を取り消しました。」となっています。

このサーバー内では複数のCMDファイルが実行されています。
(ユーザー名は同じものを使用しています。)
その事を含めていろいろと調べているのですが、今のところ原因がわかっていません。

IBM i 7.4
Windows Server 2016
Access Client Solutions V1.1.8.7

何かおわかりになる方がいらっしゃいましたらご教授下さい。
サービスプログラムが作成できない 塩野 さん [ 11月24日(金) 10時24分 ]
消費税を計算するサービスプログラムを作ろうとしていますが
モジュールの作成までは行くのですが、サービスプログラムのコンパイルを行うと
「 サービス・プログラム PROC001 は作成されなかった。」というメッセージが出て
作成されません。 どこに問題点があるのかご教示頂けますでしょうか?
よろしくお願いします。


ソース SRCFILE(@SHIOG/QRPGLESRC)  

**FREE
//===============================================================*
//====【PGM】: PROC001
//====【見出し】:サービスプログラム001
//
//  CRTRPGMOD MODULE(QTEMP/PROC001) SRCFILE(@SHIOG/QRPGLESRC)
//  DBGVIEW(*SOURCE) AUT(*ALL)
//===============================================================*
CTL-OPT NOMAIN ;
CTL-OPT DFTNAME(PROC001) ;
//
//===============================================================*
//====【PGM】: TAX_CALC
//====【見出し】:消費税額算出  サブプロシージャ
//
//  CRTRPGMOD MODULE(QTEMP/TAX_CALC) SRCFILE(@SHIOG/QRPGLESRC)
//  DBGVIEW(*SOURCE) AUT(*ALL)
//
//===============================================================*
DCL-C SALES_TAX CONST(0.10) ;
//
DCL-PROC TAX_CALC EXPORT;

  DCL-PI *N  PACKED(11:0) ;
    EXCLUDING_TAX PACKED(11:0) VALUE ;
  END-PI;

  RETURN EXCLUDING_TAX * (1 + SALES_TAX) ;
END-PROC;
//-------------------------------------------*     


モジュール作成コンパイル
CRTRPGMOD MODULE(QTEMP/PROC001) SRCFILE(@SHIOG/QRPGLESRC)  
DBGVIEW(*SOURCE) AUT(*ALL)    


サービスプログラム作成コンパイル ←これがうまく行きません
CRTSRVPGM SRVPGM(MGSPGMT/PROC001) MODULE(QTEMP/PROC001)   
SRCFILE(@SHIOG/QRPGLESRC) AUT(*ALL)                       
                             
RE:サービスプログラムが作成できない IKD さん [ 11月28日(火) 15時21分 ]
CRTSRVPGM でSRCFILE に QSRVSRC ではなくQRPGLESRCが指定されているようですが
SRVSRCを指定しないとだめです。
ご質問のときには「うまくいきません」ではなく必ずエラー・メッセージを
くわしく説明しないと回答できません。
ご自分のわかっていることはすべて書くようにしてください。
列の長さ変更について ゆうやん さん [ 8月12日(月) 11時12分 ]
お世話になります。

5250画面から下記コマンドで、もともと3000バイトあった項目を4000バイトに変更しました。
ALTER TABLE TABLE_1 ALTER COLUMN COLUMN_1 SET DATA TYPE VARCHAR (4000)
この処理はうまくいったのですが、これをもとの3000バイトに戻そうと
ALTER TABLE TABLE_1 ALTER COLUMN COLUMN_1 SET DATA TYPE VARCHAR (3000)
を実行したらSQL0952理由コード10のエラーが出て変更できません。
理由コード10は「照会メッセージに対する取り消し応答が受信されました」となっています。
調べたところタイムアウトが想定されているようですが、該当のデータに変更はなく
他ユーザーも使用しておらず、4000バイトへの変更が出来たのに3000に出来ないのが不思議です。
お知恵を貸してください。
RE:列の長さ変更について IKD さん [ 8月17日(土) 19時8分 ]
わざわざSQL文でレイアウトを変更しなくても
IBM iでは CHGPFで簡単にデータそのものも
簡単に安全にデータ変更することができます。

https://www.as400-net.com/database/12995/

やさしいことを難しくする必要はありません。
RE:列の長さ変更について ゆうやん さん [ 8月18日(日) 13時19分 ]
IKDさま

ありがとうございます!
そうでした。CHGPFを忘れてました。
なぜ3000桁への変更が出来ないのかという疑問が解決しないのは気持ち悪いところではありますが、
それで対応します。
ありがとうございました。
SAVFをAS400にFTPでPUTできない NS さん [ 9月20日(金) 10時22分 ]
SAVFをAS400にFTPでPUTできず困っています。どなたかお助けください。

FTPのログは以下の通りです。
因みに「SUCCESSFULLY」となっていますが、SAVFの中身は空でした。

---------------------------------------------------------------------------------
ftp> bin
200 REPRESENTATION TYPE IS BINARY IMAGE.
ftp> put xxx.savf yyylib/xxx
200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
150 SENDING FILE TO MEMBER XXX IN FILE XXX IN LIBRARY YYYLIB.
xxx.savf はプレーン ファイルではありません226 FILE TRANSFER COMPLETED SUCCESSFULLY.
---------------------------------------------------------------------------------

他のPCで試すと成功しました。
成功したPCはWin10で、失敗したPCはWin11です。
「xxx.savf」以外のSAVFはWin11のPCでも成功しました。
RE:SAVFをAS400にFTPでPUTできない WanCraft さん [ 9月24日(火) 9時5分 ]
NS様 
状況が異なりますが、
先週、私がWin11で使っているツールで、急にGETが出来なくなる現象がありました。
原因は、WindowsDefenderファイアウォールの設定が変わってしまったことです。(多分WinのUpdateで)

1.Windows Defenderファイアウォールのプロパティ → ドメインプロファイルタブの受信接続がブロックに変わった
2.受信の規則 → ファイル転送プログラムの操作がブロックに変わった

私はこの2点を「許可」に変えて解消しました。
NS様はPUTでお困りなので状況が異なりますが、参考になれば幸いです。
RE:SAVFをAS400にFTPでPUTできない WanCraft さん [ 9月26日(木) 14時16分 ]
他のファイルでPUTは出来ていたのですね。失礼しました。
RE:SAVFをAS400にFTPでPUTできない IKD さん [ 9月25日(水) 19時50分 ]
bin の記述はいいと思いますが

ftp> put xxx.savf yyylib/xxx

があまりにもあいまいに見えます。

PUT のフォルダー名ライブラリー名も
明示的に指定されていません。
この前の記述で宣言されていれば別ですが
指定があいさいすぎです。
RE:SAVFをAS400にFTPでPUTできない @445 さん [ 9月26日(木) 8時16分 ]
yyylib/xxxが*SAVFとしてAS側に存在していないとだめでは?
RE:SAVFをAS400にFTPでPUTできない NS さん [ 10月21日(月) 18時12分 ]
どうしても解決できなかったため、FTPを諦めてIFS経由で取り込むことにしました。
投稿してくださった方をはじめ、一緒に考えてくださった皆様、ありがとうございました。

---------------------------------------------------
もう少し詳細な内容を記載すると以下の通りでした。

?送り側AS SAVLIB
SAVLIB LIB(XXXLIB) DEV(*SAVF) SAVF(XXXX/SAVF1) TGTRLS(V7R1M0) SAVACT(*LIB) DTACPR(*YES)
SAVLIB LIB(XXXLIB) DEV(*SAVF) SAVF(XXXX/SAVF2) TGTRLS(V7R1M0) SAVACT(*LIB) DTACPR(*YES)

?送り側PC FTP
ログなし(すみません・・・)

?受け側AS
CLRSAVF YYYLIB/SAVF1
CLRSAVF YYYLIB/SAVF2

?受け側PC FTP
Microsoft Windows [Version 10.0.26100.1742]
(c) Microsoft Corporation. All rights reserved.

C:\Users\xxxx>cd C:\AS

C:\AS>ftp 192.168.x.xxx
192.168.x.xxx に接続しました。
220-QTCP AT 192.168.x.xxx.
220 CONNECTION WILL CLOSE IF IDLE MORE THAN 30 MINUTES.
501 OPTS UNSUCCESSFUL; SPECIFIED SUBCOMMAND NOT RECOGNIZED.
ユーザー (192.168.x.xxx:(none)): asuser
331 ENTER PASSWORD.
パスワード:

230 ASUSER LOGGED ON.
ftp> bin
200 REPRESENTATION TYPE IS BINARY IMAGE.
ftp> put savf1.savf yyylib/savf1
200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
150 SENDING FILE TO MEMBER SAVF1 IN FILE SAVF1 IN LIBRARY YYYLIB.
226 FILE TRANSFER COMPLETED SUCCESSFULLY.
ftp: 3479520 バイトが送信されました 0.35秒 10056.42KB/秒。
ftp> put savf2.savf yyylib/savf2
200 PORT SUBCOMMAND REQUEST SUCCESSFUL.
150 SENDING FILE TO MEMBER SAVF2 IN FILE SAVF2 IN LIBRARY YYYLIB.
savf2.savf はプレーン ファイルではありません226 FILE TRANSFER COMPLETED SUCCESSFULLY.

※ライブラリやファイル名に個人や会社名が入っているので少し加工しています
---------------------------------------------------

症状としては以下の通りです。
・savf1は正常にFTPされ、復元も問題なく行えますが、savf2は正常にFTPされません。
 (表示上は「226 SUCCESSFULLY」となっていますが)
・同じ操作を他のPCで行うと、savf2も正常にFTPされます。
 うまくいくPCはWin10で、うまくいかないのはWin11です。
 Win10とWin11の設定はおおむね同じです。
・ファイルサイズはsavf1が3MBで、savf2が4.6GBです。
 (ファイルサイズが大きすぎることが何か影響を及ぼしているのでしょうか?)
RE:SAVFをAS400にFTPでPUTできない こう さん [ 10月31日(木) 15時31分 ]
同じような事象にあたったことがあります。その際はPUTを以下のように変更したら解決しました
put xxx.savf yyylib/xxx.SAVF

私も以前はわざわざAS400側に拡張子を付けなくても送信できていました。
Win11になってこのように解決しましたが、なぜ必要になったか原因までは把握していないので同様に解決できるかわかりませんがご参考まで
「ライセンスプログラム一覧」作成について 富澤邦浩 さん [ 12月18日(水) 6時0分 ]
AS/400区画毎の(開発機、テスト機、本番機A(東日本)、本番機B(西日本....))
「ライセンスプログラム一覧」を作成して、相違を確認する作業を行っています。
これまでは調査のたびに
?ソフトウェア資源の表示(DSPSFWRSC)画面ハードコピー
?ライセンス情報の処理(WRKLICINF)画面ハードコピー
?GO MENU(LICPGM)(ライセンス・プログラムの処理)→10(導入済みライセンス・プログラムの表示)→F11画面ハードコピー
と、調査方法がばらばらでした。
依頼元には?に統一してほしいと言われました。

?、?はOUTTYPE(*PRINTER)で帳票にすることができます。
同様に、?をOUTTYPE(*PRINTER)、OUTTYPE(*OUTFILE)にすること、
GROUP_PTF_INFOのようなシステム情報SQL Viewから取得することは可能でしょか。
宜しくお願い致します。
RE:「ライセンスプログラム一覧」作成について 大竹 さん [ 1月10日(金) 16時58分 ]
?とは何ですか?
文字化けしているようでわかりません。
RE:「ライセンスプログラム一覧」作成について 富澤邦浩 さん [ 1月14日(火) 23時20分 ]
大竹さん
文字化け指摘ありがとうございました。
元記事のリプで、文字化け修正版を書き込みました。
RE:「ライセンスプログラム一覧」作成について 富澤邦浩 さん [ 1月14日(火) 23時18分 ]
AS/400区画毎の(開発機、テスト機、本番機A(東日本)、本番機B(西日本....))
「ライセンスプログラム一覧」を作成して、相違を確認する作業を行っています。
これまでは調査のたびに
(1)ソフトウェア資源の表示(DSPSFWRSC)画面ハードコピー
(2)ライセンス情報の処理(WRKLICINF)画面ハードコピー
(3)GO MENU(LICPGM)(ライセンス・プログラムの処理)→10(導入済みライセンス・プログラムの表示)→F11画面ハードコピー
と、調査方法がばらばらでした。
依頼元には(3)に統一してほしいと言われました。

(1)、(2)はOUTTYPE(*PRINTER)で帳票にすることができます。
同様に、(3)をOUTTYPE(*PRINTER)、OUTTYPE(*OUTFILE)にすること、
GROUP_PTF_INFOのようなシステム情報SQL Viewから取得することは可能でしょか。
宜しくお願い致します。
RE:「ライセンスプログラム一覧」作成について ソユリ さん [ 1月17日(金) 15時3分 ]
こんにちは。
コマンドラインではありませんがACSを使った方法で参考までに。
1.ACS > IBM Navigator for i 起動
2.対象となるシステムを選択し、左側メニューより「構成およびサービス」を選択
3.ソフトウェア を選択
(導入済ライセンスが一覧表示されます)
4.一覧の左上【アクション】メニューより「すべてのエクスポート」を選択
5.即時でパソコンへcsvファイルがダウンロードされます。

※SQL情報ですと SOFTWARE_PRODUCT_INFO になると思います。
わたしは使ったことありませんが、Excelで1つのブックを比較するなら「Inquire」が便利そうですね。


RE:「ライセンスプログラム一覧」作成について 富澤邦浩 さん [ 1月20日(月) 22時34分 ]
ソユリさん、ありがとうございます。
ACSですが、インストールされていません。PCOMのみです。
現在のシステムのOSが
V5R3M0:1区画(2年後廃止予定で更新しない)
V7R1M0:14区画(更新せず、V7R5M0のマシンに順次移動予定)
V7R5M0:3区画
で、SOFTWARE_PRODUCT_INFOはV7R5M0の4区画にしかありません。
せっかくいただいたSOFTWARE_PRODUCT_INFOですが、本件では使えなさそうです。
項目名を全角文字で転送できる方法をご教示ください 川上 さん [ 1月21日(火) 15時18分 ]
SQLを用いてデータ転送を行っています。
DBにない項目に対して、AS句で項目名を付与していますが、
全角文字を指定すると転送時にエラーとなります。

項目名を全角文字で転送できる方法をご教示ください

※詳細→拡張→ファイルの詳細では、「列ラベル」を指定しています。
PCOMダウンロードでDBCS文字が化けてしまいます 富澤邦浩 さん [ 1月31日(金) 8時41分 ]
『「ライセンスプログラム一覧」作成について』派生です。
教わったSAL View SOFTWARE_PRODUCT_INFO を、PCOMでPCの.xlsファイルにダウンロードしたところ、
VARCHAR(132)のフィールド内のDBCS文字が化けてしまいました。SBCS文字は正しくダウンロードできました。
また、DBファイルのA(半角文字)定義のフィールドにO(全角、半角)のデータがコピーされているファイルを、
PCOMでPCの.xlsファイルにダウンロードしたところ、A(半角文字)定義フィールド内のDBCS文字が化けてしまいました。
どちらも、AS/400画面ではSBCS/DBCSとも正しく表示されます。

PCOMの設定で、VARCHARフィールドのDBCS文字、A定義フィールドのDBCS文字を正しくダウンロードすることは可能でしょうか。
よろしくお願いします。
RE:PCOMダウンロードでDBCS文字が化けてしまいます IKD さん [ 3月29日(土) 9時26分 ]
Chicago を使ってください。
RE:PCOMダウンロードでDBCS文字が化けてしまいます 富澤邦浩 さん [ 4月9日(水) 18時20分 ]
IKDさん、ありがとうございます。
PCOMダウンロード定義内に
CAST (SBCSフィールド) AS CHAR(フィールド長) FOR MIXED DATA
と定義することで解決しました。

なお、勤務先の会社の規定で「会社公認ソフトウェア以外の使用禁止」となっており、Chicagoを使用することができません。
AS/400の使用を縮小する予定があり、AS/400関連新ソフトウェアの追加公認もない環境です。
活動事前開始ジョブの表示(DSPACTPJ)によるパフォーマンス監視について 富澤邦浩 さん [ 2月16日(日) 18時43分 ]
現在、システムの状態監視のため、システム状況の表示(DSPSYSSTS).システムASP使用率% などの値を監視しています。
これに、活動事前開始ジョブの表示(DSPACTPJ)の値も追加しようという話題になりました。


(1)「システムASP使用率% > 90.0000 以上は警告発令」のように、システムパフォーマンス異常上昇を察知することは可能でしょうか。
(2)事前開始ジョブ数、プログラム開始要求数などの平常値、異常値の目安などはありますでしょうか。

よろしくお願いします。
RE:活動事前開始ジョブの表示(DSPACTPJ)によるパフォーマンス監視について IKD さん [ 3月29日(土) 9時2分 ]
今、どのような方法で監視されているのか説明されないと回答できません。
監視していますでは説明になりません。
監視するには高度なAPIを駆使する技術が必要です。
RE:活動事前開始ジョブの表示(DSPACTPJ)によるパフォーマンス監視について 富澤 邦浩 さん [ 4月9日(水) 18時24分 ]
IKDさん、ありがとうございます。
この件は「現状のまま、新機能は追加しない」ということになりました。
ご回答いただいたのに、このようなことになり、お手間をおかけしました。
ACSでのエクセルファイルからのアップロードで 風鈴 さん [ 3月17日(月) 10時21分 ]
ACSからASへデータのアップロードを使用するのですが。
データ転送で同じクライアントファイル記述を使用しているにも係わらず、ファイルからの転送は「ホストファイルNumericクライアントファイルCharacter」となり失敗し、同ファイルのアクティブスプレッドシートからのファイル転送は成功します。
発生するのは決まって「日付け」項目です。
必ず失敗する訳ではなく、他のファイルでは同じく日付け項目であっても成功する物も有る為、違いがわからず難儀しています。

成功する転送でもエクセル上で日付け項目のセルの書式は、「標準」で有ったり「数値」で有ったりしています。
失敗するエクセルファイルもセルを標準や数値に変えて見て試行しますが、やはり必ず先の「NumericとCharacter」のエラーになります。
※転送の「ファイルの詳細」で「変換元」は「Windows 31j」を使用しています。

どうか悩める子羊をお救いください。
RE:ACSでのエクセルファイルからのアップロードで IKD さん [ 3月29日(土) 8時59分 ]
こういう技術の障害のご質問をされる方は決まって
ご自分の情報は出さずに「うまく行きません」とか
「エラーになります」という抽象的な結果だけで
解決して欲しいという投稿がほとんどです。
「日付」のフィールドのデータ・タイプや
エラー・メッセージやどのような操作で
どのような結果になったのかも詳細は何も
語りません。それでは神さまでも回答できないでしょう。
「何を言えばいいですか?」と言うのも無理です。
RE:ACSでのエクセルファイルからのアップロードで IKD さん [ 3月29日(土) 9時28分 ]
Chicago を使ってください。
RE:ACSでのエクセルファイルからのアップロードで 風鈴 さん [ 4月4日(金) 10時0分 ]
>「ホストファイルNumericクライアントファイルCharacter」
これがエラーメッセージなんですが理解出来ませんでしたか?

>どのような結果になったのかも詳細は何も語りません
ファイルからの転送はエラーで、同ファイルのアクティブスプレッドシートからのファイル転送は成功と言う状況をお知らせしていますが?

日付けに関してはタイプを記載していませんでしたね。
スミマセン。

8S 0

なので単なる8桁の数値になっています。

fdfxファイル上では
[F0003]
Length=9
Name=WAHSTD
Type=2
になっています。
テスト環境で修正したRPG PGが稼働しない 伊藤 毅 さん [ 5月13日(火) 16時40分 ]
本番環境で稼働しているRPG PGを機能追加のため、テスト環境にそのRPG PGをコピーして機能追加しました。
そのRPG PGで使用している全てのファイルもコピーしてEDTLIBLでテスト環境のLIBを一番上に追加してコンパイルしました。

テスト計画を立てて、テスト環境で使用するファイルにテストデータを作成しました。
RPG PGのロジックと関連する複数のファイルのデータは整合性が取れるようにテストデータを作成しています。
EDTLIBLでテスト環境のLIBを一番上に追加した環境でCALLでそのRPG PGを稼働させました。

しかし、更新されるべき複数のファイルでレコードが一切更新されていませんでした。
もしファイルのデータでエラーが発生した時はそのエラーがファイルに書き込まれる仕様ですが、
エラーは全く書き込まれていませんでした。

どうやらPGは何もせずにスルーして終了しているようです。
そこで本番環境で使用している現行のPGをテスト環境にコピーしてコンパイルしてテスト環境で稼働させて
みましたが、更新されるべき複数のファイルでレコードが一切更新されませんでした。
どうやらPGは何もせずにスルーして終了しているようです。

原因が何なのか、調べても全く分かりません。
何か原因を調べる方法等をご教授ください。
よろしくお願いいたします。


 
RE:テスト環境で修正したRPG PGが稼働しない T さん [ 5月15日(木) 9時52分 ]
RPGを直接CALLしているのでしょうか?
本番環境でもCLプログラムは使用していないのでしょうか?

RE:テスト環境で修正したRPG PGが稼働しない IKD さん [ 5月17日(土) 6時41分 ]
問題が発生したとき原因をさぐるのに
原因を想像することも手法のひとつですが
論理的に考えることが最も重要です。
本番環境でのブログラムの動作を
WRKACTJOBで調べてオープンしているファイルや
実行スタックや呼び出しスタックの表示も
調べて開発環境との違いを調べることが
まず必要です。
想像だけでは原因はつかめません。
RE:テスト環境で修正したRPG PGが稼働しない M さん [ 5月20日(火) 12時45分 ]
以下、一つのパターンとしてお考え下さい。

環境設定はEDTLIBLでライブラリリストを変更するだけですか?
現行ライブラリが設定してある場合もあります。
この場合EDTLIBLで先頭に追加しても、「CUR」のライブラリから参照します。

DSPLIBLで表示してみて、タイプのところに「CUR」があれば、
現環境の現行ライブラリになります。
CHGCURLIBLで変更はできます。
STRPDMでOPT 25&eq;ストリングの検索が出来なくなりました。 高橋 さん [ 6月17日(火) 13時26分 ]
ソースのストリング検索を行うと下記のエラーが出て検索できなくなりました。

STRPDMコマンドの処理中にエラーが起こった。

下記の検索キーを実行後にエラーが発生するようになってしまいました。
NAMVAR

ストリング検索ができるようにするにはどうしたらよいでしょうか?
RE:STRPDMでOPT 25&eq;ストリングの検索が出来なくなりました。 通りすがり さん [ 6月23日(月) 14時21分 ]
25で前回の検索文字をセットする際に括弧が文字化け起こしてエラーになってるようです

コマンドラインからFNDSTRPDMを使って
適当な文字列で検索すれば再度25での検索が使えると思います
RTVDIRINFによるIFSデータ一覧作成について 富澤 邦浩 さん [ 8月1日(金) 18時43分 ]
AS/400のシステム移行&バージョンアップ作業を行っています。
移行元 OSバージョン:V7R1M0 コード化文字セットID:5035
移行先 OSバージョン:V7R5M0 コード化文字セットID:5035

RTVDIRINFで移行元、移行先のIFSデータ一覧を作成して、もれなく移行されたことを確認しようとしています。

しかし、移行元でRTVDIRINFを実行すると、エラーメッセージ
「SQL0191 混合データまたはUTF-8データの形式が正しくありません。」
が多数出力されて、
「xxx個のオブジェクトが処理されました。yyy個のオブジェクトが処理されていません。」と、IFSデータ情報が正常出力されません。
移行先ではこのエラーメッセージは出ません。

移行元で CHGJOB CCSID(5026) を実行してからRTVDIRINFを再実行しましたが、結果は同じでした。

移行元でRTVDIRINFを正常に実行する方法はありますでしょうか。
よろしくお願いいたします。
RE:RTVDIRINFによるIFSデータ一覧作成について IKD さん [ 8月1日(金) 20時17分 ]
肝心のエラーの出ているIFSストリームのCCSIDは調べないのですか?
また RTVDIRINFは何のために使用しているのですか?
RE:RTVDIRINFによるIFSデータ一覧作成について 富澤邦浩 さん [ 8月2日(土) 13時23分 ]
返答ありがとうございます。
>肝心のエラーの出ているIFSストリームのCCSIDは調べないのですか?
もうしわけありません。
「エラーでRTVDIRINF閣下ファイルに出力されなかったストリームファイルのCCSID」は、AS/400では調べらないのでしょうか。
QSHIELLなど、他の方法で調べることになるのでしょうか。

>また RTVDIRINFは何のために使用しているのですか?
移行元AS/400にあったストリームファイルが、全て移行先AS/400にある。というエビデンス提出のためです。
RE:RTVDIRINFによるIFSデータ一覧作成について IKD さん [ 8月4日(月) 7時59分 ]
IFSのCCSIDはオプション「8= 属性の表示」で表示できます。CCSIDはオプション=13で変更することもできます。
RE:RTVDIRINFによるIFSデータ一覧作成について IKD さん [ 8月5日(火) 10時34分 ]
WRKLNK のオプションです。
RE:RTVDIRINFによるIFSデータ一覧作成について 富澤邦浩 さん [ 8月8日(金) 9時39分 ]
IKDさん、いろいろありがとうございました。
結局「SAV/RSTのログで確認する」ことになり、RTVDIRINFは使用しないことになりました。
「教えていただいたけれど、結局使わないことになった」が続いて、申し訳ないです。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目