How to schedule reports with multiple value prompts?

Hi,

I’ve been trying to schedule a report with multiple value prompts for a long time. However, i’m very much able to schedule reports with single value prompt.

Eg: Say i have a prompt text like “Select Country:” and want to pass multiple values with the help of BO SDK. I tried to pass values in this format “Australia;India;England” but the BO is taking it as a single value (Australia;India;England) instead of taking it as 3 separate values.

Can someone tell me how would i achieve to meet my requirement? Please find below my code for doing so as a reference… Hope i’m clear about what i’m expecting.

Dim WebiPlugin As Webi = New BusinessObjects.Enterprise.Desktop.Webi(myInfoObject.PluginInterface)
        Dim webi_ps1 As BusinessObjects.Enterprise.Desktop.WebiPrompts
        Dim webi_p1 As BusinessObjects.Enterprise.Desktop.WebiPrompt
        Dim iMinuteNumber
        iMinuteNumber = 1
        Dim iLogonNumber
        iLogonNumber = -1
        Dim strToken As String
        strToken = es.LogonTokenMgr.CreateWCAToken("", iMinuteNumber, iLogonNumber)

        ' Create the report engine object
        Dim webiReportEngines As ReportEngines
        webiReportEngines = New ReportEngines(strToken)

        Dim webiReportEngine As IReportEngine
        Dim webiDoc As IDocumentInstance
        webiReportEngine = webiReportEngines.getService(ReportEngineType.WI_ReportEngine)

        ' Open the webi report using the report engine
        webiDoc = webiReportEngine.OpenDocument(reportID)
        webiDoc.Refresh()

        ' Create the SI_WEBI_PROMPTS property bag
        ReportParameterUtility.PopulateWebiPrompts(webiDoc.GetPrompts(), WebiPlugin)

        ' Get the prompts object
        webi_ps1 = WebiPlugin.Prompts

        Dim isPromptAdded As Boolean = False

        For promptcount As Integer = 1 To webi_ps1.Count
            webi_p1 = WebiPlugin.Prompts.Item(promptcount)
            'Business(Unit, Group, Vertical, Horizontal, SBU1)
                 If webi_p1.Name.EndsWith("Business Unit:") Then
                    webi_p1.Values.Clear()
                    webi_p1.Values.Add(promptValue(0))
                 End If
       Next

papgust (BOB member since 2009-01-07)

Try putting a loop around this line:

webi_p1.Values.Add(promptValue(0)) 

It should look something like the following. I’m not a VB programmer so double-check the syntax:

For Each value in promptValue
	webi_p1.Values.Add(value) 
Next value

BoB LoblaW :us: (BOB member since 2007-10-23)

Hi,

Thats great! :o It worked… Thanks a lot!!


papgust (BOB member since 2009-01-07)