예제 #1
0
        /// <summary>
        /// ��������
        /// </summary>
        /// <param name="flInstanceId">����Id</param>
        /// <param name="flDefinitionFile">���̶���XOML�ļ�</param>
        /// <param name="flRulesFile">���̹����ļ�</param>
        /// <param name="clientInfo">ClientInfo</param>
        /// <param name="hostDataSet">������</param>
        /// <param name="orgKind">�û�OrgKind</param>
        /// <returns></returns>
        public FLInstance CreateFLInstance(Guid flInstanceId, string flDefinitionFile, string flRulesFile,/* XmlReader flDefinitionReader, XmlReader flRulesReader, */ object[] clientInfo, string roleID, DataSet hostDataSet, string orgKind)
        {
            //if (_flInstances.ContainsKey(flInstanceId))
            //{
            //    throw new Exception("FLRuntime is existed " + flInstanceId.ToString());
            //}

            //FLInstance instance = new FLInstance(flInstanceId, this, flDefinitionReader, flRulesReader);
            FLInstance instance = new FLInstance(flInstanceId, this, flDefinitionFile, flRulesFile, clientInfo, hostDataSet, orgKind);
            instance.SetFLRuntime(this);
            instance.SetClientInfo(clientInfo);
            instance.SetCreator(((object[])clientInfo[0])[1].ToString(), roleID);   // ������

            // ��������ķ��������Ӧ���¼�
            // ���__Start�¼�
            instance.__Created += new FLInstance.__CreatedEventHandler(Instance___Created);
            instance.__Submit += new FLInstance.__SubmitEventHandler(Instance___Submit);
            instance.__Approve += new FLInstance.__ApproveEventHandler(instance___Approve);
            instance.__Return += new FLInstance.__ReturnEventHandler(instance___Return);
            instance.__Reject += new FLInstance.__RejectEventHandler(instance___Reject);
            instance.__Retake += new FLInstance.__RetakeEventHandler(instance___Retake);
            instance.__Pause += new FLInstance.__PauseEventHandler(instance___Pause);
            instance.__PlusApprove += new FLInstance.__PlusApproveEventHandler(instance___PlusApprove);
            instance.__PlusReturn += new FLInstance.__PlusReturnEventHandler(instance___PlusReturn);

            return instance;
        }