Server side execution of EPMAutomate commands are enabled with a recent update (21.08). A few EPM Automate commands can be run directly in EPM Cloud using Groovy. You do not need to install EPM Automate client to run commands using Groovy scripts. Note that server-side execution of commands is not the same as running Groovy scripts on a client computer to execute EPM Automate commands.
Following commands can be run through server-side Groovy scripts:
copyFileFromInstance copyFromObjectStorage copySnapshotFromInstance copyToObjectStorage encrypt feedback importSnapshot login logout recreate sendMail
While it is a bit dissappointing not to be able to run complete list of commands, it is still very good news. When I first looked at the list of commands, my initial impression was that they are very useful commands to address multiple potential business cases. I have tried copying snapshots between environments with success using epmautomate in groovy script. It is very positive that you dont need a client machine or a mechanism to backup your snapshots, you can directly copy them to another environment like Disaster Recovery.
First step to enable epmautomate commands in groovy is to run encrypt command to prepare password files for the source and target environments.
EpmAutomate automate = getEpmAutomate() EpmAutomateStatus encryptstatus1 = automate.execute('encrypt', '*******','encryptionKey','sourcePassword.epw') if(encryptstatus1.getStatus() != 0) throwVetoException(encryptstatus1.getOutput()) println(encryptstatus1.getOutput()) EpmAutomateStatus encryptstatus2 = automate.execute('encrypt', '******', 'encryptionKey' , 'targetPassword.epw') if(encryptstatus2.getStatus() != 0) throwVetoException(encryptstatus2.getOutput()) println(encryptstatus2.getOutput())
Once executed, you should see this on your job console logs.

Second step would be to login to the target environment
EpmAutomateStatus loginstatus = automate.execute('login', 'username','targetPassword.epw' , 'Target URL') if(loginstatus.getStatus() != 0) throwVetoException(loginstatus.getOutput()) println(loginstatus.getOutput())
Third step would be to run copy snapshot command itself
EpmAutomateStatus copystatus = automate.execute('copysnapshotfrominstance', 'Artifact Snapshot', 'username', 'sourcePassword.epw','Source URL') if(copystatus.getStatus() != 0) throwVetoException(copystatus.getOutput()) println(copystatus.getOutput())
Last step is a simple logout
EpmAutomateStatus logoutstatus = automate.execute('logout')
if(logoutstatus.getStatus() != 0) throwVetoException(logoutstatus.getOutput())
println(logoutstatus.getOutput())
If all goes ok, you should see this from your job console logs.
