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
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
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
FaultHandlers, 345
tracking, 290-291
HandleExternalMethod, 101-102
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
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
StateMachineWorkflowActivity, 149
SynchronizationScope, 185-186
WebServiceFault, 407-409
configuring, 409
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
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
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 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
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
for Replicator workflow, 207
Thread.Sleep statements, 383
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
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
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
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
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
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
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
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
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
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
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
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
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
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
.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
OnActivityExecutionContextLoad, 570
OnActivityExecutionContextUnload, 570
OnCreateNewBranch method, GeneralControlFlow activity, 552
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
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
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
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
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
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
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
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
state introspection, 159-160
StateMachineWorkflowInstance and state introspection, 165
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
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
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
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
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
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
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
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
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
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
WorkflowsProject, creating74
WorkflowStarted, 371
WorkflowSuspended, 371
WorkflowTerminated, 371
WorkflowUnloaded, 371
WPF (Windows Presentation Foundation), 14
WSDL, creating interfaces to produce, 399
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
YearlySales rule, adding, 262-263
3.12.41.179