


版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、1 功能介绍:工作流系统是以规格化的流程描述作为输入的软件组件 , 它维护流程的运行状态 , 并 在人和应用之间分派活动、最终达到协同多人或服务共同完成工作任务的目的。2 使用过程:工作流系统的使用过程分为三个阶段:设计时、配置时、运行时;设计时阶段需要 完成流程模型设计;配置时阶段需要完成工作流系统运行环境的配置、工作流模型 发布及版本管理等工作;运行时阶段需要负责发起和完成流程实例等工作。U8系统安装完毕后,首先需要进入工作流环境配置模块设置MOM艮务器和工作流引擎信息;配置的信息会通知到对应的 MOM艮务器,使得MOM艮务器感知与其协同工 作的工作流引擎信息。配置时涉及的功能模块及运行时
2、的流程实例管理模块存在于 工作流管理控制台中。环境配置完毕后,可以进行流程模型设计工作。通过流程设计器,设计过程中结合UAP工具中设计出来的业务对象和注册在MOM艮务器上的消息和服务信息,生成流程模型。流程设计器设计出来的流程模型还不能直接投入使用,需要通过重定位模 块对其消息和服务地址信息从设计时环境的地址转化为运行时地址后,才能正式使 用。重定位模块通过“流程发布”动作来完成该动作的。流程模型发布后,业务应用就可通过消息发送接口发送特定类型的消息,消息通过MOM艮务器通知工作流引擎,生成对应的流程实例,在流程实例处理过程中调用业务服务、生成需要人工交互的任务项、并最终协调完成流程实例的处理
3、。流程实例 可以被流程实例管理模块加以管理、修改。3 开发帮助基于新的工作流平台之上的审批流应用,利用UAP的数据引擎、MOM消息发布订阅和消息转发功能来完成审批这一类特殊流程的管理、配置、设计、使用、维护、监视操作。下图是工作流系统使用流程图:工作流系统使用流程图员发开统系务业系统开发过程实施及系统管理过程系统运行使用过程员理管统系流程设计安装配置工作流运 行环境监控工作流实例发布工作流模型员作操块模务业3.1开发与注册服务! *提交人工交互数据查看所参与流程状态在上述流 程涉及到业务系统开发人员的活动中,服务开发、服务注册、预制业务对象、编写 预制运行时活动插件、编写客户端审批提交代码等工
4、作是在业务模块中实现审批功 能都可能涉及的动作。本处服务是指业务部门提供能、为了能满足特定业务功能而实现的组件中的方法; 这些服务可在流程设计过程中运用于流程模型,体现为流程模型中的自动服务。3.2 服务幵发服务幵发无特别约定,服务内部如果需要CallC on text、发起人等工作流系统内置变量信息,可以在流程设计过程中,指定变量-服务传入参数的映射方式来获 得。流程模型内置变量:变量名类型说明ActivityNamestring活动名称StartPerformerstring流程发起人工号Curre ntPerformerstring执行者工号StartTimestring流程发起时间Ac
5、tivityStartTimstrin活动幵始时间egActivityDelaystrin延迟时间gStartPerformerNastrin流程发起人姓名megCurre ntPerformerstrin执行者姓名NamegKeySetstrin人工活动UNDOS口参数gKeySetCalledCo ntextobjec人工活动undOS口参数tCalledCo ntextCallResultstrin人工活动UNDOS口返回值gLog inCon textobjec工作流构造Log in Co ntext对t象3.3 服务注册在工作流模型中,自动活动所调用的服务需要预先注册到MOM艮务器上
6、,注册过程如下:1. 如果MOMt没建立所属子产品功能点,则首先建立该子产品功能点;建立方法:打幵MOM!成工具,在集成目录U8ERPF加入子产品功能点,如下图:2. 在所属子产品功能点的“集成接口”节点上,注册集成接口,如下图:进入注册集成接口界面后,首先设置集成注册码和集成接口名,集成接口注册吗是用于识别该注册服务的,要求在同一子产品节点下注册码惟一。然后需要设置服务调用端点(如果是本地调用,需要考虑调用路径问题!):设置服务路径时可以使用 MOh预置的三个宏变量:%U8SOFT表示 U8安装目录%UFCOMSQ表示 ufcomsql 目录%U8APPSR畅u8应用服务器例如: 注册:D:
7、U8SOFTSAMyLib.DLL 组件,使用宏变量后应该为: %U8SOFT%SAMyLib.DLL自动服务开发中的参数约束1、 所有参数类型必须是基本类型和可SOAP序列化的类型;2、 非基本类型的参数必须部署在GAC中;3、 对于部署在本地的服务,支持ref,out 参数(VB的ByRef同ref);4、对于VB中声明为ByRef的参数,必须是 Variant类型。支持的基本类型包括: "void","string", (对应设计器变量类型 string )"short", (对应设计器变量类型 float )"int
8、", (对应设计器变量类型 int )"long",(对应设计器变量类型int )"double", (对应设计器变量类型 double )"bool",(对应设计器变量类型 bool )"datetime", (对应设计器变量类型 datetime )"object" (对应设计器变量类型 object )时,该服务也需要回滚,则该服务还需要注册对应的Undo接口信息。约定 Undo接口方法名为Un+方法名,参数、返回值同原注册的服务方法一致。为了能正确描述Undo接口,需要在扩展属
9、性中增加3个属性:undo_class :如果是COM就表示为progid,是.Net表示为类的完全限定名undo_type : assembly,comundo_location :当是 .Net 程序的时候表示为程序集的名如下图:服务例代码using System;usi ngusing System.Text;n amespaceEployeeSelfSevicepublicclass Employee/<summary>/申请休假/</summary>/vparamname="EmployeeID"> 员工号 </param>
10、;/vparamname="HolidayType"> 假期类型 </param>3.4 人工活动插件幵发插件必须包含如下三个方法,名称可以不同,但参数必须一致bool UndoAudition( string primBizData, string auditAction, refstring bizdata , object calledCtx, refstring errMsg);bool DoAudition( string primBizData, string auditAction, refstring bizdata, o bject ca
11、lledCtx, refstring errMsg);bool HandleBizException( string primBizData, string auditAction, refstring h andleResult, refstring bizdata, object calledCtx, refstring errMsg);primBizData : KeySetauditAction 的取值/<summary>/ 审批动作枚举类型/</summary>Serializablepublicenum AuditActionSubmit=0,/ 提交Agr
12、ee=1,/ 同意Disagree=2,/ 不同意Dispatch=3,/ 转签Reject=4,/ 打回Revocation=5,/ 撤Return=6,/ 退回Abandon=7,/ 弃审Bizdata :业务需要传出的参数handleResult :是否需要重做,取值 ReHandle/UnHandle usingSystem;usingSystem.Text;usingUFIDA.UclassFinalAuditPlugin:IAuditPlugin#regionIAuditPlugin 成员publicboolDoAudition(stringprimBizData,stringau
13、ditAction,refstringbizdata,objectcalledCtx, refstring errMsg)LoginServicelogin=newLoginService(CalledContext)calledCtx);OrderBObo=newOrderBO(login);AuditArgsauditArg=newAuditArgs();intid=int.Parse(GetVoucherId(primBizData);bo.GetData(id);Orderorder=bo.dataasOrder;auditArg.Row=-1;bo.BatchAudit(newAud
14、itArgsauditArg);returntrue;/thrownewException("Themethodoroperationisnotimplemented."); privatestringGetVoucherId(stringkeySetData)KeySetDataReaderreader=newKeySetDataReader(keySetData);returnreader"VoucherId"privatestringGetVoucherType(stringkeySetData)KeySetDataReaderreader=new
15、KeySetDataReader(keySetData); returnreader"VoucherType"privatestringGetVoucherCode(stringkeySetData)KeySetDataReaderreader=newKeySetDataReader(keySetData); returnreader"VoucherCode"publicboolHandleBizException(stringprimBizData,stringauditAction,stringcrefstring eontext,refstring
16、handleResult,refstringbizdata,objectcalledCtx, rrMsg) thrownewException("Themethodoroperationisnotimplemented.");publicboolUndoAudition(stringprimBizData,stringauditAction,stringcontext,refstringbizdata,objectcalledCtx, refstring errMsg)LoginServicelogin=newLoginService(CalledContext)calle
17、dCtx);OrderBObo=newOrderBO(login);AuditArgsauditArg=newAuditArgs();intid=int.Parse(GetVoucherId(primBizData);bo.GetData(id);Orderorder=bo.dataasOrder;auditArg.Row=-1;bo.BatchUnAudit(newAuditArgsauditArg);returntrue;/thrownewException("Themethodoroperationisnotimplemented.");#endregion1.1.2
18、VB 插件的开发OptionExplicitDimserviceAsPuServiceAdapterPublicFunctionDoAudition(keyDataAsString,auditActionAsString,ByRefbizDataAsString,calledCtxAsObject, ByReferrMsgAsString)AsBooleanSetservice=NewPuServiceAdapterDoAudition=service.VerifyVoucher(keyData,auditAction,context,calledCtx,b izData)EndFunctio
19、nPublicFunctionUndoAudition(keyDataAsString,auditActionAsString,ByRefbizDataAsString,calledCtxAsObject, ByReferrMsgAsString)AsBooleanSetservice=NewPuServiceAdapterUndoAudition=service.UnVerifyVoucher(keyData,auditAction,calledCtx,bizData)EndFunctionPublicFunctionHandleBizException(keyDataAsString,au
20、ditActionAsString,ByR efhandleResultAsString,ByRefbizDataAsString,calledCtxAsObject , ByReferrMsgAsString)AsBooleanHandleBizException=TrueDimbizDataObjAsNewBizDataMapbizDataObj.LoadXMLbizDataIfMsgBox(bizDataObj.Value("Error"),vbRetryCancel)=vbRetryThenhandleResult="ReHandle"bizDa
21、taObj.Value("Action")="Retry" bizDataObj.Value("Check")="False"Else handleResult="UnHandle"bizDataObj.Value("Action")="Done"EndIfbizData=bizDataObj.XMLMsgBox"BizData="&bizDataEndFunction3.5 预制业务对象业务对象是指审批流程处理的各种类型业务对
22、象(比如:采购订单、材料出库单、出口订单等)。新的审批流利用 UAP的数据引擎来定义这些业务对象,这样就 可以通过修改数据引擎中的业务对象的查询结果来形成不同的业务对象的Schema,从而可以将这些对象的 Schema用作流程定义的条件并在流程运行时获取业务对象 实例的属性值来进行相应的处理。3.6 UAP数据引擎进行业务对象设计审批流中用到的是 UAP数据引擎中查询结果的数据,具体设计步骤及其与预置数据 之间的关系如下: 在数据引擎中添加业务对象设置业务对象基本属性 为业务对象添加功能设置业务功能基本属性为功能添加业务实体关系查询设置实体关系查询基本属性为查询添加基础业务实体为查询添加列。查
23、询结果中必须包含结果列 VoucherId , VoucherCode, VoucherType。这三列在审批流中是关键业务数据,会在任务项的扩展属性中出 现,可以作为任务项显示名称、发送消息模版的数据提供者。命名必须注意完全匹 配(注意大小写)为查询添加计算结果列为查询添加查询条件测试新增业务对象3.7 审批业务对象注册数据引擎中设计完毕业务对象后,就可提供给审批流系统使用。使用前,需要 先注册审批业务对象(注意:与数据引擎中所描述的业务对象是两不同概念)。注册过程使用位于 U8SOFTWorkflow 目录下的工具 AuditBusinessServiceTool.exe 来 完成。审批业
24、务对象注册步骤如下:1 建立分类关系2 注册审批业务对象3 增加业务事件业务事件可理解为对审批对象所可以进行的审批操作,如对请假单这一审 批业务对象,可以进行提交、审批、打回等操作。业务事件URL中包含响应该业务事件的业务模块定位信息,在运行期间,门 户将根据该信息加载相应的业务模块来完成该业务事件的响应。URL预置格式如下:<xmlversion="1.0"encoding="utf-8"><Command><paramName="id"Value=""/><paramN
25、ame="name"Value=""/><paramName="authID"Value=""/> <paramName="cmdLine"Value=""/><paramName="docType"Value=""/> <paramName="docID"Value=""/><paramName="subFunction&qu
26、ot;Value=""/><paramName="SubSysID"Value=""/></Command>上述各参数值与 UFSystem.UA_Me n冲的字段存在对应关系,id->UA_Menu.cMenu_Id,name->UA_Menu.cMenu_Name,authID->UA_Menu.cAuth_Id,SubFunction->UA_Menu.cSub_ID, 其他参数保留,可不预置。如来料报检单:<xmlversion="1.0"enco
27、ding="utf-8"><Command><paramName="id"Value="QM020101"/>vparamName二"name"Value二'来料报检单"/><paramName="authID"Value="QM02010101"/>vparamName="cmdLine"Value=""/> vparamName="docType&qu
28、ot;Value=""/><paramName="docID"Value=""/> <paramName="subFunction"Value=""/><paramName="SubSysID"Value="QM"/></Command>上图中支持插件选项通常需要勾上。任务类型中,一般情况下,需填“ 1”(表明为审批类型的任务项目) ,但如果是为 了表明为打回重做的任务类型,需要填入“ 2”。4 指定业
29、务事件对应的业务实体本处的业务实体可对应到数据引擎中的业务对象下的功能中包含的某特定 查询。设置界面如下:5指定业务事件所需要的关键业务参数关键业务参数将会在设计器中指定从业务实体中取数据的规则(XPath) , 流程实例运行时从符合业务实体格式描述的业务单据取得数据,并在调用业 务模块处理该业务事件时传递给业务模块。通常业务事件均应至少包含三 个参数: VoucherId ,VoucherCode, VoucherType。5 设置业务事件插件 通过菜单选项 - 业务插件进入插件注册界面,如下图: 然后在业务对象事件下注册该事件处理后调用的插件。3.8 审批提交客户端编程 提交流程图 判断是
30、否启用工作流,分别提供了存储过程和接口 存储过程:Usp_WF_IsFlowControlled cBizObjectIdnvarchar(40), cBizEventIdnvarchar(40),iYearsmallint,cAcc_Idnvarchar(3),bControlledbitout程序接口: 提供给业务产品发起提交的接口.dllVB代码DimoAuditasObjectSetoAudit=CreateObject(接口PublicFunctionSubmitApplicationMessage(primBizDataAsString,calledCtxAsCa lledCont
31、ext,ByRefisWFControledAsBoolean,ByReferrMsgAsString)AsBooleanprimBizData:关键业务数据XML串,XML串的Schema如下<KeySet><!- 业务对象 id -><Keyname="BizObjectId"value=""/><!业务事件 -><Keyname="BizEventId"value=""/><!- 单据号 -><Keyname="Vouch
32、erId"value=""/><! 时间戳 -><Keyname="TimeStamp"value=""/><!其他插件或服务需要用到的参数,如 AuthId -> </KeySet>calledCtx :Login 中的登陆上下文isWFControlled :是否通过了发起条件errMsg :错误信息重载方法 2PublicFunctionSubmitApplicationMessage_2(bizObjectIdAsString,eventidAsSt ring,v
33、oucherIdAsString , calledCtxAsCalledContext,ByRefisWFControledAsBoolean,ByReferrMsgAsString )AsBooleanbizObjectId :业务对象 Ideventid :业务事件 IdvoucherId :单据 id示例:1. VB客户端调用FunctionSubmitApplicationMessage_2(bizObjectIdAsString,eventIdAsStrin g,voucherIdAsString,calledCtxAsCalledContext ,ByRefisWFControle
34、dAsBoolean,ByReferrMsgAsString)AsBoolean 'DimloginAsU8Login.clsLogin审批服务客户端代理'DimauditSvcAsNewUFIDA_U8_Audit_ServiceProxy'Login 服务的 LoginContext 对象DimcalledCtxAsNewUFSoft_U8_Framework_LoginContext' 业务对象的标识,与与审批预置表( AuditBizObjects )中的业务对象主键相同DimstrBizObjectIdAsString' 业务事件的标识,与审批
35、预置表( AuditBizEvents )中的业务事件主键相同DimstrBizEventIdAsString' 单据标识,也就是业务对象的实例标识DimiVoucherIdAsIntegerDimretAsBoolean是否满足开始条件DimbControlledAsBoolean错误信息auditSvcOnErrorGoToerrHandler:auditSvc strBizObjectId="PU88"strBizEventId="PU88.Submit"strContext=""iVoucherId=1calledCt
36、x.SubId="DP"calledCtx.TaskID=login.GetTaskID(SubId)calledCtx.token=login.userTokenIf(strBizObjectId="")Or(strBizEventId="")ThenMsgBoX请选择选择业务对象或业务事件!"Else' 业务进行自己的处理,可能需要发起自己的事务ret=auditSvc.SubmitApplicationMessage_2(strBizObjectId,strBizEventId,iVoucherId,calle
37、dCtx,bControlled ,errMsg)If(ret=True)ThenIfbControlled=TrueThenMsgBox(" 提交成功 ")' 如果发起事务,执行其他业务逻辑,并提交事务EndIfElseMsgBox(" 提交失败,失败原因: "&errMsg)' 如果发起事务,回滚事务,并做其他处理EndIfEndIfReturnerrHandler:' 业务自己的异常处理逻辑2. .NET客户端调用publicbool SubmitApplicationMessage( string bizObjec
38、tId, string eventId, st ring voucherId, string context, CalledContext calledCtx)参数说明:/<summary>/ 提交审批消息/</summary>/<paramname="bizObjectId"> 业务对象标识 </param>/<paramname="eventId"> 业务事件标识 </param>/<paramname="voucherId"> 单据唯一标识 &l
39、t;/param>/<paramname="context"> 用户登录信息 </param>/<returns> 返回提交调用结果,成功返回 true, 否则返回 false </returns>示例:usingusingusingusingusing using/ 子系统标识privateconststringSubId= "DP" ; / 需要根据各业务子系统进行替换try/ 创建审批服务的客户端代理AuditServiceProxyauditSvc= newAuditServiceProxy(
40、);/ 构造 Login 的 CalledContext 对象CalledContextcalledCtx= newCalledContext(); calledCtx.subId=SubId;calledCtx.TaskID=_login.GetTaskID(SubId); calledCtx.token=_login.userToken;/ 业务对象标识string bizObjectId= "PU88"/ 业务事件标识string bizEventId= "PU88.Submit" ;/ 单据号intvoucherId=1;if (bizEvent
41、Id= string .Empty|bizObjectId= string .Empty) MessageBox.Show( " 请选择选择业务对象或业务事件 !" ); return ;voucherbool ret=auditSvc.SubmitApplicationMessage(bizObjectId,bizEventId,Id ,calledCtx,refbControlled,referrMsg);if (ret= true&&bControlled )MessageBox.Show( "提交成功 " );elseMessag
42、eBox.Show( " 提交失败,失败原因: "+errMsg );catch ( Exception ex)MessageBox.Show(ex.Message);3.9 批审审批界面接口程序集:功能:显示批量处理界面,返回批量处理参数。(注意:本版对批审的处理分两个步骤,先显示界面,返回选择参数,然后逐次调用 3.10 的审核接口进行批量处理)A. 显示批审界面/<paramname="calledCtx"> 登陆上下文 </param>/<paramname="action"> 审批动作,传
43、出参数 </param>/<paramname="state"> 审批状态,传出参数 </param>/<paramname="opinion"> 审批意见,传出参数 </param>/<returns> 用户点击同意返回 True; 点击取消则返回 False </returns>FunctionShowAuditSimpleUI(calledCtxAsCalledContext,byrefactionAsInteger, byrefstateAsInteger,byr
44、efopinionAsString)AsBooleanB. 显示批弃界面/<paramname="calledCtx"> 登陆上下文 </param>/<paramname="state"> 审批状态,传出参数 </param>/<paramname="opinion"> 审批意见,传出参数 </param>/<returns> 用户点击同意返回 True; 点击取消则返回 False </returns>FunctionShowAudit
45、AbandonUI(calledCtxAsCalledContext,byrefstateAsInteger,byrefopinionAsString)AsBooleanC. 显示自定义界面/<paramname="flags"> 窗体的显示组合枚举 </param>/<paramname="calledCtx"> 登陆上下文 </param>/<paramname="action"> 审批动作,传出参数 </param>/<paramname="
46、state"> 审批状态,传出参数 </param>/<paramname="opinion"> 审批意见,传出参数 </param>/<returns> 用户点击同意返回 True; 点击取消则返回 False </returns>FunctionShowAuditUI(flagsAsInteger,calledCtxAsCalledContext,byrefactionAsInteger,byrefstateAsInteger, byrefopinionAsString)AsBoolean 备注
47、:flags 为组合枚举EnumAuditUIItemFlagsAuditUIItemFlags_None=0,AuditUIItemFlags_AgreeButton=1,AuditUIItemFlags_DisagreeButton=2,AuditUIItemFlags_AbandonButton=4,AuditUIItemFlags_CheckedBatch=8,AuditUIItemFlags_CheckedInteraction=16 该接口提供了自定义的界面显示风格,前两个接口是该接口的封装 如 ShowAuditSimpleUI 可用该接口表示为:o.ShowAuditUI( A
48、uditUIItemFlags.AuditUIItemFlags_AgreeButtonOrAuditUIItemFlags.AuditUIItemFlags_CheckedInteraction,ctx,action,state,opinion);3.10 批审审核接口程序集: 功能:根据批审界面返回的参数,逐次调用该接口进行审批处理A. 审核接口/<paramname="keySet"> 关键业务数据 </param>/<paramname="action"> 审批动作 </param>/<par
49、amname="state"> 审批状态 </param>/<paramname="opinion"> 审批意见 </param> /<paramname="calledCtx"> 登陆上下文 </param> /<paramname="auditResult"> 审批返回信息 </param> /<returns> true- 成功 false- 失败 </returns>FunctionAudit(
50、keySetAsString, actionAsInteger, stateAsInteger, opinionAsString, calledCtxAsCalledContext, auditResultAsString)AsBoolean备注:keySet 关键业务数据格式同插件中的格式<KeySet><Keyname="VoucherId"value=""/><Keyname="VoucherType"valuse=""/><Keyname="Voucher
51、Code"value=""/><Keyname="AuditAuthId"value=""/></KeySet>auditResult 审批返回信息格式如下 :<ResultVoucherId=" 单据号 "VoucherType=" 单据类型 "VoucherCode二"单据编号”AuditResult=" 审批执行结果,成功返回 true; 失败返回 false"AuditAction=" 审批意见,同意:
52、 Agree 、不同意: Disagree"AuditOpinion=" 审批意见,审批界面输入的意见 "errMsg=" 审批错误时返回的错误信息 "><BizData></BizData></Result>B. 弃审接口/<paramname="keySet"> 关键业务数据 </param>/<paramname="opinion"> 审批意见 </param>/<paramname="stat
53、e"> 审批状态 </param>/<paramname="calledCtx"> 登陆上下文 </param>/<paramname="auditResult"> 审批返回信息 </param>/<returns> true- 成功 false- 失败 </returns>FunctionAbandon(keySetAsString,opinionAsString,stateAsInteger,calledCtxAsCalledContext, audi
54、tResultAsString)AsBoolean备注:其中keySet和auditResult 的格式同上。3.11 撤销行为客户端编程/<summary>/ 撤销提交接口/</summary>/<paramname=" bizObjectID "> 业务对象 ID</param>/<paramname=" eventID "> 业务事件 ID</param> /<paramname=" VoucherId ">单据 ID</param>
55、/vparamname=" VoucherType"> 单据类型 </param> /vparamname=" cVoucherCode"> 单据 Code</param> /vparamname=" sBizdata " >业务参数 v/param> /vparamname=" callerCtx "> 用户登录信息 v/param> /vparamname=" strErr " >错误描述 v/param>/vreturns> 返回提交调用结果,成功返回 true, 否则返回 false 。 v/returns>PublicboolRevokeAudition(stringbizObjectID,stringeventID,stringVoucherId,stringVoucherType,stringcVoucherCode,refstringsBizdata,CalledContextc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 芜湖小作坊管理制度
- 英语绘本馆管理制度
- 草原属书屋管理制度
- 胆固醇测定试剂盒分析性能评估资料
- 让人舒服的沟通技巧
- 财务会计工作职责和内容感想总结范文15篇
- 财务会计业务知识题库真题
- 试验检测师(公共基础)考试历年真题题库(含答案)
- 江苏省常州市前黄高级中学2025届高三下学期攀登行动(一)地理试卷(含答案)
- 湖南省2025年中考地理真题(含答案)
- 小学课件培训:AI赋能教育创新
- 食堂白油使用管理制度
- 个人垫付资金协议书
- 核磁共振与DSA融合技术的临床应用-全面剖析
- 动火作业施工方案
- 2025春季学期国开电大专科《个人与团队管理》一平台在线形考(形考任务3)试题及答案
- 2024年中国资源循环集团有限公司招聘笔试真题
- 露天煤矿安全用电知识课件
- 食品安全自查、从业人员健康管理、进货查验记录、食品安全事故处置等保证食品安全的规章制度
- 美国特殊教育介绍
- 预防保健科室
评论
0/150
提交评论