HypListDocuments
Oracle Smart View for OfficeのVBA関数、HypListDocumentsについて説明します。
クラウド・データ・プロバイダ・タイプ: Planning、Planning Modules、Financial Consolidation and Close、Tax Reporting
オンプレミス・データ・プロバイダ・タイプ: Oracle Hyperion Planning、Oracle 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