Sdílet prostřednictvím


WorkflowPersistenceService.SaveCompletedContextActivity(Activity) Metoda

Definice

Při implementaci v odvozené třídě uloží zadaný dokončený obor do úložiště dat.

protected public:
 abstract void SaveCompletedContextActivity(System::Workflow::ComponentModel::Activity ^ activity);
protected internal abstract void SaveCompletedContextActivity(System.Workflow.ComponentModel.Activity activity);
abstract member SaveCompletedContextActivity : System.Workflow.ComponentModel.Activity -> unit
Protected Friend MustOverride Sub SaveCompletedContextActivity (activity As Activity)

Parametry

activity
Activity

Jedná se o Activity dokončený obor.

Poznámky

Modul runtime pracovního postupu ukládá stav dokončených aktivit oboru, aby bylo možné implementovat kompenzaci. Musíte volat jednu z přetížených Save metod serializace activity do Stream; můžete se rozhodnout, že budete chtít dále zpracovat před zápisem Stream do úložiště dat. Při volání LoadCompletedContextActivitymodulu runtime pracovního postupu však musíte obnovit identickou kopii aktivity.

Pokud chcete obor označit jako nepotřebný v úložišti dat po dokončení nebo ukončení instance pracovního postupu, musíte být schopni přidružit dokončený obor k jeho nadřazené instanci pracovního postupu. Proto byste měli uložit Guid také instanci pracovního postupu, která je přidružena k dokončené oboru; to lze získat z InstanceId vlastnosti přidruženého WorkflowInstanceactivityk .

LoadCompletedContextActivity Guid přebírá dokončený obor jako parametr. Proto musíte také uložit vlastnost přidruženou ContextGuidactivityk . Na tuto vlastnost lze odkazovat prostřednictvím ActivityContextGuidProperty pole activity.

Pokud implementujete službu trvalosti, která používá trvalé úložiště, abyste zachovali konzistenci s interním stavem modulu modulu runtime pracovního postupu, měli byste se účastnit dávkování transakcí pracovního postupu, které odloží skutečný zápis do trvalého úložiště, dokud nebude bod potvrzení pracovního postupu. Chcete-li se účastnit dávkování, přidejte pracovní položku do WorkBatch vlastnosti, která představuje čekající změny databáze, a implementujte IPendingWork rozhraní ve službě trvalosti.

Pokud dokončený obor nemůžete uložit do úložiště dat, měli byste vyvolat PersistenceException příslušnou chybovou zprávu.

Platí pro