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

  • Dieses Thema ist leer.
  • Beitrag
    Torsten Uhr
    Betrachter
      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.