Ошибка при выполнении кода: неверный тип аргумента для функции - PullRequest
0 голосов
/ 16 марта 2012

У меня есть код на c #, который использует коннектор AX Business, и вот так:

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 равен нулю или что-то в этом роде.

Любая помощь будет оценена

Ответы [ 2 ]

2 голосов
/ 16 марта 2012

Если используемый вами запрос не имеет источника данных, указывающего на InventTable, вы получите эту (запутанную) ошибку.Я подтвердил, что этот код выдает это исключение в запросе SalesLine по умолчанию в слое Axis sys.Я согласен, это сбивающая с толку ошибка.

Если вам нужен InventTable в вашем потребляющем коде, вам нужно определить пользовательский запрос и вернуть его из метода querySalesLine.

0 голосов
/ 19 марта 2012

Я получил это для работы, используя метод getNo и передав 1 в качестве параметра.Я не уверен, правильно ли это или нет, но у меня это сработало:

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

...