Posts mit dem Label Cognos werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Cognos werden angezeigt. Alle Posts anzeigen

Dienstag, 13. November 2012

Professional reports in Cognos 10.2 followed by the rules of success

Today, I want to present a pretty cool cognos report based on the rules of success (http://www.hichert.com/de/success).

The data in this example is based on a Adventureworks SQL Server 2008 R2 Cube.

As you can see the rules of success are a great way to optimize the report output for readiness and understandability.

Succes report in Cognos 10.2
Optionally you can combine this with the BICommentor which gives you the opportunity to post back any textual comments (utf-8 - including line breaks) and to re-display these context specific comments back in any report.

In this example the procedure works as follows.

You click on edit.



illustrates a writeback functionality within Cognos

Now you can enter a comment. (as above)
Click then on "save".




Don´t worry. The status says updated but currently we do not see the output yet.
So, lets re-run the report and see what happens.



Great! We see our comment. By the way. The same comment could be seen in different reports. The level of context granularity is self defined.

But happens if I run the same report in pdf? Will the comment go away? Let´s have a closer look...


Great thing!

Also interested?!

Just let me know. 





Sonntag, 9. Januar 2011

Sorting in Business Objects vs. IBM Cognos

By migrating Reports from Business Objects to Cognos you should keep in mind that the sort algorithm differ a bit. Especially string fields with non breaking spaces will be sorted different in Cognos. Upper and lower letters do net get considered. This also applies for local processed group functions (min, max) etc.

Mittwoch, 13. Januar 2010

Google Maps Polygon overlay with IBM Cognos 8

Sometimes customers are interested to display a map of regions or countries with conditional coloring applied. But those map extensions and programs are quite expensive… I want to present you a way where you can do the same - for no money - with all the advantages of a public and open map engine.

The requirements:

  • an existing internet connection
  • a version of the epoly.js file
  • the coordinates preferably in xml format.

First of all we need to generate a key to authenticate our site properly to google. Using a key generated for a different site than our will fail with an error message.

The signup can be done at:

 http://code.google.com/intl/de-CH/apis/maps/signup.html

Then we need a placeholder in our report like this

<div id="map_canvas"   style="position:relative;width: 700px; height: 300px;"></div>

The map gets initialized by

<script type="text/javascript">
google.load("jquery", "1");
google.load("maps", "2.x");

function resizeMapContainer(w,h)
    {
        $("#map_canvas").width(w).height(h);
        map.checkResize();
    }

</script>

If the browser is ready and compatible we start

$(document).ready(function () {
if (GBrowserIsCompatible()) {
    var polys = [];
        map = new GMap2(document.getElementById("map_canvas"));
        map.setCenter(new GLatLng(42.16,-100.72),4);
        map.addControl(new GScaleControl()); 
        mapOv = new GOverviewMapControl();   
        map.enableScrollWheelZoom();
        map.enableDoubleClickZoom();
        map.enableContinuousZoom();
        map.setUIToDefault();
        // Workaround resize Issue with Google Maps (API 2.x)
        window.resizeBy(-1, -1);

Now we want to make the polygons…. We read the coordinates from the states.xml file and put an overlay on the map….

// Read the data from states.xml
      var request = GXmlHttp.create();
      request.open("GET", "states.xml", true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          var xmlDoc = GXml.parse(request.responseText);
          // ========= Now process the polylines ===========
          var states = xmlDoc.documentElement.getElementsByTagName("state");

          // read each line
          for (var a = 0; a < states.length; a++) {
            // get any state attributes
            var label  = states[a].getAttribute("name");
            // read each point on that line
            var points = states[a].getElementsByTagName("point");
            var pts = [];
              for (var i = 0; i < points.length; i++) {
               pts[i] = new GLatLng(parseFloat(points[i].getAttribute("lat")),parseFloat(points[i].getAttribute("lng")));
             } 
                             if (states[a].getAttribute("name")==labels[a])
            {
            var poly = new GPolygon(pts,"#000000",1,1,colours[a],0.5,{clickable:false});
                polys.push(poly);
               map.addOverlay(poly);
            }
            }
                   // ================================================          
        }
      }
      request.send(null);
          }
        });

In my case the overlay result looks like this. States are colored by a revenue rank based on the Gosales DW Model. „Pretty cool!“

image

and even movable and zoomable !

image

Since the rendering and applying of the polygons is done on client side you should not do this for reports which are running on an old machines and / or slow internet connections.

You should somehow make sure that your report data matches the appropiate data in the xml. Best would be a matching id in the xml file according to the id to the data in the report. In my example I helped myself out by just checking the name of the state

if (states[a].getAttribute("name")==labels[a])


(labels[a] holds the report result name and colours[a] the suitable color for that region – if those match the state can be colored)

If you have questions do not hesitate to contact me.

Hv fun!

Donnerstag, 11. Juni 2009

Speicherplatzverbrauch und BIBusTKServerMain_*.dmp Dateien

Häufig habe ich schon das Szenario bei Kunden erlebt, dass der zur Verfügung stehende Speicher auf der Partition des Installationsverzeichnisses von Cognos® 8.x fast vollständig aufgebraucht war.

Aus diesem Grund ist es ratsam die Dumps im Fehlerfall für den BiBus Prozess auszuschalten.
Im normalen Betrieb "sollte" der Prozess keine Dump Files schreiben, denn diese werden ja (wie der Name schon sagt) nur geschrieben, wenn eine Exception in der Berichtsverarbeitung (oder Validierung) aufgetreten ist, die der BiBus Prozess nicht abfangen kann. (In der Praxis kann dies aber leider je nach Umgebung relativ häufig passieren)

Die Datei zum Abschalten der Dumps liegt im configuration Verzeichnis (Version 8.4) und nennt sich
cclWin32SEHConfig.xml

Die Datei ist gut dokumentiert der Standardwert lautet wie folgt

<configuration><env_var value="2:2" name="CCL_HWE_ABORT"></configuration>

und sollte auf

<configuration><env_var value="0:0" name="CCL_HWE_ABORT"></configuration>

geändert werden um die Dumps vollständig auszuschalten.

Die Änderung ist mit dem nächsten Start des / der Bibus Prozesse gültig. Der Application Server muss also nicht vollständig heruntergefahren werden.