Skript und Anweisungen für Windows

Erstellen Sie input.properties und skip_update.ps1, indem Sie die Skripte in diesem Abschnitt kopieren.

  1. Erstellen Sie input.properties, indem Sie das folgende Skript kopieren:
    username=exampleAdmin
    password=examplePassword.epw
    url=exampleURL
    updatemonths=02,05,08,11
    
  2. Aktualisieren Sie input.properties, indem Sie Parameterwerte festlegen.

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

    Parameter Beschreibung
    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.
    updatemonths Eine durch Komma getrennte Liste der Monate, in denen Oracle Enterprise Performance Management Cloud-Updates auf die vom Parameter url angegebene Umgebung angewendet werden sollen. Beispiel: updatemonths=02,05,08,11.

    Monate müssen mit zwei Ziffern angegeben werden: 01 für Januar bis 12 für Dezember. Achten Sie darauf, für die Monate Januar bis September eine Null voranzustellen. Das Skript versucht, den Befehl skipUpdate für die Monate auszuführen, die nicht im Parameterwert updatemonths enthalten sind. Beispiel: Wenn Sie updatemonths=02,05,08,11 festlegen, versucht das Skript, Kennzeichen zum Überspringen von Updates für Januar, März, April, Juni, Juli, September, Oktober und Dezember festzulegen, damit Updates nur im Februar, Mai, August und November durchgeführt werden.

  3. Erstellen Sie skip_updates.ps1, indem Sie das folgende Skript kopieren:
    # Skip Update PowerShell script
    
    $inputproperties = ConvertFrom-StringData(Get-Content ./input.properties -raw)
    $username="$($inputproperties.username)"
    $password="$($inputproperties.password)"
    $url="$($inputproperties.url)"
    $updatemonths="$($inputproperties.updatemonths)"
    
    $monthsarr = ("01","02","03","04","05","06","07","08","09","10","11","12")
    $global:monthsarrfromcurrent = @()
    $global:yearsarrfromcurrent = @()
    $updatemonthsarr = $updatemonths.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]) {
                $startposition=$i
                break
            }
        }
    
        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
    
        echo "Running: epmautomate.bat login ${username} ${password} ${url}"
        epmautomate login ${username} ${password} ${url}
        echo "Running: epmautomate.bat skipUpdate remove"
        epmautomate skipUpdate remove
    
        for ($i = 0; $i -le ($global:monthsarrfromcurrent.length - 1); $i++) {
            $match = 1
    
            if (${addcount} -eq 2) {
                echo "Two skip update add calls have been made. No more will be attempted."
                break
            }
    
            for ($j = 0; $j -le ($updatemonthsarr.length - 1); $j++) {
                if ($global:monthsarrfromcurrent[$i] -eq $updatemonthsarr[$j]) {
                    $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 3) {
            echo "There are more than 2 months skipped from month ${thismonth} to month ${nextmonthorig}. Please correct updatemonths in input.properties so that there are not more than two months skipped between each update month. Exiting."
            exit 1
        }
    }
    
    function validateUpdateMonths() {
        for ($i = 0; $i -le ($updatemonthsarr.length - 1); $i++) {
            $nextint = $i + 1
            $thisupdatemonth = $updatemonthsarr[$i]
            $thisupdatemonthint=[int]$thisupdatemonth
            $nextupdatemonth=$updatemonthsarr[$nextint]
            $nextupdatemonthint=[int]$nextupdatemonth
    
            if (${nextupdatemonth} -eq "") {
                $nextupdatemonth=$updatemonthsarr[0]
                $nextupdatemonthint=[int]$nextupdatemonth
            }
    
            compareUpdateMonths $thisupdatemonthint $nextupdatemonthint
        }
    }
    
    validateUpdateMonths
    populateFromCurrentArrays
    processSkipUpdates