Error in repository variables use in initialization blocks on Solaris 64

Hello,
I noticed a strange problem on OBIEE 10.1.3.4.1 installed on Solaris 64: it seems that it cannot convert the string 'VALUEOF(+repository variable+)' into the actual value of the parameter.
For example, this is an initialization block to populate current fiscal project date variables (from NQQuery.log):
+++Administrator:fffe0000:fffe0c3e:----2010/04/12 12:29:29
-------------------- An initialization block named 'Current Project Variables', on behalf of a Session Variable, issued the following SQL query:
select C.MCAL_PERIOD_NAME as MCAL_PERIOD_NAME
,C.MCAL_PERIOD as MCAL_PERIOD
,C.MCAL_PER_NAME_QTR as MCAL_QTR_NAME
,C.MCAL_PER_NAME_YEAR as MCAL_YEAR_NAME
,PAGO.MCAL_PERIOD_NAME as MCAL_PERIOD_AGO
,QAGO.MCAL_PER_NAME_QTR as MCAL_QTR_AGO
from
VALUEOF(OLAPTBO).W_MCAL_PERIOD_D C
,VALUEOF(OLAPTBO).W_MCAL_PERIOD_D PAGO
,VALUEOF(OLAPTBO).W_MCAL_QTR_D QAGO
where C.adjustment_period_flg = 'N'
and C.W_CURRENT_MCAL_PERIOD_CODE = 'Current'
and C.MCAL_CAL_WID=valueof(NQ_SESSION.MCAL_CAL_WID_PROJ)
and C.mcal_period_ago_wid= pago.row_wid
and C.mcal_qtr_ago_wid=qago.row_wid
and c.mcal_cal_wid= pago.mcal_cal_wid
and c.mcal_cal_wid=qago.mcal_cal_wid
Returned 0 rows. Query status: Failure
As you can see, VALUEOF(OLAPTBO) should be substituted by the repository session variable, but instead it seems that the BI Server simply issues to the database the initialization block statement as-is!
Any idea?
Thanks in advance for the help,
Vincenzo Maggio

As a test, I tried to add the filter to the individual user first. In the Repository I went under Manage-Identity. Clicked on my User and hit permissions button.
I created the filter of:
"Testing and Assessments"."Student SOL Testing"."Teacher Employee Number" = VALUEOF(NQ_SESSION."VAR_EMPLOYEE_NUMBER")
That didn't work. I still see all data when I log in as that user. If I hard-code it to the users Employee Number (see below), it does work. What now?
"Testing and Assessments"."Student SOL Testing"."Teacher Employee Number" = '19983758'

Similar Messages

  • Multiple dynamic repository variable using one initialization block

    I am trying to declare three dynamic repository variables var1, var2, var3. I want to have only one intialization block for all three.
    The point I am confused at is when declaring vraibles, I can normally do
    select x, y, z from table where expr1=expr2
    and then x, y, z can give values to my three variables.
    But in the above case the query is selecting three different things (different columns) from the same row in the database.
    But in my case I want to select the same column from different rows.
    for example
    var1 will be
    select x from table where expr1=expr2
    var2
    select x from table where expr1=expr3
    and var 3
    select x from table where expr1=expr4
    1. Is it possible to do that.
    2. Is it possible to dynamically name a dynamic repository varibale?
    I use OBIEE-11g
    Thank you
    Edited by: user6287828 on Jan 26, 2012 9:41 AM

    Hi,
    I think the primary advantage of WITH clause is to resolve complex sub queries (I am sorry, I am mistaken here). But as per my readings and the BI Server too generating queries using WITH clauses, I think this is an optimized option to choose from in your case (I think there might be other queries too that can get your requirement solved though).
    You may want to refer to http://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:524736300346304074 for some info. The database experts say the usage is case-by-case and hence probably in your case if you want to populate 20 variables at one shot you in BI using this kind of query, you have to further evaluate the time taken by the sql etc or break it down again.
    However, I think this certainly is an option here.
    Hope this helps.
    Thank you,
    Dhar

  • Override the GROUP system session variable within an initialization block

    Hi,
    We're trying to override the GROUP system session variable and having no luck. We've created an initialization block to return the semicolon-separated list we're looking for but when a user logs in, it seems like it is overridden with the default. When we change the name of the variable to something other than GROUP, it works great and we get the expected value. Is there something we're missing with overriding the particular value?
    Here is the query we're attempting to use for the variable:
    Select 'GROUP',
       ListAgg(OBI_ROLE, ';') Within Group (Order By USER_EMAIL)
    From CSS_OBI_USER_ROLE
    Where USER_EMAIL In (':USER')
    We also tried:
    Select
       ListAgg(OBI_ROLE, ';') Within Group (Order By USER_EMAIL)
    From CSS_OBI_USER_ROLE
    Where USER_EMAIL In (':USER')
    We made sure that the variable name was 'GROUP' as well.
    Not sure if it's important to note or not, but the returned values do correspond to existing applications groups already defined within OBI.
    Any help is greatly appreciated!
    Thanks,
    Jas

    since you have value as OpsReviewViewer;OpsReviewAuthor:BIAdministrator
    my not help row wise setting
    try to handle ; part using sql query so that you get those number of records to use row-wise
    so this
    Select 'GROUP',
       ListAgg(OBI_ROLE, ';') Within Group (Order By USER_EMAIL)
    From CSS_OBI_USER_ROLE
    Where USER_EMAIL In (':USER')
    with row-wise show work

  • How to set MULTIPLE repository variables using presentation variables

    Hi,
    I need to pass multiple values from presentation variable to repository.
    A brief about report design :
    I have two repository variables - from_dt and to_dt which are defaulted to some values from a database table and are editable by the user.
    I display these default date values on the dashboard. Plus there are two dashboard date prompts allowing user to enter a date range different from what is displayed by the from_dt and to_dt. The dates entered by user are assigned to presentation variables pv_from_dt and pv_to_dt.
    If user specifies a different date range then these date values are to be passed to a stored procedure which is called from the Connection Pool --> Connection Script Tab --> Execute before query. This procedure will do some calculations and populate a global temporary table before running the report.
    Problem :
    Now in the presentation server, in the Advanced tab, in the Prefix section, when i try to write something like this:
    SET VARIABLE from_dt = '@{pv_from_dt}';
    SET VARIABLE to_dt = '@{pv_to_dt}';
    I get the foll error :-
    Error Codes: YQCO4T56:OPR4ONWY:U9IM8TAC:OI2DL65P
    Odbc driver returned an error (SQLExecDirectW).
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 27002] Near <SET>: Syntax error [nQSError: 26012] . (HY000)
    I tried all possible permutations and combinations
    SET VARIABLE from_dt = '@{pv_from_dt}',SET VARIABLE to_dt = '@{pv_to_dt}'; --- gave same error
    SET VARIABLE from_dt = '@{pv_from_dt}' SET VARIABLE to_dt = '@{pv_to_dt}'; -- gave same error
    How do we assign values to multiple reporsitory variables... ???
    Thanks
    Nusrat

    Hi,
    I wrongly referred to the variables as "repository" variables. Both variables are Session variables. For testing i added a column field in the report with source as the session variable - VALUEOF(NQ_SESSION.from_dt). In the Prefix section i assigned a literal value - SET VARIABLE from_dt='01-JAN-2012';
    When report is run, the literal value gets displayed.
    The idea to update a session variable, from dashboard using presentation variable, i got from the following URL.
    Go to http://oraclebizint.wordpress.com/category/obi-ee-plus/page/11/
    and see the section "Oracle BI EE 10.1.3.3/2 – Updating Session Variables from Dashboards using Presentation Variables"
    Thanks
    Nusrat
    Edited by: user10309945 on Jan 16, 2011 9:30 PM
    Edited by: user10309945 on Jan 16, 2011 9:59 PM

  • How to use session variables in initialization blocks

    Hello,
    I want to use a session variable in a initialization block. Here is what I was doing to see this working
    I created a init block called name_parameter and associated with a variable target named name_parameter_v. The init string for this block is "select 'Hello' from dual".
    i created another init block name_parameter2 and associated with a variable target named name_parameter2_v. The init string is "select :name_parameter_v from dual".
    I have selected name_parameter in the edit execution precedence for name_parameter2.
    The result set is empty. Could you please explain why I am not able to see Hello when i test name_parameter2.
    Thanks.

    to obtain the value contained in a session variable this is the syntax.
    select 'VALUEOF(NQ_SESSION.VARIABLE_NAME)' from dual
    mind the single quotes, they are necessary

  • Session variable using :GROUP variable in init block

    I'd like to filter using session variable.
    This session variaible should be build using :GROUP special session variable
    I'd like do something like this (init block):
    select  case when instr(upper(':GROUP'), 'ADMINISTRATOR')>0 then 'Yes' else 'No' end from dual
    but it seems to doesn't work properly (It means I have always 'No' value)
    After investigation i did some simple test
    initialization block like this:
    select  upper(':USER'),upper(':GROUP') from dual
    set variables using above init block: UPP_USER and UPP_GROUP
    next i did simple reques with 4 columns:
    *1. VALUEOF(NQ_SESSION.USER)*
    *2. VALUEOF(NQ_SESSION.GROUP)*
    *3. VALUEOF(NQ_SESSION.UPP_USER)*
    *4. VALUEOF(NQ_SESSION.UPP_GROUP)*
    and my result is:
    1. Administrator
    2. Administrators;IT_Deparment ....
    3. ADMINISTRATOR
    4. _:GROUP_
    Why in 4th column I didn't get: ADMINISTRATOR;IT_DEPARTMENTS ....
    Can I use special variable GROUP in initialization block?
    Could someone explain it?

    Hi,
    Only :USER and :PASSWORD are available
    try (select 'VALUEOF(NQ_SESSION.USER)', 'VALUEOF(NQ_SESSION.GROUP)' from dual instead.
    (You migth have to force a fill of the group variable first)
    Regards
    John
    http://obiee101.blogspot.com/

  • Error while fetching variable value from sqlserver database in 11g

    Hi
    We created a dynamic variable to fetch data from sqlserver database in 11g.But when we test it, it is erroring out as follows: "nqserror: 27024 the execute physical statement must specify a physical sql statement to execute".
    Please help to overcome this issue.
    Thanks.

    Hello,
    First make sure that you're able to retreive data from the repository (right click on a table and view data?)
    To create a session variable follow these steps:
    From the Administration Tool menu bar, choose Manage > Variables.
    In the Variable Manager dialog box, from the menu bar, choose Action > New > Session > Variable.
    In the Session Variable dialog box, type a variable name.
    Names for all variables should be unique. The names of system session variables are reserved and cannot be used for other types of variables.
    For session variables, you can select the following check boxes:
    Enable any user to set the value
    Check box that allows you to set the session variables after the initialization block has populated the value (at user login) by calling the ODBC store procedure NQSSetSessionValue(). For example, this allows non-Oracle BI Administrators to set this variable for sampling.
    Use the Initialization Block drop-down list to select an initialization block that will be used to refresh the value on a continuing basis.
    To add a Default initializer value, perform one of the following steps:
    To use the Expression Builder, click the ellipsis button to the right of the Default initializer work space.
    Type the value into the Default initializer text box.
    Click OK.
    you can do the same for a repository variable except that you will have to specif a refresh interval.
    Make sure the sql your are issuing is correct by running it first using a client.
    Regards
    PS: Please don't forget to close the thread and assign points when your question is answered

  • HOW TO FIND UNUSED initialization blocks  IN OBIEE RPD

    Hi Gurus,
    I have a task to remove unused initialization blocks and subject areas from RPD.
    how to find them ?how to check whether any reports are using these initialization blocks?
    Please reply me. I need to complete this task.Pls help me
    Regards,
    siva

    Unused Subject Areas -
    Use Catalog Manger - Tools - Create a report to with report name and subject area. You will get what are being used.
    Use RPD - Tools - Utilities export your RPD to CSV and check the Subject area.
    Compare both and remove unwanted subject areas.
    Initialization Blocks - We do not use these blocks directy but use Variables that are associated with it. Go to RPD - online - Mangesession - You will see the Variables tab in the window which give list of all variables thats get initialised with the session. --- Session Blocks
    Use Report Tools - Query Repository for searching.
    Try like this.

  • Issue with repository variable in OBIEE 11g

    Hi
    While i am using repository variable directly in filter it is working fine, but when i am using 'repository variable -1' in filter then it is throughing error as 'repository variable -1' is not present.
    Can't we use - , + on repository varaibles in filters.Can anyone help me.
    Thanks
    Edited by: Manu on Apr 2, 2013 4:28 AM

    I want to know how answers is treating it char type or number type?
    just cast it to number and try.
    Edited by: Srini VEERAVALLI on Apr 2, 2013 7:00 AM
    BTW: how you are calling variable
    lik this
    repository variable - 1
    or like this
    VALUEOF(repository variable) - 1
    Edited by: Srini VEERAVALLI on Apr 2, 2013 7:11 AM

  • Initialization Blocks -- Practical Example.

    I am curious about I topic that I have just recently learned about and would like to post it for discussion.
    Does anyone know of a practical example of the use of an initialization block? Why would one want to use an initialization block? What can be accomplished with an initialization block that you cannot accomplish with a constructor that doesn't accept any parameters?

    Hi Robert,
    Initializers are used in initialization of object and classes. They can also be used to define constants in Interfaces.
    Here I am explaning by corelating the Constructor with Initialization.
    In what order is initialization code executed? What should I put where ?
    Instance variable initialization code can go in three places within a class:
    In an instance variable initializer for a class (or a superclass).
    class C {
    String var = "val";
    In a constructor for a class (or a superclass).
    public C() { var = "val"; }
    In an object initializer block. This is new in Java 1.1; its just like a static initializer block but without the keyword static.
    { var = "val"; }
    The order of evaluation (ignoring out of memory problems) when you say new C() is:
    1.Call a constructor for C's superclass (unless C is Object, in which case it has no superclass). It will always be the no-argument constructor, unless the programmer explicitly coded super(...) as
    the very first statement of the constructor.
    2.Once the super constructor has returned, execute any instance variable initializers and object initializer blocks in textual (left-to-right) order. Don't be confused by the fact that javadoc and
    javap use alphabetical ordering; that's not important here.
    3.Now execute the remainder of the body for the constructor. This can set instance variables or do anything else.
    In general, you have a lot of freedom to choose any of these three forms. My recommendation is to use instance variable initailizers in cases where there is a variable that takes the same value
    regardless of which constructor is used. Use object initializer blocks only when initialization is complex (e.g. it requires a loop) and you don't want to repeat it in multiple constructors. Use a constructor
    for the rest.
    Here's another example:
    Program:
    class A {
    String a1 = ABC.echo(" 1: a1");
    String a2 = ABC.echo(" 2: a2");
    public A() {ABC.echo(" 3: A()");}
    class B extends A {
    String b1 = ABC.echo(" 4: b1");
    String b2;
    public B() {
    ABC.echo(" 5: B()");
    b1 = ABC.echo(" 6: b1 reset");
    a2 = ABC.echo(" 7: a2 reset");
    class C extends B {
    String c1;
    { c1 = ABC.echo(" 8: c1"); }
    String c2;
    String c3 = ABC.echo(" 9: c3");
    public C() {
    ABC.echo("10: C()");
    c2 = ABC.echo("11: c2");
    b2 = ABC.echo("12: b2");
    public class ABC {
    static String echo(String arg) {
    System.out.println(arg);
    return arg;
    public static void main(String[] args) {
    new C();
    Output:
    1: a1
    2: a2
    3: A()
    4: b1
    5: B()
    6: b1 reset
    7: a2 reset
    8: c1
    9: c3
    10: C()
    11: c2
    12: b2
    When should I use constructors, and when should I use other methods?
    The glib answer is to use constructors when you want a new object; that's what the keyword new is for. The infrequent answer is that constructors are often over-used, both in when they are called and
    in how much they have to do. Here are some points to consider
    Modifiers: As we saw in the previous question, one can go overboard in providing too many constructors. It is usually better to minimize the number of constructors, and then provide modifier
    methods, that do the rest of the initialization. If the modifiers return this, then you can create a useful object in one expression; if not, you will need to use a series of statements. Modifiers are
    good because often the changes you want to make during construction are also changes you will want to make later, so why duplicate code between constructors and methods.
    Factories: Often you want to create something that is an instance of some class or interface, but you either don't care exactly which subclass to create, or you want to defer that decision to
    runtime. For example, if you are writing a calculator applet, you might wish that you could call new Number(string), and have this return a Double if string is in floating point format, or a Long if
    string is in integer format. But you can't do that for two reasons: Number is an abstract class, so you can't invoke its constructor directly, and any call to a constructor must return a new instance
    of that class directly, not of a subclass. A method which returns objects like a constructor but that has more freedom in how the object is made (and what type it is) is called a factory. Java has no
    built-in support or conventions for factories, but you will want to invent conventions for using them in your code.
    Caching and Recycling: A constructor must create a new object. But creating a new object is a fairly expensive operation. Just as in the real world, you can avoid costly garbage collection by
    recycling. For example, new Boolean(x) creates a new Boolean, but you should almost always use instead (x ? Boolean.TRUE : Boolean.FALSE), which recycles an existing value rather than
    wastefully creating a new one. Java would have been better off if it advertised a method that did just this, rather than advertising the constructor. Boolean is just one example; you should also
    consider recycling of other immutable classes, including Character, Integer, and perhaps many of your own classes. Below is an example of a recycling factory for Numbers. If I had my choice, I
    would call this Number.make, but of course I can't add methods to the Number class, so it will have to go somewhere else.
    public Number numberFactory(String str) throws NumberFormatException {
    try {
    long l = Long.parseLong(str);
    if (l >= 0 && l < cachedLongs.length) {
    int i = (int)l;
    if (cachedLongs[i] != null) return cachedLongs;
    else return cachedLongs[i] = new Long(str);
    } else {
    return new Long(l);
    } catch (NumberFormatException e) {
    double d = Double.parseDouble(str);
    return d == 0.0 ? ZERO : d == 1.0 ? ONE : new Double(d);
    private Long[] cachedLongs = new Long[100];
    private Double ZERO = new Double(0.0);
    private Double ONE = new Double(1.0);
    We see that new is a useful convention, but that factories and recycling are also useful. Java chose to support only new because it is the simplest possibility, and the Java philosophy is to keep the
    language itself as simple as possible. But that doesn't mean your class libraries need to stick to the lowest denominator. (And it shouldn't have meant that the built-in libraries stuck to it, but alas, they
    did.)
    I have a class with six instance variables, each of which could be initialized or not. Should I write 64 constructors?
    Of course you don't need (26) constructors. Let's say you have a class C defined as follows:
    public class C { int a,b,c,d,e,f; }
    Here are some things you can do for constructors:
    1.Guess at what combinations of variables will likely be wanted, and provide constructors for those combinations. Pro: That's how it's usually done. Con: Difficult to guess correctly; lots of
    redundant code to write.
    2.Define setters that can be cascaded because they return this. That is, define a setter for each instance variable, then use them after a call to the default constructor:
    public C setA(int val) { a = val; return this; }
    new C().setA(1).setC(3).setE(5);
    Pro: This is a reasonably simple and efficient approach. A similar idea is discussed by Bjarne Stroustrop on page 156 of The Design and Evolution of C++. Con: You need to write all the little
    setters, they aren't JavaBean-compliant (since they return this, not void), they don't work if there are interactions between two values.
    3.Use the default constructor for an anonymous sub-class with a non-static initializer:
    new C() {{ a = 1; c = 3; e = 5; }}
    Pro: Very concise; no mess with setters. Con: The instance variables can't be private, you have the overhead of a sub-class, your object won't actually have C as its class (although it will still be an
    instanceof C), it only works if you have accessible instance variables, and many people, including experienced Java programmers, won't understand it. Actually, its quite simple: You are defining a
    new, unnamed (anonymous) subclass of C, with no new methods or variables, but with an initialization block that initializes a, c, and e. Along with defining this class, you are also making an
    instance. When I showed this to Guy Steele, he said "heh, heh! That's pretty cute, all right, but I'm not sure I would advocate widespread use..."
    4.You can switch to a language that directly supports this idiom.. For example, C++ has optional arguments. So you can do this:
    class C {
    public: C(int a=1, int b=2, int c=3, int d=4, int e=5);
    new C(10);
    Common Lisp has keyword arguments as well as optional arguments, so you can do this:
    (defstruct C a b c d e f) ; Defines the class
    (make-C :a 1 :c 3 :e 5) ; Construct an
    instance
    What about class initialization?
    It is important to distinguish class initialization from instance creation. An instance is created when you call a constructor with new. A class C is initialized the first time it is actively used. At that time,
    the initialization code for the class is run, in textual order. There are two kinds of class initialization code: static initializer blocks (static { ... }), and class variable initializers (static String var =
    Active use is defined as the first time you do any one of the following:
    1.Create an instance of C by calling a constructor;
    2.Call a static method that is defined in C (not inherited);
    3.Assign or access a static variable that is declared (not inherited) in C. It does not count if the static variable is initialized with a constant expression (one involving only primitive operators (like +
    or ||), literals, and static final variables), because these are initialized at compile time.
    Here is an example:
    Program:
    class A {
    static String a1 = ABC.echo(" 1: a1");
    static String a2 = ABC.echo(" 2: a2");
    class B extends A {
    static String b1 = ABC.echo(" 3: b1");
    static String b2;
    static {
    ABC.echo(" 4: B()");
    b1 = ABC.echo(" 5: b1 reset");
    a2 = ABC.echo(" 6: a2 reset");
    class C extends B {
    static String c1;
    static { c1 = ABC.echo(" 7: c1"); }
    static String c2;
    static String c3 = ABC.echo(" 8: c3");
    static {
    ABC.echo(" 9: C()");
    c2 = ABC.echo("10: c2");
    b2 = ABC.echo("11: b2");
    public class ABC {
    static String echo(String arg) {
    System.out.println(arg);
    return arg;
    public static void main(String[] args) {
    new C();
    Output:
    1: a1
    2: a2
    3: b1
    4: B()
    5: b1 reset
    6: a2 reset
    7: c1
    8: c3
    9: C()
    10: c2
    11: b2
    I hope the above will help you.
    Thanks
    Bakrudeen

  • Problem with a initialization block for a repository variable

    This is a very strange problem, some queryies which are issued on behalf of a Repository Variable give a succesfull completion but with 0 rows selected where it should select 1 row.
    I have a query like this
    select var1, var2, var3, var4 from table1
    where var1 = (select max(var1) from table2);
    When i test the query it gives nicely a result 1 row and the repository variables are filled correctly. The initialization block has a schedule so it will run once an hour.
    In the logfile I can see that the query is fired on behalf of my repository variable with a result of 0 rows.
    I thougt i could work around the problem by puttting the query in a view, import this view in my physical layer and do a simpel select var1, var2, var3, var4 from view in the initialization block.
    This still had the same result, testing it works fine I get nicely one record, when it is fired as a result of a schedule it gets a result of 0 rows selected.
    I've tried the query in different formats, the query that i started with was this (see below). When that didn't work i started testing with simplere query's like above
    select var1, var2, var3 , var4 from (
         select var1
         from table2
         where type='x'
    and datum = (select max(var1) from table2 where type='x')
    ) join table2 using (var1)
    Other init blocks work fine. Those init block differ from the one with the problem, they have no join between two tables. The only join I have in one of the working blocks is a join with something from dual.
    The other point is, this init block did work on a previous version of obiee, but after an upgrade it doesn't work anymore.
    The OBIEE version is 10.1.3.4.1.090414.1900
    The database is version 10.2.0.1.0
    I was able to test it myself on a 10.2 database with a 10.1.3.4.0 obiee there it worked fine. Also with 10.1.3.4.1 with a 11g database and that worked ok to.
    Has anybody else stumbeled on this problem and how can i solve it. Also workarounds are welcome. Preferably not changing to a session variable cause in that case i have to change all the reports that use this variable.
    Kind regards,
    Yvon

    Have your DBA put a trace on your OBIEE sessions to see what SQL is OBIEE firing and to confirm the rows do exist. Are you sure this data is always there?

  • How to initialize a Prompt drop-down list using a Repository Variable.

    Hi,
    the aim is to fill a drop-down list of a Year prompt only with year values that can provide data.
    This Show list SQL statement works:
    SELECT Time."Year" FROM "AnalysisCatalog"
    WHERE Time."Year" <= 2007
    Using the maxYear Repository Variable does not work:
    SELECT Time."Year" FROM "AnalysisCatalog"
    WHERE Time."Year" <= @{biServer.variables[’maxYear’]}
    Error Codes: G689FFB3:SDKE4UTF
    Expression: biServer.variables[’maxYear’]
    How can I achive the result without hardcoding the Year 2007?
    Mny thx Thomas

    Hi,
    Actually this error does not cause any harm except a presentation inconvenience. In my multi-select prompt I am using variable expression with dynamic repository variable. Dashboard results are correct. Just variable's value does not appear on page (error Error Codes: G689FFB3:SDKE4UTF
    Expression: @{biServer.variables['CUR_CAL_PER_MONTH_NAME']}). Pushing "GO" button on the prompt fixing the error but it's actually second execution of the dashboard.
    Any ideas ??

  • RPD: How to use multiple-value variables in initialization blocks ?

    Hi all,
    I have a set of initialization blocks required for authentication, two of which are running row-wise. The first one sets a multi-valued variable, and the second one uses this variable.
    Or at least, should use, because it actually fails. The NQServer log says
    [nQSError: 13011] Query for Initialization Block 'My_Init_Block_2' has failed.
    [nQSError: 23006] The session variable, NQ_SESSION.MY_VAR_1, has no value definition.
    My first variable is initialized in a basic row-wise initialization block. What's more, if I say my 2nd block isn't required for authentication, and I read in a narrative the contents of my first variable, it contains the set of value I expect it to have.
    can anybody please advise?
    thanks in advance!
    Cedric..

    There is an example in the OBIEE Server Administration manual that looks very similar to your code except that the whole of the valueof string is quoted:
    select
    NAME, VALUE from RW_SESSION_VARS
    where USERID='VALUEOF(NQ_SESSION.USERID)' {code}<br /><br /><br /><br />Pete                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Session variable and initialization block issues

    We are using OBIEE 10.1.3.3 and utilizes built in security features. (No LDAP or other single sign on). The user or group names are not stored in any external table. I have a need to supplement Group info of the user to the usage tracking we implemented recently as the NQ_LOGIN_GROUP.RESP column contains username instead of group name. So I created a session variable and associated with a new initialization block and also had a junk default value set to the variable. In the initialization block, I wrote the following query and as a result it inserted correct values into the table when the TEST button was clicked from the initialization block form.
    insert into stra_login_data (username, groupname, login_time) values ('VALUEOF(NQ_SESSION.USER)', 'VALUEOF(NQ_SESSION.GROUP)', SYSDATE)
    My intention is to make this execute whenever any user logs on. The nqserver.log reports the following error and it doesn?t insert values into the table.
    [nQSError: 13011] Query for Initialization Block 'SET_USER_LOGIN_BLOCK' has failed.
    [nQSError: 23006] The session variable, NQ_SESSION.USER, has no value definition.
    [nQSError: 13011] Query for Initialization Block 'SET_USER_LOGIN_BLOCK' has failed.
    [nQSError: 23006] The session variable, NQ_SESSION.GROUP, has no value definition.
    When I changed the insert statement as below, this does get populated whenever someone logs in. But I need the values of GROUP associated with the user as defined in the repository.
    insert into stra_login_data (username, groupname, login_time) values ('TEST_USER', TEST_GROUP', SYSDATE)
    Could someone help me out! As I mentioned above, I need the GROUP info into the usage tracking. So, if there is another successful approach, could you please share?
    Thank you
    Amin

    Hi Amin,
    See [this thread|http://forums.oracle.com/forums/thread.jspa?messageID=3376946&#3376946]. You can't use the GROUP session variable in an Init Block unless it has been seeded from an Init Block first. There isn't an easy solution for what you want, but here are some options:
    1) Create a copy of your User => Groups assignments in your RPD in an table so you can use it in your Usage Tracking Subject Area. But this means you will have to replicate the changes in two places so it's not a good solution.
    2) As the GROUP session variable is populated when you login you could theoretically use it a Dashboard and pass it a parameter to write the value to the database. But as I am not sure how can you make fire only once when the user logins it sounds like a bad idea.
    3) Move your User => Groups assignments from your RPD to a DB table. Use OBIEE Write Back or something like Oracle APEX to maintain them.
    I think 3) is the best solution to be honest.

  • Using a repository variable in a column in BP1

    I'm having a problem in 11.1.1.6.2 BP1 that I've not had before.
    I'm creating a column in my business model, and its formula is a repository variable called "Current Month". When I create it, the formula prepends the name of the initialization block which sets it. So instead of VALUEOF("Current Month"), I get VALUEOF("Set Times"."Current Month").
    When I move that into the presentation layer and attempt to use it in Answers, I get this error:
    State: HY000. Code: 10058. [NQODBC] [SQL_STATE: HY000] [nQSError: 10058] A general error has occurred. [nQSError: 43113] Message returned from OBIS. [nQSError: 43119] Query Failed: [nQSError: 14020] None of the fact tables are compatible with the query request Repository variables.Current Month [ Current Month : 'Jul-2009' ] . (HY000)
    However, if I just manually create a column in Answers with the formula VALUEOF("Current Month"), it works just fine.
    So it appears that when the name of the initialization block is automatically prepended by the expression builder when defining a column in the repository, the column won't work. It feels like a bug. I've never experienced this with earlier versions of the software.
    Any workarounds?

    Dpka, the situation is actually a bit curious. I have two different repositories. Repository "A" started its life as a Sample Sales repository, and the variables work on that one. Repository "B" was created from scratch, and the variables fail on that one.
    I'm investigating the potential differences. I'll report back here.

Maybe you are looking for

  • How do I update my iTunes on my iPad?

    I am receiving: "The iPad "JG's iPad" cannot be used because it requires iTunes version 10.7 or later. Go to www.itunes.com to download the latest version of iTunes.  I have to do as suggested but the reply I receive is that the software is already i

  • No Wine for me!!

    When I try to run pacman -Sy wine it says that the package is not found in the database. I'm using Arch 64. This is weird never had this happen before using arch.

  • Need a piece for my power supply cable

    So my mag safe power supply for my Macbook Pro has the two little "hooks" that pop out and allow you to wrap the cable around them for travel. One of the hooks broke and during the process of trying to get it fixed through Apple, by replacing the hoo

  • HT3302 what if i pay for the iPod to get fixed, because it doesn't have warranty anymore?

    my iPod touch 4 has accidently gotten wet, to where the screen is turning blank. The warranty has ran out, like about 2 years ago, and Apple won't fix it for free, i know that for a fact. What if I pay for the iPod to get it  fixed? Will Apple still

  • How can I turn off Respond with text option on iphone 5s

    I would like to disable the respond with text option, several times while taking the phone out of my pocket I responded to call I wanted to answer