2016-08-31 7 views
1

私は、ルーチンがアクセスされたときに、誰によって誰がグローバル化したいのかというコードの "メンテナンス"アイデアに取り組んでいます。 $ t(+0)や$ ZNAMEを使って現在のルーチン名を引き出すことはできますが、現在のタグやラインオフセットはどうですか?私は追跡したいルーチンに標準的な行を入れることができる方法はありますか?タグとルーチン名を返すことはできますか?

答えて

1

ロブ、これらの情報は$ STACKから取得できます。

独自のトラッキング機能を呼び出す場合、あなたはこのような呼び出しスタック情報取得:zExecute + 2 ^%のStudio.General.1 1

を取る

W $STACK($STACK(-1)-1,"PLACE") 

を詳細な説明と例については、$ STACKのCachéObjectScript Referenceを参照してください。

+0

私はこれを動作させることができませんでした。ここに私のコードです: –

0

Rob! Auditをオンにしているだけかもしれませんか? InterSystemsCachéデータベース内のさまざまなユーザ活動のログを収集します。 documentation on Caché Auditを参照してください。

また、これは、DeepSeeで監査エントリに関する分析を調べるのに役立ちます。

+0

これはオプションの可能性があります。私はDBの人と確認する必要があります。彼らは標準的なワークフローではないことをしたくないので、私はあまり理想的ではありません。 –

0

ラベルを呼び出すルーチンは、次のClassMethodで見つけることができます。

write ##class(%SYSTEM.Process).CallingRoutine() 

あなたのラベルを呼び出しているデータベースだけでなく、

write ##class(%SYSTEM.Process).CallingDatabase() 
+0

私はこれを動作させることができませんでした。ここに私のコードです:

 routest1 ; d routest^ZUUJUNK q routest ; w "Routine: "_$$zCurrRou(),! \t w "Tag: "_$$zTagDefn(),! \t w "$ZNAME: "_$ZNAME,! \t w $t(+1),! \t w "Routine: "_##class(%SYSTEM.Process).CallingRoutine(),! \t w "Label: "_##class(%SYSTEM.Process).CallingDatabase(),! \t w "All together: "_$STACK($STACK(-1)-1,"PLACE"),! \t q 
クラス呼び出しはルーチンを一度返しましたが、今は何も返しません。 –

関連する問題