Elaborazione attività staff

Le attività staff sono assegnate a diversi utenti dell'azienda mediante gli elementi di lavoro. Quando un processo viene avviato, vengono creati degli elementi di lavoro per i potenziali proprietari.

Perché e quando effettuare questa attività

Un potenziale proprietario richiede l'attività. Questo utente è responsabile della fornitura di informazioni rilevanti e del completamento dell'attività.

Procedura di questa attività

  1. Elencare le attività che appartengono a un utente collegato e pronte per essere utilizzate:
    QueryResultSet result = 
         process.query("ACTIVITY.AIID", 
                       "ACTIVITY.STATE = ACTIVITY.STATE.STATE_READY AND
                        ACTIVITY.KIND = ACTIVITY.KIND.KIND_STAFF AND
                        WORK_ITEM.REASON = 
                             WORK_ITEM.REASON.REASON_POTENTIAL_OWNER",
                        (String)null, (Integer)null, (TimeZone)null); 
    Questa operazione restituisce una serie di risultati query che contiene le attività che possono essere elaborate dall'utente connesso.
  2. Richiedere le attività su cui lavorare:
    if (result.size() > 0)
    {
    	result.first();
    	AIID aiid = (AIID) result.getOID(1);
    	ClientObjectWrapper input = process.claim(aiid);
    	DataObject activityInput = null ;
      if ( input.getObject()!= null && input.getObject() instanceof DataObject )
      {
        activityInput = (DataObject)input.getObject();
        // leggere i valori
        ...
      }  
    }
    Una volta richiesta l'attività, viene restituito il messaggio di input dell'attività stessa.
  3. Una volta terminato il lavoro sull'attività, completare quest'ultima. L'attività può essere completata correttamente o con un messaggio di errore. Se l'attività ha esito positivo, viene inoltrato un messaggio di output. In caso contrario, l'attività passa nello stato di errore e viene inviato un messaggio di errore. Per queste azioni, è necessario creare i messaggi appropriati. Quando si crea un messaggio, è necessario specificare il nome del tipo di messaggio, in modo tale che contenga la definizione del messaggio.
    1. Per completare correttamente l'attività, creare un messaggio di output.
      ActivityInstanceData activity = process.getActivityInstance(aiid);
      ClientObjectWrapper output = 
            process.createMessage(aiid, activity.getOutputMessageTypeName());
      DataObject myMessage = null ;
      if ( output.getObject()!= null && output.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)output.getObject();
        //impostare le parti nel messaggio, ad esempio, un numero di ordine
        myMessage.setInt("OrderNo", 4711);
      }
      
      //completare l'attività
      process.complete(aiid, output);
      Questa azione imposta un messaggio di output contenente il numero dell'ordine.
    2. Per completare l'attività quando si verifica un errore, creare un messaggio di errore.
      //richiamare gli errori modellati per l'attività di staff
      List faultNames = process.getFaultNames(aiid);
      
      //creare un messaggio del tipo appropriato
      ClientObjectWrapper myFault = 
            process.createMessage(aiid, faultNames.get(0));
      
      // impostare le parti nel messaggio di errore, ad esempio, un numero di ordine
      DataObject myMessage = null ;
      if ( myFault.getObject()!= null && input.getObject() instanceof DataObject )
      {
        myMessage = (DataObject)myFault.getObject();
        //impostare le parti nel messaggio, ad esempio, un nome cliente
        myMessage.setInt("error",1304);
      }
      
      process.complete(aiid, (String)faultNames.get(0), myFault);
      Questa azione imposta l'attività in stato non riuscito o arrestato. Se il parametro continueOnError dell'attività nel modello di processo viene impostata su true, l'attività viene posizionata in stato non riuscito e la navigazione continua. Se il parametro continueOnError viene impostato su false e l'errore non viene rilevato nell'ambito circostante, l'attività viene arrestata. In questo stato l'attività può essere riparata utilizzando i comandi per forzare l'arresto o ritentare.

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