2017-02-18 38 views
0

Мы смотрим на настройку SalesLineType_Sales, где нам нужно добавить подтверждение для «SalesQty» в методе «pdsMRCCheckRestricted» ниже.Возможно расширение SalesLineType_Sales?

Теперь мы знаем, что настройки не одобрены, поэтому вы ищете любое предложение или лучшую практику, чтобы сделать это соответствующим образом.

1- Мы можем настроить «SalesLineType_Sales» - но это лучшая практика для Dynamics 365 для операций? 2- Какие-либо другие возможные варианты?

Любые комментарии будут признательны!

public boolean pdsMRCCheckRestricted() 
{ 
    boolean     isRestricted = false; 
    AddressCountryRegionId deliveryCountryId; 
    AddressStateId   deliveryStateId; 

    deliveryCountryId = salesLine.deliveryAddress().CountryRegionId ? 
     salesLine.deliveryAddress().CountryRegionId : salesTable.deliveryAddress().CountryRegionId; 

    deliveryStateId = salesLine.deliveryAddress().State ? 
     salesLine.deliveryAddress().State : salesTable.deliveryAddress().State; 

    if (salesLine.SalesQty > 0) 
    { 

     isRestricted = PdsMRCRestrictedListByItem::checkItemRestrictedForState(
             deliveryCountryId, 
             deliveryStateId, 
             salesLine.ItemId); 
     if (!isRestricted) 
     { 
      isRestricted = 
       PdsMRCRestrictedListByItem::checkItemRestrictedForCountry(
              deliveryCountryId, 
              salesLine.ItemId); 
     } 

     if (isRestricted) 
     { 
      error(strFmt("@PDS908", salesLine.ItemId)); 
     } 
    } 

    return isRestricted; 
} 

ответ

0

В динамике 365 для операций предпочтительного механизм для настроек существующих объектов заключается в использовании обработчиков событий, чтобы реагировать на различные события, а не перекрывать методы таблиц, форм и классов.

[PostHandlerFor(classStr(SalesLineType_Sales), methodstr(SalesLineType_Sales, pdsMRCCheckRestricted))] 
public static void PostPdsMRCCheckRestricted(XppPrePostArgs args) 
{ 
    boolean  returnValue = args.getReturnValue(); 
    int   infologLine; 
    ; 

    //Suppress error message 
    if (returnValue) 
    { 
     infologLine = Global::infologLine(); 
     infolog.clear(infologLine - 1); 
    } 

    //Add your validation here 

    args.setReturnValue(returnValue);   
} 
+0

Thanks aliaksandr для ответа. Что будет с infolog? Когда результат верен, он регистрирует ошибку. if (isRestricted) { ошибка (strFmt ("@ PDS908", salesLine.ItemId)); } –

+0

Я обновил ответ, пожалуйста, взгляните. –

 Смежные вопросы

  • Нет связанных вопросов^_^