AXForum  
Zurück   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Kennwort vergessen?
Registrieren Forum Rules Hilfe Benutzerliste Heutige Beiträge Suchen

 
 
Themen-Optionen Thema durchsuchen Ansicht
Alt 11.12.2007, 15:05   #1  
TasmanianDevil ist offline
TasmanianDevil
Мрачный тип
Benutzerbild von TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Registriert seit: 24.01.2005
Ort: Томск
Расскажите кто-нибудь логику работы LedgerBondServer_RU и иже с ними ...
собственно subj ...
__________________
Мы летаем, кружимся, нагоняем ужасы ...
Alt 11.12.2007, 15:55   #2  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Сложно. Если в двух словах, то сначала проводки расщепляются согласно сумме корреспонденции, а затем класс пытается, наоборот, слить полученное с предыдущими проводками, если все у них совпадает, включая корреспондирующие части.

Пример:
1) Д62 300 р.
2) К90.1 100 р.
3) К90.2 100 р
4) К90.1 100 р

1 шаг: если (1) корреспондирует с (2), (3), (4), то получаем
(1.1) Д62 - (2) К90.1 100 р.
(1.2) Д62 - (3) К90.2 100 р.
(1.3) Д62 - (4) К90.1 100 р.

2 шаг: первая и третья строчки сливаются:
(1.1) Д62 - (2) К90.1 200 р.
(1.2) Д62 - (3) К90.2 100 р.

Когда-то я все описал с рисунками в CHM-файле к одной из версий.
Предлагаю просто оттрассировать отладчиком. Включите еще макрос #Never для вывода отладочной информации.

Geändert von EVGL (11.12.2007 um 15:57 Uhr)
Alt 11.12.2007, 16:17   #3  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Кое-что нашел: функциональная спецификация ко 2 версии корреспонденции:
On-line correspondence_RU.doc

Предпосылки к 3 версии (из того самого CHM):
Zitat:
Общее описание (Vision / Scope summary)

В данной технической спецификации изложены принципы работы нового механизма разноски проводок ГК и нового интегрированного блока корреспонденции.
Помимо очевидных переделок корреспонденции, связанных с тем, что HQ полностью переписала классы разноски проводок ГК, предполагается решить проблему "позднего" связывания ссылок VRef с проводками LedgerTrans. Ситуация следующая:

пусть создаются проводки в режиме суммирования

Д62 500 - К10 600

Д10 600 - К90 500

В этом случае проводки по счету 10 "сократятся", и в итоге будет проведено: Д62 500 - К90 500. Текущая система корреспонденции запоминает проводки по 10 счету и пытается найти для них реальные проводки LedgerTrans. А их нет. Для данной конкретной ситуации проблема решена, но если "сократятся" проводки по схеме 2-1, 2-2 и т.д., задачу успешной корреспонденции оставшихся проводок не решить.

Предлагается не суммировать проводки, если их корреспондирующие части различны, т.е. оставить четыре проводки

Д62 500 - К10 600

Д10 600 - К90 500, а не две.

Это требует коренной переделки заключительных этапов корреспонденции.
This post has been rated by: Lemming (3), driller (1).
Alt 11.12.2007, 16:19   #5  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
А также модель классов и вызовов в формате Rational Rose:
30001.rar

Буду очень рад, если кто-нибудь откроет этот файл и выложит сюда рисунки в формате GIF. У меня Rational Rose (или как это теперь называется) нет.

Geändert von EVGL (11.12.2007 um 16:23 Uhr)
This post has been rated by: belugin (6).
Alt 11.12.2007, 22:31   #6  
fed ist offline
fed
Moderator
Benutzerbild von fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2.913 / 5736 (197) ++++++++++
Registriert seit: 13.03.2002
Ort: Hüfingen,DE
А зачем возникла потребность разбираться в ledgerBondServer_ru ? Я просто залезал туда когда-то из любопытства, но детально разбираться не стал, поскольку для прикладных задач там вроде бы менять особо нечего (все и так хорошо), а из спортивного интереса разбираться в нетривиальном коде особого смысла нет...
Есть сильное подозрение, что любую прикладную задачу можно решить без изменения кода классов корреспондирования.

Geändert von fed (11.12.2007 um 22:41 Uhr)
Alt 11.12.2007, 22:54   #7  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Совершенно согласен. В класс LedgerBondServer_ru, как правило, лезут тогда, когда что-то не корреспондируется, и отладчик приземляется в нем. Вот только проблема в 99,9% случаев не в классе, а в неправильном указании корреспонденции где-то извне в соответствующей части приложения.
Alt 12.12.2007, 06:30   #8  
TasmanianDevil ist offline
TasmanianDevil
Мрачный тип
Benutzerbild von TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Registriert seit: 24.01.2005
Ort: Томск
У нас пробовали прикрутить количество в проводки/балансы - с разносками, где LedgerVoucher работает с режимом DetailSummary:: Detail все ОК, а вот в варианте DetailSummary::Summary при слиянии проводок количество не участвует и в результирующую проводку кол-во попадает из последней в сливе.
В данном аспекте и есть интерес к данному классу, ибо, потыкамшись раз N-дцать дебаггером при разноске накладной по закупке, ясного понимания логики всех манипуляций не постиг, как собственно по классу, так и по временным таблицам для корреспонденции.

Хочется понять - стоит в этом направлении копать дальше или забросить, как безперспективное направление ?

P.S. Ноги там растут из LedgerVoucher.postGroup(), в котором на sys слое есть учет кол-ва в проводке при слиянии, а на dis модификация уважаемого EVGL( с участием subj'а) в которой объекты хоть и имеют методы передачи/возврата кол-ва, но внутри с ним никак не работают
__________________
Мы летаем, кружимся, нагоняем ужасы ...

Geändert von TasmanianDevil (12.12.2007 um 07:29 Uhr)
Alt 12.12.2007, 10:03   #9  
fed ist offline
fed
Moderator
Benutzerbild von fed
Ex AND Project
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2.913 / 5736 (197) ++++++++++
Registriert seit: 13.03.2002
Ort: Hüfingen,DE
А ты не пробовал просто заменить суммирование по ledgerBalncesDimTrans на суммирование исходного ledgerTrans ? Просто на реальных внедрениях размеры таблицы балансов и таблицы проводок отличаются где-то в 20-50 раз. При этом время выполнения выборки по индексу ростет не по линейной зависимости от числа записей, а по логарифмической. И есть большие шансы что замена суммирования балансов на суммирование проводок не даст заметного для пользователя проигрыша в производительности...
Alt 12.12.2007, 10:53   #10  
TasmanianDevil ist offline
TasmanianDevil
Мрачный тип
Benutzerbild von TasmanianDevil
Злыдни
 
887 / 389 (14) ++++++
Registriert seit: 24.01.2005
Ort: Томск
fed, нет-нет - LedgerTrans и LedgerBalancesDimTrans тут не причем, они не причина, а следствие.
В них попадает уже свернутые subj'ем проводки из накладных закупок/продаж , в которых LedgerVoucher в варианте DetailSummary::Summary, т.е. со сверткой, работает. Номенклатура у нас является одним из уровней аналитики и , в случае единичного явления номенклатуры в строках этих документов - с количеством все ОК, разная аналитика по строкам не дает свернуть. Когда же номенклатура более чем один раз фигурирует в накладной (разная цена , разная номенклатурная аналитика хранения) - образуется пара или более проводок ГК с идентичными счетом,аналитикой и пр., которые сначала сворачиваются subj'ем, а затем после свертки постятся в ГК и иже с ней. Вот на этапе свертки второй день сижу, не могу понять, как можно корректно вклиниться в семейство LedgerBond*_RU для корректного подсчета кол-ва в свертываемых проводках и передачи подсчитанного в свернутую проводку.

Там оно просто жуть, тамошняя логика реверс-инжинирингу поддается с трудом ...
__________________
Мы летаем, кружимся, нагоняем ужасы ...

Geändert von TasmanianDevil (12.12.2007 um 10:56 Uhr)
Alt 12.12.2007, 11:55   #11  
EVGL ist offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4.445 / 3001 (0) ++++++++++
Registriert seit: 09.07.2002
Ort: Parndorf, AT
Понял. Решение:
1) в методе \Classes\LedgerBondTransObject_RU\splitBondTransObject разделяйте количество пропорционально чему-либо (см. "шаг 1")
2) в методе \Classes\LedgerBondTransObject_RU\mergeBondTransObject суммируйте количество (см. "шаг 2")
Все.
This post has been rated by: TasmanianDevil (3).
Stichworte
faq, корреспонденция, crm2011

 

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Есть ли у кого-нибудь такая штучечка? miklenew DAX: Программирование 54 01.06.2015 12:09
Отчеты и иже с ними PlasticinE DAX: Программирование 32 02.08.2008 14:36
Пример работы с Excel через COM Jox DAX: База знаний и проекты 5 06.06.2006 13:36
Использование профилировщика и толкование результатов его работы belugin DAX: Программирование 3 22.11.2005 16:56
Query и иже с ними PlasticinE DAX: Программирование 2 23.12.2001 19:29

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Gehe zu

Рейтинг@Mail.ru
Alle Zeitangaben in WEZ +3. Es ist jetzt 08:49 Uhr.
Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.