Add Macro in BO 4.0 Webi reports

Hi All,
Is it possible to add macros in BO 4.0 webi reports.
My requirement is I want one macro to be run when we schedule the report in excel formate.
Thanks in Advance.

Hi,
No, i'm afraid not. This is a Desktop Intelligence feature that hasn't been ported over to WebI yet ..
You should add your vote to this enhancement request : https://cw.sdn.sap.com/cw/ideas/3654
Regards,
H

Similar Messages

  • How to add Tabs and List Boxes in Webi Report in Reporting Area(Not Report Filters & Input Controls)

    Hi All,
    I have a requirement to use some components called List Box and Tabs in my WebI report for presenting the information by dynamic dimension and measure selection using list box and segregate information by using Tabs as in below image.
    Image was prepared in MSPaint not executable webi report.
    Is it possible to integrate the list box and tabs into Report Zone in BO Webi? as show in below image?
    Thanks in Advance
    Muralidhar Reddy N

    Hello Muralidhar Reddy,
    The exact tool for your requirement is SAP BO Dashboard or SAP BO Design studio. WebI is a tool for ad-hoc reporting tool and we have limited functionalities to make dashboards using webI. You can have all those chart options in WebI and you can use Input controls or drill filters for restricting data. But you cannot have these selection components in reporting area. Tabs as shown in above post, you can have in bottom of the report.
    find below a good example of dashboard using WebI
    http://blog.davidg.com.au/2011/04/webi-as-dashboard.html
    hope it helps
    Regards,
    Nikhil Joy

  • Bw Web Reports

    Hi All,
    Please can you some one let me know how to add colours for sub totala in web report.
    Thanks,
    Sudhakar

    The color is located within the stylesheet you're using for the web template. The color for overall result is located under item "SAPBEXaggItem"

  • How to add A single row at the middle of the table in a Webi report

    Hi,
         I created a Webi report using Universe(Created universe using bex query).Now i have a requirement to display a row at the middle of a report. Can you please tell me ,how to add a sigle row at the middle of a Webi report.
                                                    Thanks in advance
    Regards
    Monika

    Hi Monika,
    It is not really possible to add a row (I assume you mean of unrelated data) to the middle of a table in a report. You can add a new table with a single row between two tables. For instance you could add a new one row table, or even single cells which are positioned relatively between two tables. Possibly a block on top of another. But this gets tricky.
    Can you explain in more detail what you are trying to do?
    Thanks

  • Is it possible to add buttons for user feed back in Bobj WEBI report?

    Dear all,
    I am an ABAP Web dynpro developer. 
    As part of the workflow, i am displaying  a BOBJ Webi Report to the users.
    The requirement is to allow users Aapprove/Reject the data in the report.
    Is it possible to have user input or any buttons in the Webi Report?
    If yes, How to achieve this ? Please help.
    Thanks,
    Vamshi

    There is discussion option as an out of the box feature. Check this: BI launch pad 4.0: Participate in a discussion about a document

  • SAP BI Mobile Publishing Webi report issue

    Hi All,
    We want to use the BI Mobile App on IPad for Webi reports. The app is successfully implemented on the IPad, connection to BO server is done, categories are visible. But no report.
    In Webi I tried to publish my report to the respective 'mobile' category, but the the 'Publish to' is missing in the menu.
    Save as is possible, but it has no effect.
    I checked the CMC and I have full authorisation for publishing (and anything else).
    What could be the reason that the 'Publish to' menu is not visible? Is this the reason why I do not see my Webi report in the Bi Mobile app?
    I would appreciate any kind of help.
    Danya

    HI Danya,
    You have already done the configuration it seems.
    Mobile Category has been created.
    Can you go to your report, right click, categories
    add it to Mobile categories
    check on your ipad
    Also, which version of BI and SAP BI app for mobile are you using?
    Cn you elaborate on the publish to menu, with a screenshot may be
    Regards,
    Atul B

  • Convert a web report into pdf and print (in BW 3.5)

    Hello gurus,
    i have few web reports ( created using WAD). i am looking for a possibility to convert a web report (viewed in a browser by a user) into pdf and print them and this should be done by pressing a button.
    Is it possible in BW 3.5 version?.
    could anyone please help me?
    Any how to docs. would be really helpful.
    thanks and regards
    kumar

    Here it is
    <HTML>
    <!-- BW data source object tags -->
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="SET_DATA_PROVIDER"/>
             <param name="NAME" value="DATAPROVIDER_1"/>
             <param name="DATA_PROVIDER_ID" value=""/>
             DATA_PROVIDER:             DATAPROVIDER_1
    </object>
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="SET_PROPERTIES"/>
             <param name="TEMPLATE_ID" value="ZPD_ADHOC_PAGE"/>
             <param name="MENU_BACK" value=""/>
             <param name="MENU_BACK_TO_START" value=""/>
             <param name="SUPPRESS_WARNINGS" value="X"/>
             <param name="MENU_FILTER" value=""/>
             <param name="MENU_FILTER_ON_AXIS" value=""/>
             <param name="MENU_SELECT_FILTER" value=""/>
             <param name="MENU_FILTER_ON_AXIS_CHART" value=""/>
             <param name="MENU_FILTER_CHART" value=""/>
             <param name="MENU_FILTER_DRILL_DOWN" value=""/>
             <param name="MENU_DRILL_UP_GIS" value=""/>
             <param name="MENU_DRILL_DOWN" value=""/>
             <param name="MENU_EXCHANGE_OBJECTS" value=""/>
             <param name="MENU_REMOVE_DRILL_DOWN" value=""/>
             <param name="MENU_SWITCH_AXIS" value=""/>
             <param name="MENU_HIERARCHY_NODE_DRILL" value=""/>
             <param name="MENU_HIERARCHY_DRILL" value=""/>
             <param name="MENU_HIERARCHY_STATE" value=""/>
             <param name="MENU_SORT" value=""/>
             <param name="MENU_CALCULATE_RESULT" value=""/>
             <param name="MENU_CALCULATE_VALUE" value=""/>
             <param name="MENU_CUMULATE_VALUE" value=""/>
             <param name="MENU_DISPLAY_DOCUMENTS" value=""/>
             <param name="MENU_DOCUMENT_CREATE" value=""/>
             <param name="MENU_DISPLAY_DOCUMENT_PROP" value=""/>
             <param name="MENU_DISPLAY_DOCUMENT_SELEC" value=""/>
             <param name="MENU_RRI" value=""/>
             <param name="MENU_EXPORT_TO_CSV" value=""/>
             <param name="MENU_EXPORT_TO_XLS" value=""/>
             <param name="MENU_BOOKMARK" value=""/>
             <param name="MENU_CHARACTERISTIC_PROPERTIES" value=""/>
             <param name="MENU_VALUE_PROPERTIES" value=""/>
             <param name="MENU_QUERY_PROPERTIES" value=""/>
             <param name="MENU_VARIABLE_SCREEN" value=""/>
             <param name="MENU_CURRENCY_CONVERSION" value=""/>
             <param name="MENU_ENHANCED" value=""/>
             TEMPLATE PROPERTIES
    </object>
    <HEAD>
    <META NAME="GENERATOR" Content="Microsoft DHTML Editing Control">
    <TITLE>SAP BW Reporting Print Page</TITLE>
    <link href="/sap/bw/Mime/BEx/StyleSheets/BWReports.css" type="text/css" rel="stylesheet"/>
    <script type"text/javascript">
    <!--
    //   Global Variable Definition
    var dataTable = "";
    var pageRowCnt = 0;
    var prevPage = 0;
    var ColumnCnt = 0;
    var PrintDateTimeStamp = new Date();
    var rptWidth = 0;
    //DATE STAMP FUNCTION
    function datestamp(){
               var Today = new Date()
               document.write(Today);
    function getReportTitle() {
                    var myQueryString = window.location.search;
                    var startOfRptTitle = myQueryString.indexOf("QTITLE=");
                    if (startOfRptTitle != -1)
                         var endOfRptTitle = myQueryString.indexOf("&", startOfRptTitle + 7);
                         var myTitle = unescape(myQueryString.substring(startOfRptTitle + 7, endOfRptTitle));
                         var rpttitle = "";
                         for(i=0;i<myTitle.length;i++){
                             if (myTitle.substring(i,i+1) == "+"){
                                 rpttitle = rpttitle + ' ';
                             else
                                 rpttitle = rpttitle + (myTitle.substring(i,i+1));
                    else
                         var rpttitle =  "Unspecified Query Title";
                    return rpttitle;
    queryTitle=getReportTitle();
    function getHeading2() {
                    var myQueryString = window.location.search;
                    var startOfHdr2 = myQueryString.indexOf("HDR2=");
                    if (startOfHdr2 != -1)
                         var endOfHdr2 = myQueryString.indexOf("&", startOfHdr2 + 5);
                         var myHdr2 = unescape(myQueryString.substring(startOfHdr2 + 5, endOfHdr2));
                         var hdr2 = "";
                         for(i=0;i<myHdr2.length;i++){
                             if (myHdr2.substring(i,i+1) == "+"){
                                 hdr2 = hdr2 + ' ';
                             else
                                 hdr2 = hdr2 + (myHdr2.substring(i,i+1));
                    else
                         var hdr2 =  "#";
                    return hdr2;
    header2=getHeading2();
    function getHeading3() {
                    var myQueryString = window.location.search;
                    var startOfHdr3 = myQueryString.indexOf("HDR3=");
                    if (startOfHdr3 != -1)
                         var endOfHdr3 = myQueryString.indexOf("&", startOfHdr3 + 5);
                         var myHdr3 = unescape(myQueryString.substring(startOfHdr3 + 5, endOfHdr3));
                         var hdr3 = "";
                         for(i=0;i<myHdr3.length;i++){
                             if (myHdr3.substring(i,i+1) == "+"){
                                 hdr3 = hdr3 + ' ';
                             else
                                 hdr3 = hdr3 + (myHdr3.substring(i,i+1));
                    else
                         var hdr3 =  "#";
                    return hdr3;
    header3=getHeading3();
    function getAsOfDate() {
                    var myQueryString = window.location.search;
                    var startOfRelevance = myQueryString.indexOf("ASOFDATE=");
                    if (startOfRelevance != -1)
                         var endOfRelevance = myQueryString.indexOf("&", startOfRelevance + 9);
                         var myRelevance = unescape(myQueryString.substring(startOfRelevance + 9, endOfRelevance));
                         var asof = "";
                         for(i=0;i<myRelevance.length;i++){
                             if (myRelevance.substring(i,i+1) == "+"){
                                 asof = asof + ' ';
                             else
                                 asof = asof + (myRelevance.substring(i,i+1));
                    else
                         var asof =  "";
                    return asof;
    asofDateTime=getAsOfDate();
    function getPaperSize() {
                    var myQueryString = window.location.search;
                    var startOfPaperSize = myQueryString.indexOf("PSIZE=");
                    if (startOfPaperSize != -1)
                         var endOfPaperSize = myQueryString.indexOf("&", startOfPaperSize + 6);
                         var myPaperSize = unescape(myQueryString.substring(startOfPaperSize + 6, endOfPaperSize));
                         var psize = "";
                         for(i=0;i<myPaperSize.length;i++){
                                 psize = psize + (myPaperSize.substring(i,i+1));
                    else
                         var psize =  "0";    // default if none supplied  (normal 8x11)
                    return psize;
    varPaperSize=getPaperSize();
    var PaperSizeParamString='&PSIZE=' + escape(varPaperSize);
       switch(varPaperSize){
            case "0":    // Landscape - Letter
                           var WidthMax = 910;
                           var RowsPerPageMax = 38;
                           break;
            case "1":    // Landscape - Legal
                           var WidthMax = 1190;
                           var RowsPerPageMax = 38;
                           break;
            case "2":    // Portrait - Letter
                           var WidthMax = 660;
                           var RowsPerPageMax = 54;
                           break;
    function getTotalColumns() {
       var myHTML = dataTable.rows[1].innerHTML;
       var TotalTDs = 0;
       var nextTD = 0;
       for (i=0;i<myHTML.length;i++) {
           nextTD =  myHTML.indexOf("<TD", i);
           if (nextTD != -1) {
              i=nextTD;
              TotalTDs++;
           else break;
       return TotalTDs;
    function GetPageHeadings() {
       var headingHTM = "";
       var leftspancnt = 0;
       var rightspancnt = 0;
       var headingspancnt = 2;
       if (header2 != '#') headingspancnt = headingspancnt + 1;   // adjust for extra headings
       if (header3 != '#') headingspancnt = headingspancnt + 1;  
       if (currPage > 1) {
          headingHTM += '<TR style="page-break-before:always; display:none; visibility:hidden; "><TD Colspan="' + ColumnCnt + '"></td></tr>';
       else {
          headingHTM += '<TABLE  id="THEREPORT" name="MYREPORT" cellSpacing=0 cellPadding=0 width=' + WidthMax + ' border=0>';
       if (ColumnCnt == 1) {
          headingHTM += '<TR><TD vAlign=top align=left nowrap><font Size=3><STRONG>';
          headingHTM += queryTitle;
          headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
          if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
          if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
          headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '<TD> </TD></TR>';
       else {
          leftspancnt = Math.floor(ColumnCnt/2);
          rightspancnt = ColumnCnt - leftspancnt;
          headingHTM += '<TR><TD vAlign=top align=left nowrap Colspan="' + leftspancnt + '"><font Size=3><STRONG>';
          headingHTM += queryTitle;
          headingHTM += '</STRONG></font></TD><TD Rowspan="' + headingspancnt + '" Colspan="' + rightspancnt  + '" align="right" vAlign="top"><input type="image" border="0" name="SAPLogo" src="/sap/bw/Mime/Customer/Images/images.jpg" alt="SAP Logo"></TD></TR>';
          if (header2 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header2 + '</FONT></TD></TR>';
          if (header3 != '#') headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + header3 + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + leftspancnt + '"><FONT Size=1>' + asofDateTime + '</FONT></TD></TR>';
          headingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
          headingHTM += '<tr>' + dataTable.rows[0].innerHTML + '</TR>';
       return headingHTM;
    function GetPageFooting() {
       var footingHTM = "";
       var leftspancnt = 0;
       var rightspancnt = 0;
       if (ColumnCnt == 1) {
          footingHTM += '<TR><TD vAlign="top" align="left" Colspan="2"><hr size=2 color=black align=left></TD></TR>';
          footingHTM += '<TR><TD vAlign="top" align="left" nowrap><FONT Size=1>Prepared: ';
          footingHTM += PrintDateTimeStamp;
          footingHTM += '</FONT></TD><TD vAlign="top" align="right"><FONT Size=1>';
          footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
          footingHTM += '</FONT></TD></TR>';
       else {
          leftspancnt = Math.floor(ColumnCnt/2);
          rightspancnt = ColumnCnt - leftspancnt;
          footingHTM += '<TR><TD vAlign="top" align="left" Colspan="' + ColumnCnt + '"><hr size=2 color=black align=left></TD></TR>';
          footingHTM += '<TR><TD vAlign="top" align="left" nowrap Colspan="' + leftspancnt + '"><FONT Size=1>Prepared: ';
          footingHTM += PrintDateTimeStamp;
          footingHTM += '</FONT></TD><TD vAlign="top" align="right" Colspan="' + rightspancnt + '"><FONT Size=1>';
          footingHTM = footingHTM + 'Page ' + currPage.toString() + ' of ' + varPageTotal.toString();
          footingHTM += '</FONT></TD></TR>';
       return footingHTM;
    function GetReportFooting() {
       var footingHTM = "";
       footingHTM += '</TABLE>';
       return footingHTM;
    function formatToPrint() {
       var PrintHTM = "";
       PrintHTM += GetPageHeadings();
       if (ColumnCnt != 1) {
          for (var i=1;i<dataTable.rows.length;i++) {
               (currPage > prevPage)?prevPage=currPage:"";  //increment current page count
               if ((pageRowCnt + 1)>RowsPerPageMax){
                   PrintHTM += GetPageFooting();
                   pageRowCnt = 0;
                   currPage++;
               if (prevPage != currPage) {
                   PrintHTM += GetPageHeadings();
               else
                   PrintHTM += '<tr>' + dataTable.rows<i>.innerHTML + '</tr>';
                   pageRowCnt++;
       PrintHTM += GetPageFooting();       
       PrintHTM += GetReportFooting();
       return PrintHTM;
    function DisplayPrintNotice() {
    // Paper Size "0" is Letter with Landscape
    // Paper Size "1" is Legal with Landscape
    // Paper Size "2" is Letter with Portrait
    if (varPaperSize == "0") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Printer Orientation to Landscape n 2) select Print menu, then select the Print button.";}
    if (varPaperSize == "1") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Legal n 2) Adjust the Printer Orientation to Landscape n 3) select Print menu, then select the Print button.";}
    //if (varPaperSize == "2") {var varMessage ="nn From your browser File Menu, select Page Setup and do the following: nn 1) Adjust the Paper Size to Letter n 2) Adjust the Paper Source (if necessary) n 3) Adjust the Orientation to Portrait (default) n 4) Select the Okay button nn Again select the File Menu, select Print, then select the Print button.";}
    alert(varMessage);
    //window.print()
    /*   SAP BW Reporting Stylesheet Revisions        */        
    function writeStyleRevisions() {
    function writeDynamicFontRevisions(dynafont) {
    //Writes the Dynamic Stylesheet
    -->
    </script>
    </HEAD>
    <BODY>
    <TABLE  id="tp1" cellSpacing=0 cellPadding=0 width=660 border=0 >
        <TR>
        <TD vAlign=top align=left nowrap>
    <object>
             <param name="OWNER" value="SAP_BW"/>
             <param name="CMD" value="GET_ITEM"/>
             <param name="NAME" value="MYQUERY"/>
             <param name="ITEM_CLASS" value="CL_RSR_WWW_ITEM_GRID"/>
             <param name="DATA_PROVIDER" value="DATAPROVIDER_1"/>
             <param name="GENERATE_CAPTION" value=""/>
             <param name="GENERATE_LINKS" value=""/>
             <param name="WIDTH" value="660"/>
             <param name="BORDER_STYLE" value="NO_BORDER"/>
             <param name="SUPPRESS_REPETITION_TEXTS" value=""/>
             <param name="BLOCK_SIZE" value="3500"/>
             <param name="SHOW_PAGING_AREA_TOP" value="X"/>
             <param name="TARGET_DATA_PROVIDER_1" value="DATAPROVIDER_1"/>
             ITEM:            MYQUERY
    </object>
        </TD>
      </TR>
    </TABLE>
    <SCRIPT type="text/javascript">
    <!--
            var tbls = document.body.getElementsByTagName("TABLE");
            for (var i=0;i<tbls.length;i++) {
                  if (tbls<i>.name == "MYQUERY"){
                        var dataTable = tbls<i>;
                        break;
            document.title = queryTitle;
            rptWidth = dataTable.clientWidth;
            rptHeight = dataTable.clientHeight;
            originalRptWidth = rptWidth;
            originalRptHeight = rptHeight;
            originalRowHeight = Math.floor(rptHeight/(dataTable.rows.length+1));
            rptPageHeightMax = 580;                                                                                //660 less basic header and footer of 80
            if (header2 != '#') rptPageHeightMax = rptPageHeightMax - 20;   // adjust for extra headings
            if (header3 != '#') rptPageHeightMax = rptPageHeightMax - 20;  
            if (dataTable.rows.length == 1) {
                ColumnCnt = 1;                //No Applicable Data found message
            else {
                ColumnCnt = getTotalColumns();
            startingFont = 65;
            varFontSize = startingFont;
            if (rptWidth > WidthMax) {
                while ((rptWidth > WidthMax) && (varFontSize > 15))
                    writeDynamicFontRevisions(varFontSize);
                    rptWidth = dataTable.clientWidth;
                    rptHeight = dataTable.clientHeight;
                    varFontSize = varFontSize - 5;
                // calculate max rows per page
                rowHeight = Math.floor(rptHeight/(dataTable.rows.length+1)) + 1;        // add 1 for 2 row heading, add 1 for padding
                RowsPerPageMax = Math.floor(rptPageHeightMax/rowHeight) - 2;   // adjust for column headings
            if (dataTable.rows.length == 1) {
                varPageTotal = 1;                //No Applicable Data found message
            else {
                totalRows = dataTable.rows.length-1;                                       // total rows less headings
                varPageTotal = Math.floor(totalRows/RowsPerPageMax);       // compute total pages
                if (totalRows != (varPageTotal * RowsPerPageMax)) {
                    varPageTotal = varPageTotal + 1;                                        // if not a complete last page, add 1 for partial page
            currPage = 1;
            document.write(formatToPrint());
            document.all.tp1.style.display = "none";
            document.all.tp1.style.visibility = "hidden";
    //        DisplayPrintNotice();
    -->
    </SCRIPT>
    <STYLE>
    input.ie55   { display: none }
    </STYLE>
    <!-- special style sheet for printing -->
    <STYLE media=print>
    .noprint     { display: none }
    </STYLE>
    <script defer>
    function window.onload() {
        if (!factory.object) {
            return
        else {
    //     factory.printing.header = "SAP"
    //     factory.printing.footer = "SAP"
            if ( varPaperSize == "2" ) { factory.printing.portrait = true; }
            else { factory.printing.portrait = false; }
            factory.printing.Print(true);
            // enable control buttons
      /*  var templateSupported = factory.printing.IsTemplateSupported();
           var controls = idControls.all.tags("input");
           for ( i = 0; i < controls.length; i++ ) {
               controls<i>.disabled = false;
               if ( templateSupported && controls<i>.className == "ie55" )
                  controls<i>.style.display = "inline";
    </script>
    <P>
    <div id=idControls class="noprint" style="VISIBILITY: hidden">
    <input disabled type="button" value="Print this page"
    onclick="factory.printing.Print(true)">
    <input disabled type="button" value="Page Setup..."
    onclick="factory.printing.PageSetup()">
    <input class=ie55 disabled type="button" value="Print Preview..."
    onclick="factory.printing.Preview()">
    <input class=ie55 disabled type="button" value="Landscape"
    onclick="factory.printing.portrait=false">
    <input class=ie55 disabled type="button" value="Portrait"
    onclick="factory.printing.portrait=true">
    </div>
    </BODY>
    </HTML>

  • Sorting a variance column in Webi report

    I have the need to sort a report by a variance that I have calculated in the report.
    For example, a report has inventory for end of prior month and current day. I am calculating the variance between the two columns. (how much inventory has changed by product)
    I need to be able to sort this table descending so that I can see the big inventory movers first.
    When I select the variance column, the sort options are disabled.
    I have also tried to save my function as a variable and that does not seem to help.
    I am using WEBI XI 3.1.
    Any ideas?
    Thanks in advance.

    Rodney,
    The "column" parameter is used as such:  ;col which is added to the end of your formula like this:
    ([Stock Quantity] Where([Calendar Day]=Max([Calendar Day]) In Report) - [Stock Quantity] Where([Calendar Day]=Min([Calendar Day]) In Report);col )
    When you add the ";col" portion it tells WebI to calculate by column (the alternative keyword to this parameter is "row").
    You mention that you'll lose your calculated column, however, instead of building a formula with a cell, you can also construct a local variable to the report executing the same formula.  This method is handy when you'll have the same computation to do in perhaps several tabs, and you just want to code once and reuse in multiple places within your report.  So, if you can somehow work on establishing a local variable with the same formula, then demote the table to a horizontal or vertical table, put your objects in that grid configuration, apply sorts, then reposition as crosstab, you might be able to achieve your desired results.
    Thanks,
    John

  • Bw web report plugin http session hangs at the server side

    Hi,
    I am having problems when closing the browser of a BW web report. After I closed the browser by going File->close, I ran SM04 and found out the Plugin HTTP session hangs at the server side.
    How can we terminate the Plugin HTTP session at the server side when user closes the internet browser?
    I did implement a logoff function at my web template, if user clicks on the logoff, the Plugin HTTP session is terminated at server side correctly. But As you know, 50% of time user will close the report by closing the internet browser instead of clicking the logoff. That leaves lots of hanging Plugin HTTP sessions at our server side.
    By the way, we actived our BEX service at the SICF.
    Thanks for help!
    JA

    Hi
    If you want to avoid a blank page with logoff button, add opener=0
    <a href="<SAP_BW_URL CMD='LOG_OFF' ~command='logoff'
    >" onClick="javascript:window.close(opener=0);">Log off</a>
    If you want to close the session via X, use this code:
    create a sapscript function
    function closeSession()
    logoff()
    window.unload=CloseSession()
    However, the Plugin HTTP session isn't killed.
    Regards

  • Migrating a webi report from one environment to another using import wizard

    Hi Everyone,
    Can anyone please tell me what all access should I have on my ID to be able to migrate a webi report from one environment to another environment(e.g. from development to quality).
    Regards,
    Neeraj Sharma

    Hi,
    To use the Import Wizard utility, you basically need Administrator, Full Control to Top-level folder, and "Add objects to the folder" and "Edit objects" for this user on the root folder.
    You need the least restrictive role, because you require absolute control for content promotion between 2 entitlement systems.
    the webi document is the cherry on-top,  you;ll have universes, connections, folders to bring over too. 
    Regards,
    H
    p.s. check Note 1450708 - How to restrict access to the Import Wizard from a Business Objects Enterprise system
    and
    Note 1297121 - What rights needed to use Biar File Extraction for a normal user while using Import Wizard ?

  • Print button on Web report.

    Hi gurus,
    We were trying to add a print button on Web report for printing the result area on the Web report.
    We followed the steps which has given in the How-to-guide How To Web Printing with Microsoft
    Excel document.
    In the document it has mentioned that
    1. Support package should be above 19 for BW 3.5 version
    2. Add HTML code in the WAD Template
    3. Import Transport file into the System.
    4. Apply OSS notes 736568 and 737082 to BW
    We upgraded the support package to 22, added the html code in the WAD template, imported the transport file into the BW system and applied the OSS notes as per the mentioned in the document.
    The transport file contains the Package u201CZPK_WEB_PRINTING_WITH_EXCELu201D and ABAP Classes u201CZCL_RSR_XLS_GRIDu201D,
    u201CZCL_RSR_XLS_HELP_WINDOW_PRINTu201D,
    u201CZCL_RSR_XLS_ITEM_CONDITIONu201D,
    u201CZCL_RSR_XLS_ITEM_EXCEPTIONu201D,
    u201CZCL_RSR_XLS_ITEM_GRIDu201D,
    u201CZCL_RSR_XLS_ITEM_TEMPLATEu201D,
    u201CZCL_RSR_XLS_ITEM_TEXT_ELEMENTSu201D,
    u201CZCL_RSR_XLS_TABLEu201D
    After import the transport file into BW, some of the objects in the ABAP Classes were not activated. I was trying to activate manually but those were not activating.
    Please guide me how to resolve the above issue or is there any way to get the printing the web report?
    Thanks in advance.
    Venkata.

    Hi
    If you want to print the web page directly then you can define a button using Java script and you can do it.
    Define java script code to print the page
    for ex define a button and call function for print.
    i cannot attach the code. but you can solve with java script
    Regards
    M.A
    Edited by: M.A on Jul 24, 2008 4:22 PM

  • No data in WEBI report - but plenty of data in the underlying Bex query...

    HI all - I have a problem with my webi queries - which are sometimes breaking...
    We run in the XI 3.1 ans SAP int, kit - SP 2 on both.
    Sometimes af perfectly well functioning webi report suddenly returns no values - stating that the query didn't find anything. However - if I run the bex query with the same selections I get plenty of data. So there is data. Therefore it might be a Int. kit problem - however, when I bulid a new webi report - similar to the first one, with same dimensions etc. but without all the formatting - It runs fine too!!!!
    So it seems like somehow the original webireport has lost the connection to the measueres which it holds - has anyone any idea to what the cause might be and how to fix it?
    By the way - I havre refreshed the Universe and there is nothing to update.
    BR
    Jess

    Hi Ingo - the MDX statement from the MDX trace - does not yield any data - However, if I make a similar selection in the BEX, there i data avaiable - so it might be a problem with the how the MDX statement is generated.
    I've trouble shooted further and my learnings are so far:
    The problem is caused by a combination of 5 dimensions
    If you remove either one of the 5 dimensions - the query returnsdata
    If you add a specific meausure (a restricted bex key figure) - data is also returned - also in the other measures.
    The MDX statement looks like this:
    SELECT  { [Measures].[D6ZWIC1Q7MOA2YCJM1LAPRQNG], [Measures].[D6ZWIC1Q7MPTG70294GIUMJ70], [Measures].[D6ZWIC1Q7NGQDWFMH0MZ7LEP8], [Measures].[D6ZWIC1Q7NI9R53543I7CG78S], [Measures].[D6ZWIC1Q7NWVQXAK7CQUMKQEK], [Measures].[D6ZWIC1Q7NYF45Y2UFM2RFIY4] }  ON COLUMNS , NON EMPTY CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( CROSSJOIN( [0CALMONTH2].[LEVEL01].MEMBERS, [0REPTT].[LEVEL01].MEMBERS ), [0EMPLSGROUP].[LEVEL01].MEMBERS ), [0PAYSCALEAR].[LEVEL01].MEMBERS ), [0ORGUNIT].[LEVEL01].MEMBERS ), [ZBOORGUNT                     ORGEH                         01].[LEVEL00].MEMBERS ) ON ROWS FROM [ZMPHPTGL1/ZDQHPTMN1] SAP VARIABLES [0P_CALMO] INCLUDING [0CALMONTH2].[12] [0P_CALYE] INCLUDING [0CALYEAR].[2009]
    Where all the measures in fact are restricted keyfigures from the Bex query. The dimensions are business content characteristics, as are the variables used.
    The above MDX statement returns nothing - but if you remover either one of the dimensions in the cross joins - the expected data is returned.
    Any ideas to why that happens?
    BR
    Jess

  • Cannot See Wait Icon/Message in Web Report

    Hi,
    When I run my Web Report, it's taking few seconds to load. In the meantime, it is showing me neither the dialog "Wait the request is being processed!" nor the wait icon.
    I understood from the forums that in the BW style sheet the class "SAPBEXPopUp" holds this function and the icon is stored in the MIME repository at /sap/bw/BeX/Icons/loading.gif
    How could I add this in my Web template? Do I need to edit the html code? Or is there any web item which helps?
    In my template, I just used the table web item and attached a custom query to it.
    Thanks,
    Sai Raghav.

    Sai,
    for setting the cursor to the hourglass use this code in your HTML..
    document.form.cursor = 'wait';
    as for the dialog , it is a javascript snippet which comes with BW ..
    try opening the loading.gif through the MIME reporsitory (SE80) and check if it is active ...
    am not sure if there is any setting for the same..
    Hope it helps.
    Arun
    Assign points if helpful

  • Connect 2 BO Universes in a WebI Report

    Hi,
    I need to set up a WebI report with 2 universes. Each universes is based on a SAP BW Query and has a date variable to execute the BW query. I established the report based on the first universe and then added in the "edit query" window with the funtion "add query" the second universe.  Both universes have a data variable to execute the BW query. But I could not link these 2 date variables together, so that the user has to enter only ONCE the date. Is there any possiblity to passthrough the entered date from the first query to the other query? When yes, how can I do this?
    Please help!
    Thank you Stefanie

    Hi Stefanie,
    You have not posted the complete definition or the main prompt definition which should be as
    @Prompt('text','A','Class\LOV Object',mono,free)
    please check that part. Even single extra space in the definition would result in the two different prompt.
    Check once for space or spelling...there must be something different..
    If both the definition are exactly the same then I can't think of reason why it is so?
    You can try this: Create the two more prompts at the universe level (keeping exactly the same definition). And pull these two prompts in their respective queries and check the result. If you get the result then replace the genrated defintion of the prompt
    Hope it helps you.
    Regards,
    Rohit

  • Download Button in Web Report

    Hi Experts,
    I want to Add a Click Button on my Web Template. Which would let me download the report in Excel File.
    On click of the button it should show my target place as desktop or download folder.
    Do anyone know whether we have any option in Bex WAD.
    Please help.
    Thanks

    Hi,
    Thanks for your reply,
    Can you tell me where do I find that analysis web item in WAD3.5 please.
    Please explaine me in details how do I achieve it.
    Thanks
    Edited by: MO AHMED on Dec 14, 2009 11:16 AM

Maybe you are looking for

  • Multi row field catalog in ALV

    Hi everyone! Is there a way to have more than one row in the field catalog for a alv grid display? I've found row_pos but I can't make it work. I need a a row with monts on it and in another row there should be fields called 'hours' and 'costs' for e

  • PLS-00358

    This is the version: Oracle8i Enterprise Edition Release 8.1.7.2.0 - Production PL/SQL Release 8.1.7.2.0 - Production and this is the code: DECLARE tab_idlocation PKG_TEATRI_VOD.tab_num; tab_idEvento PKG_TEATRI_VOD.tab_num; tab_Evento PKG_TEATRI_VOD.

  • Gr based ir

    Hi experts, I want to post invoice before GR Unchecked GR based IR in vendor master But the field GR based IR is a mandatory in PO How to post IR before GR Regards,

  • Copying from Web Page

    My bank statement is accessible from the web. In Excel I can copy several rows and columns from that Web page and the paste them directly into my spreadsheet, where they are appropriately distributed across the various columns and rows. When I try th

  • Is there Arabic language support in Adobe Muse?

    Hello, I need to create my website in both English and Arabic languages, so please let me know if i can write and edit Arabic text with text direction possibility. Thanks, Ahmad