HypListDocuments

Oracle Smart View for OfficeのVBA関数、HypListDocumentsについて説明します。

クラウド・データ・プロバイダ・タイプ: PlanningPlanning ModulesFinancial Consolidation and CloseTax Reporting

オンプレミス・データ・プロバイダ・タイプ: Oracle Hyperion PlanningOracle Hyperion Financial Management

説明

HypListDocumentsは、ユーザーが指定したパスにあるプロバイダ・サーバーに保存されたフォルダおよびフォームのリストを戻します。

ノート:

この関数の説明では、フォルダおよびフォームをドキュメントと呼びます。

他のVBAとは異なり、これは、シート固有の関数ではありません。シート情報は、この関数ではオプションです。「パラメータ」を参照してください。

構文

HypListDocuments (vtSheetName, vtUserName, vtPassword, vtConnInfo, vtCompletePath, vtDocs)

ByVal vtSheetName As Variant

ByVal vtUserName As Variant

ByVal vtPassword As Variant

ByVal vtConnInfo As Variant

ByVal vtCompletePath As Variant

ByRef vtDocs As DOC_Info

DOC_Infoは、次の型として定義します。

Type DOC_Info

     numDocs As Long

     docTypes As Variant

     docNames As Variant

     docDescriptions As Variant

     docPlanTypes As Variant

     docAttributes As Variant

End Type

詳細は、次の「パラメータ」を参照してください。

パラメータ

vtSheetName: オプション。vtConnInfoが空の場合、接続情報の取得に使用されるワークシートの名前。vtSheetNameも空の場合は、アクティブなデータ・ソースが接続情報の取得に使用されます。

vtUserName: オプションの入力パラメータ。指定された接続情報(vtConnInfo/vtSheetName)を使用した接続に使用されます。接続がすでに存在することがわかっている場合は、指定する必要がありません。

vtPassword: オプションの入力パラメータ。指定された接続情報(vtConnInfo/vtSheetName)を使用した接続に使用されます。接続がすでに存在することがわかっている場合は、必要ありません。

vtConnInfo: オプションの入力パラメータ。わかりやすいプライベート接続名の形式またはHypConnect()またはHypUIConnect()で使用可能な形式のいずれかで指定された接続情報vtConnInfoが空の場合、vtSheetNameが接続情報の取得に使用されます。どちらも空の場合は、アクティブなデータ・ソースが使用されます。

vtCompletePath: 必須の入力パラメータ。ドキュメント・リストが必要なサーバー内のフォルダ・パス。

vtDocs: 必須の出力パラメータ。指定されたvtCompletePath内に存在する、VBAが戻すドキュメント(ファイルおよびフォルダ)のリスト。

DOC_Info構造の定義

numDocs: フォルダの数および指定されたフォルダ内のフォームの数。後述の各配列の長さを定義します。

docTypes: 文字列の配列。各ドキュメントのタイプを定義する配列。"DOC_FORM"および"DOC_FOLDER"の2つタイプがサポートされています。2つのグローバル定数でこの2つのタイプを定義し、これらの値と配列内の値とを比較するために使用できます。

Global Const HYP_LIST_DOC_FORM = "DOC_FORM"
Global Const HYP_LIST_DOC_FOLDER = "DOC_FOLDER"

使用方法は、「例」を参照してください。

docNames: 文字列の配列。前述と同じ順序で、各ドキュメントの名前が格納される配列。

docDescriptions: 文字列の配列。前述と同じ順序のドキュメントの説明(ある場合)。フォルダの場合、このフィールドは空です。

docPlanTypes: 文字列の配列。前述と同じ順序の各ドキュメントのプラン・タイプまたはキューブ情報。フォルダの場合、このフィールドは空です。

docAttributes: 文字列の配列。前述と同じ順序の各ドキュメントの属性情報。フォルダの場合、このフィールドは空です。フォームの場合、このフィールドは次のいずれかです。

Enum FORM_ATTRIBUTES

     NO_ATTRIBUTE = -1 (フォルダ用)

     HFM_BASIC_FORM = 0

     ADHOC_ENABLED = 8 (基本フォーム)

     COMPOSITE_FORM = 16

     SMART_FORM = 128

     SAVED_ADHOC_GRID = 40

     SAVED_ADHOC_EXCLUSIVE_GRID = 104

     SMART_FORM_ADHOC_ENABLED = 136

End Enum

HypListDocumentsは、これらの値を文字列として戻します。「例」を参照してください。

フォルダには名前のみが関連付けられます。その他の情報は、フォームにのみ使用できます。

戻り値

正常に終了した場合は0を戻し、それ以外の場合は該当するエラー・コードを戻します。

次のVBAは、それぞれの起動を1つずつ使用することで、直接使用できます。

Sub testListDocs()

Dim ret As Integer
Dim firstDocType
Dim vtDocs As DOC_Info
Dim vtAttr

'Usage with connection information as given for HypConnect()/HypUIConect()
ret = HypListDocuments("", "<user_name>", "<password>", "http://<server_url>:<port>/HyperionPlanning/SmartView|<server>|EPBCS|", "/<path>", vtDocs)

'Usage with friendly private connection name.
'ret = HypListDocuments("", "<user_name", "<password>", "<server>", "/<path>", vtDocs)

'Usage with connection information present in Sheet1.
'ret = HypListDocuments("Sheet1", "<user_name>", "<password>", "", "/<path>", vtDocs)

'Usage with active data source
'ret = HypListDocuments("", "<user_name>", "<password>", "", "/<path>", vtDocs)

MsgBox "Total no. of docs is : " & vtDocs.numDocs

If vtDocs.numDocs > 0 Then
   'First, folder info is sent, and then forms info.
   firstDocType = vtDocs.docTypes(0)

   If vtDocs.docTypes(0) = HYP_LIST_DOC_FORM Then
      MsgBox "First doc is a form."
   Else
      MsgBox "First doc is a folder."
   End If

   MsgBox "First doc name is : " & vtDocs.docNames(0)

   MsgBox "First doc attribute is : " & vtDocs.docAttributes(0)

   'Need to convert attribute string to integer before comparison.
   vtAttr = CInt(vtDocs.docAttributes(0))

   If vtAttr <> NO_ATTRIBUTE Then

      If vtAttr = ADHOC_ENABLED Then
         MsgBox "This form is adhoc-enabled"
      End If

      If vtAttr = SAVED_ADHOC_GRID Then
         MsgBox "This is a saved ad-hoc grid"
      End If

      If vtAttr = SAVED_ADHOC_EXCLUSIVE_GRID Then
         MsgBox "This is a saved ad-hoc exclusive grid"
      End If

      If vtAttr = COMPOSITE_FORM Then
         MsgBox "This is a composite form."
      Else
         MsgBox "This is not a composite form."
      End If

   End If

End If
End Sub