Come posso codificare in X ++ per copiare un anno fiscale in tutte le aziende da una società di base impostata?

StackOverflow https://stackoverflow.com//questions/24010046

  •  21-12-2019
  •  | 
  •  

Domanda

Stiamo funzionando Dynamics AX2012 R2 CU7 e abbiamo codificato :,

"Copia un anno fiscale in tutte le aziende da una società di base che è già stata impostata",

Caratteristica per il nostro sistema di origine che è stato Dynamics AX 2009. Le strutture in Dynamics AX 2012 R2, CU7 è così diversa da non so come effettuare il raggiungimento della stessa funzionalità attraverso la codifica X ++.

Codice originale:

void clicked()
{
  ModulePeriodStat ledger, bank, cust, asset, invent, prod, proj, purch, sales, tax, vend ;
    PeriodEnd        period;
    LedgerPeriod     ledgerPeriod2;
    CompanyInfo      companyInfo;
    Dialog                  dlg;
    ;

    super();

    dlg = new Dialog("Confirm: ");
    dlg.addText("You will create these periods in all companies "+date2str(period,321,2,2,2,2,4));
    dlg.run();
    if ((dlg.closedOk()))
    {
    ttsbegin;

    while select crosscompany companyInfo
    {
    if (companyInfo.dataAreaId != 'ct11' && companyInfo.dataAreaId != 'ct13' && companyInfo.dataAreaId != 'md11' && companyInfo.dataAreaId != 'mf11')
    changecompany(companyInfo.dataAreaId)
    {
        ledgerPeriod2 = null;
    while select forUpdate ledgerPeriod     // where (ledgerPeriod.PeriodEnd == period)
    {
        ledger = ledgerPeriod.StatusLedger;
        bank = ledgerPeriod.StatusBank;
        cust = ledgerPeriod.StatusCust;
        asset = ledgerPeriod.StatusFixedAsset;
        invent = ledgerPeriod.StatusInvent;
        prod = ledgerPeriod.StatusProd;
        proj = ledgerPeriod.StatusProj;
        purch = ledgerPeriod.StatusPurch;
        sales = ledgerPeriod.StatusSalesOrder;
        tax = ledgerPeriod.StatusTax;
        vend = ledgerPeriod.StatusVend;
        period = ledgerPeriod.PeriodEnd;
        ledgerPeriod2.PeriodStart = ledgerPeriod.PeriodStart;
        ledgerPeriod2.PeriodCode = ledgerPeriod.PeriodCode;
        ledgerPeriod2.PeriodEnd = period;
        ledgerPeriod2.PeriodStatus = ledgerPeriod.PeriodStatus;
        ledgerPeriod2.Commentaries = ledgerPeriod.Commentaries;
        ledgerPeriod2.StatusLedger = ledger;
        ledgerPeriod2.StatusBank = bank;
        ledgerPeriod2.StatusCust = cust;
        ledgerperiod2.StatusFixedAsset = asset;
        ledgerPeriod2.StatusInvent = invent;
        ledgerPeriod2.StatusProd = prod;
        ledgerperiod2.StatusProj = proj;
        ledgerPeriod2.StatusPurch = purch;
        ledgerperiod2.StatusSalesOrder = sales;
        ledgerPeriod2.StatusTax = tax;
        ledgerperiod2.StatusVend = vend;
        try
        {
        ledgerperiod2.insert();
        }
        catch (Exception::DuplicateKeyException)
        {
            period = period;
            print('Problem encountered with company: '+companyinfo.dataAreaId);
        }
    }
    }
    }
    ttscommit;
    box::info('Periods Created Successfully');
    }
}
.

È stato utile?

Soluzione

Non è necessario una tale funzionalità in AX 2012.

Dal carta bianca (pagina 735) collegata da fh-inindage:

.

In Microsoft Dynamics AX 2009, la tabella e il modulo LedgerPeriod vengono utilizzati per creare e mantenere il Periodi fiscali per un'azienda.

Motivo per deprecazione: Le organizzazioni globali operano come diverse entità giuridiche in diverse aree geografiche. Tuttavia, condividono molti dati, come grafici di conti, valute, scambio Tariffe e calendari. Definizione di questo riferimento e dati master una volta e condividerlo attraverso le entità giuridiche riduce il costo del mantenimento di tali dati attraverso il organizzazione. Tuttavia, periodi di contabilità e le tavole AssetCalendar associate, ha fatto non fornire un supporto sufficiente per questo scenario e sono stati sostituiti con più Robusti calendari fiscali condivisi.

sostituito da un'altra funzione: La funzione non è più disponibile ed è stata sostituita con un fiscale condiviso calendari.

Impostare il calendario fiscale condiviso in General Ledger \ Setup \ calendario fiscale .

Quindi selezionare quel calendario fiscale in Ledger Genreral \ Setup \ Ledger .

Aggiornamento 2:

La chiusura dei periodi di contabilità è eseguita in Calendario del libro mastro . Lo stato aperto / chiuso di un periodo è memorizzato nella tabella LedgerFiscalCalendarPeriod. Sebbene sia globale, è collegato alla tabella Ledger di cui c'è una per azienda.

Quindi non hai bisogno di qualsiasi personalizzazione relativa ai periodi del contatore dei contanti.

Altri suggerimenti

Potresti dare un'occhiata al Carte bianche che descrivono le modifiche da AX 2009 al 2012. Almeno in Nuove, modificate e deprecate funzioni per Microsoft Dynamics AX 2012 troverai più riferimenti alle modifiche riguardanti gli anni fiscali. È inoltre possibile controllare sui calendari fiscali, Anni fiscali e periodi [AX 2012] su TechNet che è collegato nel Libro Bianco.

Quello che sono stato in grado di ottenere da Skimming attraverso le informazioni è che i dati nelle tabelle per gli anni fiscali sono ora disponibili in tutte le società, quindi non è necessario copiare anni fiscali in altre società. Sembra che tu possa definire nel libro mastro che l'anno fiscale un'entità legale / azienda dovrebbe usare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top