Kopīgot, izmantojot


Krājumu transakciju konsolidēšana

Laika gaitā krājumu darbību tabula (InventTrans) turpinās pieaugt un patērēt vairāk vietas datu bāzē. Tāpēc vaicājumi, kas ir veikti attiecībā pret tabulu, pakāpeniski kļūs lēnāki. Šajā rakstā ir aprakstīts, kā var lietot krājumu darbību konsolidācijas līdzekli , lai konsolidētu datus par krājumu darbībām, tādējādi uzlabojot sistēmas veiktspēju.

Piezīme

Tikai finansiāli atjauninātas krājumu darbības var konsolidēt atlasītajā slēgtajā Virsgrāmatas periodā. Lai to konsolidētu, finansiāli atjauninātām nosūtīšanas krājumu darbībām jābūt ar izejas plūsmas statusu Pārdots, un ienākošo krājumu darbībām jābūt ar saņemšanas statusu Nopirkts .

Konsolidējot krājumu darbības, visas saistītās darbības tiek pārvietotas uz InventTransArchive tabulu. Krājumu izdošanas darbības un krājumu saņemšanas darbības tiek konsolidētas atsevišķi, pamatojoties uz krājuma ID () un krājumu dimensijas ID (itemIdinventDimId) kombināciju, un tās tiek pievienotas apkopotām izejas plūsmām un apkopotām saņemšanas darbībām.

Ja vienā itemId un inventDimId kombinācijā ir tikai viena saņemšanas vai izdošanas darbība, darbība netiks konsolidēta.

Piezīme

Pēc krājumu darbību konsolidēšanas, jūs varat turpināt optimizēt glabāšanas un sistēmas veiktspēju, izmantojot arhīvu ar ilgtermiņa ieturējuma līdzekli, Dataverse InventTransArchive lai pārvietotu ierakstus uz Microsoft Azure datu krātuvi. Papildinformāciju skatiet sadaļā Krājumu darbību datu arhivēšana Dynamics 365 Supply Chain Management.

Līdzekļa ieslēgšana sistēmā

Ja sistēmā vēl nav ietverta šajā rakstā aprakstītā funkcija, pārejiet uz sadaļu Līdzekļu pārvaldība un slēdziet krājumu darbību konsolidācijas līdzekli. Pēc šī līdzekļa iespējošanas to nevar atspējot.

Lietas, kas jāņem vērā pirms krājumu darbību konsolidēšanas

Pirms krājumu darbību konsolidācijas ir jāņem vērā šādi biznesa scenāriji, jo operācija tās ietekmēs:

  • Kad jūs audita krājumu darbības no saistītiem dokumentiem, piemēram, pirkšanas pasūtījuma rindām, tās tiek parādītas kā konsolidētas. Lai pārskatītu konsolidētās darbības, dodieties uz krājumu pārvaldības periodiskajiem >> uzdevumiem Tīrīt krājumu > darbību konsolidāciju.
  • Krājumu slēgšanu nevar atcelt konsolidētiem periodiem.
  • Standarta izmaksu pārveidošanu nevar veikt konsolidētiem periodiem.
  • Krājumu pārskati, kas ir nākuši no krājumu darbībām, tiek ietekmēti, konsolidējot krājumu darbības. Šie pārskati ietver krājumu vecumstruktūras pārskatu un krājumu vērtību pārskatus.
  • Krājumu prognozes var tikt ietekmētas, ja tās tiek palaistas konsolidēto periodu laika periodā.

Priekšnosacījumi

Krājumu darbības var konsolidēt tikai to periodu laikā, kuros ir ievēroti šādi nosacījumi:

  • Virsgrāmatas periodam jābūt slēgtam.
  • Krājumu slēgšana jāveic konsolidācijas perioda datumā vai pēc tā.
  • Periodam jābūt vismaz vienu gadu pirms konsolidācijas perioda sākuma datuma.
  • Nedrīkst būt eksistējošu krājumu pārrēķini.

Konsolidēt krājumu darbības

Lai konsolidētu krājumu darbības, sekojiet šiem soļiem.

  1. Dodieties uz Sadaļu Krājumu pārvaldība>Periodiskie uzdevumi>Krājumu darbību>konsolidācijas tīrīšana.

    Parādās krājumu darbību konsolidācijas lapa un parādīta konsolidētā procesa ierakstu saraksts.

  2. Darbību rūtī atlasiet Krājumu darbību konsolidāciju , lai izveidotu krājumu darbību konsolidāciju.

  3. Kopsavilkuma cilnes Parametri dialoglodziņā Krājumu darbību konsolidācija iestatiet šādus laukus:

    • No datuma slēgtajā Virsgrāmatas periodā – izvēlieties agrāko darījuma datumu, ko iekļaut konsolidācijā.
    • Līdz datumam slēgtajā Virsgrāmatas periodā – atlasiet konsolidēšanai iekļaujamā jaunākās darbības datumu.

    Piezīme

    Atlasei būs pieejami tikai periodi , kas atbilst priekšnosacījumiem.

  4. Kopsavilkuma cilnē Izpildīt fonā iestatiet pakešapstrādes detaļas pēc pieprasījuma. Veiciet pakešuzdevumu darbības programmā Microsoft Dynamics 365 Supply Chain Management, kā parasti.

  5. Atlasiet Labi.

  6. Jūs saņemat ziņojumu, kurā tiek parādīta uzvedne ar aicinājumu apstiprināt, ka vēlaties turpināt. Uzmanīgi izlasiet ziņojumu un pēc tam atlasiet , ja vēlaties turpināt.

    Tiek saņemts ziņojums, ka krājumu darbību konsolidācijas darbs tiek pievienots pakešuzdevumu rindai. Uzdevums sāk konsolidēt krājumu darbības no atlasītā perioda.

Skatīt konsolidētās krājumu darbības

Krājumu darbību konsolidācijas lapa rāda pilnu konsolidācijas vēsturi. Katra režģa rinda rāda tādu informāciju kā konsolidācijas izveides datumu, lietotāju, kas to izveidoja, un tā statusu.

Lai filtrētu režģī parādītās konsolidācijas, lapas augšējā nolaižamajā sarakstā izvēlieties vienu no šīm vērtībām:

  • Aktīvs – rādīt tikai aktīvās konsolidācijas.
  • Visi – rādīt visas konsolidācijas.

Katrai konsolidācijai režģī tiek sniegta šāda informācija:

  • Aktīvs - atzīme norāda, ka konsolidācija ir aktīva.
  • No datuma – senākās konsolidēšanas darbības datums.
  • Līdz datumam – jaunākas darbības datums, ko var iekļaut konsolidējot.
  • Plānots pēc - lietotāja konts, kas izveidoja konsolidāciju.
  • Izpildīts – datums, kad konsolidācija tika izveidota.
  • Pārtraukt pašreizējo atjaunināšanu — atzīmes atzīme norāda, ka konsolidācija notiek, bet tā ir apturēta.
  • Stāvoklis - konsolidēšanas apstrādes statuss. Iespējamās vērtības ir Gaida, Notiek un Pabeigts.

Rīkjosla virs režģa nodrošina šādas pogas, kuras var izmantot darbam ar atlasīto konsolidāciju:

  • Konsolidētās darbības – apskatiet visas izvēlētās konsolidēšanas detaļas. Konsolidēto darbību lapa, kas tiek parādīta, konsolidējot visus darījumus.

    Lai skatītu papildinformāciju par noteiktu darbību lapā Konsolidētās darbības, atlasiet to režģī un pēc tam darbību rūtī atlasiet Konsolidētās darbības detaļas. Konsolidēto darbību informācijas lapa , kas parādās, parāda tādu informāciju kā grāmatošana Virsgrāmatā, saistītās apakšgrāmatas atsauces un finanšu dimensijas.

  • Pauzēt — pauzēt atlasīto konsolidāciju, kas pašlaik tiek apstrādāta. Pauze stājas spēkā tikai pēc tam, kad ir izveidots arhivēšanas uzdevums. Tāpēc var būt neliela aizkave, pirms pauze stājas spēkā. Ja konsolidācija ir apturēta, laukā Apturēt pašreizējo atjaunināšanu tiek parādīta atzīme .

  • CV – atsākt apstrādi atlasītajai konsolidēšanai, kas pašlaik ir apturēta.

Paplašināt kodu, lai atbalstītu pielāgotos laukus

Ja tabulā InventTrans ir viens vai vairāki pielāgoti lauki, iespējams, jāpaplašina kods, lai tos atbalstītu, atkarībā no tā, kā tie nosaukti.

  • Ja pielāgotajiem tabulas laukiem InventTrans ir tādi paši InventtransArchive lauku nosaukumi kā tabulā, tas nozīmē, ka tie ir kartēti 1:1. Tādēļ jūs varat vienkārši ievietot pielāgotos laukus InventoryArchiveFields tabulas lauku inventTrans grupā.
  • Ja pielāgotie lauku nosaukumi tabulā InventTrans neatbilst tabulas InventtransArchive lauku nosaukumiem, tad, lai tos kartētu, ir jāpievieno kods. Piemēram, InventTrans.CreatedDateTime ja ir izsaukts InventTransArchiveInventtransArchive.InventTransCreatedDateTimesistēmas lauks, InventTransArchiveProcessTask tad ir jāizveido lauks tabulā ar citu nosaukumu ( InventTransArchiveSqlStatementHelper piemēram) un jāpievieno paplašinājumi un klases, kā parādīts tālāk esošajā parauga kodā.

Tālāk sniegtajā parauga kodā parādīts piemērs par to, kā klasei pievienot nepieciešamo InventTransArchiveProcessTask paplašinājumu.

[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);
    }
}

Tālāk sniegtajā parauga kodā parādīts piemērs par to, kā klasei pievienot nepieciešamo InventTransArchiveSqlStatementHelper paplašinājumu.

[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;
    }
}