Visual Basic ScriptまたはPythonを使用して、解析自動化用の解析スクリプトを作成できます。解析自動化プロシージャには、解析を定義するスクリプト (Main.vbsaまたはMain.py) が含まれています。このスクリプトには、解析自動化プロシージャに追加する必要がある追加のスクリプトを含めることができます。解析スクリプトMain.vbsaまたはMain.pyには、デフォルトで次の要素が含まれています。

スクリプトコード 説明
On_Initialize(oContext) 並列評価を初期化します。このメソッドは、データ処理の前に1回呼び出されます。
On_RunAnalysisProcedure(oContext) 取得したデータ要素の実際の評価を実行します。
  • 並列評価: メソッドは、取得されたデータ要素ごとに1回呼び出されます。DataLinksコレクションで使用できるデータ要素は1つだけです。
  • 比較評価: メソッドは1回だけ呼び出されます。取得されたすべてのデータ要素は、DataLinksコレクションで利用できます。
On_Finalize(oContext) 並列評価を終了します。メソッドは、データ処理が終了した後に1回呼び出されます。

oContext転送パラメータは、解析自動化と解析スクリプトの間で情報を交換し、取得したデータ要素へのアクセスを提供します。

解析スクリプトmain.pyには、以下の要素も含まれています。

スクリプトコード 説明
Import DIAdem
dd = DIAdem.Application
DIAdemコマンド、変数、およびオブジェクトへのアクセスを可能にします。ほとんどのDIAdemコマンドはPython環境で使用できますが、すべてのDIAdemコマンドがPythonでテストされているわけではありません。

次の表に、データを処理するための最も重要なDIAdemコマンドとメソッドを示します。

スクリプトコード 説明
ApplicationSetLocale("japanese") 時間形式、用紙サイズ、余白など、各国特有の変数と数量を設定します。
oContext.DataLinks 取得したデータ要素が含まれています。
Navigator.LoadData データをロードします。
ChannelsToArray Pythonで処理するためにDIAdemチャンネルを配列に変換します。
ArrayToChannels Python配列をDIAdemチャンネルに変換します。
DataFileSave データを保存します。

解析スクリプトでは次のコマンドを使用できません。

  • 対話が必要なコマンド
  • DIAdemインタフェースを制御するコマンド
  • VIEWモードを制御するコマンド
  • Microsoft Officeまたは他のアプリケーションを制御するコマンド。

次に、Visual Basic Scriptの解析スクリプトのサンプルを示します。On_Initializeプロシージャは、転送パラメータからの結果パスが存在するかどうかを確認します。On_Run_AnalysisProcedureプロシージャは、解析のために要素をロードし、解析を実行し、結果をPDFで出力します。On_Initialize procedureは、On_InitializeおよびOn_Run_AnalysisProcedureが成功したかどうかをチェックします。

Sub On_Initialize(oContext) 
  Call ApplicationSetLocale("english")
  Dim ResultsPath
  If oContext.Procedure.Arguments.Exists("ResultsPath") Then
    ResultsPath = oContext.Procedure.Arguments.Item("ResultsPath").Value
    Call oContext.LogResult("Results path: " & ResultsPath)
  Else
    Call oContext.LogError("Results path missing")
  End If
End Sub 
  
Sub On_Run_AnalysisProcedure(oContext) 
  Call ApplicationSetLocale("english")
  Dim ResultsPath
  ResultsPath = oContext.Procedure.Arguments.Item("ResultsPath").Value
  Dim oMyDataLinks, iCount
  Set oMyDataLinks = oContext.DataLinks
  For iCount = 1 To oMyDataLinks.Count
    Call Navigator.LoadData(oContext.DataLinks.Item(iCount))
    ' Enter your analysis commands    
  Next
  Call Report.LoadLayout(oContext.Procedure.ScriptPath & "MyLayout.tdr")
  Call Report.Sheets.ExportToPDF(ResultsPath & & "MyResult.pdf",FALSE)
End Sub 

Sub On_Finalize(oContext) 
    Call oContext.LogResult("Init ok: " & oContext.Status.On_Initialize_Succeeded)
    Call oContext.LogResult("Analysis ok: " & oContext.Status.On_Run_AnalysisProcedure_Succeeded)
End Sub