Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Greenpeace
Compensazioni in WF 4.0: auto confirmation (4/5)
Scritto da Fabio Carucci il 07-10-2010 ore 08:28
Intel Cluster Studio XE
L'ultimo workflow contiene la medesima exception, come nel precedente, ma situata stavolta dopo tutte le CompensableActivity e all'esterno dell'AutoConfirm activity; in questo caso la richiesta della visita e il pagamento verranno compensate, mentre la prenotazione della visita e l'accettazione saranno comunque confermate poiché inserite nell'AutoConfirm e quindi confermate prima di sollevare l'exception.
  1. static Activity ExceptionAfterAutoConfirm()
  2. {
  3. 	return new Sequence()
  4. 	{
  5. 		Activities =
  6. 		{
  7. 			new CompensableActivity()
  8. 			{
  9. 				Body = new WriteLine() { Text = "Richiesta Visita inserita nel Body della CompensableActivity" },
  10. 				CompensationHandler = new WriteLine() { Text = "Richiesta Visita inserita nel Body della CompensableActivity" },
  11. 				ConfirmationHandler = new WriteLine() { Text = "Richiesta Visita inserita nel ConfirmationHandler" },
  12. 			},
  13.  
  14. 			new AutoConfirm()
  15. 			{
  16. 				Body = new Sequence()
  17. 				{
  18. 					Activities = 
  19. 					{
  20. 						new CompensableActivity()
  21. 						{
  22. 							Body = new WriteLine() { Text = "Prenotazione Visita inserita nel Body della CompensableActivity" },
  23. 							CompensationHandler = new WriteLine() { Text = "Cancellazione Prenotazione Visita inserita nel CompensationHandler" },
  24. 							ConfirmationHandler = new WriteLine() { Text = "Prenotazione Visita inserita nel ConfirmationHandler" },
  25. 						},
  26.  
  27. 						new CompensableActivity()
  28. 						{
  29. 							Body = new WriteLine() { Text = "Accettazione Visita inserita nel Body della CompensableActivity" },
  30. 							CompensationHandler = new WriteLine() { Text = "Cancellazione Accettazione Visita inserita nel CompensationHandler" },
  31. 							ConfirmationHandler = new WriteLine() { Text = "Accettazione Visita inserita nel ConfirmationHandler" },
  32. 						},
  33. 					},
  34. 				},
  35. 			},
  36.  
  37. 			new CompensableActivity()
  38. 			{
  39. 				Body = new WriteLine() { Text = "Pagamento Visita inserita nel Body della CompensableActivity" },
  40. 				CompensationHandler = new WriteLine() { Text = "Cancellazione Pagamento Visita inserita nel CompensationHandler" },
  41. 				ConfirmationHandler = new WriteLine() { Text = "Pagamento Visita inserita nel ConfirmationHandler" },
  42. 			},
  43.  
  44. 			new Throw()
  45. 			{
  46. 				Exception = new InArgument<Exception>((env) => new ApplicationException("Exception sollevata")),
  47. 			},                    
  48. 		},
  49. 	};
  50. }
Precedente: L'algoritmo per la diffusione ottimale dei dati in un network di autoveicoli (1/2)
Successiva: Implementare in C++ i Concepts del nuovo standard C++0x
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 1.007 secondi.