実行したスクリプトをログファイルに記録する 130

「展開一番」では、ユーザが必要とする会計処理を、スクリプト(単機能を担う小さなプログラム)を連続的に実行することで実現します
スクリプトを実行順に記述したテキストファイルがユーザスクリプトです
ユーザスクリプト(テキストファイル)を見れば、スクリプトをどの順番でどのような条件(パラメタの値)で実行するのかがわかります
「展開一番」Version 8.28 以降は、ログファイルに、スクリプトの実行年月日と時間、スクリプト名、指定したパラメタの値、ユーザスクリプト名を記録できるようにしました(註)
--------------------------------
(註)この機能を利用できる他のライブラリのVersionは以下のとおりです
t1_GC.rb Ver.8.04 以降
t1_inside.rb Ver.8.02 以降
t1_outside.rb Ver.9.03 以降
t1_costing.rb Ver.8.13


実行したスクリプトをログファイルに記録するには
「t1_Profile.txt」に、スクリプトの実行結果をログファイルに記録する機能を利用するかどうかを登録します
プロファイルに五番目のタグ名「e」 を追加し、設定内容を「1」にします
「t1_Profile.txt」の記載例
--------------------------------
a,e:\a2_mpacs_US\Case_11\
b,e:\a2_mpacs_US\Case_11\
c,1100
d,0
e,1
--------------------------------
ログファイルへの記録を行わないときは「e」タグの記載は不要です、従来通り a,〜d,となります
「1」以外の値を設定したときもログファイルへの記録は行いません
ログファイルは「OpeLog_hhhh.txt」(hhhhは法人番号、プロファイの「c」タグで指定する)で、記録時に当該ファイルがなければ自動的に作成されます、あれば追記されます
上記のログファイル名は「Log2LogOpe」で利用するファイルと同じです

ユーザスクリプトが以下のようであれば
--------------------------------
Log2LogOpe("試算表の作成")
MkF1YA2ZTB()
Sel9MA1XJ2WXJ_SetV("m","J_M",0,0)
MkF1WXJ2WSumDC()
Pst1WSumDC2ZTB(0,0)
Cal7Bal12ZTB(3)
Sel9MA1XJ2WXJ_SetV("m","J_M",1,13)
MkF1WXJ2WSumDC()
Pst1WSumDC2ZTB(1,0)
Cal7Bal12ZTB(6)
Bal7CgF12ZTB()
--------------------------------

ログファイル(OpeLog_hhhh.txt)は以下のようになります
--------------------------------
2021/09/24 07:48:08 [ 試算表の作成 ] US_41.rb
2021/09/24 07:48:08 [ MkF1YA2ZTB... ] US_41.rb
2021/09/24 07:48:08 [Sel9MA1XJ2WXJ_SetV...m,J_M,0,0 ] US_41.rb
2021/09/24 07:48:08 [ MkF1WXJ2WSumDC... ] US_41.rb
2021/09/24 07:48:08 [ Pst1WSumDC2ZTB...0,0 ] US_41.rb
2021/09/24 07:48:08 [ Cal7Bal12ZTB...3 ] US_41.rb
2021/09/24 07:48:08 [Sel9MA1XJ2WXJ_SetV...m,J_M,1,13 ] US_41.rb
2021/09/24 07:48:08 [ MkF1WXJ2WSumDC... ] US_41.rb
2021/09/24 07:48:08 [ Pst1WSumDC2ZTB...1,0 ] US_41.rb
2021/09/24 07:48:08 [ Cal7Bal12ZTB...6 ] US_41.rb
2021/09/24 07:48:08 [ Bal7CgF12ZTB... ] US_41.rb
--------------------------------


Memo
「実行したスクリプトをログファイルに記録する」機能を追加するために、「展開一番」を構成するスクリプトのほとんどを修正しました(註1)
スクリプトの最後に以下の2行を追加しています
--------------------------------
$script_name="(A)"+"..."+(B1)+","+(B2)+...
Log3RecScriptName()
--------------------------------
(A)は自身のスクリプト名
(B1),(B2)
はパラメタの値(パラメタの数だけ続きます、なければ +"..."で終わり)

グローバル変数に自身の名前をセットし、次の「Log3RecScriptName()」スクリプトでこのグローバル変数に年月日等のデータを付加してログファイルに書き出しています(註2)


(註1)
例外は、汎用ライブラリに属するスクリプトと「Log2LogOpe(vs)」スクリプトです
「Log3RecScriptName()」スクリプトは、汎用ライブラリに置かれています
(註2)
Log3RecScriptName()」スクリプトは、プロファイルにある「e」タグの判定やログファイルがないときにこれを作成する処理も行っています


Last Update 2022/01/20