USE [OATest]
GO
/****** Object:  StoredProcedure [dbo].[xcn]    Script Date: 05/10/2011 09:54:43 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GOALTER proc [dbo].[xcn]
as          
set     nocount     on
IF  EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[dss]') AND type in (N'U'))
DROP TABLE [dbo].[dss]create table #TempRunObject
                        (
                        fkey               varchar(36),
                            FResourceName      nvarchar(2000),
                            FProcessInstName   nvarchar(200),
                            FCreationTime      datetime,
                            FCompleteDateTime  datetime,
                            FState             nvarchar(100),
                            FProcessDefId      varchar(36),
                            FInitiatorID       varchar(36)
                        )
                        insert into #TempRunObject 
                        SELECT a.FKey,WF.FResourceName,a.FProcessInstName,a.FCreationTime,a.FCompleteDateTime,a.FState,a.FProcessDefId,FInitiatorID
FROM T_WF_RunObject a 
INNER JOIN T_WF_defprocess c ON c.FProcessID = a.FProcessDefId
INNER JOIN HRMS_Services HS on c.FServiceID = HS.ID
LEFT JOIN T_WF_RunAssignment WF ON a.FKey = WF.FProcessInstID AND WF.FStatus = 0
WHERE HS.FTopClassID=40 AND a.FObjectType = 'WfProcess'  AND FState ='open.running' 
--AND a.FInitiatorId=@P1 
AND c.FServiceID <> '5FBFC1CB-980B-4EEE-895F-EA403EB8EA51'
AND c.FProcessId NOT IN --一步流程不在“我的申请”中出现
('1D01AB7B-A7CE-4C7E-909C-F72F3987660C', --离退休一步流程
'3A533EBB-AAB7-4246-A6C8-120A0FA2F434', --工辞退一步流程
'6D93CDFD-2847-4A24-A659-906D85D09EE8', --返聘一步流程
'78B8FC89-AA99-40DB-9136-B410CAEAA78A', --在职转不在职
'8412217E-BE71-4060-8CBA-3E7C3ECC54F3', --员工异动一步流程
'8422B345-52AF-4269-ADA9-60CABEBCAC4F', --员工辞职一步流程
'8EF57434-511E-45CB-8C4E-449D89520A00', --职级变动内置流程
'962925A7-6243-47DF-82A6-F2A0B82062E6', --不在职转在职
'98EB6E50-F6AF-4199-BEAE-EAEA989B29F7', --借调调出
'A0676B5B-69F3-44DF-BE8E-AF6409F14254', --销假一步流程
'A464FDA9-E10B-4622-8146-A6D3633EB7CE', --借调调回
'C6CC3A83-A5B2-4A1D-854C-3E7066E08E47', --请假一步流程
'DAD5B618-11E1-4723-A5E9-25CB81397A6C' --转正一步流程
)
                        Order By a.FKey                        Create Clustered index idx_TempRunObject ON #TempRunObject(FKey) DECLARE @FID uniqueidentifier, @FProcessName nvarchar(2000)

                        UPDATE #TempRunObject
SET
@FProcessName = 
(
CASE 
WHEN @FID = FKey
THEN @FProcessName + ';' + ISNULL(FResourceName, '')
ELSE ISNULL(FResourceName, '')
END
),
@FID = FKey,
FResourceName = @FProcessName                         SELECT FKey,MAX(TempResult.FResourceName) AS ProcessName 
                        INTO #TempResut                         
                        FROM #TempRunObject TempResult GROUP BY FKey SELECT  TOP 20 a.FKey AS ID,HS.NAME AS FServiceName,b.Name AS FInitiatorName,a.FCreationTime AS CreatTime,
a.FProcessInstName AS Name,a.FCompleteDateTime,WF.ProcessName,
CASE a.FState
WHEN 'open.not_running.not_started' THEN '未启动'
WHEN 'open.not_running.suspended' THEN '已挂起'
WHEN 'open.running' THEN '运行中'
WHEN 'closed.completed' THEN '完成'
WHEN 'closed.aborted' THEN '已结束'
WHEN 'closed.terminated' THEN '已终止'
END AS LastStatus,a.FProcessDefId,OU.FullName into dss
FROM #TempResut WF
INNER JOIN #TempRunObject a ON a.FKey = WF.FKey AND a.FResourceName = WF.ProcessName
INNER JOIN T_WF_defprocess c on c.FProcessID = a.FProcessDefId
LEFT JOIN HRMS_Services HS on c.FServiceID = HS.ID
                        INNER JOIN HRMS_Users U ON U.ID = a.FInitiatorID
INNER JOIN HM_Employees b on U.FEmpID = b.EM_ID
LEFT JOIN Org_Position_Employee OPE ON b.EM_ID = OPE.EMID AND OPE.IsPrimary = 1
LEFT JOIN Org_Position OP ON OPE.PositionID = OP.ID
LEFT JOIN Org_Unit OU ON OP.UnitID = OU.ID
                        
 ORDER BY FCreationTime DESC 
                          drop table #TempRunObject
                          
                          drop table #TempResutcreate table #shenqing (申请ID uniqueidentifier,申请服务名 varchar(5000),申请创建人 varchar(5000),申请创建时间 datetime,申请名称 varchar(5000),申请结束时间 datetime,当前处理人 varchar(5000),当前状态 varchar(5000),流程实例ID uniqueidentifier,部门全称 varchar(5000))begin
insert into #shenqing(申请ID,申请服务名,申请创建人,申请创建时间,申请名称,申请结束时间,当前处理人,当前状态,流程实例ID,部门全称)
select * from dss
end
select * from #shenqing 
drop table #shenqing
我电脑用的sql 2008  服务器上是 2005 
提示消息 8152,级别 16,状态 13,过程 xcn,第 49 行
将截断字符串或二进制数据。
语句已终止。