Показать сообщение отдельно
Старый 09.12.2010, 14:41   #2  
samolalex is offline
samolalex
Участник
Аватар для samolalex
Самостоятельные клиенты AX
 
259 / 107 (4) +++++
Регистрация: 18.06.2010
Адрес: Москва
По-моему, не нужно ничего переделывать в методе valueFromXMLNode.
Вот рабочий код вашей джобы, которая в Axapta 3 "ведет" себя так же, как вы описали относительно AX 2009:
X++:
static void test(Args _args)
{
    xmlNode xmlNode;
    xmlDocument xmlDocument;
    struct content;
    SalesType   SalesType;
    ;

    xmlDocument = new xmlDocument();
    
    xmlNode = xmlDocument.createNode(xmlNodeType::ELEMENT, "test", "");
    
    xmlNode.text(int2str(SalesType::Sales));

    SalesType = global::valueFromXMLNode(Types::Integer, xmlNode).value("value");

    info(strFmt("%1", SalesType));
}
ИМХО:
1)enum2int(SalesType::Sales) - метод enum2int применять необязательно, в 3-ей аксапте я его вовсе не нашел. По идее сам элемент enum'а - это уже целое число.
2) valueFromXMLNode(Types::Enum, xmlNode).value("value") - значение enum'a, как уже говорилось - целое число, поэтому в параметре метода
valueFromXMLNode нужно указать Types::Integer вместо Types::Enum.
__________________
С уважением, Александр.

Последний раз редактировалось samolalex; 09.12.2010 в 15:09.