static void Main(string[] args) { string smoConnectionString = "Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=development.k2software.cn;Port=5555;SecurityLabelName=K2;UserID=Administrator;Password=K2pass!;WindowsDomain=DENALLIX"; //Integrated=True; IsPrimaryLogin=True; Authenticate=True; EncryptedPassword=False; CachePassword=True;Host=DLX; Port=5555 //Create a SO Server Client Object SmartObjectClientServer soServer = new SmartObjectClientServer(); try { //Open the connection to the K2 Server soServer.CreateConnection(); soServer.Connection.Open(smoConnectionString); //Get a handle to the 'Employee' SO SmartObject soUMUser = soServer.GetSmartObject("ProjectData"); //Call the GetList Method //soUMUser.MethodToExecute = "Get_Role_Users"; //soUMUser.MethodToExecute = "Get_Users"; soUMUser.MethodToExecute = "GetList"; //Input Properties setting: //soUMUser.ListMethods["Get_Role_Users"].InputProperties["Role_Name"].Value = "tester"; //soUMUser.ListMethods["Get_Group_Users"].InputProperties["Group_Name"].Value = "Domain Admins"; //soUMUser.ListMethods["Get_Group_Users"].InputProperties["LabelName"].Value = "K2"; //Execute GetList Method, and put the result to a SmartObjectList SmartObjectList smoList = soServer.ExecuteList(soUMUser); //Iterate the SmartObject List foreach (SmartObject soDetail in smoList.SmartObjectsList) { Console.WriteLine("ID:" + soDetail.Properties["ID"].Value.ToString()); } soServer.Connection.Close(); Console.ReadKey(); } catch (Exception ex) { throw ex; } }
private string getTaxData() { System.Text.StringBuilder sb = new System.Text.StringBuilder(); SmartObjectClientServer smoServer = ConnectionClass.GetSmartObjectClient(); SmartObject mmdSmo = smoServer.GetSmartObject(this.SMOInternalName); SmartListMethod getList = mmdSmo.ListMethods["GetAllChildTermsInTermSet"]; getList.InputProperties["TermStoreId"].Value = this.TermStoreGuid; getList.InputProperties["TermSetId"].Value = this.TermSetGuid; mmdSmo.MethodToExecute = "GetAllChildTermsInTermSet"; var TermList = new List <Term>(); SmartObjectList smoList = smoServer.ExecuteList(mmdSmo); foreach (SmartObject smo in smoList.SmartObjectsList) { string termId = smo.Properties["TermId"].Value; string termLabel = smo.Properties["Label"].Value; string termPath = smo.Properties["Path"].Value; TermList.Add(new Term() { TermId = termId, TermLabel = termLabel, TermPath = termPath }); } var serializer = new JavaScriptSerializer(); var serialized = serializer.Serialize(TermList); var fixedString = serialized.Replace(""", @""""); sb.Append(@"{""terms"":"); sb.Append(fixedString); sb.Append(@"}"); return(HttpUtility.HtmlDecode(sb.ToString())); }
public void RetryWorkflow() { SmartObjectClientServer soServer = this.NewSmartObjectClientServer(); try { using (soServer.Connection) { SmartObject soError = soServer.GetSmartObject("com_K2_System_Workflow_SmartObject_ErrorLog"); //set method we want to execute. soError.MethodToExecute = "GetErrorLogs"; soError.Properties["ErrorProfileName"].Value = "All"; //get the list of SmartObjects returned by the method SmartObjectList soListError = soServer.ExecuteList(soError); //iterate over the collection List <K2ErrorLog> listK2ErrorLog = new List <K2ErrorLog>(); string[] workflowNames = this.AppConfig.WorkflowNames.Split(';'); foreach (SmartObject soItem in soListError.SmartObjectsList) { for (int i = 0; i < workflowNames.Length; i++) { if (soItem.Properties["ProcessName"].Value == workflowNames[i]) { string soDescription = soItem.Properties["Description"].Value.ToString(); if (soDescription.Contains("was deadlocked on lock resources with another process") || soDescription.Contains("SQL") || soDescription.Contains("IIF")) { listK2ErrorLog.Add(new K2ErrorLog(soItem)); } } } //ambil hanya transaksi deadlocked saja } foreach (K2ErrorLog k2ErrorLog in listK2ErrorLog) { SmartObject errorSO = soServer.GetSmartObject("com_K2_System_Workflow_SmartObject_ErrorLog"); //set method we want to execute. errorSO.MethodToExecute = "RetryError"; errorSO.Properties["Id"].Value = k2ErrorLog.Id.ToString(); errorSO.Properties["ProcInstId"].Value = k2ErrorLog.ProcInstID.ToString(); errorSO.Properties["TypeId"].Value = k2ErrorLog.TypeID.ToString(); errorSO.Properties["ObjectId"].Value = k2ErrorLog.ObjectID.ToString(); errorSO.Properties["UserName"].Value = "System"; this.Logger.Info("K2 Retry ProcInstId = " + k2ErrorLog.ProcInstID.ToString()); //get the list of SmartObjects returned by the method Thread.Sleep(1000); //delay 1 detik soServer.ExecuteScalar(errorSO); } } } finally { soServer.DeleteConnection(); } }
public virtual SmartObjectList ExecuteList(SmartObject smartObject, ExecuteListOptions options) { return(_serviceClientServer.ExecuteList(smartObject, options)); }
private void btnGenerateCRMProcess_Click(object sender, RoutedEventArgs e) { SourceCode.SmartObjects.Client.SmartObjectClientServer smoServer = new SmartObjectClientServer(); smoServer.CreateConnection(); smoServer.Connection.Open("Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=localhost;Port=5555"); SmartObject smoCRM = smoServer.GetSmartObject("Demo_K2_CRM_Functions"); smoCRM.MethodToExecute = "GetAllEntities"; SmartObjectList smoEntities = smoServer.ExecuteList(smoCRM); // get state status details CRMPicklist pl = new CRMPicklist(); // pl.AttributeLogicalName = att.LogicalName; pl.EntityLogicalName = "lead"; CRMPicklist cp = functions.CRMGetStateStatus(pl); int seq = 0; foreach (CRMPicklistOption plo in cp.Picklist.OrderBy(p => p.PicklistParentValue).OrderBy(p => p.PicklistValue)) { StateStatus ss = new StateStatus(); ss.State = plo.PicklistParentValue; ss.StateName = plo.PicklistParentLabel; ss.Status = plo.PicklistValue; ss.StatusName = plo.PicklistLabel; ss.Sequence = seq; seq++; CRMSS.Add(ss); } bool ActiveOnly = true; string nowish = DateTime.Now.ToString("yyyyMMddHHmmss"); // Create new process process = WorkflowFactory.CreateProcess <DefaultProcess>(nowish, WizardNames.DefaultProcess); DataField dfEntityId = new DataField("Entity Id", ""); DataField dfEntityName = new DataField("Entity Name", ""); process.DataFields.Add(dfEntityId); process.DataFields.Add(dfEntityName); var dimensions = WorkflowHelpers.GetActivityDimensions(process.StartActivity); int x = Convert.ToInt32(Math.Round(dimensions.X + dimensions.Width + 40D)); int y = Convert.ToInt32(dimensions.Y) + 100; DefaultActivity PrevStatAct = null; DefaultActivity PrevReviewAct = null; PrevStatAct = CreateStartActivity("", dfEntityId, dfEntityName, x, ref y); SourceCode.Workflow.Authoring.Line startLine = WorkflowFactory.CreateLine("StartLine"); startLine.StartActivity = process.StartActivity; startLine.FinishActivity = PrevStatAct; process.Lines.Add(startLine); int c = 0; foreach (StateStatus ss in CRMSS.OrderBy(p => p.Sequence)) { DefaultActivity act = CreateStatusActivity(ss.StateName + " - " + ss.StatusName, dfEntityId, dfEntityName, x, ref y); if (PrevReviewAct != null) { PrevReviewAct.FinishLines[0].FinishActivity = act; } if (c == 0) { SourceCode.Workflow.Authoring.Line firstline = WorkflowFactory.CreateLine("Firstline"); firstline.StartActivity = PrevStatAct; firstline.FinishActivity = act; process.Lines.Add(firstline); } c++; DefaultActivity act1 = null; if (!ActiveOnly || ActiveOnly && ss.State == 0) { act1 = CreateCRMActivity(ss.StateName + " - " + ss.StatusName, dfEntityId, dfEntityName, x, ref y); SourceCode.Workflow.Authoring.Line line = WorkflowFactory.CreateLine("Line " + ss.Sequence); line.StartActivity = act; line.FinishActivity = act1; process.Lines.Add(line); if (PrevStatAct != null) { act1.FinishLines[1].FinishActivity = PrevStatAct; } } if (act1 == null && PrevStatAct.FinishLines.Count == 0) { PrevReviewAct = null; SourceCode.Workflow.Authoring.Line updateLine = WorkflowFactory.CreateLine("Update Line " + ss.Sequence); updateLine.StartActivity = PrevStatAct; updateLine.FinishActivity = act; process.Lines.Add(updateLine); } if (act != null) { WorkflowHelpers.AutoPositionLines(act.StartLines); WorkflowHelpers.AutoPositionLines(act.FinishLines); } if (act1 != null) { WorkflowHelpers.AutoPositionLines(act1.StartLines); WorkflowHelpers.AutoPositionLines(act1.FinishLines); } PrevReviewAct = act1; PrevStatAct = act; } process.FinishRule = new DesignCRMClient.CRMClientProcessFinishRule(); process.SaveAs(txtProcessPath.Text + nowish + ".kprx"); process = null; }
private void btnGenerateCRMProcess_Click(object sender, RoutedEventArgs e) { SourceCode.SmartObjects.Client.SmartObjectClientServer smoServer = new SmartObjectClientServer(); smoServer.CreateConnection(); smoServer.Connection.Open("Integrated=True;IsPrimaryLogin=True;Authenticate=True;EncryptedPassword=False;Host=localhost;Port=5555"); SmartObject smoCRM = smoServer.GetSmartObject("Demo_K2_CRM_Functions"); smoCRM.MethodToExecute = "GetAllEntities"; SmartObjectList smoEntities = smoServer.ExecuteList(smoCRM); // get state status details CRMPicklist pl = new CRMPicklist(); // pl.AttributeLogicalName = att.LogicalName; pl.EntityLogicalName = "lead"; CRMPicklist cp = functions.CRMGetStateStatus(pl); int seq = 0; foreach (CRMPicklistOption plo in cp.Picklist.OrderBy(p => p.PicklistParentValue).OrderBy(p => p.PicklistValue)) { StateStatus ss = new StateStatus(); ss.State = plo.PicklistParentValue; ss.StateName = plo.PicklistParentLabel; ss.Status = plo.PicklistValue; ss.StatusName = plo.PicklistLabel; ss.Sequence = seq; seq++; CRMSS.Add(ss); } bool ActiveOnly = true; string nowish = DateTime.Now.ToString("yyyyMMddHHmmss"); // Create new process process = WorkflowFactory.CreateProcess<DefaultProcess>(nowish, WizardNames.DefaultProcess); DataField dfEntityId = new DataField("Entity Id", ""); DataField dfEntityName = new DataField("Entity Name", ""); process.DataFields.Add(dfEntityId); process.DataFields.Add(dfEntityName); var dimensions = WorkflowHelpers.GetActivityDimensions(process.StartActivity); int x = Convert.ToInt32(Math.Round(dimensions.X + dimensions.Width + 40D)); int y = Convert.ToInt32(dimensions.Y) + 100; DefaultActivity PrevStatAct = null; DefaultActivity PrevReviewAct = null; PrevStatAct = CreateStartActivity("", dfEntityId, dfEntityName, x, ref y); SourceCode.Workflow.Authoring.Line startLine = WorkflowFactory.CreateLine("StartLine"); startLine.StartActivity = process.StartActivity; startLine.FinishActivity = PrevStatAct; process.Lines.Add(startLine); int c = 0; foreach (StateStatus ss in CRMSS.OrderBy(p => p.Sequence)) { DefaultActivity act = CreateStatusActivity(ss.StateName + " - " + ss.StatusName, dfEntityId, dfEntityName, x, ref y); if (PrevReviewAct != null) { PrevReviewAct.FinishLines[0].FinishActivity = act; } if (c == 0) { SourceCode.Workflow.Authoring.Line firstline = WorkflowFactory.CreateLine("Firstline"); firstline.StartActivity = PrevStatAct; firstline.FinishActivity = act; process.Lines.Add(firstline); } c++; DefaultActivity act1 = null; if (!ActiveOnly || ActiveOnly && ss.State == 0) { act1 = CreateCRMActivity(ss.StateName + " - " + ss.StatusName, dfEntityId, dfEntityName, x, ref y); SourceCode.Workflow.Authoring.Line line = WorkflowFactory.CreateLine("Line " + ss.Sequence); line.StartActivity = act; line.FinishActivity = act1; process.Lines.Add(line); if (PrevStatAct != null) { act1.FinishLines[1].FinishActivity = PrevStatAct; } } if (act1 == null && PrevStatAct.FinishLines.Count == 0) { PrevReviewAct = null; SourceCode.Workflow.Authoring.Line updateLine = WorkflowFactory.CreateLine("Update Line " + ss.Sequence); updateLine.StartActivity = PrevStatAct; updateLine.FinishActivity = act; process.Lines.Add(updateLine); } if (act != null) { WorkflowHelpers.AutoPositionLines(act.StartLines); WorkflowHelpers.AutoPositionLines(act.FinishLines); } if (act1 != null) { WorkflowHelpers.AutoPositionLines(act1.StartLines); WorkflowHelpers.AutoPositionLines(act1.FinishLines); } PrevReviewAct = act1; PrevStatAct = act; } process.FinishRule = new DesignCRMClient.CRMClientProcessFinishRule(); process.SaveAs(txtProcessPath.Text+nowish+".kprx"); process = null; }
private List<TaskUser> GetUsers(SourceCode.KO.Destination dest) { //System.Diagnostics.EventLog.WriteEntry("K2EventListener", "K2EventListener GetUsers Started!Data:" + JsonConvert.SerializeObject(arr), System.Diagnostics.EventLogEntryType.Warning); //System.Diagnostics.EventLog.WriteEntry("K2EventListener", "smoConnectionString Data:" + smoConnectionString + ",K2EventReceiverUrl:" + K2EventReceiverUrl, System.Diagnostics.EventLogEntryType.Error); _log.Info("Start GetUsers"); List<TaskUser> users = new List<TaskUser>(); try { //Create a SO Server Client Object SmartObjectClientServer soServer = new SmartObjectClientServer(); //Open the connection to the K2 Server soServer.CreateConnection(); soServer.Connection.Open(smoConnectionString); //Get a handle to the 'Employee' SO SmartObject soUMUser = soServer.GetSmartObject("UMUser"); if (dest.Type == DestinationType.User) { soUMUser.MethodToExecute = "Get_Users"; string[] arr = dest.Name.Split(':'); if (arr.Length > 1) { soUMUser.ListMethods["Get_Users"].InputProperties["Label_Name"].Value = arr[0]; soUMUser.ListMethods["Get_Users"].InputProperties["Name"].Value = arr[1]; //Execute GetList Method, and put the result to a SmartObjectList SmartObjectList smoList = soServer.ExecuteList(soUMUser); //Iterate the SmartObject List foreach (SmartObject soDetail in smoList.SmartObjectsList) { TaskUser user = new TaskUser() { Name = soDetail.Properties["Name"].Value.ToString(), Email = soDetail.Properties["Email"].Value.ToString(), Manager = soDetail.Properties["Manager"].Value.ToString() }; users.Add(user); } soServer.Connection.Close(); } soServer.Connection.Close(); if (Enviroment == "Development") _log.Info("GetUsers Return DestinationType.User Data:" + JsonConvert.SerializeObject(users)); return users; } else if (dest.Type == DestinationType.Group) { soUMUser.MethodToExecute = "Get_Group_Users"; //Input Properties setting: string[] arr = dest.Name.Split(':'); if (arr.Length > 1) { soUMUser.ListMethods["Get_Group_Users"].InputProperties["Group_Name"].Value = arr[1]; soUMUser.ListMethods["Get_Group_Users"].InputProperties["LabelName"].Value = arr[0]; //Execute GetList Method, and put the result to a SmartObjectList SmartObjectList smoList = soServer.ExecuteList(soUMUser); //Iterate the SmartObject List foreach (SmartObject soDetail in smoList.SmartObjectsList) { TaskUser user = new TaskUser() { Name = soDetail.Properties["Name"].Value.ToString(), Email = soDetail.Properties["Email"].Value.ToString(), Manager = soDetail.Properties["Manager"].Value.ToString() }; users.Add(user); } soServer.Connection.Close(); } if (Enviroment == "Development") _log.Info("GetUsers Return DestinationType.Group Data:" + JsonConvert.SerializeObject(users)); return users; } else if (dest.Type == DestinationType.Queue) { //Call the GetList Method soUMUser.MethodToExecute = "Get_Role_Users"; //Input Properties setting: soUMUser.ListMethods["Get_Role_Users"].InputProperties["Role_Name"].Value = dest.Name; //Execute GetList Method, and put the result to a SmartObjectList SmartObjectList smoList = soServer.ExecuteList(soUMUser); //Iterate the SmartObject List foreach (SmartObject soDetail in smoList.SmartObjectsList) { TaskUser user = new TaskUser() { Name = soDetail.Properties["Name"].Value.ToString(), Email = soDetail.Properties["Email"].Value.ToString(), Manager = soDetail.Properties["Manager"].Value.ToString() }; users.Add(user); } soServer.Connection.Close(); if (Enviroment == "Development") _log.Info("GetUsers Return DestinationType.Queue Data:" + JsonConvert.SerializeObject(users)); //System.Diagnostics.EventLog.WriteEntry("K2EventListener", "K2EventListener Return GetUsers Data:" + JsonConvert.SerializeObject(users), System.Diagnostics.EventLogEntryType.Error); return users; } else { soServer.Connection.Close(); if (Enviroment == "Development") _log.InfoFormat("GetUsers Return null Data:" + JsonConvert.SerializeObject(users)); return users; } } catch (Exception ex) { //System.Diagnostics.EventLog.WriteEntry("K2EventListener", "K2EventListener Error Data:" + JsonConvert.SerializeObject(ex), System.Diagnostics.EventLogEntryType.Error); _log.Error(ex); } return users; }