activity & activity nativeactivity & nativeactivity codeactivity & codeactivity...

14

Post on 20-Dec-2015

258 views

Category:

Documents


2 download

TRANSCRIPT

Approaches:• Code-based Atomic Activities – CodeActivity, Async & Native• Code-based Composite Activities - NativeActivity• XAML-based Composite Activities - Activity

DoWorkDoWork11

DoWorkDoWork22

DoWorkDoWork33

<p:Activity x:Class=MyActivity” …> <p:Sequence …> <my:DoWork1 ...> <my:DoWork2 ...> <my:DoWork3 ...> </p:Sequence></p:Activity>

public InArgument<string> TextToLog {get;set;}

public class SimpleLogActivity: CodeActivity{ protected override void Execute(CodeActivityExecutionContext context) { //activity logic goes here context.Track(new UserTrackingRecord(“Activity says: “ +

TextToLog.Get(context))); } …}

public sealed class MyNativeActivity : NativeActivity{ protected override void Execute(NativeActivityContext c) { }}

Using Arguments & Variables in Custom Activities

DoWorDoWorkk

WorkToDoWorkToDo

ResulResultt

ResultResult

DoWorDoWorkk

WorkToDoWorkToDo

ResultResult

Implementing the ArithmeticAdd Activity

8

•Inherit from

CodeActivity

•Override Execute

method

•Use DataReader,

Command or

DataAdapter

Using ADO.NET Using ADO.NET for CRUD from for CRUD from Custom Custom ActivitiesActivities

CRUD Activity: CodeActivityCRUD Activity: CodeActivity

In ArgumentsIn Arguments

Out ArgumentsOut Arguments

Execute• Get Connection String (web.config)• Open Connection• Perform CRUD ops• Write values to Output Arguments• Close Connection

Execute• Get Connection String (web.config)• Open Connection• Perform CRUD ops• Write values to Output Arguments• Close Connection

If using Integrated Security, ensure AppPool

Identity has DB access

If using Integrated Security, ensure AppPool

Identity has DB access

• Set of custom

Activities

• Perform CRUD using

ADO.NET

• Enable using SQL or

Stored Procedure for

command

• Support mapping

returned record

collection to collection

variable in workflow

• Pull connection string

from config

Database Database Activity PackActivity Pack

• No persistence within

transaction

• No explicit rollback or

commit activities OOB

• NativeActivityContext

can get current

transaction (if needed)

• TransactedReceiveScope

activity supports flow-in of

distributed transactions in

workflow services

DB Activities DB Activities with with TransactionsTransactions

Transaction Scope

Create ActivityCreate Activity

Update ActivityUpdate Activity

Delete ActivityDelete Activity

Isolation LevelIsolation Level

TimeoutTimeout

Creates or Joins Ambient Transaction

Creates or Joins Ambient Transaction

Exceptions thrown cause

implicit rollback

Exceptions thrown cause

implicit rollback

Completion of Transaction

Scope implicitly commits

transaction & persists workflow

Completion of Transaction

Scope implicitly commits

transaction & persists workflow

Join ambient transaction

Join ambient transaction

Activity Designers

Property Grid Extensibility

Validation

Custom Inline, Pop-Up & Dialog Property Value

Editors

Custom Inline, Pop-Up & Dialog Property Value

Editors

Category Editors allow

“batch” editing of multiple

properties with single complex

UI

Category Editors allow

“batch” editing of multiple

properties with single complex

UI

Customize presentation &

design time behavior

Customize presentation &

design time behavior

WPF BasedWPF Based

Expression support

Expression support

Validate individual

properties or entire activity

tree

Validate individual

properties or entire activity

tree

Custom Activities