Creazione di attività di runtime che utilizzano tipi complessi

In questo esempio viene creata un'attività di runtime che utilizza tipi complessi nella relativa interfaccia. I tipi complessi sono già definiti, ovvero il file system locale sul client dispone di file XSD contenenti la descrizione dei tipi complessi.

Perché e quando effettuare questa attività

L'esempio viene eseguito solo all'interno del contesto dell'applicazione aziendale chiamante, per cui vengono caricate le risorse.

Procedura di questa attività

  1. Accedere a ClientTaskFactory, quindi creare una serie di risorse che contenga le definizioni del nuovo modello di attività.
    ClientTaskFactory factory = ClientTaskFactory.newInstance(); 
    ResourceSet resourceSet = factory.createResourceSet();
  2. Aggiungere le definizioni XSD dei tipi complessi alla serie di risorse in modo che siano disponibili quando si definiscono le operazioni.
    I file si trovano nella posizione in cui viene eseguito il codice.
    factory.loadXSDSchema( resourceSet, "InputBO.xsd" );
    factory.loadXSDSchema( resourceSet, "OutputBO.xsd" );
  3. Creare la definizione WSDL, quindi aggiungere le descrizioni delle operazioni.
    // creare l'interfaccia WSDL
    Definition definition = factory.createWSDLDefinition
             ( resourceSet, new QName( "http://www.ibm.com/task/test/", "test" ) );
        
    // creare un tipo di porta
    PortType portType = factory.createPortType( definition, "doItPT" );
    
    // creare un'operazione, il messaggio di input è un InputBO e 
    // il messaggio di output è un OutputBO; 
    // un messaggio di errore non è specificato
    Operation operation = factory.createOperation
            ( definition, portType, "doIt", 
              new QName( "http://Input", "InputBO" ),
              new QName( "http://Output", "OutputBO" ),
              (Map)null );
  4. Creare il modello EMF del nuovo human task.

    Se si sta creando un'istanza di attività, non è richiesta una data Valido da (UTCDate).

    TTask humanTask = factory.createTTask( resourceSet, 
                                           TTaskKinds.HTASK_LITERAL, 
                                           "TestTask", 
                                           new UTCDate( "2005-01-01T00:00:00" ), 
                                           "http://www.ibm.com/task/test/", 
                                           portType, 
                                           operation );

    Questo passo inizializza le proprietà del modello di attività con i valori predefiniti.

  5. Modificare le proprietà del modello human task.
    // utilizzare i metodi dal pacchetto com.ibm.wbit.tel, ad esempio,
    humanTask.setBusinessRelevance( TBoolean, YES_LITERAL );
    
    // richiamare la produzione attività per creare o modificare gli elementi
    dell'attività compositi
    TaskFactory taskFactory = factory.getTaskFactory();
    
    // specificare le impostazioni di escalation
    TVerb verb = taskFactory.createTVerb();
    verb.setName("John");
    
    // creare escalationReceiver, quindi aggiungere il verbo
    TEscalationReceiver escalationReceiver = 
                        taskFactory.createTEscalationReceiver();
    escalationReceiver.setVerb(verb);
    
    // creare l'escalation, quindi aggiungere il destinatario dell'escalation 
    TEscalation escalation = taskFactory.createTEscalation();
    escalation.setEscalationReceiver(escalationReceiver);
  6. Creare il modello dell'attività che contiene tutte le definizioni della risorsa.
    TaskModel taskModel = ClientTaskFactory.createTaskModel( resourceSet );
  7. Convalidare il modello dell'attività, quindi correggere eventuali problemi di convalida che vengono trovati.
    ValidationProblem[] validationProblems = taskModel.validate();
  8. Creare l'istanza o la maschera di attività di runtime.
    Utilizzare l'interfaccia HumanTaskManagerService per creare l'istanza o la maschera dell'attività. È necessario fornire un nome dell'applicazione contenente le definizioni del tipo di dati, in modo che sia possibile accedervi. Inoltre, l'applicazione deve contenere un'attività o un processo fittizio, in modo che l'applicazione sia caricata da Business Process Choreographer.
    • Il frammento di seguito riportato crea un'istanza dell'attività:
      task.createTask( taskModel, "BOapplication", "HTM" );
    • Il frammento di seguito riportato crea una maschera dell'attività:
      task.createTaskTemplate( taskModel, "BOapplication" );

Risultato

Se viene creata un'istanza di attività di runtime, ora può essere avviata. Se viene creata una maschera di attività di runtime, ora è possibile creare istanze di attività dalla maschera.


(c) Copyright IBM Corporation 2005, 2006.
This information center is powered by Eclipse technology (http://www.eclipse.org)