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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 02.03.2018, 06:16   #1  
Blog bot is offline
Blog bot
Участник
 
25,475 / 846 (79) +++++++
Регистрация: 28.10.2006
AX 2012 R3 CU13 Bug: DMF default value mapping for String type
Источник: http://alexvoy.blogspot.com/2018/03/...ult-value.html
==============

There is bug in AX 2012 R3 CU13.

If you check Default type for your data entity staging mapping field of String type, then the system tries to find any first record matching to "Default" value as XML name to get the linked field and compare against its string length.










To fix it, we need to make the following changes in three methods of the form DMFStagingDefaultTable


public class FormRun extends ObjectRun
{
SysDictField dictField;
DMFFieldType dmfFieldType;
DMFSourceXMLToEntityMap dmfSourceXMLToEntityMap;
Types valueType;
// Begin: Alexey Voytsekhovskiy
int wblMaxStrSize;
// End: Alexey Voytsekhovskiy
}



public void init()
{
Args args;
DMFEntity entity;
DMFDefinitionGroupEntityXMLFields dmfDefinitionGroupEntityXMLFields;
SysDictType dictType;

#define.Integer('Integer')
#define.String('String')
#define.RealMacro('Real')
#define.DateMacro('Date')
#define.DateTimeMacro('UtcDateTime')
#define.Time('Time')

super();

if (!element.args() || element.args().dataset() != tableNum(DMFSourceXMLToEntityMap))
{
throw error(strfmt("@SYS25516", element.name()));
}

args = element.args();

dmfSourceXMLToEntityMap = args.record();
// Begin: Alexey Voytsekhovskiy
select firstOnly FieldType, FieldSize from dmfDefinitionGroupEntityXMLFields
where dmfDefinitionGroupEntityXMLFields.FieldName == dmfSourceXMLToEntityMap.EntityField
&& dmfDefinitionGroupEntityXMLFields.Entity == dmfSourceXMLToEntityMap.Entity
&& dmfDefinitionGroupEntityXMLFields.DefinitionGroup == dmfSourceXMLToEntityMap.DefinitionGroup
;
wblMaxStrSize = dmfDefinitionGroupEntityXMLFields.FieldSize ? dmfDefinitionGroupEntityXMLFields.FieldSize : 256;
// End: Alexey Voytsekhovskiy
if (dmfDefinitionGroupEntityXMLFields.FieldType && !dmfSourceXMLToEntityMap.IsAutoDefault)
{
dmfFieldType = dmfDefinitionGroupEntityXMLFields.FieldType;
if (dmfsourceXMLToEntityMap.EntityField)
{
entity = DMFEntity::find(dmfsourceXMLToEntityMap.Entity);
dictField = new SysDictField(tableName2id(entity.EntityTable), fieldName2id(tableName2Id(entity.EntityTable),dmfsourceXMLToEntityMap.EntityField));
}
switch(dmfDefinitionGroupEntityXMLFields.FieldType)
{
case #Integer:
DMFStagingConversionTable_StagingIntValue.visible(true);
break;
case #String:
DMFStagingConversionTable_StagingStrValue.visible(true);
break;
case #RealMacro:
DMFStagingConversionTable_StagingRealValue.visible(true);
break;
case #DateMacro:
DMFStagingConversionTable_StagingDateValue.visible(true);
break;
case #DateTimeMacro:
DMFStagingConversionTable_StagingUtcDataTime.visible(true);
break;
case #Time:
DMFStagingConversionTable_StagingTimeValue.visible(true);
break;
default:
warning("@DMF694");
element.close();
}
}
else if(dmfSourceXMLToEntityMap.IsAutoDefault)
{
entity = DMFEntity::find(dmfsourceXMLToEntityMap.Entity);
dictField = new SysDictField(tableName2id(entity.EntityTable),fieldName2id(tableName2Id(entity.EntityTable),dmfsourceXMLToEntityMap.EntityField));
dictType = new SysDictType(dictField.typeId());
if (dictType && dictType.isTime())
{
valueType = Types::Time;
}
else
{
valueType = dictField.baseType();
}
dmfFieldType = enum2str(dictField.baseType());
switch(valueType)
{
case Types::Integer:
DMFStagingConversionTable_StagingIntValue.visible(true);
break;
case Types::String:
DMFStagingConversionTable_StagingStrValue.visible(true);
break;
case Types::Real:
DMFStagingConversionTable_StagingRealValue.visible(true);
break;
case Types::Date:
DMFStagingConversionTable_StagingDateValue.visible(true);
break;
case Types::UtcDateTime:
DMFStagingConversionTable_StagingUtcDataTime.visible(true);
break;
case Types::Time:
DMFStagingConversionTable_StagingTimeValue.visible(true);
break;
case Types::Guid:
DMFStagingConversionTable_StagingGuidValue.visible(true);
break;
default:
warning("@DMF694");
element.close();
}
}

else
{
element.close();
}
}


and on the sole form data source field StagingStrValue

public boolean validate()
{
boolean ret;
DMFDefinitionGroupEntityXMLFields dmfDefinitionGroupEntityXMLFields;

ret = super();

if(ret)
{
// Begin: Alexey Voytsekhovskiy
if(strLen(DMFStagingConversionTable.StagingStrValue) > wblMaxStrSize)
{
throw error("@DMF788");
}

// select firstOnly FieldSize from dmfDefinitionGroupEntityXMLFields
// where dmfDefinitionGroupEntityXMLFields.FieldName == dmfSourceXMLToEntityMap.XMLField;
//
// if(dmfDefinitionGroupEntityXMLFields.FieldSize)
// {
// if(strLen(DMFStagingConversionTable.StagingStrValue) > dmfDefinitionGroupEntityXMLFields.FieldSize)
// {
// throw error("@DMF788");
// }
// }
// End: Alexey Voytsekhovskiy
}

return ret;
}




Источник: http://alexvoy.blogspot.com/2018/03/...ult-value.html
__________________
Расскажите о новых и интересных блогах по Microsoft Dynamics, напишите личное сообщение администратору.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
AX 2012 R3 CU11 upgrade to CU13 January 2018 Release problem oip DAX: Администрирование 3 22.02.2018 20:19
emeadaxsupport: AX Performance - Analyzing key SQL Server configuration and database settings Blog bot DAX Blogs 0 28.09.2015 14:11
emeadaxsupport: Form created in e.g. AX 2012 RTM or AX 2012 R2 with ManagedHost control on its design fails to open on AX 2012 R3 Blog bot DAX Blogs 0 21.09.2015 19:11
amer-ax: It was a great day! Blog bot DAX Blogs 3 29.12.2012 01:02
DAX: Official Dynamics AX 2012 R2 Content (update) - Where is it, and how can you find out about updates? Blog bot DAX Blogs 0 03.12.2012 11:11
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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

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