Attribute VB_Name = "Module3" Dim sts As Long Dim hInst As Long Dim hDestInst As Long Dim hCtx As Long Dim hDestCtx As Long Dim Server As String * ESB_SVRNAMELEN Dim User As String * ESB_USERNAMELEN Dim Password As String * ESB_PASSWORDLEN Dim AppName As String * ESB_APPNAMELEN Dim DbName As String * ESB_DBNAMELEN Sub ESB_GetVersion() Dim sts As Long Dim Release As Integer Dim Version As Integer Dim Revision As Integer sts = EsbGetVersion(hCtx, Release, Version, Revision) Debug.Print "EsbGetVersion: sts = " & sts Debug.Print "Release: " & Release Debug.Print "Version: " & Version Debug.Print "Revision: " & Revision End Sub Sub ESB_Init() Dim Init As ESB_INIT_T ESB_FALSE = 0 ESB_TRUE = 1 Init.Version = ESB_API_VERSION Init.MaxHandles = 10 Init.LocalPath = "C:\install\zolahit\products\Essbase\EssbaseClient" ' Use default message file Init.MessageFile = "" ' Use EsbGetMessage to retrieve ' messages Init.ClientError = ESB_TRUE Init.ErrorStack = 100 'Init.vbCallbackFuncAddress = GetProcAddress(AddressOf EsbErrorHandler) sts = EsbInit(Init, hInst) 'MsgBox ("EsbInit = " & sts) Debug.Print "EsbInit: sts = " & sts 'For copy objects between servers 'sts = EsbInit(Init, hDestInst) 'MsgBox ("EsbInit = " & sts) 'Debug.Print "EsbInit: sts = " & sts End Sub Public Function GetProcAddress(ByVal lngAddressOf As Long) As Long GetProcAddress = lngAddressOf End Function Public Function EsbErrorHandler(ByVal MsgNum As Long, ByVal Level As Long, ByVal uLog As String, ByVal uMsg As String) As Long If Level >= ESB_LEVEL_ERROR Then MsgBox "Error: " & MsgNum & " - " & uMsg End If 'MsgBox " Info " & MsgNum & ": Level: " & Level & ": " & uLog & ": " & uMsg End Function Sub ESB_GetMessage() Dim DbName As String Dim FilterName As String Const szMessage = 256 Dim Message As String * szMessage Dim Number As Long Dim Level As Integer Dim sts As Long Dim Object As ESB_OBJDEF_T Dim hOutline As Long Dim hMemberProfit As Long Object.hCtx = hCtx Object.Type = ESB_OBJTYPE_OUTLINE Object.AppName = "Temp" Object.DbName = "Basic" Object.FileName = "Basic" sts = EsbOtlOpenOutline(hCtx, Object, ESB_YES, ESB_YES, hOutline) Debug.Print "EsbOtlOpenOutline: sts = " & sts sts = EsbOtlFindMember(hOutline, "100-10", hMember) Debug.Print "EsbOtlFindMember: sts = " & sts If sts > 0 Then sts = EsbGetMessage(hInst, Level, Number, Message, szMessage) Do While Mid$(Message, 1, 1) <> Chr$(0) Debug.Print Level Debug.Print Number Debug.Print Message sts = EsbGetMessage(hInst, Level, Number, Message, szMessage) Debug.Print "EsbGetMessage: sts = " & sts Loop End If End Sub Sub ESB_Login() Dim Items As Integer Dim AppDb As ESB_APPDB_T Server = "ppamu-pc1" User = "essexer" Password = "password" sts = EsbLogin(hInst, Server, User, Password, Items, hCtx) Debug.Print "EsbLogin: sts = " & sts 'For n = 1 To Items ' sts = EsbGetNextItem(hCtx, ESB_LAPPDB_TYPE, AppDb) ' Debug.Print "EsbGetNextItem: sts = " & sts ' Debug.Print "App Name: "; AppDb.AppName ' Debug.Print "Db Name: "; AppDb.DbName ' Next 'For copy objects between servers 'sts = EsbLogin(hDestInst, "qtfsun1:1501", User, Password, Items, hDestCtx) 'Debug.Print "EsbLogin: sts = " & sts End Sub Sub ESB_AutoLogin() Dim pOption As Integer Dim pAccess As Integer Server = "localhost" 'User = "essexer" 'Password = "Password" 'AppName = "sample" 'DbName = "basic" 'pOption = ESB_AUTO_NODIALOG + ESB_AUTO_NOSELECT pOption = ESB_AUTO_DEFAULT sts = EsbAutoLogin(hInst, Server, User, Password, AppName, DbName, pOption, pAccess, hCtx) 'MsgBox ("EsbAutoLogin = " & sts) Debug.Print "EsbAutoLogin: sts = " & sts ' Call Esb_runreport End Sub Sub ESB_LoginSetPassword() 'Dim hInst As Long 'Dim Server As String * ESB_SVRNAMELEN 'Dim User As String * ESB_USERNAMELEN 'Dim Password As String * ESB_PASSWORDLEN Dim NewPassword As String * ESB_PASSWORDLEN Dim Items As Integer Dim AppDb As ESB_APPDB_T Server = "stiahp1:1501" User = "essexer" Password = "password" NewPassword = "password2" sts = EsbLoginSetPassword(hInst, Server, User, Password, NewPassword, Items, hCtx) Debug.Print "EsbLoginSetPassword: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_LAPPDB_TYPE, AppDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "App Name: "; AppDb.AppName Debug.Print "Db Name: "; AppDb.DbName Next 'Reset password back to original NewPassword = "password" sts = EsbLoginSetPassword(hInst, Server, User, Password, NewPassword, Items, hCtx) Debug.Print "EsbLoginSetPassword: sts = " & sts End Sub Sub ESB_SetActive() Dim AppName As String Dim DbName As String Dim pAccess As Integer Dim sts As Long 'AppName = "Bugs" 'DbName = "09129823" AppName = "vb" DbName = "Basic" sts = EsbSetActive(hCtx, AppName, DbName, pAccess) Debug.Print "EsbSetActive: sts = " & sts End Sub Sub ESb_GetStoresInfo() '(Chnl As String) Dim Object As ESB_OBJDEF_T Object.hCtx = hCtx Object.Type = ESB_OBJTYPE_OUTLINE Object.AppName = AppName Object.DbName = DbName Object.FileName = DbName Dim hMember As Long Dim ihMember As Long Dim MbrInfo As ESB_MBRINFO_T Dim Counts As ESB_MBRCOUNTS_T sts = EsbSetActive(hCtx, AppName, DbName, Access) Dim hMemberJan As Long Dim MbrChldCnt As Long Dim x As Integer Dim Parent As String Dim found As Boolean Dim img As Integer Dim Member As String Dim szAlias As String * ESB_MBRNAMELEN Dim Alias As String Dim levelnum As String Dim ShareStat As Integer Dim tLevelName As String * ESB_MBRNAMELEN Const AltGroup As String = "ALT_GROUP" 'Dim LevelName As String * ESB_MBRNAMELEN sts = EsbOtlOpenOutline(hCtx, Object, ESB_YES, ESB_YES, hOutline) If sts = 0 Then sts = EsbOtlFindMember(hOutline, "JOHNSON, ROGER", hMemberJan) 'sts = EsbOtlFindMember(hOutline, "GMM_A", hMemberJan) If hMemberJan = 0 Then sts = EsbOtlFindAlias(hOutline, "JOHNSON, ROGER", "default", hMemberJan) End If End If If sts = 0 And hMemberJan <> 0 Then sts = EsbOtlGetMemberInfo(hOutline, hMemberJan, MbrInfo) MsgBox ("Member Name = " & MbrInfo.szMember) Member = MbrInfo.szMember levelnum = MbrInfo.usLevel ShareStat = MbrInfo.usShare MsgBox ("Shared Member = " & ShareStat) End If MbrChldCnt = MbrInfo.ulChildCount ' If ShareStat <> ESB_SHARE_SHARE Then 'Do While x <= MbrChldCnt For x = 1 To MbrChldCnt If x = 1 Then sts = EsbOtlGetChild(hOutline, hMemberJan, hMember) 'sts = EsbOtlGetMemberInfo(hOutline, hMember, MbrInfo) 'MsgBox ("Child Member Name = " & MbrInfo.szMember) Else sts = EsbOtlGetNextSibling(hOutline, hMemberJan, hMember) ' sts = EsbOtlGetMemberInfo(hOutline, hMember, MbrInfo) ' MsgBox ("Sibling Member Name = " & MbrInfo.szMember) End If 'Next sts = EsbOtlGetMemberInfo(hOutline, hMember, MbrInfo) MsgBox ("Sibling Member Name = " & MbrInfo.szMember) ' szAlias = "" 'sts = EsbOtlGetMemberAlias(hOutline, hMember, "", szAlias) 'sts = EsbOtlGetLevelName(hOutline, sRoot, MbrInfo.usLevel, tLevelName) 'If sts > 0 Then tLevelName = "" 'Alias = sTrim(szAlias) 'Member = sTrim(MbrInfo.szMember) Next End Sub Sub ESB_Logout() sts = EsbLogout(hCtx) 'MsgBox ("EsbLogout = " & sts) Debug.Print "EsbLogout: sts = " & sts End Sub Sub ESB_Term() sts = EsbTerm(hInst) 'MsgBox ("EsbTerm = " & sts) Debug.Print "EsbTerm: sts = " & sts End Sub Public Sub ESB_LROListObjects() Dim UserName As String * ESB_USERNAMELEN Dim listDate As Long Dim Items As Integer Dim Desc As ESB_LRODESC_API_T Dim i As Integer Dim j As Integer Dim CutOffDate As Date Dim MemberName As String * ESB_MBRNAMELEN Const ESB_REFERENCE_DATE = #1/1/1970# UserName = "essexer" CutOffDate = #9/21/2007# 'CutOffDate = #1/2/1970# listDate = DateDiff("s", CutOffDate, ESB_REFERENCE_DATE) 'listDate = DateDiff("s", ESB_REFERENCE_DATE, CutOffDate) 'listDate = -1 sts = EsbLROListObjects(hCtx, UserName, listDate, Items) Debug.Print "EsbLROListObjects: sts = " & sts Debug.Print "Number of LRO(s): " & Items If sts = 0 Then For i = 1 To Items Debug.Print "LRO # " & i; ":" sts = EsbGetNextItem(hCtx, ESB_LRO_TYPE, Desc) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "Object Type: " & Desc.ObjType Select Case (Desc.ObjType) Case 0 Debug.Print "Cell notes: " & Desc.note Case 1 Debug.Print "Object Name: " & Desc.lroInfo.ObjName Debug.Print "Object Description: " & Desc.lroInfo.objDesc Case 2 Debug.Print "Object Name: " & Desc.lroInfo.ObjName Debug.Print "Object Description: " & Desc.lroInfo.objDesc End Select Debug.Print "Member Combination:" For j = 1 To Desc.memCount sts = EsbLROGetMemberCombo(hCtx, j, MemberName) Debug.Print " " & MemberName Next j Next i End If End Sub Sub ESB_SetUser() Dim sts As Long Dim UserInfo As ESB_USERINFO_T UserInfo.Name = "Test" UserInfo.Type = ESB_TYPE_USER UserInfo.Access = ESB_ACCESS_SUPER UserInfo.MaxAccess = ESB_ACCESS_SUPER UserInfo.PwdChgNow = ESB_TRUE sts = EsbSetUser(hCtx, UserInfo) Debug.Print "EsbSetUser: sts = " & sts End Sub Sub ESB_GetUser() Dim sts As Long Dim User As String Dim UserInfo As ESB_USERINFO_T User = "Test" '************************ ' Get User Info structure '************************ sts = EsbGetUser(hCtx, User, UserInfo) Debug.Print "EsbGetUser: sts = " & sts End Sub Public Sub ESB_LROPurgeObjects() Dim UserName As String * ESB_USERNAMELEN Dim purgeDate As Long Dim Items As Integer Dim Desc As ESB_LRODESC_API_T Dim CutOffDate As Date Dim i As Integer Const ESB_REFERENCE_DATE = #1/1/1970# UserName = "essexer" CutOffDate = #9/21/2007# purgeDate = DateDiff("s", ESB_REFERENCE_DATE, CutOffDate) 'bug 8-651484045 'purgeDate = DateDiff("s", CutOffDate, ESB_REFERENCE_DATE) 'purgeDate = -1 sts = EsbLROPurgeObjects(hCtx, UserName, purgeDate, Items) Debug.Print "EsbLROPurgeObjects: sts = " & sts If sts = 0 Then For i = 1 To Items '******************************* '* Get the next LRO description '* item from the list '******************************* sts = EsbGetNextItem(hCtx, ESB_LRO_TYPE, Desc) Debug.Print "EsbGetNextItem: sts = " & sts Next i End If End Sub Sub ESB_CreateGroup() Dim sts As Long Dim GroupName As String GroupName = "PowerUsers" sts = EsbCreateGroup(hCtx, GroupName) Debug.Print "EsbCreateGroup: sts = " & sts End Sub Sub ESB_GetDatabaseInfo() Dim sts As Long Dim AppName As String Dim DbName As String Dim Items As Integer Dim N As Integer Dim DbInfo As ESB_DBINFO_T Dim DbReqInfo As ESB_DBREQINFO_T AppName = "Sample" DbName = "Basic" sts = EsbGetDatabaseInfo(hCtx, AppName, DbName, DbInfo, Items) Debug.Print "EsbGetDatabaseInfo: sts = " & sts Debug.Print "DbInfo.status: " & DbInfo.Status If sts = 0 Then For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_DBREQINFO_TYPE, DbReqInfo) Debug.Print "EsbGetNextItem: sts = " & sts Next End If End Sub Sub ESB_GetDatabaseAccess() Dim Items As Integer Dim AppName As String Dim DbName As String Dim User As String Dim UserDb As ESB_USERDB_T Dim sts As Long AppName = "Sample" DbName = "Basic" User = "user1" sts = EsbGetDatabaseAccess(hCtx, User, AppName, DbName, Items) Debug.Print "EsbGetDatabaseAccess: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERDB_TYPE, UserDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "User: " & User Debug.Print "Access: " & UserDb.Access Next User = "user2" sts = EsbGetDatabaseAccess(hCtx, User, AppName, DbName, Items) Debug.Print "EsbGetDatabaseAccess: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERDB_TYPE, UserDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "User: " & User Debug.Print "Access: " & UserDb.Access Next User = "user3" sts = EsbGetDatabaseAccess(hCtx, User, AppName, DbName, Items) Debug.Print "EsbGetDatabaseAccess: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERDB_TYPE, UserDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "User: " & User Debug.Print "Access: " & UserDb.Access Next User = "user4" sts = EsbGetDatabaseAccess(hCtx, User, AppName, DbName, Items) Debug.Print "EsbGetDatabaseAccess: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERDB_TYPE, UserDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "User: " & User Debug.Print "Access: " & UserDb.Access Next User = "user5" sts = EsbGetDatabaseAccess(hCtx, User, AppName, DbName, Items) Debug.Print "EsbGetDatabaseAccess: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERDB_TYPE, UserDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "User: " & User Debug.Print "Access: " & UserDb.Access Next User = "user6" sts = EsbGetDatabaseAccess(hCtx, User, AppName, DbName, Items) Debug.Print "EsbGetDatabaseAccess: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERDB_TYPE, UserDb) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "User: " & User Debug.Print "Access: " & UserDb.Access Next End Sub Sub ESB_GetDatabaseStats() Dim Items As Integer Dim AppName As String Dim DbName As String Dim DbStats As ESB_DBSTATS_T Dim DimStats As ESB_DIMSTATS_T Dim sts As Long AppName = "Sample" DbName = "Basic" sts = EsbGetDatabaseStats(hCtx, AppName, DbName, DbStats, Items) Debug.Print "EsbGetDatabaseStats: sts = " & sts 'MsgBox ("cluster = " & DbStats.ClusterRatio) For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_DBSTATS_TYPE, DbStats) Next End Sub Public Sub ESB_LROAddObject() Dim Desc As ESB_LRODESC_API_T Dim memCount As Long Dim memComb As String Dim opt As Integer Dim i As Integer memCount = 5 memComb = "Year" & vbCrLf & "Product" & vbCrLf & _ "Market" & vbCrLf & "Measures" & vbCrLf & "Scenario" Desc.UserName = "essexer" Desc.ObjType = ESB_LROTYPE_CELLNOTE_API Desc.note = "Cell note" opt = ESB_NOSTORE_OBJECT_API sts = EsbLROAddObject(hCtx, memCount, memComb, opt, Desc) Debug.Print "EsbLROAddObject: sts = " & sts Desc.ObjType = ESB_LROTYPE_WINAPP_API Desc.lroInfo.ObjName = "c:\hyperion\essbase95\bin\essbase.exe" Desc.lroInfo.objDesc = "Essbase executable." opt = ESB_STORE_OBJECT_API sts = EsbLROAddObject(hCtx, memCount, memComb, opt, Desc) Debug.Print "EsbLROAddObject: sts = " & sts Desc.ObjType = ESB_LROTYPE_URL_API Desc.lroInfo.ObjName = "www.oracle.com" Desc.lroInfo.objDesc = "Oracle homepage" opt = ESB_NOSTORE_OBJECT_API sts = EsbLROAddObject(hCtx, memCount, memComb, opt, Desc) Debug.Print "EsbLROAddObject: sts = " & sts Desc.ObjType = ESB_LROTYPE_CELLNOTE_API Desc.note = "Cell note 2" opt = ESB_NOSTORE_OBJECT_API sts = EsbLROAddObject(hCtx, memCount, memComb, opt, Desc) Debug.Print "EsbLROAddObject: sts = " & sts End Sub Public Sub ESB_LROGetCatalog() Dim Desc As ESB_LRODESC_API_T Dim Items As Integer Dim memCount As Long Dim memComb As String Dim i As Integer memCount = 5 memComb = "Qtr1" & vbCrLf & "Profit" & vbCrLf & _ "100" & vbCrLf & "East" & vbCrLf & "Scenario" 'memComb = "Jan" & vbCrLf & "Sales" & _ ' "Cola" & vbCrLf & "Utah" & _ ' "Actual" sts = EsbLROGetCatalog(hCtx, memCount, memComb, Items) Debug.Print "EsbLROGetCatalog: sts = " & sts If sts = 0 Then For i = 1 To Items sts = EsbGetNextItem(hCtx, ESB_LRO_TYPE, Desc) Debug.Print "Desc.ObjType = " & Desc.ObjType Debug.Print "Desc.note = " & Desc.note Debug.Print "Desc.lroInfo.objDesc = " & Desc.lroInfo.objDesc Debug.Print "Desc.lroInfo.objName = " & Desc.lroInfo.ObjName Next i End If End Sub Sub ESB_CopyObject() Dim sts As Long Dim SrcApp As String Dim SrcDb As String Dim SrcObj As String Dim DestApp As String Dim DestDb As String Dim DestObj As String SrcApp = "Sample" SrcDb = "Basic" SrcObj = "Basic" DestApp = "Sample" DestDb = "Basic" DestObj = "Basic1" ObjType = ESB_OBJTYPE_OUTLINE sts = EsbCopyObject(hCtx, hDestCtx, ObjType, SrcApp, DestApp, _ SrcDb, DestDb, SrcObj, DestObj) Debug.Print "EsbCopyObject: sts = " & sts End Sub Sub ESB_GetAssociatedAttributesInfo() Dim sts As Long Dim MbrName As String Dim AttrDimName As String Dim Count As Long Dim Attribinfo As ESB_ATTRIBUTEINFO_T Dim index As Integer Dim tempstring As String 'MbrName = InputBox("Base member name", "Base Member Name") 'AttrDimName = InputBox("Attribute Dimension Name (Optional)", "Attribute Dimension Name") MbrName = "em41666" AttrDimName = "Job Start Date" sts = EsbGetAssociatedAttributesInfo(hCtx, MbrName, AttrDimName, Count) Debug.Print "EsbGetAssociatedAttributesInfo: sts = " & sts Debug.Print "Associated Attr info for: " & MbrName For index = 1 To Count sts = EsbGetNextItem(hCtx, ESB_ATTRIBUTEINFO_TYPE, Attribinfo) 'Debug.Print "Dim Name: " & Attribinfo.DimName Debug.Print "Attribute Dim Name: " & Attribinfo.DimName Debug.Print "Attribute Mbr Name: " & Attribinfo.MbrName ' NOTE: use of select case statement to discern (and act upon) type of attribute returned Select Case VarType(Attribinfo.Attribute) Case vbDouble Debug.Print "Data Type : Numeric(Double)" Debug.Print "Data Value : " & Attribinfo.Attribute Debug.Print "" Case vbBoolean Debug.Print "Data Type : Boolean" Debug.Print "Data Value : " & Attribinfo.Attribute Debug.Print "" Case vbDate Debug.Print "Data Type : Date" Debug.Print "Data Value : " & Attribinfo.Attribute Debug.Print "" Case vbString Debug.Print "Data Type : String" Debug.Print "Data Value : " & Attribinfo.Attribute Debug.Print "" End Select Debug.Print "" Next index End Sub Sub ESB_ListConnections() Dim Items As Integer Dim UserInfo As ESB_USERINFO_T Dim sts As Long sts = EsbListConnections(hCtx, Items) Debug.Print "EsbListConnections: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_USERINFO_TYPE, UserInfo) Debug.Print "EsbGetNextItem: sts = " & sts Next End Sub Sub ESB_ListRequests() Dim Items As Integer Dim ReqInfo As ESB_REQUESTINFO_T Dim sts As Long sts = EsbListRequests(hCtx, UserName, AppName, DbName, Items) Debug.Print "EsbListRequests: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_REQUESTINFO_TYPE, ReqInfo) Debug.Print "EsbGetNextItem: sts = " & sts Debug.Print "AppName: " & ReqInfo.AppName Debug.Print "DbName: " & ReqInfo.DbName Debug.Print "DbRequestCode: " & ReqInfo.DbRequestCode Debug.Print "LoginID: " & ReqInfo.LoginId Debug.Print "LoginSourceMachine: " & ReqInfo.LoginSourceMachine Debug.Print "RequestString: " & ReqInfo.RequestString Debug.Print "State: " & ReqInfo.State Debug.Print "TimeStarted: " & ReqInfo.TimeStarted Debug.Print "Username: " & ReqInfo.UserName Next End Sub Sub ESB_AddToGroup() Dim sts As Long Dim GroupName As String Dim User As String GroupName = "Group1" User = "user1" sts = EsbAddToGroup(hCtx, GroupName, User) Debug.Print "EsbAddToGroup sts: " & sts End Sub Sub ESB_GetGroupList() Dim Items As Integer Dim Group As String Dim GroupName As String * ESB_USERNAMELEN Dim sts As Long Group = "group1" sts = EsbGetGroupList(hCtx, Group, Items) Debug.Print "EsbGetGroupList: sts = " & sts For N = 1 To Items sts = EsbGetNextItem(hCtx, ESB_GROUPNAME_TYPE, ByVal GroupName) Debug.Print "EsbGetGroupList: sts = " & sts Debug.Print "User Name = " & GroupName MsgBox ("User Name = " & GroupName) Next End Sub Sub ESB_GetDatabaseState() Dim sts As Long Dim AppName As String Dim DbName As String Dim DbState As ESB_DBSTATE_T AppName = "Sample" DbName = "Basic" sts = EsbGetDatabaseState(hCtx, AppName, DbName, DbState) Debug.Print "EsbGetDatabaseState: sts = " & sts End Sub Sub ESB_CreateLocalContext() Dim sts As Long Dim User As String Dim Password As String Dim hCtx As Long '********************* ' Create Local Context '********************* sts = EsbCreateLocalContext(hInst, User, Password, hCtx) End Sub Sub ESB_Import() Dim sts As Long Dim Rules As ESB_OBJDEF_T Dim Data As ESB_OBJDEF_T Dim User As ESB_MBRUSER_T Dim ErrorName As String Dim AbortOnError As Integer Dim hLocalCtx As Long '*************************************************************** ' Need to create a local context, if files are not on the server '*************************************************************** sts = EsbCreateLocalContext(hInst, "", "", hLocalCtx) Debug.Print "EsbCreateLocalContext sts: " & sts Data.hCtx = hLocalCtx Data.Type = ESB_OBJTYPE_TEXT Data.AppName = "" Data.DbName = "" Data.FileName = "F:\\testArea\\VBAPI\\calcdat.txt" '********************************* ' Rules file resides at the server '********************************* 'Rules.hCtx = hCtx 'Rules.Type = ESB_OBJTYPE_RULES 'Rules.AppName = "Demo" 'Rules.DbName = "Basic" 'Rules.FileName = "Test" '******************************** ' Data file resides at the server '******************************** 'Data.hCtx = hCtx 'Data.Type = ESB_OBJTYPE_TEXT 'Data.AppName = "Demo" 'Data.DbName = "Basic" 'Data.FileName = "Data" '******************************** ' Specify file to redirect errors ' to if any '******************************** ErrorName = "IMPORT.ERR" '************************* ' Abort on the first error '************************* AbortOnError = ESB_YES '******* ' Import '******* sts = EsbImport(hCtx, Rules, Data, User, ErrorName, AbortOnError) Debug.Print "EsbImport sts: " & sts End Sub Sub ESB_VerifyFilter() Dim sts As Long Dim AppName As String Dim DbName As String Dim Row As String AppName = "Sample" DbName = "Basic" sts = EsbVerifyFilter(hCtx, AppName, DbName) Debug.Print "EsbVerifyFilter sts: " & sts ' Initialize Filter Row Row = "@IDESCENDANTS(Scenario)" sts = EsbVerifyFilterRow(hCtx, Row) ' Initialize Filter Row Debug.Print "EsbVerifyFilterRow sts: " & sts Row = "@IDESCENDANTS(AAAA)" sts = EsbVerifyFilterRow(hCtx, Row) Debug.Print "EsbVerifyFilterRow sts: " & sts sts = EsbVerifyFilterRow(hCtx, ByVal 0&) Debug.Print "EsbVerifyFilterRow sts: " & sts End Sub Sub Test() strComputer = "." Const ForReading = 1 Const ForWriting = 2 Const ForAppending = 8 '============================================================== Const Data_Path = "F:\Testarea\temp\" Const FileName = "process.txt" Set fso = CreateObject("Scripting.FileSystemObject") If Not fso.FileExists(Data_Path & FileName) Then Set f = fso.OpenTextFile(Data_Path & FileName, 2, True) Else Set f = fso.OpenTextFile(Data_Path & FileName, 8) End If Set objWMIService = GetObject("winmgmts:" & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcessList = objWMIService.ExecQuery("Select * from Win32_Process") For Each objProcess In colProcessList f.WriteLine "Process " & objProcess.Name Next End Sub Sub ESB_CreateGLDrillThru() Dim sts As Long Dim url As ESB_DURLINFO_T Dim cppDrillRegions(0 To 1) As String '*************************************************************** ' Need to create a local context, if files are not on the server '*************************************************************** url.bIsLevel0 = 0 cppDrillRegions(0) = "sales" cppDrillRegions(1) = "cogs" url.cpURLXML = "<?xml version="1.0" encoding="UTF-8"?> <foldercontents path="/"> <resource name="Assets Drill through GL" description="" type="application/x-hyperion-applicationbuilder-report"> <name xml:lang="fr">Rapport de ventes</name> <name xml:lang="es">Informe de ventas</name> <action name="Display HTML" description="Launch HTML display of Content" shortdesc="HTML"> <url>/fusionapp/Assetsdrill.jsp?$SSO_TOKEN$&$CONTEXT$&$ATTR(ds,pos,gen,level.edge)$ </url> </action> </resource> </foldercontents>" url.cpURLName = "VB URL7" url.iURLXMLSize = 512 sts = EsbCreateDrillThruURL(hCtx, cppDrillRegions, url) Debug.Print "EsbCreateDrillThruURL sts: " & sts End Sub Sub ESB_UpdateGLDrillThru() Dim sts As Long Dim url As ESB_DURLINFO_T Dim cppDrillRegions(0 To 1) As String Dim bMerge As Integer '*************************************************************** ' Need to create a local context, if files are not on the server '*************************************************************** url.bIsLevel0 = 0 bMerge = ESB_TRUE cppDrillRegions(0) = "qtr1" url.cpURLXML = "<?xml version="1.0" encoding="UTF-8"?> <foldercontents path="/"> <resource name="Assets Drill through GL" description="" type="application/x-hyperion-applicationbuilder-report"> <name xml:lang="fr">Rapport de ventes</name> <name xml:lang="es">Informe de ventas</name> <action name="Display HTML" description="Launch HTML display of Content" shortdesc="HTML"> <url>/fusionapp/Assetsdrill.jsp?$SSO_TOKEN$&$CONTEXT$&$ATTR(ds,pos,gen,level.edge)$ </url> </action> </resource> </foldercontents>" url.cpURLName = "VB URL7" url.iURLXMLSize = 512 sts = EsbUpdateDrillThruURL(hCtx, cppDrillRegions, url, bMerge) Debug.Print "EsbUpdateDrillThruURL sts: " & sts End Sub Sub ESB_DeleteGLDrillThru() Dim URLName As String URLName = "VB URL7" sts = EsbDeleteDrillThruURL(hCtx, URLName) Debug.Print "EsbDeleteDrillThruURL sts: " & sts End Sub Sub ESB_GetGLDrillThru() Dim URLName As String Dim url As ESB_DURLINFO_T Dim intX As Integer Dim cppDrillRegions As Variant URLName = "VB URL2" sts = EsbGetDrillThruURL(hCtx, URLName, url, cppDrillRegions) Debug.Print "EsbGetDrillThruURL sts: " & sts If sts = 0 Then Debug.Print "URL Name: " & url.cpURLName Debug.Print "URL XML: " & url.cpURLXML For intX = LBound(cppDrillRegions) To UBound(cppDrillRegions) Debug.Print "URL Region: " & cppDrillRegions(intX) Next End If End Sub Sub ESB_ListGLDrillThru() Dim intX As Integer Dim URLNames As Variant sts = EsbListDrillThruURLs(hCtx, URLNames) If sts = 0 Then Debug.Print "EsbListDrillThruURL sts: " & sts For intX = LBound(URLNames) To UBound(URLNames) Debug.Print "URL Name: " & URLNames(intX) Next End If End Sub Sub ESB_GetCellDrillThruReports() Dim intX As Integer Dim mbrs(0 To 4) As String Dim pURLXMLLens As Variant Dim pURLXMLs As Variant mbrs(0) = "sales" mbrs(1) = "jan" mbrs(2) = "New York" mbrs(3) = "actual" mbrs(4) = "100-10" sts = EsbGetCellDrillThruReports(hCtx, mbrs, pURLXMLLens, pURLXMLs) If sts = 0 Then Debug.Print "EsbGetCellDrillThruReports sts: " & sts For intX = LBound(pURLXMLLens) To UBound(pURLXMLLens) Debug.Print "URL XML: " & intX Debug.Print "URL XML Len: " & pURLXMLLens(intX) Debug.Print "URL XML String: " & pURLXMLs(intX) Next End If mbrs(0) = "profit" sts = EsbGetCellDrillThruReports(hCtx, mbrs, pURLXMLLens, pURLXMLs) If sts = 0 Then Debug.Print "EsbGetCellDrillThruReports sts: " & sts For intX = LBound(pURLXMLLens) To UBound(pURLXMLLens) Debug.Print "URL XML: " & intX Debug.Print "URL XML Len: " & pURLXMLLens(intX) Debug.Print "URL XML String: " & pURLXMLs(intX) Next End If End Sub Sub Main() 'Test ESB_Init 'ESB_CreateLocalContext 'ESB_AutoLogin ESB_Login 'ESB_LoginSetPassword ESB_SetActive ESB_CreateGLDrillThru ESB_UpdateGLDrillThru ESB_GetGLDrillThru ESB_ListGLDrillThru ESB_GetCellDrillThruReports ESB_DeleteGLDrillThru 'ESB_GetGLDrillThru 'ESB_ListGLDrillThru ESB_GetCellDrillThruReports 'ESB_SetUser 'ESB_GetUser 'ESB_GetMessage 'ESB_Import 'ESB_GetVersion 'ESB_GetDatabaseInfo 'ESB_GetDatabaseState 'ESB_GetDatabaseStats 'ESB_GetDatabaseAccess 'ESB_GetGroupList 'ESB_ListConnections 'ESB_ListRequests 'ESB_GetAssociatedAttributesInfo 'ESb_GetStoresInfo 'ESB_OtlGetMemberAlias 'ESB_AddAliasCombination 'ESB_CreateGroup 'ESB_LROAddObject 'ESB_LROGetCatalog 'ESB_LROListObjects 'ESB_LROPurgeObjects 'ESB_CopyObject 'ESB_PartitionReadDefFile 'ESB_PartitionWriteDefFile 'ESB_PartitionReplaceDefFile 'ESB_PartitionValidateDefinition 'ESB_PartitionValidateLocal 'ESB_PartitionReadOtlChangeFile 'ESB_AddToGroup 'ESB_GetGroupList 'ESB_VerifyFilter ESB_Logout ESB_Term End Sub