Skip to content

Basic Conversion Task

This is basic conversion task for longer procress or server method.

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