GET

LANSA Integrator

GET


GETコマンドは、リモート・ファイルの内容を受け取り、その内容をローカル・ファイルに保存します。FROMキーワードで指定されたファイルは、DATALINKモードを使用してリモートFTPサーバーから取り出されます。ローカル・サーバーは、TOキーワードで指定されたパスを使用してファイルを保管します。

 

 GET --------- FROM -----------------ファイル・パス------------------>

 

           >-- TO -------------------ファイル・パス------------------>

 

                                                           任意

 

           >-- FROM_ENCODING --------値---------------------->

 

           >-- TO_ENCODING ----------値---------------------->

 

           >-- CONVERT -------------- *NO ------------------------>

                                      *YES

 

           >-- RECORD_SIZE ---------- 1024 ----------------------->

                                      整数

 

           >-- RECORD_DELIMITER ----- *NONE ---------------------->

                                      *LF

                                      *CRLF

 

           >-- DATALINK ------------- *PASV ----------------------|

 

キーワード

FROM

リモートFTPサーバーからコピーするリモート・ファイルのパスを指定します。

「CHGDIR」コマンドも参照してください。

TO

ファイルがリモートFTPサーバーに配置されるローカル・ファイルのパスを指定します。

以下の「コメント/警告」を参照してください。

FROM_ENCODING

エンコーディングは、FROMファイルの内容を中間のUnicode文字列に変換する場合に使用されます。

省略値は、from.encodingプロパティ・リソースから取得されます。プロパティ・リソースがない場合、値の省略値はCp037になります。

このキーワードは、CONVERTが*YESに設定されている場合のみ使用されます。

TO_ENCODING

エンコーディングは、中間のUnicode文字列をターゲット・エンコーディングに変換する場合に使用されます。

省略値は、to.encodingプロパティ・リソースから取得されます。プロパティ・リソースがない場合、値の省略値はISO8859_1になります。

このキーワードは、CONVERTが*YESに設定されている場合のみ使用されます。

CONVERT

省略値は*NO変換です。

値が*YESの場合、各レコード・サイズの読み込み後、データは指定のターゲット・エンコーディングに変更され、FTPサーバーに送られます。

RECORD_SIZE

省略値は1024バイトです。

整数値を指定すると、ソース・ファイルで使用される読み込みサイズが指定されます。

「PUT」の「コメント/警告」を参照してください。

RECORD_DELIMITER

省略値は*NONEです。

値が必要なのは、キーワードCONVERTが*YESに設定されている場合のみです。この場合、変換された各レコード読み込みの最後に追加されるレコード・マーカーの終点として、*LF (ライン・フィード)または*CRLF (キャリッジ・リターン、ライン・フィード)のいずれかを指定できます。

詳細については、「キャリッジ・リターン、ライン・フィード、改行」を参照してください。

DATALINK

DATALINKキーワードにより、「コントロール」セッションの開始方法が決まります。省略値は*PASVです。

パッシブ・モード*PASVでは、FTPクライアントはサーバーに対する両方の接続を開始します。パッシブ・モードにより、FTPServiceはリモートFTPサーバーにPASVサブコマンドを送信します。FTPサーバーは開始したソケット・サーバーのポート番号を返し、このポート番号を使用してローカル・サーバーからのデータ転送チャネルが確立されます。これはパッシブFTPと呼ばれ、ファイアウォールの問題を回避する場合によく使用されます。パッシブFTPを使用すると、ローカル・サーバーは2番目の接続を確立します。これはリモートFTPサーバーに対する接続ではありません。ほとんどのファイアウォールでは、この2番目の接続によるリモートFTPサーバーへのファイル転送が許可されます(最初の接続の確立が許可される場合と同じです)。

ポート・モード*PORTにより、FTPServiceはソケット・サーバーを開始して、このソケット・サーバーがリスニングするポート番号をPORTサブコマンド経由でリモートFTPサーバーに知らせます。その後、リモートFTPサーバーはこのソケット・サーバーに接続し、データ転送チャネルが確立されます。

詳細については、「技術仕様」を参照してください。

 

コメント/警告

FROMファイルがIBM i の物理ファイルの場合は以下のようになります。

·         RECORD_SIZEは、ファイルの総レコード長に一致しなければなりません。

·         DSPFDコマンドを使用して総レコード長を決定します。

·         ファイルの全フィールドのタイプはCHARになります。

·         ファイル内の削除されたレコードはブランク・レコードとして読み込まれるため、RGZPFMコマンドを使用して、削除されたレコードをファイルから除外します。

通常のストリーム・ファイルも変換できます。

·         各レコード・サイズの読み込み後にデータが変換されます。

·         FROMファイルの内容は、RECORD_SIZE (*NOMAX)オプションを使用しない限り、シングル・バイト・エンコードになります。この場合、ファイルは1回の読み込みで処理され、ファイル内容全体に変換が適用されます。

·         詳細については、「キャリッジ・リターン、ライン・フィード、改行」を参照してください。

以下の例では、GETコマンドを使用して、リモート・ファイルの内容を受け取り、その内容をローカル・ファイルに保存します。

RDML

 

CHANGE FIELD(#JSMCMD) TO('GET TO(order.xml) FROM(/xmldata/order.xml)')

USE BUILTIN(JSM_COMMAND) WITH_ARGS(#JSMCMD) TO_GET(#JSMSTS #JSMMSG)

 

RDMLX

 

#jsmcmd := 'get from(' + #jsmfrom + ') to(' + #jsmto + ')'

use builtin(jsmx_command) with_args(#jsmhdle #jsmcmd) to_get(#jsmsts #jsmmsg)

 

ILE RPG

 

c                   eval      jsmcmd = 'get to(order.xml)'

c                             + ' from(/xmldata/order.xml)'

c                   callp     p_jsmcmd(jsmcmd:jsmsts:jsmmsg)