I have a function in Axapta as follows:
static client XMLDocument GetXmlData()
{
XMLDocument xmlReturnDoc = new XMLDocument();
// Build XML Document
return xmlReturnDoc;
}
This returns an XML document. I’m then calling this from a .NET program using the business connector as follows:
Axapta ax;
object o;
ax = new Axapta();
ax.Logon(null, null, null, null);
o = ax.CallStaticClassMethod(“MyClass”, “GetXmlData”);
However, I don’t seem to be able to cast this to a System.Xml.XmlDocument in .NET. Is there a way to do this, or do I need to return a string and reload the document?
AX
XMLDocument
is not the same beast as CLRSystem.Xml.XmlDocument
.There is no automatic conversion between object types. There are some implicit conversions of primitive types, but only one way. See How to: Marshal Between X++ and CLR Primitive Types.
Reading How to: Call Business Logic Using .NET Business Connector leaves little doubt that the easy way is to return the XML string.