Рассматривали ли вы возможность использования AIF?
Простой способ, если вы настаиваете на прямом вызове AX:
Создайте статические методы X++ и вызовите их:
- для создания журнала
- для создания строки журнала, поля как параметры
- для публикации журнала верните
infolog
(в виде строки)
Позвольте методам AX выполнить сантехнику с классами проводки бухгалтерской книги.
Проводка все или ничего (с возможным переносом строк ошибок в новый журнал). Номера ваучеров используются повторно в случае ошибки. Я предполагаю, что это означает, что номера ваучеров выделяются при публикации, которые можно настроить для имени журнала.
Возвращаемое значение infolog
можно преобразовать в строку, чтобы упростить сторону C#.
Код X++ для преобразования в строку:
client server static str infoCon2List(container c)
{
TextBuffer t = new TextBuffer();
str info;
int i;
int n;
for (i = 1; i <= conlen(c); i += 2)
{
info = conpeek(c,i+1);
n = strFind(info,'\t',strLen(info),-99999);
t.appendText(strFmt('%1\t%2\t%3\n', conpeek(c,i), n > 1 ? strReplace(subStr(info,2,n-2), '\t', '\\') : '', substr(info,n+1,9999)));
}
return t.getText();
}
Как это назвать:
int e = infolog.num();
try
{
doThePosting(...);
}
catch //anything
{
exceptionTextFallThrough();
}
return Info::infoCon2List(infolog.copy(e+1,infolog.num()));
person
Jan B. Kjeldsen
schedule
27.07.2011