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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.04.2020, 00:12   #1  
sukhanchik is offline
sukhanchik
Moderator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,923 / 2906 (102) +++++++++
Регистрация: 13.06.2004
Адрес: Москва
D365FO: Журнал выдачи спецодежды
Добрый день всем!
Вопрос скорее больше к специалистам из Microsoft, если они случайно заглянут в эту тему.
Собственно вопрос в том, что журнал не работает ))). Проверял на PU34
По сравнению с 2012 в форме RAssetInventIssueTrans сильно "поредел" код и в частности совершенно нет строк по сохранению InventDimId. Точнее он есть, но на initValue (при создании строки), когда еще даже нет номенклатуры.
В результате в журнале меняй, не меняй складские аналитики - толку ноль.
И если Склад-Сайт ещё можно в шапке журнала указать и они перетекут в строки (само собой без возможности изменения), то любая дополнительная аналитика (например, Профиль учета) уже не переходит.
Т.е. сами аналитики конечно в строках поменять можно, только они нигде не сохраняются и при выходе из строк в шапку при попытке нажатия кнопки Закрыть - система пытается списать номенклатуру с пустыми складскими аналитиками и естественно у нее это не получается, если кроме сайта-склада есть ещё какие-нибудь первичные аналитики (типа профиля учёта).

Ну т.е. понятен конечно сценарий, когда этот функционал работает - только если на номенклатуру назначены складские аналитики Склад-Сайт (и больше никаких) и они же вручную указаны в шапке журнала выдачи.
Но как бы в 2012 функционал работал гибче.

Вопрос: это поправимо? (В смысле реально получить фикс?). Или это есть сознательное ограничение?
__________________
Возможно сделать все. Вопрос времени
Старый 23.04.2020, 08:43   #2  
ppson is offline
ppson
Участник
Аватар для ppson
Ex AND Project
1C
 
2,101 / 114 (8) +++++
Регистрация: 25.06.2002
Адрес: SPb, Msk
в поддержку им напиши
__________________
Старый 01.02.2021, 20:43   #3  
sukhanchik is offline
sukhanchik
Moderator
Аватар для sukhanchik
MCBMSS
Злыдни
Лучший по профессии 2015
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
2,923 / 2906 (102) +++++++++
Регистрация: 13.06.2004
Адрес: Москва
Цитата:
Сообщение от ppson Посмотреть сообщение
в поддержку им напиши
В связи с тем, что у меня процесс обращения в поддержку не очень прямой, а исправление до PU40 так и не доехало - решил просто дописать код самостоятельно. Фактически, критически не хватает только одной строчки кода в начале метода validateWrite() датасорса RAssetInventIssueTrans, который был в 2012 - это строчка по вычислению InventDimId с сохранением вычисленного значения в таблицу RAssetInventIssueTrans.

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

X++:
/// <summary>
/// Перенос кода из AX 2012 по сохранению InventDimId
/// </summary>

// VSUH, RAssesFixes, 01.02.2021
[ExtensionOf(formDataSourceStr(RAssetInventIssueTrans,RAssetInventIssueTrans))]
final class RAssetInventIssueTransForm_RAssetInventIssueTransDS_VS_Extension
{
    public boolean validateWrite()
    {
        FormRun   fr = element;
        InventDim inventDim = fr.dataHelper().FindDataSource(formDataSourceStr(RAssetInventIssueTrans, InventDim)).cursor();
        RAssetInventIssueTrans rAssetInventIssueTrans = fr.dataHelper().FindDataSource(this.name()).cursor();
        RAssetInventIssueTable assetInventIssueTable = fr.assetInventIssueTable();
        InventTable            inventTable = InventTable::find(rAssetInventIssueTrans.ItemId);

        if (!rAssetInventIssueTrans.RecId)
        {
            if (!inventDim.InventLocationId && InventDimGroupSetup::newInventTable(inventTable).isDimensionActive(fieldNum(inventDim, InventLocationId)))
            {
                inventDim.InventLocationId   = assetInventIssueTable.InventLocationId;
                inventDim.InventSiteId = InventLocation::find(assetInventIssueTable.InventLocationId).InventSiteId;
            }

            if (!inventDim.InventProfileId_RU && InventDimGroupSetup::newInventTable(inventTable).isDimensionActive(fieldNum(inventDim, InventProfileId_RU)))
            {
                if (inventTable.AssetGroupId_RU)
                {
                    inventDim.InventProfileId_RU = RAssetParameters::find().LowCostAssetInventProfileId;
                }
                else
                {
                    inventDim.InventProfileId_RU = inventDim.inventLocation().InventProfileId_RU;
                }
            }
        }

        rAssetInventIssueTrans.InventDimId  = InventDim::findOrCreate(inventDim).InventDimId;
        
        return next validateWrite();
    }

}
На всякий случай (для тех, кто захочет себе быстро поставить фикс) - прикреплю .axmodel и .axpp-файлы
Вложения
Тип файла: axpp RAssetFixes.axpp (2.9 Кб, 12 просмотров)
Тип файла: axmodel RAssetFixes-VSUH.axmodel (2.3 Кб, 11 просмотров)
__________________
Возможно сделать все. Вопрос времени
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
sertandev: How to receive D365FO push notifications using Azure Notification Hubs Blog bot DAX Blogs 0 04.07.2019 18:11
sertandev: How to integrate D365FO with Microsoft Flow using the new Business Events Blog bot DAX Blogs 0 23.05.2019 16:11
erconsult: Copy-paste with keyboard script 2: from Excel to D365FO Blog bot DAX Blogs 0 03.08.2018 11:12
Выдача спецодежды в эксплуатацию PSA DAX: Функционал 5 09.04.2011 13:50
Журнал спецификаций Lol14 DAX: Функционал 13 16.06.2003 13:10
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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