HypExecuteCalcScriptEx

データ・プロバイダ・タイプ: 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に設定する必要があります。

HypExecuteCalcScriptExの前にHypListCalcScriptsExを呼び出す場合、HypListCalcScriptsExが呼び出された時点で、ユーザーはすべてのビジネス・ルールと実行時プロンプトに関する情報を取得します(該当する場合)。

ユーザーがRTPのないビジネス・ルールを実行する場合、vtbShowBRDlg引数にFalseを設定してHypExecuteCalcScriptExを呼び出し、他のすべての情報を入力引数として提供できます。

ユーザーがRTPのあるビジネス・ルールを実行する場合は、ビジネス・ルールとそのRTPを表示してユーザーがそのビジネス・ルールを実行するためのRTP値を選択できるよう、vtbShowBRDlgにTrueを設定してHypExecuteCalcScriptExを呼び出す必要があります。(Planningでは、表示されるRTPがない場合はビジネス・ルールのRTPフラグをTrueに設定しても差し支えありません。)