テストデータの作成(仕訳を大量に作成したいとき) 36


テストデータを自動生成させて仕訳ファイルを作成する手順を説明します

テストデータを作成するスクリプトは「展開一番」インサイド処理支援ライブラリにあります
利用するスクリプトは「Gen7TD1IXJ2JXJ_Inc」「Gen7TD12JXJ_JDate」「Gen7TD12JXJ_SlipNo」の三つです
最初に、テストデータの種としての仕訳(以下この仕訳を基本仕訳という)を作成します、基本仕訳は仕訳ファイルと同じ構成とします、したがって、基本仕訳ファイルは法人番号を持ちます、また、仕訳定義ファイルも必要です

個別データフォルダに基本仕訳ファイル「IXJ_hhhh.txt」と、仕訳定義ファイル「DJ_hhhh.txt」を作成します
---------------------------------------------------------------------------------------------------
上記スクリプトは、二科目仕訳のほか一科目仕訳にも対応できるようになっています
複数の仕訳で一つの取引を記述するときは、伝票番号を同一にします
一科目仕訳では必ず2つ以上の同一伝票番号を持ちます、二科目仕訳の複合仕訳でも同様です
仕訳の種類にかかわらず、基本仕訳には伝票番号が必須となります、仕訳定義ファイルに「J_SlipNo」を含めて下さい
---------------------------------------------------------------------------------------------------
最初に、「Gen7TD1IXJ2JXJ_Inc」スクリプトを実行します、パラメタで指定した回数だけ基本仕訳が複写され、「JXJ_hhhh.txt」というファイルが作成されます
このとき、仕訳金額がランダムに(パラメタで指定した上限値内で)整数倍されます〔基本仕訳の複写1回単位では同じ倍率が適用されます〕
次に「Gen7TD12JXJ_JDate」スクリプトを実行します、パラメタで事業年度開始年と月を指定すると、事業年度開始月から1年分の会計日をランダムに生成し、それを上記ファイルの仕訳の会計日欄にセットします

このとき、伝票番号が直前と同じであれば前と同じ会計日がセットされます
会計日はランダムに生成されますが、閏年には対応していません〔2月29日は発生させません〕、必要であれば後で追加ないし書き換えるなどして下さい
次に、「Gen7TD12JXJ_SlipNo」スクリプトを実行します、パラメタで初期値と増分値を指定すると、指定値から伝票番号を計算し、それを上記ファイルの仕訳の伝票番号欄にセットします
このとき、(書き換える前の)伝票番号が直前と同じであれば前と同じ伝票番号がセットされます
最後に、「JXJ_hhhh.txt」ファイルを、「展開一番」の仕訳ファイル(XJ_hhhh)にリネームしてテストデータを完成させます(註)

(註)必要に応じて以下のスクリプトを利用します
ファイル名を変更するスクリプト...Ren12t1F
仕訳を会計日順にソートするスクリプト・・・Srt12XJQ_Tag , Srt12XJQ_2Tag
経過月を自動計算するスクリプト・・・Cal7JM12XJQ
仕訳ファイルの自動採番フィールドに連番をセットするスクリプト・・・Set7AutoNo12XJ
仕訳ファイルの指定欄をブランクにするスクリプト・・・Set7Blk12XJQ
仕訳ファイルの指定フィールドの値を指定フィールドにコピーするスクリプト・・・Cpy7mnT12XJ


<テストデータ(二科目仕訳)の作成例>
1.基本仕訳のフィールド並びを以下のように定義します
 会計日、会計伝票番号,借方科目、借方部門、借方金額、貸方科目、貸方部門、貸方金額、摘要
(註)
必須の項目である「経過月」は説明の便宜のため記載を省略しています

2.基本仕訳(以下の3行)を作成しファイル名を「IXJ_hhhh」とします、仕訳定義ファイル「DJ_hhhh」も作成します
-------------------------------------------------------
20121002,78,110,22,300,710,22,500,110売掛金/710売上
20121002,78,110,52,200,999,52,0,110売掛金/999諸口
20121212,85,100,10,300,110,22,300,100現金/110売掛金

-------------------------------------------------------

3.「Gen7TD1IXJ2JXJ_Inc(2,10)」スクリプトを実行します
--------------------------------------------------
20121002,78,110,22,2700,710,22,4500,110売掛金/710売上
20121002,78,110,52,1800,999,52,0,110売掛金/999諸口
20121212,85,100,10,2700,110,22,2700,100現金/110売掛金

20121002,78,110,22,600,710,22,1000,110売掛金/710売上
20121002,78,110,52,400,999,52,0,110売掛金/999諸口
20121212,85,100,10,600,110,22,600,100現金/110売掛金

-------------------------------------

パラメタで指定した数だけ基本仕訳が繰り返し複写され、ファイル「JXJ_hhhh」が作成されます(以後の処理はこのファイルを対象にします)
この例では3行×2回の6行の仕訳が生成されています
金額が、ランダムに整数倍(この例では10以内の9倍と2倍)されています


4.「Gen7TD12JXJ_JDate(2012,10)」スクリプトを実行します
--------------------------------------------------
20130603,78,110,22,2700,710,22,4500,110売掛金/710売上
20130603,78,110,52,1800,999,52,0,110売掛金/999諸口
20121127,85,100,10,2700,110,22,2700,100現金/110売掛金

20130217,78,110,22,600,710,22,1000,110売掛金/710売上
20130217,78,110,52,400,999,52,0,110売掛金/999諸口
20130818,85,100,10,600,110,22,600,100現金/110売掛金

-------------------------------------

パラメタで指定した年月から1年以内の年月日をランダムに発生させ会計日にセットします
この例では、事業年度開始月と2012年10月としているので、当該日から2013年9月までの会計日がセットされています
基本仕訳の伝票番号が同じ仕訳では、会計日に同じ値がセットされます

(註)
基本仕訳では、1行目と3行目が対応し、10月に計上した22部門の売掛金は12月に全額回収されたことになっていますが、会計日を自動生成させる過程で一部の情報が捨象されることに注意して下さい(原則として各仕訳は独立して処理されるため、売掛金の計上日と回収日が整合しません〔回収期間の情報が失われる〕)
仕訳の意味を含めてテストデータを作成したいときには、インサイド処理1110の「テストデータの作成(仕訳が正しく集計されるか確認したいとき)34」を参考にして下さい


5.「Gen7TD12JXJ_SlipNo(1000,1)」スクリプトを実行します
-------------------------------------------------------
20130603,1000,110,22,2700,710,22,4500,110売掛金/710売上
20130603,1000,110,52,1800,999,52,0,110売掛金/999諸口
20121127,1001,100,10,2700,110,22,2700,100現金/110売掛金

20130217,1002,110,22,600,710,22,1000,110売掛金/710売上
20130217,1002,110,52,400,999,52,0,110売掛金/999諸口
20130818,1003,100,10,600,110,22,600,100現金/110売掛金

-------------------------------------------------------
パラメタで指定した初期値と増分値から伝票番号を計算し伝票番号にセットします
基本仕訳の伝票番号が同じ仕訳では、伝票番号に同じ値がセットされます


6.作成されたテストデータ
--------------------------------------------------
20121127,1001,100,10,2700,110,22,2700,100現金/110売掛金
20130217,1002,110,22,600,710,22,1000,110売掛金/710売上
20130217,1002,110,52,400,999,52,0,110売掛金/999諸口

20130603,1000,110,22,2700,710,22,4500,110売掛金/710売上
20130603,1000,110,52,1800,999,52,0,110売掛金/999諸口

20130818,1003,100,10,600,110,22,600,100現金/110売掛金
--------------------------------------------------
会計日順にソートします
伝票番号を揃えたい場合は、5.のスクリプト実行前に会計日順にソートしておきます


<ユーザスクリプトの実行>
コマンドプロンプト、あるいは、RUBYの実行環境から、ユーザスクリプト(以下の例では「us」)を実行します
コマンドプロンプトの場合は、例えば、以下のようになります
c:\>ruby us.rb

ユーザスクリプトの作成方法
エディタなどでテキストファイル(内容は以下の2行)を作成し、「us.rb」の名前を付けて保存します
-----------------------------
require "t1_inside"
Gen7TD1IXJ2JXJ_Inc(2,10)
Gen7TD12JXJ_JDate(2012,10)
Gen7TD12JXJ_SlipNo(1000,1)
Ren12t1F("JXJ","XJ")
Srt12XJQ_Tag(0,"J_Date")
-----------------------------
この例では、会計日が、2012年10月1日から1年分のデータを生成します
なお、t1_Profile.txt ファイルが適切に設定され IXJ_hhhh.txt , DJ_hhhh.txt ファイルが正しく作成されていることが前提となります



Last Update 2020/05/13