VBA Macros Running Before BPC Routine is Done

Hello, All -
Working on converting our BPC 7.5 templates to version 10 and I'm having an issue with our custom VBA macro codes.
In our 7.5 system, all our input templates call custom VBA macro routines when certain SAP functions are done executing (i.e.: once a Refresh is done, execute this macro code).  In 7.5, we have macro codes within the BEFORE_REFRESH, AFTER_REFRESH, BEFORE_EXPAND, and AFTER_EXPAND routines (note: our templates utilize the EvDRE function) and our custom macro codes would not run until the SAP function was done processing, which worked out perfectly however, it appears that something has changed in version 10 as all our macro codes are executing even though the SAP system is still processing in the background.  I confirmed this behavior by placing a macro stopper next to certain macro codes and noticed that VBA is already at that point of executing those codes yet in the background, I can still see the 'processing' box. In 7.5, the processing box is already gone before the custom macro code executed.  Not sure why the macros are executing when SAP is not done fully processing yet.
Has anyone encountered this type of behavior where custom VBA code is running prematurely before SAP is done processing?
In addition, it appears that SAP is no longer utilizing the Excel Status bar when certain processes are being executed. In 7.5, when a Refresh command was executed (for example), the status bar at the bottom of Excel would be updating (ready...retrieving data...calculating...formatting, etc...), which allowed us to check the Status bar for the word 'COMPLETED' as this was our indicator that SAP was done processing.  In version 10, it appears that SAP has done away with the use of the Status bar because I am no longer seeing any kind of message flowing through down there when certain SAP functions are running.  Correction: the only messages I see are 'Ready' and a brief moment of 'Calculate'.  Because nothing is appearing on the status bar, our custom macro codes are not working in the new version.
Does anyone know if this feature no longer available in version 10?
Other Information:
+ Office 2010
+ BPC v10 on Microsoft platform
+ EPM Server version: 10.0 SP16
+ EPM Add-in version: 10.0 SP21 .NET 3.5; Build: 9094
Thanks,
Carlo

ADDENDUM:
7 hours later.... to log in was "random", replies mostly not possible, two different error massages, the nice "looking for" and a generic "too many server access try later" (<<in German, my humble translation)
there IS a lot of working going on, only explination...
hope, we read some "Announcement"...
it's late here, byebye, nitynite...

Similar Messages

  • Running multiple refreshes using a VBA macro

    My company has just moved from BO 5.1.5 to BO XI 3.0 and I'm having some probelms running a VBA macro which extracts a large ammount of sales data to a text file. The macro uses an array and a For Each Next loop to enter variable details before the Refresh and then it downloads the text data, looping back to enter different Major Product values before the next refresh.
    Here is the code I'm using in BO 5.1.5 and would like to rewrite as event based code ie BeforeRefresh/AfterRefresh.
    Sub Main_Report()
        Dim Docs As Documents
        Dim Doc As Document
        Dim Rep As Report
        Dim Reps As Reports
        Dim DocNum As Integer
        Dim RepNum As Integer
        Dim Location As String
        Dim VarName As Variable
        Dim DataPro As DataProvider
        Dim FileName
        Dim Majors
        Dim MajorList
        Dim Period
        Dim Counter
        MajorList = Array("001", "002", "003")
        Period = Format(DateAdd("m", -1, Now), "YYYYMM")
        Counter = 0
    '   Enter user prompt values into query for current period and YTD
        For Each Majors In MajorList
        Counter = Counter + 1
            For i = 1 To ActiveDocument.Variables.Count
                Set VarName = ActiveDocument.Variables(i)
                If VarName.IsUserPrompt Then
                    Select Case VarName.Name
                        Case "Major Group"
                            ActiveDocument.Variables(i).Value = Majors
                        Case "Period"
                            ActiveDocument.Variables(i).Value = Period
                    End Select
                 End If
            Next i
        '   Refresh the current report and save data
            Application.Interactive = False
            ActiveDocument.Refresh
            Location = "
    seausdcff015\saracm$\My Documents\Tables\Sales\"
            Set Docs = Application.Documents
            Set Reps = ActiveDocument.Reports
        '   Export each report as "TXT" files from current document
            Set Doc = Docs.Item(1)
            FileName = Location & Doc.Name & "_" & Counter & ".txt"
            Set DataPro = ActiveDocument.DataProviders.Item(1)
            Call DataPro.ConvertTo(boExpAsciiTab, 1, FileName)
            Application.Interactive = True
        Next
    End Sub
    Can you please help. Cheers Milos.

    A coworker found this thread on asktom:
    http://asktom.oracle.com/pls/asktom/f?p=100:11:861518416236107::::P11_QUESTION_ID:10498431232211
    It sort of details a similar (if not the same) method to that above.

  • Run Data Package from custom Menu00F9/VBA macro

    HI guys,
    I have a problem:when creating VBA macro to run Data Package.
    I get the pop-up error "400" . This is the VBA code I'm using:
    Application.Run "MNU_eDATA_RUNPACKAGE(""Opening""; ""/CPMB/Opening_Balances""; ""Company""; ""Financial Processes"")"
    Have you any suggestion for me?
    Thanks
    Marco Uccello

    Hi Marco,
    I'm guessing by prompts you mean user inputs for Entity, Category, Time etc.
    These are controlled by the dynamic script associated with the data package.
    If you go to the menu eData -> Organise Packages then select a package and go through :
    Modify Package -> View Package -> Advanced
    You should get to the Data Manager Dynamic Script window.
    The following is an example of what should be in here. This is taken directly from the SAP How to Guide "How To Pass Dynamic Parameters to script logic.pdf"
    It's the "PROMPT" parts at the start that control the prompts shown to the user (and passed to the data package) :
    PROMPT(SELECTINPUT,,,,"%ENTITY_DIM%,%CATEGORY_DIM%,%CURRENCY_DIM%,%TIME_DIM%")
    PROMPT(TEXT,%WS_PERCT%,"Input W/S Percent in decimals",)
    PROMPT(TEXT,%EXP_PERCT%,"Input Exp. Percent in decimals",)
    INFO(%EQU%,=)
    INFO(%TAB%,;)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,TAB,%TAB%)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,EQU,%EQU%)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SUSER,%USER%)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPPSET,%APPSET%)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SAPP,%APP%)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,SELECTION,%SELECTION%)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,LOGICFILENAME, INCREASEPERCENTAGE.LGF)
    TASK(ZBPC_PROMPT_EXP_RUN_LOGIC,REPLACEPARAM,WS_PERCT%EQU%%WS_PERCT%%TAB%EXP_PERCT%EQU%%EXP
    _PERCT%)
    If you paste that in exactly it will resolve into the right package information which can be seen one step back (via Modify Package -> View Package).
    You can modify the prompts as appropriate for the script you are running - the one above from the how to guide has two inputs for percentages which are used within the associated script logic calculation.
    Hope this helps.
    Thanks.
    Bradley Newcombe.

  • Starting Edata From a VBA Macro

    I am using the
    Application.Run "MNU_eDATA_SELECTPACKAGE", "GL_Data_Extract", "System Files/GL_Data_Extract.dtsx", "Company", "Data Management"
    It works fine as long as you start edata first.  Is there a way that I can start edata from a VBA macro.  That way the user does not have to sign into BPC and hit edata before running the macro.
    Please let me know if there is a VBA command that will do this?
    Thanks
    Phil

    As I understand the issue you are trying to use MNU_eDATA_SELECTPACKAGE in a VBA macro.
    As stated here and elsewhere -- that is not possible but I have a workaround that seems to work OK.
    In our case we are trying to use a Button to both send the data and then kickoff a DataManager macro.
    So the macro we assigned to the button is as follows:
    Sub SendandStartPackage()
        Application.Run ("MNU_eSUBMIT_REFSCHEDULE_BOOK_CLEARANDREFRESH")
        Range("J61").Select
    End Sub
    Then in cell J61 we put the EVMNU as follows:
    =EVMNU("MNU_eDATA_SELECTPACKAGE","run DM","Import MasterData,/CPMB/IMPORT_MASTER,Company,Data Management")
    Now when we click the button, the first macro runs and then the cell J61 is selected which starts the second macro.
    I have not tested this extensively but it worked when I tried it.
    Note: This is NW version syntax.

  • How Can I Schedule a Deski Report in Infoview that has a VBA Macro

    Hi experts,
    i've made a report that has a vba Macro. I published it in infoview. If I launch it manually (clicking on the refresh button) the macro works normaly. If I schedule it the macro doesn't work.
    What can I do?
    Is it possible to make a program that simulate the opening and click on the refresh button?
    Or i there is another solution?
    Here is my Macro:
    Private Sub Document_AfterRefresh()
    Dim filtervar As Variant
    Dim filterText, Filter As Long
    Dim DocName, NewName As String
    Dim Pathing, TodaysDate As String
    Dim folderName As String
    TodaysDate = Format(Date, "DDMMYYYY")
    Pathing = "
    Ktsdwh0\c$\OutputBO\"
    DocName = ThisDocument.Name
    filterText = "Dpre Cod Produttore"
    filtervar = ThisDocument.Evaluate("=<" & filterText & ">", boUniqueValues)
    For Each sepval In filtervar
        Filter = sepval
        For n = 1 To ThisDocument.Reports.Count
            Call ThisDocument.Reports(n).AddComplexFilter(filterText, "=<" & filterText & "> = " & Filter)
            ThisDocument.Reports(n).ForceCompute
        Next n
            MkDir (Pathing & Filter & "\")
            NewName = Pathing & Filter & "\" & Filter & "-" & TodaysDate & "-" & DocName   'for Prova_Prod.rep
    '        NewName = Pathing & Filter & "-" & TodaysDate & "-" & DocName   'for Prova_Prod.rep
            ThisDocument.ExportAsPDF (NewName)           'to Save as PDF
    Next
        For n = 1 To ThisDocument.Reports.Count
          Call ActiveReport.AddComplexFilter(filterText, "=<" & filterText & "> = <" & filterText & ">")
            ' To delete a Complex Filter, you set it equal to itself...
          ActiveReport.ForceCompute
        Next n
    End Sub
    Please Help!
    Best regards
    Camillo

    Hi Philippe,
    If you are using Windows 2003 with SP2 then it might be the issue as already logged for BOXIR2.
    You can test the issue by using only Windows 2003 without SP2.
    In case your operating system is only windows 2003 then following information and code might be helpful for you to resolve the issue.
    There are a number of things to check when setting up a macro to work through Infoview or scheduled. The first thing is that the macro needs to be triggered to run. This is done by putting a call to the macro in the Document_BeforeRefresh or the Document_AfterRefresh event handler.
    The report server and job server are designed to process one report at a time. Through a macro it is possible to open more than one report, and do various processing with those additional reports. Since the report and job servers are not designed to process more than one report, your macro should not open an additional report.
    The fact that only one report is processed at a time also affects the syntax you should use when referring to a document or report object. In the DeskI client you can use the ThisDocument object to refer to the report which is running the macro. You can also use the ActiveDocument object to refer to the report that is currently displayed. Most of the time these two objects will point to the same report. When the report server or job server process a report there would never be the possibility for a different report to be active, so the ActiveDocument object does not exist. This also applies to the ActiveReport object. Instead of using ActiveDocument your macro code should use the ThisDocument object. Instead of using the ActiveReport object you should use ThisDocument.Reports.Item(1) to refer to this first report tab in a report.
    These items are the most common issues that will cause a macro not to run through Infoview or when scheduled. The best way to debug a macro which is not working in either of those places is to include code which will log the macro's progress to a file. This makes it easy to determine exactly which line of code is causing issues so that it can potentially be corrected.
    #Region u201CWeb Form Designer Generated Code "
    'This call is required by the Web Form Designer.
    <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    End Sub
    Private Sub Page_Init(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Init
    'CODEGEN: This method call is required by the Web Form Designer
    'Do not modify it using the code editor.
    InitializeComponent()
    End Sub
    #End Region
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
    Dim myInfoStore As InfoStore
    Dim myEnterpriseSession As EnterpriseSession
    myInfoStore = CType(Session("InfoStore"), InfoStore)
    myEnterpriseSession = CType(Session("EnterpriseSession"), EnterpriseSession)
    Dim DOCUMENT_NAME As String = "document_name"
    Dim query As String = "Select SI_ID, SI_NAME, SI_SUBJECT, " _
    & "SI_COMMENTS, SI_OWNER From CI_INFOOBJECTS Where SI_KIND = 'FullClient' " _
    & "AND SI_INSTANCE=0 AND SI_NAME='" + DOCUMENT_NAME + "'"
    Dim myInfoObjects As InfoObjects = myInfoStore.Query(query)
    Dim myInfoObject As InfoObject = myInfoObjects(1)
    Dim myDeskiDoc As FullClient = CType(myInfoObject, FullClient)
    Dim mySchedulingInfo As SchedulingInfo = myDeskiDoc.SchedulingInfo
    mySchedulingInfo.Type = CeScheduleType.ceScheduleTypeOnce
    mySchedulingInfo.RightNow = True
    Dim myFullClientFormatOptions As FullClientFormatOptions = myDeskiDoc.FullClientFormatOptions
    myFullClientFormatOptions.Format = BusinessObjects.Enterprise.Desktop.CeFullClientFormat.ceFullClientFormatFullClient
    myInfoStore.Schedule(myInfoObjects)
    End Sub
    End Class
    I hope this will help you.
    Regards,
    Sarbhjeet Kaur

  • Blocked Error Messages and VBA Macros

    I have a client who is in the process of migrating their Essbase 6 VBA macros to 7. Will the error messages regarding the different APIs impede upon the macros running correctly and fully?<BR><BR>I don't think this would be the case but wanted to double-check...

    Hello.
    I have created an dynamic Excel VBA template which include as well this log-function.
    Public Function Create_Log(lngRow As Long, lngCol As Long, strLog As String)
        Dim lngCounter As Long
        Dim lngLast_Col As Long
        Dim strLog_Line As String
        lngCounter = lngRow
        lngLast_Col = lngCol
        strLog_Line = strLog
        If ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Value = "" Then
            ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Value = strLog_Line
        Else
            ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Value = ThisWorkbook.Sheets("SAP_PROCESS").Cells(lngCounter, lngLast_Col).Text & Chr(10) & strLog_Line
        End If
    End Function
    In my process code I use this function like this:
    'Log
    If Session.FindById("wnd[0]/sbar").Text <> "" Then Create_Log lngCounter, lngLast_Col, Session.FindById("wnd[0]/sbar").Text
    We can check as well if we receive an error (sy-msgty = 'E')
    If Session.FindById("wnd[0]/sbar").messagetype = "E" Then Create_Log lngCounter, lngLast_Col, Session.FindById("wnd[0]/sbar").Text
    Hope this give you an idea how to handle this.
    Best regards,
    Holger

  • Powershell Variable from Excel.VBA Macro

    Hi Guys!
    I don't know if what i'm asking you is achievable.
    I've learned how to pass variables/arguments from powershell to Excel/VBA Macro but i need to do the opposite thing.
    This is an example of what  i want:
    Powershell                                                                      
                       Excel/VBA Macro
    $Input=1   ---------------------------------------------------------------->   Sub Macro(input)
    $excel.Run("Macro",$Input)                                                              
      Output=input +6
    $output (Expected 7)   <----------------------------------------------------  return Output
    I don't know how to do this can you help me please?
    A

    Ok guys those are the script.
    Macro:
    Sub CreatePWD()
    Dim PWD As String
    Dim i As Integer
    Dim Max As Integer
    Dim F1 As Worksheet
    Set F1 = ThisWorkbook.Worksheets("Foglio1")
    Max = F1.Range("A1").Value
    For i = 1 To Max
    If Int((2 * Rnd) + 1) = 1 Then
    PWD = PWD & Chr(Int((90 - 65 + 1) * Rnd + 65))
    Else
    PWD = PWD & Int((9 - 0 + 1) * Rnd + 0)
    End If
    Next i
    MsgBox PWD
    End Sub
    Powershell:
    $Excel = New-Object -ComObject excel.application
    $Excel.visible=$false
    $Version = "C:\Users\Alberto Corona\Desktop\Cartel1.xlsm"
    $WorkBook= $Excel.workbooks.open($Version)
    $WorkSheet= $WorkBook.worksheets.item(1)
    $WorkSheet.cells.item(1,1)=5
    $Excel.Run("CreatePWD")
    $WorkBook.save()
    $WorkBook.close()
    $Excel.quit()
    The result of macro is like "52UT7" i want a variable in powershell called $PWD that contain the value of the macro. 
    Hope the problem is clear now.
    Thanks
    A

  • Unknown macro running on CTRL+ALT+D

    I have an unknown macro running when I press CTRL+ALT+D on PS.7 (to try to feather my selection). That keyboard shortcut used to work perfectly before. I have no idea what this macro is and if it is running off Vista or PS. The macro triggers a series of tool in PS. At the end, the Notes tool is selected.
    How to I troubleshoot something like that?
    Thanks for any advice.
    Pascal

    On second thought in ps 7 i don't think actions can have that shortcut and i'm not sure you can asign that shortcut with a script if you have scripting support installed for ps 7 unless someone asigned a shortcut to one of the sample VB
    scripts that comes with scripting support.
    Do you have the optional scripting plugin for photoshop 7 installed?
    Do you have a mouse driver or system utility that can assign shortcuts to particular programs (usually using a macro that one edits)?
    Just to be clear we are talking about photoshop 7?

  • Need Help Converting a VBA Macro to AppleScript 2.1.2 for Outlook 2011

    Hello AppleScript Experts:
    Can somebody help me convert the below VBA Macro to an equivalent AppleScript 2.1.2 for Mac Outlook 2011 (Version 14.1.3)
    I have a VBA macro program that pops message box when somebody sends an email to an external email address outside of the business domain name. I have deployed the below on WINDOWS 7 MS OFFICE OUTLOOK 2007/2010 and it's
    working successfully.
    I have few users using MAC Outlook 2011 v.14.0.1 & 14.1.3. I need to deploy the same application for MAC users.
    Here is the program...
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecipient As Outlook.Recipient
    Dim strExternalEmailAddress As String
    Dim strInternalEmailAddress As String
    Dim oRecip As Outlook.Recipient
    Dim oEU As Outlook.ExchangeUser
    Dim oEDL As Outlook.ExchangeDistributionList
    Set objRecipients = Item.Recipients
    strTemp = ""
    For Each objRecipient In objRecipients
        Set oRecip = Application.Session.CreateRecipient(objRecipient.Address)  
        If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
            strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
            strExternalEmailAddress = strExternalEmailAddress & vbCrLf
        Else
            oRecip.Resolve
            If oRecip.Resolved Then
                Select Case oRecip.AddressEntry.AddressEntryUserType
                    Case OlAddressEntryUserType.olExchangeUserAddressEntry
                        Set oEU = oRecip.AddressEntry.GetExchangeUser
                        If Not (oEU Is Nothing) Then
                        End If
                    Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry
                        Set oEDL = oRecip.AddressEntry.GetExchangeDistributionList
                        If Not (oEDL Is Nothing) Then
                        End If
                    Case Else
                        If (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") = 0 Then
                            strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strExternalEmailAddress = strExternalEmailAddress & vbCrLf
                        ElseIf (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") <> 0 Then
                            strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strInternalEmailAddress = strInternalEmailAddress & vbCrLf
                        ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") = 0 Then
                            strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strExternalEmailAddress = strExternalEmailAddress & vbCrLf
                        ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") <> 0 Then
                            strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strInternalEmailAddress = strInternalEmailAddress & vbCrLf
                        End If
                End Select
            Else
                If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
                    strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
                    strExternalEmailAddress = strExternalEmailAddress & vbCrLf
                ElseIf InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") <> 0 Then
                    strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
                    strInternalEmailAddress = strInternalEmailAddress & vbCrLf
                End If
            End If
        End If
    Next
    If Len(strExternalEmailAddress) > 0 Then
        If MsgBox("You are about to send this email message to one or more individuals outside of COMPANY.  Before you send the message," & _
        " please review the list below and confirm that you have addressed the message to the intended recipients." & vbCrLf & strExternalEmailAddress & vbCrLf & _     "Please click 'Yes' to send the message or 'No' to make changes to the recipients.", vbYesNo + vbDefaultButton2) = vbNo Then
            Cancel = True
        End If
    End If
    End Sub

    Hello AppleScript Experts:
    Can somebody help me convert the below VBA Macro to an equivalent AppleScript 2.1.2 for Mac Outlook 2011 (Version 14.1.3)
    I have a VBA macro program that pops message box when somebody sends an email to an external email address outside of the business domain name. I have deployed the below on WINDOWS 7 MS OFFICE OUTLOOK 2007/2010 and it's
    working successfully.
    I have few users using MAC Outlook 2011 v.14.0.1 & 14.1.3. I need to deploy the same application for MAC users.
    Here is the program...
    Private Sub Application_ItemSend(ByVal Item As Object, Cancel As Boolean)
    Dim objRecipient As Outlook.Recipient
    Dim strExternalEmailAddress As String
    Dim strInternalEmailAddress As String
    Dim oRecip As Outlook.Recipient
    Dim oEU As Outlook.ExchangeUser
    Dim oEDL As Outlook.ExchangeDistributionList
    Set objRecipients = Item.Recipients
    strTemp = ""
    For Each objRecipient In objRecipients
        Set oRecip = Application.Session.CreateRecipient(objRecipient.Address)  
        If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
            strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
            strExternalEmailAddress = strExternalEmailAddress & vbCrLf
        Else
            oRecip.Resolve
            If oRecip.Resolved Then
                Select Case oRecip.AddressEntry.AddressEntryUserType
                    Case OlAddressEntryUserType.olExchangeUserAddressEntry
                        Set oEU = oRecip.AddressEntry.GetExchangeUser
                        If Not (oEU Is Nothing) Then
                        End If
                    Case OlAddressEntryUserType.olExchangeDistributionListAddressEntry
                        Set oEDL = oRecip.AddressEntry.GetExchangeDistributionList
                        If Not (oEDL Is Nothing) Then
                        End If
                    Case Else
                        If (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") = 0 Then
                            strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strExternalEmailAddress = strExternalEmailAddress & vbCrLf
                        ElseIf (objRecipient.Type = 1) And InStr(1, oRecip, "company.org") <> 0 Then
                            strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strInternalEmailAddress = strInternalEmailAddress & vbCrLf
                        ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") = 0 Then
                            strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strExternalEmailAddress = strExternalEmailAddress & vbCrLf
                        ElseIf (objRecipient.Type = 2) And InStr(1, oRecip, "company.org") <> 0 Then
                            strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & oRecip & "; "
                            strInternalEmailAddress = strInternalEmailAddress & vbCrLf
                        End If
                End Select
            Else
                If InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") = 0 Then
                    strExternalEmailAddress = strExternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
                    strExternalEmailAddress = strExternalEmailAddress & vbCrLf
                ElseIf InStr(1, oRecip, "@") > 0 And InStr(1, oRecip, "company.org") <> 0 Then
                    strInternalEmailAddress = strInternalEmailAddress & objRecipient.AddressEntry & " - " & objRecipient.Address & "; "
                    strInternalEmailAddress = strInternalEmailAddress & vbCrLf
                End If
            End If
        End If
    Next
    If Len(strExternalEmailAddress) > 0 Then
        If MsgBox("You are about to send this email message to one or more individuals outside of COMPANY.  Before you send the message," & _
        " please review the list below and confirm that you have addressed the message to the intended recipients." & vbCrLf & strExternalEmailAddress & vbCrLf & _     "Please click 'Yes' to send the message or 'No' to make changes to the recipients.", vbYesNo + vbDefaultButton2) = vbNo Then
            Cancel = True
        End If
    End If
    End Sub

  • Schedule a VBA macro based DeskI Report.

    Hi,
    We have a requirement to schedule a VBA macro based report via CMC and Infoview and I would like to acheive the below. Please help.
    1) To save the report output as CSV file after refresh in Xi R2 and I have the following code, which runs fine if I run manually, but if I schedule it in Xi R2, it does not run.Please help.
    Private Sub Document_AfterRefresh()
    Dim boDP As busobj.DataProvider
    Set boDP = ThisDocument.DataProviders.Item(1)
    OUTPUT_FILE_CSV = TARGET_FILE_DIR & OUTPUT_FILE_NAME & Format(Now, "YYYYMMDD") & "_" & Format(Now, "hhnnss") & ".csv"
    Call boDP.ConvertTo(5, 1, OUTPUT_FILE_CSV)
    End Sub
    The OUTPUT_FILE_CSV & TARGET_FILE_DIR are declared as global varilable. Please help.
    2) A prompt to be filled and the following syntax works fine when I run the macro manually. But does not work when I schedule in CMC (Variable prevented report to refersh error)..
    Private Sub Document_BeforeRefresh(Cancel As Boolean)
    newfromdate = DateAdd("M", -4, DateValue(Now))
    Application.Variables.Item("BOL Date").InterpretAs = boStringVariable
    Application.Variables.Item("BOL Date").Value = newfromdate
    End Sub
    Please advice.
    Thank You.

    Hi Sundaresan,
    Following are the important points related to scheduling deski report containing VBA macro:
    1. BusinessObjects XI Release 2 supports macros in
        Desktop Intelligence in InfoView, both when viewing or
        scheduling the document, but with caveats.
    2. There are slight differences in the execution flow when
        viewing a Deski in InfoView as opposed to viewing on
        the Desktop Intelligence client.
    3. A restriction on scheduling documents is that the
        scheduler can only open one document at a time u2013 so
        if you have macros that try and access another Deski
       document, it will fail.
    4. Whether a macro executes successfully or not would
        depend on the functionality used in the macro.
    May i know which service pack you are using,as this is known issue and it works fine with BOXI R2 SP2 and higher versions.
    I hope this helps you.
    Regards,
    Snehal

  • VBA Macro

    Hi All ,
    In most of my layouts the lead column is dynamic .For which I need to define VBA MACRO so that excel formulae are calculated properly .
    I am not that conversant with  macro of excel .Can any
    body help me how to start with .If any documentation is available on how to create a macro , it will be most welcome .
    Regards
    manoj

    Hi
    Consider that in BPs with Excel macro you don't modify the data in the cube but only on the excel presentation folder
    TO modify and write the proper data in cube and to save them you should use fox formulas.
    About BEX Macro integration check this link
    http://www.bwexpertonline.com/downloads/boeke04.doc
    BEx with VBA Code
    Embedded VBA code in Workbook to start BEX toolbar
    hope this helps.
    Andreas

  • Runtime Error '109' - Business Object 6.5 - VBA macro

    I am getting the same Runtime error '109' when trying to run my old reports(6.5) which have VBA Macros with the new XI 3.1 DeskI. Here's what I did:
    1) Installed BO XI 3.1 client Tools on a machine which has BO 6.5 client tools
    2) Opened the .rep in the XI 3.1 DeskI. CLick OK when it warns you that it is a earlier version and If you want to convert to new version.
    Then when i try to run the report i get this error. The same .rep runs just fine with 6.5 Full Client.
    Any Ideas guys? Am I  missing any references or something ?
    Thanks
    Edited by: Larry Sherman on Aug 14, 2009 8:28 PM

    Larry, I have seen some instances of VBA code not running in  the new Deski version, possibly some calls are different. You will want to open an SAP incident for eng. to take  a  look at the VBA code.

  • How to guarantee that an iView in the framework will run before the TLN?

    Hello,
    I have developed an iView that I would like to put in the framework. I would like to guarantee that :
    1. This iView will run before the top level navigation one runs.
    2. This iView will run only once per session.
    Any suggestions...?
    Roy

    Hi Roy,
    ad 1)
    The method is there. Maybe your wizard in NWDS is not creating it automatically. After all - it's just a wizard.
    The method is already implemented in your super class. Just type 'super.' and your IDE will show you the method.
    Now overwrite it. And implement your code.
    That's Java. Cool!
    ad 2)
    Whenever you send a request to the portal a component called 'Request Manager' is involved.
    This Request Manager builds up the whole structure of your page, the so called POM-tree.
    (POM stands for 'Portal Object Model').
    This tree contains all iViews the page is build of.
    The iViews may be structured (i.e. within pages). That's why the POM is a tree and not just a list.
    The Request manager determines all the iViews and their structure before they get rendered/called/processed.
    If all iViews are determined their doOnNodeReady Methods and their doOnPOMReady methods are called. See the link contained in my first answer
    They are called one by one as they are stored hirarchically in the tree.
    If all doOnNodeReady and all doOnPOMReady Methods have been processed, the rendering of the iViews starts
    This is done by calling the doContent method.
    HTH,
    Carsten

  • My java program runs fine even if i don't specify access specifier of class

    Hi,
    My java program runs fine even if i don't specify access specifier of class as public .
    Then why do they say that atleast one class should be specified as public.
    please help.

    public access specifier is the default access
    specifier
    so if you dont give the access specifier before the
    class name it is not wrong.I think that you are wrong. The default specifier is package or "package-private".
    See here:
    http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html
    Message was edited by:
    petes1234

  • VBA not responding in BPC Book Publishing

    Is there a trick to running VBA inside of the BPC book publishing functionality? I cannot get excel VBA to execute when using the BPC publishing to generate a pdf file.
    Any ideas?
    Thanks,
    Cary Schulz

    You may need to check the BPC Notes or lob a question to the BPC support team, but I do not believe that VB code will execute during the book publication process. My general advice, which many designers do not appreciate, but it is generally not optimal to use VB code in the excel templates during ordinary BPC implementations.  The code often slows the template processes, and causes headaches for a customer to troubleshoot.
    But please check with Support for a confirmation of the use with BPC Publishing.

Maybe you are looking for

  • Can not see the menu of New Business Components Package in jdeveloper

    I am just follow the developer guide. and when I create the Business Components Package, the guide said that ======================================== In the JDeveloper Navigator, select the OA Project where you want to create your package. From the m

  • Customer support are the worst

    Hello to all.  I have HP Pavilion Elite that lost the driver for the bluetooth.  I called the tech support to get the name of the company who made the bluetooth driver.  I was transfered to India.  They guy refused to tell me who is the name of the c

  • Creating Sequential List workflow in VS 2012

    Hi, How to create a sequential workflow in VS 2012 ? I have created sequential workflow earlier in VS 2010, and I was able to do coding on the cs page. Now in SharePoint 2013, I can see the workflow.xaml file and elements.xml file only. I am looking

  • Help with Scrolling Text Item.

    Hi , need help with making a text item scrollable. i.e. A field is 30 characters and i can only display 10 characters, now what I would like is a scroll bar under the text item. Is this possible. I am using Forms 5. Thanx for any help. Pankaj Patel.

  • Comma separated output into columns

    Hi, I've the following Query : select ParameterValue  FROM Event.vEvent   join event.vEventParameter on event.vEventParameter.EventOriginId=event.vEvent.EventOriginId  where EventNumber=0 which gives the following output in a single column: VSSDATA_F