How to capture the SSAS server response to an XMLA command issued in VB Script

Hi all,
I have an SSIS package that contains a VB script task that sends XMLA commands to my SSAS server.  (I am using a script task and not the DDL task because there is lengthy logic required to build the XMLA command and send it to the appropriate
server.)
The problem I have is that while I have been able execute the XMLA command against the SSAS server, I am not able to capture the full response from the server.  Warnings are not being captured and other data is missing.  My code currently is as
follows:
Dim cn As New AdomdClient.AdomdConnection
Dim cmd As New AdomdClient.AdomdCommand
Dim returnValue As Object
cn.ConnectionString = "Data Source=MyServer;Initial Catalog=MyDB;Provider=MSOLAP.5;Integrated Security=SSPI;"
cn.Open()
cmd.Connection = cn
cmd.CommandText = fileReader
On Error Resume Next
returnValue = cmd.Execute()
MsgBox(Err.Description)
cn.Close()
Note that "fileReader" is the string containing the XMLA command.
If the xmla processes a dimension, and there are duplicate keys (for which it is set to error and stop), Management Studio give the response shown below, which includes the warning indicating there are duplicate keys:
<return xmlns="urn:schemas-microsoft-com:xml-analysis">
<results xmlns="http://schemas.microsoft.com/analysisservices/2003/xmla-multipleresults">
<root xmlns="urn:schemas-microsoft-com:xml-analysis:empty">
<Exception xmlns="urn:schemas-microsoft-com:xml-analysis:exception" />
<Messages xmlns="urn:schemas-microsoft-com:xml-analysis:exception">
<Warning WarningCode="1092550658" Description="Errors in the OLAP storage engine: A duplicate attribute key has been found when processing: Table: 'MyDim', Column: 'MyCol', Value: 'XYZ'. The attribute is 'MyAttr'." Source="Microsoft SQL Server 2012 Analysis Services" HelpFile="" />
<Error ErrorCode="3238002695" Description="Internal error: The operation terminated unsuccessfully." Source="Microsoft SQL Server 2012 Analysis Services" HelpFile="" />
However, in the VB script it captured in Err.description just some of the error: "Errors in the OLAP storage engine: An error occurred while the "MyAttr" attribute of the "MyDim" was being processed".
Is there anyway to capture in the VB Script the full XML error as it appears in Management Studio?
Help would be much appreciated!
Thanks
Guy

Another method for executing XMLA is using Microsoft.AnalysisServices.Xmla;
C# code will look like below:
using Microsoft.AnalysisServices.Xmla;
  XmlaClient clnt = new XmlaClient();
                  string strOut = "", strMsg="";
                  string strXmla = File.ReadAllText(strXmlaFileName);
  clnt.Connect(strServer);
                  clnt.Execute(strXmla, "", out strOut, false, true);
                  clnt.Disconnect();
                  //check status
                  //Create the XmlDocument.
                  XmlDocument doc = new XmlDocument();
                  doc.LoadXml(strOut);
                  //display Error
                  XmlNodeList elemList = doc.GetElementsByTagName("Error");
                  for (int i = 0; i < elemList.Count; i++)
                      Console.WriteLine(elemList[i].Attributes["Description"].Value);
                      strMsg += elemList[i].Attributes["Description"].Value + "\r\n" ;
                      ++intExitCode;
                  //display warnings
                  elemList = doc.GetElementsByTagName("Warning");
                  for (int i = 0; i < elemList.Count; i++)
                      Console.WriteLine("Warning:" + elemList[i].Attributes["Description"].Value);
                      strMsg += elemList[i].Attributes["Description"].Value + "\r\n" ;
Hope this helps.
Arun

Similar Messages

  • How to capture the values given in SSC1 transcation?

    Hello All,
    Can anyone suggest me, how to capture the values given in SSC1 transaction?

    Hello Clemens Li,
    Requirement: Integration of SAP Appointment Calendar with Gmail Calendar
    If I create an appointment in SSC1 transaction, it will appear in SAP Appointment calendar. The same thing should get updated in Gmail calendar of SAP user and also in the guest Gmail calendar if exists in appointment.
    So, I have to capture the input values given in SSC1 transaction while creating an appointment in SAP and try to export those values to web services using some function module.  Sending those values to web services completes my task.
    Means, if I create an appointment in SAP, at the same time, the values which I gave must get exported to some object. So that I can send them to web services.
    But my actual problem is with capturing the input values given to SSC1 transaction.
    How can I get those values out to some internal table?
    Another one is, I did not found any BADI to enhance SSC1 transaction so that I can include my code there.
    If you know any enhancements in SSC1, please let me know.
    If you want any more clarification, please let me know.
    Thanks for the response
    DNR Varma

  • How to capture the first execution of a report

    Hi,
    I am executing a report in background. The first time the report is executed I have to do a different processing. After the 1st execution I have to different processing.
    Someone please tell me how to capture the 1st execution of a report. Is there a system variable ?
    Appreciate your <removed by moderator> response.
    Thanks,
    Dikshitha G
    Edited by: Thomas Zloch on May 12, 2011 11:36 AM

    Keshav.T wrote:
    Are you going to create a Z table for this ???? ... Is there nobody to advice you in your firm ???
    Hello Keshav,
    A couple of years ago i would have recommended using the INDX table, but it has got it's demerits.
    Maintenance of Z-table is easier than the INDX table. Say there is some error in the program & you want to override the flag. Will it be easier to do so in the INDX table or via SM30 for the Z-Table?
    As a matter-of-fact i will recommend using the solution provided by Florian the TVARVC technique.
    1. Create a parameter(specific to your program) & transport it.(See the trxn STVARV)
    2. In your program check the value of this param & set it accordingly.
    Using TVARVC you will 2 birds with one stone:
    1. You don't have to create a custom table.
    2. Easy maintenance via STVARV trxn.
    Hope you get the point!
    Cheers,
    Suhas
    PS: In our system we have a Z-table designed specifically for this particular purpose. All the programs having this kind of requirement refer to this table.

  • How to Capture the File Names of any extension using ssis

    Hello,
    Can you please let me know on how to Capture the File Names of any extension(EG : xls,text,.csv etc) at a time  and stores in excel file  using SSIS?
    Any help would be appreciated.
    Thanks,
    Vinay s

    If you need to act differently on each file type separately or if not all types of files are wanted, i.e. the Filespecifier cannot be *.* in the Foreach loop:
    In the ssis package
    make 3 variables:
    to store the file extension, e.g. User::CurrentExtension of type string
    to store the filename found in the directory: @CurrentFilename
    to store the name of the directory where the files reside e.g. User::CurrentDirectory
    make a foreach loop of type Foreach Item enumerator:
    in the items list you add each file extension that you need
    txt
    csv
    xls
    xlsx
    As Variable mappings map the CurrentExtension to Index 0
    Inside this foreach loop add another foreach loop of type Foreach File enumerator, in the collection Expressions
    add Expression Directory , set to @[User::CurrentDirecotry]
    add Expression FileSpec, set to "*." + @[User::CurrentFileExtension]
    In the Variable mappings, map Variable user::CurrentFilename to Index 0
    Inside this loop use Execute SQL Task to insert the filename in a Excel connection.
    Jan D'Hondt - SQL server BI development

  • Error interpreting the mail server response in Messenger Express

    Background:
    Migrated from Sparc running iMS 6.0 to Linux running iMS 6.3 (from CommSuite 5)
    Problem:
    Some users, some times experience problems using Messenger Express. They receive the following error in their web browsers: Error interpreting the mail server response.
    Attempted solutions:
    1) 120230-20 -- no change in behavior
    2) reconstruct -r -- didn't fix the issue
    3) Support case with Sun -- tech seems to be guessing as a solution and not trying to troubleshoot the issue (growing frustration -- those I am here)
    Data gathered:
    I turned on the telemetry logging for this user and in the end of the imap session, I see:
    0.002>)F OK Completed
    <30.747<C UNSELECT
    0.003>C OK CompletedNETWORK ERROR: Connection reset by peer
    LOGOUT <username> 2007/7/17 8:46:07 - 2007/7/17 8:48:15
    This seems to come and go (working sometimes and not working others) for a few (5 or so) users, though, I haven't found any correlation between the users or how they differ from anyone else. Checking email via POP or IMAP works fine (just not via Messenger express).
    What else can I look at?

    Hi,
    Shane...thank you so much. <refrains from bashing Sun
    Support at this point>I should point out that myself and Jay are also Sun Support (we answer forum questions in our spare time).
    We have a valid support contract and the tech has
    never indicated that he has done any research into
    this issue -- he only keeps throwing out ideas based
    off of nothing. I asked him what he knows about the
    mentioned bug. awaiting response.I couldn't comment on this without looking at the case notes.
    <pushing my luck> Is there anything I can provide you
    which would help diagnose this? Based off of the
    logs (snips i provided u before), it does indeed
    seem to be related to the email
    headers...specifcially headers SpamAssassin added.What's the Sun support case #? Have you provided the full logs (rather then just snips) to the support engineer?
    Thanks again -- you're doing a great job.All part of the service.
    Regards,
    Shane.

  • Unable to capture the Citrix network response time using OATS Load testing.

    Unable to capture the Citrix network response time using OATS Load testing. Here is the scenario " in our project users logs into Citrix network and select the Hyperion application and does the Transaction and the Clients wants us to simulate the same scenario for load testing. We have scripted starting from Citrix Login and then launching Hyperion application. But the time taken to launch the Hyperion Application from Citrix network has not been captured whereas Hyperion Transaction time have been recorded. Can any help to resolve this issue ASAP?

    Hi keerthi,
    1. I have pasted the code for the first issue
    web
                             .button(
                                       122,
                                       "/web:window[@index='0' or @title='Manage Network Targets - Oracle Communications Order and Service Management - Order and Service Management']/web:document[@index='0' or @name='1824fhkchs_6']/web:form[@id='pt1:_UISform1' or @name='pt1:_UISform1' or @index='0']/web:button[@id='pt1:MA:0:n1:1:pt1:qryId1::search' or @value='Search' or @index='3']")
                             .click();
                        adf
                        .table(
                                  "/web:window[@index='0' or @title='Manage Network Targets - Oracle Communications Order and Service Management - Order and Service Management']/web:document[@index='0' or @name='1c9nk1ryzv_6']/web:ADFTable[@absoluteLocator='pt1:MA:n1:pt1:pnlcltn:resId1']")
                        .columnSort("Ascending", "Name" );
         }

  • How to give the application server file path in the module pool programming

    Hi,
         Could somebody help me how to provide the application server file path in module pool programming once the logo is uploaded to sap system.
      For eg I have imported a logo name ‘owens’ into sap system by using transaction ‘se78’; now I need to call the path in the below url,
    if container2 is initial.
    CREATE OBJECT CONTAINER2
      EXPORTING
        CONTAINER_NAME              = 'PICTURE_CONTAINER2'.
    CREATE OBJECT PICTURE2
      EXPORTING
        PARENT = CONTAINER2.
    CALL METHOD PICTURE2->SET_DISPLAY_MODE
      EXPORTING
        DISPLAY_MODE = CL_GUI_PICTURE=>display_mode_fit_center
      EXCEPTIONS
        ERROR        = 1.
    CALL METHOD PICTURE2->LOAD_PICTURE_FROM_URL
      EXPORTING
        URL    = " ? "
      EXCEPTIONS
        ERROR  = 1
        Others = 2.
    endif.
    Thanks in advance
    Deepu

    hi Deepu,
    Use FM '/SAPDMC/LSM_F4_FRONTEND_FILE' for fetching the data from the application server path/presentation server path
    Regards,
    Santosh

  • How to capture the Logout time in xMII

    Hi Friends,
    How to capture the logout time in xMII when the user clicks on Logout link
    Thanks

    Srikanth,
    It would be better to use a database table(s) to store your audit trail information than an xml file, which could grow beyond a manageable size and then require housekeeping efforts and file rolling, etc.  It would also be much easier to query user related information out of the logs, pareto charts for failed vs. successful login attempts, etc. if the data was stored in a database.
    Have you considered modifying the Relogin.jsp page link in the portal's sub-menu bar?  How about making your own version of this web page and changing the link pointer?  Keep in mind that whatever result you come up with here will need a significant update for NetWeaver UME compatibility in version 12.0.
    Regards,
    Jeremy

  • How to capture the current info in the top-of-page event in Reuse block dis

    How to capture the current info in the top-of-page event in Reuse block dis

    Hi Geetha,
         If you don't have any information to pass the Heading Block, then why you are using this event ?
         please comment/ remove that TOP_OF_PAGE code. and use subtotal code in field catalog block.
          you can use below code for subtotal. 
          FORM field_catalog .
                    gs_fcat-do_sum = &2.
              fcat : 'WRBTR' '15' 'X' ' ' ' ' 'WRBTR' 'Amount',
           ENDFORM.
           Regards,
           Kunjan

  • How to capture the data entered in a textfield in a JTable

    How to capture the data entered in a textfield present in a cell of a textfield or how to add listener to this textfield

    A sample of my code is:
              model = new GridDisplayTableModel(gridDisp,columnName,getRows(),getCols());
              final ComboRenderer cRenderer = new ComboRenderer();
              final TextFieldRenderer tRenderer = new TextFieldRenderer();
              combo.addItem("one");
              combo.addItem("two");
              combo.addItem("three");
              final JTextField textfield = new JTextField();
              final DefaultCellEditor cmbEditor = new DefaultCellEditor(combo);
         //     final JEnterDataCellEditor textEditor = new JEnterDataCellEditor(12);
              final DefaultCellEditor textEditor = new DefaultCellEditor(textfield);
              rm = new RowEditorModel();
              table = new JTable(model){
         public TableCellRenderer getCellRenderer(int row, int column) {
              int posx = 0;
                   int posy = 0;
                   TableCellRenderer renderer = null;
         for(int l=0;l<getDataVec().size();l++)
                   beanObj =(Helperbean)dataVec.elementAt(l);
                   posx = beanObj.getPosx();
                   posy = beanObj.getPosy();
                   if(row==posx && column==posy)
                             if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("textfield"))
                                  rm.addEditorForRow(row,textEditor);
                                  renderer = tRenderer;
                             else if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("combo"))
                                  rm.addEditorForRow(row,cmbEditor);
                                  renderer = cRenderer;
                             break;
                        renderer = super.getCellRenderer(row, column);
              //     System.out.println("getEditor"+rm.getEditor(1));
         return renderer;
    public TableCellEditor getCellEditor(int row, int col) {   
         int posx = 0;
         int posy = 0;
         TableCellEditor tmpEditor = null;
    for(int l=0;l<getDataVec().size();l++)
         beanObj =(Helperbean)dataVec.elementAt(l);
         posx = beanObj.getPosx();
         posy = beanObj.getPosy();
         if(row==posx && col==posy)
                   if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("textfield"))
                        System.out.println("celleditorval "+textEditor.getCellEditorValue());
                        tmpEditor = textEditor;
                   else if(beanObj.getModeofDisplay() != null && beanObj.getModeofDisplay().equalsIgnoreCase("combo"))
                        tmpEditor = cmbEditor;
                   break;
              tmpEditor = super.getCellEditor(row, col);
    return tmpEditor;
    public boolean isCellEditable(int row,int col){
         boolean isEditable = false;
         int posx = 0;
         int posy = 0;
    for(int l=0;l<getDataVec().size();l++)
         beanObj =(Helperbean)dataVec.elementAt(l);
         posx = beanObj.getPosx();
         posy = beanObj.getPosy();
         if(row==posx && col==posy)
              if(beanObj.getModeofDisplay() != null )     
                        isEditable = true;     
                   else
                        isEditable = false;     
                   break;
         isEditable = false;
         return isEditable;
    public void changeSelection(final int row, final int column, boolean toggle, boolean extend) {
         super.changeSelection(row, column, toggle, extend);
         //my attempt to avoid editCellAt from being called twice in a row
         if (getModel().isCellEditable(row, column) && !(isEditing() && getEditingRow() == row && getEditingColumn() == column))
              if (editCellAt(row, column)) {
                   getEditorComponent().requestFocus();
         // Select the text when the cell starts editing
    public boolean editCellAt(int row, int column) {       
         boolean result = super.editCellAt(row, column);
         final Component editor = getEditorComponent();
         if (editor != null && editor instanceof JTextField) {           
              SwingUtilities.invokeLater(new Runnable() {               
                   public void run() {                   
                        ((JTextField)editor).selectAll();
              return result;
         public boolean hasFocus()
              Component editorComponent = getEditorComponent();
              // Try to install the editor
              int anchorRow = getSelectionModel().getAnchorSelectionIndex();
              int anchorColumn = getColumnModel().getSelectionModel().
              getAnchorSelectionIndex();
              if (anchorRow != -1 && anchorColumn != -1 && !isEditing())
              if ((this.getSelectedRow() == anchorRow) && (this.getSelectedColumn() == anchorColumn))
              if (!editCellAt(anchorRow, anchorColumn)) {}
              return super.hasFocus();
         public void valueChanged(ListSelectionEvent e)
              super.valueChanged(e);
              if ((this.getSelectedRow() == 2) && (this.getSelectedColumn() == 3))
                   DefaultFocusManager focusManager = new DefaultFocusManager();
                   focusManager.focusNextComponent(this);
                   model.fireTableStructureChanged();
         

  • How to Capture the Objects in Object Library in Openscript tool?

    Hi All,
    I am new to OATS and i was trying to explore the Object Library in Opencript tool.
    Can anyone please advise me how to capture the Oracle forms Object in Object Library or Object Repository using OpenScript Tool?
    It would be grateful,If you can provide me the step to follow for the above.
    Thanks
    Ajith

    Hi Ajith,
    Create one Object Library. In OpenScript click File -> New -> Select Object Library under Script Assets.
    Then mention name of your library and save it.
    Add this library to script assets of your script. Select Script -> Script Properties... -> Script Assets -> Object Library -> Add(button) -> select your Object Library.
    Then save  your script and start recording. After recording you can see xpath of all objects you interacted with during your script recording.
    If you want to apply this to your script, select Script -> Apply Object Library.. -> then select your Object Library. If you want to revert it, then select Script --> Revert All Navigation To Recorded
    Hope this will help you...
    Regards,
    Deepu M

  • How to capture the parameter in webdynpro application?

    Hi ,
    We have a requirement like this :
    the scenario is :
    user will get a mail to  inbox(here mail is coming from SAP Workflow) saying that :"proposal is waiting for your approval".for details please click on the below link:
    once user clicks on the link it has to open up the webdynpro application and has to display the details of the particular proposal no.
    how to pass the proposal no to the webdynpro application URL and how to capture the proposalno in webdynpro java?
    Thanks in advance.
    Regards,
    Pavani

    From the workflow when you create the link, also add the proposal number as an url parameter.
    For example if the url for requesting WD application is <WD_URL>, then URL with parameter would be
    <WD_URL>?PROPOSAL_NO=<actual_proposal_number>
    In the webdynpro, you can access this parameter with the following piece of code(ideally in wdDoInit of component controller).
    String proposalNo = WDProtocolAdapter.getProtocolAdapter().getRequestObject().getParameter("PROPOSAL_NO");
    Regards
    kk..

  • How to capture the event in ALV grid display?

    Hi experts,
      How to capture the event in an ALV grid display which is editable. I have to capture the TAB key or ENTER key.
    regards,
    Arul Jothi.

    Hi Arul,
    Take a look at sample program BCALV_EDIT_03. (Find string "register ENTER" in the program to see how to register)
    Basically you have to Register edit events using method call REGISTER_EDIT_EVENT and then write a handler method for event DATA_CHANGED..
    If you are using a REUSE..GRID fm then first get the grid reference using function module GET_GLOBALS_FROM_SLVC_FULLSCR and then repeat the above procedure..
    Hope this helps..
    Sri
    Message was edited by: Srikanth Pinnamaneni

  • How to capture the changes in ppoma_crm transaction

    Hello All,
    We have a requirement that if we add either a BP or an User to a positon in ppoma_crm transaction then we should be able to update these entries in our z table.
    If it is a BP then we should look for the User mapped to it and update the z table else we should directly update the z tables with user name.
    But we are facing an issue in capturing the values that have been updated.
    Can anyone tell me how to capture the new values in the BADI for the ppoma_crm transaction ?
    Regards
    Sohit

    Did any guys here face the requirement? If replicating all the columns some of which may change frequently but are not important to the other sites, then i wouldn't replicate these changes in order to improve the performance. Thanks for your help!

  • How to setup the SMTP server in Oracle apps?

    Hi,
    How to setup the SMTP server in Oracle Apps? Is it mandatory to keep the SMTP server on the same host where the Oracle data base is installed? Also can someone help how we can set up the SMTP server on different host (not the Database server) and we can use the same for Workflow notification mailer.
    Thanks,
    Bijoy
    Edited by: user12070886 on Feb 6, 2013 4:26 AM
    Edited by: user12070886 on Feb 6, 2013 4:27 AM

    How to setup the SMTP server in Oracle Apps? Is it mandatory to keep the SMTP server on the same host where the Oracle data base is installed? No, it is not mandatory. Also please note that the mails are sent out from concurrent manager mode. Not from the database node.
    Also can someone help how we can set up the SMTP server on different host (not the Database server) and we can use the same for Workflow notification mailer.
    >
    It depends on the operating system you are using. If you are using *nix then sendmail needs to be configured.
    Thanks

Maybe you are looking for

  • Error: archive wine-0.9.11-1.pkg.tar.gz is corrupted

    I'm getting this when I try to upgrade wine. Anyone else?

  • Access report via HTTP?

    When using com.crystaldecisions.reports.sdk.ReportClientDocument.open(Object, int) (i.e. when using thick client setup), is it possible to refer to a remote file (located either on a HTTP server or directly on a remote machine) or must the *.rpt be l

  • Sliding Panels: On last panel - go to another html?

    Hey everyone! My first website is coming along nicely. Though my Creative Director has asked for a nice tweak to the site and I've hit a brick wall. I've got a few product pages that's split into different categories - 8 html pages. On each page I ha

  • Problem loading styles from CS2 to CS4

    I just upgraded to InDesign CS4. When I open a file I created in CS2, none of the object styles I defined in that document are available. I tried to load the object styles from CS4 (pointing to the CS2 file that contains the styles), but it brings on

  • Refreshing data after pushView

    Hi, I'm adding data to a database with a PopUp window.  When I click the OK button to complete everything I want to return to a listbox that I can choose items from.  The data is getting saved into the database but for some reason I can't get the lis