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 PMHi 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,
walterwalter 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 -
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. -
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:
user648065facing 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 WerffHi 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,
ElanaNevermind... 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 promptMahesh_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 thingsAs 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 -
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 AMThis 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 DoorHow 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
-
why is my ipod touch showing when synced to itunes that it has 4gb of apps when there are 9 apps on yet my iphone that has the same apps and lots more says it has less than 1gb, can anyone help please as cannot put any music on the ipod touch. thanks
-
I created some Flash movies on my G5. I cannot view the swfs in any browser. 'Old' files [2 months old] I can still view [created on my former hard drive which failed recently]. Anyone have any idea what is going on with this? Thanks in advance. [I a
-
Hi Guys, I have a question that hope you guys can help me with. I have a table in a form, it has a column displaying price and another column contains the currency. I need to display the price column with the currency sign depending on the currency c
-
launch so I am trying to reinstall. I followed the directions from this site about uninstalling and deleting files and making a backup. When I try to install I get this message: C:\Documents and Settings\Kelley\Local Settings\Temporary Internet Fi
-
Hello, have a simple question on the WELCOME SCREEN. This is the screen when you push the top button on the phone and all you see is the time, date, if you have any notifications...and 1 calendar event..."Next Event"...my question is is there anyway