0

EDIFACTには、たとえばフォーマットn..5として指定された数値データ要素があります。これらのフィールドをデータベーステーブルに格納します(英数字フィールドを使用して、チェックできるようにします)。可能なすべての有効な値を確実に保存できるように、db-fieldsはどのくらいの長さである必要がありますか?私はそれが少なくとも2つの追加の文字(小数点(またはコンマなど)とおそらく先頭のマイナス記号)であることを知っています。

関係する特定のガイドではなく、メッセージで使用するUN / EDIFACT標準に従ってテーブルを作成しているため、その標準に一致するすべてのものを保存できるようにしたいと考えています。しかし、数値データ要素に関するドキュメントは実際には単純ではありません(または、少なくともその部分を見つけることができませんでした)。

助けてくれてありがとう

4

2 に答える 2

1

私はついにUNECEWebサイトの情報をUN/EDIFACTルールパート4のドキュメントで見つけました。UN/EDIFACTルール第2.2章構文ルール。彼らはそれを直接言うことはありませんが、あなたがすべての部品をまとめると、あなたはそれを手に入れます。TOCエントリ10:数値データ要素値の表現を参照してください。

基本的には次のようになります。

10.1:小数点マーク
UNAで指定されているように(必要に応じて)小数点マークを送信する必要があります(コンマまたはポイント、常に1文字を入力)。データ要素の最大フィールド長を計算するときに、値の文字としてカウントされないものとします。

10.2:トライアド
セパレータートライアドセパレーターを交換して使用してはなりません。

10.3:符号
[...]値が負であると示される場合、送信の直前にマイナス記号(例:-112)を付ける必要があります。マイナス記号は、データ要素の最大フィールド長を計算するときに値の文字としてカウントされないものとします。ただし、送受信のキャラクターには余裕が必要です。

まとめると
、数字自体を除いて、数値フィールドに使用できる文字は、10進数の区切り文字とマイナス記号の2つ(オプション)のみです(どの文字の間にブランクも使用できません)。これらの2つの余分な文字は、フィールドの値の最大長に対してカウントされません。

したがって、数値フィールドの最大文字数は、数値フィールドの最大長に2を加えたものです。データベースで、として指定されたフィールドで送信されるすべての構文的に正しい値を格納できるようにするにはn..17、列を19文字にする必要があります。長い(のようなものvarchar(19))。指定されたフィールドに19文字を超える値を持つすべてのEDIFACTメッセージは、n..17すでに構文的に間違っており、拒否される可能性があるため、セマンティックチェックのためにDBに格納する必要はありません。

于 2012-05-07T17:52:47.607 に答える
0

同様の課題を解決するために、LiaisonのEDIメモ帳を使用しました。 https://liaison.com/products/integrate/edi/edi-notepad

EDIを検討している人は、少なくとも無料(エクスプレス)バージョンのEDIメモ帳を入手することをお勧めします。

製品の「ハイエンド」バージョン(EDI Notepad Productivity Suite)には、要素の最小/最大長とタイプをエクスポートできる「辞書ビューアー」ツールが付属しています。ビューアーツールからドキュメントをHTMLにエクスポートできます。また、ANSIX12も処理します。

于 2012-04-27T19:53:07.880 に答える