|
![]() |
#1 |
Участник
|
Тут https://techeplanet.com/json-example/ нашел такую картинку
сейчас пробую такую структуру повторить в GER |
|
![]() |
#2 |
Участник
|
Со вложенностью объектов разобрался, спасибо axm2017
Но теперь проблема с массивом. Сделал такую структуру При Выполнить генерится шаблон {"Prop0": ,"InObj": {"InProp1": ,"InProp2": },"InArray": [{"ArProp1": ,"ArProp2": }]} Визуально вроде все правильно, и если загружать из него массив с одной строкой - то срабатывает {"Prop0":"str1","InObj": {"InProp1":3,"InProp2":11.22},"InArray": [{"ArProp1":"str2","ArProp2":"str3"}]} но если добавляю в массив еще одну строку {"Prop0":"str1","InObj": {"InProp1":3,"InProp2":11.22},"InArray": [{"ArProp1":"str2","ArProp2":"str3"},{"ArProp1":"str4","ArProp2":"str5"}]} то вылетает ошибка. В маппинге массив отображается не как список записей, а как запись поэтому появление ошибки вроде как и должно быть. Но как правильно описать структуру, чтобы массив воспринимался именно как массив, т.е. список записей? Что во что надо вкладывать? Подскажите, если можно. |
|
![]() |
#3 |
Участник
|
Надо настроить Multiplicity на том элементе, который должен повторяться
|
|
![]() |
#4 |
Участник
|
Спасибо за подсказку - получилось! Я не обратил внимание, что это свойство контекстнозависимое - у корневого объекта и объекта вложенного в объект его нет, появляется только у объекта вложенного в массив.
И наткнулся на глюк GER-а - если просто изменить Multiplicity у уже существующего объекта, то он вообще пропадает из маппинга. Но после удаления и создания заново, сразу при создании задав 1..*, все становится правильно: в маппинге это уже список записей и данные загружаются. Спасибо за помощь. |
|
![]() |
#5 |
Участник
|
Надо вывести в отчет финаналитики в отдельные колонки причем их количество переменное, определяется выбранным в параметрах отчета набором аналитик. Настроил шаблон
и в маппинге формата диапазон с горизонтальной репликацией Все красиво получилось - во всех строках (заголовок, номера колонок, данные и итоги) выполняется вставка со сдвигом в право. Переношу отчет (через xml-файл) со среды разработки на среду тестирования и получаю такой результат Выглядит так, что в строках с заголовками и номерами колонок вставка ячеек выполнилась, но значения заполняются без учета сдвига. А в строках данных и итогов вообще доп.ячейки не вставляются и значения аналитик просто перекрывают последующие ячейки. Как можно понять различное поведение системы при выполнении одного и того же формата в разных средах и можно ли как-то на это влиять? Может кто-то сталкивался с подобной проблемой? Последний раз редактировалось Libovs; 15.08.2021 в 10:59. |
|
![]() |
#6 |
Участник
|
Похожая ситуация и с вертикальной репликацией. В шаблоне настроена двухуровневая группировка
В среде разработки при выполнении формата группировки "размножаются" Переношу конфигурацию формата на тестовую среду и получаю такой результат Выглядит так, будто на разных средах выполняется разный код - вызываются разные функции Excel или функция вставки строки с разными параметрами. Можно ли как-то на это влиять? Последний раз редактировалось Libovs; 15.08.2021 в 11:00. |
|
![]() |
#7 |
Участник
|
На вид все ок только данные разные.
А как вы делаете горизонтальный диапазон столбцов +заполнение в них данных? Если есть стандарт с подобным назовите pls формат, интересно |
|
![]() |
#8 |
Участник
|
Как я показал выше. Но у меня проблема в том, что на разных средах выполнение одного и того же формата приводит к различным результатам.
|
|
![]() |
#9 |
Участник
|
Цитата:
На будущее кому интересно чуть более развернуто. |
|
![]() |
#10 |
Участник
|
Версия приложения одна и та же? Набор включенных фич er один и тот же?
|
|
![]() |
#11 |
Участник
|
Я не админ, а консультант, подскажите:
Как посмотреть версию приложения? Какие фичи могут влиять на вывод в Эксель? Надо сравнить весь список? Со слов админа обе среды это виртуальная машина (SANDBOX) предоставляемый и администрируемый самим МС. Что именно на ней проинсталлировано - понять сложно (мне, по крайней мере). Последний раз редактировалось Libovs; 15.08.2021 в 18:53. |
|
![]() |
#12 |
Участник
|
Цитата:
Прежде всего использование EPPlus - "Enable usage of EPPlus library in Electronic reporting framework" |
|
![]() |
#13 |
Участник
|
На счет стандарта ничего сказать не могу, модель и формат делал сам "от корня" и все конструкции тоже придумывал сам.
Данные разные т.к. формат (отчет) выполнялся на разных средах. Делал так - в маппинге модели из GeneralJournalEntry отбираю записи по номеру ваучера, затем из GeneralJournalAccountEntry сами проводки; из структуры LedgerDimension выбираю аналитики, имеющие непустые значения $GeneralJournalLines:Вычисляемое поле = FILTER(GeneralJournalEntry, GeneralJournalEntry.SubledgerVoucher='$LedgerTransLines'.Voucher): Список записей $GeneralJournalAccountLines:Вычисляемое поле = FILTER(GeneralJournalAccountEntry, VALUEIN(GeneralJournalAccountEntry.GeneralJournalEntry, '$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId)): Список записей Финансовые аналитики LedgerDimension.Dimension(Счет ГК.Dimension):Запись Вычисляемые поля $GeneralJournalLine:Вычисляемое поле = FIRSTORNULL(WHERE('$LedgerTransLines'.'$GeneralJournalLines', '$LedgerTransLines'.'$GeneralJournalLines'.RecId=@.GeneralJournalEntry)): Запись $LedgerDimension:Вычисляемое поле = WHERE(@.'LedgerDimension.Dimension'.'Main account and dimensions', @.'LedgerDimension.Dimension'.'Main account and dimensions'.Value.Code<>""): Список записей Затем маппинг на модель Transactions(Проводки):Список записей = @.'$GeneralJournalAccountLines' AccountingDate(Дата учета):Дата = @.'$GeneralJournalLine'.AccountingDate AmountAccounting(Сумма в валюте учета):Вещественный = @.AccountingCurrencyAmount AmountReporting(Сумма в валюте отчетности):Вещественный = @.ReportingCurrencyAmount AmountTransaction(Сумма в валюте транзакции):Вещественный = @.TransactionCurrencyAmount Currency(Валюта):Строка = @.TransactionCurrencyCode JournalNumber(Номер журнала):Строка = @.'$GeneralJournalLine'.JournalNumber LedgerDimension(Аналитики):Список записей = @.'$LedgerDimension' Definition:Запись = @.Definition Name:Строка = @.Definition.Name Type:Строка = @.Definition.Type Value:Запись = @.Value Code:Строка = @.Value.Code Description:Строка = @.Value.Description LedgerDimensionValue(Аналитики значение):Строка = @.LedgerAccount MainAccountName(Счет ГК название):Строка = @.'>Relations'.MainAccount.Name MainAccountValue(Счет ГК):Строка = @.'>Relations'.MainAccount.MainAccountId Text(Описание):Строка = @.Text Voucher(Ваучер):Строка = @.'$GeneralJournalLine'.SubledgerVoucher В формате параметрами определяются счета ГК ($ReportAccounts) и набор аналитик ($DimensionSet) для фильтрации данных из модели Входные параметры пользователя $DimensionSet(Набор финансовых аналитик):Входной параметр пользователя: DimensionSetName $ReportAccounts(Счета ГК):Входной параметр пользователя: Список записей Value:MainAccountNum В сопоставлении вычисляются Вычисляемые поля $AnalyticsCount:Вычисляемое поле = COUNT('$AnalyticsList'): Целочисленный $AnalyticsList:Вычисляемое поле = DimensionHierarchy.'findByTypeAndName()'(DimensionHierarchyType.Focus, '$DimensionSet').'<Relations'.DimensionHierarchyLevel: Список записей $AnalyticsListOrdered:Вычисляемое поле = ORDERBY('$AnalyticsList', '$AnalyticsList'.Level): Список записей Вычисляемые поля $AnalyticName:Вычисляемое поле = @.'>Relations'.DimensionAttribute.Name: Строка $FilteredLines:Вычисляемое поле = WHERE(model.JournalLines, AND(model.JournalLines.AccountType=ACType.Vend, model.JournalLines.OffsetAccountType=ACType.Ledger, model.JournalLines.Journal.Posted, VALUEIN(model.JournalLines.OffsetLedgerMainAccount, '$ReportAccounts', '$ReportAccounts'.Value))): Список записей $ReportLines:Вычисляемое поле = ORDERBY('$FilteredLines', '$FilteredLines'.TransDate): Список записей $Transactions:Вычисляемое поле = ALLITEMS('$ReportLines'.Transactions): Список записей Вычисляемые поля $Analytics:Вычисляемое поле = '$AnalyticsListOrdered': Список записей Вычисляемые поля $AnalyticInfo:Вычисляемое поле = FIRSTORNULL(WHERE('$ReportLines'.'$Transactions'.LedgerDimension, '$ReportLines'.'$Transactions'.LedgerDimension.Definition.Name=@.'$AnalyticName')): Запись $AnalyticName:Вычисляемое поле = '$AnalyticsListOrdered'.'>Relations'.DimensionAttribute.Name: Строка $Visible:Вычисляемое поле = VALUEIN(@.MainAccountValue, '$ReportAccounts', '$ReportAccounts'.Value): Логический и маппятся на ячейки отчета Диапазон<TransLine>: Vertical? = @.'$Transactions' Ячейка<Trans_Month> = DateTimeUtil.month(DATETODATETIME(@.AccountingDate)) Ячейка<Trans_Date> = @.AccountingDate Ячейка<Trans_Supplier> = ('$ReportLines'.Vendor.AccountNum&"-")&'$ReportLines'.Vendor.Name Ячейка<Trans_Description> = @.Text Analytics: Диапазон<Trans_Analytics>: Horizontal = @.'$Analytics' Ячейка<Trans_Analytics> = @.'$AnalyticInfo'.Value.Code Ячейка<Trans_Creator> = '$ReportLines'.Approver.Name Ячейка<Trans_Created> = '$ReportLines'.modifiedDateTime |
|
![]() |
#14 |
Участник
|
Среда где горизонтальная репликация выполняется
Установленная версия продукта: 10.0.20 (10.0.886.92) Установленная версия платформы: Update44 (7.0.6060.96) среда где не выполняется Установленная версия продукта: 10.0.20 (10.0.886.92) Установленная версия платформы: Update44 (7.0.6060.96) Фичи, включенные на первой среде, но не включенные на второй На мою проблему могут влиять ? Включить использование библиотеки EPPlus в платформе для электронной отчетности Оптимизация времени создания источника данных запроса во время выполнения отчетов электронной отчетности Эти тоже к ER относятся, но они включают (насколько я знаю) возможность прямого вывода на сетевой принтер и конвертацию из форматов MS Office в pdf Агент маршрутизации документов как назначение электронной отчетности для исходящих документов Преобразовать исходящие документы электронной отчетности из форматов Microsoft Office в PDF |
|
![]() |
#15 |
Участник
|
EPPlus может помочь, остальное - вряд ли
|
|
![]() |
#16 |
Участник
|
Спасибо за помощь - помогло. Теперь горизонтальная репликация выполняется корректно и ОДИНАКОВО! на обоих средах.
Попробую теперь по аналогии разобраться с "размножением" группировок при вертикальной репликации. |
|
![]() |
#17 |
Участник
|
А вот с ""размножением" группировки при вертикальной репликации ситуация прямо противоположная - если фича EPPlus выключена - группировки в выходом файле формируются, но стоит ее включить - и группировок нет.
Получается, что можно использовать только что-то одно. Печалька. |
|
![]() |
#18 |
Участник
|
|
|
![]() |
#19 |
Участник
|
|
|
![]() |
#20 |
Участник
|
Зарегистровал баг - у меня это первый опыт такого рода. Получил ответ
I have also opened a bug to get official reply from Product Group Реально ли дождаться какого-то реального результата в разумные сроки? И что это может быть - какой-то hotfix? |
|
Теги |
generic electronic reporting, ger |
|
|