C#
exception-handling block in, 83
modifying tracking profiles with, 180–181
tracking profile in, 176–177
web resource for, 25
CallExternalMethod activity
selecting .NET interfaces for, 87–88
using, 126
using with ASP.NET page flow engine, 324
CallExternalMethod communication activity, using, 107–110
Cancellation & Error report
tabs in, 368
troubleshooting workflows with, 392
cancellation handlers, using, 82, 302
CardSpace, role in .NET Framework 3.0, 14
catch blocks, relationship to fault handlers, 300
CDATA block, using with XAML workflow, 63
chaining options for rules
explicit chaining, 234
full chaining, 229–234
sequential (nonchained) chaining, 234
CheckQueue method, using with e-mail activity, 217
/checktypes[+|-] option in wcf.exe, description of, 49
child activity
allowing execution of, 138
creating instances of, 137
Choose Toolbox Items dialog box, tabs in, 79
class metadata workflow code sample, 63
classes
creating for activities, 152–153
splitting in code-beside model, 64–65
CLR (Common Language Runtime), relationship to WorkflowRuntime class, 92
Code activity.
See also activities
adding to web service called inside workflow, 338–339
placing in ifElseBranchActivity2 branch, 29
renaming in HelloWorld, 23, 29
using, 126–127
using in code-only workflow, 65–66
code conditions
advantage of rules over, 227
relationship to rules, 222
using with activities, 226–227
code listings.
See also syntax
activity (HelloWorldActivity), 144
Activity class, 36–38
activity designer custom theme class, 150–151
ActivityExecutionContext class metadata, 206
ASP.NET web service, 345–346
batch service class customization, 190
binding for activity property, 148
BizTalk schema map, 55
Boolean expression added to HaveFirstName method, 28–29
CallExternalMethod activity syntax, 126
class metadata workflow, 63
code conditions, 222
CodeActivity instance for dynamic update, 277
code-behind for communication service, 122
code-beside class for ASP.NET page flow engine, 330
code-only workflow, 65–66
college application communication service workflow, 114–115
communication contract, 350–351
communication contract implemented as .NET interface, 112
communication interface for correlation, 121
communication plumbing for page flow engine, 324
communication service, 113
communication service for page flow engine, 326
communication service implementation, 121–122
CompensatableSequence activity syntax, 127
CompensatableTransactionScope activity, 128–129
Compensate activity syntax, 127
CompensationHandler activity syntax, 127
CompiledAssembly property, 71
CreateWorkflow method used with rules, 247–248
CreateWorkflow method with Type instance, 94
data event arguments class for college application communication service, 112–113
database created for tracking service, 182
debugging workflows, 307–308
declarative rule conditions, 223
DefaultWorkflowSchedulerService,165
dependency properties, 147
DesignSerializer attribute, 68
Dictionary<string, object> collection for HelloWorld, 26
dynamic update from within workflow, 276
e-mail activity, 214–215, 216–217
EmailTrackingChannel class, 200–201
endpoint in App.config or Web.config file, 348
EnrollmentApproved, 116–117
EnrollmentRejected event and wca.exe, 118–119
EnsureSaved method for workflow designer hosting, 286
event handler for workflow designer hosting, 286–287
exception handler, 296
exception throwing, 295
exception-handling block in C#, 83
Execute method of WaitForEmailActivity, 217–218
explicit chaining, 233–234
ExternalDataEventArgs class, 105–106
ExternalDataExchangeAttribute, 105
ExternalDataExchangeService instance with AddService method, 104
feature.xml file for SharePoint, 380–381
file persistence service, 191–196
FileWorkflowPersistenceService, 191–197
ForEachActivity class, 207–209
full chaining options for rules, 229
GetAllServices method, 95
GetService method used with runtime service, 95
GetWorkflowDefinition method of WorkflowInstance class, 274
Global.asax with Application_Start and Application_End event handlers, 321
HelloWorld with comment, 30
HelloWorldActivity, 144
hosting workflow designer Windows Forms fields and constructor, 283–284
IEventActivity interface, 211
IfElse activity method, 28
InitializeComponent method generated by workf-low compiler, 64
Initialized event for Replicator activity, 385
install.bat file added to SharePoint for Visual Basic, 382–383
InvokeWorkflowActivity instance for dynamic update, 274–275
IWebService interface, 341
layout data loaded from filesystem, 292
ListView control for workflow designer hosting, 284–285
local communication via .NET interface, 40
ManualWorkflowSchedulerService, 166, 320
message in console for HelloWorld, 26
message retrieved from dictionary, 26
MethodInvoking event handler, 385
MyActivityToolboxItem class, 154–155
MyWorkflow class and x:Class attribute, 65
.NET code behind workflow, 21–22
parameters for workflow communication, 102–103
partial keyword, 65
PatientRecord class for web service, 336
PendingWorkItem class, 196–197
PersistOnClose attribute, 172
Program.cs file for HelloWorld project, 24–25
property promotion for DependencyProperty, 109
RemoveService method for workflow runtime, 95
RequestEnrollmentStatus class, 115–116
rule sets, 224
RuleConditionDialog UI, 237
RuleDefinitions object serialization, 242–244
RuleInvoke chaining, 233
RuleRead chaining, 231
rules updated dynamically, 248–249
rules XML file for FreeShipping rule, 45–46
RuleSetDialog class, 238
RuleWrite chaining, 231–232
runtime classes enabled in host application, 94
runtime event handling, 97–98
save and close methods for workflow designer hosting, 287
scheduler for web service, 343
serialization, 66–67
shopping cart workflow application, 264–265
shopping cart workflow Windows Forms application, 266–270
SQL tracking query, 185
SQL tracking service added to workflow runtime, 51
SqlWorkflowPersistenceService, 171
state-machine workflow, 290–291
StateMachineWorkflowInstance class, 260
TerminationTrackingService, 188
ThankYou.aspx for ASP.NET page flow engine, 330
throwing faults, 303
ToolboxItemAttribute,79
ToolboxItemAttribute for college application communication service, 115–116
trace sources, 312
trace switch, 310
tracing, 308
tracking profile in C#, 176–177
tracking profile in XML, 42, 177–178
tracking profile serialization, 178
tracking query, 185
tracking service instance of service class, 183
TrackingService, 198–200
TransactionScope activity, 128–129
UpdateTrackingProfile procedure, 184
WaitForEmailService, 213–214
wca.exe data-exchange service, 117–119
WCF service contract, 347
web service called inside workflow, 335
Web.config file for WorkflowRuntime class, 322
WebServiceInputActivity class, 152
wfc.exe compiler, 68–69
work batch service, 166–167
workflow communication contract, 350
workflow compilation with wfc.exe, 68
workflow definition class for workflow communication, 103
workflow host code for communication service, 123
workflow host for college application communication service, 111–112
workflow host for faults, 297–298
workflow loader service, 202
workflow queue, 212
workflow runtime for web service, 344
workflow runtime service class customization, 203
workflow with code, 9
Workflow1.designer.cs file contents, 73–74
WorkflowCompiler class, 70
WorkflowCompleted event handler, 345
WorkflowDesignerLoader class in designer API, 279–280
WorkflowHelper class, 329
WorkflowHelper class for page flow engine, 326–328
WorkflowHostService, 352–353
WorkflowQueue class, 211
WorkflowRuntime class reference, 92
WorkflowSchedulerService, 190
workflow.xml file for SharePoint, 381
WriteFileActivity class, 153–154
WriteFileActivityDesigner class implementation, 155–156
WriteFileActivityDesigner class skeleton, 155
WriteFileActivityDesignerTheme class, 157
WriteFileActivityValidator class, 158–159
XAML (Extensible Application Markup Language), 13
XAML workflow, 62
x:Class attribute and MyWorkflow class, 65
XML rental rules, 245–246
XML structure for form, 388
XmlWriter instance for database, 292
CodeActivity instance for dynamic update code sample, 277
code-beside class
for exposing workflows as web services, 340
using with ASP.NET page flow engine, 330
for web service called inside workflow, 337–338
code-beside model
using, 64–66
using with HelloWorld project, 21
using with iterative activities, 210
CodeDom
comparison classes of, 240–241
expression classes of, 239
relationship to rules, 238–241
code-only model, using, 65–66
Collect Feedback workflow in SharePoint, description of, 362–363
Collect Signatures workflow in SharePoint, description of, 363
college application college application communication service, 110–115
expanding, 115–117
college application communication service, 110–115
command-line utilities
wca.exe data-exchange service, 48
wfc.exe compiler, 48
comments
adding to HelloWorld project, 30
obtaining with Collect Feedback workflow, 362–363
commit batch services, maintaining integrity with, 41
Commit method, using with work batch services, 166–167
Common Language Runtime (CLR), relationship to WorkflowRuntime class, 92
communication. See workflow communication
communication activities.
See also activities
CallExernalMethod, 107–110
customizing, 115–117
generating, 117–119
HandleExternalEvent, 110
Listen and EventDriven, 110
communication contract code sample, 350–351
communication contracts
defining, 104
implementing as .NET interface, 112
communication plumbing for page flow code, 324
communication service interface
implementing for page flow engine, 326
using CorrelationAliasAttribute with, 121
using CorrelationIntializerAttribute with, 120
using CorrelationParameterAttribute with, 120
comparison classes of CodeDom, descriptions of, 240–241
CompensatableSequence activity, using, 127–128
CompensatableTransactionScope activity, using, 128–129
Compensate activity, using, 127–128
compensation logic, initiating, 128
CompensationHandler activity, using, 127–128
compilation
performing with wfc.exe, 68–70
performing with WorkflowCompiler class, 70–71
steps for, 71
CompiledAssembly property, exposing, 71
CompletedScope table, using with SqlWorkflow- PersistenceService, 170
composite activities, explanation of, 125
CompositeActivity class, using, 146
CompositeActivityMarkupSerializer class, description of, 67
condition, providing for IfElse activity, 28
Condition property
expanding for HelloWorld, 29
using with IfElseBranch activity, 133–134
conditional code, using with DynamicUpdate- Condition property, 277
conditional expressions, specifying, 226–227
conditional logic flow, activities for, 133–134
ConditionedActivityGroup activity
using, 130
using activity rules with, 226–227
conditions, defining in SharePoint Designer 2007, 378
configuration errors, checking at design time, 86
configuration files, examples of, 50–51
connected systems. See WCF (Windows Communication Foundation)
consistent property, role in ACID transactions, 41
console application, creating for HelloWorld project, 24–27
content, managing expired content, 364–365
content types, associating workflows to, 369
context menu, using with state machine workflow designer, 257–258
controller in MVC pattern, description of, 323
correlation
example of, 121–124
process of, 119
correlation parameter, using, 124
CorrelationAliasAttribute, using with communication service interface, 121
CorrelationInitializerAttribute, using with communication service interface, 120
CorrelationParameterAttribute, using with communication service definition interface, 120–121
counter data, capturing with Performance Monitor, 315
createMessage property, using in HelloWorld project, 23
createMessage2 activity, using with HelloWorld, 29
CreateWorkflow method
calling, 99
calling to start workflow instances, 94
code sample, 247–248
passing parameters to, 102
CurrentState property, using, 261
CurrentStateName property, using, 261
custom workflows
debugging in SharePoint, 391–392
deploying and configuring to SharePoint, 390–391