Envío por correo electrónico de un informe de actividad con un script de Groovy del servidor

Este script se puede usar para enviar por correo electrónico el informe de actividad a una lista de destinatarios. Tras esto, el script se puede programar para que se ejecute a diario con el fin de obtener el informe de actividad diario. Con este script se realizan las siguientes funciones:

  • Cifra la contraseña del administrador del servicio que ejecuta el script de Groovy.
  • Se conecta al entorno de Oracle Enterprise Performance Management Cloud con la contraseña cifrada.
  • Envía por correo electrónico el informe de actividad disponible en el entorno a una lista de destinatarios, generalmente, administradores del servicio
  • Cierra la sesión en el entorno.

Si las contraseñas contienen caracteres especiales, consulte Manejo de caracteres especiales Asegúrese también de reemplazar estos valores de parámetros para que se ajusten a su entorno:

Table 4-2 Parámetros que cambiar

Parámetro Descripción
user ID de usuario del administrador del servicio que inicia sesión en el entorno.
password Contraseña del administrador del servicio.
url URL del entorno de EPM Cloud desde el que se va a enviar por correo electrónico el informe de actividad.
emailaddresses Una lista de direcciones de correo electrónico separada por puntos y comas a la que se va a enviar el informe de actividad.

Para obtener información detallada sobre el uso de reglas de Groovy, consulte Uso de reglas Groovy en Administración de Planning.

/*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)