Thursday, March 24, 2022

Standard Batch - adding our variable for Pack/UnPack - 1

1. 

[ExtensionOf(classStr(BomCalcJob))]

final class BomCalcJobBRU_Extension


 #define.CurrentVersion(1)

    #LOCALMACRO.CurrentList

        useCalcDate

    #ENDMACRO

2.

/// <summary>

    /// Maintains state/version

    /// </summary>

    /// <returns>vesion and current list</returns>

    private container currentPack()

    {

        return [#CurrentVersion, #CurrentList];

    }

3.

/// <summary>

    /// Maintains state/version

    /// </summary>

    /// <returns>vesion and current list</returns>

    public container pack()

    {

        container packedClass = next pack();

        return SysPackExtensions::appendExtension(packedClass, classStr(BomCalcJobBRU_Extension), this.currentPack());

    }

4.

 /// <summary>

    /// Gets the state/version

    /// </summary>

    /// <param name = "_packedClass">container</param>

    /// <returns>true, if it gets previous version</returns>

    private boolean currentUnpack(container packedClass)

    {

        Integer version = RunBase::getVersion(packedClass);

        switch (version)

        {

            case #CurrentVersion:

                [version, #currentList] = packedClass;

                break;

            default:

                return false;

        }

        return true;

    }

5.

/// <summary>

    /// Gets the state/version

    /// </summary>

    /// <param name = "_packedClass">container</param>

    /// <returns>true, if it gets previous version</returns>

    public boolean unpack(container _packedClass)

    {

        boolean result = next unpack(_packedClass);


        if (result)

        {

            container currentState = SysPackExtensions::findExtension(_packedClass, classStr(BomCalcJobBRU_Extension));

            //Also unpack the extension

            if (!this.currentUnpack(currentState))

            {

                result = false;

            }

        }


        return result;

    }

No comments:

Post a Comment

Sample Dialog Syntax - 1

 class AffiliationAutoAssignment extends RunBaseBatch {     // 1. Class Declaration and Pack variables     #define.CurrentVersion(1)     #de...