2012-08-08 12 views
8

Esempio: diciamo che ho un flusso di lavoro che invia un'email 2 giorni prima della scadenza della garanzia. Questo flusso di lavoro viene attivato sul "Created" di un'entità.Flusso di lavoro CRM2011: cosa succede se il campo utilizzato nella condizione del flusso di lavoro viene aggiornato dopo l'avvio del flusso di lavoro?

step 1: wait condition - process timeout < (warrantyendate - 2) 
    after wait: send email. 

Quindi, quando viene creato il record, viene avviato il flusso di lavoro. Ma cosa succede quando l'utente torna indietro e aggiorna la data di scadenza della garanzia.

Il flusso di lavoro controlla la data di scadenza della garanzia aggiornata o utilizza ancora la data di fine immessa quando è stata attivata (vale a dire l'iniziale sul valore di creazione)?

+3

Quando si tenta di eseguire lo scenario, quale risultato si vede? Non proverai solo a darti la tua risposta? – BenPatterson1

+0

@ BenPatterson1 Stavo testando con un campo data time e questo si è verificato in loop infiniti (e in questo modo crm ha bloccato l'esecuzione a causa di questo), quindi ho pensato di cercare aiuto. Sono riuscito a sbarazzarmene e ho trovato la risposta. Grazie. –

risposta

8

La mia comprensione è che il flusso di lavoro utilizza i dati nel sistema al momento dell'esecuzione.

La cosa importante da tenere presente qui è che un flusso di lavoro può essere eseguito molte volte, in questi momenti i dati nel sistema possono essere diversi. Crm memorizza nella cache lo stato del flusso di lavoro, ma non i dati. Process Architecture for Microsoft Dynamics CRM 2011 descrive questo.

Pertanto, ogni volta che viene verificata la condizione di timeout del processo, verrà utilizzato il valore corrente di warrantyEndDate. Se il valore viene modificato, la volta successiva viene verificata la condizione verrà utilizzato il nuovo valore.

In ogni caso, come suggerito da @ BenPatterson1, probabilmente stai meglio testare per essere sicuro.

+0

Grazie James. Ho avuto l'impressione che anche i dati siano memorizzati nella cache. –

4

Dopo aver provato da solo, se il valore del campo incluso nella condizione cambia, il motore del flusso di lavoro si attiva da sospensione (in attesa) e verifica di nuovo la condizione.

Se soddisfa la condizione, quindi continua al passaggio successivo o continuerà ad attendere.