K2BPM系列:从SmartObject中读取数据 将数据存储到SmartObject中

根据对K2 Blackpearl的一定了解,SmartObject可以帮助我们完成一些数据持久化的工作,以下是将表单中的数据存储到SmartObject中的相关代码,SmartObject的结构我就不一一赘述了,相信你能看懂的。

这些代码SDK中也有,在此贴出来,希望有大虾可以予小弟以指点。

//将表单中的数据存储到SmartObject中
private void SaveData(int argProcInstanceID)
{
    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 = "your user name";
    //connectionString.Password = "your password";
    connectionString.WindowsDomain = "dahanis";
    connectionString.SecurityLabelName = "K2";


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


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


        // specify input parameters for the method
        so.Properties["ProInstanceID"].Value = argProcInstanceID.ToString();
        so.Properties["Folio"].Value = Folio.Text.Trim();
        so.Properties["ApplyEmployee"].Value = ApplyEmployee.Text.Trim();
        so.Properties["ApplyAmount"].Value = ApplyAmount.Text.Trim();
        so.Properties["ApplyDate"].Value = ApplyDate.Text.Trim();
        so.Properties["HigherLevelApprover"].Value = HigherLevelApprover.Text.Trim();
        so.Properties["FinanceApprover"].Value = FinanceApprover.Text.Trim();


        // 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);
    }
    catch(Exception ex)
    {
        throw new Exception(ex.Message);
    }
    finally 
    {
        socs.Connection.Close();
    }


K2BPM系列:从SmartObject中读取数据 将数据存储到SmartObject中_第1张图片

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();
            }

K2BPM系列:从SmartObject中读取数据 将数据存储到SmartObject中_第2张图片

你可能感兴趣的:(K2BPM系列:从SmartObject中读取数据 将数据存储到SmartObject中)