Цитата:
Сообщение от
propeller
X++:
Axapta = new Com("AxaptaCOMConnector.axapta2");
Axapta.Logon2(****);
transdate = mkdate(25,11,2009);
axaptaTable = Axapta.CreateRecord("CustInvoiceJour");
axaptaTable.ExecuteStmt("select * from %1 where %1.InvoiceDate == 24\11\09");
while (axaptaTable.found())
{
axaptafield = axaptaTable.field("InvoiceId");
info(axaptafield.bStr());
axaptaTable.next();
}
Job запускаю в Ax 4.0, комконнектор коннектится к Ax 2.5
Это так и задумано, что mkDate() - на 25 число, а запрос с константой - на 24? Если попоробовать подставить ДРУГИЕ даты в виде константы?
И еще, поле CustInvoiceJour.InvoiceId не имеет признака Mandatory. Вы уверены, что для найденных записей InvoiceId указано? Может, пытаться читать RecId? Или просто подсчитывать количество шагов цикла (количество строк в выборке).
Вот такой тест что даст
X++:
Axapta = new Com("AxaptaCOMConnector.axapta2");
Axapta.Logon2(****);
transdate = mkdate(1,11,2009);
for (nextI = 1; nextI <= 30; nextI++ )
{
axaptaTable = Axapta.CreateRecord("CustInvoiceJour");
axaptaTable.ExecuteStmt("select * from %1 where %1.InvoiceDate == " + global::date2StrXpp(transdate));
if (axaptaTable.found()) info(strFmt("%1 YES", transDate));
else info(strFmt("%1 NO", transDate));
transdate += 1;
}