UNIX/Linux Script and Instructons
Create input.properties and skip_update.sh by copying the scripts in this section.
- Create
input.propertiesby copying the following script:javahome=JAVA_HOME epmautomatescript=EPM_AUTOMATE_LOCATION username=exampleAdmin password=examplePassword.epw url=exampleURL updatemonths=02,05,08,11 - Update
input.propertiesby specifying parameter values.Table 3-13 input.properties Parameters
Parameter Description javahomeJAVA_HOMElocation.epmautomatescriptAbsolute path of EPM Automate executable ( epmautomate.sh).usernameUser name of a Service Administrator. passwordPassword of the Service Administrator or the name and location of the encrypted password file. urlURL of the environment on which you want to set the non-monthly update cadence. updatemonthsA comma separated list of months when Oracle Fusion Cloud Enterprise Performance Management updates should be applied to the environment identified by the urlparameter. For example,updatemonths=02,05,08,11.Months must be specified as two digits; include a preceding zero for January through September. The script attempts to run the skipUpdatecommand for the months not included in the
updatemonthsparameter value. For example, if you specifyupdatemonths=02,05,08,11, the script tries to set skip update flags for January, March, April, June, July, September, October, and December so that updates are made only in February, May, August, and November. - Create
skip_updates.shby copying the following script:#!/bin/sh . ./input.properties export JAVA_HOME=${javahome} declare -a monthsarr=(01 02 03 04 05 06 07 08 09 10 11 12) declare -a monthsarrfromcurrent declare -a yearsarrfromcurrent updatemonthsarr=( $(echo "${updatemonths}" | sed 's/,/ /g') ) currentyear=$(date +%y) nextyear=$((currentyear+1)) currentmonth=$(date +%m) populateFromCurrentArrays() { for i in ${!monthsarr[@]} do if [[ "${currentmonth}" == "${monthsarr[$i]}" ]] then startposition=$i break fi done for i in ${!monthsarr[@]} do if [[ ${i} -ge ${startposition} ]] then monthsarrfromcurrent=("${monthsarrfromcurrent[@]}" "${monthsarr[$i]}") yearsarrfromcurrent=("${yearsarrfromcurrent[@]}" "${currentyear}") fi done for i in ${!monthsarr[@]} do if [[ ${i} -lt ${startposition} ]] then monthsarrfromcurrent=("${monthsarrfromcurrent[@]}" "${monthsarr[$i]}") yearsarrfromcurrent=("${yearsarrfromcurrent[@]}" "${nextyear}") fi done } skipUpdateAdd() { local yearnumber="$1" local monthnumber="$2" echo "Running: ${epmautomatescript} skipUpdate add version=${yearnumber}.${monthnumber} comment=\"adding skipUpdate\"" ${epmautomatescript} skipUpdate add version=${yearnumber}.${monthnumber} comment="adding skipUpdate" } processSkipUpdates() { local addcount=0 echo "Running: ${epmautomatescript} login ${username} ${password} ${url}" ${epmautomatescript} login ${username} ${password} ${url} echo "Running: ${epmautomatescript} skipUpdate remove" ${epmautomatescript} skipUpdate remove for i in ${!monthsarrfromcurrent[@]} do local match=1 if [[ ${addcount} -eq 2 ]] then echo "Two skip update add calls have been made. No more will be attempted." break fi for j in ${!updatemonthsarr[@]} do if [[ "${monthsarrfromcurrent[$i]}" == "${updatemonthsarr[$j]}" ]] then match=0 break fi done if [[ ${match} -eq 1 ]] then skipUpdateAdd ${yearsarrfromcurrent[$i]} "${monthsarrfromcurrent[$i]}" addcount=$((addcount+1)) fi done echo "Running: ${epmautomatescript} skipUpdate list" ${epmautomatescript} skipUpdate list echo "Running: ${epmautomatescript} logout" ${epmautomatescript} logout } compareUpdateMonths() { local thismonth=$1 local nextmonth=$2 local nextmonthorig=${nextmonth} if [[ ${nextmonth} -lt ${thismonth} ]] then nextmonth=$((nextmonth+12)) fi monthdiff=$((nextmonth-thismonth)) if [[ ${monthdiff} -gt 4 ]] then echo "There are more than 3 months skipped from month ${thismonth} to month ${nextmonthorig}. Please correct updatemonths in input.properties so that there are not more than three months skipped between each update month. Exiting." exit 1 fi } validateUpdateMonths() { for i in ${!updatemonthsarr[@]} do nextint=$((i+1)) thisupdatemonth="${updatemonthsarr[$i]}" thisupdatemonthint=${thisupdatemonth#0} nextupdatemonth="${updatemonthsarr[$nextint]}" nextupdatemonthint=${nextupdatemonth#0} if [[ ${nextupdatemonth} == "" ]] then nextupdatemonth="${updatemonthsarr[0]}" nextupdatemonthint=${nextupdatemonth#0} fi compareUpdateMonths ${thisupdatemonthint} ${nextupdatemonthint} done } validateUpdateMonths populateFromCurrentArrays processSkipUpdates