Basic Conversion Task
This is basic conversion task for longer procress or server method.
Requiremensts
Section titled “Requiremensts”- Conversion Servers
- Conversion Type
- Conversion Rule
- Conversion Task
- C# Methods
Conversion Server windows services need to enable.
conversion Type - We have to Create one conversion type Item, and attached the default conversion server.
conversion Rule - We have to Create one conversion rule Item, and use conversion type.
Cutoff: 1 Delay: 1 Timeout: 60
Method -1 - This attached with event handles in the conversion rule. event : Onconvert
Aras.ConversionFramework.Models.ConversionTask task = new Aras.ConversionFramework.Models.ConversionTask() { Item = this };Item onConvertHandler = task.Item.getRelationships("ConversionTaskEventHandler");if (onConvertHandler.getItemCount() == 1){ Item query = onConvertHandler.getItemByIndex(0); if (query.getProperty("event_type") == "OnConvert") { // Call custom method query.setProperty("user_data", "CUSTOM_METHOD");
// Pass the params from conversion task user data task.Item.setProperty("user_data", this.getProperty("user_data", ""));
task.Item.setAction("InvokeMethodOnConvert"); task.Item.apply(); }}return task.Item;Method -3 - Custom Logic runner
Aras.ConversionFramework.Models.ConversionTask task = new Aras.ConversionFramework.Models.ConversionTask() { Item = this };Innovator inn = this.getInnovator();try{ string userData = this.getProperty("user_data", "");
// CUSTOM LOGIC
OnConvertCompleted(inn, this.getID(), null); return this;}catch (Exception e){ OnConvertCompleted(inn, this.getID(), e); return inn.newError("HRDEESMthConversionModelRunner : " + e.Message);}
void OnConvertCompleted(Innovator inn, string taskId, Exception error){ Item ruleItem = inn.newItem("ConversionRule", "get"); Item ctaskItem = inn.newItem("ConversionTask", "get"); ctaskItem.setAttribute("levels", "1"); ctaskItem.setProperty("id", taskId); ctaskItem.setPropertyItem("rule_id", ruleItem); ctaskItem = ctaskItem.apply(); Aras.ConversionFramework.Models.ConversionTask ctask = new Aras.ConversionFramework.Models.ConversionTask(); ctask.Item = ctaskItem; var result = new Aras.ConversionFramework.Models.ConversionResult((Exception)null); if (error != null) result = new Aras.ConversionFramework.Models.ConversionResult(error); ctask.OnConvertCompleted(result);}Method -3 - Conversion task Creator
Innovator inn = this.getInnovator();Item result = VMCUtil.GrantIdentity("Conversion Manager", () =>{ try { Item conversionItem = inn.newItem("ConversionRule", "get"); conversionItem.setProperty("name", "HRDEEConversionRuleModel"); conversionItem.setAttribute("select", "id"); conversionItem = conversionItem.apply(); if (conversionItem.isError()) return inn.newError(conversionItem.getErrorString()); if (conversionItem.getItemCount() == 1) { // Don't Add select attribute. Item ruleItem = inn.newItem("ConversionRule"); ruleItem.createRelationship("ConversionRuleEventTemplate", "get"); ruleItem.setID(conversionItem.getID()); ruleItem = ruleItem.apply("get"); if (ruleItem.isError()) return inn.newError(ruleItem.getErrorString()); Aras.ConversionFramework.Models.ConversionRule publishingRule = new Aras.ConversionFramework.Models.ConversionRule() { Item = ruleItem }; Aras.ConversionFramework.Management.InnovatorConversionManager conversionManager = new Aras.ConversionFramework.Management.InnovatorConversionManager(inn.getConnection()); conversionManager.CreateConversionTask(publishingRule, task => task.UserData = this.getID() + "|" + inn.getUserID()); } return this; } catch (Exception e) { return inn.newError("HRDEESMthConversionTriggerModel : " + e.Message); }});return result;