delegate in d365fo x++
delegate in d365fo x++
Code:
delegate:delegate void checkMandatoryDimensions(SalesTable _SalesTable, EventHandlerResult _result) { }
Handler:
//Code by JS, 2024/09/18, Mandatory financial Dimension
[SubscribesTo(classStr(DSSalesOrderWFTypeSubmitManager), delegateStr(DSSalesOrderWFTypeSubmitManager, checkMandatoryDimensions))]
public static void DSSalesOrderWFTypeSubmitManager_checkMandatoryDimensions(SalesTable _SalesTable, EventHandlerResult _result)
{
boolean isValid = false;
if(DSProposedCustomizations::isValid(DSProposedCustomization::MandatoryFinDim))
{
Defaultdimensionview dimensionViewHeader, dimensionViewLines;
DSADimensionSetup DimensionSetupHeader, DimensionSetupLines;
SalesLine SalesLine;
while
select DimensionSetupHeader
where DimensionSetupHeader.SalesOrder == NoYes::Yes
notexists join dimensionViewHeader
where dimensionViewHeader.DefaultDimension == _SalesTable.DefaultDimension
&& dimensionViewHeader.Name == DimensionSetupHeader.Name
{
checkFailed(strFmt("@DSALabel:DSA000265", DimensionSetupHeader.Name));
isValid = true;
}
while
select SalesLine
where SalesLine.SalesId == _SalesTable.SalesId
join DimensionSetupLines
where DimensionSetupLines.SalesOrder == NoYes::Yes
notexists join dimensionViewLines
where dimensionViewLines.DefaultDimension == SalesLine.DefaultDimension
&& dimensionViewLines.Name == DimensionSetupLines.Name
{
checkFailed(strFmt("@DSALabel:DSA000265", DimensionSetupLines.Name));
isValid = true;
}
}
_result.result(isValid);
}
Result Get:public static boolean MandatoryDimensions(SalesTable _SalesTable) { DSSalesOrderWFTypeSubmitManager obj = new DSSalesOrderWFTypeSubmitManager(); EventHandlerResult _result = new EventHandlerResult(); obj.checkMandatoryDimensions(_SalesTable, _result); return _result.result(); }
Comments
Post a Comment