2

私の会社には問題があります。クライアントからお金を引き出すために使用するアプリケーション サービス プロバイダーの 1 つから受け取ったNACHA ファイルが間違っているのではないかと疑っています。

私たちはすべての ACH 契約と法的なジャンボジャンボを整備しているので、ACH ネットワークの使用に問題はありません。また、銀行から問題が発生しているという知らせを受けていません。ファイルは販売情報から作成されていますが、まだサービス プロバイダーから請求されている一部のトランザクションが欠落しています。

私のタスク: 数か月分の NACHA ファイルを取り出して解読し、各顧客から引き出されたものと口座に入金されたものを見つけ、Access/Excel を介して販売データ、銀行取引明細書、およびその他の情報と比較します。データには MySQL を使用します。

この時点で、awk (または同様の Linux コマンド ライン ツール) が私が持っているツールです。私は「実際の」プログラミング ツールや実践に習熟していません。システムとデータベースの管理者です。私は自分の手を汚すことを恐れていません.C#などでこの種のものを読むプログラミング経験があまりありません。

私の最大の難点は、実際の NACHA ファイル形式を扱うことです。幅は 94 文字で、フィールドは位置のみで決定され、区切り記号はありません。awkの使用は(私の以前の経験では)フィールド区切り変数に依存しています。これは空白またはその他のものです...しかし、位置を介してフィールドを引き出すためにそれを使用することに失敗しました。各ファイルのレコード タイプが異なるため、awk のようなものを使用する必要があります。ファイルには 1、5、6、8、9 の 5 つの異なる行タイプがあります。タイプ 1 と 9 は外側のグループで、ヘッダー情報があります。 、および 5 と 8 はバッチ ヘッダー行です。タイプ 6 ラインは詳細です。私の最初の計画は、ヘッダー情報を変数に読み取り、それを各行に複製し、基本的に非正規化して、個々のトランザクションごとに 1 つのレコードを持つ大きなテーブル (または暫定的に CSV) にすることでした。

 [transaction data1, data2],[batch data1, data2],[file info1, info2, etc] 
 [transaction data1, data2],[batch data1, data2],[file info1, info2, etc]
 [transaction data1, data2],[batch data1, data2],[file info1, info2, etc]

これを継続的に実行できるツールを構築することを好みます。これは、毎日または毎週行うデータ監視の一部になるからです。

では、awk または同様のツールを使用して NACHA ファイルを非正規化するにはどうすればよいでしょうか。 仕事のためのより良いツールがあれば、それについて聞いてうれしいです. 残念ながら、オンラインで検索しても何も見つかりませんでした。

4

1 に答える 1