Показать сообщение отдельно
Старый 09.06.2011, 23:17   #12  
DSPIC is offline
DSPIC
Боец
 
1,077 / 1243 (44) ++++++++
Регистрация: 11.04.2008
Мы сделали так. Скорость разноски увеличилась на порядок.

1. Обявляем в классе \Classes\Application.classDeclaration переменную
X++:
Map                     mappingsInfo_RU; // Оптимизация разноски накладной, EVO 26.04.2011
2. Добавляем новый метод \Classes\Application\mappingsInfo_RU
X++:
// Оптимизация разноски накладной, EVO 26.04.2011
Map mappingsInfo_RU()
{
    ;
    if (!mappingsInfo_RU)
    {
        mappingsInfo_RU = new Map(Types::Container, Types::Class); // [TableId, MapId], MappingsInfo_RU object
    }

    return mappingsInfo_RU;
}
3. Модификацируем метод \Classes\MappingsInfo_RU\createMapWithFieldId
X++:
static public Map createMapWithFieldId(tableId _tableId, tableId _mapID)
{
    MappingsInfo_RU    mappingsInfo;
    ;

    // Оптимизация разноски накладной, EVO 26.04.2011 -->
    //orig mappingsInfo = new MappingsInfo_RU(_tableId, _mapID);
    //orig return mappingsInfo.find();
    if (!appl.mappingsInfo_RU().exists([_tableId, _mapID]))
    {
        mappingsInfo = new MappingsInfo_RU(_tableId, _mapID);
        appl.mappingsInfo_RU().insert([_tableId, _mapID], mappingsInfo.find());
    }
    return appl.mappingsInfo_RU().lookup([_tableId, _mapID]);
    // Оптимизация разноски накладной, EVO 26.04.2011 <--
}

Последний раз редактировалось DSPIC; 09.06.2011 в 23:23.
За это сообщение автора поблагодарили: UNRW (1), wolfstein (1).