Jagamisviis:


Varude kannete konsolideerimine

Aja jooksul kasvab laokannete tabel (InventTrans) edasi ja kasutab rohkem andmebaasi ruumi. Seetõttu muutuvad tabeli kohta tehtud päringud järk-järgult aeglasemaks. See artikkel kirjeldab, kuidas saate laokannete konsolideerimisfunktsiooni kasutada laokannete andmete konsolideerimiseks süsteemi jõudluse parandamiseks.

Paberraha

Ainult finantsiliselt värskendatud laokandeid saab konsolideerida valitud suletud pearaamatu perioodis. Konsolideerimiseks peavad finantsiliselt uuendatud väljaminevate laokannete väljamineku olek olema Müüdud ja sissetulevate laokannete sissetuleku olek peab olema Ostetud .

Laokannete konsolideerimisl teisaldatakse kõik seotud kanded tabelisse InventTransArchive . Lao väljaminekukanded ja lao sissetulekukanded konsolideeritakse eraldi, kauba ID (itemId) ja laodimensiooni ID () kombinatsioonilinventDimId põhinevalt ning need pannakse summeeritud väljaminekule ja summeeritud sissetulekukannetele.

Kui üks itemId ja inventDimId kombinatsioon sisaldab ainult ühte sissetuleku- või väljaminekkannet, siis kannet ei konsolideerita.

Paberraha

Pärast laokannete konsolideerimist saate täiendavalt optimeerida laoala ja süsteemi jõudlust, Dataverse InventTransArchive kasutades arhiivi pikaajalise kinnipidamise funktsiooniga kirjete teisaldamiseks andmete Microsoft Azure kausta. Lisateavet vt arhiivitud laokannete andmete kohta Dynamics 365 Supply Chain Management.

Funktsiooni sisselülitamine teie süsteemis

Kui teie süsteem ei kaasa juba selles artiklis kirjeldatud funktsiooni, minge funktsioonihaldusesse ja lülitage sisse laokannete konsolideerimise funktsioon. Seda funktsiooni ei saa pärast lubamist keelata.

Mida on vaja enne laokannete konsolideerimist arvestada

Enne laokannete konsolideerimist peaksite arvestama järgmiste äristsenaariumiga, sest toiming mõjutab neid:

  • Kui auditeerite laokandeid seotud dokumentidest, nt ostutellimuse ridadest, näidatakse neid konsolideeritud kannetena. Konsolideeritud kannete ülevaatamiseks peate minge varude halduse perioodilistesse > ülesannetesse > Laokannete > konsolideerimise puhastamine.
  • Lao sulgemist ei saa konsolideeritud perioodideks tühistada.
  • Konsolideeritud perioodideks ei saa konverteerida standardkulusid.
  • Laokannetest lähtekohana aruandeid mõjutab laokannete konsolideerimise korral. Need aruanded sisaldavad laovarude ajalise jaotuse aruannet ja laovarude väärtuse aruandeid.
  • Varude prognoose võib mõjutada, kui neid käitatakse konsolideeritud perioodide perioodil.

Eeltingimused

Laokandeid saab konsolideerida ainult perioodidel, kui järgmised tingimused on täidetud:

  • Pearaamatu periood peab olema suletud.
  • Lao sulgemine peab olema käitatud konsolideerimise kuni-perioodi kuupäeval või pärast seda.
  • See periood peab olema vähemalt üks aasta enne konsolideerimise perioodi alguskuupäeva.
  • Varude ümberarvutusi ei tohi olla.

Konsolideerige oma laokanded.

Laokannete konsolideerimiseks järgige neid samme.

  1. Minge varude halduse perioodilistesse>ülesannetesse>Laokannete>konsolideerimise puhastamine.

    Kuvatakse laokande konsolideerimise leht ja kuvatakse konsolideeritud protsessikirjete loend.

  2. Tegevuspaanil valige laokannete konsolideerimine , et luua laokannete konsolideerimine.

  3. Seadke varude kande konsolideerimise dialoogiboksis parameetrite kiirkaardil järgmised väljad:

    • Suletud pearaamatuperioodi alguskuupäev – valige varaseim kande kuupäev, mis konsolideerimisse kaasata.
    • Kuupäevani suletud pearaamatu perioodis – valige kõige uuem kande kuupäev, mida konsolideerimisse kaasata.

    Paberraha

    Valida saab ainult eeltingimustele vastavad perioodid.

  4. Seadistage taustal käitamise kiirkaardil pakktöötluse üksikasjad vastavalt vajadusele. Järgige teenuse Microsoft Dynamics 365 Supply Chain Management tavalisi pakett-tööde etappe.

  5. Valige nupp OK.

  6. Saate teate, mis palub teil kinnitada, et soovite jätkata. Lugege teadet hoolikalt ja valige Jah , kui soovite jätkata.

    Te saate sõnumi, mis täpsustab, et teie laokannete konsolideerimistöö lisatakse pakktöötluse järjekorda. Töö alustab laokannete konsolideerimist valitud perioodist.

Kuva konsolideeritud laokanded.

Laokande konsolideerimise lehel kuvatakse teie täielik konsolideerimise ajalugu. Igal ruudustiku real kuvatakse selline teave nagu konsolideerimise loomise kuupäev, selle loonud kasutaja ja selle olek.

Lehe ülaosas ripploendis valige üks järgmistest väärtustest ruudustikus kuvatavate konsolideerimiste filtreerimiseks:

  • Aktiivne – saate kuvada ainult aktiivsed konsolideerimised.
  • Kõik – saate kuvada kõik konsolideerimised.

Iga konsolideerimise kohta ruudustikus antakse järgmine teave:

  • Aktiivne – märge näitab, et konsolideerimine on aktiivne.
  • Alguskuupäev – vanima kande kuupäev, mille saab konsolideerimisse kaasata.
  • Kuupäevani – kõige uuema kande kuupäev, mille saab konsolideerimisse kaasata.
  • Plaanitud – kasutajakonto, mis lõi konsolideerimise.
  • Käivitatud – konsolideerimise loomise kuupäev.
  • Peata praegune uuendus – märge näitab, et konsolideerimine on pooleli, kuid see on peatatud.
  • Olek – konsolideerimise töötlemise olek. Võimalikud väärtused on Ootel , Pooleli ja Lõpetatud.

Ruudustiku kohal tööriistariba pakub järgmisi nuppe, mida saate kasutada valitud konsolideerimisega töötada:

  • Konsolideeritud kanded – vaadake valitud konsolideerimise kõiki üksikasju. Kuvatakse konsolideeritud kannete leht, kus kuvatakse kõik konsolideerimises tehtud kanded.

    Konkreetse kande kohta lisateabe vaatamiseks lehel Konsolideeritud kanded valige see ruudustikus ja seejärel valige tegevuspaanil suvand Konsolideeritud kande üksikasjad. Kuvatav konsolideeritud kande üksikasjade leht näitab sellist teavet nagu pearaamatu sisestamine, seotud alammooduli viited ja finantsdimensioonid.

  • Peata – peatage praegu töödeldav valitud konsolideerimine. Paus jõustub alles pärast arhiveerimise ülesande loomist. Seega võib peatamise jõustumine toimuda viivitusega. Kui konsolideerimine on peatatud, kuvatakse märge selle praeguse värskendamise peatamise väljal .

  • Jätka – jätkake praegu peatatud konsolideerimise töötlemist.

Koodi laiendamine kohandatud väljade toetamiseks

Kui tabel InventTrans sisaldab ühte või mitut kohandatud välja, peate võib-olla koodi nende toetamiseks laiendama, sõltuvalt sellest, kuidas nende nimi on.

  • Kui tabeli kohandatud väljadel InventTrans on samad välja nimed InventtransArchive , mis tabelis, tähendab see, et need on vastendatud 1:1. Seetõttu saate kohandatud väljad lihtsalt tabeli InventoryArchiveFields väljagruppi inventTrans panna.
  • Kui tabeli kohandatud väljade InventTrans nimed ei ühti InventtransArchive tabeli väljanimedega, peate nende vastendamiseks lisama koodi. Näiteks kui InventTrans.CreatedDateTime teil on süsteemiväli kutsutud, InventTransArchive peate looma tabelis välja teise nimega ( InventtransArchive.InventTransCreatedDateTiment) ja lisama laiendeid klassidele, nagu näidatud järgmises näidiskoodis InventTransArchiveProcessTask InventTransArchiveSqlStatementHelper .

Järgmine näidiskood näitab näidet, kuidas lisada klassile nõutav InventTransArchiveProcessTask laiend.

[ExtensionOf(classStr(InventTransArchiveProcessTask))]
Final class InventTransArchiveProcessTask_Extension
{

    protected void addInventTransFields(SysDaSelection _selectionObject)
    {
        _selectionObject.add(fieldStr(InventTrans, ModifiedBy))
            .add(fieldStr(InventTrans, CreatedBy)).add(fieldStr(InventTrans, CreatedDateTime));

        next addInventTransFields(_selectionObject);
    }


    protected void addInventTransArchiveFields(SysDaSelection _selectionObject)
    {
        _selectionObject.add(fieldStr(InventTransArchive, InventTransModifiedBy))
            .add(fieldStr(InventTransArchive, InventTransCreatedBy)).add(fieldStr(InventTransArchive, InventTransCreatedDateTime));

        next addInventTransArchiveFields(_selectionObject);
    }
}

Järgmine näidiskood näitab näidet, kuidas lisada klassile nõutav InventTransArchiveSqlStatementHelper laiend.

[ExtensionOf(classStr(InventTransArchiveSqlStatementHelper))]
final class InventTransArchiveSqlStatementHelper_Extension
{
    private str     inventTransModifiedBy;  
    private str     inventTransCreatedBy;
    private str     inventTransCreatedDateTime;

    protected void initialize()
    {
        next initialize();
        inventTransModifiedBy = new SysDictField(tablenum(InventTrans), fieldNum(InventTrans, ModifiedBy)).name(DbBackend::Sql);
        inventTransCreatedDateTime = new SysDictField(tablenum(InventTrans), fieldNum(InventTrans, CreatedDateTime)).name(DbBackend::Sql);
        inventTransCreatedBy = new SysDictField(tablenum(InventTrans), fieldNum(InventTrans, CreatedBy)).name(DbBackend::Sql);
    }

    protected str buildInventTransArchiveSelectionFieldsStatement()
    {
        str     ret;

        ret = next buildInventTransArchiveSelectionFieldsStatement();
        
        if (inventTransModifiedBy)
        {
            ret += ',';
            ret += strFmt('%1',  new SysDictField(tablenum(InventTransArchive), fieldNum(InventTransArchive, InventTransModifiedBy)).name(DbBackend::Sql));
        }

        if (inventTransCreatedBy)
        {
            ret += ',';
            ret += strFmt('%1',  new SysDictField(tablenum(InventTransArchive), fieldNum(InventTransArchive, InventTransCreatedBy)).name(DbBackend::Sql));
        }

        if (inventTransCreatedDateTime)
        {
            ret += ',';
            ret += strFmt('%1',  new SysDictField(tablenum(InventTransArchive), fieldNum(InventTransArchive, InventTransCreatedDateTime)).name(DbBackend::Sql));
        }

        return ret;
    }

    protected str buildInventTransTargetFieldsStatement()
    {
        str     ret;

        ret = next buildInventTransTargetFieldsStatement();

        if (inventTransModifiedBy)
        {
            ret += ',';
            ret += strFmt('%1', inventTransModifiedBy);
        }

        if (inventTransCreatedBy)
        {
            ret += ',';
            ret += strFmt('%1', inventTransCreatedBy);
        }

        if (inventTransCreatedDateTime)
        {
            ret += ',';
            ret += strFmt('%1', inventTransCreatedDateTime);
        }

        return ret;
    }
}