Welche Datentypen werden für persistierte Laufzeitdaten von zeitgesteuerten Aufgaben oder Adaptern unterstützt?

  • Dieses Thema ist leer.
  • Post
    Torsten Uhr
    Administrator
    Bei der Entwicklung von eigenen zeitgesteuerten Aufgaben oder Adaptern kann es der Anwendungsfall erfordern, dass die Aufgabe oder der Adapter zustandsbehaftet sind und Daten persistieren müssen, damit sie bei der nächsten Ausführung auch nach einem Serverneustart wieder verfügbar sind. Als Beispiel sei hier die zeitgesteuerte Aufgabe Datenbank Delta-Abfrage genannt, die den Zeitpunkt der letzten Ausführung persistiert, um damit bei der nächsten Ausführung die Abfrage einzuschränken.

    Im TRANSCONNECT® Manager werden diese Daten im Editor für die zeitgesteuerte Aufgabe oder den Adapter oben rechts angezeigt und können editiert werden.


    Beispiel 1, Definition der persistenten Daten im Adapter:

    com.company.tc.adapter.impl.AdapterFactory
       @Override
       protected ValuePair<Map<String,PropertyMetaData>,Map<String,PropertyMetaData>> getPersistenceMetadata()
       {
          Map<String,PropertyMetaData> in = new HashMap<>( 1 );
          Map<String,PropertyMetaData> out = new HashMap<>( 1 );
    
          in.put( PERS_PROPERTY_TID_IN, new PropertyMetaData( Messages.PERS_PROPERTY_TID_NAME,
                                                              Messages.PERS_PROPERTY_TID_DESC,
                                                              Map.class, // type
                                                              null,      // no default value
                                                              false,     // not required
                                                              null       // no validator ) );
          out.put( PERS_PROPERTY_TID_OUT, new PropertyMetaData( Messages.PERS_PROPERTY_TID_NAME,
                                                                Messages.PERS_PROPERTY_TID_DESC,
                                                                Map.class, // type
                                                                null,      // no default value
                                                                false,     // not required
                                                                null   // no validator ) );
          return new ValuePair<>( in, out );
       }
    

    Beispiel 2, Definition der persistenten Daten in einer zeitgesteuerten Aufgabe:

    public class QueryDatabaseDelta extends ScheduleWorkflow implements MetadataProvider2
       @Override
       public Map<String,PropertyMetaData> getPersistenceMetadata()
       {
          Map<String,PropertyMetaData> meta = new HashMap<>();
          meta.put( PERS_PROPERTY_LASTRUN, new PropertyMetaData( Messages.QUERYDBDELTA_PERS_PROPERTY_LASTRUN_NAME, // name
                                                                 Messages.QUERYDBDELTA_PERS_PROPERTY_LASTRUN_DESC, // description
                                                                 Date.class,    // type
                                                                 new Date( 0 ), // default value
                                                                 false,         // required property
                                                                 null ) );      // no validator
          return meta;
       }

    Beispiel 3, Lesen und Schreiben der Daten in der zeitgesteuerten Aufgabe:

    public class QueryDatabaseDelta extends ScheduleWorkflow implements MetadataProvider2
       public void execute( WorkflowContext context )
       {
          // read data
          Date dtLastRun = context.properties.get( AdapterFactory.PERS_PROPERTY_LASTRUN, Date.class );
    
          // write data
          context.properties.put( AdapterFactory.PERS_PROPERTY_LASTRUN, new Date() );
       }
    

    Beispiel 4, Lesen und Schreiben der Daten in einem Adapter:

    public class InboundAdapter/OutboundAdapter
          // read data
          PersistedMap map = getPersistenceProperties();
          Date   dtLastRun = map.get( AdapterFactory.PERS_PROPERTY_LASTRUN );
    
          // write data
          map.put( AdapterFactory.PERS_PROPERTY_LASTRUN, new Date() );

    Die folgenden Datentypen werden unterstützt:

    • java.lang.Boolean
    • java.util.Date
    • java.util.Collection
    • java.util.HashMap
    • java.lang.Number
    • java.lang.String

    0
    0
  • Du musst angemeldet sein, um auf dieses Thema antworten zu können.