0

Axaptaには次のような関数があります。

static client XMLDocument GetXmlData()
{
    XMLDocument xmlReturnDoc = new XMLDocument();

    // Build XML Document

    return xmlReturnDoc;
}

これにより、XMLドキュメントが返されます。次に、ビジネスコネクタを使用して.NETプログラムから次のようにこれを呼び出します。

Axapta ax;
object o;

ax = new Axapta();
ax.Logon(null, null, null, null);

o = ax.CallStaticClassMethod(“MyClass”, “GetXmlData”);

ただし、これを.NETのSystem.Xml.XmlDocumentにキャストできないようです。これを行う方法はありますか、それとも文字列を返してドキュメントをリロードする必要がありますか?

4

2 に答える 2

1

AXXMLDocumentは CLR と同じ獣ではありませんSystem.Xml.XmlDocument

オブジェクト タイプ間の自動変換はありません。プリミティブ型の暗黙的な変換がいくつかありますが、その方法は 1 つだけです。方法: X++ と CLR プリミティブ型の間のマーシャリングを参照してください。

「方法: .NET ビジネス コネクタを使用してビジネス ロジックを呼び出す」を読むと、XML 文字列を返すのが簡単な方法であることに疑いの余地はありません。

于 2011-04-28T11:54:01.147 に答える
0

IMHO、正しいタイプを Axe に渡すことができます

void netGetXmlData(System.Xml.XmlDocument netXml)
{
    XMLDocument xmlDoc = GetXmlData();
    netXml.set_InnerText(xmlDoc.text());

}

CLR からこの AX メソッドを呼び出します。

ax.CallStaticClassMethod(“MyClass”, “GetXmlData”, xmlDoc);

AX は CLR データ型で正しく動作します。AX 側で NET XML ドキュメントを生成できます。

于 2011-05-03T11:52:12.833 に答える