:PARAMETER.param_name
I have a module that calls another module during an insert or query. If on insert the new module needs to be System.record_status='INSERT'. However I just cant seem to transfer the SYSTEM status between them the called module is always defaulting to query mode.
I have tried using :PARAMETER. and have been told I might need to create a global which Iam loathed to do as Im sure that there is an easier way and Im just being dumb??
Help!!
null
You can try to use SET_RECORD_PROPERTY built-in in a When-New-Form-Instance or Pre-Form trigger in a called module. Something like this:
If :PARAMETER.param_name := 'INSERT' THEN
SET_RECORD_PROPERTY(1,'block_1',STATUS,INSERT_STATUS);
end if;
Helena
Similar Messages
-
"bad bind variable on :PARAMETER.param_name "
Forms version : forms 6i
In Form A
Trigger : WHEN_LIST_CHANGED
DECLARE
list_id PARAMLIST;
BEGIN
-- Testing to see if value present in lobal var
:OT_NES.TEXT_ITEM154 := :GLOBAL.selected_node;
:OT_NES.TEXT_ITEM153 := :OT_NES.LIST150;
list_id := Create_Parameter_List('GES_SETUP_DATA');
Add_Parameter(list_id,'tree_node',TEXT_PARAMETER,:GLOBAL.selected_node);
Add_Parameter(list_id,'list_item',TEXT_PARAMETER,:OT_NES.LIST150);
open_form('cards_config_data',ACTIVATE,NO_SESSION,list_id);
EXCEPTION
WHEN OTHERS THEN
message(SQLERRM);
END;
IN Form B
Trigger Name : When_New_form_instance
DECLARE
the_list PARAMLIST := Get_Parameter_List('list_id');
BEGIN
-- Getting Error here "Bad Bind variable :Parameter" ???
:BLOCK3.TEXT_ITEM112 := :PARAMETER.tree_node ;
END ;
How do I retrieve the parameter values in form B ?
Thanks in Advance
Sharath:PARAMETER.<name> as you have used is the correct syntax, but you will get this error if you have not actually defined the parameter at design time in the Parameters node in the form.
-
Using "PARAMETER.param_name as a "Copy item from value" reference
I a, using forms 9i and I am having a problem using a Parameter as a reference item. The parameter item is there and I am spelling it correctly, i have even cut and pasted the parameter name into the Copy item value. No matter what I do I get the same result.
FRM-30047: Cannot resolve item reference PARAMETER.PROJECT_UID.
Item: PROJECT_UID
Block: GRANT_SUMMARY
Form: GRANTS
FRM-30085: Unable to adjust form for output.
I have even added a colon to the word PARAMETER but this too fails.
Suggestions pleaseYou have to assign it programatically as 'Copy item from Value' is mainly there to keep the master detail relationships. It actually expects a block item rather than a parameter.
Antony. -
hi guys.
I have a form parameter which is on the .fmb file I want to pass this into a procedure which is called in a library (.pll file). I usually use name_in('blk_name.item_name') to do stuff lke this but was wondering how to go about it if the parameter I want to pass in is in the parameter section of the .fmb.
Any help wiould be greatly appreciated....but was wondering how to go about it if the parameter I want to pass in is in the parameter section of the .fmb.Are you actually passing the Parameter object as a library program unit parameter or are you just referencing the Parameter in your library program unit?
For example:
BEGIN
Library_Procedure(NAME_IN('PARAMETER.PARAM_NAME'));
END;or are you doing this?
PROCEDURE Library_Procedure IS
BEGIN
v_a_variable := NAME_IN('PARAMETER.PARAM_NAME');
END;The first option will work, but the second method will not as the object doesn't exist in the scope of that program unit. You will have to pass the value of the parameter to your library PL/SQL program unit as demonstrated in the first example.
Hope this helps,
Craig B-)
If someone's response is helpful or correct, please mark it accordingly. -
请给位帮忙看一下,如果有需要的资料,请留言,我上传给大家,谢谢了!
环境:
hp-ux 11.31
oracle 10.2.0.5
新增rac节点dt03,dt04
执行addNode脚本复制crs到新增节点成功后,执行root脚本报错如下:
root@dt04[] /u01/app/oracle/product/10.2.0/crs_1/root.sh
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
No value set for the CRS parameter CRS_OCR_LOCATIONS. Using Values in paramfile.crs
Checking to see if Oracle CRS stack is already configured
Checking to see if any 9i GSD is up
/usr/lib/hpux64/dld.so: Unable to find library 'libnmapi2.so'.
9i GSD is running on node ''. Stop the GSD and rerun root.sh
检测脚本:
root@dt04[]sh -x /u01/app/oracle/product/10.2.0/crs_1/root.sh
+ /u01/app/oracle/product/10.2.0/crs_1/install/rootinstall
WARNING: directory '/u01/app/oracle/product/10.2.0' is not owned by root
WARNING: directory '/u01/app/oracle/product' is not owned by root
WARNING: directory '/u01/app/oracle' is not owned by root
WARNING: directory '/u01/app' is not owned by root
WARNING: directory '/u01' is not owned by root
+ /u01/app/oracle/product/10.2.0/crs_1/install/rootconfig
No value set for the CRS parameter CRS_OCR_LOCATIONS. Using Values in paramfile.crs
Checking to see if Oracle CRS stack is already configured
Checking to see if any 9i GSD is up
/usr/lib/hpux64/dld.so: Unable to find library 'libnmapi2.so'.
9i GSD is running on node ''. Stop the GSD and rerun root.sh
+ /u01/app/oracle/product/10.2.0/crs_1/install/rootconfig脚本如下:
#!/bin/sh
# rootconfig.sh for Oracle CRS homes
# This is run once per node during the Oracle CRS install.
# This script does the following:
# 1) Stop if any GSDs are running from 9.x oracle homes
# 2) Initialize new OCR device or upgrade the existing OCR device
# 3) Setup OCR for running CRS stack
# 4) Copy the CRS init script to init.d for init process to start
# 5) Start the CRS stack
# 6) Configure NodeApps if CRS is up and running on all nodes
# NOTE: Use sample paramfile in $ORA_CRS_HOME/srvm/admin/paramfile.sample for
# setting CRS parameters
# The following commands need to be run before Oracle Cluster Registry is
# populated.
# This is run during CRS installation and not during RAC
SILENT=false
ORA_CRS_HOME=/u01/app/oracle/product/10.2.0/crs_1
CRS_ORACLE_OWNER=oracle
CRS_DBA_GROUP=oinstall
CRS_VNDR_CLUSTER=false
CRS_OCR_LOCATIONS=
CRS_CLUSTER_NAME=
CRS_HOST_NAME_LIST=
CRS_NODE_NAME_LIST=dt01,dt02
CRS_PRIVATE_NAME_LIST=
CRS_LANGUAGE_ID=
CRS_VOTING_DISKS=
CRS_NODELIST=
CRS_NODEVIPS=
CRS_PARAMS="ORA_CRS_HOME CRS_ORACLE_OWNER CRS_DBA_GROUP CRS_VNDR_CLUSTER CRS_OCR_LOCATIONS CRS_CLUSTER_NAME CRS_HOST_NAME_LIST CRS_NODE_NAME_LIST CRS_PRIVATE_NAME_LIST CRS_LANGUAGE_ID CRS_VOTING_DISKS CRS_NODELIST CRS_NODEVIPS"
if [ -z "$CP" ]; then CP=/bin/cp; fi
if [ -z "$MV" ]; then MV=/bin/mv; fi
if [ -z "$CHOWN" ]; then CHOWN=/bin/chown; fi
if [ -z "$CHOWNH" ]; then CHOWNH="/bin/chown -h"; fi
if [ -z "$CHGRP" ]; then CHGRP=/bin/chgrp; fi
if [ -z "$CHMOD" ]; then CHMOD=/bin/chmod; fi
if [ -z "$ECHO" ]; then ECHO=/bin/echo; fi
if [ -z "$LS" ]; then LS=/bin/ls; fi
if [ -z "$KILL" ]; then KILL=/bin/kill; fi
if [ -z "$SLEEP" ]; then SLEEP=/bin/sleep; fi
if [ -z "$LN" ]; then LN=/bin/ln; fi
if [ -z "$LNS" ]; then LNS="/bin/ln -s"; fi
if [ -z "$RM" ]; then RM=/bin/rm; fi
if [ -z "$RMF" ]; then RMF="$RM -f"; fi
if [ -z "$CAT" ]; then CAT=/bin/cat; fi
if [ -z "$MKDIR" ]; then MKDIR="/bin/mkdir "; fi
if [ -z "$MKDIRP" ]; then MKDIRP="/bin/mkdir -p"; fi
if [ -z "$GREP" ]; then GREP=/bin/grep; fi
if [ -z "$CAT" ]; then CAT=/bin/cat; fi
if [ -z "$TOUCH" ]; then TOUCH=/bin/touch; fi
if [ -z "$AWK" ]; then AWK=/bin/awk; fi
if [ -z "$SYNC" ]; then SYNC=/bin/sync; fi
if [ -z "$ID" ]; then ID=/usr/bin/id; fi
if [ -z "$HOSTN" ]; then HOSTN=/bin/hostname; fi
if [ -z "$EXPRN" ]; then EXPRN=/usr/bin/expr; fi
if [ -z "$CUT" ]; then CUT=/usr/bin/cut; fi
if [ -z "$ISAINFOB" ]; then ISAINFOB="/usr/bin/isainfo -b"; fi
if [ -z "$TR" ]; then TR=/bin/tr;fi
#solaris on amd and SPARC has issue with /bin/tr
[ 'SunOS' = `/bin/uname` ] && TR=/usr/xpg4/bin/tr
#on linux tr is at /usr/bin/tr
[ 'Linux' = `/bin/uname` ] && TR=/usr/bin/tr
###Function for displaying usage of this script
usage()
printf "Usage:"
printf "$0 [-silent]\n"
printf " [-crshome <Oracle CRS home path>]\n"
printf " [-paramfile <Path of file specifying CRS parameter values>]\n"
##Function for parsing the command line arguments
parseArgs()
USER_ARGS=$*
while [ $# -gt 0 ];
do
if [ $1 = "-silent" ]; then
SILENT=1;
elif [ $1 = "-paramfile" ]; then
USE_FILE=true
if [ $# -ge 2 ]; then
CRS_ENV_FILE=$2;
shift;
else
usage;
exit 2
fi
elif [ $1 = "-crshome" ]; then
if [ $# -ge 2 ]; then
ORA_CRS_HOME=$2;
shift;
else
usage;
exit 2;
fi
else
usage;
exit 2
fi
shift;
done
##Function for reading CRS parameters from the given param file
readparamfile()
$ECHO "Reading $CRS_ENV_FILE.."
## Make sure that this input file has only "LHS=RHS" and empty lines
## Any other lines will be considered improper input for root script
awkOutput=`$AWK 'BEGIN { Ni=0 } \
/^#/ { next } \
/[A-Z]\=\`*\`/ { printf("\"%s\"\n", $0); next } \
/[A-Z_]\=/ { next } \
/^$/ { next } \
{ printf("\"%s\"\n", $0); next }' $CRS_ENV_FILE`
if [ "x$awkOutput" != "x" ]; then
$ECHO "The following unexpected input found in CRS parameter file: $awkOutput"
exit 1
fi
. $CRS_ENV_FILE
$ECHO "File ($CRS_ENV_FILE) is used for setting CRS variables."
$ECHO "CRS_ORACLE_OWNER=$CRS_ORACLE_OWNER"
$ECHO "CRS_DBA_GROUP=$CRS_DBA_GROUP"
$ECHO "CRS_VNDR_CLUSTER=$CRS_VNDR_CLUSTER"
$ECHO "CRS_OCR_LOCATIONS=$CRS_OCR_LOCATIONS"
$ECHO "CRS_CLUSTER_NAME=$CRS_CLUSTER_NAME"
$ECHO "CRS_HOST_NAME_LIST=$CRS_HOST_NAME_LIST"
$ECHO "CRS_NODE_NAME_LIST=$CRS_NODE_NAME_LIST"
$ECHO "CRS_PRIVATE_NAME_LIST=$CRS_PRIVATE_NAME_LIST"
$ECHO "CRS_LANGUAGE_ID=$CRS_LANGUAGE_ID"
$ECHO "CRS_VOTING_DISKS=$CRS_VOTING_DISKS"
$ECHO "CRS_NODELIST=$CRS_NODELIST"
$ECHO "CRS_NODEVIPS=$CRS_NODEVIPS"
validateInput()
##validates if any value is assigned to the script variables
for i in `echo $CRS_PARAMS`;
do
PARAM_NAME=$i
PARAM_VALUE=`eval echo \\$$i`
valid=`$ECHO $PARAM_VALUE | $AWK '/^%/ { print "false"; }'`
if [ "$valid" = "false" ];
then
$ECHO "No value set for the CRS parameter $PARAM_NAME. Use parameter file to set values";
usage;
return 1;
elif [ -z "$PARAM_VALUE" ]; then
echo "No value set for the CRS parameter $PARAM_NAME. Using Values in paramfile.crs";
. $CH/install/paramfile.crs
return 0;
fi
done
return 0;
validateVDisks()
#Checks for validity of voting disks
vDisks=`$ECHO $1 | $AWK -F',' '{ for(n=1;n<=NF;n++) print $n; }'`;
set `$ECHO $vDisks`;
ret=0;
while [ $# -gt 0 ];
do
vdisk=$1;
if [ ! -r $vdisk ]; then
$ECHO "\"$vdisk\" does not exist. Create it before proceeding."
$ECHO "Make sure that this file is shared across cluster nodes."
ret=1
else
$CHOWN $CRS_ORACLE_OWNER $vdisk || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $vdisk || { $ECHO $?; exit 1; }
$CHMOD 640 $vdisk || { $ECHO $?; exit 1; }
fi;
shift;
done;
return $ret;
validateOCRDisks()
if [ -f $OCR_SYNC_FILE ]; then
##Checking the OCR locations used by existing nodes in the cluster
NEW_OCR_FILE=`$AWK -F= '/ocrconfig_loc/ {print $2}' < $OCR_SYNC_FILE`
NEW_OCRMIRROR_FILE=`$AWK -F= '/ocrmirrorconfig_loc/ {print $2}' < $OCR_SYNC_FILE`
CRS_OCR_LOCATIONS=$NEW_OCR_FILE
if [ ! -z "$NEW_OCRMIRROR_FILE" ];
then
CRS_OCR_LOCATIONS=$CRS_OCR_LOCATIONS,$NEW_OCRMIRROR_FILE
fi
$ECHO "OCR LOCATIONS = " $CRS_OCR_LOCATIONS
else
##Syncing of OCR disks is not required
$ECHO ""
fi
return 0;
validateSICSS()
SICSS=false;
if [ -f "$OCRCONFIG" ]; then
# ocr.loc file exists and ocr location set here is
OCRCONFIG_LOC=`$AWK -F= '/ocrconfig_loc/ {print $2}' < $OCRCONFIG`
# ocr.loc already has a location specified. Check if it is used for
# single instance CSS/ASM
LOCAL_FLAG=`$AWK -F= '/local_only/ {print $2}' < $OCRCONFIG`
LOCAL_ONLY=`$ECHO $LOCAL_FLAG | $AWK '/[fF][aA][lL][sS][eE]/ { print "FALSE" }
/[tT][rR][uU][eE]/ { print "TRUE" }'`
# Previous installation of 10g single instance
if [ "$LOCAL_ONLY" = "TRUE" ];then
SICSS=true;
fi
fi
ret=0;
if $SICSS;
then
$ECHO "CSS is configured for single instance Oracle databases. Delete this configuration using the command 'localconfig delete' before proceeding with RAC configuration."
ret=1;
fi
return $ret;
NSSetup()
$ECHO "Setting up NS directories"
if [ ! -d /var/tmp/.oracle ];
then
$MKDIRP /var/tmp/.oracle || { return 1; };
fi
$CHMOD 01777 /var/tmp/.oracle || { return 1; }
$CHOWN root /var/tmp/.oracle || { return 1; }
if [ ! -d /tmp/.oracle ];
then
$MKDIRP /tmp/.oracle || { return 1; }
fi
$CHMOD 01777 /tmp/.oracle || { return 1; }
$CHOWN root /tmp/.oracle || { return 1; }
return 0;
还有一部分请见一楼信息接原文继续描述
# This script is intended to be run by root.
RUID=`$ID|$AWK -F\( '{print $2}'|$AWK -F\) '{print $1}'`
if [ ${RUID} != "root" ];then
$ECHO "You must be logged in as root to run $0."
$ECHO "Log in as root and restart $0 execution."
exit 1
fi
#If the hostname is an IP address, let hostname
#remain as IP address
HOST=`$HOSTN`
len1=`$EXPRN "$HOST" : '.*'`
len2=`$EXPRN match $HOST '[0-9]*\.[0-9]*\.[0-9]*\.[0-9]*'`
# Strip off domain name in case /bin/hostname returns
# FQDN hostname
if [ $len1 != $len2 ]; then
HOST=`$ECHO $HOST | cut -d'.' -f1`
fi
HOST=`$ECHO $HOST | $TR '[:upper:]' '[:lower:]'`
# File that $LOGMSG in init.cssd (and other places) will write
MSGFILE=/var/adm/messages
DISABLE_OPROCD=false;
USE_FILE=false
##Parse command line arguments passed to this script
parseArgs $*
if $USE_FILE;
then
if [ ! -f "$CRS_ENV_FILE" ]; then
$ECHO "The input file($CRS_ENV_FILE) specifying the parameter values for CRS variables is not found"
exit 1
fi
###Read CRS parameter values from param file
readparamfile
fi
ORACLE_HOME=$ORA_CRS_HOME
export ORA_CRS_HOME
export ORACLE_HOME
CH=$ORA_CRS_HOME
OCR_SYNC_FILE=$CH/srvm/admin/ocr.loc
##validating the parameter values
validateInput || { $ECHO $?; exit 1; }
CRSCTL=$CH/bin/crsctl
#make sure Voting disks exists
validateVDisks $CRS_VOTING_DISKS || { $ECHO $?; exit 1; }
# Definitions to Add/Remove inittab entries
ADDITAB="$CAT \$IT | $GREP -v init.evmd | $GREP -v init.cssd | $GREP -v init.crsd > \$IT.no_crs || { $ECHO $?; exit 1; } ; \
$CAT \$IT.no_crs $CH/crs/admin/inittab > \$IT.tmp || { $ECHO $?; exit 1; }; \
$CP \$IT.tmp \$IT.crs || { $ECHO $?; exit 1; }; \
\$SYNC ; \$SYNC ; \$SYNC ; \
$MV \$IT.tmp \$IT || { $ECHO $?; exit 1; };\
\$SYNC ; \$SYNC ; \$SYNC "
RMITAB="$CAT \$IT | $GREP -v init.evmd | $GREP -v init.cssd | $GREP -v init.crsd > \$IT.tmp || { $ECHO $?; exit 1; } ; \
$CP \$IT.tmp \$IT.no_crs || { $ECHO $?; exit 1; }; \
\$SYNC ; \$SYNC ; \$SYNC ; \
$MV \$IT.tmp \$IT || { $ECHO $?; exit 1; }; \
\$SYNC ; \$SYNC ; \$SYNC "
CLSCFG_MISCNT=""
UNAME=/bin/uname
PLATFORM=`$UNAME`
case $PLATFORM in
Linux) LD_LIBRARY_PATH=$ORA_CRS_HOME/lib
export LD_LIBRARY_PATH
SO_EXT=so
DIRNAME=/usr/bin/dirname
ID=/etc/init.d
RCSDIR="/etc/rc.d/rc3.d /etc/rc.d/rc5.d"
RCKDIR="/etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc4.d /etc/rc.d/rc6.d"
RC_START=S96
RC_KILL=K96
IT=/etc/inittab
INIT=/sbin/init
OCRCONFIGDIR=/etc/oracle
SRVCONFIG=/var/opt/oracle/srvConfig.loc
OCRCONFIG=/etc/oracle/ocr.loc
OPROCDDIR=/etc/oracle/oprocd
SCRBASE=/etc/oracle/scls_scr
CLSCFG_MISCNT="-misscount 60"
HP-UX) MACH_HARDWARE=`/bin/uname -m`
if [ "$MACH_HARDWARE" = "ia64" ]; then
SO_EXT=so
NMAPIDIR_64=/opt/nmapi/nmapi2/lib/hpux64
NMAPIDIR_32=/opt/nmapi/nmapi2/lib/hpux32
else
SO_EXT=sl
NMAPIDIR_64=/opt/nmapi/nmapi2/lib/pa20_64
NMAPIDIR_32=/opt/nmapi/nmapi2/lib
fi
LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:$NMAPIDIR_64:/usr/lib:$LD_LIBRARY_PATH
SHLIB_PATH=$ORA_CRS_HOME/lib32:$NMAPIDIR_32:$SHLIB_PATH
export LD_LIBRARY_PATH
export SHLIB_PATH
DIRNAME=/bin/dirname
ID=/sbin/init.d
RCSDIR="/sbin/rc3.d"
RCKDIR="/sbin/rc2.d"
RC_START=S960
RC_KILL=K001
IT=/etc/inittab
INIT=/sbin/init
if [ ! -f $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} ]; then
$MV $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxns.${SO_EXT}
fi
if [ ! -f $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT} ]; then
$MV $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT}
fi
if [ -f ${NMAPIDIR_64}/libnmapi2.${SO_EXT} ]; then
$LN -sf ${NMAPIDIR_64}/libnmapi2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$LN -sf ${NMAPIDIR_32}/libnmapi2.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
else
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$LN -sf $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
fi
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
OCRCONFIGDIR=/var/opt/oracle
SRVCONFIG=/var/opt/oracle/srvConfig.loc
OCRCONFIG=/var/opt/oracle/ocr.loc
OPROCDDIR=/var/opt/oracle/oprocd
SCRBASE=/var/opt/oracle/scls_scr
SunOS) MACH_HARDWARE=`/bin/uname -i`
ARCH=""
case $MACH_HARDWARE in
i86pc)
CLUSTERDIR=/opt/ORCLcluster
LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:$CLUSTERDIR/lib:/usr/lib:/usr/ucblib:$LD_LIBRARY_PATH
export LD_LIBRARY_PATH
ARCH=`$ISAINFOB`
if [ ! -d $ORA_CRS_HOME/lib32 ]; then
if [ "$ARCH" = "32" ];then
NO_SUNCLUSTER=true
fi
ARCH=32
fi
CLUSTERDIR=/opt/ORCLcluster
LD_LIBRARY_PATH=$ORA_CRS_HOME/lib32:$CLUSTERDIR/lib:/usr/lib:/usr/ucblib:$LD_LIBRARY_PATH
LD_LIBRARY_PATH_64=$ORA_CRS_HOME/lib:$CLUSTERDIR/lib:/usr/lib:/usr/ucblib:$LD_LIBRARY_PATH_64
export LD_LIBRARY_PATH
export LD_LIBRARY_PATH_64
esac
SO_EXT=so
DIRNAME=/bin/dirname
ID=/etc/init.d
RCSDIR="/etc/rc3.d"
RCKDIR="/etc/rc0.d /etc/rc1.d /etc/rc2.d /etc/rcS.d"
RC_START=S96
RC_KILL=K96
IT=/etc/inittab
INIT=/sbin/init
if [ "${MACH_HARDWARE}${ARCH}" != "i86pc32" ]; then
if [ ! -f $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} ]; then
$MV $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxns.${SO_EXT}
fi
if [ ! -f $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT} ]; then
$MV $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT}
fi
# Bug 4624810 : libskgxn2 will be linked anyway. Remove them, to avoid stale link issue
# This issue happens only in solaris. ln -sf works in HP and AIX properly.
$RM -f $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} 2>/dev/null
$RM -f $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT} 2>/dev/null
if [ -f $CLUSTERDIR/lib/libskgxn2.${SO_EXT} ]; then
$LN -sf $CLUSTERDIR/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$LN -sf $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
else
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$LN -sf $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
fi
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
else
if [ ! -f $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} ]; then
$MV $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxns.${SO_EXT}
fi
$RM -f $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} 2>/dev/null
if [ "$NO_SUNCLUSTER" != "true" ] ; then
if [ -f $CLUSTERDIR/lib32/libskgxn2.${SO_EXT} ]; then
$LN -sf $CLUSTERDIR/lib32/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
else
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
fi
else
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
fi
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
fi
OCRCONFIGDIR=/var/opt/oracle
SRVCONFIG=/var/opt/oracle/srvConfig.loc
OCRCONFIG=/var/opt/oracle/ocr.loc
OPROCDDIR=/var/opt/oracle/oprocd
SCRBASE=/var/opt/oracle/scls_scr
AIX) CLUSTERDIR=/opt/ORCLcluster
LIBPATH=$ORA_CRS_HOME/lib:$CLUSTERDIR/lib:$ORA_CRS_HOME/lib32:$CLUSTERDIR/lib32:/usr/lib:$LIBPATH
LD_LIBRARY_PATH=$LIBPATH:$LD_LIBRARY_PATH
export LIBPATH
export LD_LIBRARY_PATH
SO_EXT=so
SO_AR_EXT=a
DIRNAME=/bin/dirname
ID=/etc
RCSDIR="/etc/rc.d/rc2.d"
RCKDIR="/etc/rc.d/rc2.d"
RC_START=S96
RC_KILL=K96
IT=/etc/inittab
INIT=/usr/sbin/init
ADDITAB="$ECHO \"Adding daemons to inittab\";
while read line; \
do \
rflds=\`echo \$line | $CUT -d ':' -f 1-3\`; \
lfld=\`echo \$line | $CUT -d ':' -f 4-\`; \
mkitab \$rflds:\"\$lfld\"; \
done < $CH/crs/admin/inittab"
RMITAB="while read line; \
do \
identifier=\`echo \$line | $CUT -d ':' -f 1\`; \
rmitab \$identifier 2>/dev/null; \
done < $CH/crs/admin/inittab"
if [ ! -f $ORA_CRS_HOME/lib/libskgxns.${SO_AR_EXT} ]; then
$MV $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxns.${SO_EXT}
$MV $ORA_CRS_HOME/lib/libskgxn2.${SO_AR_EXT} $ORA_CRS_HOME/lib/libskgxns.${SO_AR_EXT}
fi
if [ ! -f $ORA_CRS_HOME/lib32/libskgxns.${SO_AR_EXT} ]; then
$MV $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT}
$MV $ORA_CRS_HOME/lib32/libskgxn2.${SO_AR_EXT} $ORA_CRS_HOME/lib32/libskgxns.${SO_AR_EXT}
fi
if [ -f ${CLUSTERDIR}/lib/libskgxn2.${SO_AR_EXT} ]; then
$LN -sf ${CLUSTERDIR}/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$LN -sf ${CLUSTERDIR}/lib/libskgxn2.${SO_AR_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_AR_EXT}
$LN -sf ${CLUSTERDIR}/lib32/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
$LN -sf ${CLUSTERDIR}/lib32/libskgxn2.${SO_AR_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_AR_EXT}
else
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_AR_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_AR_EXT}
$LN -sf $ORA_CRS_HOME/lib32/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
$LN -sf $ORA_CRS_HOME/lib32/libskgxns.${SO_AR_EXT} $ORA_CRS_HOME/lib32/libskgxn2.${SO_AR_EXT}
fi
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib/libskgxn2.${SO_AR_EXT}
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib32/libskgxn2.${SO_EXT}
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib32/libskgxn2.${SO_AR_EXT}
OCRCONFIGDIR=/etc/oracle
SRVCONFIG=/var/opt/oracle/srvConfig.loc
OCRCONFIG=/etc/oracle/ocr.loc
OPROCDDIR=/etc/oracle/oprocd
SCRBASE=/etc/oracle/scls_scr
OSF1) LD_LIBRARY_PATH=$ORA_CRS_HOME/lib:/shlib:/usr/lib
export LD_LIBRARY_PATH
SO_EXT=so
DIRNAME=/usr/bin/dirname
ID="/sbin/init.d"
RCSDIR="/sbin/rc3.d"
RCKDIR="/sbin/rc3.d"
RC_START=S96
RC_KILL=K96
IT=/etc/inittab
INIT=/sbin/init
if [ ! -f $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} ]; then
$MV $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT} $ORA_CRS_HOME/lib/libskgxns.${SO_EXT}
fi
if [ -f /shlib/libdlm.${SO_EXT} ]; then
$LN -sf /$ORA_CRS_HOME/lib/libskgxnr.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
else
$LN -sf $ORA_CRS_HOME/lib/libskgxns.${SO_EXT} $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
fi
$CHOWNH $CRS_ORACLE_OWNER $ORA_CRS_HOME/lib/libskgxn2.${SO_EXT}
OCRCONFIGDIR=/var/opt/oracle
SRVCONFIG=/var/opt/oracle/srvConfig.loc
OCRCONFIG=/var/opt/oracle/ocr.loc
OPROCDDIR=/var/opt/oracle/oprocd
SCRBASE=/var/opt/oracle/scls_scr
DISABLE_OPROCD=true;
*) /bin/echo "ERROR: Unknown Operating System"
exit -1
esac
# Create CDSL for $IT files in Tru64
if [ ${PLATFORM} = "OSF1" ]; then
for file in $IT $IT.crs $IT.no_crs $IT.cssd $IT.no_cssd $IT.tmp $IT.orig \
$IT.prepatch $IT.nocrspatch
do
if [ ! -L $file ]; then
if [ -e $file ]; then
/usr/sbin/mkcdsl -fa $file
else
/usr/sbin/mkcdsl -f $file
fi
fi
done
fi
SCRDIR=$SCRBASE/$HOST
FATALFILE=$SCRDIR/$CRS_ORACLE_OWNER/cssfatal
OCR_CDATA_DIR=$ORA_CRS_HOME/cdata
OCR_BACKUP_DIR=$ORA_CRS_HOME/cdata/$CRS_CLUSTER_NAME
LOGDIR=$ORA_CRS_HOME/log/$HOST
CRS_LOGDIR=$ORA_CRS_HOME/log/$HOST/crsd
EVM_LOGDIR=$ORA_CRS_HOME/log/$HOST/evmd
CSS_LOGDIR=$ORA_CRS_HOME/log/$HOST/cssd
CLSMON_LOGDIR=$ORA_CRS_HOME/log/$HOST/cssd/oclsmon
OCR_LOGDIR=$ORA_CRS_HOME/log/$HOST/client
RES_LOGDIR=$ORA_CRS_HOME/log/$HOST/racg
RES_COREDIR1=$RES_LOGDIR/racgmain
RES_COREDIR2=$RES_LOGDIR/racgeut
RES_COREDIR3=$RES_LOGDIR/racgevtf
ADMIN_LOGDIR=$ORA_CRS_HOME/log/$HOST/admin
# some directories for OPROCD to store the domain
# sockets we use for client communication
OPROCDCHECKDIR=$OPROCDDIR/check
OPROCDSTOPDIR=$OPROCDDIR/stop
OPROCDFATALDIR=$OPROCDDIR/fatal
###Validate if single instance CSS is configured
validateSICSS || { $ECHO $?; exit 1; }
##Checking if CRS has already been configured
$ECHO "Checking to see if Oracle CRS stack is already configured"
if [ -f $FATALFILE ] && [ -f $OCRCONFIG ];
then
$ECHO "Oracle CRS stack is already configured and will be running under init(1M)"
exit 0
fi
LSDB=$ORA_CRS_HOME/bin/lsdb
# bug 4873212 : oracm is considered as non-vendor. Check it's existence in IA64
if [ "$CRS_VNDR_CLUSTER" != "true" ] ;
then
if [ "$PLATFORM" = "Linux" ];
then
$ORA_CRS_HOME/bin/lsnodes > /dev/null 2>&1
if [ "$?" = "0" ]; then
CRS_VNDR_CLUSTER=true;
fi
fi
fi
if $CRS_VNDR_CLUSTER;
then
$ECHO "Checking to see if any 9i GSD is up"
GSDNODE=`$LSDB -g`
GSDCHK_STATUS=$?
if [ $GSDCHK_STATUS != 0 ];then
$ECHO "9i GSD is running on node '$GSDNODE'. Stop the GSD and rerun root.sh"
exit 1
fi
fi
if [ ! -d "$OCRCONFIGDIR" ];then
$ECHO "$OCRCONFIGDIR does not exist. Creating it now."
$MKDIRP $OCRCONFIGDIR || { $ECHO $?; exit 1; }
fi
$CHOWN root $OCRCONFIGDIR || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $OCRCONFIGDIR || { $ECHO $?; exit 1; }
$CHMOD 755 $OCRCONFIGDIR || { $ECHO $?; exit 1; }
# create a number of subdirectories for use by OPROCD
# These should be owned by root and only allow for
# root and group access hence the 770 permissions
if [ "$DISABLE_OPROCD" = "false" ]
then
if [ ! -d "$OPROCDDIR" ]; then
$MKDIRP $OPROCDDIR || { $ECHO $?; exit 1; }
$MKDIRP $OPROCDCHECKDIR || { $ECHO $?; exit 1; }
$MKDIRP $OPROCDSTOPDIR || { $ECHO $?; exit 1; }
$MKDIRP $OPROCDFATALDIR || { $ECHO $?; exit 1; }
$CHOWN root $OPROCDDIR || { $ECHO $?; exit 1; }
$CHOWN root $OPROCDCHECKDIR || { $ECHO $?; exit 1; }
$CHOWN root $OPROCDSTOPDIR || { $ECHO $?; exit 1; }
$CHOWN root $OPROCDFATALDIR || { $ECHO $?; exit 1; }
$CHMOD 775 $OPROCDDIR || { $ECHO $?; exit 1; }
$CHMOD 770 $OPROCDCHECKDIR || { $ECHO $?; exit 1; }
$CHMOD 770 $OPROCDSTOPDIR || { $ECHO $?; exit 1; }
$CHMOD 770 $OPROCDFATALDIR || { $ECHO $?; exit 1; }
fi
fi # End "DISABLE_OPROCD=false"
## Copy reboot_toc to /var/opt/oracle/bin for HPUX
## Copy opriproc to /etc/oracle/bin for AIX
case $PLATFORM in
HP-UX)
$ECHO "Copying reboot_toc to /var/opt/oracle/bin for HPUX"
REBOOT_TOC_DIR=/var/opt/oracle/bin
REBOOT_TOC_FILE=reboot_toc
if [ ! -d $REBOOT_TOC_DIR ]; then
$MKDIRP $REBOOT_TOC_DIR
fi
if [ -f $REBOOT_TOC_DIR/$REBOOT_TOC_FILE ]; then
$CHMOD 644 $REBOOT_TOC_DIR/$REBOOT_TOC_FILE
fi
$CP $CH/bin/$REBOOT_TOC_FILE $REBOOT_TOC_DIR/$REBOOT_TOC_FILE
$CHOWN root $REBOOT_TOC_DIR
$CHMOD 555 $REBOOT_TOC_DIR/$REBOOT_TOC_FILE
AIX)
$ECHO "Copying opriproc to /etc/oracle/bin for AIX"
OPRIPROC_DIR=/etc/oracle/bin
OPRIPROC_FILE=opriproc
if [ ! -d $OPRIPROC_DIR ]; then
$MKDIRP $OPRIPROC_DIR
fi
# Reset permission to overwrite
if [ -f $OPRIPROC_DIR/$OPRIPROC_FILE ]; then
$CHMOD 644 $OPRIPROC_DIR/$OPRIPROC_FILE
fi
# Copy from CRSHOME and set the permission
$CP $CH/bin/$OPRIPROC_FILE $OPRIPROC_DIR/$OPRIPROC_FILE
$CHOWN root $OPRIPROC_DIR
$CHMOD 555 $OPRIPROC_DIR/$OPRIPROC_FILE
$CHMOD 500 $OPRIPROC_DIR
esac
# Create SCR Home dir, owned by root 755
$MKDIRP $SCRDIR || { $ECHO $?; exit 1; }
$CHOWN root $SCRBASE || { $ECHO $?; exit 1; }
$CHOWN root $SCRDIR || { $ECHO $?; exit 1; }
$CHMOD 755 $SCRBASE || { $ECHO $?; exit 1; }
$CHMOD 755 $SCRDIR || { $ECHO $?; exit 1; }
$CHMOD 644 $IT $IT.orig $IT.no_cssd $IT.cssd $IT.crs $IT.no_crs 2>/dev/null
# Create CRS log directories
for d in $LOGDIR $CRS_LOGDIR $EVM_LOGDIR $CSS_LOGDIR $OCR_LOGDIR $RES_LOGDIR $ADMIN_LOGDIR $RES_COREDIR1 $RES_COREDIR2 $RES_COREDIR3 $CLSMON_LOGDIR
do
$MKDIRP $d || { $ECHO $?; exit 1; }
done
for d in $LOGDIR $CRS_LOGDIR
do
$CHOWN root $d || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $d || { $ECHO $?; exit 1; }
done
for d in $EVM_LOGDIR $CSS_LOGDIR $OCR_LOGDIR $RES_LOGDIR $ADMIN_LOGDIR $RES_COREDIR1 $RES_COREDIR2 $RES_COREDIR3 $CLSMON_LOGDIR
do
$CHOWN $CRS_ORACLE_OWNER $d || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $d || { $ECHO $?; exit 1; }
done
$CHMOD 1755 $LOGDIR || { $ECHO $?; exit 1; }
$CHMOD 1775 $RES_LOGDIR || { $ECHO $?; exit 1; }
$CHMOD 1777 $RES_COREDIR1 || { $ECHO $?; exit 1; }
$CHMOD 1777 $RES_COREDIR2 || { $ECHO $?; exit 1; }
$CHMOD 1777 $RES_COREDIR3 || { $ECHO $?; exit 1; }
for d in $CRS_LOGDIR $EVM_LOGDIR $CSS_LOGDIR $OCR_LOGDIR $ADMIN_LOGDIR
do
$CHMOD 750 $d || { $ECHO $?; exit 1; }
done
#create EVM auth dir
$MKDIRP $CH/evm/auth
$CHOWN $CRS_ORACLE_OWNER $CH/evm/auth
$CHMOD 1755 $CH/evm/auth
# Create an empty alert log file
ALERTFILE=$LOGDIR/alert$HOST.log
$TOUCH $ALERTFILE
$CHMOD 664 $ALERTFILE
$CHGRP $CRS_DBA_GROUP $ALERTFILE
$CHOWN root $ALERTFILE
##Checking the repository location used by 9.x installations
SRVCONFIG_LOC=""
if [ -f "$SRVCONFIG" ]; then
# srvConfig.loc file exists and repository location is
SRVCONFIG_LOC=`$AWK -F= '/srvconfig_loc/ {print $2}' < $SRVCONFIG`
if [ "$SRVCONFIG_LOC" = "/dev/null" ]; then
# 9.x srvconfig_loc is already invalidated. So ignore it
# take the location entered by user to polulate ocr.loc
SRVCONFIG_LOC=""
fi
fi
##Checking the OCR locations used by 10gR1 or previous 10gR2 installations
OCRCONFIG_LOC=""
OCRMIRRORCONFIG_LOC=""
if [ -f "$OCRCONFIG" ]; then
# ocr.loc file exists and ocr location set here is
OCRCONFIG_LOC=`$AWK -F= '/ocrconfig_loc/ {print $2}' < $OCRCONFIG`
OCRMIRRORCONFIG_LOC=`$AWK -F= '/ocrmirrorconfig_loc/ {print $2}' < $OCRCONFIG`
fi
##If the ocrconfig_loc property is not set in ocr.loc then
##we will check if srvconfig_loc property is set in srvConfig.loc file.
##if set the we set ocrconfig_loc = srvconfig_loc
OCRFILE=$OCRCONFIG
if [ -z "$OCRCONFIG_LOC" ];
then
##ocrconfig_loc is empty
##Lets set this value to srvconfig_loc from 9.x if exists
if [ ! -z "$SRVCONFIG_LOC" ];
then
#set ocrconfig_loc = srvconfig_loc
OCRCONFIG_LOC=$SRVCONFIG_LOC
OCRFILE=$SRVCONFIG
fi
fi
validateOCRDisks || { $ECHO $?; exit 1; }
CRS_OCR_LOCATION=`$ECHO $CRS_OCR_LOCATIONS | awk -F',' '{print $1}'`
CRS_OCR_MIRROR_LOCATION=`$ECHO $CRS_OCR_LOCATIONS | awk -F',' '{print $2}'`
####Verify current OCR settings with user entered values
if [ ! -z "$OCRCONFIG_LOC" ];
then
if [ "$CRS_OCR_LOCATION" != "$OCRCONFIG_LOC" ];
then
$ECHO "Current Oracle Cluster Registry location '$OCRCONFIG_LOC' in '$OCRFILE' and '$CRS_OCR_LOCATION' does not match"
$ECHO "Update either '$OCRFILE' to use '$CRS_OCR_LOCATION' or variable CRS_OCR_LOCATIONS in rootconfig.sh with '$OCRCONFIG_LOC' then rerun rootconfig.sh"
exit 1
fi
else
#set ocrconfig_loc = CRS_OCR_LOCATION
OCRCONFIG_LOC=$CRS_OCR_LOCATION
fi
if [ ! -z "$OCRMIRRORCONFIG_LOC" ];
then
if [ "$CRS_OCR_MIRROR_LOCATION" != "$OCRMIRRORCONFIG_LOC" ];
then
$ECHO "Current Oracle Cluster Registry mirror location '$OCRMIRRORCONFIG_LOC' in '$OCRCONFIG' and '$CRS_OCR_MIRROR_LOCATION' does not match"
$ECHO "Update either '$OCRCONFIG' to use '$CRS_OCR_MIRROR_LOCATION' or variable CRS_OCR_LOCATIONS in rootconfig.sh with '$OCRMIRRORCONFIG_LOC' then rerun rootconfig.sh"
exit 1
fi
else
#set the mirror location = user entered value for CRS_OCR_MIRRROR_LOCATION
OCRMIRRORCONFIG_LOC=$CRS_OCR_MIRROR_LOCATION
fi
$ECHO ocrconfig_loc=$OCRCONFIG_LOC > $OCRCONFIG || { $ECHO $?; exit 1; }
if [ ! -z "$OCRMIRRORCONFIG_LOC" ];
then
$ECHO ocrmirrorconfig_loc=$OCRMIRRORCONFIG_LOC >> $OCRCONFIG || { $ECHO $?; exit 1; }
fi
$ECHO local_only=FALSE >> $OCRCONFIG || { $ECHO $?; exit 1; }
$CHOWN root $OCRCONFIG || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $OCRCONFIG || { $ECHO $?; exit 1; }
$CHMOD 644 $OCRCONFIG || { $ECHO $?; exit 1; }
if [ -f $OCR_SYNC_FILE ]; then
$RMF $OCR_SYNC_FILE
fi
# First Activate the Volume Groups containing Oracle Cluster Registry
# and the Voting disk.
$CH/css/admin/init.cssd activatevg
##if ocr file does not exist
if [ ! -f "$OCRCONFIG_LOC" ];then
$CP /dev/null $OCRCONFIG_LOC || { $ECHO $?; exit 1; }
fi
$CHOWN root $OCRCONFIG_LOC || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $OCRCONFIG_LOC || { $ECHO $?; exit 1; }
$CHMOD 640 $OCRCONFIG_LOC || { $ECHO $?; exit 1; }
if [ ! -z "$OCRMIRRORCONFIG_LOC" ];
then
##if ocr mirror file does not exist
if [ ! -f "$OCRMIRRORCONFIG_LOC" ];then
$CP /dev/null $OCRMIRRORCONFIG_LOC || { $ECHO $?; exit 1; }
fi
$CHOWN root $OCRMIRRORCONFIG_LOC || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $OCRMIRRORCONFIG_LOC || { $ECHO $?; exit 1; }
$CHMOD 640 $OCRMIRRORCONFIG_LOC || { $ECHO $?; exit 1; }
fi
if [ ! -d "$OCR_BACKUP_DIR" ];
then
$ECHO "OCR backup directory '$OCR_BACKUP_DIR' does not exist. Creating now"
$MKDIRP $OCR_BACKUP_DIR
fi
$ECHO "Setting the permissions on OCR backup directory"
$CHMOD 775 $OCR_CDATA_DIR || { $ECHO $?; exit 1; }
$CHMOD 775 $OCR_BACKUP_DIR || { $ECHO $?; exit 1; }
$CHOWN root $OCR_BACKUP_DIR || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $OCR_BACKUP_DIR || { $ECHO $?; exit 1; }
NSSetup || { $ECHO $?; exit 1; }
# GSD should be down when this script is called.
# 1. Calls ocrconfig -upgrade to upgrade Oracle Cluster Registry contents from 9.2 to 10i format.
if $CH/bin/ocrconfig -upgrade $CRS_ORACLE_OWNER $CRS_DBA_GROUP;
then
$ECHO "Oracle Cluster Registry configuration upgraded successfully"
else
$ECHO "Failed to upgrade Oracle Cluster Registry configuration"
exit 1
fi
##Invalidate the existing srvConfig.loc file if it was existing
if [ -f "$SRVCONFIG" ];then
$ECHO srvconfig_loc=/dev/null > $SRVCONFIG || { $ECHO $?; exit 1; }
$CHOWN root $SRVCONFIG || { $ECHO $?; exit 1; }
$CHGRP $CRS_DBA_GROUP $SRVCONFIG || { $ECHO $?; exit 1; }
$CHMOD 644 $SRVCONFIG || { $ECHO $?; exit 1; }
fi
# For all the files under bin, others should have only execute permission
$CHMOD o=x $CH/bin/*
# set ownership to root, but give execute permissions to all
$CHOWN root $CH/bin/crs*
$CHMOD 551 $CH/bin/crs*
# only owner(root) should ever invoke crsd
$CHMOD 741 $CH/bin/crsd
if [ ! -d $CH/crs/init ]; then
$MKDIRP $CH/crs/init
fi
for d in log racg/dump srvm/log
do
if [ ! -d $CH/$d ]; then
$MKDIRP $CH/$d
$CHOWN $CRS_ORACLE_OWNER $CH/$d
$CHGRP $CRS_DBA_GROUP $CH/$d
$CHMOD 775 $CH/$d
fi
done
for d in . lib bin crs crs/init crs/profile crs/script crs/template crs/auth
do
$CHOWN root $CH/$d
$CHMOD 755 $CH/$d
done
# These are writeable by all
for d in crs/public
do
$CHOWN $CRS_ORACLE_OWNER $CH/$d
$CHMOD 1777 $CH/$d
done
for d in evm evm/init
do
$CHMOD 750 $CH/$d
done
# Writable by the oinstall group but can only be deleted by the crshome owner
$CHMOD 1770 $CH/evm/log
$CHMOD 1750 $CH/crs/log
$CHMOD 1750 $CH/crs/trace
for d in css css/init css/log css/auth
do
$CHMOD 711 $CH/$d
done
# check directories above $CH are owned by root
# If any are not owned by root, then it allows root escalation
# by the owner of the directory.
d=$CH
while [ "$d" != "/" ]
do
d=`$DIRNAME $d`
set -$- `$LS -ld $d`
case $3 in
root) ;; # ok
*) $ECHO "WARNING: directory '$d' is not owned by root";;
esac
done
# Initialize the SCR settings.
$CRSCTL create scr $CRS_ORACLE_OWNER
if [ "$?" != "0" ]; then
$ECHO Failure initializing entries in $SCRDIR.
exit 1
fi
# Initialize the Oracle Cluster Registry the first time we come through the script.
# The invoker is required to run this script on the install node before the
# other cluster nodes.
CLSCFG_INIT=false
# clscfg - Initialize the Oracle Cluster Registry for the cluster. Should be
# done once per cluster install. Overwriting a configuration
# while any CRS daemon is running can cause serious issues.
HOSTNAMES_LIST=$CRS_HOST_NAME_LIST
if [ -z "$HOSTNAMES_LIST" ]; then
HOSTNAMES_ARGS=""
else
HOSTNAMES_ARGS="-hn $HOSTNAMES_LIST"
fi
$CH/bin/clscfg -install -nn $CRS_NODE_NAME_LIST -pn $CRS_PRIVATE_NAME_LIST \
$HOSTNAMES_ARGS -o $CH -c $CRS_CLUSTER_NAME -l "$CRS_LANGUAGE_ID" -q $CRS_VOTING_DISKS \
$CLSCFG_MISCNT
case $? in
0) CLSCFG_INIT=true;;
105) $ECHO "Oracle Cluster Registry for cluster has already been initialized";;
*) $ECHO "Failed to initialize Oracle Cluster Registry for cluster"; $ECHO $?; exit 1;;
esac
# basic copies first...
$CP $CH/evm/admin/init.evmd $ID/init.evmd || { $ECHO $?; exit 1; }
$CP $CH/css/admin/init.cssd $ID/init.cssd || { $ECHO $?; exit 1; }
$CP $CH/crs/admin/init.crsd $ID/init.crsd || { $ECHO $?; exit 1; }
$CP $CH/crs/admin/init.crs $ID/init.crs || { $ECHO $?; exit 1; }
# Create .proxyserv directory
case $PLATFORM in "Linux")
ARCH=`uname -m`
if [ $ARCH == "x86_64" ]; then
if [ -d $ORACLE_HOME/.proxysrv ]; then
$CHOWN -R $CRS_ORACLE_OWNER $ORACLE_HOME/.proxysrv
$CHMOD 755 $ORACLE_HOME/.proxysrv
else
$MKDIR $ORACLE_HOME/.proxysrv
$CHOWN -R $CRS_ORACLE_OWNER $ORACLE_HOME/.proxysrv
$CHMOD 755 $ORACLE_HOME/.proxysrv
fi
fi
esac
for rc in $RCSDIR
do
$RMF $rc/"$RC_START"init.crs
$LNS $ID/init.crs $rc/"$RC_START"init.crs || { $ECHO $?; exit 1; }
done
for rc in $RCKDIR
do
$RMF $rc/"$RC_KILL"init.crs
$LNS $ID/init.crs $rc/"$RC_KILL"init.crs || { $ECHO $?; exit 1; }
done
$CP $IT $IT.orig || { $ECHO $?; exit 1; }
# Prepare to start the daemons.
$ID/init.crs start
# Check to see if they are going to start.
$ID/init.cssd startcheck CSS
if [ "$?" != "0" ]; then
$ECHO CRS daemons not set to start. See $MSGFILE for details.
exit 1
fi
$ECHO "Adding daemons to inittab"
eval $RMITAB
$INIT q
$SLEEP 10
eval $ADDITAB
$INIT q
ALLDONE=false
# Wait until the daemons actually start up
$CRSCTL check install -wait 600
STATUS=$?
case $STATUS in
0)
# Complete success. This is the last node of the install.
works=false
# Wait for CRSD and EVMD to start up
for i in 5 10 15 20 25 30 35 40 45 50 55 60 65 70 75 80 85 90 95 100 105 110 115 120
do
if $CH/bin/crs_stat > /dev/null 2>&1
then
works=true
break
fi
$ECHO "Waiting for the Oracle CRSD and EVMD to start"
$SLEEP 5
done
if $works
then
$ECHO "Oracle CRS stack installed and running under init(1M)"
ALLDONE=true
else
$ECHO "Timed out waiting for the CRS stack to start."
exit 1
fi
2)
# Current node is successful so far. Some nodes are not yet installed.
# CRSCTL will have printed out the names of the remaining nodes.
$ECHO "Failure at final check of Oracle CRS stack."
$ECHO $STATUS
exit 1
esac
# Startup was successful. Continue with the remainder.
##VIPCA is run by the last node that joins the CSS groups
if $ALLDONE
then
CRS_PARAMS="CRS_NODEVIPS"
if validateInput > /dev/null 2>&1
then
LOCAL_NODE=`$ORA_CRS_HOME/bin/olsnodes -l`
$CH/bin/crs_stat ora.$LOCAL_NODE.vip > /dev/null
STATUS=$?
if [ "$STATUS" = "0" ];
then
# do nothing
$ECHO ""
else
$ECHO "Running vipca(silent) for configuring nodeapps"
$CH/bin/vipca -silent -nodelist $CRS_NODELIST -nodevips $CRS_NODEVIPS
if [ "$?" != "0" ]; then
$ECHO ""
exit 1
fi
fi
else
$ECHO "Run VIPCA for configuring nodeapps"
$ECHO "The command to use 'vipca -nodelist <list of cluster nodes>'"
fi
fi
exit 0
请大家帮忙看一下。
Edited by: 951276 on 2012-11-4 上午5:19 -
How to call a Report 10g from a parameter form..?
Hello,
pls i wanna know the procedure of :
How to call a Report 10g from a parameter form..?
regards,
Abdetu..hopes it work for you.
procedure get_report is
pl_id paramlist;
p_year varchar2(4);
param_name varchar2(10) :'param';
begin
pl_id := get_parameter_list(param_name);
if not id_null(pl_id_)then
destroy_parameter_list(pl_id);
end if;
pl_id := create_parameter_list(param_name);
p_year := year -- assign the value.
add_parameter(pl_id,'p_year',text_parameter,p_year);
execute_report('report_name',pl_id);
end; -
Entries in table BWOM_SETTINGS for PARAM_NAME = 'OBJSELSIZE '
Hello All,
The entries in table BWOM_SETTINGS for PARAM_NAME = 'OBJSELSIZE ' in our ECC system were as follows originally:
OLTPSOURCE = ''
PARAM_NAME = 'OBJSELSIZE '
PARAM_VALUE = 'X'
At that point we started using delta extarctor 0PM_OM_OPA_2 and it had a very poor performance.
SAP asked us to implement note 1040072.
As a result of applying that note, the BWOM_SETTINGS table has 2 entries for PARAM_NAME = OBJSELSIZE.
1. OLTPSOURCE = ''
PARAM_NAME = 'OBJSELSIZE '
PARAM_VALUE = 'X'
2. OLTPSOURCE = '0PM_OM_OPA_2'
PARAM_NAME = 'OBJSELSIZE '
PARAM_VALUE = 'X'
Things were fine until we added more init selections to another CO extractor, 0CO_OM_OPA_6.
0CO_OM_OPA_6 deltas were taking around 2 hours for original init selections:
Fiscal year / period 2007001 2007012
Fiscal year / period 2008001 2020012
Controlling Area 3000
Recently we added more init selections and now selections are :
Fiscal year / period 2007001 2007012
Fiscal year / period 2007001 2020012
Fiscal year / period 2008001 2020012
Controlling Area 3000
Controlling Area 4000
Controlling Area 5000
The extraction is now taking unacceptably long time, about 15 hours.
I am not sure if it is because adding more inits.
I have a feeling the entries in BWOM_SETTINGS for OBJSELSIZE are incorrect.
According to note 836740 should they be as below?
OLTPSOURCE = '0CO_OM_OPA_6'
PARAM_NAME = 'OBJSELSIZE '
PARAM_VALUE = 'X'
OLTPSOURCE = '0PM_OM_OPA_2'
PARAM_NAME = 'OBJSELSIZE'
PARAM_VALUE= 'X'"
One more question. If we change the BWOM_SETTINGS entries to as above, will that affect other CO extractors?
For instance, we use 0CO_OM_CCA_9 very widely and it runs very fast currently. I just want to make sure we dont mess up its performance by modifying the entries in BWOM_SETTINGS. May be add one more entry in BWOM_SETTINGS for 0CO_OM_CCA_9 too?
Sorry about the lengthy post.
Any help is greatly appreciated.
Thank you.As stated in [OSS Note 836740 - Delta extractors CO: OBJSELSIZE DataSource specific|https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=836740], there should be parameter OBJSELSIZE entries, with a value of X for the following CO DataSources:
0CO_OM_CCA_9
0CO_OM_OPA_6
0CO_OM_ABC_7
0CO_OM_WBS_6
0CO_OM_NAE_2
0CO_OM_NTW_2
0OC_OM_NWA_2
The independent entry, where the DataSource is blank, should also be prsent for the OBJSELSIZE parameter with a value of X. [OSS Note 1040072 - 0PM_OM_OPA_2: Poor performance|https://websmp130.sap-ag.de/sap(bD1lbiZjPTAwMQ==)/bc/bsp/spn/sapnotes/index2.htm?numm=1040072] shows that it's also needed for the 0PM_OM_OPA_2 DataSource.
Your entries for 0CO_OM_OPA6 and 0PM_OM_OPA_2 are correct. You should add 0CO_OM_CCA_9 and any other DataSource in the list above. If they're not listed, they are supposed to be taken care of by the independent entry (DataSource is blank). -
Hi Experts,
I want that i shall pass one column name of a table (EMP) and in the report i shall print the column of the database for example if i pass the
string 'Ename' via a parameter to report the report should print all the Enames of the EMp table.
Suppose the user parameter which i have defined in the Report side is param_name and in the SQL query of the report i am writting that
Select :param_name from emp;
but the result it is giving me is.
Param_name1
ename
ename
ename
ename
Can any one suggest.
Regards
RajatThis is a Reports question and it should be asked in the Reports Forum. but here's a little something you can start with.
You need to use lexical parameter in your select statement of the report.
SELECT &col_name FROM EMPthe lexical parameter will be substituted with the column name in your SQL. For more information search for lexical parameters in the report's builder online-help.
Tony -
How to pass servlet parameter using encodeURL function in JSP page
Hi!!!
I have a very urgently problem.
in my JSP I have this:
<IMG border="0" src='<%=response.encodeURL("/MyImageServlet")%>'>
In this way, my servlet works fine (and I have in my page my blob-image).
But I have to pass to my servlet a list of dynamic parameter. I have tried all the possibilities like:
<IMG border="0" src='<%= (response.encodeURL("/MyImageServlet") + "?Param_name=" + sessionBean.getParamValue() + "&anotherParam" + sessionBean.getAnotherParamValue())%>'
but nothing....
In my servlet I use the init function to retrieve the initial parameters(defined in my web.xml file) in this way:
public void init(ServletConfig config) throws ServletException
super.init(config);
myParam = getInitParameter( "name_of_param");
but I retrieve only the default value (-1).
How to pass to my servlet the parameters? Please help me!
Excuse me for my english,
thank you for your help!Hi!
Thanks for your reply!
I have tried this solution but it doesn't work!
When I do getInitParameter in the init function, the servlet take the default values...
Maybe I have wrote something wrong?
Excuse me for my english,
Thanks -
How do I change the query based on parameter value
hi,
Based on parameter value I want to change my query. If paramter value is 'O' i want the 'order by depno' in query if the value is null i don't want the order by clause.
How do I achieve this.
Thanks
RamU can use lexical parameter
i.e u create one user parameter and in query
u use this parameter with ¶m_name
ex.
select val,prize from stock where sr_no > :srno
orderby &ord_by
here ord_by is lexical parameter
and set its intial value to 'sr_no'
so u can get result order by sr_no
this parameter is set from form so u will give condition in form and depending
on condition u will pass this parameter from form. -
Create an Oracle Reports Parameter form application in HTMLDB
I am investigating whether I can satisfy following requirement using HTMLDB and if yes, then what are the steps to be followed.
The idea is simple. Store Oracle Reports name, parameter names, default values etc. in a table and write an application which will display a list of reports on your left, on clicking a report, use the param names stored in the table to display a form to accept values for each parameter and the submit button calls a URL pointing to the Oracle Reports Server.
This can be done easily using Oracle Forms but I am investigating if this can be done using HTMLDB since it's 100% thin client.
Any comments, hints etc. appreciated.
Thanks,
ManishThanks.
I had already seen the how-to article but my requirement was a little different since each Param Name, Value will be stored in seperate record. If a report has 4 parameters, then the table will have 4 records, one for each parameter. Here's a sample table structure that I am using.
rep_name varchar2(100)
,param_name varchar2(100)
,sort_order integer
,param_len varchar2(100)
,param_data_type varchar2(100)
,param_required varchar2(1) default 'N'
,param_description varchar2(100)
,default_value varchar2(1000)
,lov_sql varchar2(1000)
I was in fact able to achieve what I want by using a Tabular Form with the parameter description display only and default value updateable and it's submit button can be redirected to the reports URL with form fields substitution. I will use cgicmd.dat to map username/password so that it's not visible in the url.
My additional questions:
1. As per the table structure above, I have a lov_sql text field. Is it possible to create an LOV on the tabular form using this lov_sql?
2. Above the tabular form, I want to display a drop-down-list with a list of reports. When a user selects a list-item, I want to refresh the page with it's tabular form showing parameters for that report. Kind of parameterizing the Form display. Is this possible? If not what are the alternatives?
Thanks,
Manish -
Oracle Reports Parameter Form trouble on SuSE Linux
I have the report compiled on AIX 5.2, everything's fine, the same source file I compiled on SuSE Linux 8.0, the format of parameter form is totally screwed up. I compared the HTML source of those 2 parameter forms, and found the code generated by Oracle Reports.
on AIX 5.2:
<!-- Created by Oracle Reports 08:27 Tue Jul 12 08:27:03 AM, 2005 -->
<table border=0 cellspacing=0 cellpadding=0 width=379>
<tr><td width=8><td width=9><td width=59><td width=9><td width=33><td width=22><td width=17><td width=119><td width=33><td width=45><td width=21><td width=1><td width=3>
<tr><td colspan=13 height=19>....
on Linux:
<!-- Created by Oracle Reports 08:23 Tue Jul 12 08:23:50 AM, 2005 -->
<table border=0 cellspacing=0 cellpadding=0 width=4>
<tr><td width=1><td width=1><td width=1><td width=1>
<tr><td colspan=4 height=0>...
As you can see the setting width=4 in the table tag on Linux squeeze up the table a lot.
Where do I configure to prevent this happened?
thanks,
JessThanks.
I had already seen the how-to article but my requirement was a little different since each Param Name, Value will be stored in seperate record. If a report has 4 parameters, then the table will have 4 records, one for each parameter. Here's a sample table structure that I am using.
rep_name varchar2(100)
,param_name varchar2(100)
,sort_order integer
,param_len varchar2(100)
,param_data_type varchar2(100)
,param_required varchar2(1) default 'N'
,param_description varchar2(100)
,default_value varchar2(1000)
,lov_sql varchar2(1000)
I was in fact able to achieve what I want by using a Tabular Form with the parameter description display only and default value updateable and it's submit button can be redirected to the reports URL with form fields substitution. I will use cgicmd.dat to map username/password so that it's not visible in the url.
My additional questions:
1. As per the table structure above, I have a lov_sql text field. Is it possible to create an LOV on the tabular form using this lov_sql?
2. Above the tabular form, I want to display a drop-down-list with a list of reports. When a user selects a list-item, I want to refresh the page with it's tabular form showing parameters for that report. Kind of parameterizing the Form display. Is this possible? If not what are the alternatives?
Thanks,
Manish -
How 2 call a report 10g from a parameter form 10G
Hello,
pls. i need steps ,or docs how 2 run a report 10g from a parameter form ;
Is it requireD for the Parameter form to call a report an Application Server no* ???*
i had a previous experience with the code due to run the report as follows:_
DECLARE
PARAM_ID PARAMLIST ;
PARAM_NAME VARCHAR2(30) := 'REPORT_PARAMETER';
ALRT NUMBER;
ERR_TXT VARCHAR2(1000);
repid REPORT_OBJECT;
v_rep VARCHAR2(100);
v_REP_SERVER_NAME VARCHAR2(200);
v_ip VARCHAR2(100);
BEGIN
PARAM_ID := GET_PARAMETER_LIST(PARAM_NAME);
IF NOT ID_NULL(PARAM_ID) THEN
DESTROY_PARAMETER_LIST('REPORT_PARAMETER');
END IF;
v_REP_SERVER_NAME := REP_SERVER_NAME;
BEGIN
SELECT PARAMETER_VALUE
INTO v_ip
FROM GENERAL_FIXED_PARAMETERS
WHERE PARAMETER_ID = 'REPORT_SERVER_IP';
EXCEPTION
WHEN OTHERS THEN
Message ('OTHERS' || SQLCODE || ' And ' || SQLERRM);
Message ('OTHERS' || SQLCODE || ' And ' || SQLERRM);
END;
PARAM_ID := CREATE_PARAMETER_LIST(PARAM_NAME);
ADD_PARAMETER(PARAM_ID,'PARAMFORM',TEXT_PARAMETER,'NO');
ADD_PARAMETER(PARAM_ID,'COPIES',TEXT_PARAMETER,:COPIES);
ADD_PARAMETER(PARAM_ID,'P_DISPLAY',TEXT_PARAMETER,:DESTYPE);
ADD_PARAMETER(PARAM_ID,'DESFORMAT',TEXT_PARAMETER,'pdf');
ADD_PARAMETER(PARAM_ID,'group_id',TEXT_PARAMETER, :group_id);
repid := find_report_object('WH_R01_GRP_ITEM');
SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,v_rep_server_name);
v_rep := RUN_REPORT_OBJECT(repid,PARAM_ID);
WEB.SHOW_DOCUMENT('http://'||V_IP||'/reports/rwservlet/getjobid'||substr(v_rep,instr(v_rep,'_',-1)+1)||'?server='||v_REP_SERVER_NAME,'_blank');
-- http://server_name:8889/reports/rwservlet?report=rep_name.rdf¶mform=yes&destype=CACHE&desformat=htmlcss&userid=id/pass@conn
END;notice here the value of V_IP it is retrieved from the following table desc...
The table desc GENERAL_FIXED_PARAMETERS that i select from the values are as follows:_
SQL> DESC GENERAL_FIXED_PARAMETERS;
Name Null? Type
PARAMETER_ID VARCHAR2(200)
PARAMETER_VALUE VARCHAR2(200)
PARAMETER_DESC VARCHAR2(200)
MODULE VARCHAR2(200)it's stored value is as follows:
SQL> select * from GENERAL_FIXED_PARAMETERS;
PARAMETER_ID PARAMETER_VALUE PARAMETER_DESC MODULE
REPORT_SERVER_IP rep_oraas_OracleAs_10gNotice here the value of the PARAMETER_VALUE is a string ; as if it's a generic value to be applied on any REPORT_SERVER_IP this value ...
Where Should i retrieved or Get ???
That was long time i can't remember pls help me 2 run my report what should id
i searched the google but there is a missing link can u help and guide me it's urgent pls.
if needed 2 start oc4j for reports , setting pathes ,fonts, enviroment file etc.
The report object's property in the object navigator is as follow:_
+ Oracle Developer Integration node :
File name : My_Report_name
Execution Mode: Runtime
Communication Mode : Synchronous
Data Source data block :NULL
+ Reports node:
Report Destination Type : FileThanks in advance,
Regards,
Abdetu...Thanks InoL for reply,
REPORT_SERVER_IP is not correcti had doubted but wasn't sure of it...!
My First Question was :
Is it requireD for the Parameter form to call a report an Application Server no ???*the answer i found is Yessss
Regards,
Abdetu... -
Logical AND in MDX Reporting Services Parameter
Hi, I would like to implement logical AND on a cube parameter. I have seen examples of hard-coded logical AND in MDX.
(http://salvoz.com/blog/2013/12/24/mdx-implementing-logical-and-on-members-of-the-same-hierarchy/)
But I'm not sure how to apply this to a parameter's MDX dataset.
Here is an example of the automatically generated MDX which uses logical OR:
This is the drop down parameter:
WITH MEMBER [Measures].[ParameterCaption] AS [Department].[Department].CURRENTMEMBER.MEMBER_CAPTION MEMBER
[Measures].[ParameterValue] AS
[Department].[Department].CURRENTMEMBER.UNIQUENAME MEMBER [Measures].[ParameterLevel] AS
[Department].[Department].CURRENTMEMBER.LEVEL.ORDINAL
SELECT {[Measures].[ParameterCaption], [Measures].[ParameterValue],
[Measures].[ParameterLevel]} ON COLUMNS
, [Department].[Department].ALLMEMBERS ON ROWS
FROM [MyCube]
And the demo report dataset is:
SELECT NON EMPTY { [Measures].[CompanyTbl Count] } ON COLUMNS,
NON EMPTY { ([Product Level No].[Product Level No].[Product Level No].ALLMEMBERS ) }
DIMENSION PROPERTIES MEMBER_CAPTION, MEMBER_UNIQUE_NAME ON ROWS FROM
( SELECT ( STRTOSET(@DepartmentDepartment, CONSTRAINED) )
ON COLUMNS FROM [MyCube]) WHERE
( IIF( STRTOSET(@DepartmentDepartment, CONSTRAINED).Count = 1,
STRTOSET(@DepartmentDepartment, CONSTRAINED), [Department].[Department].currentmember ) )
CELL PROPERTIES VALUE,
BACK_COLOR, FORE_COLOR, FORMATTED_VALUE, FORMAT_STRING,
FONT_NAME, FONT_SIZE, FONT_FLAGSHi,
I can see there just one parameter @Department@Department in your script. But if you had two parameters that should return resultset affected by two parameters. You can do it as either select from subselect from subselect.
Example 1
SELECT
{x} ON COLUMNS,
{ROWS_SET} ON ROWS
FROM
(SELECT StrToSet(@Param1) ON COLUMNS FROM
(SELECT StrToSet(@Param2) ON COLUMNS FROM
[CUBE_NAME]
Or crossjoin between 2 parameters
SELECT
{x} ON COLUMNS,
{ROWS_SET} ON ROWS
FROM
(SELECT StrToSet(@Param1)*StrToSet(@Param2) ON COLUMNS FROM
[CUBE_NAME]
Jiri
Jiri Neoral -
Report RFKLBU10: Missing Parameter for Logical filename in Release ERP 2005
Hello Experts,
Report RFKLBU10 in Sap Release 4.6c hat a parameter "Old dataset logical name".
The new version of this report in SAP Release ERP 2005 there is no such parameter.
Is this a SAP-Bug ?
Best regards,
MikeThere are no Export or Print events accessible for the viewer
Since it sounds like you are creating the reportdocument object in your click event, the settings on this object become out of scope on successive postbacks executed by other events.
to get around this without major changes, you can place your "report" object in session in this event and retrieve it from session on successive postbacks. This should solve your problems around navigation, printing and exporting. What you will need to do is check if the session object exists (usually in page_load or page_initialze) and if so, retrieve it from session and bind it to the viewer's reportsource. If the session object does not exist, then do nothing (ie you have not clicked your button yet that retrieves the parameter values from session and loads the report). Also, in your click event you can check if the report session object exists and if so, remove it so that it can be re-created with your new parameter values (ie i'm assuming the only time you want to set parameter values is in this event).
Dan
Maybe you are looking for
-
Hi, I've gone through some of the set-up and now cannot move forward past the Internet connection screen. It won't connect nor allow me to do anything now that I've entered my password??? Thanks!
-
How to transfer Supplier custom field into Purchase order
Hi , We had a custom field called Project code in Supplier data (vendor master) at SRM. As per flow purchase order gets created as a follow-on document. Now the requirement -Project code which was there in supplier data this should be transfered to P
-
Hi everybody. I have this problem on a Windows Server 2012 Datacenter, offering SCOM2012 and VMM2012 SP1 services. If I try to access to \\servername\c$ , or vmm agent on a server try to access it, in the "Server Manager , File and Storage Services,
-
How do I set the "custom" in the color field labels?
Hi In Lr 4.1 I have just noticed that as well as red, green, yellow, blue & purple, there is a "Custom" feild too. How can I configure this, and is there a shortcut I can assign (and also for purple; how do Adobe keep skipping over assigning a shortc
-
Hi Experts, I am using hierarchys in BCS.some body has created "test" hirarchy in BCS.I want to know the details of who created the test hirarchy.can some body help me to find out the details of the above. Thanks&Regards reddy