I built a connector to handle data coming in from an external system. The data is submit in XML format through a post to an API end point. When that end point gets hit I call ProcessInternalTask() and, in PrepareInternalObject(), I convert the data over to a custom page type. Everything works fine, to a point. If I turn off @Process Incoming Request@ in Settings I see the item in the incoming queue. It is of type @UpdateDocument@ and I can see the updated data in the modal, if I click the view button. Then, I run the @Process External Integration Tasks@ task and the queue is cleared out, but the object is never updated. No errors are logged anywhere.From the examples I've seen, I don't think I should be calling treeNode.Update() in PrepareInternalObject(), is that correct? I just assign the IntegrationProcessTypeEnum to UpdateDocument, pull back the treenode in question, update the proper fields and then return it. Is there something I am missing?Here's the connector code...public override void Init()
{
ConnectorName = GetType().Name;
}
public override ICMSObject PrepareInternalObject(object obj, TaskTypeEnum taskType, TaskDataTypeEnum dataType, string siteName)
{
// Cast to marketingCommunity
var marketingCommunity = (MarketingCommunity)obj;
TreeNode treeNode = DocumentHelper.GetDocuments(marketingCommunity.CurrentClassName).Where(@ExternalSourceID = '@ + marketingCommunity.Community.CommunityId + @'@);
// Update fields…
treeNode.SetValue(@Zip@, marketingCommunity.Community.CommunityZip);
treeNode.SetValue(@City@, marketingCommunity.Community.CommunityCity);
treeNode.SetValue(@State@, marketingCommunity.Community.CommunityState);
return treeNode;
}
↧