Jaa


Varastotapahtumien konsolidointi

Ajan mittaan varastotapahtumataulu (InventTrans) kasvaa ja kuluttaa enemmän tietokantatilaa. Tästä syystä taulukolle tehdyt kyselyt hidastuvat ajan myötä. Tässä artikkelissa kuvataan, miten varastotapahtumien konsolidointitoiminnon avulla voidaan konsolidoida varastotapahtumien tietoja järjestelmän suorituskyvyn parantamiseksi.

Muistiinpano

Vain taloudellisesti päivitetyt varastotapahtumat voidaan konsolidoida valitulta suljetulta kirjanpitojaksolta. Jotta konsolidointi olisi käytettävissä , lähtevien lähtevien tapahtumien varasto-oton tilana on oltava Myyty, ja saapuvien varastotapahtumien vastaanoton tilana on oltava Ostettu.

Kun konsolidoit varastotapahtumia, kaikki liittyvät tapahtumat siirretään tauluun InventTransArchive . Varasto-ottotapahtumat ja varasto-ottotapahtumat konsolidoidaan erikseen nimikkeen tunnuksen () ja varastodimensionitemId tunnuksen (inventDimId) yhdistelmän perusteella, ja ne laitetaan yhteenveto-ottoon ja yhteenveto vastaanottotapahtumista.

Jos ja itemId yhdistelmä inventDimId sisältää vain yhden vastaanotto- tai varasto-ottotapahtuman, tapahtumaa ei konsolidoida.

Muistiinpano

Kun varastotapahtumat on konsolidoinnin jälkeen, Dataverse InventTransArchive Microsoft Azure voit optimoida varastointia ja järjestelmän suorituskykyä edelleen arkistointitoiminnon avulla, jotta tietueita voidaan siirtää dataan. Lisätietoja on kohdassa Varastotapahtumatietojen arkistoiminen kohteessa Dynamics 365 Supply Chain Management.

Toiminnon ottaminen käyttöön järjestelmässä

Jos järjestelmässä ei ole vielä tässä artikkelissa kuvattua ominaisuutta, siirry ominaisuuksien hallintaan ja ota varastotapahtumien konsolidointitoiminto käyttöön. Tätä toimintoa ei voi poistaa käytöstä, kun se on otettu käyttöön.

Ennen varastotapahtumien konsolidointia huomioon otettavat asiat

Ennen varastotapahtumien konsolidointia on otettava huomioon seuraavat liiketoimintaskenaariot, koska toiminto vaikuttaa niihin:

  • Kun kirjaat varastotapahtumia toisiinsa liittyvistä asiakirjoista, kuten ostotilausriveistä, ne näytetään konsolidointina. Voit tarkistaa konsolidointitapahtumat varastonhallinnan kausittaisten tehtävien > > avulla. Voit tarkistaa varastotapahtumien konsolidoinnin. >
  • Varaston sulkemista ei voi peruuttaa konsolidoiduilla kausilla.
  • Standardikustannusmuunnosta ei voi tehdä konsolidoiduille kausille.
  • Varastotapahtumista lähteneet varastoraportit vaikuttavat siihen, kun konsolidoit varastotapahtumia. Nämä raportit sisältävät varaston erääntymisraportin ja varaston arvon raportit.
  • Varastoennusteet saattavat vaikuttaa, jos ne suoritetaan konsolidointikausien aikahorisontissa.

Edellytykset

Varastotapahtumia voi konsolidoida vain kausina, joiden seuraavat ehdot täyttyvät:

  • Kirjanpitokauden on oltava suljettu.
  • Varaston sulkeminen on suoritettava konsolidoinnin kauden loppupäivämääränä tai sen jälkeen.
  • Kauden on oltava vähintään yksi vuosi ennen konsolidoinnin aloituskauden päivämäärää.
  • Varaston uudelleenlaskentoja ei sallita.

Varastotapahtumien konsolidointi

Noudata seuraavia ohjeita, kun haluat konsolidoida varastotapahtumia.

  1. Siirry Varastonhallinnan kausittaiset >tehtävät ->Puhdista varastotapahtuman>konsolidointi.

    Näkyviin tulee varastotapahtumien konsolidointisivu , joka sisältää konsolidointiprosessitietueiden luettelon.

  2. Luo varastotapahtuman konsolidointi valitsemalla toimintoruudussa varastotapahtuman konsolidointi.

  3. Määritä seuraavat kentät Varastotapahtuman konsolidointi - valintaikkunan Parametrit-pikavälilehdessä:

    • Suljetun kirjanpitokauden aloituspäivämäärä – Valitse konsolidointiin sisällytettävä aikaisin tapahtumapäivämäärä.
    • Päivämäärään suljettuun kirjanpitokauteen – Valitse viimeisin konsolidointiin sisällytettävä tapahtumapäivämäärä.

    Muistiinpano

    Voit valita vain kausia, jotka täyttävät edellytykset.

  4. Määritä eräkäsittelyn tiedot tarpeen mukaan Suorita taustalla -pikavälilehdestä. Noudata erätöiden tavallisia vaiheita Microsoft Dynamics 365 Supply Chain Management.

  5. Valitse OK.

  6. Näet viestin, joka pyytää sinua vahvistamaan, että haluat jatkaa. Lue viesti huolellisesti ja valitse Kyllä, jos haluat jatkaa.

    Näyttöön tulee sanoma, jonka mukaan varastotapahtuman konsolidointityö lisätään eräjonoon. Työn avulla voidaan konsolidoida varastotapahtumia valilta jaksolta.

Konsolidointivarastotapahtumien tarkasteleminen

Varastotapahtumien konsolidointi -sivulla näkyy koko konsolidointihistoriasi. Jokaisella ruudukon rivillä näkyy tietoja, kuten konsolidoinnin luontipäivämäärä, sen luonut käyttäjä ja sen tila.

Valitse sivun yläosan avattavasta luettelosta jokin seuraavista arvoista, kun haluat suodattaa ruudukossa näkyvät konsolidoinnit:

  • Aktiivinen – Näytä vain aktiiviset konsolidointit.
  • Kaikki : Näytä kaikki konsolidoinnit.

Kutakin ruudukon konsolidointia varten annetaan seuraavat tiedot:

  • Aktiivinen – Valintamerkki ilmaisee, että konsolidointi on aktiivinen.
  • Aloituspäivämäärä – Vanhimpaan konsolidointiin sisällytettävän tapahtuman päivämäärä.
  • Päivämäärään – Viimeisimmän konsolidointiin sisällytettävän tapahtuman päivämäärä.
  • Ajoitettu – Konsolidoinnin luonut käyttäjätili.
  • Suoritettu: Päivämäärä, jolloin konsolidointi luotiin.
  • Pysäytä nykyinen päivitys – Valintamerkki ilmaisee, että konsolidointi on meneillään, mutta konsolidointi on keskeytetty.
  • Tila – Konsolidoinnin käsittelytila. Mahdolliset arvot ovat Odottaa, Käynnissä ja Valmis.

Ruudukon yllä oleva työkalurivi sisältää seuraavat painikkeet, joita voit käyttää valitun konsolidoinnin kanssa:

  • Konsolidointitapahtumat – Tarkastele valitun konsolidoinnin yksityiskohtaisia tietoja. Näyttöön tuleva konsolidointitapahtumien sivu, jossa näkyvät kaikki konsolidoinnin tapahtumat.

    Jos haluat lisätietoja tietystä tapahtumasta Konsolidointitapahtumat-sivulla , valitse tapahtuma ruudukosta ja valitse sitten toimintoruudusta Konsolidointitapahtuman tiedot. Näkyviin tulevalla konsolidointitapahtuman tietosivulla näkyy esimerkiksi kirjanpidon kirjauksia, liittyviä alareskontran viitteitä ja taloushallinnon dimensioita.

  • Keskeytys : Keskeytä valittu parhaillaan käsiteltävä konsolidointi. Tauko tulee voimaan vasta arkistointitehtävän luomisen jälkeen. Tästä syystä ennen keskeytyksen alkamista voi olla lyhyt viive. Jos konsolidointi on keskeytetty, Pysäytä nykyinen päivitys -kenttään tulee valintamerkki .

  • Jatka – Parhaillaan keskeytettyjen valitun konsolidoinnin jatkaminen.

Koodin laajentaminen mukautettujen kenttien tueksi

Jos taulu InventTrans sisältää vähintään yhden mukautetun kentän, koodia on ehkä laajentaa niin, että se tukee kenttiä sen mukaan, miten ne on nimetty.

  • Jos taulun mukautetuilla InventTrans kentillä on samat InventtransArchive kenttien nimet kuin taulussa, ne on yhdistetty 1:1:ksi. Näin ollen voit vain laittaa mukautetut kentät taulukon inventTrans kenttäryhmään InventoryArchiveFields.
  • Jos taulukon InventTrans mukautetut kenttien nimet eivät vastaa taulukon InventtransArchive kenttien nimiä, ne on liitettävä lisäämällä koodi. Jos esimerkiksi järjestelmäkenttä on nimeltään InventTrans.CreatedDateTime, sinun on luotava taulukkoon InventTransArchive kenttä, jolla on eri nimi (esimerkiksi InventtransArchive.InventTransCreatedDateTime) ja lisättävä alanumerot luokkiin InventTransArchiveProcessTask ja InventTransArchiveSqlStatementHelper seuraavan esimerkkikoodin mukaisesti.

Seuraava esimerkkikoodi näyttää, kuinka tarvittava laajennus lisätään luokkaan InventTransArchiveProcessTask.

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

Seuraava esimerkkikoodi näyttää, kuinka tarvittava laajennus lisätään luokkaan InventTransArchiveSqlStatementHelper.

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