プライマリ・コンテンツへ移動
Oracle® Smart View for Office開発者ガイド

F11927-01
目次に移動
目次

前
次

HypExecuteCalcScriptEx

Cloudデータ・プロバイダ・タイプ: Oracle Analytics Cloud - EssbaseOracle Planning and Budgeting Cloud

オンプレミス・データ・プロバイダ・タイプ: Oracle EssbaseOracle Hyperion 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およびOracle Planning and Budgeting Cloudの場合はプラン・タイプ)

vtBRName: 入力パラメータ。実行するビジネス・ルールの名前

vtBRType: 入力パラメータ。実行するビジネス・ルールのタイプ。有効な値は、graphical、ecs、sequenceおよびnativeです。

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名に関連付けられている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を呼び出さない場合

HypExecuteCalcScriptExの前にHypListCalcScriptsExを呼び出さない場合は、HypListCalcScriptsExを初めて呼び出す際に、初回の使用のためにvtbShowBRDlgをTrueに設定し、その後でFalseに設定する必要があります。

  • モード1: vtbShowBRDlgがTrueの場合:

    • 入力引数: vtSheetName、vtCubeName、vtbRuleOnFormが使用されます。vtBRName、vtBRType、vtbBRHasPrompts、vtbNeedPageInfo、ppRTPNames、ppRTPValuesは無視されます。

    • 動作: vtbRuleOnFormの値に応じて「ビジネス・ルール」ダイアログ・ボックスに使用可能なすべてのルールが表示されます。ユーザーが選択したビジネス・ルールを実行して「ビジネス・ルール」ダイアログ・ボックスを終了すると、そのビジネス・ルールの詳細が出力引数に設定され呼出し側に戻されます。

    • 出力引数: すべての出力引数に値が設定されて呼出し側に戻され、呼出し側はそれらを後続の呼出しで使用できるようになります。

  • モード2: vtbShowBRDlg引数がFalseの場合:

    • 入力引数: すべての入力引数が使用されます。

    • 動作: 「ビジネス・ルール」ダイアログ・ボックスが表示されません。ビジネス・ルールが自動的に実行され、適切なステータスが呼出し側に戻されます。

    • 出力引数: 呼出し側には、その特定のビジネス・ルールを実行するためのすべての情報がすでにあり、情報を渡す必要がないため、すべての出力引数は変更されません。

HypExecuteCalcScriptExの前にHypListCalcScriptsExを呼び出す場合

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

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

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

  • モード3: キューブ名、ビジネス・ルール名およびビジネス・ルール・タイプが空としてHypExecuteCalcScriptExで渡された場合、「ビジネス・ルール」ダイアログ・ボックスが表示され、vtbRuleOnForm引数に応じてすべてのビジネス・ルールが表示されます。それ以外はすべてモード1と同じになります。

  • モード4: キューブ名、ビジネス・ルール名、およびビジネス・ルール・タイプの値が指定されてHypExecuteCalcScriptExで渡された場合、「ビジネス・ルール」ダイアログ・ボックスが表示され、渡されたビジネス・ルール(指定されたキューブ名に対するビジネス・ルール名)のみがそのRTPとともに表示されます。それ以外はすべてモード1と同じになります。