我们正在考虑做一个定制SalesLineType_Sales,我们需要在下面的"pdsMRCCheckRestricted“方法中添加对"SalesQty”的验证。
现在,我们知道定制是不受欢迎的,所以寻找任何建议或最佳实践来适当地完成它。
1-我们可以自定义"SalesLineType_Sales“-但这是Dynamics 365 for operations的最佳实践吗? 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;
}发布于 2017-02-18 20:10:24
在Dynamics 365 for Operations中,对现有对象进行自定义的首选机制是使用事件处理程序对各种事件做出反应,而不是重写表、窗体和类上的方法。
[PostHandlerFor(classStr(SalesLineType_Sales), methodstr(SalesLineType_Sales, pdsMRCCheckRestricted))]
public static void PostPdsMRCCheckRestricted(XppPrePostArgs args)
{
boolean returnValue = args.getReturnValue();
//Suppress error message
if (returnValue)
{
infolog.clear();
}
//Add your validation here
args.setReturnValue(returnValue);
}https://stackoverflow.com/questions/42310679
复制相似问题