天天看点

从SmartObject中读取数据

对K2 Blackpearl有一定了解的人都知道,SmartObject可以帮助我们完成数据持久化的工作,以下是根据流程实例ID(ProcessInstanceID)从SmartObject中读取数据相关代码,这些代码在SDK中也是可以找到的,现在贴出来给大家,希望有帮助,同时希望有大虾可以予小弟以指点。

    //根据KEY ID从SmartObject中取数据
        private void LoadData(string argProInstanceID)
        {
            SourceCode.SmartObjects.Client.SmartObjectClientServer socs = new SourceCode.SmartObjects.Client.SmartObjectClientServer();
            
            // build a connection string
            SourceCode.Hosting.Client.BaseAPI.SCConnectionStringBuilder connectionString = new SourceCode.Hosting.Client.BaseAPI.SCConnectionStringBuilder();
            connectionString.Authenticate = true;
            connectionString.Host = System.Configuration.ConfigurationManager.AppSettings["K2Server"];
            connectionString.Integrated = true;
            connectionString.IsPrimaryLogin = true;
            connectionString.Port = Convert.ToUInt32(System.Configuration.ConfigurationManager.AppSettings["HostServicePort"]);
            //connectionString.UserID = "UserID";
            //connectionString.Password = "******";
            connectionString.WindowsDomain = "domain";
            connectionString.SecurityLabelName = "K2";

            // open a K2 Server connection
            socs.CreateConnection();
            socs.Connection.Open(connectionString.ToString());
            try
            {
                // get a handle to the 'so_DHFKSQ' SmartObject
                SourceCode.SmartObjects.Client.SmartObject so = socs.GetSmartObject("so_DHFKSQ");

                // specify which method will be called
                so.MethodToExecute = "Load";

                // specify input parameters for the method
                so.Properties["ProInstanceID"].Value = argProInstanceID;

                // call the method
                socs.ExecuteScalar(so);

                // note: if a method of type 'list' was specified, then the 'ExecuteList' method should be called
                // serverName.ExecuteList(smartObject);

                // read the return properties of the SmartObject
                Folio.Text = so.Properties["Folio"].Value;
                ApplyEmployee.Text = so.Properties["ApplyEmployee"].Value;
                ApplyAmount.Text = so.Properties["ApplyAmount"].Value;
                ApplyDate.Text = so.Properties["ApplyDate"].Value;
                HigherLevelApprover.Text = so.Properties["HigherLevelApprover"].Value;
                FinanceApprover.Text = so.Properties["FinanceApprover"].Value;
            }
            catch (Exception ex)
            {
                throw new Exception(ex.Message);
            }
            finally
            {
                // close the connection
                socs.Connection.Close();
            }
        }      

希望K2 Blackpearl的大虾们看到后,能给小弟予以指导,不甚感激。