($title_img_alt)

こちらからの投稿は、先頭に表示されているコメントへの返信になります。
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ファイルを開かなければ問題なく出来ました。
本当に色々とありがとうございました。

お名前

パスワード

メールアドレス

タイトル

ホームページ

アドレス

項目