비밀번호에 특수 문자가 포함된 경우 특수 문자 처리를 참조하십시오. 또한, 환경에 적합하게 다음 매개변수 값을 바꾸십시오.
Table 3-13 변경할 매개변수
매개변수 | 설명 |
---|---|
user | 서비스 관리자.의 사용자 이름 |
password | 서비스 관리자의 비밀번호 또는 암호화된 비밀번호 파일의 이름 및 위치입니다. |
url | 월별 이외의 업데이트 주기를 설정할 환경의 URL입니다. |
updatemonths | Oracle Enterprise Performance Management Cloud 업데이트가 url 매개변수로 확인된 환경에 적용되어야 하는 월에 대한 쉼표로 구분된 목록입니다. updatemonths=02,05,08,11 을 예로 들 수 있습니다.
월은 1월인 01에서 12월인 12까지 두 자리 숫자로 지정해야 합니다. 1월에서 9월 앞에는 0을 포함해야 합니다. 스크립트는 |
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')