Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

Hi,

Suppose that you want to correlate the data you have in a query with some external data. For instance you´re analyzing countries sales and want to correlate it with the Gini index., which is available here GINI index (World Bank estimate) | Data | Table

This is how I would address the situation :

My query has the following objects  [country] , [sales], and the table of Gini Index is (for simplification purposes, I´m using just three values : Brazil, Chile and Venezuela)

I get

CountryGini Index
Brazil52.9
Chile50.5
Uruguay41.9

What I´ll do is create two "arrays" : one for the country names and the other with the values of the Gini index.

An array is a set elements where each element can be accessed by an index.

So, [array] =  {"Brazil", "Chile", "Venezuela"} has three elements in which the first element is "Brazil", the second "Chile" an the third "Venezuela".

As BO doesn´t have an array type, I will use the following trick . If I concatenate the values of the countries I will get the text "BrazilChileVenezuela" ([arrayind]) , in which

   "Brazil" is the first country and so on.

But I can not, at BO side get the first element because I don´t know where the first element starts and where in ends in [arrindex] .

If I create an array in which all elements get the same Length, I´ll be abble to index them by it´s start and end position.

For instance, if a Fix the Length of the elements to 10, I will get the following text [arrindex]  = "Brazil    Chile     Venezuela ", now, given the position of a element (1,2 or 3) I´m abble to get the elements text by the formula [Text] = Substr([arrIndex]; ([index]-1)*10+1;10) where index is the index of elements,

In the same way, If I want to find the index of an element :

[index] = ((Pos([arrIndex];[Element]-1)/10)+1.

Using this technique I´ll build two arrays with the data of Gini index, the first one is [arrIndex] which we already built, and the other [arrLookUp] which is the concatenation of the Gini index values :

[arrLookUp] = "52.950.541.9"

This is done externally to WEBI.

Now, inside WEBI, create two measure variables ([arrIndex] and [arrLookUp]) , both with value = " ".

Create two entry field Input Controls each of them associated to each of the variables.

Create another measure variable  [index] = ((Pos([arrIndex];[country])-1)/10)+1 this will give me the index of each [country] in [arrIndex], now I´ll use this index to get the value of Ginis index in [arrLookUp]

[Gini Index] =  ToNumber(Substr([arrLookUp]; ([index]-1)*10+1;10) ;"00.0")

Set a table with [Country], [Sales] and [Gini Index], copy and paste the text of both "arrays" into the appropriate Input Control and hit okay.

Regards,

Rogerio

Labels in this area