データ・プロバイダ・タイプ: Essbase、Planning
HypExecuteCalcScriptEx()は選択されたビジネス・ルールを起動します。
HypExecuteCalcScriptEx(vtSheetName, vtCubeName, vtBRName, vtBRType, vtbBRHasPrompts, vtbBRNeedPageInfo, vtRTPNames(), vtRTPValues(), vtbShowRTPDlg, vtbRuleOnForm, vtbBRRanSuccessfully, vtCubeName, vtBRName, vtBRType, vtbBRHasPrompts, vtbBRNeedPageInfo, vtbBRHidePrompts, vtRTPNamesUsed, vtRTPValuesUsed )
ByVal vtSheetName As Variant
ByVal vtCubeName As Variant
ByVal vtBRName As Variant
ByVal vtBRType As Variant
ByVal vtbBRHasPrompts As Variant
ByVal vtbBRNeedPageInfo As Variant
ByRef vtRTPNames() As Variant
ByRef vtRTPValues() As Variant
ByVal vtbShowRTPDlg As Variant
ByVal vtbRuleOnForm As Variant
ByRef vtbBRRanSuccessfuly As Variant
ByRef vtCubeName As Variant
ByRef vtBRName As Variant
ByRef vtBRType As Variant
ByRef vtbBRHasPrompts As Variant
ByRef vtbBRNeedPageInfo As Variant
ByRef vtbBRHidePrompts As Variant
ByRef vtRTPNamesUsed As Variant
ByRef vtRTPValuesUsed As Variant
vtSheetName: 入力パラメータ; 関数を実行するワークシートの名前。vtSheetNameがNullまたはEmptyの場合、アクティブ・ワークシートが使用されます。
vtCubeName: 入力パラメータ; ビジネス・ルールに関連付けられているキューブ名(Planningの場合はプラン・タイプ)
vtBRName: 入力パラメータ; 実行するビジネス・ルールの名前
vtBRType: 入力パラメータ; 実行するビジネス・ルールのタイプ
vtbBRHasPrompts: 入力パラメータ; ビジネス・ルールにRTPがあるかどうかを示すブール値
vtbNeedPageInfo: 入力パラメータ; ページ情報の実行がビジネス・ルールで必要かどうかを示すブール値(この情報は、HypListCalcScriptsExか、HypExecuteCalcScriptExの以前の実行に基づきます)
vtRTPNames: 入力パラメータ; ビジネス・ルールに関連付けられているRTP名の配列
vtRTPValues: 入力パラメータ; RTP名に対応するRTP値の配列
vtbShowBRDlg: 入力パラメータ; 「ビジネス・ルール」ダイアログを表示してユーザーにビジネス・ルールを選択させるか(True)、ビジネス・ルールを自動的に実行するか(False)を示すブール値。Trueに設定されると、ビジネス・ルールに関連するすべての入力パラメータは無視されます。推奨: 最初にビジネス・ルールを実行するときはTrueに設定し、その後はFalseに設定して同じビジネス・ルールの実行を自動化します。
vtbRuleOnForm: 入力パラメータ; アクティブ・シート上で開いているフォームにビジネス・ルールを関連付けるかどうかを示すブール値
vtbBRRanSuccessfully: 出力パラメータ; 最後のビジネス・ルールが正常に実行されたかどうかを示すブール値
vtCubeName: 出力パラメータ; 最後に実行されたビジネス・ルールに関連付けられているキューブ名(Planningの場合はプラン・タイプ)
vtBRName: 出力パラメータ; 最後に実行されたビジネス・ルールの名前
vtBRType: 出力パラメータ; 最後に実行されたビジネス・ルールのタイプ
vtbBRHasPrompts: 出力パラメータ; 最後に実行されたビジネス・ルールにRTPがあるかどうかを示すブール値
vtbBRNeedPageInfo: 出力パラメータ; 最後に実行されたビジネス・ルールでページ情報の実行が必要かどうかを示すブール値
vtbBRHidePrompts: 出力パラメータ; 最後に実行されたビジネス・ルールに非表示のRTPがあるかどうかを示すブール値
vtRTPNames: 出力パラメータ; 最後に実行されたビジネス・ルールの実行に使用されたRTP名の配列
vtRTPValues: 出力パラメータ; 最後に実行されたビジネス・ルールに関連付けられているRTP値の配列
正常に終了した場合は0を戻し、それ以外の場合は該当するエラー・コードを戻します。
Public Declare Function HypExecuteCalcScriptEx Lib "HsAddin" (ByVal vtSheetName As Variant,ByVal vtCubeName As Variant,ByVal vtBRName As Variant, ByVal vtBRType As Variant, ByVal vtbBRHasPrompts As Variant, ByVal vtbBRNeedPageInfo As Variant,ByRef vtRTPNames() As Variant,ByRef vtRTPValues() As Variant, ByVal vtbShowRTPDlg As Variant, ByVal vtbRuleOnForm As Variant, ByRef vtBRRanSuccessfully As Variant,ByRef vtCubeName As Variant,ByRef vtBRName As Variant, ByRef vtBRType As Variant, ByRef vtbBRHasPrompts As Variant, ByRef vtbBRNeedPageInfo As Variant, ByRef vtbBRHidePrompts As Variant, ByRef vtRTPNamesUsed As Variant, ByRef vtRTPValuesUsed As Variant) As Long Sub Example_HypExecuteCalcScriptEx() Dim oRet As Long Dim oSheetName As StringDim oSheet As Worksheet Dim vtCubeNames As Variant Dim vtBRNames As Variant Dim vtBRTypes As Variant Dim vtBRHasPrompts As Variant Dim vtBRNeedsPageInfo As Variant Dim vtBRHidePrompts As Variant Dim sAllCalcs As String Dim sCalcName As String Dim bNeedPageInfo As Variant Dim vtInRTPNames() As Variant Dim vtInRTPValues() As Variant Dim vtOutRTPNames As Variant Dim vtOutRTPValues As Variant Dim vtbBRRanSuccessfully As Variant Dim vtbBRRanSuccessfully2 As Variant Dim vtOutCubeName As Variant Dim vtOutBRName As Variant Dim vtOutBRType As Variant Dim bBRHasPrompts As Variant Dim bBRNeedPageInfo As Variant Dim bBRHidePrompts As Variant Dim bShowDlg As Variant Dim bRuleOnForm As Variant 'Set oSheet = ActiveSheet 'oSheetName = oSheet.Name oSheetName = "Sheet3" oRet = HypListCalcScriptsEx (oSheetName, False, vtCubeNames, vtBRNames, vtBRTypes, vtBRHasPrompts, vtBRNeedsPageInfo, vtBRHidePrompts) If (oRet = 0) Then If IsArray(vtBRNames) Then lNumMbrs = (UBound(vtBRNames) - LBound(vtBRNames) + 1) End If sPrintMsg = "Number of Calc Scripts = " & lNumMbrs MsgBox (sPrintMsg) 'Start Executing the Calc Script bShowDlg = True bRuleOnForm = False iScript = 1 oRet = HypExecuteCalcScriptEx (oSheetName, vtCubeNames(iScript), vtBRNames(iScript), vtBRTypes(iScript), vtBRHasPrompts(iScript), vtBRNeedsPageInfo(iScript), vtInRTPNames, vtInRTPValues, bShowDlg, bRuleOnForm, vtbBRRanSuccessfully, vtOutCubeName, vtOutBRName, vtOutBRType,bBRHasPrompts, bBRNeedPageInfo, bBRHidePrompts, vtOutRTPNames, vtOutRTPValues) If (oRet = 0) Then MsgBox ("Last BR ran successfully - " & vtbBRRanSuccessfully) If (vtbBRRanSuccessfully = True) Then bShowDlg = False bRuleOnForm = False If IsArray(vtOutRTPNames) And IsArray(vtOutRTPValues) Then lNumRTPNames = (UBound(vtOutRTPNames) - LBound(vtOutRTPNames) + 1) lNumRTPVals = (UBound(vtOutRTPValues) - LBound(vtOutRTPValues) + 1) End If If (lNumRTPNames > 0) Then ReDim vtInRTPNames(lNumRTPNames - 1) As Variant ReDim vtInRTPValues(lNumRTPNames - 1) As Variant For iRTPs = 0 To lNumRTPNames - 1 sBRName = vtOutRTPNames(iRTPs) sBRVal = vtOutRTPValues(iRTPs) vtInRTPNames(iRTPs) = sBRName vtInRTPValues(iRTPs) = sBRVal Next iRTPs End If oRet = HypExecuteCalcScriptEx (oSheetName, vtOutCubeName, vtOutBRName, vtOutBRType, bBRHasPrompts, bBRNeedPageInfo, vtInRTPNames, vtInRTPValues, bShowDlg, bRuleOnForm, vtbBRRanSuccessfully2, vtOutCubeName, vtOutBRName, vtOutBRType, bBRHasPrompts, bBRNeedPageInfo, bBRHidePrompts, vtOutRTPNames, vtOutRTPValues) MsgBox ("Automated BR ran successfully - " & vtbBRRanSuccessfully2) End If Else sPrintMsg = "Error - " & oRet MsgBox (sPrintMsg) End If Else sPrintMsg = "Error - " & oRet MsgBox (sPrintMsg) End If End Sub
HypExecuteCalcScriptExの前にHypListCalcScriptsExが呼び出されたかどうかに応じて、HypExecuteCalcScriptExは4つのモードで使用できます。
HypExecuteCalcScriptExの前にHypListCalcScriptsExを呼び出してない場合は、HypListCalcScriptsExを初めて呼び出す際に、初回の使用のためにvtbShowBRDlgをTrueに設定し、その後でFalseに設定する必要があります。
vtbShowBRDlgがTrueの場合(モード1):
入力引数: vtSheetName、vtCubeName、vtbRuleOnFormが使用されます。vtBRName、vtBRType、vtbBRHasPrompts、vtbNeedPageInfo、ppRTPNames、ppRTPValuesは無視されます。
動作: vtbRuleOnFormの値に応じて「ビジネス・ルール」ダイアログ・ボックスに使用可能なすべてのルールが表示されます。ユーザーが選択したビジネス・ルールを実行して「ビジネス・ルール」ダイアログ・ボックスを終了すると、そのビジネス・ルールの詳細が出力引数に設定され呼出し側に戻されます。
出力引数: すべての出力引数に値が設定されて呼出し側に戻され、呼出し側はそれらを後続の呼出しで使用できるようになります。
vtbShowBRDlgがFalseの場合(モード2):
入力引数: すべての入力引数が使用されます。
動作: 「ビジネス・ルール」ダイアログ・ボックスが表示されません。ビジネス・ルールが自動的に実行され、適切なステータスが呼出し側に戻されます。
出力引数: すべての出力引数は変更されません。呼出し側にはその特定のビジネス・ルールの実行に必要なすべての情報があり、情報を渡す必要がないためです。
HypExecuteCalcScriptExの前にHypListCalcScriptsExを呼び出す場合、HypListCalcScriptsExが呼び出された時点で、ユーザーはすべてのビジネス・ルールと実行時プロンプトに関する情報を取得します(該当する場合)。
ユーザーがRTPのないビジネス・ルールを実行する場合、vtbShowBRDlg引数にFalseを設定してHypExecuteCalcScriptExを呼び出し、他のすべての情報を入力引数として提供できます。
ユーザーがRTPのあるビジネス・ルールを実行する場合は、ビジネス・ルールとそのRTPを表示してユーザーがそのビジネス・ルールを実行するためのRTP値を選択できるよう、vtbShowBRDlgにTrueを設定してHypExecuteCalcScriptExを呼び出す必要があります。(Planningでは、表示されるRTPがない場合はビジネス・ルールのRTPフラグをTrueに設定しても差し支えありません。)
キューブ名、ビジネス・ルール名、およびビジネス・ルール・タイプが空としてHypExecuteCalcScriptExで渡された場合(モード3)、「ビジネス・ルール」ダイアログ・ボックスが表示され、vtbRuleOnForm引数に応じてすべてのビジネス・ルールが表示されます。それ以外はすべてモード1と同じ動作になります。
キューブ名、ビジネス・ルール名、およびビジネス・ルール・タイプの値が指定されてHypExecuteCalcScriptExで渡された場合(モード4)、「ビジネス・ルール」ダイアログ・ボックスが表示され、渡されたビジネス・ルール(指定されたキューブ名に対するビジネス・ルール名)のみがそのRTPとともに表示されます。それ以外はすべてモード1と同じ動作になります。