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

Popular posts from this blog

D365FO – AX – X++ –Refresh, Reread, Research, and ExecuteQuery

Create Inventory Journal through Code in D365FO X++

SalesLine Reservation in D365fo x++