Environmental variables Problems..

We have installed REDHAT 32 bit LINUX 5.0 Enterprise Edition on a 32 Bit System,
When we try to set environment variables for SAP via terminal window using export command the variable set once but when we reopen the terminal we didn't find the environmental variable set by us.
please provide the solution to set environmental variables in REDHAT LINUX 5.0 Enterprise Edition.
Which version of JAVA should be installed in REHAT LINUX 5.0.
and how we will check that java is installed.
Thanks & Regards
himanshu.

Hello,
I agree with Markus, most SAP environment variables wonu2019t require manual configuration.  If you need to set other variables (such as JAVA_HOME, PATH, DISPLAY, etc.), then the process is going to vary depending on the shell of your user.  Ditto on the 32-bit warningu2026the memory limitations are going to cause you major frustrations.
My system users use bash (sh).  The users created by SAP use c shell (csh).  Many distributions (including RHEL and clones) have a u2018/etc/profile.du2019 directory containing files loaded by various shells.  If you want to set an environmental variable for all users of a particular shell, use this directory.
sh example:
/etc/profile.d/java.sh
export JAVA_HOME=/opt/java
export PATH=$JAVA_HOME/bin:$PATH
csh example:
/etc/profile.d/java.csh
setenv JAVA_HOME /opt/java
setenv PATH $JAVA_HOME/bin:$PATH
Tips:
No need to add the normal first line of the shell script.
I create the environment files in this directory segmented on application.
All of the files in my profile.d directory are executable.
Hope this helps,
Zach

Similar Messages

  • SAP Gateway- environmental variables not loaded when running brconnect

    Hello
    i have installed the Sap gateway on MSCS
    and the RFC check in sm59  is successful,
    However when i run a job in db13 it fails with "brconnect is not recognized as ......... "
    <sid>adm has all environmental variables set correctly
    SAPService<SID> has them too
    when i run  brconnect on OS level it works fine with <sid>adm and SAPService<SID>
    however if create a brconnect.cmd file where i specify the command as
    SET ORACLE_SID= ....
    SET SAPDATA_HOME=....
    C:\windows\sapcluster\brconnect.exe ...........
    and run it in sm69 it works fine
    Any ideas how to solve this, seems the variables are not taken when running sapxpg
    , i don't want to edit the SDBAC for every  command
    P.S
    set from sm69 returns only the system wide variables, however i have the two systems on this host, and can not make the environmental variables for ORACLE_SID and SAPDATA_HOME system wide as this will cause problem with the other sap system
    Edited by: Yavor Markov on Apr 12, 2010 6:07 PM

    Hi Markov,
    Can you tell us with which user id you have installed SAP as well as check the sap services are running with which user id, if it is not <sid>adm then you have to check the environment variables of that user.
    Also you can try adding c:\windows\sapcluster in PATH environment variable.
    Regards,
    Kishore Soma

  • Terminal issues with environmental variables

    I am having an issue with persisting environmental variables during a session. I am running an app that requires the sequential running of 3 scripts setenv.sh, build.sh, run.sh.
    The first script sets variables that are being used by the other scripts. The script just contains lines like
    "export ADVISOR_HOME=/Applications/Blaze/Advisor65;"
    if i add echo the variables name in the script they are set, but immediately after or with env they are gone.
    From my understanding (not much) these should persist as long as the window is open. Is there any setting that is being set in OS X that is sandboxing scripts? It would seem to be security-minded but is causing problems.
    Also is there any way to temporarily disable the requirement to prefix a command call with ./ in os x. Many of the included scripts are calling methods in the same directory and I am having to alter a lot of scripts to include ./
    Thanks in advance,
    walter

    walter deane wrote:
    I am having an issue with persisting environmental variables during a session. I am running an app that requires the sequential running of 3 scripts setenv.sh, build.sh, run.sh.
    The first script sets variables that are being used by the other scripts. The script just contains lines like
    "export ADVISOR_HOME=/Applications/Blaze/Advisor65;"
    if i add echo the variables name in the script they are set, but immediately after or with env they are gone.
    Do you mean you echo them from within the script and then they are gone after the script ends? That would be normal. If you want them to persist through the other scripts, you could combine the scripts. The problem is that you're setting them in one process and expecting them to persist in another process. Unless the second is a child of the first, that won't work. I think it would work if you executed the second two scripts from within the first script because they would then be children of the first process. Does that make sense? I'm not sure of the correct terminology here and I can't draw a tree which is what I want to do! Another option might be to source setenv.sh rather than running it (i.e. wouldn't need to be executable) - the same way the shell does when starting up, I think.
    From my understanding (not much) these should persist as long as the window is open.
    I don't think it has anything to do with windows. It is just when the process exits. If you set such variables at the command line, they'll persist until the window closes because they'll persist until the process exits which is usually when the window closes. At least, in the simplest cases. But it isn't the window staying open or not that's important. It's that everything else done in the window happens to inherit the environment from the parent process. In truth, this often isn't the case anyway, but I expect that's the source of the misunderstanding.
    Is there any setting that is being set in OS X that is sandboxing scripts? It would seem to be security-minded but is causing problems.
    Nothing special that I know of. There is stuff for something like this in Leopard but you'd have to enable it and I'm not sure it applies here.
    Also is there any way to temporarily disable the requirement to prefix a command call with ./ in os x. Many of the included scripts are calling methods in the same directory and I am having to alter a lot of scripts to include ./
    You can do this but it is extremely insecure. Essentially, you can add the current directory to PATH. (PATH=$PATH:./; export PATH) It would be much, much better - much, much safer - to edit the scripts. Can you not use sed to edit them? If there is some sort of pattern, there's no need to do it by hand.
    If this is an application you plan to share, you should certainly not consider changing PATH in this way unless you are aiming to produce an application with maximum destructive potential! If you don't plan to share, of course, it is your call!
    - cfr

  • Environmental variables

    I'm having a problem i believe in my environmental variables. I have installed java1.4.2 version and am using the windows xp. I am able to run programs that i have compiled else where but am unable to compile my own programs that i have written on my pc. any help is greatly appreciated

    Did you add the Java's binary path on your Path system environment?
    For example,
    My computer -> right click -> properties -> details -> environment variables -> system environment variables -> Path -> edit
    add ;(semicolon) and something likeC:/jdk14.2/bin at the end of the line.
    Then check javac on the command prompt.
    Even though mine is Win2K, but I think it would be similar on WinXP.
    Hope this would help you.

  • Bad Bind Variable Problem

    Hi
    I am trying to create a trigger and facing Bad Bind Variable problem.
    Plz let me know, what's the problem in this trigger.
    CREATE OR REPLACE TRIGGER Tender_tax_update AFTER
    INSERT
    OR UPDATE
    OR DELETE OF ITEM_QTY,ITEM_RATE,TENDER_ACC_QTY ON TENDER_ENQUIRY_ITEM_D REFERENCING OLD AS OLD NEW AS NEW FOR EACH ROW
    Declare
         v_amt TENDER_VENDOR_TAX_D.TAX_AMOUNT%TYPE;
         v_tax_ty TENDER_VENDOR_TAX_D.TAX_TYPE%TYPE;
         v_tax_cd TENDER_VENDOR_TAX_D.TAX_CODE%TYPE;
         v_ven_cd TENDER_VENDOR_TAX_D.VENDOR_CODE%TYPE;     
         v_item_cd TENDER_VENDOR_TAX_D.item_cd%TYPE;     
         v_tenno TENDER_VENDOR_TAX_D.tender_enquiry_no%TYPE;
    Begin
         if inserting then
              v_tax_ty:=:new.TAX_TYPE;
              v_tax_cd:=:new.TAX_CODE;
              v_ven_cd:=:new.vendor_code;
              v_item_cd:=:new.item_cd;
              v_tenno:=:new.tender_enquiry_no;
    select TAX_AMOUNT into v_amt from TENDER_TAX_DETAILS where tender_enquiry_no=v_tenno and TAX_CODE=v_tax_cd and TAX_TYPE=v_tax_ty and item_cd=v_item_cd and vendor_code=v_ven_cd;
    update TENDER_VENDOR_TAX_D set TAX_AMOUNT=v_amt where tender_enquiry_no=v_tenno and TAX_CODE=v_tax_cd and TAX_TYPE=v_tax_ty and item_cd=v_item_cd and vendor_code=v_ven_cd;
         end if;
    End Tender_tax_update;
    Database deails are as follows:
    TENDER_VENDOR_TAX_D
    Name Null? Type
    TENDER_ENQUIRY_NO NOT NULL VARCHAR2(8)
    VENDOR_CODE NOT NULL VARCHAR2(4)
    TAX_CODE NOT NULL VARCHAR2(4)
    PERCENTAGE NUMBER(5,2)
    TAX_AMOUNT NUMBER(15,2)
    ITEM_CD NOT NULL VARCHAR2(10)
    TAX_FLAG VARCHAR2(1)
    TAX_TYPE CHAR(3)
    TENDER_TAX_DETAILS
    Name Null? Type
    TENDER_ENQUIRY_NO NOT NULL VARCHAR2(8)
    VENDOR_CODE VARCHAR2(4)
    ITEM_CD VARCHAR2(10)
    TAX_CODE NOT NULL VARCHAR2(4)
    TAX_TYPE CHAR(3)
    TAX_AMOUNT NUMBER
    Message was edited by:
    user648065

    facing Band Bind Variable problem.Doesn't the error message tell you which bind variable is the problem?

  • Using environmental variables in dataexport calc

    I'm using 11.1.2.1, and I thought I'd try this fancy new feature of using environmental variables in a DATAEXPORT calc script.
    I've played around quite a bit, and believe the following is true.
    The environmental variables must be the full path (including file name), that the export will write to.
    Assume the following:
    $DATAPATH = C:\data
    $FILEPATH = C:\data\export.txt
    If you try to export to $DATAPATH, it will error because there is no file name associated with that path.
    If you try to export to $FILEPATH, it will work just fine.
    Doesn't this kind of defeat the purpose of using environmental variables if you need a different variable for each file name?
    My hope was that it worked like this:
    Assume the following:
    $DATAPATH = C:\data
    In our export calc, you could append values that are specific to that calc/app.
    e.g.
    For an App 1 Export:
    DATAEXPORT "File" "|" $DATAPATH/App1/filename.txt;
    For an App 2 Export:
    DATAEXPORT "File" "|" $DATAPATH/App2/filename.txt;
    Am I missing something here? Any input both confirming/denying the above is welcome.

    The dataexport command is very fussy about the file path as you have found out it only works you place the full path/filename in a variable.
    It is also possible to use substitution variables but once again I think you need to use the full path/filename - Re: MaxL with DATAEXPORT and passed parameters
    Cheers
    John
    http://john-goodwin.blogspot.com/

  • SSIS Environmental Variables not working in BPC 7.5(MS) Data Manager

    Hi,
    We have an SSIS 2008 package that is retrieving variable values from Environmental Variables.  The package runs successfully when executed from DTExec, but fails when executing from a BPC 7.5(MS) Data Manager package.  Looking through logs we've been able to pinpoint the issue.  The issue is that the SSIS package is unable to retrieve variable values from Environmental Variables when running from Data Manager packages.  We tried using XML Configuration files to store variable values, but this did not work either when running the SSIS package from Data Manager.  Has anyone seen this before?  If so, what was the solution to resolving the issue?
    Thanks,
    Glenn Van Der Werff

    Hi Glenn,
    Can you set package variables in Data Manager script as a workaround?
    For example, here is how we set connection string:
    GLOBAL(DRILL_CN_STRING,Data Source=%SQLSERVER%;Initial Catalog=%DRILL_DB%;Provider=SQLOLEDB.1;Integrated Security=SSPI;Application Name=SSIS-BPC_Incremental_Oracle;Auto Translate=False;)
    DRILL_CN_STRING is a variable in our package and %<Parameter Name>% are parameters for that connection string.
    Regarding Env Variables and XML... there could be security related and/or Package ProtectionLevel issue when BPC system account.
    Hope that helps,
    Akim

  • Environmental variables as command line args

    Hello, all,
    I would like to pass an environmental variable as a command line argument for a java program.
    Example:
    java MyClass $MY_VARIABLE
    However, it actually passes "$MY_VARIABLE", and not the value of MY_VARIABLE. I know that I can use java -D(MY_VARIABLE=SOMETHING) and get it using System.getProperty ("MY_VARIABLE");
    However, I would prefer it the first way, actually passing the variable inside command line. Is there a way to do this?
    Thank you,
    Elana

    Nevermind... Error in my code... It works
    Thank you

  • Please please give the neat way to set environmental variables for tomcat

    Please forgive me to create a new post for this topic which have been created by many. i have configured tomcat and set enviromental variables in xp before, when i formatted my system everything washed out.
    i configured tomcat with the help of post in this community which have been clearly explained but i could nt trace that post nw.
    so do tell me how many environmental variables i should set with eg, earlier i have created four. i am badly needs to work in tomcat.
    note : i dont want to set using command prompt

    Mahesh_yeswecan wrote:
    i configured tomcat with the help of post in this community which have been clearly explained but i could nt trace that post nw. Your posting history is here

  • How to set environmental variable

    Hi,
    How to set environmental varibale oracle_sid=orcl
    I tried on the command prompt once, set oracle_sid=orcl and it was just temperory. Next time again it prompts me that the environmental variable is not set, before I run "emctl status".
    Thanks,

    HI
    in HPUX u can use
    export ORACLE_SID=SID
    you can also put export ORACLE_SID=SID in the .profile file from your oracle user then the environment variable is set.
    Regards

  • Hangman: variable problem

    Good evening. I am in the final stages of finishing up my hangman project but I have encountered a variable problem on 3 lines of code. The compiler doesn't seem to like this line of code "r = in.readLine();" or "word = in.readLine();" obviously it doesn't like this way of reading in. I am seeking any help possible. It would be very much appreciated. Thanks!
    here's the code:
    package hangman;
    * <p>Title: </p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2005</p>
    * <p>Company: </p>
    * @author unascribed
    * @version 1.0
    import java.io.*;
    import java.text.*;
    public class Hangman {
        public static void main(String[] args)throws IOException
            char[] theWord;
            char[] guesses;
            boolean[] correctGuesses;
            int maxWrong = 6; // We'll give them 6 incorrect
            int numWrong = 0;
            boolean badGuess;
            char guess;
            int numGuesses = 0;
            // Get the word
            theWord = getWord();
            // Initialize correctGuesses
            correctGuesses = new boolean[theWord.length];
            for(int i = 0; i < correctGuesses.length; i++) {
                correctGuesses[i] = false;
            // initialize guesses
            guesses = new char[theWord.length + maxWrong];
            // Keep going until they have guessed everything
    while(!gameOver(correctGuesses) && numWrong < maxWrong) {
                // Print out the current state
                System.out.println("-----");
                // Print out the status
                System.out.print("Status: ");
                for(int i = 0; i < theWord.length; i++)
                    if(correctGuesses)
    System.out.print(theWord[i]);
    else
    System.out.print('_');
    System.out.println();
    // Print out what has been guessed so far
    System.out.print("Guessed: ");
    for(int i = 0; i < numGuesses; i++)
    System.out.print(guesses[i]);
    System.out.println();
    System.out.println((maxWrong - numWrong) + " incorrect guesses remaining");
    System.out.println("*****");
    // Get the guess
    guess = getGuess(guesses, numGuesses);
    // Record it
    guesses[numGuesses] = guess;
    numGuesses++;
    // See if it is in the word
    badGuess = true;
    for(int i = 0; i < theWord.length; i++) {
    if(guess == theWord[i]) {
    correctGuesses[i] = true;
    badGuess = false;
    if(!badGuess) {
    System.out.println("Good guess!");
    } else {
    System.out.println("Bad guess!");
    // If the guess wasn't in the word, increment
    numWrong++;
    if(numWrong == maxWrong)
    System.out.println("Game Over: Sorry you entered too many bad guesses - better luck next time!");
    else
    System.out.println("Good Job - you win!");
    // Get the word
    public static char[] getWord() {
    String word;
    // Get a word
    System.out.print("Please enter a word: ");
    word = in.readLine();
    // And return it as a char array
    return word.toCharArray();
    // See if the game is finished (all the letters guessed)
    public static boolean gameOver(boolean[] g) {
    boolean allGuessed = true;
    // if any element of the array is false
    // then they haven't guessed everything yet
    // and the game is not over
    for(int i = 0; i < g.length; i++)
    if(g[i] == false)
    allGuessed = false;
    return allGuessed;
    // Get a guess
    public static char getGuess(char[] guesses, int numGuesses) {
    char r = 'a';
    boolean done = false;
    // Get a character
    while(!done) {
    // Read and discard the previous newline
    while(r != '\n')
    r = in.readLine();
    System.out.print("Your guess: ");
    r = in.readLine();
    // See if they already guessed this letter
    done = true;
    for(int i = 0; i < numGuesses; i++) {
    if(r == guesses[i]) {
    System.out.println("You already guessed that letter. Please try again.");
    done = false;
    // return the guess
    return r;

    THANKS! i just added a bufferedreader however, the same problem with the variable persists. if anyone can fix it i'd appreciate it dearly!
    code with bufferedreader:
    package hangman;
    * <p>Title: </p>
    * <p>Description: </p>
    * <p>Copyright: Copyright (c) 2005</p>
    * <p>Company: </p>
    * @author unascribed
    * @version 1.0
    import java.io.*;
    import java.text.*;
    public class Hangman {
        public static void main(String[] args)throws IOException
            char[] theWord;
            char[] guesses;
            boolean[] correctGuesses;
            int maxWrong = 6; // We'll give them 6 incorrect
            int numWrong = 0;
            boolean badGuess;
            char guess;
            int numGuesses = 0;
            BufferedReader in;
            in = new BufferedReader(new InputStreamReader(System.in));
            // Get the word
            theWord = getWord();
            // Initialize correctGuesses
            correctGuesses = new boolean[theWord.length];
            for(int i = 0; i < correctGuesses.length; i++) {
                correctGuesses[i] = false;
            // initialize guesses
            guesses = new char[theWord.length + maxWrong];
            // Keep going until they have guessed everything
    while(!gameOver(correctGuesses) && numWrong < maxWrong) {
                // Print out the current state
                System.out.println("-----");
                // Print out the status
                System.out.print("Status: ");
                for(int i = 0; i < theWord.length; i++)
                    if(correctGuesses)
    System.out.print(theWord[i]);
    else
    System.out.print('_');
    System.out.println();
    // Print out what has been guessed so far
    System.out.print("Guessed: ");
    for(int i = 0; i < numGuesses; i++)
    System.out.print(guesses[i]);
    System.out.println();
    System.out.println((maxWrong - numWrong) + " incorrect guesses remaining");
    System.out.println("*****");
    // Get the guess
    guess = getGuess(guesses, numGuesses);
    // Record it
    guesses[numGuesses] = guess;
    numGuesses++;
    // See if it is in the word
    badGuess = true;
    for(int i = 0; i < theWord.length; i++) {
    if(guess == theWord[i]) {
    correctGuesses[i] = true;
    badGuess = false;
    if(!badGuess) {
    System.out.println("Good guess!");
    } else {
    System.out.println("Bad guess!");
    // If the guess wasn't in the word, increment
    numWrong++;
    if(numWrong == maxWrong)
    System.out.println("Game Over: Sorry you entered too many bad guesses - better luck next time!");
    else
    System.out.println("Good Job - you win!");
    // Get the word
    public static char[] getWord() {
    String word;
    // Get a word
    System.out.print("Please enter a word: ");
    word = in.readLine();
    // And return it as a char array
    return word.toCharArray();
    // See if the game is finished (all the letters guessed)
    public static boolean gameOver(boolean[] g) {
    boolean allGuessed = true;
    // if any element of the array is false
    // then they haven't guessed everything yet
    // and the game is not over
    for(int i = 0; i < g.length; i++)
    if(g[i] == false)
    allGuessed = false;
    return allGuessed;
    // Get a guess
    public static char getGuess(char[] guesses, int numGuesses) {
    char r = 'a';
    boolean done = false;
    // Get a character
    while(!done) {
    // Read and discard the previous newline
    while(r != '\n')
    r = in.readLine();
    System.out.print("Your guess: ");
    r = in.readLine();
    // See if they already guessed this letter
    done = true;
    for(int i = 0; i < numGuesses; i++) {
    if(r == guesses[i]) {
    System.out.println("You already guessed that letter. Please try again.");
    done = false;
    // return the guess
    return r;

  • What the need of environmental variables

    when we are writing shell scripts which contains sql relative statements
    why we need to have these environmental variables
    ORACLE_HOME=........; export ORACLE_HOME
    LD_LIBRARY_PATH=$ORACLE_HOME/lib;
    export LD_LIBRARY_PATH
    PATH=$ORACLE_HOME/bin:$PATH;
    export PATH
    unset ORA_NLS33
    export NLS_NUMERIC_CHARACTERS=,
    please tell me
    if possible each one in detail and any link contains these things

    As already mentioned, they are pointers which allow the script to find programs and files. For example, if you set ORACLE_HOME=/app/oracle/product/10.2.0 and then PATH=$ORACLE_HOME/bin:$PATH then when you call sqlplus, the operating system can find the sqplus program because it searches down the $PATH directory structure. Some of the Oracle code itself relies on these being set - try not having ORACLE_HOME or PATH set and then executing sqlplus from the oracle installation bin directory - you get an error stating a message file cannot be accessed - this is becuse the internal code it using the ORACLE_HOME and PATH environment variables.
    Also, setting the variables makes your scripts much easier to maintain - if you move your script to another server where the filesystem is different or you upgrade Oracle so that the $ORACLE_HOME changes, you only need to change these lines, rather than trawl your whole script. It's basically good coding practice to do this.
    Cheers,
    James

  • Local variable problem

    I am making an application that takes an apartment number and number of occupants in that apartment and then displays a number of statistics. So far I haven't had much problem
    except on a what is probably a very simple problem.
    I have two buttons, and when "store" is clicked the info in the textboxes is input to an array.
    My problem is with the next button, "quit", this is where all the info is supposed to be displayed.
    All my variables that I need from "store" are local and are recognized in " the if statement in quit. Ive tried declaring them outside of the if statement, but it hasn't been working.
    {code}
    public void actionPerformed(ActionEvent event)
                   Object source = event.getSource();
                   Apartment input;
                   if (source == store)
                        Integer aptNo = Integer.parseInt(input1.getText());
                        Integer occup = Integer.parseInt(input2.getText());
                        input = new Apartment(aptNo, occup);
                        if(aptNo > BUILDING_SIZE)
                             JOptionPane.showMessageDialog(null, "That apartment number doesn't exist.");
                        else if(occup > MAX_OCCUPANTS)
                             JOptionPane.showMessageDialog(null, "Too many occupants, only 20 are permitted per apartment.");
                        else
                             occupants[aptNo] = occup;
                             input1.setText("");
                             input2.setText("");
                             JOptionPane.showMessageDialog(null, input.getNumber(occupants));
                   if (source == quit)
                   // I need the variables aptNo and occup in here to put into my methods for output, but I don't know how to get them.     
    {code}

    EmmCeeVee wrote:
    Thank you for all of the responses, it really helps me out.
    Obviously my knowledge of local variables is hurting as I switched it around as your said and declared the aptNo and occup outside of the if's.
    All I need is for the quit button to look at the array ( which has just been modified by the sotre button) and output a bunch of results.
    Heres where im at:Your problem is of scope of the variables.
    Here whatever variable you defined in actionPerformed they are local for that method (they are out of scope when the method is finished/called again), Upon this, the actionPerformed is called twice one for store and another time for quit. So you cant expect the value stored at store should be there still when you all quit
    If you want those values available on both the actions then make them a class level variables.
    Below is a sample program, might help you.
    class Employee
         String empName = null;
         int empNo;
         Employee(String eName,int eNmbr)
              this.empName = eName;
              this.empNo = eNmbr;
    class CheckVariableScope
            Employee empOb; // Here
         int eNo;
         String eName = null;
         public void checkScope(String action)
                    //Instead of defining Employee reference variable, eNo and eName  in checkScope method, define it @ class level.
                    // in your case they are Apartment input, Integer aptNo and Integer occup
                     // like above i did.
                     // If i comment the class level variable and uncomment method variable, this program also give the same error.
              //Employee empOb;
              //int eNo;             
              //String eName = null;
              if (action.equals("Store") )
                        eNo = 10;
                        eName = "Bob";
                        empOb = new Employee(eName, eNo);
                        System.out.println("The eName is : "+empOb.empName+" , empNo is : "+empOb.empNo);
                   if (action.equals("quit"))
                        System.out.println(" eNO from Object is : "+empOb.empNo);
                        System.out.println(eNo); //Error: may not have been intitialized
         public static void main (String st[])
              CheckVariableScope ob = new CheckVariableScope();
              ob.checkScope("Store");
              ob.checkScope("quit");
    }

  • Presentation variable problem in PDF generation

    Hi,
    I have created the custom field using the following code
    *case when (V_balance.yr<=@{var_year}{2009} and V_balance.yr>=@{var_year-3}{2006}) then 1 else 0 end*
    Use this field I have created the filter and remove the field from report.
    When I run the report with different prompts, its working fine as I expected in dashboard.
    But when I generate the PDF for different prompt values ( var_year=2008 ) , I got same result. That is its generate var_year=2009 (default presentation variable)
    Its generate the pdf with 'presentation variable default values' instead of presentation variable.
    How could I rectify this problem.
    Any one facing this problem.
    Is there any alternative for this condition
    Note:
    We are using bise1 10.1.3.2.1
    but I got a right answer in obiee 10.1.3.4.0
    Thanks
    Mohan
    Edited by: Mohan 8732779 on Nov 23, 2009 5:50 AM

    This is a known issue in 10.1.3.2. Oracle solved this problem in the new upgraded 10.1.3.4. Check the Meta link for the service request numbers raised for this problem. How hard it would be for you to migrate to 10.1.3.4.
    Thanks
    Prash

  • Replacing 20 fixstatements by Global Variable - Problem 255 bytes length

    Hello,
    we have an issue in businessrules with setting the fix statement on 1 dimension:
    we currently use Fix (@RELATIVE("CBU_ALL",0) ) - on level 0 are approx. 3000 members - on medium level are 20 CBUs Seat and 20 CBUs Door
    we have approx. 20-30 similar businessrules - which either calculate on seat or door CBUs
    the requirement is to either calculate with a rule the 20 CBUs for Seats or the 20 CBUs for Doors
    as we currently do not fix properly on either Seat or Door CBUs, we calculate approx. 1500 empty members (empty, if fix in another dimension done correctly) - tests showed, that this doubles the time which would be needed.
    I know we could easily set 20 fixes in each business rule:
    @RELATIVE("CBU_BMW_Seat",0)
    ....20 more....
    @RELATIVE("CBU_Ford_Seat",0)
    (the fix above would then exclude the 1500 members, which are below:
    @RELATIVE("CBU_BMW_Doors",0)
    ....20 more....
    @RELATIVE("CBU_Ford_Doors",0)
    unfortunately, the number of CBUs/Customers is frequently renamed or some are added, so I can not afford to built these 20 fixstatements into 20 different businessrules and maintain them all the time.
    I thought of using UDAs or Attribute Values -
    but it seems not to be possible in a fixstatment to combine a relative or Children fixstatement with UDAs, which are set on the upper member ?
    I assume it works, if I classify all 3000 level 0 members with UDA or attribute SEATS or DOORS - but that's inefficient
    @RELATIVE("CBU_BMW_Seat",0) AND @UDA(CBU,"SEATS")
    @CHILDREN("CBU_BMW_Seat") AND @UDA(CBU,"SEATS")
    @Descendants("CBU_BMW_Seat") AND @UDA(CBU,"SEATS")
    @UDA(CBU,"SEATS")
    generally, it seems not to be allowed to combine Children or descendant fixes with any other relations or conditions ?
    @CHILDREN(@Match(CBU," Seat") ) (attempt to search for all children of all CBUs with Seat in its name)
    So the idea is to define 2 global variables:
    1 for Seats and 1 for Doors:
    [SEAT] includes then then: @children("CBU_BMW_Seat") ... 20 more @children("CBU_Ford_Seat")
    advantage would be, we can maintain the list of CBUs in 1 place
    my problem is: length of global variable is limited to 255 bytes - I need 800 to 900 digits to define the 20 CBUs
    having 8 global variables instead of 40 CBUs referenced in Fixstatements is not really an advantage
    even if I would rename the CBUs to just S1,S2,S3,S4 D1,D2,D3 (S for Seat, D for Door) (and use aliases in Planning and Reporting with full name to have the right meaning for the users), it does not fit into 1 variable: @children("S1"), @Children("S2"), ..... is simply too long (still 400 digits)
    also other attempts to make the statement shorter, failed:
    @children(@list("CBU_BMW_Seat","CBU_Ford_Seat",.....)) is not allowed
    is there any other idea of using global variables, makros, sequences ?
    is there a workaround to extend global variable limit ? we have release 9.3.1 - is this solved in future releases ?
    are there any other commands, which I can combine in clever way in fixstatements with
    @relative
    @children
    @descendants
    with things like @match @list ?
    (Generation and Level are no approrate criteria for Separating Seat and Doors, as the hierarchy is the same)
    please understand, that as we use this application for 5 years with a lot of historic data and it's a planning application with a lot of webforms and financial reports, and all the CBU members are stored members with calculated totals and access rights and setup data on upper members,
    I can not simply re-group the whole cbu structure and separate Seats and Doors just for calculation performance
    CBU dimension details is like this:
    Generation:
    1 CBU_ALL
    2 CBU_BMW
    3 CBU_BMW_Seat
    4 Product A
    4 Product B
    ..... hundreds more
    3 CBU_BMW_Door
    4 Product C
    4 Product D
    .... hundreds more
    2 CBU_Ford
    3 CBU_Ford_Seat
    4 Product E
    4 Product F
    .... hundreds more
    3 CBU_Ford_Doors
    4 Product G
    4 Product H
    .... hundreds more
    20 more CBUs with below 20 CBUs Seat and 20 CBUs Door

    How hard would it be to insert 2 children under CBU_All? Name them CBU_Seats and CBU_Doors, then group all the Seats and Doors under them.
    Then your calc could be @Relative(CBU_Doors, 0).
    I know it's not always easy or feasible to effect change to a hierarchy, but I just had the thought.
    Robert

Maybe you are looking for