прежде всего, огромное спасибо.
Цитата:
Сообщение от
Blog bot
For example, existing transactions presume to have values for the following dimension attributes.
![](https://1.bp.blogspot.com/-8OsImyrXbmc/XU4FL3Hk1uI/AAAAAAACuBY/1H0tZozRTVIEy4c9j_01rpZ0-Z30LK__wCEwYBhgL/s1600/trans1.png)
это замечательно. но похоже, пример раскрывает как отфильтровать две ПОСЛЕДОВАТЕЛЬНЫЕ позиции. причем ничего не говорится, что в этих позициях могут находится и другие аналитики.
я думаю, что в статье обязательно требуется рассмотреть случай, когда в одной позиции могут находится несколько разных аналитик, в списке которых есть одинаковые значения. я навскидку уже не помню, но в демопримере был случай, когда во вторую позицию с одними счетами прибылей и убытков могли записываться либо CostCenter, а в другие счета прибылей и убытков во вторую позицию могли записываться Purpose. Или нечто подобное. Причем в обоих списках были значения 010.
возвращаясь к статье:
разбирать аналитики на примере банковских проводок - не очень. либо надо обосновать каким образом на банковских проводках могут возникнуть разные комбинации аналитик.
для каждой view стоит привести пример данных. Особенно для таких "By that we will get a
Carthesian product of all possible combinations between them".
очень хотелось бы статью, в которой раскрывались бы решения для следующих обыденных задач:
задача 1: отфильтровать проводки по счетам прибылей и убытков с CostCenter = 010. В какой бы позиции не находился CostCenter. При условии, что эти же позиции могут занимать другие аналитики И в этих других аналитиках также может существовать значение 010.
задача 1': то же самое, что в задаче 1, только CostCenter = 01*.
задача 1'': то же самое, что в задаче 1, только CostCenter = 01*..02*,!021.
задача 2: отфильтровать проводки по счетам прибылей и убытков с CostCenter = 010 и Department = 010. В какой бы позиции не находились CostCenter и Department. При условии, что эти же позиции могут занимать другие аналитики И в этих других аналитиках также может существовать значение 010.
задача ***: отфильтровать с условием "или". в запросах по остальным значениям (не финансовая аналитика) в поисковом выражении можно использовать скобки.
https://axapta.mazzy.ru/lib/search/
Примечание: можно посмотреть в 1С:Бухгалтерию, в которой задача выборки по субконто давно решена. можно также рассказать какой ценой решили эту задачу в 1С:Бухгалтерии.
Цитата:
Сообщение от
Blog bot
However, our selection can be different. For this exercice sake I opted for Business unit and Department.
опять же - и Business unit, и Department может находится в разных позициях в разных проводках.
в том числе, в некоторых случаях сначала может идти Business unit, а затем Department. а в некоторых - сперва Department, а затем Business unit. Причем между этими аналитиками могут быть расположены другие аналитики.
статья о фильтрации по чудо-финансовым-аналитикам без рассмотрения таких случаев не может трактоваться как полезная.
Цитата:
Сообщение от
Blog bot
Let's solve this problem step by step.
му-ха-ха-ха!!!
ни в коем случае не хочу принижать достоинства статьи и изложенного подхода.
Хочу сказать лишь одно - архитекторы, которые это чудо задолжили в Аксапту... они как собирались выполнять фильтрацию? какой способ по их мнению должны были использовать пользователи?
приходит такой пользователь и спрашивает "как отфильтровать по CostCenter"
а архитектор отвечает - "нет-нет, ты еще не готов к этому"
https://coub.com/view/1avfh5
а для продвинутых програмеров-в-закрытой-системе он начинает ответ с фразы "Let's solve this problem step by step..."
Цитата:
Сообщение от
Blog bot
Now we create a view based on...
е-е-е-е-е!!!!
we - это пользователи? или программисты?
сколько таких вью должны создать программисты в закрытой системе, чтобы пользователи хотя бы перестали ругаться?
Цитата:
Сообщение от
Blog bot
...without relation in outer join
серьезно?
и сколько значений сможет обслуживать этот подход к фильтрации?
можно ли вводить значения как критерий через запятую? со звездочкой? а с другими мета символами?
фиг с ними, с пользователями.
если использовать этот подход программно, то из кода сколько значений для фильтрации предполагается?
Цитата:
Сообщение от
Blog bot
X++:
private static server str displayValueWithNA() // X++
{
str sRet;
tableName viewName = viewstr(CDPDimensionAttributeValuesUnionView);
str cDisplayValue = SysComputedColumn::comparisonField(viewName,
viewstr(CDPDimensionAttributeValuesSelectedView),
fieldStr(CDPDimensionAttributeValuesSelectedView, DisplayValue));
sRet =
SysComputedColumn::if(SysComputedColumn::isNotNullExpression(cDisplayValue),
cDisplayValue,
SysComputedColumn::returnLiteral('n/a')
);
return sRet;
}
серьезно?
опять же со всем восхищением к изворотливости ума.
но задача тривиальной фильтрации действительно требует вот такого кода?
Цитата:
Сообщение от
Blog bot
X++:
private static server str finDimValues() // X++
{
return @"STUFF((SELECT '-' + t3.DisplayValue
from CDPDimensionAttributeValuesUnionView as t3
where
t1.DimensionAttributeValueSet = t3.DimensionAttributeValueSet
order by t3.DIMENSIONATTRIBUTE
for xml path('')), 1, 1, '')";
}
серьезно?!