AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Функционал
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.12.2019, 12:53   #1  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
Технически их можно сделать, это должно работать так же как как и в меппинге моделей. Это не рекомендуется. Насколько я помню, если не хочется их видеть, можно убрать у соответствующего пользователя роль разработчика ER оставив роль функционального консультанта или выключить Show Details - будет упрощенный режим.
Вопрос не в "не хочется их видеть". Я бы сформулировал так: не хочется трогать базовую модель. На одной модели реализуется десятки-сотни конкретных документов/отчетов. И если для построения конкретного отчета в модели не хватает каких-то данных, то при настройке формата конкретно этого документа добавить недостающий источник данных (таблицу), "увязать" ее с корневым элементом модели и использовать при выводе в отчет.
Это в принципе возможно? Есть смысл "методом тыка" пытаться в этом разобраться или это априори бесперспективно?
Старый 04.12.2019, 13:36   #2  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
Я не знаю других источников. Там есть разделы как обще-информативного характера и step-by-step.

Вот пример раздела первого типа, где содержится описание рекомендуемого подхода:

документация:

Although GER allows for direct mapping of format components to database artifacts (tables or data entities), we don't recommend this approach, because it's likely that multiple formats will be maintained in some business domain areas that use the same data sources. Whenever the structure of such database artifacts is changed, the format mapping to the database artifacts must also be changed, and the cost of these changes will be multiplied by the number of maintained formats. Therefore, we recommend that you work through the data model as the abstract description of the domain-specific data structure, and that you use the direct binding of format elements to database components only for simplification and for coverage for specific customizations (for example, to refer to custom tables when these references are required in a limited number of maintained formats).

Некоторые шаги во разделах второго типа содержат пояснения.

Мы работаем над реструктуризацией документации, но я не могу сказать, когда вы сможете увидеть результаты этого.
Я добросовестно прочитал все, что нам есть, честно. Но реальной пользы не вижу.
Пару простых вопросов:
- в каких случаях использовать "Добавить корень", а в каких "Добавить"?
- в чем отличие "Таблица" и "Записи таблицы" как источника данных?
- что такое "Поиск" среди источников данных
- нужно ли каждую таблицу добавлять как источник данных или только "корневую", а все связанные через relations определяются как "Вычисляемое поле"?
- где можно выполнять фильтрацию записей - только в модели или это можно сделать и в формате?

Вот пример вопросов, которые в первую очередь возникают у меня как не-программиста (хотя и с 30-летним опытом программирования, но в прошлом), на которые хотелось бы видеть ответы в документации - пусть одним-двумя абзацами, чисто концептуально.
А сейчас единственный доступный мне путь - изучать уже загруженные модели/форматы и пытаться понять, как оно работает.
За это сообщение автора поблагодарили: belugin (5).
Старый 04.12.2019, 12:47   #3  
axm2017 is offline
axm2017
Участник
 
1,832 / 295 (13) ++++++
Регистрация: 15.05.2017
Так как слегка сталкиваюсь с ЕР + скучно, осмелюсь ответить.

Цитата:
Сообщение от Libovs Посмотреть сообщение
Вообще говоря, такое предположение у меня было. Но тогда непонятно, почему в конструкторе форматов доступны кнопки Добавить корень / Добавить - Добавить источник данных и можно выбрать любой объект - таблицу, класс, записи таблицы и т.п.
Если в конструкторе форматов можно ТОЛЬКО сопоставлять поля/теги шаблона с элементами модели, то почему все эти кнопки/функции доступны на форме?
Потому что можно добавлять и использовать. Хотя не рекомендуется: почему хз.

Цитата:
Сообщение от Libovs Посмотреть сообщение
И такой вопрос: в природе существует какая-то документация кроме
https://docs.microsoft.com/ru-ru/dyn...onic-reporting ?
Вроде есть видео.

Цитата:
Сообщение от Libovs Посмотреть сообщение
И это позиционируется как инструмент для не-программиста?
Да, и в общем и целом это вполне может покатить (как Excel). Проблема с документацией решается, подозреваю, одним человечко-месяцем на нормальную документацию, но видимо у МС нет ресурсов.
Старый 04.12.2019, 13:43   #4  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от axm2017 Посмотреть сообщение
Так как слегка сталкиваюсь с ЕР + скучно, осмелюсь ответить.

Потому что можно добавлять и использовать. Хотя не рекомендуется: почему хз.
Не сочтите за нахальство, но если "сталкиваюсь с ЕР + скучно" - не подскажите, как мне попробовать реализовать то, что я описал выше?

"Неправильно ВСЕ" - не стимулирует у меня мыслительный процесс
Старый 04.12.2019, 13:15   #5  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от EVGL Посмотреть сообщение
Вы делаете неправильно ВСЕ. В конструкторе формул ФОРМАТА принципиально нельзя оперировать таблицами, это можно делать только в маппинге модели.
Вот теперь я в полной растерянности. "ВСЕ неправильно" - может это и справедливо, не могу судить, но тогда КАК правильно?

Стоит ли пробовать все-таки это сделать в формате или только в модели?
Старый 04.12.2019, 13:07   #6  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Конкретную ситуацию я описал выше:
- в модели ОС корневой элемент AssetTable;
- $Books - список записей из таблицы AssetBook, связанных по Relations с текущей записью AssetTable.

Есть таблица LedgerJournalTrans_Asset с абсолютно идентичным Relations с AssetTable, но в модели ее нет.

Возможно ли в формате, а не в модели, добавить ее как источник данных, аналогично AssetBook?

Если хотя бы теоретически "это должно работать так же как как и в меппинге моделей", то можете ли схематично подсказать последовательность действий? А я уже попробую.
Старый 04.12.2019, 15:09   #7  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Вот и очередная непонятка: на форме создания источника данных типа записи таблицы есть галочка "Запросить запрос". Зачем она? На что влияет? Включать?
Без документации - ну ни как... Извините за нытье
Старый 04.12.2019, 15:13   #8  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
Вот и очередная непонятка: на форме создания источника данных типа записи таблицы есть галочка "Запросить запрос". Зачем она? На что влияет? Включать?
Без документации - ну ни как... Извините за нытье
Эта штука просит вызывающего предоставить аксаптовский запрос. Стандартное поведение - вывод его в диалог запроса параметров запуска - там можно будет наложить какие-то источники данных, но его может и программно заполнить вызыващий код X++
Старый 04.12.2019, 16:03   #9  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
Эта штука просит вызывающего предоставить аксаптовский запрос. Стандартное поведение - вывод его в диалог запроса параметров запуска - там можно будет наложить какие-то источники данных, но его может и программно заполнить вызыващий код X++
Вот одна фраза - и по сути понятно. Дождаться бы документации хотя бы с таким объемом информации.
Я понимаю, сколько прошло времени с выпуска АХ2012 и сколько с D365. По АХ2012 на docs.microsoft.com все-таки расписана каждая форма, кнопка и поле на форме, пусть конспективно и не всегда понятно на что влияет, но хоть что-то...
Старый 06.12.2019, 13:30   #10  
mnt_dx is offline
mnt_dx
Участник
Axapta Retail User
Лучший по профессии 2014
 
1,746 / 188 (10) ++++++
Регистрация: 17.02.2011
Адрес: К Северу через Северо-Запад
Подскажите, пожалуйста

Хотел, чтобы в импорте выписки в формате 1С поле плательщика бралось из второго возможного тэга, если первый пуст.

В Model mapping designer в дизайнере вот такая формула для счета плательщика:
Цитата:
@.SectionTypes.Documents.Data.Document.'$PayerAccountNum'.DocumentAttrTypes.PayerAccountNumSeq.Data.PayerAccountNum
хотел попробовать Если Х пусто, то "123" вот так

Цитата:
If(@.SectionTypes.Documents.Data.Document.'$PayerAccountNum'.DocumentAttrTypes.PayerAccountNumSeq.Data.PayerAccountNum="","123",@.SectionTypes.Documents.Data.Document.'$PayerAccountNum'.DocumentAttrTypes.PayerAccountNumSeq.Data.PayerAccountNum)
при нажатии ТЕСТ ругается
Цитата:
Incorrect reference 'format/IncomingFile/File/$Documents/SectionTypes/Documents/Data/Document/$PayerAccountNum/DocumentAttrTypes/PayerAccountNumSeq/Data/PayerAccountNum'
No overload for function = matches the input parameters
Function arguments are of incorrect types in 'If'
Я, наверное, все не так делаю?
Старый 06.12.2019, 13:53   #11  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Я не знаю, что тут неправильно. Ошибка означает, что он не может найти операцию сравнения для данных аргументов. Для строк операция сравнения есть. Значит что-то не то с типами данных. Либо какая-то ошибка в пути, что он не определил тип либо еще что-то.
Старый 06.12.2019, 17:03   #12  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Очень не хватает в конструкторе форматов кнопки Свернуть/Развернуть на правой части формы (модели). На левой (шаблона) она есть.
Т.к. Поиск выполняется только по развернутым узлам, то раскрывать все дерево модели ручками как-то не по феншую.
Может есть какой hotkey или недокументированная возможность?
Старый 06.12.2019, 17:24   #13  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
Может есть какой hotkey или недокументированная возможность?
Нету - там может быть источник данных с очень глубокой или бесконечно глубокой структурой.
Старый 09.12.2019, 11:43   #14  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Подскажите, как написать выражение с вызовом метода таблицы с параметрами?
Добавил источник данных таблица
AssetLedgerAccounts(Asset Ledger Accounts):Таблица AssetLedgerAccounts
у нее есть метод
assetLedgerDimension():Int64 (String _assetId, String _assetBookId, AssetTransType _assetTransType, String _assetPostingProfile, AssetDocumentType_JP _assetDocumentType_JP, Int64 _assetDocumentEntryRecId)
Ячейку отчета связал с этим методом
Ячейка<Col05_LedgerAccount> = model.AssetLedgerAccounts.'assetLedgerDimension()'
В качестве параметров надо передать элементы
model.'$BooksRecords'.'$LedgerJournalRecords'.AssetId
model.'$BooksRecords'.'$LedgerJournalRecords'.BookId
model.AssetTransTypeJournal.Acquisition
model.'$BooksRecords'.General.PostingProfile.Id

Попытка вставить между скобками пару кавычек и в них пути к параметрам успехом не увенчалась
Ячейка<Col05_LedgerAccount> = model.AssetLedgerAccounts.'assetLedgerDimension('model.'$BooksRecords'.'$LedgerJournalRecords'.AssetId, model.'$BooksRecords'.'$LedgerJournalRecords'.BookId, model.AssetTransTypeJournal.Acquisition, model.'$BooksRecords'.General.PostingProfile.Id')'

Как это правильно сделать?
Старый 09.12.2019, 11:54   #15  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Это невозможно. Методы с параметрами приходится эмулировать прямым SQL в выражениях FILTER или WHERE:

FILTER(EGCAssetLedgerAccounts, AND(EGCAssetLedgerAccounts.BookId=AssetRollForwardTmp.AssetBookId,OR(EGCAssetLedgerAccounts.AccountRelation=AssetRollForwardTmp.AssetGroup, EGCAssetLedgerAccounts.AccountRelation=""), EGCAssetLedgerAccounts.TransType=EGCAssetTransType.Acquisition, EGCAssetLedgerAccounts.PostingProfile=EGCAssetParameters.PostingProfile))

Последний раз редактировалось EVGL; 09.12.2019 в 12:01.
Старый 09.12.2019, 12:38   #16  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от EVGL Посмотреть сообщение
Это невозможно. Методы с параметрами приходится эмулировать прямым SQL в выражениях FILTER или WHERE:
Мне кажется вы ошибаетесь.В другой ветка форума я нашел

Цитата:
Сообщение от belugin Посмотреть сообщение
1) Корректный синтаксис для таблиц x.'method()'("Параметр")
Буду пробовать.
За это сообщение автора поблагодарили: EVGL (5).
Старый 09.12.2019, 13:00   #17  
EVGL is offline
EVGL
Banned
Соотечественники
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
 
4,445 / 3001 (0) ++++++++++
Регистрация: 09.07.2002
Адрес: Parndorf, AT
Цитата:
Сообщение от Libovs Посмотреть сообщение
Мне кажется вы ошибаетесь.В другой ветка форума я нашел
Буду пробовать.
Очень интересно! Напишите. В документации об это синтаксисе нет ни слова
Может быть проблема с динамическими параметрами. Попробуйте сначала константы.
Старый 09.12.2019, 12:29   #18  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Тогда, по крайней мере мне, непонятна разница между типами Источника данных "Записи таблицы" и "Таблица". Я считал что второй как раз и дает возможность получить доступ к методам, в отличии от первого.
Старый 09.12.2019, 14:40   #19  
belugin is offline
belugin
Участник
Аватар для belugin
Сотрудники Microsoft Dynamics
Лучший по профессии 2017
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии 2011
Лучший по профессии 2009
 
4,622 / 2925 (107) +++++++++
Регистрация: 16.01.2004
Записей в блоге: 5
Цитата:
Сообщение от Libovs Посмотреть сообщение
Тогда, по крайней мере мне, непонятна разница между типами Источника данных "Записи таблицы" и "Таблица". Я считал что второй как раз и дает возможность получить доступ к методам, в отличии от первого.
Он дает возможность получить доступ к статическим методам таблицы
Старый 09.12.2019, 15:28   #20  
Libovs is offline
Libovs
Участник
 
224 / 53 (2) ++++
Регистрация: 26.03.2018
Цитата:
Сообщение от belugin Посмотреть сообщение
Он дает возможность получить доступ к статическим методам таблицы
Вот я и пытаюсь использовать
public server static LedgerDimensionDefaultAccount assetLedgerDimension( ... )
но никак не получается разобраться с форматом задания параметров в вызове.
Теги
generic electronic reporting, ger

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ievgensaxblog: MSDyn365FO. How to Import CSV file using Electronic Reporting. Part 2 – Format. Blog bot DAX Blogs 0 06.02.2019 07:12
ievgensaxblog: MSDyn365FO. How to Import CSV file using Electronic Reporting. Part 1 – Data Model. Blog bot DAX Blogs 0 06.02.2019 07:12
erconsult: Electronic Reporting (ER) Cookbook 2: new tips from the kitchen Blog bot DAX Blogs 0 06.08.2018 17:11
powerobjects: Electronic Reporting in Dynamics 365 for Finance and Operations Blog bot DAX Blogs 0 14.02.2018 03:28
erconsult: Electronic Reporting (ER) Cookbook Blog bot DAX Blogs 24 09.10.2017 08:47

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 03:44.
Powered by vBulletin® v3.8.5. Перевод: zCarot
Контактная информация, Реклама.