承接MOSS各种工作流开发 联系人:王先生.电话:18618405729QQ:252385878 QQ群:41696750 MSN:wanghao-3@hotmail.com

导航

实现无人值守流程审批管理

你想实现,不登陆网站就能审批文件?你想实现不用去公司就可以 解决自己的审批任务?
我可以给你一个 很好的思路。
我们可以很好的利用手机短信的业务来实现事件通过Ws回调,
只需要一个短信 就能实现你的审批 或者拒绝

大家可以举一反三 我只是告诉大家可以这样做

如图:
下面这个列子就是现实一个 无人值守的审批
代码实现如下:



上面是我的截图
下面是代码

using System;
using System.Collections;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Workflow;
using System.Data;

namespace SPWorkflowTaskDemo
{
    class Program
    {
        static void Main(string[] args)
        {
            try
            {
                SPSite site = null;
                SPSecurity.RunWithElevatedPrivileges(delegate()
                {
                    site = new SPSite(@"http://lh-vmpc:6060/");
                    SPWeb web = site.OpenWeb();
                    web.AllowUnsafeUpdates = true;
                    site.AllowUnsafeUpdates = true;
                    SPList lists = web.Lists["申请列表"];
                    SPWorkflowManager manager = site.WorkflowManager;

                    SPWorkflowTaskCollection tasks = lists.Items[lists.Items.Count - 1].Workflows[0].Tasks;
                    int index = tasks.Count - 1;
                    //foreach (SPField field in tasks[index].Fields)
                    //{

                    //    Console.WriteLine("name:{0}---Value:{1}", field.InternalName, tasks[index][field.InternalName]);

                    //}

                    tasks[index]["Status"] = "批准";
                    tasks[index]["Completed"] = "True";
                    tasks[index]["PercentComplete"] = 1;
                    tasks[index]["WorkflowOutcome"] = "批准";
                    tasks[index].Properties[SPBuiltInFieldId.Comment] = "批准";
                    tasks[index].Properties["ows_TaskStatus"] = "@";
                    Hashtable ht = new Hashtable();
                    ht.Add("Status", "已完成");
                    ht.Add("Completed", true);
                    ht.Add("ows_TaskStatus", "#");
                    ht.Add("WorkflowOutcome", "OK");
                    SPWorkflowTask.AlterTask(tasks[index], ht, true);
                    tasks[index].Update();

                    web.Close();
                    web.Dispose();
                    site.Close();

                    site.Dispose();
                });
            }
            catch (Exception e)
            {
                Console.WriteLine(e.ToString());
            }

 

  代码没有什么实际的价值,只是希望大家可以在其中学习一些东西,

posted on 2007-09-27 15:28  A A  阅读(3313)  评论(10编辑  收藏  举报