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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 14.01.2020, 20:20   #1  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
SSRS параметр не передается в DP класс
D365 10.0.5 pu29

Доброго времени суток.
Знаю, вопрос древний как Аксапта. но я просто не вижу что не так: отчет должен запускаться из строки журнала платежей с TransId платежа.
Правильное значение TransId видно в контроллере и контракте, а вот в дата провайдере, к сожалению, значения нет.
Последний раз правильное значение видно в дебаггере в SRSReportRdpDataContractmemberInfo.setpropertyValue() при вызове из SysOperationDataContractInfo.unpackDataContractInfo().

Крайне подозреваю, что просто не вижу что-то очевидное. Посмотрите свежим глазом, пожалуйстка!

X++:
class TSTReceiptController_Ext extends SrsReportRunController 
{
    public void preRunModifyContract()
    {
        super();

        TSTReceiptContract_Ext contract = this.parmReportContract().parmRdpContract() as TSTReceiptContract_Ext;

        TSTTrans  TSTTrans = this.parmArgs().record() as TSTTrans;
        contract.parmTransId(TSTtrans.TransId);       //вижу правильное значение тут
    }

    public static void main(Args _args)
    {
        TSTReceiptController_Ext controller_  = new TSTReceiptController_Ext();
        TempStr                     reportName;
        TSTTrans             TSTTrans;
        ;
        if (_args.record())
        {
            TSTTrans = _args.record();
        }
 
	controller_.parmArgs(_args);
        controller_.parmReportName(ssrsReportStr(TSTReceiptWithFee_Ext, ReportWithFee));
		
        controller_.parmShowDialog(false);
        controller_.startOperation();
    }

}

//----------------------------------------

[
DataContractAttribute,
    SysOperationGroupAttribute('PrintOptions', "@SYS24353", "2")
]
class TSTReceiptContract_Ext 
{
    TSTTransId transId;


    [DataMemberAttribute("TSTTransactionId")]
    public TSTTransId parmTransId(TSTTransId _transId = transId)
    {
        transId =_transId;
        return transId; //вижу правильное значение тут тоже
    }

}

//----------------------------------------

SRSReportParameterAttribute(classstr(TSTReceiptContract_Ext))]
class TSTReceiptDP_Ext extends SRSReportDataProviderBase
{
    TSTReceiptTmp_Ext TSTReceiptTmp;
    TSTTransId transId;

   
    [SRSReportDataSetAttribute(tablestr('TSTReceiptTmp_Ext'))]
    public TSTReceiptTmp_Ext getCustReportRDPDemoTmp()
    {
        select * from TSTReceiptTmp;
        
        return TSTReceiptTmp;
    }

	public void processReport()
	{ 
        TSTTrans tstTrans;
        TSTReceiptContract_Ext    dataContract = this.parmDataContract();

// а вот тут параметр в контракте пустой...

        transId = dataContract.parmTransId();
        tstTrans = TSTTrans::find(transId);

        //some logic

	}

}
Старый 14.01.2020, 22:08   #2  
online
pitersky
северный Будда
Аватар для pitersky
Ex AND Project
Соотечественники
 
1,510 / 435 (18) +++++++
Регистрация: 26.09.2007
Адрес: Солнечная система
Насколько я помню, для ssrs есть какая-то табличка, в которой хранится кэш запусков отчётов. Попробуйте найти и почистить её.
__________________
С уважением,
Вячеслав
Старый 14.01.2020, 23:08   #3  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
В all usage data все связанное с отчетом удалено - с другим отчетом на прошлой неделе это помогло, но тот отчет работал как надо из-под другого пользователя.
Этот отчет генерируется с одинаково пустым transid для обоих пользователей.

Если же в дебаггере заполнить transid параметр вручную в дата контракт объекте, бизнес логика в DP классе выполняется как надо и генерируется нормальный отчет. То есть единственная неработающая вещь это непередающийся из контроллер в дата провайдер параметр.
Старый 14.01.2020, 23:45   #4  
wojzeh is offline
wojzeh
Участник
Аватар для wojzeh
Соотечественники
 
674 / 512 (19) +++++++
Регистрация: 27.04.2006
Адрес: Montreal
попробуй сковырнуть rdl отчёта, рестартануть reporting services и задеплоить отчёт снова - это-то уж точно поможет!
__________________
Felix nihil admirari
Старый 15.01.2020, 00:24   #5  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Если "сковырнуть" значило удалить, то не помогло. Application pools и сервис в IIS тоже рестартанула, на всяк случай.
Старый 15.01.2020, 00:58   #6  
axm2017 is offline
axm2017
Участник
 
1,917 / 313 (14) ++++++
Регистрация: 15.05.2017
Возможно у вас как то криво работает сериализация контракта. Покопал бы в этом направлении.
Старый 15.01.2020, 03:27   #7  
trud is offline
trud
Участник
Лучший по профессии 2017
 
1,039 / 1633 (57) ++++++++
Регистрация: 07.06.2003
Записей в блоге: 1
Цитата:
[DataMemberAttribute("TSTTransactionId")]
public TSTTransId parmTransId(TSTTransId _transId = transId)
Просто как идея - а вот здесь может надо использовать одно имя. т.е. может попроовать назвать метод parmTSTTransactionId
Старый 15.01.2020, 13:58   #8  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Цитата:
Сообщение от trud Посмотреть сообщение
Просто как идея - а вот здесь может надо использовать одно имя. т.е. может попроовать назвать метод parmTSTTransactionId
Хорошая идея, но не помогло.
Старый 15.01.2020, 14:00   #9  
alicedr is offline
alicedr
Участник
 
175 / 43 (2) +++
Регистрация: 06.07.2012
Адрес: Канада
Получилось!
По совету коллеги передобавила датасорс в отчете и заново задеплоила.
Виртуальная машина ночью перегружалась. Может, это тоже как-то повлияло.

Спасибо всем!
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
SSRS - не передается парметр kitty DAX: Программирование 5 29.01.2016 13:10
kamalblogs: SSRS Tip: Printing Row headers in every page – Dynamics Ax 2012 Blog bot DAX Blogs 0 23.09.2013 16:12
SSRS lookup параметр Pat4kord DAX: Программирование 2 22.03.2013 13:08
gatesasbait: Dynamics AX 2009 SSRS and SSAS Integration Tips Blog bot DAX Blogs 3 09.07.2009 13:07
не передается параметр nano3 DAX: Программирование 2 07.08.2008 20:40
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 09:22.