READ

LANSA Integrator

READ


READコマンドは、指定したFILEを処理して、作業リストに情報を返します(SVTABLEキーワードを使用しない場合)。

ローカル・ファイル・システムからファイルを読み込むには、FILEキーワードのみが必要です。

FTPプロトコルを使用してリモート・ファイル・システムからファイルを読み込むには、HOSTキーワードと適切なUSER、PASSWORD、およびリモート・サーバーのアクセス詳細が必要です。

また、サービスでは、読み込まれたバイト内容からUnicode内容への変換に適用されるエンコーディングを決定し、Unicodeデータを保管する必要があるかどうかを判断します。

 

                                                           必須

 

 READ ---------- FILE -----------ファイル・パス---------------------->

 

                                                        条件付

 

             >-- HOST -----------ホスト:ポート---------------------->

 

             >-- USER -----------値-------------------------->

 

             >-- PASSWORD -------値-------------------------->

 

             >-- NAMEFMT --------なし--------------------------->

                                  0

                                  1

 

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

                                  *PORT

 

             >-- MODE ----------- *BINARY ------------------------>

                                  *ASCII

 

                                                           任意

 

             >-- CONTENT -------- *CSV --------------------------->

                                  *TSV

                                  *SV

 

             >-- SEPARATOR ------値-------------------------->

                                  *COMMA

                                  *SEMICOLON

                                  *TAB

                                  *TILDE

 

             >-- ENCODING ------- *DEFAULT ----------------------->

                                  値

 

             >-- SVROW ----------値-------------------------->

 

             >-- SVROWLIMIT -----値-------------------------->

                                  *NONE

                                  *LIST

                                  *AVAILABLE

 

             >-- SVMODE --------- *NONE -------------------------->

                                  *IGNORE

                                  *USE

 

             >-- SVHEAD ---------値-------------------------->

 

             >-- SVLABEL --------値-------------------------->

 

             >-- SVTABLE --------テーブル名--------------------->

 

             >-- SVCOLUMN -------値-------------------------->

 

             >-- NUMBERFORMAT --- *NONE -------------------------->

                                  *DEFAULT

                                  *CLIENT

                                  *USERAGENT

                                  値

 

             >-- ARCHIVE --------ファイル・パス----------------------|

 

キーワード

FILE

パスとファイル名を指定します。

この値は相対パスまたは絶対パスになります。パスが相対パスの場合、現在の作業ディレクトリはJSMインスタンス・ディレクトリになります。

HOST

このキーワードは、リモート・ファイル・システムから読み込む場合にのみ必要です。

接続先のFTPサーバーを指定します。FTPサーバーは、IPアドレスnnn.nnn.nnn.nnn:ポート、またはドメイン名で指定できます。

IPアドレスにポート番号を指定しない場合、キーワードSECURE (*IMPLICIT)を使用しない限り省略値21が使用されます。キーワードSECURE (*IMPLICIT)が使用される場合の省略値のポート値は990です。

USER

リモート・ファイル・システムから読み込む場合にのみ必要です。

PASSWORD

リモート・ファイル・システムから読み込む場合にのみ必要です。

USERキーワードに対応するデータベース・サーバーのパスワード

NAMEFMT

リモート・ファイル・システムから読み込む場合にのみ有効です。

値が0の場合、IBM i のパス名形式library/file.memberが使用されます。

値が1の場合、Windowsのパス名形式/directory/directory/fileが使用されます。

DATALINK

リモート・ファイル・システムから読み込む場合にのみ有効です。

可能な値は*PASV (パッシブ)または*PORT (ポート)です。*PASVが省略値です。

MODE

リモート・ファイル・システムから読み込む場合にのみ有効です。

省略値は*BINARYです。必要に応じて値*ASCIIを使用します。

CONTENT

省略値では、指定したファイルは*CSVで処理されます。

あるいは、タブ区切り変数(*TSV)、または区切り文字キーワードに指定した変数区切り(*SV)で内容を処理することができます。区切り文字変数を含む内容を処理する場合の追加処理オプションについては、「SEPARATOR」「SVHEAD」「SVMODE」「SVTABLE」「SVCOLUMN」「SVLABEL」「NUMBERFORMAT」「TRIM」「TRUNCATE」の各キーワードを参照してください。

内容の保管に使用される作業リストは、データの保管に適した列数で定義する必要があります。

SEPARATOR

このキーワードでは、区切り文字として使用する文字を指定します。内容が*CSVまたは*TSVで表される場合、区切り文字を定義する必要はありません。

SEPARATORキーワードがあり、CONTENTキーワードを指定しない場合、CONTENT(*SV)が前提となります。

詳細については、「SEPARATOR」を参照してください。

ENCODING

ENCODINGは、バイト内容からUnicode文字列への変換に適用されるエンコーディングを指定する場合に使用されます。ENCODINGキーワードの省略値は*DEFAULTです。

詳細については、「ENCODING」を参照してください。

SVROW

SVROWキーワードは、データ・レコードの開始行を指定する場合に使用されます。

詳細については、「SVROW」を参照してください。

SVROWLIMIT

SVROWLIMITキーワードは、読み込むデータ・レコードの数を指定する場合に使用されます。可能な値は*NONE、*LIST、*AVAILABLE、または整数値です。

詳細については、「SVROWLIMIT」を参照してください。

SVMODE

SVMODEキーワードは、区切り値データを処理するコンテンツ・ハンドラーとサービスで使用され、インバウンド区切り値データの処理方法を示します。

詳細については、「SVMODE」を参照してください。

SVHEAD

オプションのキーワードSVHEADは、区切り値データのフィールド・レイアウトの記述に使用されます。

詳細については、「SVHEAD」を参照してください。

SVTABLE

SVTABLEキーワードがある場合、現在のデータベース接続を使用して区切り変数ファイル・データが指定のテーブルに挿入されます。SVTABLEに値を指定しない場合、ファイル・データは作業リスト引数に返されます。

詳細については、「SVTABLE」を参照してください。

SVCOLUMN

SVCOLUMNが使用されるのは、SVTABLEキーワードと組み合わせる場合のみです。SVCOLUMNは、値サービスを区切り、リレーショナル・データベースの列を定義します。sv.column.{値}を使用して、サービス・プロパティ・リソースの検索が行われます。

詳細については、「SVCOLUMN」を参照してください。

SVLABEL

SVLABELが使用されるのは、SVTABLEキーワードと組み合わせる場合のみです。SVLABELは、データベース・テーブル挿入の場合は最初の列値として、データベース・テーブル選択の場合はwhere制約としてキーワード値を含める場合に使用されます。

詳細については、「SVLABEL」を参照してください。

NUMBERFORMAT

オプションのキーワードNUMBERFORMATは、小数区切り文字が小数点文字「.」ではない数字文字列を処理する場合に使用されます。

詳細については、「NUMBERFORMAT」を参照してください。

ARCHIVE

オプションのキーワードARCHIVEを使用して、内容の保管に使用されるパスとファイル名を指定します。

詳細については、「ARCHIVE」を参照してください。

 

RDML

 

DEF_LIST NAME(#WRKLIST) FIELDS(#LINENUM #PARTNUM #PARTDSC #PARTAMT #PARTQTY) TYPE(*WORKING)

 

USE BUILTIN(JSM_COMMAND) WITH_ARGS('READ FILE(order.csv) SERVICE_LIST(LINENUM,PARTNUM,PARTDSC,PARTAMT,PARTQTY)') TO_GET(#JSMSTS #JSMMSG #WRKLIST)

 

または

 

USE BUILTIN(JSM_COMMAND) WITH_ARGS('READ FILE(order.csv) SEPARATOR(*TILDE) SERVICE_LIST(LINENUM,PARTNUM,PARTDSC,PARTAMT,PARTQTY)
') TO_GET(#JSMSTS #JSMMSG #WRKLIST)

 

または

 

USE BUILTIN(JSM_COMMAND) WITH_ARGS('READ FILE(order.csv) SVTABLE(ORD) SVCOLUMN(ORDER) SVLABEL(23)') TO_GET(#JSMSTS #JSMMSG)

 

RDMLX

 

#jsmcmd := 'read file(' + #jsmfile + ') content(*sv) separator(' + #separator + ')'

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

 

ILE RPG

 

 * NB: This MUST match the structure xml provided to the JSM Server! 

                                                                     

d svlist          ds                  occurs(svocur)

d  linenum                       7s 0                                

d  partnum                       7a                                  

d  partdsc                      30a                                  

d  partamt                       9s 2                                

d  partqty                       7s 0                                

                                                                     

d svocur          c                   const(50)                       

d svsize          c                   const(%size(svlist))            

d svcount         s              9p 0 inz(0)  

                                                                    

c                   eval      jsmcmd = 'READ'                       

c                             + ' FILE(' + %trim(svfilepath) + ')'  

c                             + ' SVHEAD(ORDER)'                    

c                             + ' SERVICE_STRUCTURE(SV.SVOrderLine)'

c                             + ' OCCURS(' + %char(svocur) + ')'    

c                             + ' SIZE('   + %char(svsize) + ')'    

                                                                    

c                   eval      %occur(svlist) = 1                    

c                   eval      bytelength = svocur * svsize          

                                                                    

c                   callp     p_jsmcmdx(jsmcmd:svlist:bytelength:   

c                                       jsmsts:jsmmsg)              

                                                                   

c                   if        jsmsts = 'OK'                        

c                   callp     p_jsmbytelngth(bytelength)         

c                   if            (bytelength > 0)               

c                             and (bytelength <= svocur * svsize)

c                   callp     p_jsmbyterecv(svlist)   

c                   eval      svcount = bytelength / svsize 

c                   endif                                           

c                   endif