Aktivitätsbericht mit serverseitigem Groovy-Skript per E-Mail versenden

Mit diesem Skript kann der Aktivitätsbericht per E-Mail an eine Empfängerliste gesendet werden. Für dieses Skript kann dann die tägliche Ausführung zum Abrufen des täglichen Aktivitätsberichts geplant werden. Dieses Skript führt die folgenden Funktionen aus:

  • Es verschlüsselt das Kennwort des Serviceadministrators, der das Groovy-Skript ausführt.
  • Es führt die Anmeldung in der Oracle Enterprise Performance Management Cloud-Umgebung mit dem verschlüsselten Kennwort durch.
  • Es sendet den in der Umgebung verfügbaren Aktivitätsbericht per E-Mail an eine Empfängerliste, in der Regel Serviceadministratoren.
  • Es führt die Abmeldung von der Umgebung aus.

Wenn Kennwörter Sonderzeichen enthalten,finden Sie weitere Informationen unter Sonderzeichen verarbeiten. Stellen Sie zudem sicher, dass die folgenden Parameterwerte so ersetzt werden, dass Sie zu Ihren Umgebungen passen:

Table 4-2 Zu ändernde Parameter

Parameter Beschreibung
user Die Benutzer-ID eines Serviceadministrators für die Anmeldung bei der Umgebung
password Das Kennwort des Serviceadministrators
url Die URL der EPM Cloud-Umgebung, in der der Aktivitätsbericht per E-Mail gesendet werden soll
emailaddresses Eine durch Semikolon getrennte Liste von E-Mail-Adressen, an die der Aktivitätsbericht gesendet werden soll

Ausführliche Informationen zur Verwendung von Groovy-Regeln finden Sie unter Groovy-Regeln verwenden in der Dokumentation Planning verwalten.

/*RTPS: {user} {password} {url} {emailaddresses}*/
import java.text.SimpleDateFormat

String user = 'service_administrator'
String password = 'examplePWD'
String url = 'example_EPM_URL'
String emailaddresses = 'service_administrator@oracle.com'

EpmAutomate automate = getEpmAutomate()

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)
}

LogMessage('Starting mail activity report processing')

// encrypt
LogMessage("Operation: encrypt " + password + " oracleKey password.epw")
EpmAutomateStatus status = automate.execute('encrypt',password,"oracleKey","password.epw")
LogOperationStatus(status)

// login
LogMessage("Operation: login " + user + " password.epw " + url)
status = automate.execute('login',user,"password.epw",url)
LogOperationStatus(status)

// listfiles
LogMessage('Operation: listfiles')
status = automate.execute('listfiles')
LogOperationStatus(status)

String filelist = status.getItemsList()
String[] str = filelist.split(',');
String reportfile = ''

for( String svalues : str ) {
    String[] ftr = svalues.split('/')
    for( String fvalues : ftr ) {
        if (fvalues.startsWith('2') && fvalues.endsWith('html')) {
            reportfile = fvalues
        }
    }
}

def reportdir = reportfile.tokenize(".")[0]
String reportpath = 'apr/' + reportdir + '/' + reportfile

// sendMail
LogMessage('Operation: sendMail ' + emailaddresses + ' Daily Activity Report Body=Daily Activity Report Attachments=' + reportpath)
status = automate.execute('sendmail',emailaddresses,'Daily Activity Report','Body=Daily Activity Report',"Attachments=${reportpath}")
LogOperationStatus(status)

// logout
LogMessage('Operation: logout')
status = automate.execute('logout')
LogOperationStatus(status)