Vierteljährliches Upgradeintervall für EPM Cloud mit sechswöchigen Testzyklen erstellen

Verwenden Sie das Skript in diesem Abschnitt, um eine Selfservice-Lösung zum Überspringen von Updates zu erstellen, sodass Oracle Enterprise Performance Management Cloud-Umgebungen quartalsweise mit einem sechswöchigen Testzyklus upgedatet werden. In diesem Fall werden Produktionsumgebungen sechs Wochen später als die Testumgebungen upgedatet.

Standardmäßig führt EPM Cloud ein monatliches Update für Ihre Umgebungen durch. Mit dem Befehl skipUpdate überspringen Sie das Durchführen monatlicher Updates für eine Umgebung. Alternativ können Sie aktuelle Anfragen zum Überspringen von Updates anzeigen. Sie können das manuelle Ausführen der skipUpdate-Befehle automatisieren, indem Sie die Skripte in diesem Abschnitt verwenden. Diese Skripte automatisieren den Prozess zum Überspringen von Updates, sodass die Updates quartalsweise mit einem sechswöchigen Testzyklus durchgeführt werden.

Note:

  1. Sie können Updates nicht für mehr als drei aufeinanderfolgende Monate überspringen. Dieses Skript gibt einen Fehler aus, wenn Sie versuchen, das Update für eine EPM Cloud-Umgebung nur im Februar und im Oktober durchzuführen.
  2. Alle Updates, die in der Zwischenzeit aufgetreten sind, werden beim nächsten Update auf Ihre Umgebung angewendet. Beispiel: Angenommen, Sie verwenden dieses Skript, um Updates vierteljährlich nur für Februar, Mai, August und November einzuplanen. In diesem Fall werden beispielsweise beim Update im Mai alle anwendbaren monatlichen EPM Cloud-Updates und Patches für Ihre Umgebung ausgeführt, die nach dem Update im Februar veröffentlicht wurden. Der Wartungsprozess kann mehr Zeit als üblich in Anspruch nehmen, wenn das Update durchgeführt wird.
  3. Mit diesem Skript wird das Update-Intervall nur für ein Quartal festgelegt.

    Beispielszenario: Der Updatezyklus der Testumgebung wird als erster Freitag im Februar (Update 24.02), Mai (Update 24.05), August (Update 24.08) und November (Update 24.11) eingerichtet. Die Produktionsumgebung wird am dritten Freitag im März (Update 24.02) mit der Version aktualisiert, die verwendet wurde, um die Testumgebung am ersten Freitag im Februar zu aktualisieren (Update 24.02). Ähnliche Updates der Produktionsumgebung erfolgen in der dritten Woche im Juni (Update 24.05), September (Update 24.08) und Dezember (Update 24.11). In diesem Szenario werden die Produktionsumgebungen nicht auf das neueste verfügbare Update aktualisiert, sondern auf das aktuelle Update der Testumgebung.

Windows-Beispielskript

Erstellen Sie die Datei skip_update.ps1, indem Sie das folgende Skript kopieren. Speichern Sie die Datei in einem lokalen Verzeichnis. Informationen zum Ausführen dieses Skriptes finden Sie unter Skripte ausführen.
# Skip Update PowerShell script

$inputproperties = ConvertFrom-StringData(Get-Content ./input.properties -raw)
$username="$($inputproperties.username)"
$password="$($inputproperties.password)"
$url="$($inputproperties.url)"
$updateversions="$($inputproperties.updateversions)"
$podtype="$($inputproperties.podtype)"
$proxyserverusername="$($inputproperties.proxyserverusername)"
$proxyserverpassword="$($inputproperties.proxyserverpassword)"
$proxyserverdomain="$($inputproperties.proxyserverdomain)"

echo "Starting skip_update.ps1 script."

$monthsarr = ("01","02","03","04","05","06","07","08","09","10","11","12")
$global:monthsarrfromcurrent = @()
$global:yearsarrfromcurrent = @()
$updateversionsarr = $updateversions.Split(",")
$currentyear=Get-Date -Format yy
$currentmonth=Get-Date -Format MM
$nextyear=[int]$currentyear+1

function populateFromCurrentArrays() {
    $startposition = 0

    for ($i = 0; $i -le ($monthsarr.length - 1); $i++) {
        if (${currentmonth} -eq $monthsarr[$i]) {
            if (${podtype} -eq "prod") {
                if (${updateversionsarr} -contains ${currentmonth}) {
                    $startposition=$i-2
                } else {
                    $startposition=$i-1
                }
            } else {
                if (${updateversionsarr} -contains ${currentmonth}) {
                    $startposition=$i
                } else {
                    $startposition=$i-1
                }
            }
            break
        }
    }

    if (${startposition} -lt 0) {
        $startposition=$startposition+12
    }

    for ($i = 0; $i -le ($monthsarr.length - 1); $i++) {
        if (${i} -ge ${startposition}) {
            $global:monthsarrfromcurrent += $monthsarr[$i]
            $global:yearsarrfromcurrent += $currentyear
        }
    }

    for ($i = 0; $i -le ($monthsarr.length - 1); $i++) {
        if (${i} -lt ${startposition}) {
            $global:monthsarrfromcurrent += $monthsarr[$i]
            $global:yearsarrfromcurrent += $nextyear
        }
    }
}

function skipUpdateAdd($yearnumber, $monthnumber) {
    echo "Running: epmautomate.bat skipUpdate add version=${yearnumber}.${monthnumber} comment=`"adding skipUpdate`""
    epmautomate skipUpdate add version=${yearnumber}.${monthnumber} comment="adding skipUpdate"
}

function processSkipUpdates() {
    $addcount = 0
    $countlimit = 0

    if (${podtype} -eq "prod") {
        $countlimit = 3
    } else {
        $countlimit = 2
    }

    if ((${proxyserverusername} -eq "") -And (${proxyserverpassword} -eq "") -And (${proxyserverdomain} -eq "")) {
        echo "Running: epmautomate.bat login ${username} ${password} ${url}"
        epmautomate login ${username} ${password} ${url}
    } else {
        echo "Running: epmautomate.bat login ${username} ${password} ${url} ProxyServerUserName=${proxyserverusername} ProxyServerPassword=${proxyserverpassword} ProxyServerDomain=${proxyserverdomain}"
        epmautomate login ${username} ${password} ${url} ProxyServerUserName=${proxyserverusername} ProxyServerPassword=${proxyserverpassword} ProxyServerDomain=${proxyserverdomain}
    }

    echo "Running: epmautomate.bat skipUpdate remove"
    epmautomate skipUpdate remove

    for ($i = 0; $i -le ($global:monthsarrfromcurrent.length - 1); $i++) {
        $match = 1

        if (${addcount} -eq ${countlimit}) {
            echo "Update calls are completed. No more will be attempted."
            break
        }

        for ($j = 0; $j -le ($updateversionsarr.length - 1); $j++) {
            if ((${currentmonth} -eq $updateversionsarr[$j]) -And (${addcount} -gt 0)) {
                $match = 1
                break
            }

            if (($global:monthsarrfromcurrent[$i] -eq $updateversionsarr[$j]) -And (${addcount} -eq 0)){
                $match = 0
                break
            }
        }

        if (${match} -eq 1) {
            skipUpdateAdd $global:yearsarrfromcurrent[$i] $global:monthsarrfromcurrent[$i]
            $addcount += 1
        }
    }

    echo "Running: epmautomate.bat skipUpdate list"
    epmautomate skipUpdate list
    echo "Running: epmautomate.bat logout"
    epmautomate logout
}

function compareUpdateMonths($thismonth, $nextmonth) {
    $nextmonthorig=${nextmonth}

    if (${nextmonth} -lt ${thismonth}) {
        $nextmonth+=12
    }

    $monthdiff = $nextmonth - $thismonth

    if (${monthdiff} -gt 4) {
        echo "There are more than 3 versions skipped from version ${thismonth} to version ${nextmonthorig}. Please correct updateversions in input.properties so that there are not more than three versions skipped between each update version. Exiting."
        exit 1
    }
}

function validateUpdateVersions() {
    for ($i = 0; $i -le ($updateversionsarr.length - 1); $i++) {
        $nextint = $i + 1
        $thisupdatemonth = $updateversionsarr[$i]
        $thisupdatemonthint=[int]$thisupdatemonth
        $nextupdatemonth=$updateversionsarr[$nextint]
        $nextupdatemonthint=[int]$nextupdatemonth

        if (${nextupdatemonth} -eq "") {
            $nextupdatemonth=$updateversionsarr[0]
            $nextupdatemonthint=[int]$nextupdatemonth
        }

        compareUpdateMonths $thisupdatemonthint $nextupdatemonthint
    }
}

validateUpdateVersions
populateFromCurrentArrays
processSkipUpdates

Linux-/UNIX-Beispielskript

Erstellen Sie die Datei skip_update.sh, indem Sie das folgende Skript kopieren. Speichern Sie die Datei in einem lokalen Verzeichnis. Informationen zum Ausführen dieses Skriptes finden Sie unter Skripte ausführen.
#!/bin/sh

. ./input.properties

echo "Starting skip_update.sh script."

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
updateversionsarr=( $(echo "${updateversions}" | sed 's/,/ /g') ) 
currentyear=$(date +%y)
nextyear=$((currentyear+1))
currentmonth=$(date +%m)

populateFromCurrentArrays() {
    local startposition=0

    for i in ${!monthsarr[@]}
    do
        if [[ "${currentmonth}" == "${monthsarr[$i]}" ]]
        then 
            if [[ "${podtype}" == "prod" ]]
            then
                if [[ ${updateversionsarr[@]} =~ ${currentmonth} ]]
                then
                    startposition=$((i-2))
                else
                    startposition=$((i-1))
                fi
                break
            else
                if [[ ${updateversionsarr[@]} =~ ${currentmonth} ]]
                then
                    startposition=$i
                else
                    startposition=$((i-1))
                fi
                break
            fi
        fi
    done

    if [[ ${startposition} -lt 0 ]]
    then
        startposition=$((startposition+12))
    fi 

    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
    local countlimit=0

    if [[ "${podtype}" == "prod" ]]
    then
        countlimit=3
    else
        countlimit=2
    fi

    if [[ "${proxyserverusername}" == "" ]] && [[ "${proxyserverpassword}" == "" ]] && [[ "${proxyserverdomain}" == "" ]]
    then
        echo "Running: ${epmautomatescript} login ${username} ${password} ${url}"
        ${epmautomatescript} login ${username} ${password} ${url}
    else
        echo "Running: ${epmautomatescript} login ${username} ${password} ${url} ProxyServerUserName=${proxyserverusername} ProxyServerPassword=${proxyserverpassword} ProxyServerDomain=${proxyserverdomain}"
        ${epmautomatescript} login ${username} ${password} ${url} ProxyServerUserName=${proxyserverusername} ProxyServerPassword=${proxyserverpassword} ProxyServerDomain=${proxyserverdomain}
    fi
    echo "Running: ${epmautomatescript} skipUpdate remove"
    ${epmautomatescript} skipUpdate remove

    for i in ${!monthsarrfromcurrent[@]}
    do
        local match=1

        if [[ ${addcount} -eq ${countlimit} ]]
        then
            echo "Update add calls are completed. No more will be attempted."
            break
        fi

        for j in ${!updateversionsarr[@]}
        do
            if [[ "${currentmonth}" == "${updateversionsarr[$j]}" ]] && [[ ${addcount} -gt 0 ]]
            then
                match=1
                break
            fi

            if [[ "${monthsarrfromcurrent[$i]}" == "${updateversionsarr[$j]}" ]] && [[ ${addcount} -eq 0 ]]
            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 versions skipped from version ${thismonth} to version ${nextmonthorig}. Please correct updateversions in input.properties so that there are not more than three versions skipped between each update version. Exiting."
        exit 1
    fi
}

validateUpdateVersions() {
    for i in ${!updateversionsarr[@]}
    do
        nextint=$((i+1))
        thisupdatemonth="${updateversionsarr[$i]}"
        thisupdatemonthint=${thisupdatemonth#0}
        nextupdatemonth="${updateversionsarr[$nextint]}"
        nextupdatemonthint=${nextupdatemonth#0}

        if [[ ${nextupdatemonth} == "" ]]
        then 
            nextupdatemonth="${updateversionsarr[0]}"
            nextupdatemonthint=${nextupdatemonth#0}
        fi

        compareUpdateMonths ${thisupdatemonthint} ${nextupdatemonthint}
    done
}

validateUpdateVersions
populateFromCurrentArrays
processSkipUpdates

Serverseitiges Groovy-Skript

Erstellen Sie das Groovy-Skript skip_update.groovy, indem Sie das folgende Skript kopieren und anschließend aktualisieren. Informationen zum Ausführen dieses Skriptes finden Sie unter Skripte ausführen.

Aktualisieren Sie in diesem Groovy-Skript die folgenden Variablen:

  • username - Benutzername eines Serviceadministrators für die Umgebung, für die Sie das nicht monatliche Update-Intervall festlegen möchten.
  • password - Kennwort des Serviceadministrators oder Name und Speicherort der verschlüsselten Kennwortdatei.
  • url - URL der Umgebung, für die Sie das nicht monatliche Update-Intervall festlegen möchten.
  • updateversions - Eine durch Komma getrennte Liste der EPM Cloud-Updates, die auf die durch den Parameter url identifizierte Umgebung angewendet werden sollen. Beispiel: updateversions=02,05,08,11.

    Versionen müssen mit zwei Ziffern angegeben werden. Stellen Sie für die Updates 01 bis 09 eine Null voran. Das Skript versucht, den Befehl skipUpdate für die Updates auszuführen, die nicht im Parameterwert updateversions enthalten sind. Beispiel: Wenn Sie updateversions=02,05,08,11 festlegen, versucht das Skript, Kennzeichen zum Überspringen von Updates für 01 (Januar), 03 (März), 04 (April), 06 (Juni), 07 (Juli), 09 (September), 10 (Oktober) und 12 (Dezember) festzulegen. In diesem Fall werden die EPM Cloud-Updates 02 (Februar), 05 (Mai), 08 (August) und 11 (November) auf die Umgebung angewendet.

  • podtype - EPM Cloud-Umgebungstyp. Gültige Werte sind test und prod.
  • proxyserverusername - Der Benutzername zum Authentifizieren einer sicheren Session auf dem Proxyserver, der den Zugriff auf das Internet steuert.
  • proxyserverpassword - Das Kennwort zum Authentifizieren des Benutzers beim Proxyserver.
  • proxyserverdomain - Der Name der Domain, die für den Proxyserver definiert ist.

Note:

Wenn Sie keinen Proxyserver verwenden, geben Sie keine Werte für die Parameter proxyserverusername, proxyserverpassword und proxyserverdomain an.
import java.text.SimpleDateFormat

String username = 'service_administrator'
String password = 'examplePWD'
String url = 'example_EPM_URL'
String updateversions = '01,04,07,10'
String podtype = 'test'
String proxyserverusername = ''
String proxyserverpassword = ''
String proxyserverdomain = ''

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[] updateVersionsStringArr = updateversions.split(',');
def updateversionsarr = new int[updateVersionsStringArr.length];
for(int i = 0; i < updateVersionsStringArr.length; i++)
{
    updateversionsarr[i] = Integer.parseInt(updateVersionsStringArr[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()
    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 > 4) {
        LogMessage('There are more than 3 versions skipped from version ' + thismonth + ' to version ' + nextmonthorig + '. Please correct updateversions so that there are not more than three versions skipped between each update version. Exiting.')
        return 1
    }
    
    return 0
}

int ValidateUpdateMonths(int[] updateversionsarr) {
    for(int i = 0; i < updateversionsarr.length; i++)
    {
        int nextint = i + 1
        String nextupdatemonth = ""
        int nextupdatemonthint = 0
        String thisupdatemonth = updateversionsarr[i]
        int thisupdatemonthint = thisupdatemonth.toInteger()
        
        if (nextint < updateversionsarr.length) {
            nextupdatemonth = updateversionsarr[nextint]
        } else {
            nextupdatemonth = updateversionsarr[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(updateversionsarr)
if (returncode != 0) {
    return 1
}

// populate arrays
int startposition = 0
for(int i = 0; i < monthsarr.length; i++)
{
    if (currentmonth == monthsarr[i]) {
        if (podtype.equals("prod")) {
            if (updateVersionsStringArr.contains(currentmonth)) {
                startposition = (i-2)
            } else {
                startposition = (i-1)
            }
        } else {
            if (updateVersionsStringArr.contains(currentmonth)) {
                startposition = i
            } else {
                startposition = (i-1)
            }
        }

        break
    }
}

if (startposition < 0) {
    startposition = startposition + 12
}
 
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)

if ((proxyserverusername != null && proxyserverusername != '') && (proxyserverpassword != null && proxyserverpassword != '') && (proxyserverdomain != null && proxyserverdomain != '')) {
    LogMessage("Operation: login " + username + " password.epw " + url + " ProxyServerUserName=" + proxyserverusername + " ProxyServerPassword=" + proxyserverpassword + " ProxyServerDomain=" + proxyserverdomain)
    status = automate.execute('login',username,"password.epw",url,"ProxyServerUserName=" + proxyserverusername,"ProxyServerPassword=" + proxyserverpassword,"ProxyServerDomain=" + proxyserverdomain)
    LogOperationStatus(status)
} else {
    LogMessage("Operation: login " + username + " password.epw " + url)
    status = automate.execute('login',username,"password.epw",url)
    LogOperationStatus(status)
}
LogMessage('Running: epmautomate skipUpdate remove')
status = automate.execute('skipupdate','remove')
LogOperationStatus(status)

int addcount = 0
int countlimit = 0

if (podtype.equals("prod")) {
    countlimit = 3
} else {
    countlimit = 2
}

for (int i = 0; i < monthsarrfromcurrent.size(); i++) {
    int match = 1
    
    if (addcount == countlimit){
        LogMessage('Update add calls are completed. No more will be attempted.')
        break
    }
    
    for(int j = 0; j < updateversionsarr.length; j++) {

        if ((Integer.parseInt(currentmonth) == updateversionsarr[j]) && (addcount > 0)) {
            match = 1
            break
        }
    
        if ((Integer.parseInt(monthsarrfromcurrent.get(i)) == updateversionsarr[j]) && (addcount == 0)) {
            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)
println(status.getItemsList())

LogMessage('Running: epmautomate logout')
status = automate.execute('logout')
LogOperationStatus(status)

LogMessage('Skip update processing completed')

Datei "input.properties" zum Ausführen der skip_update-Skripte für Windows und Linux/UNIX erstellen

Um die Datei skip_update.ps1 oder skip_update.sh auszuführen, erstellen Sie die Datei input.properties, und aktualisieren Sie sie mit den Informationen für Ihre Umgebung. Speichern Sie die Datei in einem lokalen Verzeichnis. Der Inhalt dieser Datei unterscheidet sich je nach Betriebssystem.

Windows

username=exampleAdmin
password=examplePassword.epw
url=exampleURL
updateversions=01,04,07,10
podtype=test

Linux/UNIX

javahome=JAVA_HOME
epmautomatescript=EPM_AUTOMATE_LOCATION
username=exampleAdmin
password=examplePassword.epw
url=exampleURL
updatemonths=02,05,08,11

Table 3-14 Parameter für "input.properties"

Parameter Beschreibung
javahome Verzeichnis JAVA_HOME. Nur für Linux/UNIX.
epmautomatescript Absoluter Pfad der ausführbaren Datei für EPM Automate (epmautomate.sh). Nur für Linux/UNIX.
username Benutzername eines Serviceadministrators.
password Kennwort des Serviceadministrators oder Name und Speicherort der verschlüsselten Kennwortdatei.
url URL der Umgebung, in der Sie das nicht monatliche Update-Intervall festlegen möchten.
updateversions updateversions - Eine durch Komma getrennte Liste der EPM Cloud-Updates, die auf die durch den Parameter url identifizierte Umgebung angewendet werden sollen. Beispiel: updateversions=02,05,08,11.

Versionen müssen mit zwei Ziffern angegeben werden. Stellen Sie für die Updates 01 bis 09 eine Null voran. Das Skript versucht, den Befehl skipUpdate für die Updates auszuführen, die nicht im Parameterwert updateversions enthalten sind. Beispiel: Wenn Sie updateversions=02,05,08,11 festlegen, versucht das Skript, Kennzeichen zum Überspringen von Updates für 01 (Januar), 03 (März), 04 (April), 06 (Juni), 07 (Juli), 09 (September), 10 (Oktober) und 12 (Dezember) festzulegen. In diesem Fall werden die EPM Cloud-Updates 02 (Februar), 05 (Mai), 08 (August) und 11 (November) auf die Umgebung angewendet.

podtype EPM Cloud-Umgebungstyp. Gültige Werte sind test und prod.

Skripte ausführen

  1. Nur für Windows und Linux/UNIX
    • Erstellen Sie die Datei skip_update.ps1 oder skip_update.sh, indem Sie das Skript aus einem vorhergehenden Abschnitt kopieren.
    • Erstellen Sie die Datei input.properties, und speichern Sie sie im selben Verzeichnis, in dem sich das Skript skip_update befindet. Die Inhalte dieser Datei unterscheiden sich je nach Betriebssystem. Informationen hierzu finden Sie unter Datei "input.properties" zum Ausführen der skip_update-Skripte für Windows und Linux/UNIX erstellen.

      Stellen Sie sicher, dass Sie Schreibrechte in diesem Verzeichnis haben. Unter Windows müssen Sie möglicherweise PowerShell mit der Option Als Administrator ausführen starten, um das Skript ausführen zu können.

    • Starten Sie das Skript.
      • Windows PowerShell: Führen Sie die Datei skip_update.ps1 aus.
      • Linux/UNIX: Führen Sie die Datei ./skip_update.sh aus.
  2. Serverseitiges Groovy-Skript:
    • Erstellen Sie das Groovy-Skript skip_update.groovy, und aktualisieren Sie es nach Bedarf.
    • Verwenden Sie das Groovy-Fenster in einem EPM Cloud-Geschäftsprozess, oder automatisieren Sie die Skriptausführung mit runBusinessRule. Informationen zur Ausführung des Groovy-Skripts mit EPM Automate finden Sie unter Befehle ohne Installation von EPM Automate ausführen.