変換設定定義 (ecedi5115s000)

セッションの目的: 送信メッセージの変換のためのフィールド、順序およびオプションを記録します。

注: 

このセッションは、このセッションの動作を阻害する他のセッション、または、このセッションが妨害する可能性のある他のセッションと同時に実行されないよう、保護されています。

組織

EDI 通信で使用する標準 (ANSI X12、UN/EDIFACT、VDA など) のセットを表すコード

記述

コードの記述または名称

EDI メッセージ

アプリケーションによってサポートされる受信メッセージまたは発信メッセージ。これらのメッセージは有効 (会社内で実際に使用) または無効にできます。

記述

コードの記述または名称

方向

EDI メッセージの方向

フィールドタイプ

ASCII ファイル形式

Note: 

変換設定は、フィールドがフィールド区切り記号で区切られているファイル、または固定長のフィールドを持つファイルについて作成することができます。

変換設定コード

変換設定を識別するコード

記述

コードの記述または名称

宛先

変換設定 (関係) (ecedi5112m000) セッションで定義された、発信メッセージのフィールドのソース

フィールド

フィールド名。例: tdsls400.ofbp。発信変換設定では定数が使えます。定数は二重引用符 (") で始める必要があります。二重引用符でくくったテキストはすべてメッセージに取り込まれます。

Note: 

テキスト文字列で二重引用符を使う場合は、二重引用符を重ねて入力します。たとえば、""ABC"" と入力すると "ABC" と出力されます。

フィールド

コードの記述または名称

連番

フィールドの連番。同じフィールドを複数回含めることができます。変換設定にフィールドが一度しか表示されない場合、このフィールドを 0 か 1 に設定することができます。フィールドが変換設定定義に複数回表示される場合、変換設定定義でフィールドが発生するたびに、連番を増分 1 として増加させることができます。

処理順序

フィールドが処理される順序

レベル

変換設定 (関係) (ecedi5112m000) セッションで定義されたレベル

記述

コードの記述または名称

開始位置

ラインにおけるフィールドの位置

Note: 

ネットワーク (ecedi0120s000) セッションの [フィールドタイプ] フィールドが 「固定長」 である場合は、フィールドの物理的な開始位置を入力する必要があります。ネットワーク (ecedi0120s000) セッションの [フィールドタイプ] フィールドが 「区切り」 である場合は、1 から始まるフィールド番号を入力する必要があります。

要素

インデックスフィールドのインデックス要素、または文字列変数の文字列における開始位置

インデックスフィールドの例

文字列変数の場合、文字列における開始位置を指定することができます。このフィールドは、[長さ] フィールドと組み合わせることにより、部分文字列を指定することができます (例: 「ABCDEFGHIJKLMNOP」 という文字列について、長さ 5 を持つ 3 という値により 「CDEFG」 が出力されます)。

フィールド tdsls400.disc (標準の階層数 = 5 レベル)
レベル 1 10
  2 15
  3 8
  4 5
  5 7

値を 0 にすると、全フィールド: 010015008005007 が出力されます。このオプションは、内部通信用にのみ使用します。値を 1 および 3 にすると、要素: 010 および 008 のみが出力されます。この出力は、このフィールドが外部通信にも使用できることを意味します。

長さ

フィールドの物理的な長さ

次レコードを読取

このチェックボックスがオンの場合、受信メッセージに対してはこのレベルで新規レコードが読み取られ、送信メッセージに対してはフィールドに属するテーブルの新規レコードが読み取られます。このチェックボックスがオフの場合、新規レコードは読み取られず、現在のレコードが引き続き有効となります。

Note: 

このフィールドには、フィールドの内容を処理するために新規レコードを読み取る必要があるかどうかが示されます。ユーザは、このフィールドの値にもとづき、同じファイルから新しいラインを読み取る時期を決定することができます。

反復レベル

フィールド処理後のカーソル移動位置を示す連番。このフィールドが使用されるのは、このレコードが反復レベルの最終フィールドに対するもの、または変換設定の最終フィールドに対するものである場合のみです。

たとえば、ASCII ファイルのデータを含むテキストフィールドを、オーダヘッダに反復して入力したいとします。最後のテキストフィールドへの入力が完了すると、カーソルは [連番] フィールドを使って、連番が 3 のフィールドに戻ります。キーと 3 つのテキストフィールドが、レベル 2 の各ラインに入ります。

フィールド レベル 連番 反復レベル
オーダ No. 1 1  
参照 1 2  
テキストフィールド 2 3  
テキストフィールド 2 4  
テキストフィールド 2 5 3
適合しないキー

キーが有効でない場合、またはキーが変更された場合のカーソルの移動位置を示す連番。このフィールドは、新規レコードが 「Yes」 になっている場合のみ記入します。

例 1 - 反復処理

すべてのテキストフィールドの処理が終わると、顧客番号が読み取られます。レベル 2 は反復です。

フィールド レベル 順序 戻り 戻り 新規
反復 キーレコード        
オーダ No. 1 1      
参照 1 2      
テキストフィールド 2 3   6 yes
テキストフィールド 2 4      
テキストフィールド 2 5 3    
顧客 1 6      

例 2 - 連続処理

すべてのオーダラインの記入後に (レベル 2)、新規オーダを挿入することができます (レベル 1)。

フィールド レベル 順序 戻り 戻り 新規
反復 キーレコード        
オーダ No. 1 1     yes
参照 1 2      
顧客 1 3      
品目 2 4   1 yes
数量 2 5      
納期 2 6 4    
レコード書込

このチェックボックスがオンの場合、出力式の結果に応じて、受信メッセージ用のフィールドの処理後に、関連するテーブルにレコードを追加する必要があります。フィールドの宛先 (オーバーヘッド、ヘッダ、ライン) により、メッセージを保存するテーブルが決定されます。

例 1

フィールド 宛先 レコード書込
オーダ No. ヘッダ  
参照 ヘッダ  
顧客 ヘッダ yes
品目 ライン  
数量 ライン  
納期 ライン yes

同じ宛先に対する書込アクション後に処理されたフィールドは、関連テーブルには追加されません。同じレコード (たとえばオーダライン) について複数の書込アクションを開始することはできません。宛先は階層構造になっているため、LN は、上位の宛先がすべて書き込まれたかどうかを確認します。上位の宛先が書き込まれていない場合は、指定された宛先 (より下位の宛先) に書き込む前に、該当する宛先 (書込のないその上位の宛先) に書き込まれます。階層構造は次のとおりです。

  • オーバーヘッド
  • ヘッダ
  • ライン

例 2

フィールド 宛先 レコード書込
オーダ No. ヘッダ  
参照 ヘッダ  
顧客 ヘッダ  
品目 ライン  
数量 ライン  
納期 ライン yes

まだヘッダが書き込まれていないので、ヘッダが最初に書き込まれ、その後にラインが続きます。オーバヘッドがない場合は、ヘッダの前にラインに書き込まれます。

評価

評価式のコード。この式は、そのフィールドをメッセージに含めるかどうかを決定します。この式は論理式で、結果は真または偽で表されます。このフィールドのデフォルト値は 1 で、真です。この式は、そのフィールドがメッセージに配置される前に実行されます。つまり、関連する読取、書込アクションは常に実行されます。実際には、この式は等式です。たとえば購買オーダ上の [倉庫] フィールドの場合、式は次のようになるでしょう: strip((tdpur400.cwar) <> "" この式は、倉庫フィールドが記入されていない場合は、真です。

以下は優先順位の高い順での、演算子の一覧です。

  • ()
  • - (reverse sign)
  • * / \
  • &
  • + - (add subtract)
  • = > < <> <= >=
  • NOT
  • AND
  • OR
  • ?:

式には、次の定数を使うことができます。

PI 3.1415926535..
TRUE 常に真
FALSE 常に偽

式には、関数を使うことができます。

次のような数値範囲を使用することもできます。a IN [10,20] は、a>=20 AND a<=30 に等しく、a IN [10,20][30,40][50,60] は、a>=10 AND a<=20 OR a>=30 AND a<=40 OR a>=50 AND a<=60 に等しい。

算術例

() 括弧 (優先順位)  
  反転記号 (引数が必要) a=-b
* 乗算 3*5=15
/ 除算 6/2=3
\ 除算後の余り 8\3=2
& 文字列の連結 "A"&"B"="AB"
+ 追加 2+3=5
  引き算 3-2=1

関係式の (比較用) 例

= or EQ 等しい 3=5 は偽
<> or NE 等しくない 3<>5 は真
> or GT より大きい 3>5 は偽
< or LT より小さい 3<5 は真
>= or GE より大きいまたは等しい 3>=5 は偽
<= or LE より小さいまたは等しい 3<=5 は真

論理式の例

AND and (ともに真) a=b AND b=c
OR or (いずれかが真) a=b OR a=c
NOT not (真ではない) NOT (a=b AND b=c)

その他の演算子

「condition?true:false」 <condition> が真の場合、<true> が実行され、その他の場合は <false> が実行されます (<condition> の優先順位は最も低いので、必ず括弧で囲みます)。

関数

abs(N) N の絶対値を算出します。
acos(N) N がコサインである角度 (ラジアン) を算出します。
asc(S) S の文字の ASCII 値の合計を算出します。asc("ABC")=65+66+67=198
asin(N) N がサインである角度 (ラジアン) を算出します。
atan(N) N がタンジェントである角度 (ラジアン) を算出します。
chr(N) N が ASCII 値である文字を生成します。chr(65)="A"
cos(N) 角度 N (ラジアン) に対するコサインを算出します。
cosh(N) 角度 N (ラジアン) に対する双曲線を生成します。
date() 現在の日付番号を生成します。
date(J,M,D) D、M および J で表される日付における日付番号を生成します。
exp(N) 2.718128.. の N 乗を算出します。
int(N) N の整数 (切り捨て) を算出します。
len(S) S における文字数を算出します。len("ABC")=3
log(N) N の自然対数を算出します。
log10(N) N の 10-対数を算出します。
max(N,M) N または M の大きい方の値を算出します。
min(N,M) N または M の小さい方の値を算出します。
pos(S,T) S において T が発現する最初の位置を求めます。pos("ABCDEFEF","EF")=5
pow(N,M) N の M 乗を算出します。
round(N,D,M) D 十進数に丸めた N の値を求めます。M=0 の場合、N は切り捨てらます。round(1.99,2,0)=1.00M=1 の場合、N は四捨五入されます。round(1.49,2,1)=1.00、round(1.50,2,1)=2.00M=2 の場合、N は切り上げらます。round(1.01,2,2)=2.00
rpos(S,T) S において T が発現する最後の位置を求めます。rpos("ABCDEFEF,"EF")=7
sin(N) 角度 N (ラジアン) に対するサインを算出します。
sinh(N) 角度 N (ラジアン) に対する双曲線を生成します。
sqrt(N) N の非負平方根を求めます。
str(N) N の文字列を作成します。str(1.04)="1.04"
strip(S) 後にスペースを付けずに S を返します。
tan(N) 角度 N (ラジアン) に対するタンジェントを算出します。
tanh(N) 角度 N (ラジアン) に対する双曲正接を生成します。
time() UUMM のフォーマットで現在の時刻を算出します。
val(S) S の数値を生成します。val("1.04")=1.04
記述

コードの記述または名称

割当

割当式のコード。式の結果は ASCII ファイル (送信メッセージ) に書き込まれ、そのファイルは LN アプリケーション (受信メッセージ) 内に更新されます。たとえば、計画納期計画入庫日の 2 日前の値に設定したい場合、次の割当式を計画納期フィールドに割り当てることができます。tdsls400.prdt - 2

Note: 

割当式で参照するテーブルフィールドは、割当式を適用するフィールドより先に処理する必要があります。割当式で参照するフィールドは、変換設定定義で定義したとおり、より低い処理順序である必要があります。たとえば先述の例では、フィールド tdsls400.prdt は、変換設定定義で定義したとおり、フィールド tdsls400.ddat より低い処理順序でなければなりません。

変換テーブル

フィールド変換に使用される変換テーブル

変換テーブルがない場合のアクション

発信メッセージの変換中にエラーが発生した場合に取られるアクション。変換テーブルにフィールドが見つからないとエラーになることがあります。

Note: 

選択された値は処理セッションでサポートされている必要があります。

テキストセグメント

テキストフィールド内のテキストセグメントの最大数

Note: 

メッセージのテキストは特別な構造を持っており、別に処理する必要があります。各テキストは、多数のフィールドで構成される多数のセグメントからできているためです。

テキストセグメント別テキストフィールドの最大数

テキストセグメント内のフィールドの最大数

Note: 

メッセージのテキストは特別な構造を持っており、別に処理する必要があります。各テキストは、多数のフィールドで構成される多数のセグメントからできているためです。

開始位置測定子

最初の測定子の開始位置。ERP の EDI におけるコード変換では、コード ID が必要な場合があります。コード ID は、付加的なデータ仕様の変換を可能にする、コード変換で使用する測定子です。コード ID は、変換設定定義の最初の測定子の位置内に転送されます。

Note: 

ネットワーク (ecedi0120s000) セッションの [フィールドタイプ] フィールドが 「固定長」 である場合は、フィールドの物理的な開始位置を入力する必要があります。ネットワーク (ecedi0120s000) セッションの [フィールドタイプ] フィールドが 「区切り」 である場合は、1 から始まるフィールド番号を入力する必要があります。

測定子の長さ

測定子の物理的な長さ

Note: 

この値は、EDI パラメータ (ecedi0100s000) セッションで、フィールドタイプが 「固定長」 と定義されている場合にのみ入力できます。

デフォルト測定子

メッセージに測定子が使われていない場合に使用する値

Note: 

送信品目を 「品目コードシステム」 テーブルによって品目コードとともに変換したい場合は、[品目コードシステム] フィールドの値をここで入力できます。「品目コード ID」 テーブルを使って、この測定子の値をメッセージで使用する値に変換することができます。ここで入力した値は、取引先にサポートされた EDI メッセージ (ecedi0111s000) セッションの [品目コードシステム] フィールドに記入することで、無効にすることができます。

変換テーブル

測定子の変換に使用される変換テーブル

変換テーブルがない場合のアクション

発信メッセージの変換中にエラーが発生した場合に取られるアクション。変換テーブルで測定子が見つからないとエラーになることがあります。

フィールド

この記述フィールドおよび対応する EDI メッセージ内のデータ要素に対するマッピング情報。この記述フィールドは、参考用およびレポート用にのみ使用されます。

測定子 1

最初の測定子および対応する EDI メッセージ内のデータ要素に対するマッピング情報

測定子 2

2 番目の測定子および対応する EDI メッセージ内のデータ要素に対するマッピング情報