Thursday, November 9, 2017

How to fetch all the tables associated with a configuration key AX 2012

To fetch all the  tables associated with a particular configuration key we can use below code

static void FindTablesFromConfigKey(Args _args)
{
    // The name of the configuration key to be specified here
    str                     configKeyName   = "Prod";
    Dictionary              dictionary      = new Dictionary();
    ConfigurationKeyId      configKeyId     = dictionary.configurationKeyName2Id(configKeyName);
    TableId                 tableId;
    DictConfigurationKey    dictConfigurationKey;
    DictTable               dictTable;
    container               keyIds;
    int                     i;
    ;

    if (configKeyId)
    {
        // Find all children of the specified configuration key
        for (i = dictionary.configurationKeyNext(0); i; i = dictionary.configurationKeyNext(i))
        {
            dictConfigurationKey = new DictConfigurationKey(i);

            while (dictConfigurationKey.parentConfigurationKeyId())
                dictConfigurationKey = new DictConfigurationKey(dictConfigurationKey.parentConfigurationKeyId());

            if (dictConfigurationKey.id() == configKeyId)
                keyIds += i;
        }

        // Find all tables that have an appropriate configuration key
        i = 0;
        for (tableId = dictionary.tableNext(0);tableId;tableId = dictionary.tableNext(tableId))
        {
            dictTable = new DictTable(tableId);
            if (!dictTable.isMap() && !dictTable.isTmp() && !dictTable.isView())
            {
                if (confind(keyIds, dictTable.configurationKeyId()))
                {
                    i++;
                    info(dictTable.name());
                }
            }
        }
    }

    info(strfmt("%1 tables have configuration key '%2'", i, configKeyName));
}

You can use following configuration keys in the job:
LedgerBasic : General ledger
Bank : Bank
SysAdmin : Administration
LogisticsAdvanced : Logistics
LogisticsBasic : Trade
ProjBasic : Project
QuotationBasic : Quotations
AIF : Application Integration Framework
Currency : Currency
ReportingServices : Reporting Services
COSBaseModule : Cost accounting
Asset : Fixed assets
PBA_ProductBuilder : Product Builder
Req : Master planning
smmOutlook : Microsoft Office Outlook synchronisation
LedgerAdvanced : General ledger - advanced
Prod : Production Series I
WrkCtr : Resources
ProdRouting : Production Series II
SysDevelopmentXPP : X++ development
ProdShop : Production Series III
SMAManagement : Service management
SmmCRM : CRM Series
Event : Event
TradeAgreements : Trade agreements
AIFWebService : Application Integration Framework Web Services
Trv : Expense management
TradeInterCompany : Intercompany
SysDevelopmentMorphX : Development
ProjAdvanced : Project - advanced
WMSBasic : Warehouse Management I
WMSAdvanced : Warehouse Management II
KMBSC : Balanced Scorecard
EP : Enterprise Portal
HRMAdministration : Human Resource I
RFID : RFID
SysDatabaseLog : Database log
CSS : Customer Self-Service
SmmSM : Sales management
BankElectronicBanking : Electronic Banking
ESS : Employee Self-Service
BAS : Business analysis
PurchReq : Purchase Requisition
InventQualityManagement : Quality management
COSPlanCostCalc : Flexible Budgeting
SMASubscription : Subscription
JmgPayroll : Shop Floor Control - Pay generation
HRMCollaborative : Human Resource III
CRSECountry : Country/Regional specific features
JmgJob : Shop Floor Control - Job registration
SIG : Electronic signature
LedgerAdvanced2 : General ledger - advanced II
HRMManagement : Human Resource II
KMBPM : Business Process Management
KMQuestionnaireBasic : Questionnaire I
Jmg : Shop Floor Control
SmmTM : Telemarketing
SmmMA : Marketing automation
KMQuestionnaireAdvanced : Questionnaire II

No comments:

Post a Comment