Se as senhas contiverem caracteres especiais, consulte Caracteres Especiais Além disso, certifique-se de substituir esses valores de parâmetros para adaptá-los a seus ambientes:
Table 3-14 Parâmetros a Serem Alterados
| Parâmetro | Descrição |
|---|---|
| usuário | Nome de usuário de um Administrador de Serviço. |
| senha | A senha do Administrador de Serviço ou o nome e a localização do arquivo de senha criptografado. |
| url | O URL do ambiente em que você deseja definir a frequência de atualização não mensal. |
| updatemonths | Uma lista separada por vírgulas dos meses em que as atualizações do Oracle Fusion Cloud Enterprise Performance Management devem ser aplicadas ao ambiente identificado pelo parâmetro url. Por exemplo, updatemonths=02,05,08,11.
Os meses devem ser especificados como dois dígitos: 01 para janeiro até 12 para dezembro. Certifique-se de incluir um zero antes dos meses de janeiro a setembro. Este script tenta executar o comando skipUpdate para os meses não incluídos no valor do parâmetro |
import java.text.SimpleDateFormat
String user = 'service_administrator'
String password = 'examplePWD'
String url = 'example_EPM_URL'
String updatemonths = '02,05,08,11'
def currentdate = new Date()
def yf = new SimpleDateFormat("yy")
def mf = new SimpleDateFormat("MM")
String[] monthsarr = ["01", "02", "03", "04", "05", "06", "07", "08", "09", "10", "11", "12"]
List<String> monthsarrfromcurrent = new ArrayList<>()
List<String> yearsarrfromcurrent = new ArrayList<>()
String currentyear = yf.format(currentdate)
String nextyear = (currentyear.toInteger() + 1).toString()
String currentmonth = mf.format(currentdate)
String[] updateMonthsStringArr = updatemonths.split(',');
def updatemonthsarr = new int[updateMonthsStringArr.length];
for(int i = 0; i < updateMonthsStringArr.length; i++)
{
updatemonthsarr[i] = Integer.parseInt(updateMonthsStringArr[i]);
}
def LogMessage(String message) {
def date = new Date()
def sdf = new SimpleDateFormat("MM/dd/yyyy HH:mm:ss")
println('[' + sdf.format(date) + '][GROOVY] ' + message);
}
def LogOperationStatus(EpmAutomateStatus opstatus) {
def returncode = opstatus.getStatus()
if (returncode != 0){
LogMessage(opstatus.getOutput())
}
LogMessage('return code: ' + returncode)
}
int CompareUpdateMonths(int thismonth, int nextmonth) {
int nextmonthorig = nextmonth
if (nextmonth < thismonth) {
nextmonth = nextmonth + 12
}
int monthdiff = nextmonth - thismonth
if (monthdiff > 3) {
LogMessage('There are more than 2 months skipped from month ' + thismonth + ' to month ' + nextmonthorig + '. Please correct updatemonths so that there are not more than two months skipped between each update month. Exiting.')
return 1
}
return 0
}
int ValidateUpdateMonths(int[] updatemonthsarr) {
for(int i = 0; i < updatemonthsarr.length; i++)
{
int nextint = i + 1
String nextupdatemonth = ""
int nextupdatemonthint = 0
String thisupdatemonth = updatemonthsarr[i]
int thisupdatemonthint = thisupdatemonth.toInteger()
if (nextint < updatemonthsarr.length) {
nextupdatemonth = updatemonthsarr[nextint]
} else {
nextupdatemonth = updatemonthsarr[0]
}
nextupdatemonthint = nextupdatemonth.toInteger()
int returncode = CompareUpdateMonths(thisupdatemonthint, nextupdatemonthint)
if (returncode > 0) {
return 1
}
}
return 0
}
def SkipUpdateAdd(EpmAutomate automate, String yearnumber, String monthnumber) {
String yeardotmonth = yearnumber + '.' + monthnumber
LogMessage('Running: epmautomate skipUpdate add version=' + yeardotmonth + ' comment=\"adding skipUpdate\"')
EpmAutomateStatus status = automate.execute('skipupdate','add','version=' + yeardotmonth,'comment=\"adding skipUpdate\"')
LogOperationStatus(status)
}
LogMessage('Starting skip update processing')
EpmAutomate automate = getEpmAutomate()
// validate update months
int returncode = ValidateUpdateMonths(updatemonthsarr)
if (returncode != 0) {
return 1
}
// populate arrays
int startposition = 0
for(int i = 0; i < monthsarr.length; i++)
{
if (currentmonth == monthsarr[i]) {
startposition = i
break
}
}
for(int i = 0; i < monthsarr.length; i++)
{
if (i >= startposition) {
monthsarrfromcurrent.add(monthsarr[i])
yearsarrfromcurrent.add(currentyear)
}
}
for(int i = 0; i < monthsarr.length; i++)
{
if (i <= startposition) {
monthsarrfromcurrent.add(monthsarr[i])
yearsarrfromcurrent.add(nextyear)
}
}
// process skip updates
LogMessage("Operation: encrypt " + password + " oracleKey password.epw")
EpmAutomateStatus status = automate.execute('encrypt',password,"oracleKey","password.epw")
LogOperationStatus(status)
LogMessage("Operation: login " + user + " password.epw " + url)
status = automate.execute('login',user,"password.epw",url)
LogOperationStatus(status)
LogMessage('Running: epmautomate skipUpdate remove')
status = automate.execute('skipupdate','remove')
LogOperationStatus(status)
int addcount = 0
for (int i = 0; i < monthsarrfromcurrent.size(); i++) {
int match = 1
if (addcount == 2){
LogMessage('Two skip update add calls have been made. No more will be attempted.')
break
}
for(int j = 0; j < updatemonthsarr.length; j++) {
if (Integer.parseInt(monthsarrfromcurrent.get(i)) == updatemonthsarr[j]) {
match = 0
break
}
}
if (match == 1) {
SkipUpdateAdd(automate, yearsarrfromcurrent.get(i), monthsarrfromcurrent.get(i))
addcount+=1
}
}
LogMessage('Running: epmautomate skipUpdate list')
status = automate.execute('skipupdate','list')
LogOperationStatus(status)
LogMessage('Running: epmautomate logout')
status = automate.execute('logout')
LogOperationStatus(status)
LogMessage('Skip update processing completed')