11.01.2005, 14:37 | #1 |
Участник
|
При попытке просмотреть статистику продаж в модуле CRM появляется сообщение:
Должен быть указан код валют. Последовательность действий следующая: 1. Создаю предложение в модуле CRM 2. Перевожу его в заказ 3. Открываю форму CRM/Периодические операции/Управление продажами/Статистика продаж, в которой указываю Представление = Заказ против плана. На этапе 3 возникает упомянутая ошибка. Созданный в результате шагов 1 и 2 заказ успешно обрабатывается системой без внесения в него изменений, после чего форма Статистика продаж открывается уже без ошибки. Таким образом, я не могу просмотреть статистику до тех пор, пока у меня есть не обработанные заказы, как это победить? |
|
11.01.2005, 15:20 | #2 |
Участник
|
Я так понимаю, ключевое слово - статистика продаж. То есть небработанный заказ - это еще не продажа, это только намерение, которое возможно и не реализуется. Поэтому и считаются только проведенные.
|
|
11.01.2005, 15:41 | #3 |
Участник
|
Не смог воспроизвести ситуацию.
Мало того, в Axapta 3.0 SP3 CU1 нет текста "Должен быть указан код валют." Попробуйте воспользоваться методом обнаружения источника ошибки http://axapta.mazzy.ru/hints/exploreerror/ http://axapta.mazzy.ru/hints/xref/#060 |
|
11.01.2005, 15:47 | #4 |
Участник
|
У меня Axapta 3.0 SP2.
Текст метки я немного перепутал: "Должен быть указан код валюты", код метки @SYS23229 Ошибка повторяется регулярно, предпологаю дело в настройках, только вот в каких... Ладно буду искать через код. |
|
11.01.2005, 16:26 | #5 |
Участник
|
Ошибка появляется если в системе есть заказ, у которого:
"Тип заказа" = Заказа "Статус" = Открыто "Ответств. продавец" = тот, по которому строится статистика. Пока не могу сказать со 100% гарантией, но помоему тут бага в коде: Метод getInvoicedAmountWithOutTax класса smmSalesManagementQuery <div class='XPPtop'>X++</div><div class='XPP'> [color=:blue]while[/color] (_qr.[color=:blue]next[/color]()) { salesTable = _qr.get([color=:blue]tableNum[/color](SalesTable)); [color=:blue]if[/color] (!(salesTable.projId)) { [color=:blue]select[/color] custInvoiceJour [color=:blue]where[/color] custInvoiceJour.salesId [color=:blue]==[/color] salesTable.salesId; totalAmount += Currency::mSTAmount(.....); } }</div> по открытым заказам записей в custInvoiceJour нет, и при расчете totalAmount в метод mSTAmount идет неинициализированная переменная custInvoiceJour, что и приводит к ошибке. |
|
11.01.2005, 16:49 | #6 |
Участник
|
*** извините, ошибся. удалил ***
|
|
11.01.2005, 16:59 | #7 |
Administrator
|
Эта ошибка исправлена в SP3.
Цитата:
Request No.: ES-205-306-HF2J
Subject: Incorrect management statistics on updated sales orders from CRM Quotation Description: The Management statistics graphs and underlying data were incorrect when displaying summary updated sales orders from CRM Quotations. This has been corrected. Corrected Source File: Class "smmSalesManagementQuery" <div class='XPPtop'>X++</div><div class='XPP'>[color=:blue]public[/color] AmountCur querySalesOrderInvoicedWithOutTax(TransDate _fromDate, TransDate _toDate, EmplId _employee, smmSalesUnitId _salesUnit, smmPerspective _perspective) { AmountCur totalAmount; CustInvoiceJour custInvoiceJour; SalesTable salesTable; ; [color=:blue]if[/color] (_employee && _perspective [color=:blue]==[/color] smmSalesManagementPerspective::Salesman) { [color=:blue]while[/color] [color=:blue]select[/color] custInvoiceJour join salesTable [color=:blue]where[/color] custInvoiceJour.SalesId [color=:blue]==[/color] salesTable.SalesID && salesTable.SalesResponsible [color=:blue]==[/color] _employee && custInvoiceJour.InvoiceDate <= _toDate && custInvoiceJour.InvoiceDate >= _fromDate { totalAmount += Currency::mSTAmount(custInvoiceJour.InvoiceAmount - custInvoiceJour.SumTax, custInvoiceJour.CurrencyCode, custInvoiceJour.InvoiceDate); } } [color=:blue]if[/color] (_salesUnit && _perspective [color=:blue]==[/color] smmSalesManagementPerspective::SalesUnit) { [color=:blue]while[/color] [color=:blue]select[/color] custInvoiceJour join salesTable [color=:blue]where[/color] custInvoiceJour.SalesId [color=:blue]==[/color] salesTable.SalesID && salesTable.SalesResponsible [color=:blue]==[/color] _employee && custInvoiceJour.InvoiceDate <= _toDate && custInvoiceJour.InvoiceDate >= _fromDate { totalAmount += Currency::mSTAmount(custInvoiceJour.InvoiceAmount - custInvoiceJour.SumTax, custInvoiceJour.CurrencyCode, custInvoiceJour.InvoiceDate); } } [color=:blue]return[/color] totalAmount; }</div> Попробуйте изменить этот метод.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
11.01.2005, 17:03 | #8 |
Administrator
|
Кстати, в SP3 тот метод, который у Вас приводит к ошибке (getInvoicedAmountWithOutTax) вообще ниоткуда не вызывается.
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|
11.01.2005, 17:11 | #9 |
Участник
|
Спасибо.
Все заработало. |
|