Makro ile akış başlatma


try {
	int i = 0;
	Log(string.Format("Toplantı Tutanakları Alt Akış Başlatma Makrosu çalışmaya başladı. WorkflowID: {0}, WorkitemID: {1}", WorkflowId, WorkItemId));
	LoadObject();
	LoadAttachment();
	if (AttachmentData == null) {
		Log("Dosya kartı eklentisi yok.");
		return false;
	}
	System.Collections.IList users = (System.Collections.IList) FormData.Get("TOPLANTI_NOTLARI");
	List<string> members = new List<string>();
	foreach (ITypes row in users) {
		string mUser = (string) row.Get("SORUMLU");
		var q = members.Where(z =>z.Equals(mUser)).FirstOrDefault();
		if (q == null)
			members.Add(mUser);
		if (!string.IsNullOrEmpty(mUser)) {
			//Alt akışı oluşturmak için yazıldı.
			//Process tablosundan gerekli datalar toplandı.
			ContentServer.rProcessInfo[] processes = Server.productivity.rWorkflow.GetProcesses(2).Items;
			ContentServer.rProcessInfo prc = processes.FirstOrDefault(p => p.ProcessName == "GOREV_YONETIM_SURECI");
			string wfName = "Görev Yönetim Süreci";
			a_Workflow flwData = new a_Workflow();
			flwData.WorkflowName = wfName;
			flwData.WorkflowDesc = string.Empty;
			flwData.ProcessId = new ObjectID(prc.ProcessId);
			flwData.AclId = new ObjectID(prc.AclId);
			flwData.WorkflowId = new ObjectID(string.Empty);
			flwData.FormName = new ObjectName(prc.FormName);
			flwData.FormVersion = "1";
			flwData.TypeName = new ObjectName(prc.ObjectType);
			flwData.Version = string.Empty;
			flwData.Owner = mUser;
			flwData.State = WORKFLOWState.Init;
			flwData.CreateDate = DateTime.Now;
			flwData.AttachmentId = new ObjectID(AttachmentId);

			ITypes fObject = Server.productivity.rDocument.getDocument(new ObjectID(string.Empty), prc.ObjectType);
			fObject.Set("FORM_NAME", flwData.FormName.ToString());
			fObject.Set("FORM_VERSION", flwData.FormVersion);
			fObject.Set("OBJECT_NAME", flwData.WorkflowName.ToString());
			fObject.Set("ACL_ID", flwData.AclId.ToString());
			fObject.Set("OWNER", flwData.Owner);
			fObject.Set("FOLDER_ID", DefaultObjects.WorkflowDir);
			fObject.Set("OBJECT_TYPE", flwData.TypeName.ToString());
			fObject.Set("CONTENT_TYPE", Definitions.CONTENT_TYPE_FLOW);
			fObject.Set("VIRTUAL_DOC_ID", string.Empty);
			fObject.Set("IS_FTS", true);
			fObject.Set("IS_VIRTUAL_DOC", false);
			fObject.Set("IS_LAST_VERSION", true);

			//Formdaki alanları doldurmak için yazıldı.
			fObject.Set("ADI_SOYADI", (string) FormData.Get("ADI_SOYADI"));
			fObject.Set("DEPARTMAN", (string) FormData.Get("DEPARTMAN"));
			fObject.Set("UST_AKIS_KARAR", (string) FormData.Get("UST_AKIS_KARAR"));
			fObject.Set("TOPLANTI_KONUSU", (string) FormData.Get("TOPLANTI_KONUSU"));
			fObject.Set("TOPLANTI_YERI", (string) FormData.Get("TOPLANTI_YERI"));
			DateTime? tarih = FormData.Get("TOPLANTI_TARIHI") as DateTime? ;
			if (tarih != null)
				fObject.Set("TOPLANTI_TARIHI", tarih.Value);
			//fObject.Set("AKSIYON", (string) FormData.getRepAttribute("TOPLANTI_NOTLARI", "TOPLANTI_NOTU", i));
			//fObject.Set("SORUMLU", (string) FormData.getRepAttribute("TOPLANTI_NOTLARI", "SORUMLU", i));
			//fObject.Set("TERMIN_ZAMANI", FormData.getRepAttribute("TOPLANTI_NOTLARI", "TERMIN_ZAMANI", i));
			//fObject.Set("TERMIN_ZAMANI", row.Get("TERMIN_ZAMANI"));
			fObject.Set("AKSIYON", (string)row.Get("TOPLANTI_NOTU"));
			fObject.Set("SORUMLU", (string)row.Get("SORUMLU"));
			fObject.Set("GOREV_ATAYAN", (string)row.Get("GOREV_TALEP_EDEN"));
			DateTime? termintarih = row.Get("TERMIN_ZAMANI")as DateTime? ;
			if (termintarih != null)
			{
				fObject.Set("TERMIN_ZAMANI", termintarih.Value);
			}
			else
			{   
				DateTime? yenitermintarih=DateTime.Now;
				fObject.Set("TERMIN_ZAMANI", yenitermintarih.Value.AddDays(1));
			}
			flwData.FormData = fObject;
			flwData.ContentType = WorkItemContentTYPE.NoContent;
			a_GenericResult gr = Server.productivity.rWorkflow.CreateWorkflow(flwData, "F");
			Log("WFID :" + gr.Result);
			i++;
		}
	}
	Log("Toplantı Tutanakları Alt Akış Başlatma Makrosu bitti.");
	SaveObject();
	SaveAttachment();
}

catch (Exception ex) {
	Log("Makro çalışırken hata oluştu. Hata: " + ex.Message);
	return false;
}

No comment

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.