Internal Custom Java Automator
A basic internal custom Java automator has the following characteristics:
-
The name of the custom automation package. For example:
package com.mslv.oms.sample.atm_frame;
-
Import statements required for this custom automation plug-in. For example:
import com.mslv.oms.automation.plugin.*; import com.mslv.oms.automation.*; import java.rmi.*;
-
An arbitrary class name that extends AbstractAutomator. For the automation framework to call an internal custom Java automator, the plug-in must extend the AbstractAutomator class. This class resides in the com.mslv.automation.plugin package. For example:
public class MyPlugin extends AbstractAutomator { -
The required run method, as dictated by the parent class, AbstractAutomator
protected void run(String inputXML, AutomationContext context) throws com.mslv.oms.automation.AutomationException { -
Cast the AutomationContext object to the TaskContext object. This example assumes that the custom automation plug-in is triggered by an automated task, so the code is expecting the context input an argument to be an instance of the TaskContext object.
TaskContext taskContext = (TaskContext)context;
Note:
You can use the TaskContext object to do many things, such as complete the task, suspend it, and so on. For more information about this class, see the OSM Javadocs.
-
Call a method on the TaskContext object to retrieve the task name.
String taskName = taskContext.getTaskMnemonic();
-
Add any require business logic.
this.performAutomation(taskname);
The following example shows the minimal amount of code required for a custom automation plug-in to run. This example assumes that it is triggered by an automated task.
package com.mslv.oms.sample.atm_frame;
import com.mslv.oms.automation.plugin.*;
import com.mslv.oms.automation.*;
import java.rmi.*;
public class MyPlugin extends AbstractAutomator {
protected void run(String inputXML, AutomationContext context)
throws com.mslv.oms.automation.AutomationException {
try {
TaskContext taskContext = (TaskContext)context;
String taskName = taskContext.getTaskMnemonic();
this.performAutomation(taskname);
catch(RemoteException ex) {
throw new AutomationException(ex); }
catch(AutomationException x) {
throw x; }
}
}