Показать сообщение отдельно
Старый 13.03.2008, 11:01   #1  
Raven Melancholic is offline
Raven Melancholic
Участник
Аватар для Raven Melancholic
Самостоятельные клиенты AX
Лучший по профессии 2015
 
2,160 / 1289 (47) ++++++++
Регистрация: 21.03.2005
Адрес: Москва-Петушки
Проблема с поиском в InventTrans после changeCompany (DAX4)
Так получилось, что заказ на покупку и связанный заказ на продажу, созданный функционалом InterCompany в строке имеет одинаковый InventTransId.
В результате код в методе transfer класса InterCompanyTransferInventDim находит строку InventTrans из компании, в которой вызывается разноска заказа на продажу, а не в компании, содержащей закупку. Сам код (стандартный, мое только добавление с попыткой сбросить переменную):
X++:
    changecompany(_toDataAreaId)
    {
        setprefix(strfmt("@SYS93821",TradeInterCompany::curCompanyName()));

        // Попробуем сбросить переменную -->
        toInventTrans   = null;
        // Попробуем сбросить переменную <--

        toInventTrans  = InventTrans::findTransId(_toInventTransId);

        toEndpoint     = AifEndpoint::findInterCompany(fromValueMap.DataAreaId);
        if (toInventTrans.TransType == InventTransType::Sales)
            toValueMap = AifEndpointActionValueMap::find(toEndpoint.EndpointId, defaultSalesOrderAction);
        else
            toValueMap = AifEndpointActionValueMap::find(toEndpoint.EndpointId, defaultPurchaseRequisitionAction);
Проблема со строкой:
toInventTrans = InventTrans::findTransId(_toInventTransId);
Причем, для toValueMap находит нужную строку, хотя значение EndpointId есть и в исходной компании. Сама смена точно происходит (TradeInterCompany::curCompanyName() возвращает нужное значение).
Если в 3.0 были такие проблемы при работе прогресс-бара, то в чем проблема в моем случае? Может кто решал?