adsenseheader

Thursday, March 28, 2024

BYOD export to selected legal entities

<?xml version="1.0" encoding="utf-8"?>
<AxClass xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<Name>DMFDefinitionGroupExecution_DAX_Extension</Name>
	<SourceCode>
		<Declaration><![CDATA[
/// <summary>
/// Extension class for DMFDefinitionGroupExecution table
/// </summary>
[extensionof(tableStr(DMFDefinitionGroupExecution))]
final class DMFDefinitionGroupExecution_DAX_Extension
{
}
]]></Declaration>
		<Methods>
			<Method>
				<Name>insertOrdisplay</Name>
				<Source><![CDATA[
    /// <summary>
    /// COC method for insertOrdisplay
    /// </summary>
    /// <param name = "_dMFDefinitionGroup">A <c>DMFDefinitionGroup</c> buffer.</param>
    /// <param name = "_executionId">Execution Id</param>
    /// <param name = "_description">Description</param>
    /// <param name = "_executeTargetStep">A boolean value, to indicate whether to copy data to target or not.</param>
    /// <param name = "_parameterStr"> Parameter str value.</param>
    /// <param name = "_isSelected">A boolean value, to indicate whether the record is selected or not.</param>
    /// <param name = "_company">Company</param>
    /// <returns>True, if the record creation is successful, else false.</returns>
    Public static server boolean insertOrdisplay(DMFDefinitionGroup  _dMFDefinitionGroup,
                                                 DMFExecutionId      _executionId,
                                                 Description         _description,
                                                 NoYes               _executeTargetStep,
                                                 str                 _parameterStr,
                                                 boolean             _isSelected,
                                                 DataAreaId          _company)
    {
        boolean  ret = next insertOrdisplay(_dMFDefinitionGroup,
                                            _executionId,
                                            _description,
                                            _executeTargetStep,
                                            _parameterStr,
                                            _isSelected,
                                            _company);

        if (DMFDefinitionGroupExecution::isAllCompanyExportDMFParameterEnabled())
        {
            DMFDefinitionGroupEntity definitionGroupEntity;

            select firstonly RecId from definitionGroupEntity 
                where definitionGroupEntity.DefinitionGroup == _dMFDefinitionGroup.DefinitionGroupName
                    && definitionGroupEntity.ExportAllCompanies 
                    && definitionGroupEntity.ExportToLegalEntity_DAX != strMin();

            if (_dMFDefinitionGroup.OperationType == DMFOperationType::Export && 
                definitionGroupEntity.RecId != 0)
            {
                DMFExecution                dmfExecution;
                DMFDefinitionGroupExecution definitionGroupExecution;

                delete_from dmfExecution
                    where dmfExecution.DefinitionGroup == _dMFDefinitionGroup.DefinitionGroupName
                        notexists join definitionGroupExecution
                            where definitionGroupExecution.ExecutionId == dmfExecution.ExecutionId;
            }
        }

        return ret;
    }

]]></Source>
			</Method>
			<Method>
				<Name>getSelectedLegalEntities</Name>
				<Source><![CDATA[
    /// <summary>
    /// Convert passed string to container
    /// </summary>
    /// <param name = "_legalEntityStr">legal entity names as string</param>
    /// <returns>legal entity names in a container </returns>
    static container getSelectedLegalEntities(str _legalEntityStr)
    {
        CompanyInfo     companyInfo;
        container       tmpValues, conLegalEntity;
        int             idx;
     
        if (_legalEntityStr)
        {
            tmpValues = str2con(_legalEntityStr, SysAppUtilities_DAX::semiColon);
        }
     
        for (idx=1; idx <= conLen(tmpValues); idx++)
        {
            companyInfo = CompanyInfo::findDataArea(conPeek(tmpValues, idx));
            conLegalEntity += companyInfo.DataArea;
        }
     
        return conLegalEntity;
    }

]]></Source>
			</Method>
			<Method>
				<Name>insert</Name>
				<Source><![CDATA[
    /// <summary>
    /// COC method for Insert
    /// </summary>
    public void insert()
    {
        next insert();

        if (DMFDefinitionGroupExecution::isAllCompanyExportDMFParameterEnabled())
        {
            container conLegalEntity = DMFDefinitionGroupExecution::getSelectedLegalEntities(this.DefinitionGroupEntity().ExportToLegalEntity_DAX); 

            if (conLegalEntity != conNull() &&
                ! conFind(conLegalEntity, this.Company) &&
                this.DefinitionGroupEntity().ExportAllCompanies && 
                this.DefinitionGroup().OperationType == DMFOperationType::Export)
            {
                DMFDefinitionGroupExecution definitionGroupExecution;
                delete_from definitionGroupExecution
                    where definitionGroupExecution.ExecutionId == this.ExecutionId &&
                        definitionGroupExecution.Company  == this.Company &&
                        definitionGroupExecution.Entity == this.Entity;

            }
        }
    }

]]></Source>
			</Method>
			<Method>
				<Name>isAllCompanyExportDMFParameterEnabled</Name>
				<Source><![CDATA[
    /// <summary>
    /// check whether EnableAllCompanyExport in DMFCompatibilityParameters is enabled
    /// </summary>
    /// <returns> true or false</returns>
    public static boolean isAllCompanyExportDMFParameterEnabled()
    {
        DMFCompatibilityParameters dmfCompatibilityParameters;

        select firstonly EnableAllCompanyExport from dmfCompatibilityParameters
            index Key
            where dmfCompatibilityParameters.Key == 0;

        return dmfCompatibilityParameters.EnableAllCompanyExport;
    }

]]></Source>
			</Method>
		</Methods>
	</SourceCode>
</AxClass>


<?xml version="1.0" encoding="utf-8"?>
<AxClass xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
	<Name>DMFDefinitionGroupExecution_ExportNowButton_DAX_Extension</Name>
	<SourceCode>
		<Declaration><![CDATA[
/// <summary>
/// Extension class for DMFQuickImportExportEnhanced ExportNow button control
/// </summary>
[extensionof(formControlStr(DMFQuickImportExportEnhanced, ExportNow))]
final class DMFDefinitionGroupExecution_ExportNowButton_DAX_Extension
{
}
]]></Declaration>
		<Methods>
			<Method>
				<Name>clicked</Name>
				<Source><![CDATA[
    /// <summary>
    /// COC for clicked method button control
    /// </summary>
    public void clicked()
    {
        container   conLegalEntity = conNull();

        if (DMFDefinitionGroupExecution::isAllCompanyExportDMFParameterEnabled())
        {
            FormDataSource  definitionGroupDS = this.formRun().dataSource(formDataSourceStr(DMFQuickImportExportEnhanced, DMFDefinitionGroup));

            DMFDefinitionGroupEntity definitionGroupEntity;

            DMFDefinitionGroup definitionGroup = definitionGroupDS.cursor();

            select firstonly ExportToLegalEntity_DAX from definitionGroupEntity
                where definitionGroupEntity.DefinitionGroup == definitionGroup.DefinitionGroupName
                    && definitionGroupEntity.ExportAllCompanies
                    && definitionGroupEntity.ExportToLegalEntity_DAX != strMin();

            conLegalEntity = DMFDefinitionGroupExecution::getSelectedLegalEntities(definitionGroupEntity.ExportToLegalEntity_DAX);
        }

        DataAreaId company = conLegalEntity != conNull() ? conPeek(conLegalEntity, 1) : curExt();

        changecompany (company)
        {
            next clicked();
        }
    }

]]></Source>
			</Method>
		</Methods>
	</SourceCode>
</AxClass>