IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.



#Automation


#Applicationintegration
#webMethods
#Integration
 View Only

SOLUTION Configured operation needs to know enabledisable

  • 1.  SOLUTION Configured operation needs to know enabledisable

    Posted 09/12/02 02:44 PM

    Here’s my solution for an adapter configured operation that will publish a single document at a specific point in time. For example, daily at 09:00 and 15:00. The key is to keep a running calculation of when the next time to publish a document is. Then this is reset anytime the integration component or configured operation is saved (create, change, or enable). The publishDaily() method contains the decision logic.

    import COM.activesw.adapter.devkit.AdapterDescriptor;
    import COM.activesw.adapter.devkit.AdapterDescriptorFiller;
    import COM.activesw.adapter.devkit.AdapterException;
    import COM.activesw.adapter.devkit.AdapterScript01;
    import COM.activesw.adapter.devkit.AdapterScriptAccess;
    import COM.activesw.adapter.devkit.AdapterScriptLifecycle;
    import COM.activesw.adapter.devkit.AdapterTransaction;
    import COM.activesw.API.client.BrokerEvent;
    import COM.activesw.API.client.BrokerException;
    import COM.activesw.API.client.BrokerTypeDef;
    import java.util.Calendar;

    public final class Notification
    implements AdapterScript01, AdapterDescriptorFiller, AdapterScriptLifecycle

    {
    /**
    * script access variable for debugging
    */
    private AdapterScriptAccess access;

    /** 
    * Calendar array of times to publish document 
    */ 
    

    private Calendar nextDailyRuns;

    /** 
    * String array of daily times in hours 
    */ 
    

    private String dailyHours;

    /** 
    * String array of daily times in minutes  
    */ 
    

    private String dailyMinutes;

    /* constructor */
    public Notification()
    {
    }

    /**
    * Sets information about this operation
    *
    * @param d the descriptor to populate with custom information
    * @exception AdapterException something went wrong
    */
    public void fillAdapterDescriptor( AdapterDescriptor d ) throws AdapterException
    {
    // don’t localize this setting
    d.setDisplayName( “Point Notification” );

    // create the control tab
    d.createGroup( “Daily”, new String { “dailyHours”, “dailyMinutes” } );

    // create the table for defining command to execute and arguments
    d.createFieldMap( new String { “dailyHours”, “dailyMinutes” }, true );

    // allow only predefined hour values
    d.setNamespace( “dailyHours”, “dailyHours”, null );

    // allow only predefined minute values
    d.setNamespace( “dailyMinutes”, “dailyMinutes”, null );

    }

    /** 
    * Executes the operation. 
    * 
    * @param adapterAccess access to the adapter 
    * @param transaction transaction context 
    * @param input the single input event 
    * @return the output event 
    * @exception    AdapterException something went wrong 
    * @exception    BrokerException something went wrong 
    */ 
    

    public BrokerEvent scriptInvoke( AdapterScriptAccess access, AdapterTransaction transaction )
    throws BrokerException, AdapterException
    {

    // determine according to daily calculations
    boolean publish = publishDaily();

    // define the output event
    BrokerEvent output = null;

    // if to publish then instantiate the output document
    if( publish )
    // create the output event
    output = access.newOutputEvent( transaction );

    // return the event 
    return output; 
    }     
    
    
    /** 
    * Called immediate
    

    #Universal-Messaging-Broker
    #webMethods
    #Integration-Server-and-ESB
    #broker