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