0

AX Businessコネクタを使用するc#のコードがあり、次のようになっています。

AxaptaRecord OrderRecord = (AxaptaRecord)ax.CallStaticClassMethod("BTNOnlineOrder", "getSalesOrder", salesRef);

if (OrderRecord.Found)
{
     AxaptaObject Lines = (AxaptaObject)OrderRecord.Call("querySalesLine");
     AxaptaObject qrLines = (AxaptaObject)ax.CreateAxaptaObject("QueryRun", Lines);

     while ((bool)qrLines.Call("next"))
     {
          int tableid = (int)ax.CallStaticClassMethod("Global", "tableName2Id", "InventTable");
          AxaptaRecord r = (AxaptaRecord)qrLines.Call("get", tableid);
     }  
}

「get」メソッドを呼び出そうとすると、次のエラーが発生します。

コードの実行中にエラーが発生しました:関数の引数タイプが間違っています。

tableidはint値175を返すため、tableidがnullなどによるものではありません。

どんな助けでもいただければ幸いです

4

2 に答える 2

2

使用するクエリに InventTable を指すデータソースがない場合、この (紛らわしい) エラーが発生します。このコードが、Ax sys レイヤーのデフォルトの SalesLine クエリでこの例外をスローすることを確認しました。私は同意します、それは紛らわしいエラーです。

消費するコードで InventTable が必要な場合は、カスタム クエリを定義し、それを querySalesLine メソッドから返す必要があります。

于 2012-03-16T19:01:05.677 に答える
0

getNoメソッドを使用し、パラメーターとして 1 を渡すことで、これを機能させました。それが正しい方法かどうかはわかりませんが、私にとってはうまくいきました:

http://msdn.microsoft.com/en-us/library/aa612609(v=ax.50).aspx

于 2012-03-19T15:15:09.397 に答える