Index

A

ABCs of WCF, 426

aborting workflow, AdvancedHostingForms, 374

accessing properties in tracking, 295-296

actions, attributing methods called from, 269

ActiveDirectoryRole, 307

activities, 16-18

AddApprover EventDriven, 224

adding

to Declarative Rules, 60-61

to event handlers view (EventHandlingScope), 227

to extend workflow, 123-124

to sequential view (EventHandlingScope), 227

to toolboxes across projects, 480-481

to workflow, 54

to workflow projects, 49-51

ApprovalReceived HandleExternalEvent, 126

basic activities, 455

BasicQueued, 493

CallExternalMethod, 18

adding, 103-108

tracking, 292

CancelWorkflow EventDriven, 224

CheckCredit

binding Customer properties to, 466-467

configuring, 125-127

running workflows with, 467

Code, 18

configuring, 447

Replicatorworkflow, 207

CompensatableSequence, 357

CompensatableTransactionScope, 366

compound activities, 456, 470

CompoundCreditCheck, 471

ConditionedActivityGroup, 19

ConditionedActivityGroup (CAG) activity, 22-23

configuring for ParallelActivityDesigner, 540

configuring for Replicator workflow, 206

ActivityExecutionContext, 208-209

CallExternalMethod, 206

Code, 207

HandleExternalEvent, 206

Replicator ChildInitialized property, 209-210

Replicator Initialized property, 207-208

configuring in

event handlers view (EventHandlingScope), 229

sequential view (EventHandlingScope), 228

control flow activities, 525

CreditCheck, 465-468

custom activities, 453

event-driven custom activities, 32

reasons for, 29-30

types of, 30-33

Delay, 374, 383

domain-specific activities, 454

event-driven activities, 149, 513

adding to state machine workflows, 151-152

state machine workflows, 162-164

updating state machine workflows, 153-159

EventHandlingScope, 18, 219

FaultHandlers, 345

HandleExternalEvent, 18, 124

tracking, 290-291

HandleExternalMethod, 101-102

IfElse, 17, 350

adding, 103

InvokeWebService activity, 18

calling web services from workflows, 405

InvokeWorkflow, 384-385

host prematurely exits, 385-386

host waits, 387

synchronous calls and parameters, 387-394

Listen, 17, 119

extending workflow, 123

Timeout branch, 127

More Info CallExternalMethod, 125

multiburst activities, 483

Parallel, 18

placing on Replicator workflow, 205

Policy, creating RuleSet, 260-264

queued activities, 484

Receive, 18

ContractsAndWorkflows (WCF), 428-429

WCF workflows, 438-441

RejectionReceived HandleExternalEvent, 126

removing from workflows, 54

Replicator, 203

Replicator activity, 18

Send, 18

configuring in WCF, 446-447

Sequence, 16

SetState, 150

single-burst activities, 483

State, 149

Statefinalization, 150

StateInitialization, 150, 155

StateMachineWorkflowActivity, 149

SynchronizationScope, 185-186

TransactionScope, 344, 365

WebServiceFault, 407-409

configuring, 409

WebServiceInput, 18, 398

WebServiceOutput, 18, 398

While, 17, 203, 213

XAML + code, adding and configuring activities, 64-65

Activity Designer, 475-476

activity handlers, 354-355

activity life cycles, 568-570

activity programming model, 475

ActivityDesignerTheme, 476-478

designer components, 475-476

activity validation, 475

ActivityCondition type

GeneralControlFlow activity, 561-563, 567

ActivityDesignerTheme, 476-478

ActivityExecutionContext, 208-209, 485, 530

ActivityExecutionContext class, 459

ActivityExecutionStatus, 459, 568-570

ActivityListenerEvent, CustomerEventDrivenActivity, 519

ActivityValidator, 557

AddApprover EventDriven activity, EventHandlingScope, 224

adding

activities

Declarative Rules, 60-61

to event handlers view (EventHandlingScope), 227

to extend workflow, 123-124

to sequential view (EventHandlingScope), 227

to toolboxes across projects, 480-481

to workflow, 54

to workflow projects, 49-51

XAML + code workflow, 64-65

CAG, to workflows, 245-246

CallExternalMethod activities, 103-108

cancellation and early completion, GeneralControlFlow activities, 542-545

cancellation handlers, CancellationWorkflow, 356-357

ChildActivityContinuation handler, 531

code to QueueItemAvailable handler, basic custom queued activities, 490-491

code-beside

to Approver1Lane, 247-249

to Approver2Lane, 250-251

to Approver3Lane, 252-253

for Replicator activities (EventHandlingScope workflow), 230-231

to update workflow midflight (EventHandlingScope workflow), 231-232

for While activities, 213-215

Compensate activity to fault handlers, CompensationWorkflow, 361-362

compensation handlers, CompensationWorkflow, 359-360

controls, to forms, 109

custom activities, to workflows, 459-460

custom designers to GeneralControlFlow activity, 552

custom Policy activity to toolbox, external RuleSet, 275

CustomerEventArgs class, to CustomerQueuedFromServiceActivity, 508-509

DependecyProperty type, to host-workflow data exchange, 99-101

DependencyProperty, to customer custom activities, 460-462

DiscountPercent rule, 260-262

embedded CustomerState class, CustomerQueuedFromService, 496

event handlers to activities, customer custom activity, 469-470

events, state machine workflows, 160-162

existing custom CreditCheck activity, 465-468

FaultHandlers, CompensationWorkflow, 361

GetCustomer method, CustomerQueuedFromService, 495

GetCustomerOnWorkerThread method, CustomerQueuedFromService, 496-498

graphics as images and associating classes, ToolboxBitmap, 479

hosting logic, 76-77

IfElse, to evaluate credit hold status, 467

IfElse activities and rules, 103

Level2Role support, 315-317

member variables

to Replicator workflow, 204-205

state machine workflows, 170

parallel execution options, GeneralControlFlow activities, 536-542

parallel support, to Replicator, 215-216

parameters, to InvokeWorkflow activity, 389-391

persistence, to basic and escalation forms, 131-132

roles, ASP.NET role providers, 310-311

rule conditions, 54

RuleSet tracing, 265

service references to WCF hosts, 434-435

single child activity execution, GeneralControlFlow activities, 529-532

states, state machine workflows, 160-162

States, to state machine workflows, 151-152

total order validation, to concurrent approval workflow, 199

TotalOrderAmount rule, 262

tracking to basic and escalation forms, 130-131

user tracking data, UserTrackingRecords, 299

variable declarations, to CAG projects, 244

WF runtime, to forms/hosts, 109-112

workflow-level FaultHandlers, 345-347

YearlySales rule, 262-263

AdvancedHostingForms project, running, 372-373

aborting workflow, 374

suspending and resuming workflow, 374

terminating workflow, 374

Annotate and Match Derived Types options, TrackingProfileDesigner, 303

App.config file, ContractsAndWorkflows (WCF), 430-431

approval, 187

ApprovalReceived HandleExternalEvent activity, 126

Approved event, 21

Approver1Lane, configuring for CAG, 246-249

Approver2Lane, configuring for CAG, 249-251

Approver3Lane, configuring for CAG projects, 252-253

ASMX file, 411

ASP.NET hosting, 413-414

creating ASP.NET web forms, 415-416

instantiating WorkflowRuntime, 414-415

running workflows, 418

starting WorkflowInstance, 416-417

ASP.NET role providers, installing, 308-309

adding roles and users, 310-311

attached dependency properties, creating, 562-563

attributing methods

called from actions, 269

called from conditions, 270-271

B

BAL (Base Activity Library), 16

BAM (business activity monitoring), 13, 283-285

base activities, setting, 457-458

Base Activity Library, 16

basic activities, 455

overview, 456

basic custom queued activities, 487

adding code to QueueItemAvailable handler, 490-491

overriding

Execute method, 489-490

Initialized method, 487-488

Uninitialize method, 492

performing preliminary custom activity setup, 487

running workflow, 493

updating hosts to send data to queues, 492

basic forms

adding persistence to, 131-132

adding tracking to, 130-131

basic order forms, implementing MoreInfo method, 129-130

BasicHostForm, 114

BasicHostingProject, creating, 74

BasicQueued activity, 493

binding Customer properties to CheckCredit activities, 466-467

bindings, WCF, 426-427

BPM (Business Process Management), 285

BPMS (business process management system), 13

BranchCondition rule, 332

BranchesToExecute, 557

business activity monitoring, 13, 283

Business Process Management, 285

business process management system, 13

C

CAG (ConditionedActivityGroup), 241-244

adding to workflows, 245-246

adding variable declarations, 244

configuring Approver1Lane, 246-249

configuring Approver2Lane, 249-251

configuring Approver3Lane, 252-253

running with three lanes, 254

running with two lanes, 251

CallExternalMethod activity, 18

adding, 103-108

configuring, 391

for approver, 193, 196

for Replicator workflow, 206

tracking, 292

calling

methods from rules, 267-271

XAML-only workflow from host, 68-69

calling web services from workflows, 404-406

Canceling state, 569

cancellation, GeneralControlFlow activities, 542-545

cancellation handlers, 355-356

Cancellationhandlers, 343

CancellationWorkflow, 355

adding cancellation handlers, 356-357

modeling, 356

CancelWorkflow EventDriven activity, EventHandlingScope, 224

CanInsertActivities method, GeneralControlFlow activity, 553

changes in workflow, Dynamic Update (sample), 337-340

changing

declarative rule conditions, Dynamic Update, 329-332

RuleSets

CodeDom, 332-334

.rules file, 334-337

ChannelToken property, 447

CheckApprovalStatus, 407

CheckCredit activity

binding Customer properties to, 466-467

configuring, 472

running workflows with, 467

CheckForFaults, 407

child activities

executing in GeneralControlFlow activities, 532-535

validating in GeneralControlFlow activity, 559-560

child activity execution logic, 529

ChildActivityContinuation handler, 539

adding, 531

updating, 534

to check for early, 543

children, 354-355

classes

creating classes that extend IServiceProvider, 564

custom designers, GeneralControlFlow activity, 552

custom validation, GeneralControlFlow activity, 557

GeneralControlFlowToolBoxItem class, 556

ToolBoxItem, GeneralControlFlow activity, 554

client code, calling services, 436-437

client proxies, rebuilding in WCF workflows, 441-442

client workflows, receiving SOAP faults, 409-410

clients, updating to invoke new methods (in WCF workflows), 442

closed events, registering with hosts, 78-80

Closed state, 570

closing hosts, WCF, 432-433

CLR exceptions, configuring Visual Studio debugger to not trap, 349-350

Code activities, 18

configuring, 55-56, 447

for Replicator workflow, 207

Thread.Sleep statements, 383

Code Conditions, 27, 328

code-beside

adding

to Approver1Lane, 247-249

to Approver3Lane, 252-253

for Replicator activities (EventHandlingScope), 230-231

to update workflow midflight (EventHandlingScope), 231-232

for While activities, 213-215

Level2Role, adding, 315

updating for roles, 313-314

code-only workflow, 63-64

CodeDom, changing RuleSets, 332-334

combo boxes, SetState, 174

CompensatableSequence, 357

CompensatableTransactionScope activity, 366

Compensate activity, adding to fault handlers (CompensastionWorkflow), 361-362

Compensating state, 570

compensation, 357

implementing, 570-571

compensation handlers, adding to CompensastionWorkflow, 359-360

compensation, overriding (default compensation handlers), 570-571

CompensationHandlers, 344

CompensationWorkflow

adding

Compensate activity to fault handlers, 361-362

compensation handlers, 359-360

FaultHandlers, 361

modeling, 359

moving Throw activity to CompensatableSequence activity, 362

performing preliminary setup, 358

registering SQL persistence service, 358-359

completed event, 23

components of state machine workflows, 149-150

CompositeActivity base type, 528

CompositeActivityDesigner, 535

Compound activities, 456, 470

creating and modeling, 470-474

CompoundCreditCheck activities, 471-473

concurrent approval workflow, 191-196

adding activities, 197-198

adding total order validation, 199

configuring CallExternalMethod activity for approver, 193, 196

configuring HandleExternalMethod activity for approver, 194, 197

running, 200

concurrent processing, correlation, 187

Condition property, 128

adding to GeneralControlFlow, 545

conditional rules, 26-27

ConditionedActivityGroup, 241

ConditionedActivityGroup (CAG) activity, 19, 22-23

conditions

applying to tracking, 296-297

attributing methods called from, 270-271

Conditions property, RuleSet, 328

configuring

activities

in event handlers view (EventHandlingScope), 229

in sequential view (EventHandlingScope), 228

XAML + code, 64-65

activities for Replicator workflow, 206

ActivityExecutionContext, 208-209

CallExternalMethod, 206

Code, 207

HandleExternalEvent, 206

Replicator ChildInitialized property, 209-210

Replicator Initialized property, 207-208

Approver1Lane for CAG, 246-249

Approver2Lane for CAG, 249-251

Approver3Lane CAG projects, 252-253

CallExternalMethod activity, 391

CallExternalMethod activity for approver, 193, 196

CheckCredit activities, 125-127, 472

Code activities, 55-56, 447

Customer activities in CompoundCreditCheck activities, 473

EventDriven activities, state machine workflows, 162-164

HandleExternalMethod activity for approver, 194, 197

IfElse activity, 401

scheduling service projects, 379-380

TransactionWorkflow, 364-365

Visual Studio debugger to not trap CLR exceptions, 349-350

WebServiceFault activity, 409

WebServiceInput activity, 400-401

WebServiceOutput activity, 402-403

workflow to use external rules, 276-277

connecting to WCF endpoints from WF, 445

updating workflows, 445-448

Console Application

creating BasicHostingProject, 74

creating hosts, 75

adding hosting logic, 76-77

adding monitoring events, 83-84

adding persistence service, 80-83

pausing hosts, 77-78

persistence and tracking databases, 85-86

registering closed and terminated events with hosts, 78-80

running the workflow, 80, 86-87

updating hosts via configuration, 87-89

creating simple workflows, 75

creating solution and projects, 73

creating WorkflowsProject, 74

console application clients (WCF), 434

adding

client code to call the service, 436-437

service references to WCF hosts, 434-435

generated files, 435

running, 437

console host, 52

ConsoleApplicationWcfWorkflowHost, 443

retrieving WorkflowRuntime, 443-444

running, 444

ContextToken, 429

ContractsAndWorkflows (WCF), 427

App.config file, 430-431

modeling workflow, 429

Receive activity, 428-429

reviewing interfaces, 427-428

control flow activities, 525-526

GeneralControlFlow activities, 527

adding cancellation and, 542-545

adding parallel execution option, 536-542

adding single child activity, 529-532

creating, 545-548

creating nonexecuting control flow, 527-529

designer hierarchy, 535-536

executing child activities, 532-535

GeneralControlFlow activity, 526

ControlFlowCustomActivitySolution, 527

controls, adding to forms, 109

cookie usage, 411

correlation, 187

concurrent processing, 187

CorrelationWorkflows project, 188

event payload (EventArgs) 190

local services, 188-189

CorrelationToken.OwnerActivityName property, 193

CorrelationWorkflows project, 188

CreateQueue method, CustomerEventDrivenActivity, 520

credit hold status, adding IfElse to evaluate, 467

CreditCheck activity

adding, 465-468

importing, 465

custom activities, 453

adding to workflows, 459-460

creating domain-specific activities, 454

custom control flow patterns, 454

customer custom activity, 457

event-driven custom activities, 32

improving on OOB activities, 454

reasons for, 29-30

technical overview, 455-456

types of, 30-33

custom activities that access typed services, 509-513

CustomerQueuedFromServiceActivity, 507-508

adding, 508-509

CustomerQueuedFromTypeService, updating, 513

custom control flow patterns, 454-455

custom designers

adding to GeneralControlFlow activity, 552-554

modifying in GeneralControlFlow activity, 565

custom validation, GeneralControlFlow activity, 556-557

associating with activities, 560

classes, 557

overriding Validate method, 557-558

testing validation, 561

validating child activities, 559-560

Customer activity

configuring in CompoundCreditCheck activity, 473

updating to retrieve information from databases, 462-464

customer custom activity, 457

adding event handlers, 469-470

adding existing custom CreditCheck activity, 465-468

adding to workflows, 459-460

overriding Execute method, 458-459

setting base activities, 457-458

updating customer activities to receive input, 460-461

updating Customer activity to retrieve information from, 462-464

CustomerEventArgs class, adding, 508-509

CustomerEventDrivenActivity, 515-516

ActivityListenerEvent, 519

CreateQueue method, 520

creating DoSubscribe method, 518

DeleteQueue method, 520

DoUnSubscribe method, 519

implementing Subscribe handler, 517

implementing UnSubscribe handler, 518

overriding Execute method, 516-517

overriding Initialize method, 516

ProcessQueueItem method, 520

running the workflow, 521-522

CustomerNumber dependence property, adding, 516

CustomerNumber property, 461

CustomerQueuedFromService, 494-495

CustomerQueuedFromServiceActivity, 498-499, 507-508

adding CustomerEventArgs class, 508-509

overriding Execute method, 499-500

overriding Initialized method, 499

QueueItemAvailable handler, 500-503

running workflow, 504

updating hosts to use new services, 503-504

CustomerQueuedFromTypedService

modifying, 510-513

updating hosts, 513

CustomerQueuedFromTypedServiceActivity, modifying, 509-510

customers, retrieving from databases, 463

CustomerState class, adding to CustomerQueuedFromService, 496

CustomerState object, updating, 510

D

data-driven workflows, 243

debugging workflow projects, 52-53

Declarative Rule Conditions, 26-27

updates, 35

declarative rule conditions, changing with Dynamic Update, 329-332

Declarative Rules, 60-62

default compensation handlers, overriding, 570-571

DefaultWorkflowSchedulerService, 376-378

running, 381

Delay activity, 374

modifying workflow to use, 383-384

workflow, 34-35

DeleteQueue method, CustomerEventDrivenActivity, 520

dependency properties

adding, 462

calling web services from workflows, 404

creating, 398

DependencyProperty, 127, 336

adding to customer custom activities, 460

DependencyProperty type, adding to host-workflow data exchange, 99-101

design-time transparency, 11

designer components, activity programming model, 475-476

designer hierarchy, GeneralControlFlow activities, 535-536

designer rehosting, 42-43

DiscountPercent rule, adding, 260-262

distributed transaction coordinator (DTC), 132

DLL file, 411

domain-specific activities

creating, 454

custom activities, 29

DoSubscribe method, CustomerEventDrivenActivity, 518

DoUnSubscribe method, CustomerEventDrivenActivity, 519

downloading

external RuleSet application, 271-272

WorkflowMonitor, 141-143

DTC (distributed transaction coordinator), 132

dynamic update, 34-36, 319-320

Dynamic Update

applying from the inside, 321-322

applying from the outside, 324-327

changing declarative rule conditions, 329-332

changing rules in a rules file, 332

changing RuleSets, via .rules files, 334-337

exploring workflow changes sample, 337-340

selecting which version to run, 329

TransientWorkflow property, 320

updating rules, 327-328

WorkflowChanges, 320

WorkflowInstances, 321

dynamic update, XAML, 36

dynamically updating rules, 327-328

DynamicUpdateCondition, 35

DynamicUpdateConditon property, 319

DynamicUpdateFromInside workflow, running, 323-324

DynamicUpdateFromOutside, 326

E

early completion, GeneralControlFlow activities, 542-545

EnabledActivities property, 529

endpoints, WCF, 431

WorkflowServiceHost, 432

enhancing state machine workflow, 165-166

escalation forms

adding persistence to, 131-132

adding tracking to, 130-131

implementing new interface members, 128-129

escalation local services, 121

escalation workflow

adding

persistence to basic and escalation forms, 131-132

tracking to basic and escalation forms, 130-131

extending, 122

adding activities to, 123-124

configuring CheckCredit activities, 125-127

updating workflow code-beside file, 127-128

retrieving tracking data, 132-135

retrieving workflow from persistence, 135-137

running the solution, 137-140

updating forms

implementing MoreInfo method in basic order, 129-130

implementing new interface members, 128-129

updating local services, 120-122

evaluating

attached properties with Execute method (GeneralControlFlow activity), 566

post-execution results, RuleSet, 267

pre-execution results, RuleSet, 265-266

event handlers, adding to customer custom activities, 469-470

event handlers view

adding activities to (EventHandlingScope), 227

configuring activities in (EventHandlingScope), 229

event handling activities, configuring event handling scope, 224

event mapping to local services, 162

event payload (EventArgs), correlation, 190

event-driven activities, adding to state machine workflows, 151-152

event-driven custom activities, 32

EventArgs, 97-99, 508-509

correlation, 190

EventArgs class, 389

EventDriven activities, 149, 513-514

configuring for state machine workflows, 162-164

CustomerEventDrivenActivity, 515-516

updating for state machine workflows, 153-159

EventHandling Scope activity, 18

EventHandlingScope, WCA.exe, 233-234

EventHandlingScope activity, 219-220

EventHandlingScope workflow

configuring event handling activities, 224

configuring sequential activities, 223

placing activites on event handlers section, 221-223

placing activites on sequential section, 220-221

running, 225

strongly typed activities, 234-237

XAML, 225-226

EventHandlingScope workflow (advanced), 226

adding activities to event handlers view, 227

adding activities to sequential view, 227

adding code-beside for Replicator activities, 230-231

adding code-beside to update workflow, 231-232

configuring activities in event handlers view, 229

configuring activities in sequential view, 228

preparatory setup, 230

running, 232-233

events

adding to state machine workflows, 160-162

raising for Windows Forms host, 112-113

examining

project files, 63-64

workflow, XAML, 65-66

exception handler, 345

exception handling, 344-345, 348

adding workflow-level FaultHandlers, 345-347

configuring Visual Studio debugger to not trap CLR exceptions, 349-350

hierarchical exception handling and throw activity, 350

catching, 351-352

handling, 352-353

reconfiguring, 353-354

Throw activity, 353

updating, 350-351

modeling ExceptionWorkflow, 345

StateMachineWorkflows, 345

exceptions

catching in IfElse activity, 351-352

handling in IfElse activity, 352-353

ExceptionWorkflow

Modeling, 345

Updating, 350-351

Execute method

GeneralControlFlow activity, evaluating attached properties, 566

overriding

in basic custom queued activities, 489-490

in customer custom activity, 458-459

inCustomerEventDrivenActivity, 516-517

inCustomerQueuedFromServiceActivity, 499-500

updating

to process multiple children, 533

updating customer activity to receive input, 461

executing

child activities, GeneralControlFlow activities, 532-535

standard parallel activities, 182-183

synchronized parallel activities, 185-186

Executing state, 569

ExecutionMode property, 557

expense report workflow (example), 10-12

extending workflow, 122

adding activities to, 123-124

configuring CheckCredit activities, 125-127

updating workflow code-beside file, 127-128

external data exchange, 92

external modeling, 42-43

external RuleSet application, 271

adding custom Policy activity to toolbox, 275

configuring workflow to use external rules, 276-277

downloading, 271-272

preparing workflow to use external rules, 275-276

running sample workflow, 272-273

running workflow with external rules, 277

uploading rules to external databases, 273-274

ExternalDataExchange, 484

ExternalDataExchangeService, registering with hosts, 393-394

F

fault handler, 345

FaultHandler, 344

FaultHandlerActivity.Fault, 348

FaultHandlers, 343

adding, 345-347

Faulting state, 569

FaultMessage, 429

first-level approval or rejection, running solutions, 137

flow patterns, custom activities, 30

form code-behind logic, updating to work with StateMachineWorkflowInstance members, 170-178

forms

adding controls to, 109

adding WF runtime to, 109-112

basic forms, 130-132

basic order forms, implementing MoreInfo method, 129-130

escalation forms, 128-129

updating for state machine workflows, 170

FreeformActivityDesigner, 535

FreeFormDesigner, 535

G

GeneralControlFlow activities, 527

adding cancellation and early completion, 542-545

adding parallel execution option, 536-542

adding single child activity execution, 529-532

creating GeneralControlFlowBranch and adding conditions, 545-548

creating nonexecuting control flow activities, 527-529

designer hierarchy, 535-536

executing child activities, 532-535

GeneralControlFlow activity, 526

ActivityCondition type, 561-563

adding attached properties, 561-563

creating classes that extend, 564

Execute method, 566

GetCondition, 564

IExtenderProvider.CanExtend, 565

modifying custom designer, 565

removing, 567

SetChild method, 564

updating workflow, 568

adding custom designers, 552-553

classes, 552

overriding CanInsertActivities, 553

overriding OnCreateNewBranch, 552

testing designers, 553-554

custom validation, 556-557

associating with activities, 560

classes, 557

overriding Validate method, 557-558

testing validation, 561

validating child activities, 559-560

ToolBoxItem, 554-556

classes, 554

GeneralControlFlowToolBoxItem, 556

testing, 556

GeneralControlFlowBranch, 557

creating, 545-548

GeneralControlFlowBranch validation, removing, 567

generated files, console application clients (WCF), 435

GetCondition, GeneralControlFlow activity, 564

GetCustomer method, adding to CustomerQueuedFromService, 495

GetCustomerCalledFromActivity method, updating, 511

GetCustomerOnWorkerThread, updating, 511

GetCustomerOnWorkerThread method, 495

adding to CustomerQueuedFromService, 496-498

GetWorkflowRuntime, 111

graphics, adding as images (ToolboxBitmap), 479

H

HandleExternalEvent, 124

HandleExternalEvent activities, tracking, 290-291

HandleExternalEvent activity, 18

HandleExternalMethod activity

configuring for approver, 194, 197

host-workflow data exchange, 101-102

HandleExternalEvent activity, configuring for Replicator workflow, 206

handling exceptions, 348

hierarchical exception handling, throw activity and, 350

catching exceptions in IfElse activity, 351-352

handling exceptions in IfElse activity, 352-353

reconfiguring, 353-354

Throw activity, 353

updating ExceptionWorkflow, 350-351

hierarchical states, state machine workflows, 159-160

historical states, 175

host forms, updating for Replicator workflow, 210-212

host-workflow communication, 93

host-workflow data exchange, 91-93

local service, 93

local service interface, 96-97

local service projects, 94

payloads (EventArgs), creating, 97-99

solution and projects, creating, 94

Windows Forms projects, creating, 95-96

workflow, creating, 99

adding DependencyProperty type, 99-101

HandleExternalMethod activity, 101-102

workflow projects, creating, 95

hosting, 23

ASP.NET, 413-414

creating ASP.NET web forms, 415-416

instantiating WorkflowRuntime, 414-415

running workflows, 418

starting WorkflowInstance, 416-417

completed event, 23

idled event, 23-24

overview of, 72

terminated event, 23

hosting logic, adding, 76-77

hosts

adding WF runtime to, 109-112

building from scratch

adding monitoring events, 83-84

adding persistence service, 80-83

creating BasicHostingProject, 74

creating hosts, 75-80

creating simple workflows, 75

creating solution and projects, 73

creating WorkflowsProject, 74

persistence and tracking databases, 85-86

running the workflow, 86-87

updating hosts via configuration, 87-89

calling XAML-only workflow, 68-69

creating, 75

adding hosting logic, 76-77

adding monitoring events, 83-84

adding persistence service, 80-83

pausing hosts, 77-78

persistence and tracking databases, 85-86

registering closed and terminated events with hosts, 78-80

running the workflow, 80, 86-87

updating hosts via configuration, 87-89

pausing, 77-78

in workflow projects, 51-52

registering

closed and terminated events with, 78-80

ExternalDataExchangeService, 393-394

running the workflow, 80

updating

for CustomerQueuedFromTypedService, 513

to pass in OrderAmount, 465

for roles, 311-312

to send data to queues (basic custom queued activities), 492

updating to run three workflows, scheduling service projects, 380

updating to use ManualWorkflowSchedulerService, 381-383

updating to use new services, CustomerQueuedFromServiceActivity, 503-504

WCF, 431

adding service references to, 434-435

running, 433

starting, pausing, and closing, 432-433

WorkflowServiceHost, 432

Windows Forms host, 108

adding controls to, 109

adding WF runtime to, 109-112

creating workflow instances and raising initial events, 112-113

implementing local service, 113-116

running the project, 116

human workflow, 12

I-J-K

IActivityEventListener, 515

ICompensateableActivity.Compensate, 570

ICompensateableActivity.Compensate method, 570

idled event, hosting, 23-24

IEventActivity, 515

IEventActivity.QueueName, 515

IExtenderProvider.CanExtend method, GeneralControlFlow activity, 565

IfElse

adding activities and rules, 103

adding to evaluate credit hold status, 467

configuring for Compound activities, 471

IfElse activity, 17

catching exceptions in, 351-352

configuring, 401

exception handling, 350

handling exceptions in, 352-353

implementing

compensation, 570-571

interface members in escalation forms, 128-129

local services for Windows Forms host, 113-114, 116

MoreInfo method in basic order form, 129-130

Subscribe handler, CustomerEventDrivenActivity, 517

UnSubscribe handler in CustomerEventDrivenActivity, 518

importing CreditCheck activity, 465

improving

on OOB activities, 454

transparency, 57

Initialize method, overriding

in basic custom queued activities, 487-488

in CustomerQueuedFromServiceActivity, 499

in CustomerEventDrivenActivity, 516

installing

ASP.NET role providers, 308-309

adding roles and users, 310-311

.NET Framework 3.0, 44

.NET Framework 3.5, 45

Visual Studio 2005, 44

Visual Studio 2008, 45

WorkflowMonitor, 141-143

integration, WF and WCF, 37-38

integration-centric workflow systems, 12

interfaces

ContractsAndWorkflows (WCF), reviewing, 427-428

modifying in WCF workflows, 438

InvokeWebService activity, 18

calling web services from workflows, 405

InvokeWorkflow activity, 384-385

host prematurely exits, 385-386

host waits, 387

synchronous calls and parameters, 387-394

IServiceProvider, creating classes that extend, 564

L

Leve2Role support, 315-317

life cycle topics, 484

ActivityExecutionContext, 485

WorkflowQueue, 484-485

life cycles, activity life cycles

ActivityExecutionStatus, 568-570

OnActivityExecutionContextLoad, 570

OnActivityExecutionContextUnload, 570

Listen activity, 17, 119

extending workflow, 123

Timeout branch, 127

loading service, 377

loading workflows, TrackingProfileDesigner, 288-289

local service, 92

host-workflow data exchange, 93

local service interface

creating, 389

host-workflow data exchange, 96-97

local service project, creating, 388-389

host-workflow data exchange, 94

local services

correlation, 188-189

escalation workflow, updating, 120-122

event mapping to, 162

implementing for Windows Forms host, 113-116

LocalService.cs, 97

LocalServiceEscalationEventArgs.cs, 121

LocalServiceWorkflow, 106

M

ManualWorkflowSchedulerService, 378

running, 382-383

updating hosts, 381-382

member variables

adding

to Replicator workflow, 204-205

to state machine workflows, 170

updating for roles, 312

methods, calling from rules, 267-268

attributing methods called from actions, 269

attributing methods called from conditions, 270-271

modeling

CancellationWorkflow, 356

CompensationWorkflow, 359

Compound activities, 470-474

ExceptionWorkflow, 345

scheduling service projects, 379-380

TransactionWorkflow, 364-365

workflow

ContractsAndWorkflows (WCF), 429

While activity for sequential processing, 213

workflows, calling web services from workflows, 404-405

workflows as web services, 399

XAML-only workflow, 67-68

modifying

custom designer, GeneralControlFlow activity, 565

CustomerQueuedFromTypedService, 510-513

CustomerQueuedFromTypedServiceActivity, 509-510

state machine workflows, 160

adding new states and events, 160-162

configuring EventDriven activities, 162-164

TrackingProfiles, 300-301

workflow to use Delay activities, 383-384

monitoring

RuleSet, 264

adding tracing, 265

evaluating post-execution results, 267

evaluating pre-execution results, 265-266

events, adding to hosts, 83-84

MoreInfo CallExternalMethod activity, 125

MoreInfo method, implementing in basic order form, 129-130

moving Throw activity into CompensatableSequence activity, 362

multiburst activities, 483

EventDriven activities, 513-514

CustomerEventDrivenActivity, 515-522

WorkflowQueue, 484

N

.NET 3.5, 423

.NET Framework 3.0, 13

installing, 44

.NET Framework 3.5, 13

installing, 45

nonexecuting control flow activities, creating, 527-529

NullCustomerRule, 409

O

OnActivityExecutionContextLoad, 570

OnActivityExecutionContextUnload, 570

OnCreateNewBranch method, GeneralControlFlow activity, 552

OOB (out-of-the-box)

custom activities, 29

SqlTrackingService, 135

persistence service, 81

OOB (out-of-the-box) activities, improving on, 454

opening TrackingProfileDesigner, 288-289

OperationValidation, 429

OrderAmount, updating hosts to pass, 465

OrderEscalationForm

running, 314

updating

code-beside, role processing, 313-314

hosts, role processing, 311-312

member variables, role processing, 312

workflow, role processing, 312

workflow model, role processing, 313

OrderInitEventArgs, 98

out-of-the-box, 81

out-of-the-box (OOB) activities, improving on, 454

overriding

CanInsertActivities method, GeneralControlFlow activity, 553

default compensation handlers, 570-571

Execute method

basic custom queued activities, 489-490

customer custom activity, 458-459

CustomerEventDrivenActivity, 516-517

CustomerQueuedFromServiceActivity, 499-500

Initialize method

basic custom queued activities, 487-488

CustomerEventDrivenActivity, 516

CustomerQueuedFromServiceActivity, 499

OnCreateNewBranch method, GeneralControlFlow activity, 552

states, 177

Uninitialize method, basic custom queued activities, 492

Validate method, GeneralControlFlow activity, 557-558

P

parallel activities, executing, 182-183

synchronized parallel activities, 185-186

Parallel activity, 18

Parallel activity tester project, creating, 182

parallel execution options, GeneralControlFlow activities, 536-542

parallel support, adding to Replicator, 215-216

parallel workflows, running, 183-184

ParallelActivityDesigner, 535

configuring, 540

parameters

InvokeWorkflow, 387-394

passing to workflow, 58-60

passing

number of reviewers to workflow, Replicator workflow, 211-212

parameters to workflows, 58-60

pausing hosts, 77-78

WCF, 432-433

workflow projects, 51-52

payloads (EventArgs), host-workflow data exchange, 97-99

persistence

adding to basic and escalation forms, 131-132

retrieving workflow from, 135-137

persistence databases, creating, 85-86

persistence service, adding to hosts, 80-83

placing activities on Replicator workflow, 205

Policy activity

adding to toolbox, external RuleSet, 275

creating RuleSet, 260-264

preparations for state machine workflows, 151

preparatory setup, EventHandlingScope workflow, 230

preparing XAML-only workflow, 67-68

ProcessQueueItem method, CustomerEventDrivenActivity, 520

profiles, uploading to database (TrackingProfile), 293

Program.cs, 52

project files, examining, 63-64

properties

accessing in tracking, 295-296

attached dependency properties, creating, 562-563

ChannelToken, 447

Condition, 128

CorrelationToken.OwnerActivityName, 193

Customer, binding to CheckCredit activities, 466-467

CustomerNumber, 461

dependency properties, 404

DynamicUpdateCondition, 319

EnabledActivities, 529

ExecutioinMode, 557

FaultHandlerActivity.Fault, 348

Replicator ChildInitialized, 209-210

Replicator Initialized, 207

TransientWorkflow, 320

UntilCondition, 254

WebServiceInvokeActivity.WebServiceProxy, 412

WebServiceProxy, 413

Publish as Web Service Wizard, 410

publishing workflows as web services, 398, 403

configuring

IfElse activity, 401

WebServiceInput activity, 400-401

WebServiceOutput activity, 402-403

creating interfaces to produce WSDL, 399

dependency properties, 398

modeling and publishing, 399

Q

queued activities, 484

basic custom queued activities, 487

adding code to QueueItemAvailable, 490-491

overriding Execute method, 489-490

overriding Initialized method, 487-488

overriding Uninitialize method, 492

performing preliminary custom activity, 487

running workflow, 493

updating hosts to send data to queues, 492

QueueItemAvailable handler

adding code to, in basic custom queued activities, 490-491

CustomerQueuedFromServiceActivity, 500-503

R

rebuilding client proxies, WCF workflows, 441-442

Receive activity, 18

ContractsAndWorkflows (WCF), 428-429

WCF workflows, 438-441

receiving SOAP faults in client workflows, 409-410

reconfiguring Throw activity, 353-354

registering

closed and terminated events with hosts, 78-80

ExternalDataExchangeService with hosts, 393-394

SQL persistence service, 358-359

RejectionReceived HandleExternalEvent activity, 126

removing

activities from workflows, 54

GeneralControlFlowBranch validation, 567

Replicator activity, 18, 203

sequential processing, 213

Replicator ChildInitialized property, configuring, 209-210

Replicator Initialized property, configuring for Replicator activity, 207-208

Replicator workflow

adding member variables to, 204-205

configuring activities, 206-209

placing activities on, 205

running parallel Replicator, 216-217

updating host forms, 210

adding ViewQueues method, 210-211

passing number of reviewers to workflow, 211-212

running, 212-213

updating to run in parallel, 215

resuming workflow, AdvancedHostingForms374

retrieving

customers from databases, 463

tracking data, 132-135

TrackingProfiles, 299-300

workflow from persistence, 135-137

WorkflowRuntime, ConsoleApplicationWcfWorkflowHost, 443-444

ReturnValue, 428

roles, 307-308

adding to ASP.NET role providers, 310-311

code-beside, updating, 313-314

hosts, updating, 311-312

Level2Role, 315-317

member variables, updating, 312

setting up ASP.NET role providers, 308-309

workflow, updating, 312

workflow model, updating, 313

Rule, 257

rule conditions, adding to workflows, 54

RuleDefinitions, 327, 332, 336

RuleDefinitionsProperty, 327

.rules file, changing with RuleSets, 334-337

rules, 258

calling methods from, 267-268

attributing methods called from actions, 269

attributing methods called from conditions, 270-271

condition rules, 26-27

Declarative Rules, creating, 61-62

DiscountPercent, 262

RuleSets, 27-28

TotalOrderAmount, 262

updating dynamically, 327-328

uploading to external databases, 273-274

YearlySales, 262-263

RuleSet, 27-28, 257-259

creating project, 260

creating via Policy activity, 260-264

external RuleSet application, 271

adding Policy activity to toolbox, 275

configuring workflow to use external rules, 276-277

downloading, 271-272

preparing workflow to use external rules, 275-276

running sample workflow, 272-273

running workflow with external rules, 277

uploading rules to external databases, 273-274

monitoring, 264

adding tracing, 265

evaluating post-execution results, 267

evaluating pre-execution results, 265-266

terminology, 258

RuleSet Chaining, 27

RuleSets, 327

changing with CodeDom, 332-334

running

AdvancedHostingForms project, 372-374

CAG projects

with three lanes, 254

with two lanes, 251

concurrent approval workflow, 200

console application clients (WCF), 437

ConsoleApplicationWcfWorkflowHost, 444

DefaultWorkflowSchedulerService, 381

DynamicUpdateFromInside workflow, 323-324

DynamicUpdateFromOutside, 326

EventHandlingScope workflow, 225

EventHandlingScope workflow (advanced), 232-233

hosts, WCF, 433

ManualWorkflowSchedulerService, 382-383

OrderEscalationForm, 314

parallel Replicator, 216-217

parallel workflows, 183-184

Replicator workflow, 212-213

solutions

first-level approval or rejection, 137

second-level approval and tracking, 139-140

second-level approval or rejection, 138

state machine workflows, 159, 178-179

TransactionWorkflow, 365-366

Windows Forms host projects, 116

workflow

basic custom queued activities, 493

external RuleSet application, 272-273

RuleSet, 263-264

with external rules, 277

WorkflowMonitor SDK sample, 141

downloading and installing WorkflowMonitor, 141-143

workflows

ASP.NET, 418

building hosts from scratch, 86-87

CustomerEventDrivenActivity, 521-522

CustomerQueuedFromServiceActivity, 504

TrackingProfiles, 293, 297-298

with CheckCredit activities, 467

with data coming from the databases, 464

XAML + code workflow, 66

running SQL script to create TestTransaction database, TransactionWorkflow, 365

runtime services, 375-377

custom activity queued from service, 493

CustomerQueuedFromService, 494

loading service, 377

workflow queuing service, 378-379

runtime transparency, 11

S

saving profiles, TrackingProfiles, 297-300

scheduling (threading) services, 378

scheduling service projects, 379

DefaultWorkflowSchedulerService, running, 381

modeling and configuring the workflow, 379-380

modifying workflow to use Delay activities, 383-384

updating hosts

to run three workflows, 380

to use ManualWorkflowSchedulerService, 381-382

second-level approval and tracking, running solutions, 139-140

second-level approval or rejection, running solutions, 138

segmentations, workflow, 12

selecting versions, Dynamic Update, 329

Send activity, 18

configuring in WCF, 446-447

Sequence activity, 16

SequenceDesigner, 535

sequential activities, configuring event handling scope, 223

sequential execution options, adding to handlers, 538

sequential forms, Replicator, 213

sequential processing, While activity, 213

adding code-beside, 213-215

sequential view

adding activities to (EventHandlingScope), 227

configuring activities in (EventHandlingScope), 228

sequential workflow, 19-20

Sequential Workflow Console Application projects, creating, 48-49

Sequential Workflow project, Parallel activity tester project, 182

Sequential Workflow Service Library project, 425

sequential workflows, 243

creating, 473

serialization, XAML, 33

ServiceOperationInfo, 428

ServicesExceptionNotHandled, 370

SetChild method, GeneralControlFlow activity, 564

SetState activity, 150

SetState combo box, 174

SharePoint, WF, 15

SharePoint Designer, 41

SharePoint workflow, 38

overview, 38-39

SharePoint Designer, 41

Visual Studio, 40

ShowTracking method, 134

simple workflows, creating, 75

single child activity execution, adding to GeneralControlFlow activities, 529-532

single-burst activities, 483

SOAP faults, 407-409

configuring conditions, 409

receiving in client workflows, 409-410

running workflow solution, 410

WebServiceFault activity, configuring, 409

SQL persistence service, registering, 358-359

SQL script

running to create SQL components, 462

running to create TestTransaction database, TransactionWorkflow, 365

SqlTrackingQuery, 130, 298

SqlTrackingService, 119, 130, 135

SqlWorkflowPersistenceService, 81

standard parallel activities, executing, 182-183

Started, 370

starting hosts, WCF, 432-433

State activity, 149

state introspection

state machine workflows, 159-160

StateMachineWorkflowInstance and, 165

state machine workflows, 20-21, 243

adding States and event-driven activities, 151-152

components of, 149-150

creating the project, 150

enhancing, 165-166

hierarchical states, 159-160

modifying, 160

adding new states and events, 160-162

configuring EventDriven activities, 162-164

overview, 147-149

prepatory work, 151

running, 159, 178-179

state introspection, 159-160

StateMachineWorkflowInstance and state introspection, 165

updating

EventDriven activities, 153-159

form code-behind logic to work with, 170-178

forms and adding member variables, 170

state management, 11

state transitions, 176

StateFinalization activity, 150

StateInitialization activity, 150

StateMachineWorkflowActivity, 149

StateMachineWorkflowInstance, state introspection and, 165

StateMachineWorkflowInstance members, updating form code-behind logic, 170-178

StateMachineWorkflows, exception handling, 345

states

adding to state machine workflows, 160-162

overriding current state, 177

States activities, adding to state machine workflows, 151-152

Stopped, 370

strongly typed activities, EventHandlingScope, 234-237

StructuredCompositeActivityDesigner, 535

Subscribe method, implementing in CustomerEventDrivenActivity, 517

suspending workflow, AdvancedHostingForms, 374

SynchronizationScope activity, 185-186

synchronized parallel activities, executing, 185-186

synchronous calls, InvokeWorkflow, 387-394

T

terminated event, hosting, 23

terminated events, registering with hosts, 78-80

terminating workflow, AdvancedHostingForms, 374

testing

designers, GeneralControlFlow activity, 553-554

GeneralControlFlowToolBoxItem class, 556

validation, GeneralControlFlow activity, 561

TestTransaction database, running SQL script, 365

Thread.Sleep statements, 383

Throw activity

hierarchical exception handling and, 350-353

moving into CompensatableSequence activity, 362

reconfiguring, 353-354

Timeout branch, configuring Listen activity, 127

ToolboxBitmap, 478

adding graphics as images and associating classes, 479

toolboxes, adding activities to toolboxes across projects, 480-481

ToolBoxItem, GeneralControlFlow activity, 554-556

classes, 554

testing GeneralControlFlowToolBoxItem, 556

total order validation, adding to concurrent approval workflow, 199

TotalOrderAmount rule, adding, 262

tracing, adding RuleSet tracing, 265

tracking, 11, 24-25, 283

accessing properties in, 295-296

adding to basic and escalation forms, 130-131

BAM and, 285

CallExternalMethod activities, 292

conditions, applying, 296-297

HandleExternalEvent activities, 290-291

reasons for, 284

SqlTrackingService, 119

WF, 143

workflow level events, 289-290

Tracking architecture, 284-285

tracking data, retrieving, 132-135

tracking databases, creating, 85-86

tracking tables and logic, tracking, 86

TrackingChannel, 285

TrackingProfileDesigner, 286-287

Annote and Match Derived Types, 303

examining how profiles are processed, 294

opening and loading workflows, 288-289

tracking CallExternalMethod activities, 292

tracking HandleExternalEvent activities, 290-291

tracking workflow level events, 289-290

uploading profiles to database and running workflow, 293

TrackingProfiles, 285

conditions, applying, 296-297

modifying, 300-301

retrieving, 299-300

saving profiles and running workflows, 297-298

saving to files, 299-300

TrackingProfileDesigner, 286-287

examining how profiles are processed, 294

opening and loading workflows, 288-289

tracking CallExternalMethod activities, 292

tracking HandleExternalEvent activities, 290-291

tracking workflow level events, 289-290

uploading profiles to database and running, 293

uploading, 301-302

TrackingRecords, 285

TrackingService, 285

transactions, 363

TransactionScope, 344

TransactionScope activity, 365

TransactionWorkflow

modeling, 364-365

performing preliminary setup, 363

running SQL script to create TestTransaction database, 365

TransientWorkflow property, Dynamic Update, 320

transitions, state transitions, 176

transparency, improving in workflows, 57

U

UI, updating, 177-178

uncommenting, UserTrackingRecords query code, 302-303

Uninitialize method, overriding in basic custom queued activities, 492

UnSubscribe handler, implementing CustomerEventDrivenActivity, 518

UntilCondition event, 355

UntilCondition property, 254

UpdateControls method, 171

updates, dynamic updates, 34-36

updating

ChildActivityContinuation handler, 534

ChildActivityContinuation handler to check for early, 543

clients to invoke new methods, WCF workflows, 442

code-beside, for roles, 313-314

Customer activity to retrieve information from databases, 462-464

customer activity to receive input, 460

CustomerState object, CustomerQueuedFromTypedService, 510

escalation forms

implementing MoreInfo method in basic order forms, 129-130

implementing new interface members, 128-129

EventDriven activities, state machine workflows, 153-159

ExceptionWorkflow, 350-351

Execute method, to process multiple children, 533

form code-behind logic to work with StateMachineWorkflowInstance members, 170-178

forms, state machine workflows, 170

GetCustomerCalledFromActivity method, 511

GetCustomerOnWorkerThread, 511

host forms, Replicator workflow, 210-212

hosts

CustomerQueuedFromTypedService, 513

for roles, 311-312

to pass in OrderAmount, 465

to use new services (CustomerQueuedFromServiceActivity), 503-504

hosts to run multiple workflows, scheduling service projects, 380

hosts to send data to queues, basic custom queued activities, 492

hosts to use ManualWorkflowSchedulerService, 381-382

running, 382-383

hosts via configuration, building hosts from scratch, 87-89

local services, escalation workflow, 120-122

member variables, for roles, 312

Replicator workflow, to run in parallel, 215-216

rules dynamically, 327-328

UI, 177-178

workflow for roles, 312

workflow code-beside file, 127-128

workflow midflight, EventHandlingScope, 231

workflow model for roles, 313

workflows

connecting to WCF endpoints from WF, 445-448

GeneralControlFlow activities, 568

uploading

profiles to database, TrackingProfile, 293

rules to external databases, external RuleSet application, 273-274

TrackingProfiles, 301-302

user tracking data, adding to workflow, 299

users, adding to ASP.NET role providers, 310-311

UserTrackingRecords

adding user tracking data, 299

uncommenting, 302-303

V

Validate method, overriding in GeneralControlFlow activity, 557-558

validating child activities, GeneralControlFlow activity, 559-560

validation

removing GeneralControlFlowBranch validation, 567

testing in GeneralControlFlow activity, 561

Value, 429

variable declarations, adding to CAG projects, 244

ViewQueues method, updating host forms (Replicator workflow), 210-211

Visual Studio 2005, installing, 44

Visual Studio 2008, installing, 45

Visual Studio debugger, configuring to not trap CLR exceptions, 349-350

Visual Studio SharePoint workflow, 40

.vscontent file, 480

.vsi files, 480-481

W

WCA.exe, 233-234

WCF (Windows Communication Foundation), 14, 424

ABCs of WCF, 426

bindings, 426-427

connecting endpoints from WF, 445

console application clients, 434

adding client code to call the service, 436-437

adding service references to WCF hosts, 434-435

generated files, 435

running, 437

ConsoleApplicationWcfWorkflowHost, 443

retrieving WorkflowRuntime, 443-444

running, 444

ContractsAndWorkflows, 427

App.config file, 430-431

modeling workflow, 429

Receive activity, 428-429

reviewing interfaces, 427-428

creating solutions, 425-426

endpoints and hosts, 431

running, 433

starting, pausing and closing, 432-433

WorkflowServiceHost, 432

overview, 421-422

Send activity, configuring, 446-447

WF and, 36-37

integration, 37-38

overview, 422-424

workflows

modifying interfaces, 438

rebuilding client proxies, 441-442

Receive activity, 438-441

updating clients to invoke new methods, 442

WCF hosting, 423

web forms, creating with ASP.NET, 415-416

web services, 398

calling from workflows, 404

creating dependency properties, 404

InvokeWebService activity, 405

modeling workflows, 404-405

running, 406

configuring

IfElse activity, 401

WebServiceInput activity, 400-401

WebServiceOutput activity, 402-403

creating interfaces to produce WSDL, 399

dependency properties, 398

modeling and publishing workflows, 399

publishing workflows as, 403

Web.config file, 411

WebServiceFault activity, 407-409

WebServiceInput activity, 18, 398

configuring, 400-401

WebServiceInvokeActivity.WebServiceProxy property, 412

WebServiceOutput activity, 18, 398

configuring, 402-403

WebServiceProxy property, 413

WebWorkflowRole, 307-308

WF, 14

activities, 16-18

benefits of, 1, 2

conditional rules, 26-27

connecting to WCF endpoints from, 445

updating workflows, 445-448

overview, 14-15

RuleSet, 27-28

SharePoint, 15

tracking, 143

WCF and, 36-37

integration, 37-38

overview, 422-424

workflow designer, 16-18

WF (Windows Workflow Foundation), 13

WF RuleSet, 257

WF runtime, adding to forms/hosts, 109-112

While activity, 17, 203

sequential processing

adding code-beside, 213-215

modeling workflow, 213

Windows Cardspace, 14

Windows Communication Foundation, 14, 421

Windows Forms host, 108

adding controls to, 109

adding WF runtime to, 109-112

creating workflow instances and raising initial events, 112-113

implementing local service, 113-116

running the project, 116

Windows Forms projects, creating (host-workflow data exchange), 95-96

Windows Presentation Foundation, 14

Windows Workflow Foundation, 13

wizards, Publish as Web Service Wizard, 410

workflow

adding CAG to, 245-246

adding custom activities to, 459-460

BPMS (business process management system), 13

calling web services from, 404

CancellationWorkflow, 355

code-only workflow, 63-64

CompensationWorkflow

adding Compensate activity to fault handlers, 361-362

adding compensation handlers, 359-360

adding FaultHandlers, 361

modeling, 359

moving Throw activity into CompensatableSequence, 362

performing preliminary setup, 358

registering SQL persistence service, 358-359

concurrent approval workflow, 191-196

adding activities, 197-198

adding total order validation, 199

configuring CallExternalMethod activity for, 193, 196

configuring HandleExternalMethod activity for, 194, 197

running, 200

configuring to use external rules, external RuleSet, 276-277

creating for host-workflow data exchange, 99-101

creating workflow projects, 47-49

adding activities to, 49-51

debugging, 52-53

pausing the host, 51-52

data-driven workflow, 243

DefaultWorkflowSchedulerService, running, 381

Delay activity, 34-35

DynamicUpdateFromInside, running, 323-324

DynamicUpdateFromOutside, running, 326

enhancing workflow projects, 53

adding and removing activities, 54

adding rule conditions, 54

configuring Code activities, 55-56

escalation workflow, 120

EventHandlingScope

configuring event handling activities, 224

configuring sequential activities, 223

placing activities on event handlers section, 221-223

placing activities on sequential section, 220-221

running, 225

strongly typed activities, 234-237

XAML, 225-226

EventHandlingScope (advanced), 226

adding activities to event handlers view, 227

adding activities to sequential view, 227

adding code-beside for Replicator activities, 230-231

adding code-beside to update workflow, 231-232

configuring activities in event handlers view, 229

configuring activities in sequential view, 228

preparatory setup, 230

running, 232-233

expense report workflow (sample), 10, 12

human workflow, 12

improving transparency, 57

integration-centric workflow systems, 12

modeling

ContractsAndWorkflows (WCF), 429

While activity for sequential processing, 213

overview, 10

passing parameters to, 58-60

preparing to use external rules, external RuleSet, 275-276

Replicator workflow, 215

adding member variables to, 204-205

configuring activities, 206-210

placing activities on, 205

running, 212-213

updating host forms, 210-212

retrieving from persistence, 135-137

RuleSet, running, 263-264

running

CustomerEventDrivenActivity, 521-522

CustomerQueuedFromServiceActivity, 504

running external rules, external RuleSet, 277

segmentations, 12

sequential workflows, 243

SharePoint workflow, 38

overview, 38-39

SharePoint Designer, 41

Visual Studio, 40

state machine workflow, 243

TransactionWorkflow, 363

updating

GeneralControlFlow activities, 568

for roles, 312

WCF

modifying interfaces, 438

rebuilding client proxies, 441-442

Receive activity, 438-441

updating clients to invoke New method, 442

with CheckCredit activities, running, 467

WorkflowRuntimeService, 375

XAML, 33-34

examining, 65-66

XAML + code, running, 66

XAML + code workflow, 64

adding and configuring activities, 64-65

XAML-only workflow, 66-67

calling from host, 68-69

modeling and preparing for execution, 67-68

workflow code-beside files, updating, 127-128

workflow designer, 16-18

workflow events, sample application, 372

running AdvancedHostingForms project, 372-374

workflow instances, creating for Windows Forms host, 112-113

workflow level events, tracking, 289-290

workflow model, updating for roles, 313

Workflow Monitor (sample), 25

workflow projects

adding activities to, 49-51

creating, 47-49

host-workflow data exchange, 95

debugging, 52-53

enhancing, 53

adding and removing activities, 54

adding rule conditions, 54

configuring Code activities, 55-56

improving transparency, 57

passing parameters, 58-60

pausing the host, 51-52

workflow queuing service, 378-379

workflow styles, 19

CAG (ConditionedActivityGroup) activity, 22-23

sequential workflow, 19-20

state machine workflow, 20-21

workflow-level FaultHandlers, adding, 345-347

WorkflowAborted, 370

WorkflowChanges, Dynamic Update, 320

WorkflowChanges.TransientWorkflow.Activities.Insert method, 322

WorkflowCompleted, 370

WorkflowCompleted handler, 444

WorkflowCreated, 370

WorkflowIdled, 370

WorkflowInstance

ASP.NET hosting, 416-417

Dynamic Update, 321

WorkflowLoaded, 371

WorkflowLoaderService, 377

WorkflowMarkupSerializer, 336

WorkflowMonitor SDK sample, running, 141

downloading and installing WorkflowMonitor, 141-143

WorkflowQueue, 484-485

WorkflowQueuingService, 378-379

WorkflowResumed, 371

WorkflowRoleCollection, 307

WorkflowRuntime, 24, 111

ASP.NET hosting, 414-415

retrieving in ConsoleApplicationWcfWorkflowHost, 443-444

WorkflowRuntime events, 370-371

WorkflowRuntimeService, 375

workflows

ManualWorkflowSchedulerService, 382

parallel workflows, running, 183-184

running

building hosts from scratch, 86-87

TrackingProfile, 293

running with data coming from databases, 464

simple workflows, creating, 75

TrackingProfiles, running, 297-298

WorkflowServiceHost, 432, 442

WorkflowsProject, creating74

WorkflowStarted, 371

WorkflowSuspended, 371

WorkflowTerminated, 371

WorkflowUnloaded, 371

WPF (Windows Presentation Foundation), 14

WSDL, creating interfaces to produce, 399

X

XAML, 33-34

dynamic update, 36

EventHandlingScope workflow, 225-226

XAML + code workflow, 64

activities, adding and configuring, 64-65

running, 66

XAML workflow, examining, 65-66

XAML-only workflow, 66-67

calling from host, 68-69

modeling and preparing for execution, 67-68

Y-Z

YearlySales rule, adding, 262-263

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
3.12.41.179