2008年5月29日

進入 " Visual Studio 2005 命令提示"

C:\Lotus\Notes>sn -k LotusNotes.snk

C:\Lotus\Notes>sn -p LotusNotes.snk LotusNotesPublic.snk

C:\Lotus\Notes>sn -t LotusNotesPublic.snk

C:\Lotus\Notes>tlbimp domobj.tlb /keyfile:Lotusnotes.snk

Microsoft (R) .NET Framework Type Library to Assembly Converter 2.0.50727.42

Copyright (C) Microsoft Corporation. All rights reserved.

   

Type library imported to Domino.dll

   

再把Domino.dll 拖到Windows\assembly (GAC) 目錄下.實現部署.

   

   

   

網站中要使用Notes 必須在Server 上進行以下權限設置:

  1. Lotus 目錄進行權限設定:

    Domain Users Users 加上寫的權限.

       

       

   

Tlbimp 命令

C:\Lotus>tlbimp

Microsoft (R) .NET Framework Type Library to Assembly Converter 2.0.50727.42

Copyright (C) Microsoft Corporation. All rights reserved.

   

Syntax: TlbImp TypeLibName [Options]

Options:

/out:FileName File name of assembly to be produced

/namespace:Namespace Namespace of the assembly to be produced

/asmversion:Version Version number of the assembly to be produced

/reference:FileName File name of assembly to use to resolve references

/tlbreference:FileName File name of typelib to use to resolve references

/publickey:FileName File containing strong name public key

/keyfile:FileName File containing strong name key pair

/keycontainer:FileName Key container holding strong name key pair

/delaysign Force strong name delay signing

/unsafe Produce interfaces without runtime security checks

/noclassmembers Prevents TlbImp from adding members to classes

/nologo Prevents TlbImp from displaying logo

/silent Suppresses all output except for errors

/verbose Displays extra information

/primary Produce a primary interop assembly

/sysarray Import SAFEARRAY as System.Array

/machine:MachineType Create an assembly for the specified machine type

/transform:TransformName Perform the specified transformation

/strictref Only use assemblies specified using /reference and

registered PIAs

/strictref:nopia Only use assemblies specified using /reference and

ignore PIAs

/? or /help Display this usage message

   

The assembly version must be specified as: Major.Minor.Build.Revision.

   

Multiple reference assemblies can be specified by using the /reference option

multiple times.

   

Supported machine types:

X86

X64

Itanium

Agnostic

   

Supported transforms:

SerializableValueClasses Mark all value classes as serializable

DispRet Apply the [out, retval] parameter transformation

to methods of disp only interfaces

posted @ 2008-05-29 21:18 蓝色飞翔 阅读(758) 评论(0) 编辑
 
  1. 修改Feature.xml . 執行:
    1. 按鼠標右鍵, 選擇"Insert Snippet" -->"Sharepoint Server Workflow"-->"Feature.xml code".

    得到以下內容. 修改其中的標識部分. GUID 可以用"Tools"-->"Create GUID" 來獲取一個新的.

       

    修改後內容如下:

    <?xml version="1.0" encoding="utf-8"?>

    <!-- _lcid="1033" _version="12.0.3111" _dal="1" -->

    <!-- _LocalBinding -->

       

    <!-- Insert Feature.xml Code Snippet here. To do this:

    1) Right click on this page and select "Insert Snippet" (or press Ctrl+K, then X)

    2) Select Snippets->SharePoint Workflow->Feature.xml Code -->

    <Feature Id="{8F474C2D-D062-4a48-871B-D12CA1F7E033}"

    Title="MarketingCampaign Default Title"

    Description="This feature is a workflow that MarketingCampaign"

    Version="12.0.0.0"

    Scope="Site"

    ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"

    ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver"

    xmlns="http://schemas.microsoft.com/sharepoint/">

    <ElementManifests>

    <ElementManifest Location="workflow.xml" />

    </ElementManifests>

    <Properties>

    <Property Key="GloballyAvailable" Value="true" />

       

    <!-- Value for RegisterForms key indicates the path to the forms relative to feature file location -->

    <!-- if you don't have forms, use *.xsn -->

    <Property Key="RegisterForms" Value="*.xsn" />

    </Properties>

    </Feature>

       

       

  2. 修改workflow.xml
    1. 按鼠標右鍵, 選擇"Insert Snippet" -->"Sharepoint Server Workflow"-->"Workflow.xml code".

         

      得到以下內容. 修改其中的標識部分. GUID 可以用"Tools"-->"Create GUID" 來獲取一個新的.

         

         

      修改後內容如下:

         

      <?xml version="1.0" encoding="utf-8" ?>

      <!-- _lcid="1033" _version="12.0.3015" _dal="1" -->

      <!-- _LocalBinding -->

      <!-- Insert Workflow.xml Code Snippet here. To do this:

      1) Right click on this page and select "Insert Snippet" (or press Ctrl+K, then X)

      2) Select Snippets->SharePoint Workflow->Workflow.xml Code -->

         

      <Elements xmlns="http://schemas.microsoft.com/sharepoint/">

      <Workflow

      Name="My MarketingCampaign "

      Description="This workflow ...MarketingCampaign"

      Id="{354A35F1-E4B9-4e1f-B33E-5B4BD7E8A607}"

      CodeBesideClass="MarketingCampaign.MarketingCampaign"

      CodeBesideAssembly="MarketingCampaign, Version=1.0.0.0, Culture=neutral, PublicKeyToken=de22c7d3fb8c503c"

      TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"

      InstantiationUrl="_layouts/IniWrkflIP.aspx"

      ModificationUrl="_layouts/ModWrkflIP.aspx">

      <Categories/>

      <!-- Tags to specify InfoPath forms for the workflow; delete tags for forms that you do not have -->

      <MetaData>

      <Instantiation_FormURN>urn:schemas-microsoft-com:office:infopath:InitForm:-myXSD-2008-05-20T01-19-28</Instantiation_FormURN>

      <Task0_FormURN>urn:schemas-microsoft-com:office:infopath:TaskForm:-myXSD-2008-05-20T01-25-44</Task0_FormURN>

      <StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>

      </MetaData>

      </Workflow>

      </Elements>

  3. 修改Install.bat , 內容如下:

    :: Before running this file, sign the assembly in Project properties

    ::

    :: To customize this file, find and replace

    :: a) "MarketingCampaign" with your own feature name

    :: b) "[IP_FORM_FILENAME]" with InfoPath form that needs to be uploaded (add additional lines for multiple forms)

    :: b) "feature.xml" with the name of your feature.xml file

    :: c) "workflow.xml" with the name of your workflow.xml file

    :: d) "http://localhost" with the name of the site you wish to publish to

    echo Copying the feature...

    rd /s /q "%CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\MarketingCampaign"

    mkdir "%CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\MarketingCampaign"

       

    copy /Y DeploymentFiles\FeatureFiles\feature.xml "%CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\MarketingCampaign\"

    copy /Y DeploymentFiles\FeatureFiles\workflow.xml "%CommonProgramFiles%\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\MarketingCampaign\"

    xcopy /s /Y *.xsn "%programfiles%\Common Files\Microsoft Shared\web server extensions\12\TEMPLATE\FEATURES\MarketingCampaign\"

       

    echo Adding assemblies to the GAC...

    "%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -uf MarketingCampaign

    "%programfiles%\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -if bin\Debug\MarketingCampaign.dll

       

    :: Note: 64-bit alternative to lines above; uncomment these to install on a 64-bit machine

    ::"%programfiles% (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -uf MarketingCampaign

    ::"%programfiles% (x86)\Microsoft Visual Studio 8\SDK\v2.0\Bin\gacutil.exe" -if bin\Debug\MarketingCampaign.dll

       

    echo Verifying InfoPath Forms...

    ::Note: Verify InfoPath forms; copy line for each form

    ::"%programfiles%\common files\microsoft shared\web server extensions\12\bin\stsadm" -o verifyformtemplate -filename [IP_FORM_FILENAME]

    "%programfiles%\common files\microsoft shared\web server extensions\12\bin\stsadm" -o verifyformtemplate -filename InitForm.xsn

    "%programfiles%\common files\microsoft shared\web server extensions\12\bin\stsadm" -o verifyformtemplate -filename TaskForm.xsn

       

    echo Activating the feature...

    pushd %programfiles%\common files\microsoft shared\web server extensions\12\bin

    ::Note: Uncomment these lines if you've modified your deployment xml files or IP forms

    stsadm -o deactivatefeature -filename MarketingCampaign\feature.xml -url http://cmmsgsps03/ -force

    stsadm -o uninstallfeature -filename MarketingCampaign\feature.xml -force

       

    stsadm -o installfeature -filename MarketingCampaign\feature.xml -force

    stsadm -o activatefeature -filename MarketingCampaign\feature.xml -url http://cmmsgsps03/

    echo Doing an iisreset...

    popd

    :: iisreset

    pause

       

  4. 執行Install.bat. OK.

       

       

posted @ 2008-05-29 21:10 蓝色飞翔 阅读(487) 评论(0) 编辑
 
  1. 處理InitForm.xsn:
    1. 選擇VS 的項目路徑.點擊 "OK". 會生成很多文件在指定的路徑下. 其中有一個叫"MySchema.xsd" 的文件, 可修改名稱為"InitForm.xsd"(也可以不修改).

    2. 運行"Visual Studio 2005 Command Prompt";

    3. Cd VS 的項目路徑下. 執行"xsd InitForm.xsd /c ".會生成一個叫"initform.cs" 的文件.
    4. 打開 VS 項目。將initform.cs 加入到項目中.
  2. 工作流編碼.添加工作流中執行代碼. 和執行條件等.

       

    namespace MarketingCampaign

    {

    public sealed partial class MarketingCampaign: SharePointSequentialWorkflowActivity

    {

    public MarketingCampaign()

    {

    InitializeComponent();

    }

    public Guid workflowId = default(System.Guid);

    public Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties workflowProperties = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties();

    public SPWorkflowActivationProperties onWorkflowActivated1_WorkflowProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowActivationProperties();

       

    private string sTrafficCoordinator = default(string);

    private string sMarketingDirectorEMail = default(string);

    private void onWorkflowActivated1_Invoked(object sender, ExternalDataEventArgs e)

    {

    XmlSerializer serializer = new XmlSerializer(typeof(myFields));

    XmlTextReader rdrInitForm = new XmlTextReader(new System.IO.StringReader(onWorkflowActivated1_WorkflowProperties1.InitiationData));

    myFields frmInit = (myFields)serializer.Deserialize(rdrInitForm);

    sTrafficCoordinator = @"ecmms\" + frmInit.trafficcoordinator;

    sMarketingDirectorEMail = frmInit.marketingdirectoremail;

    }

       

    private void SendEmail1_MethodInvoking(object sender, EventArgs e)

    {

    sendEmail1.To = sMarketingDirectorEMail.ToString() + "@cmmsgsps03.ecmms.foxconn";

    string sItemTitle = onWorkflowActivated1_WorkflowProperties1.Item["名稱"].ToString();

    string sItemURL = onWorkflowActivated1_WorkflowProperties1.ItemUrl;

    sendEmail1.Body = string.Format("New Marketing Campaign: {0}. URL:{1}", sItemTitle, sItemURL);

    }

    public Guid createTask1_TaskId1 = default(System.Guid);

    public SPWorkflowTaskProperties createTask1_TaskProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

    private bool taskCompleted;

    private void createTask1_MethodInvoking(object sender, EventArgs e)

    {

    createTask1_TaskId1 = Guid.NewGuid();

    createTask1_TaskProperties1.Title = "New Marketing Campaign";

    createTask1_TaskProperties1.AssignedTo = sTrafficCoordinator;

    string sItemTitle = onWorkflowActivated1_WorkflowProperties1.Item["名稱"].ToString();

    string sItemURL = onWorkflowActivated1_WorkflowProperties1.ItemUrl;

    string sOriginator = onWorkflowActivated1_WorkflowProperties1.Originator;

    createTask1_TaskProperties1.Description = string.Format("New Marketing Campaign: {0}. URL:{1}", sItemTitle, sItemURL);

    createTask1_TaskProperties1.ExtendedProperties["taskinstructions"] = string.Format("Please review this proposed marketing campaign and let {0} know if there are any scheduling issues.Thanks!", sOriginator);

    }

    private void WhileActivity1_condition(object sender, ConditionalEventArgs e)

    {

    e.Result = !taskCompleted;

    }

    private void onTaskChanged1_Invoked(object sender, ExternalDataEventArgs e)

    {

    taskCompleted = bool.Parse(onTaskChanged1_AfterProperties1.ExtendedProperties["taskComplate"].ToString());

    createTask1_TaskProperties1.ExtendedProperties["taskcomments"] = onTaskChanged1_AfterProperties1.ExtendedProperties["taskcomments"].ToString();

    }

    private void updateTask1_MethodInvoking(object sender, EventArgs e)

    { }

    public SPWorkflowTaskProperties onTaskChanged1_AfterProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

    public SPWorkflowTaskProperties onTaskChanged1_BeforeProperties1 = new Microsoft.SharePoint.Workflow.SPWorkflowTaskProperties();

    }

       

       

       

posted @ 2008-05-29 21:10 蓝色飞翔 阅读(367) 评论(1) 编辑
 

   

  1. 設計InitForm.xsn.

    InitForm.xsn 用來啟動工作流. 需要記錄一個相關人員的 賬號 eMail 地址.

    控件:

    TextBox: marketingdirectoremail ; trafficcoordinator.

    Button: submit.

    說明: Submit 用來提交用戶的資料. 要進行兩個動作.

    其中 "使用提交數據連接進行提交: 提交"

    新建連接 [僅提交數據]-->提交到宿主環境. 名稱"提交".

       

    關閉此表單. 不提示.

    設計表單為"域認証""完全認証".

       

  2. TaskForm.xsn , 用於執行 Task .

    控件:

    TextBox: taskinstruction; taskcomments.

    ChechBox: taskComplate. 標識任務是否完成.

    Button: Submit.

       

       

    Submit 的規則同於InitForm.xsn.

       

    數據連接中添加一個Xml 文件.

       

    ItemMetadata.xml 的內容如下:

       

    設置表單為域認証或完全認証.

       

       

  3. 發布InitForm.xsn.
  4. "文件"-->"發布"-->"網絡位置"-->"指定路徑和文件名"-->"Null 置空,刪除文件路徑"

  5. "下一步"-->"發布"-->"關閉".
  6. 發布 TaskForm.xsn 的過程同InitForm.xsn .

       

       

       

posted @ 2008-05-29 21:09 蓝色飞翔 阅读(224) 评论(1) 编辑
 
  1. 建立VS工程, MarketingCampaign 修改 workflow1.cs MarketingCampaign.cs 添加Activity, 如下:

       

  2. Activity 設置屬性, 說明如下:
    1. OnWorkflowActivated1

CorrelationToken

workflowToken

OwnerActivityName

MarketingCampaign

EventName

OnWorkflowActivated

Invoked

onWorkflowActivated1_Invoked

WorkflowProperties

Activity=MarketingCampaign, Path=onWorkflowActivated1_WorkflowProperties1

   

  1. sendEmail1:

CorrelationToken

workflowToken

OwnerActivityName

MarketingCampaign

MethodInvoking

SendEmail1_MethodInvoking

From

MOSSSvFarm103@cmmsgsps03.ecmms.foxconn

Subject

Marketing Campaign Subject

   

  1. CreateTask1

CorrelationToken

Task_Token

OwnerActivityName

MarketingCampaign

Method Name

CreateTask

MethodInvoking

createTask1_MethodInvoking

TaskID (New Filed)

Activity=MarketingCampaign, Path=createTask1_TaskId1

TaskProperties (New Field)

Activity=MarketingCampaign, Path=createTask1_TaskProperties1

  1. WhileActivity1

Condition

Code Condition

Condition

WhileActivity1_condition

  1. sequenceActivity1
  2. onTaskChanged1

CorrelationToken

Task_Token

OwnerActivityName

MarketingCampaign

EventName

OnTaskChanged

Invoked

onTaskChanged1_Invoked

AfterProperties(New Field)

Activity=MarketingCampaign, Path=onTaskChanged1_AfterProperties1

BeforeProperties(New Field)

Activity=MarketingCampaign, Path=onTaskChanged1_BeforeProperties1

TaskId

Activity=MarketingCampaign, Path=createTask1_TaskId1

  1. updateTask1

CorrelationToken

Task_Token

OwnerActivityName

MarketingCampaign

MethodName

UpdateTask

MethodInvoking

updateTask1_MethodInvoking

TaskId

Activity=MarketingCampaign, Path=createTask1_TaskId1

TaskProperties

Activity=MarketingCampaign, Path=createTask1_TaskProperties1

  1. completeTask1

CorrelationToken

Task_Token

OwnerActivityName

MarketingCampaign

TaskId

Activity=MarketingCampaign, Path=createTask1_TaskId1

posted @ 2008-05-29 21:09 蓝色飞翔 阅读(360) 评论(1) 编辑
 

使用WF (VS ) + Infopath 做一個順序流. 記錄Infopath 在工作流中的應用.

主要有以下幾步:

   

  1. 設計工作流;
  2. 設計Infopath;
  3. 編碼;
  4. 部署.

       

    工作流:

       

    1. 接收一個相關的人員的信息(賬號和Email 地址).
    2. Email通知此相關人員, 並分派Task.
    3. 相關人員更新Task. 如已經處理完成. 則完成Task , 結束工作流。如沒有完成。則繼續處理。

       

       

posted @ 2008-05-29 21:08 蓝色飞翔 阅读(257) 评论(2) 编辑
 
  1. Open Admin Site

  2. Open Site,

  3. Click " Provision RMS On this Web Site".
  4.    

  5.    

  6.    

       

       

    下載了RMS ToolKit

    執行以下命令:

       

       

    重新打開RMS admin Site.進行設定:

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

       

posted @ 2008-05-29 21:07 蓝色飞翔 阅读(107) 评论(0) 编辑