Universe Dimensions/Measures from Progress Array

Hello,
I have a Progress (Openedge 10.2) array that has 24 columns separated by semi colons (";") and I am trying to create single measures for each (as they related to period data)
1;2;3;4;5;6;7....24;
I am used to the split function in Crystal, but am struggling to find the equivalent in BO Designer?
What is the equivalent of the split function in BO?
Many thanks

Eesh, good luck with progress arrays.
From a performance point of view, I'd recommend parsing the data out into a separate reporting table if that is at all possible. You may hit problems otherwise - I've seen arrays with different meanings cause problems when someone adds a new type. For example field 6 for one type is a date field while for the new type it is a number.
If you're going to persist with working with the arrays in Designer, then you'll need to use Progress-specific SQL functions to do the manipulations and it will get messy quickly. Maybe something like this link will help? http://www.sqlteam.com/forums/topic.asp?TOPIC_ID=97682

Similar Messages

  • Unable to join dimensions & measures from 2 diff context in single table

    Hello,
    I am a newbie in the BO & Webi arena and have an issue in merging dimensions & measures from two different contexts(in universe) in a single table.
    I tried using ForceMerge but dint work out.
    Heres my scenario,
    query 1- Fiscal Yr, Month, Physician,Metric,Rate
    query 2- Fiscal Yr, Month,Metric,Rating Scale,lower limit,upper limit
    So, i have to ceate a report involving Fiscal Yr, Month, Physician,Metric,Rate & Rating Scale.
    For each 'Metric' there is specific range which defines its 'Rating Scale'.
    Ex. Tetanus Vaccine(Metric) has a the following scale
    Lower limit Upper Limit Rating Scale
    0           69                       0
    70         89                       1
    90         90                       2
    91         95                       3
    95         100                     4
    The value of 'Rate' lies in between these values and accordingly it should get the scale.
    So, the report should be like
    fiscal yr Month Physician Metric Rate Scale
    Any help will be highly appreciated!
    Thanks in advance.

    Hi Vicky,
    From what I have read in the above posts, you have merged Fiscal Yr, Month and Metric objects as they are the common dimensions.  I assume "Physician" is the only other dimension among all the objects that you have listed.
    In your report, you need to use the merged dimension for Fiscal Yr, Month and Metric.  For Physician, you can use the dimension from query 1, as there are no other dimensions that you are planning to display.
    If the above things are right, then your calculation should work correctly.
    If it is not working correctly, I have a feeling that you have not merged Metric object.  In case if you have any other dimensions than what is listed above, let me know.
    Regards,
    Srivatsa

  • Using a Dimension/ Measure in a Where clause of Another Dimension/ Measure in IDT

    Hi All
    I am building a Universe using Information Design Tool. In the Business Layer, I need to use a created Business Layer Dimension (not Tables) in a Where clause of another dimension as follow:
    Dimension: "Current Week No"
         SELECT
              budgets.dbo.Calenderweeks.WeekNo
         WHERE
              budgets.dbo.Calenderweeks.EndDate = convert(SMALLDATETIME, fn CURDATE()})  
    Dimension: "Last Week No"
         SELECT
              budgets.dbo.Calenderweeks.WeekNo
         WHERE
              budget.dbo.Calenderweeks  .WeekNo = @Select(Dimension\Current Week No) - 1
    The first dimension is working well. However, the "Last Week No" shows NOTHING (I do not get any value)
    Anyone can explain why I am not get any value from the second dimension, and how I can use a Dimension/ Measure in a Where clause of another Dimension/ Measure ?
    Thanks

    Short answer:
    Beware of object WHERE clauses. They are rarely (I'd almost say never) the solution to the problem you're trying to solve.
    Long answer:
    It doesn't work because you are inadvertently filtering the same value twice in two incompatible ways in the same SQL statement.  Both objects SELECT the same column in the database.  The first object uses a WHERE clause to set it to the current week.  The second object attempts to use a WHERE clause to set it to the previous week, but does so by selecting the first object, so you end up with both objects in your data provider.
    Remember that BO is going to place all the objects in your data provider in the same SQL (except of course where your context definition has ensured otherwise.), so you have two WHERE clauses in your generated SQL which attempt to find a line equal both the current week and the previous week... and returns, naturally, no results.
    Rewrite it with a derived table (as explained in the response above) and you'll get what you want.

  • Finding the smallest value from an array

    Hi there :)
    I started learning Java a few days ago and have now run into my first problem :p
    I am using Netbeans on Mac OS X.
    I need to find the smallest value from an array. So far I've had no luck. Any suggestions would be fantastic.
    The code so far:
    * Math Problems
    * Created on May 4, 2007, 10:54 AM
    * PROJECT 1: - IN PROGRESS
    * Create a program that allows you to create an integer array of 18 elements with the following values
    * 3, 2, 4, 5, 6, 4, 5, 7, 3, 2, 3, 4, 7, 1, 2, 0, 0, 0
    *  - The program computes the sum of elements 0 to 14 and stores it in element 15                              // COMPLETED
    *  - The program computes the average and stores it in element 16                                              // COMPLETED
    *  - The program finds the smallest value from the array and stores it in element 17
    * PROJECT 2: - TO DO
    * Write a program that accepts from the command line and prints them out. Then use a for loop to print
    * the next 13 numbers in the sequence where each number is the sum of the previous two. FOR EXAMPLE:
    *  - input>java prob2 1 3
    *  - output>1 3 4 7 11 18 29 47 76 123 322 521 843 1364
    * PROJECT 3: - TO DO
    * Write a program that accepts from the command line two numbers in the range from 1 to 40. It then
    * compares these numbers against a single dimension array of five integer elements ranging in value
    * from 1 to 40. The program displays the message BINGO if the two inputted values are found in the array
    * element. FOR EXAMPLE:
    *  - input>java prob3 3 29
    *  - output>Your first number was 3
    *  -        Your second number was 29
    *  -        Its Bingo!  // This message if 3 and 29 are found in the array
    *  -        Bokya!      // This message if 3 and 29 are not found in the array
    *  -        The array was 7 5 25 5 19 30
    * PROJECT 3 EXTENSION: - OPTIONAL
    * Generate the array of 5 unique integers using random numbers
    package mathproblems;
    * @author Mohammad Ali
    public class Main {
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
        public static void main(String[] args) {
            int A[]={3,2,4,5,6,4,5,7,3,2,3,4,7,1,2,0,0,0};
            int O = A.length - 3;
            int B = A[0] + A[1] + A[2] + A[3] + A[4] + A[5] + A[6] + A[7] + A[8] + A[9] + A[10] + A[11] + A[12] + A[13] + A[14];
            A[15] = B;  // Stores the sum of the integers in A[15]
            int C = B / O;
            A[16] = C;  // Computes and stores the average in A[16]
            int D = 101;
                if (A[0] < A[1]) { D = A[0]; }
                else { D = A[1]; }
                if (A[1] < A[2]) { D = A[1]; }
                else { D = A[2]; }
            System.out.println("There are " + O + " numbers in the Array");
            System.out.println("Those numbers add up to " + B + ".");
            System.out.println("The average of those numbers is " + C + ".");
            System.out.println("The smallest value in the array is " + D + ".");
    }The code is incomplete, but it works so far. The problem is I know there must be an easier way. SAVE ME :)

    OK :)
    Just thought I should show you the output as to help anyone else with the same problem:
    * Math Problems
    * Created on May 4, 2007, 10:54 AM
    * PROJECT 1: - IN PROGRESS
    * Create a program that allows you to create an integer array of 18 elements with the following values
    * 3, 2, 4, 5, 6, 4, 5, 7, 3, 2, 3, 4, 7, 1, 2, 0, 0, 0
    *  - The program computes the sum of elements 0 to 14 and stores it in element 15                              // COMPLETED
    *  - The program computes the average and stores it in element 16                                              // COMPLETED
    *  - The program finds the smallest value from the array and stores it in element 17                           // COMPLETED
    * PROJECT 2: - TO DO
    * Write a program that accepts from the command line and prints them out. Then use a for loop to print
    * the next 13 numbers in the sequence where each number is the sum of the previous two. FOR EXAMPLE:
    *  - input>java prob2 1 3
    *  - output>1 3 4 7 11 18 29 47 76 123 322 521 843 1364
    * PROJECT 3: - TO DO
    * Write a program that accepts from the command line two numbers in the range from 1 to 40. It then
    * compares these numbers against a single dimension array of five integer elements ranging in value
    * from 1 to 40. The program displays the message BINGO if the two inputted values are found in the array
    * element. FOR EXAMPLE:
    *  - input>java prob3 3 29
    *  - output>Your first number was 3
    *  -        Your second number was 29
    *  -        Its Bingo!  // This message if 3 and 29 are found in the array
    *  -        Bokya!      // This message if 3 and 29 are not found in the array
    *  -        The array was 7 5 25 5 19 30
    * PROJECT 3 EXTENSION: - OPTIONAL
    * Generate the array of 5 unique integers using random numbers
    package mathproblems;
    * @author Mohammad Ali
    import java.util.Arrays;
    public class Main { 
        /** Creates a new instance of Main */
        public Main() {
         * @param args the command line arguments
         public static void main(String[] args) {
                  int A[]={3,2,4,5,6,4,5,7,3,2,3,4,7,1,2,0,0,0};
              Arrays.sort(A);
              System.out.println("The smallest value in the array is " + A[0] + ".");
              int num = A.length;
              System.out.println("There are " + num + " values in the Array.");
              int sum = 0;
              for (int i = 0; i < A.length; i++) {
                   sum+=A;
              System.out.println("Those numbers add up to " + sum + ".");
              double d = (double)sum/num;
              System.out.println("The average value of those numbers is " + d + ".");
    What Iearned:
    1) How to create for loops properly
    2) How to import java.util.Arrays ( =D )
    3) How to get a more accurate average using double instead of int
    4) This forum is the best and has very helpful people 24/7 ( =D)
    Thanks Again,
    Mo.

  • How to delete rows from 2D array in this case...

    Hello. I'm just begging adventure with labview so please for patient. I created a program whitch suppose work in following way:
    2D Input array is array created by FOLDER BROWSING subVI. It works in this way,that browse folder and looking for txt files whose contanins measurment data. In my case subVI founds 4 files,and from theirs headers read information about what kind of data are in file also their's path. In this way is created 2D Input Array. subVI named PLOTS FROM PATHS ARRAY make picture with polar/XY plot. It's create only those plots and legends on one picture as many files(their paths) is setted to the program by output array. I made this subVI in that way and I would not like to change it. 
    My problem is that in even loop (witch check for any change by user) program suppose to relay anly those rows(files) for which checkbox are marked, e.g. marking anly 1 and 4 box, program should chose from input array row 1 and 4 only and pass them to output array,then  PLOTS FROM PATHS ARRAY subVI makes a picture only with 1 and 4 plot and legend only for plot 1 and 4. The best solution would be some relay witch is avtivated by logical signal. It lost to me ideas how to solve it, I'm just in blaind corner...
    I tried to use delete from array but I don't know how to do use it properly in this program,becease it can be only before or afeter for loop. Below is scan of front panel and also main problem. Please set me up somehow to solve this problem. 
    Regards 
    Solved!
    Go to Solution.
    Attachments:
    plots selector.vi ‏17 KB
    problem.PNG ‏18 KB

    I have attached a vi. Is this the one that you need?
    Anand kumar SP
    Senior Project Engineer
    Soliton Technologies Pvt Ltd
    Attachments:
    plot selector modified.vi ‏14 KB

  • I live in the UK : How do I change the unit of measurement from inches to metric in iPhoto

    I live in the UK : How do i change the default unit of measurement from inches to metric?

    Terence
    Thanks for your answer to my question. I have tried what you suggested and 'metric' was already set as the default so unfortunately, it has not solved my problem which is when I set the dimensions for the print size before printing, I have to change from 'inches' to 'cms' for each photo every time. I was hoping that I would be able to set 'cms' as the default.
    Hope you can help me.

  • SSAS 2008 - How to get processing times per dimension / measure group?

    Hi experts!
    SSAS 2008. I am doing analysis and I'm trying to get information (from dmv or log) about processing times per dimension / measure group. Any ideas how to do that?
    Thanks,

    also in DMV there's no column recording the processing time, so we suggest you using SSAS AMO to programmatically get the state and last processed date time. Please see:
    Analysis Management Objects (AMO)
    Hi John,
    Thanks for you info, As
    Simon Suggested there is no DMV columns available.
    You can use below link for more information.
    Programming Administrative Tasks with AMO
    Cube
    partition attributes for last processed (timestamp and status)
    Thanks
    Suhas
    Mark as Answer if this resolves your problem or "Vote as Helpful" if you find it helpful.
    My Blog
    Follow @SuhasKudekar

  • Using Dimension Measures - COUNT, etc.. within Fact Results

    All,
    I am running into an issue that I imagine is relatively straight forward if you know what youre doing but I cant seem to get it right. I am trying to include some counts from my Dimensions alongside measures from my fact table.
    To do this I have setup my Dimensions as Facts that I require counts from. In a simple example I have:
    EVENT_FACT
    Timestamp
    User Id
    Building Id
    Event Type
    existing measure = Event Count
    USER_BUILDING_DIM
    User Id
    Building Id
    Building Type
    USER_BUILDER_DIM contains a record for each user and the building they are contained in along with a type. Users can exist in multiple buildings so this table's key is User Id and Building Id.
    When I run a query from the FACT table I want to show the total number of Distinct Users in that build next to each result. To make this work I have done the following:
    1. Setup the USER_BUILDING_DIM as a fact in my BMM, the only table that joins to this Fact table is the USER_BUILDING_DIM itself
    2. In the USER_BUILDING_DIM (DIMENSION) hierarchy I have 3 levels, total, building and user ... I want my count of all users for each building
    3. Created a measure called User Count - Distinct in the USER_BUILDING_DIM (FACT) table and set it to the Building level in the USER_BUILDING_DIM (DIMENSION) hierarchy. That is the only level I set for this measure
    When I go into answers and I create a query like:
    Building Id, Event Count, User Count - Distinct
    The query comes back perfect and shows me for each building the total event count from the EVENT_FACT table and then alongside it the Distinct User count for users in that building counted from the USER_BUILDING_DIM table.
    The Issue occurs when I add any other dimensions into the request that hang off of the EVENT_FACT table, such as Month from my Time Dimension which also hangs off of the EVENT_FACT table:
    Month, Event Count, User Count - Distinct
    Now, for the query above the User Count - Distinct value returns nothing and when I look in the logs Answers is not even performing a count anymore and instead is just joining the USER_BUILDING_DIM to the EVENT_FACT table and TIME Dimension
    Any thoughts .. thanks in advance
    K

    Hi,
    You are getting no results in "User Count Distinct" when you also drag "Month" because "USER_BUILDING_DIM_FACT" doesn't join to the Time Dimension.
    This Fact doesn't have any Time information so it's not possible to obtain the "USER_BUILDING_DIM_FACT"."User Count Distinct" measure with Time Dimension columns.
    You are trying to count users by Month but you don't have this information in your model. You can only count users by month which have events associated to it.
    Regards

  • Mdx : Sum up the measure from start but need only non empty rows

    Hi All
    i have created a calculated measure where it suming up all its previous avaialable values based on Date dimension.
    Everything is working but we are getting all rows from that datetimension . how can get only till current date,
    SUM(NULL:[Date].[Hierarchy].currentmember,[Measures].[SIMID])
    Surendra Thota

    Hi Surendra,
    According to your description, you want to calculate the sum up the measure from start for those non empty rows, right?
    In this case, please try the query below.
    WITH MEMBER [Measures].[Sum from start]
    AS
    SUM ({NULL:[Date].[Calendar].CurrentMember},
    [Measures].[Internet Sales Amount])
    SELECT {[Measures].[Internet Sales Amount],[Measures].[Sum from start]} ON 0 ,
    nonempty([Date].[Calendar].[Calendar Year].MEMBERS) ON 1
    FROM [Adventure Works]
    Result
    Besides, here is a blog which describe various way to calculate running total, please see:
    http://blog.sqltechie.com/2011/01/various-way-to-calculate-running-total.html
    Regards,
    Charlie Liao
    If you have any feedback on our support, please click
    here.
    Charlie Liao
    TechNet Community Support

  • Create Ytd measure from essbase accounts

    Hi,
    We have separate dimension for Year and Period (Month) in Essbase without Ytd member for period. In BIEE, how do we create YTD measure from existing logical column?
    Thanks,
    GT

    Hi narthan,
    According to your description, you want to select data between first day of this year and last day of previous month. If that is the case, we can achieve your goal by two ways:
    • Adding where statement to the query without using parameter like below:
    where column_name between DATEADD(yy, DATEDIFF(yy,0,getdate()), 0) and dateadd(ms,-3,DATEADD(mm, DATEDIFF(mm,0,getdate()), 0))
    • Adding two parameters named StartDate and EndDate by following steps:
    1. In Dataset Properties dialog box, in Query text box, add where statement like below, then the parameters will be created automatically
    where column_name between @StartDate and @EndDate
    2. In Design surface, expand Parameter node. Right-click @StartDate and open Parameter Properties dialog box.
    3. In Data Type drop down list, select Date/Time.
    4. In left pane, click Default Values, then select Specify Values.
    5. Click (fx) button, in Expression text box, type the following expression, then click OK to save the options.
    =DateSerial(YEAR(Today()),1,1)
    6. Right click @Enddate and set Data Type to Date/Time as step3.
    7. Repeat the options of step4 and 5 above, and type the expression like below, then click OK.
    =DateAdd("d",-(Day(today())), Today())
    For more information about Adding Parameters to Filter Reports by Date, please refer to the following document:
    http://technet.microsoft.com/en-us/library/aa337401(v=SQL.105).aspx
    If you have any questions, please feel free to let me know.
    Best Regards,
    Wendy Fu

  • Linking different measures from different cubes on to same report ,

    Team ,
    I have a report  which is targetting CUBE_1 retrieving dimensions A,B,C and Measures X,Y,Z . Now i also want to retrieve some more measures from a different Cube CUBE_2 which is  still has same dimensions  onto same report .
    I do not want to use a SubReport here .I dont want to use LooKUp's() too ..
    Can you please advise with some pointers how can we achieve this using MDX  ? Thanks in advance !
    Rajkumar Yelugu

    Hi Rajkumar,
    According to your description, what you want it that retrieving dimensions A,B,C and Measures X,Y,Z from Multiple CUBE1 and CUBE2 in an MDX query.
    The short answer is yes. To query multiple cubes from a single MDX statement use the LOOKUPCUBE function (you can't specify multiple cubes in your FROM statement). The LOOKUPCUBE function will only work on cubes that utilize the same source database as the
    cube on which the MDX statement is running. For the detail information about it, please refer to the link below to see the blog.
    Retrieving Data From Multiple Cubes in an MDX Query Using the Lookupcube Function
    Hope this helps.
    Regards,
    Charlie Liao
    TechNet Community Support

  • Get distinct values from plsql array

    Hi,
    I have declared a variable as below in plsql proc.
    type t_itemid is table of varchar2(10);
    inserted set of items in to this using a program
    now i want distinct values from that array how can i get it.

    I am using 9i so i cannot use set operator and more over my problem is that i am declaring the variable inside the plsql block . when i tried i am getting the below errors:
    SQL> r
    1 declare
    2 type t_type is table of varchar2(10);
    3 v_type t_type;
    4 begin
    5 v_type := t_type('toys','story','good','good','toys','story','dupe','dupe');
    6 for i in (select column_value from table(v_type)) loop
    7 dbms_output.put_line(i.column_value);
    8 end loop;
    9* end;
    for i in (select column_value from table(v_type)) loop
    ERROR at line 6:
    ORA-06550: line 6, column 41:
    PLS-00642: local collection types not allowed in SQL statements
    ORA-06550: line 6, column 35:
    PL/SQL: ORA-22905: cannot access rows from a non-nested table item
    ORA-06550: line 6, column 10:
    PL/SQL: SQL Statement ignored
    ORA-06550: line 7, column 22:
    PLS-00364: loop index variable 'I' use is invalid
    ORA-06550: line 7, column 1:
    PL/SQL: Statement ignored

  • How do I remove NaN values from an array?

    I'm trying to test if the values in an array are less than 0.001. All of them are...BUT the problem is that some of the elements in the array are NaN. I'd like to do one of two things:
    1. Remove the NaN elements from the array and set them to zero to make the test work.
    2. Make the test understand that NaN elements are okay.
    The test results in a boolean array of T/F values. If all of the values of the boolean array are T, it will result in a single boolean value of T. In #2, I am saying that I want it to test if an element of the array is less than 0.001 OR equal to NAN.
    Solved!
    Go to Solution.

    Your statements don't make much sense. It's irrelevant how many NaNs are in the array. A sort will move them all to the bottom. You had said you wanted to find out if all the elements in an array are less than 0.001, and that you've got some NaNs in there. Well, this will do that:
    twolfe13 wrote:
     I did see how to remove NaN once, but couldn't determine a good way to generalize it other than doing a test loop. I thought there might have been a simple function that I overlooked to do this.
    As I noted, there have been several posts in the past about efficient techniques for removing certain elements out of an array. Seek, and ye shall find.
    Joseph Loo wrote:
    Have you look at the coerce function where you can set the lower and upper limit?
    That won't do anything for NaN. Or perhaps I misunderstood what you are suggesting to do?
    Attachments:
    NaN sort.png ‏20 KB
    NaN sort small.png ‏5 KB

  • Without loops how can i read data from associative Array??

    Hi all,
    I am facing scenario like...
    i need to read data from associative array  without using loops is it possible,
    CREATE OR REPLACE PACKAGE BODY test_pkg IS
        TYPE t1 IS TABLE OF NUMBER INDEX BY BINARY_INTEGER;
       -- in array we can expect more than one row or sometimes no data also.
      FUNCTION test1(vt1 T1 DEFAULT CAST(NULL AS t1)) RETURN NUMBER IS
      BEGIN
        -- basically in array we'll get data of column2
        -- this loop should satisfies table1.colum2 = nvl(NULL, table2.colum2 )if array is null.
        -- if array is not null then only compare with array values
        FOR i IN (SELECT t1.colum1,t1.column2
                         FROM table1 t1, table1 t2
                              WHERE t1.colum1 = t2.column1
                                AND t1.colum2 = nvl(vt1, t2.colum2)
          LOOP
            generateTEXT(i.colum1, i.colum2);
         END LOOP;
      END test1;
    END test_pkg;
    in table1 we have date like...
    colum1          column2
    Jan                  1
    Feb                  2
    Mar                  3
    if i call select test_pkg.test1(1) from dual then output should
    be Jan..
    and
    select test_pkg.test1(null) from dual then it should display all elements from table1.
    Jan                  1
    Feb                  2
    Mar                  3,
    Thanks for your quick replay..

    i need to read data from associative array  without using loops is it possible,
    No - you would need to create a SQL type and then use the TABLE operator to unnest the collection.
    create or replace TYPE my_nums IS TABLE OF INTEGER;
    DECLARE
    --  TYPE my_nums IS TABLE OF PLS_INTEGER INDEX BY PLS_INTEGER;
      v_nums my_nums := my_nums(1, 2, 3);
      v_total number;
    BEGIN
      select sum(column_value) into v_total from table(v_nums);
      DBMS_OUTPUT.PUT_LINE
        ('Sum of the numbers is ' || TO_CHAR(v_total));
    END;
    Sum of the numbers is 6

  • Is there a way to remove elements from an array 1 by 1?

    I have an two arrays, and they vary in size depending on a parameter set by the user (both arrays are the same size though, they both can vary in length). What I need to do, is remove elements one by one from the array, and use these as indices for another array. Basically, I built two arrays to store x-values on a graph. At the first value on the first array, I want y values on the graph to move from 0 to Y (any value). Then on the first value on the second array, I want the y values to move back from Y to 0 (creating a pulse, essentially, from the first value on the first array and the first value on the second array). By having each x value act as an indice for the y array, I belive I can acc
    omplish this (ie, y =0 up to indice 90, then y = 5, then at indice 100, y goes back to equaling 0). I know this is poorly phrased, but it's difficult to explain. If anyone could help me out, I'd really appreciate it.

    jdaltonnal,
    Note: to add an attachment based on your comment of 6/12/01 to my earlier reply, I had to go back to this 'answer' mode, which gives me the option of adding attachments.
    Per your comment, you have a sequence, so I've added a simple sequence structure and the 2nd array to provide a 250ms delay between each array output. Let me know...Doug
    Attachments:
    arrayindexplus1withseqdelays.vi ‏27 KB

Maybe you are looking for