概述
Create and Prepare Project
1. Open Visual Studio 2010 from the Start | Programs | Visual Studio 2010 menu.
2. Create a new project by using File | New Project .
3. Pick the SharePoint | 2010 templates.
4. From the SharePoint | 2010 templates select the Empty Project template.
5. Use SPDWorkflowDemo as the name.
6. Set the location to be C:/SPHOLs .
7. Press OK to create the project .
8. When the SharePoint Customization Wizard dialog appears, select Deploy as a farm solution, and press Finish .
Task 2: Create a new Workflow Activity for use by the Reusable Workflow
1. Right-click on the SPDWorkflowDemo solution in the Solution Explorer and select Add | New Project .
2. Under the Visual C# | Workflow project templates, select the Workflow Activity Library template.
3. Name the project SPDActivityDemo and press OK to add the project to the SPDWorkflowDemo solution.
4. Right-click on the SPActivityDemo project in the Solution Explorer and select Add Reference .
5. Under the .Browse tab, browse to C:/Program Files/Common Files/Microsoft Shared/Web Server Extensions/14/ISAPI and select both Microsoft.SharePoint.dll and Microsoft.SharePoint.WorkflowActions.dll.
6. Press OK to add these two references to the SPDActivityDemo project.
7. Right-click on the Activity1.cs (under the SPActivityDemo project in the Solution Explorer) and select rename.
8. Rename the file CreateDocumentLibrary.cs .
9. Select Yes when the Microsoft Visual Studio dialog appears to allow Visual Studio to re-factor the code .
Task 3: Add code to create a document library based on parameters passed to our activity.
1. Right-click on the CreateDocumentLibrary.cs activity and select View Code .
2. Change the CreateDocumentLibrary base class from SeqeuenceActivity to : Activity
public partial class CreateDocumentLibrary: Activity
3. Add the following using statements to the activity:
using Microsoft.SharePoint;
using Microsoft.SharePoint.Workflow;
using Microsoft.SharePoint.WorkflowActions;
4. Add a new DependencyProperty to the CreateDocumentLibrary class named UrlProperty of type string . (Hint – type wdp inside of the class definition and then tab twice – this will create the DependencyProperty using the built-in Workflow Dependency Property snippet )
This will be the location where the document library will be created.
public static DependencyProperty UrlProperty = DependencyProperty.Register( "Url" , typeof ( string ), typeof (CreateDocumentLibrary));
[DescriptionAttribute( "Url of base site" )]
[CategoryAttribute( "Input Property" )]
[BrowsableAttribute( true )]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
[ValidationOption(ValidationOption.Required)]
public string Url
{
get
{
return (( string )( base .GetValue(CreateDocumentLibrary.UrlProperty)));
}
set
{
base .SetValue(CreateDocumentLibrary.UrlProperty, value );
}
}
5. Add a new DependencyProperty of type string to the activity named DocLibNameProperty .
This will be the name of the document library created by the activity.
public static DependencyProperty DocLibNameProperty = DependencyProperty.Register( "DocLibName" , typeof(string), typeof(CreateDocumentLibrary));
[DescriptionAttribute( "Used as doc lib name" )]
[CategoryAttribute( "Input Property" )]
[BrowsableAttribute(true)]
[DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Visible)]
[ValidationOption(ValidationOption.Required)]
public string DocLibName
{
get
{
return ((string)(base.GetValue(CreateDocumentLibrary.DocLibNameProperty)));
}
set
{
base.SetValue(CreateDocumentLibrary.DocLibNameProperty, value);
}
}
6. Add the following code inside of the CreateDocumentLibrary class:
protected override ActivityExecutionStatus Execute(ActivityExecutionContext executionContext)
{
CreateDocLib();
return ActivityExecutionStatus.Closed;
}
private void CreateDocLib()
{
using (SPSite sps = new SPSite(Url))
{
using (SPWeb spw = sps.RootWeb)
{
Guid ID = spw.Lists.Add(DocLibName, DocLibName + " Document Library" , SPListTemplateType.DocumentLibrary);
SPList spdl = spw.Lists[ID];
spdl.OnQuickLaunch = true ;
spdl.Update();
}
}
}
Task 4: Configure activity for deployment.
1. To deploy the assembly to the GAC with your SharePoint project you need to configure the project to have a strong-name.
2. Right-click on the SPActivityDemo project and select Properties.
3. Click on the Signing tab in the properties page.
4. Select New under the Choose a strong name key file text from the combo box.
5. Type key as the Key file name value, uncheck Protect my key file with a password and press OK .
6. Build your project (CTRL-SHIFT-B or use Build | Build Solution ) and fix any errors.
7. Right click on the SPDWorkflowDemo project and click Add | SharePoint Mapped Folder .
8. Browse to Template/1033/Workflow and select OK to add the mapped folder to the SPWorkflowDemo
9. Right-click on the SPDWorkflowDemo folder in the Solution Explorer (under the Workflow folder).
10. Right-click on the Workflow folder and select Add | New Item .
11. Select XML File from the list of Installed Templates, name the file SPDActivityDemo.ACTIONS¸ and select OK to add the file.
12. Replace the contents of SPDActivityDemo.ACTIONS with the following XML
< WorkflowInfo >
< Actions Sequential = " then " Parallel = " and " >
< Action Name = " Create Document Library "
ClassName = " SPDActivityDemo.CreateDocumentLibrary "
Assembly = " SPDActivityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1a4a7a2c3215a71b "
AppliesTo = " all "
Category = " Labs " >
< RuleDesigner Sentence = " Document Library Name %1 to site %2. " >
< FieldBind Field = " DocLibName " Text = " Document Library Name "
DesignerType = " TextArea " Id = " 1 " />
< FieldBind Field = " Url " Text = " Url of base site " Id = " 2 "
DesignerType = " TextArea " />
</ RuleDesigner >
< Parameters >
< Parameter Name = " DocLibName " Type = " System.String, mscorlib "
Direction = " In " />
< Parameter Name = " Url " Type = " System.String, mscorlib "
Direction = " In " />
</ Parameters >
</ Action >
</ Actions >
</ WorkflowInfo >
10. IMPORTANT – Update the PublicKeyToken within the .ACTIONS file with the public key token from SPDActivityDemo.dll . Do not use the PublicKeyToken in this example. Ensure you generate your own.
11. To find the PublicKeyToken start a Visual Studio 2010 Command Prompt from the Start | All Programs | Visual Studio 2010 | Visual Studio Tools |Visual Studio Command Prompt (2010) menu
12. Type the following command:
sn -tc:/SPHOLS/SPDWorkflowDemo/SPDActivityDemo/bin/Debug/SPDActivityDemo.dll | clip
13. In the of SPDActivityDemo.ACTIONS file highlight the value of the PublicKeyToken ("1a4a7a2c3215a71b") and paste (CTRL-V).
14. Remove all the pasted text except the value of your public key. Make sure there are no extra spaces or line feed characters after the public key token (the quote needs to be next to the value of the public key token).
15. Highlight the whole value of the Assembly attribute and copy that value to the clipboard (CTRL-C).
Task 5: Add the SPDActivityDemo activity to be deployed with SPDWorkflowDemo.
1. In the Solution Explorer, under the SPDWorkflowDemo project, double-click on Package folder
2. In the Package designer click on Advanced (at the bottom of the designer in the middle pane).
3. Click on the Add button.
4. Click on the ellipses button in the Add Custom Assembly dialog. Browse to the SPDActivityDemo.dll file (C:/SPHOLS/SPDWorkflowDemo/SPDActivityDemo/bin/debug ).
5. Within Safe Controls add the following:
Assembly Name: SPDActivityDemo, Version=1.0.0.0, Culture=neutral, PublicKeyToken=YOURPUBLICKEY – ensure you use a Public Key Token you generated using the sn.exe utility. (Hint – you can paste the value you copied to the clipboard in the last step here).
Name Space: SPDActivityDemo
Safe: Checked
Type Name : *
6. Select OK to add the assembly as part of the SharePoint project deployment package.
Task 6: Configure a Feature using Feature Designer
1. Right-click on SPDWorkflowDemo project Features folder and select Add Feature .
2. Right-click on the Feature1 node and select Rename . Rename it to SPDWorkflowDemoFeature .
3. In the Feature designer change the value of the Scope combo box to WebApplication .
4. Change the feature title to SPDWorkflowDemoFeature .
Task 7: Add and code a Event Receiver for the Feature
1. Right-click on the SPDWorkflowDemoFeature in the Solution Explorer and select Add Event Receiver
2. Add a using statement to the top of the code file that appears in the editor:
using Microsoft.SharePoint.Administration;
3. Add the following code to your FeatureReceiver class declaration:
public override void FeatureActivated(SPFeatureReceiverProperties properties)
{
SPWebApplication wappCurrent = (SPWebApplication)properties.Feature.Parent;
SPWebConfigModification modAuthorizedType = new SPWebConfigModification();
modAuthorizedType.Name = "AuthType" ;
modAuthorizedType.Owner = "SPDActivityDemo" ;
modAuthorizedType.Path =
"configuration/System.Workflow.ComponentModel.WorkflowCompiler/authorizedTypes" ;
modAuthorizedType.Type =
SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode;
modAuthorizedType.Value = @"<authorizedType Assembly=""SPDActivityDemo,
Version=1.0.0.0, Culture=neutral, PublicKeyToken=YOURPUBLICKEYTOKEN""
Namespace=""SPDActivityDemo"" TypeName=""*"" Authorized=""True"" />" ;
wappCurrent.WebConfigModifications.Add(modAuthorizedType);
wappCurrent.WebService.ApplyWebConfigModifications();
}
4. Note: You will need to update the YOURPUBLICKEYTOKEN section in the above code with the correct key from the SPDActivityDemo.ACTIONS file.
5. Build and Deploy the SPDWorkflowDemo project by right-clicking on the SPDWorkflowDemo project in the Solution Explorer and select Deploy .
http://sharepointbloggin.com/2010/02/10/walkthrough-3-sharepoint-designer-workflows-imported-to-visual-studio-2010/
最后
以上就是舒服鸵鸟为你收集整理的怎样在Sharepoint 2010中定制开发SharePoint Designer Workflows Activities的全部内容,希望文章能够帮你解决怎样在Sharepoint 2010中定制开发SharePoint Designer Workflows Activities所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复