Consolidare le operazioni di magazzino
Nel tempo, la tabella delle transazioni di inventario (InventTrans
) continuerà a crescere e a consumare più spazio nel database. Pertanto, le query eseguite sulla tabella diventeranno gradualmente più lente. Questo articolo descrive come utilizzare la funzionalità Consolidamento delle transazioni di inventario per consolidare i dati sulle transazioni di inventario e contribuire a migliorare le prestazioni del sistema.
Nota
Solo le transazioni di inventario aggiornate finanziariamente possono essere consolidate in un periodo contabile chiuso selezionato. Per essere consolidate, le transazioni di inventario in uscita aggiornate finanziariamente devono avere uno stato di emissione di Venduto e le transazioni di inventario in entrata devono avere uno stato di entrata di Acquistato.
Quando consolidi le transazioni di inventario, tutte le transazioni correlate vengono spostate nella tabella InventTransArchive
. Le transazioni di uscita di inventario e le transazioni di entrata di inventario vengono consolidate separatamente, in base alla combinazione dell'ID articolo (itemId
) e dell'ID dimensione inventariale (inventDimId
) e vengono inserite nel riepilogo transazioni in emissione e in entrata riepilogate.
Se una combinazione itemId
e inventDimId
contiene solo una transazione di entrata o di uscita, la transazione non verrà consolidata.
Nota
Dopo aver consolidato le transazioni di inventario, puoi ottimizzare ulteriormente lo spazio di archiviazione e le prestazioni del sistema utilizzando la funzione Archivia con Dataverse conservazione a lungo termine funzione per spostare InventTransArchive
registra in un Microsoft Azure data Lake. Per ulteriori informazioni, consulta Archiviare i dati delle transazioni di inventario in Dynamics 365 Supply Chain Management.
Attiva la funzionalità nel tuo sistema
Se il tuo sistema non include già la funzionalità descritta in questo articolo, vai a Gestione funzionalità e attiva Consolidamento delle transazioni di inventario funzione. Questa funzione non può essere disabilitata dopo essere stata abilitata.
Cose da considerare prima di consolidare le transazioni di inventario
Prima di consolidare le transazioni di inventario, dovresti considerare i seguenti scenari aziendali, perché saranno interessati dall'operazione:
- Quando controlli le transazioni di magazzino da documenti correlati, come le righe dell'ordine di acquisto, queste vengono visualizzate come consolidate. Per rivedere le transazioni consolidate, devi andare a Gestione inventario > Attività periodiche > Pulizia > Consolidamento delle transazioni di inventario.
- La chiusura dell'inventario non può essere annullata per i periodi consolidati.
- La conversione dei costi standard non può essere eseguita per periodi consolidati.
- I report sull'inventario che provengono dalle transazioni di inventario vengono influenzati quando si consolidano le transazioni di inventario. Questi report includono il report sull'aging delle scorte e i rapporti sui valori di inventario.
- Le previsioni dell'inventario potrebbero essere influenzate se eseguite durante l'orizzonte temporale dei periodi consolidati.
Prerequisiti
Le transazioni di magazzino possono essere consolidate solo durante i periodi in cui sono soddisfatte le seguenti condizioni:
- Il periodo contabile deve essere chiuso.
- La chiusura dell'inventario deve essere eseguita a partire dalla data di consolidamento del periodo in questione.
- Il periodo deve essere almeno un anno prima della data di inizio periodo del consolidamento.
- Non devono esistere ricalcoli di inventario.
Consolida le tue transazioni di inventario
Per consolidare le transazioni di inventario, attenersi alla seguente procedura.
Vai a Gestione inventario>Attività periodiche>Pulizia>Consolidamento delle transazioni di inventario.
Viene visualizzata la pagina Consolidamento delle transazioni di inventario che mostra un elenco di record di processo consolidati.
Nel riquadro azioni, selezionare Consolidamento delle transazioni di inventario per creare un consolidamento delle transazioni di inventario.
Nella finestra di dialogo Consolidamento transazioni di inventario , nella scheda veloce Parametri , impostare i seguenti campi:
- Dalla data nel periodo contabile chiuso : seleziona la prima data della transazione da includere nel consolidamento.
- Ad oggi nel periodo contabile chiuso : seleziona la data della transazione più recente da includere nel consolidamento.
Nota
Solo i periodi che soddisfano i prerequisiti saranno selezionabili.
Nella Scheda dettaglio Esecuzione in background, impostare i dettagli dell'elaborazione batch come necessario. Seguire i passaggi usuali per i processi batch in Microsoft Dynamics 365 Supply Chain Management.
Selezionare OK.
Viene visualizzato un messaggio che richiede di confermare se si desidera continuare. Leggere attentamente il messaggio, quindi selezionare Sì per continuare.
Si riceve un messaggio che informa che il processo di consolidamento delle transazioni di inventario è stato aggiunto alla coda batch. Il lavoro inizia a consolidare le transazioni di inventario dal periodo selezionato.
Visualizza le transazioni di inventario consolidate
La pagina Consolidamento delle transazioni di inventario mostra la cronologia completa del consolidamento. Ogni riga della griglia mostra informazioni quali la data di creazione del consolidamento, l'utente che lo ha creato e il suo stato.
Nell'elenco a discesa nella parte superiore della pagina selezionare uno dei seguenti valori per filtrare i consolidamenti visualizzati nella griglia:
- Attivo : mostra solo i consolidamenti attivi.
- Tutti : mostra tutti i consolidamenti.
Per ciascun consolidamento nella griglia vengono fornite le seguenti informazioni:
- Attivo : un segno di spunta indica che il consolidamento è attivo.
- Dalla data : la data della transazione più vecchia che può essere inclusa nel consolidamento.
- Ad oggi – La data della transazione più recente che può essere inclusa nel consolidamento.
- Pianificato da : l'account utente che ha creato il consolidamento.
- Eseguito : la data in cui è stato creato il consolidamento.
- Interrompi aggiornamento corrente : un segno di spunta indica che il consolidamento è in corso, ma è stato sospeso.
- Stato : lo stato di elaborazione del consolidamento. I valori possibili sono In attesa, In corso e Finito.
La barra degli strumenti sopra la griglia fornisce i seguenti pulsanti che è possibile utilizzare per lavorare con un consolidamento selezionato:
Transazioni consolidate : visualizza tutti i dettagli del consolidamento selezionato. La pagina Transazioni consolidate visualizzata mostra tutte le transazioni nel consolidamento.
Per visualizzare ulteriori informazioni su una transazione specifica nella pagina Transazioni consolidate , selezionarla nella griglia, quindi, nel riquadro azioni, selezionare Dettagli della transazione consolidata. La pagina Dettagli transazione consolidata visualizzata mostra informazioni quali la registrazione nel registro, i relativi riferimenti nel registro secondario e le dimensioni finanziarie.
Pausa : mette in pausa un consolidamento selezionato attualmente in fase di elaborazione. La pausa diventa effettiva solo dopo la generazione dell'attività di archiviazione. Pertanto, potrebbe esserci un breve ritardo prima della sospensione dell'archiviazione. Se un consolidamento è in pausa, viene visualizzato un segno di spunta nel campo Interrompi aggiornamento corrente .
Riprendi : riprende l'elaborazione per un consolidamento selezionato attualmente in pausa.
Estendere il codice per supportare i campi personalizzati
Se la tabella InventTrans
contiene uno o più campi personalizzati, potrebbe essere necessario estendere il codice per supportarli, a seconda di come vengono denominati.
- Se i campi personalizzati della tabella
InventTrans
hanno gli stessi nomi di campo della tabellaInventtransArchive
, significa che sono mappati 1:1. Pertanto, è possibile inserire semplicemente i campi personalizzati nel gruppo di campiInventoryArchiveFields
della tabellainventTrans
. - Se i nomi dei campi personalizzati nella tabella
InventTrans
non corrispondono ai nomi dei campi nella tabellaInventtransArchive
, è necessario aggiungere il codice per mapparli. Ad esempio, se si dispone di un campo di sistema chiamatoInventTrans.CreatedDateTime
, è necessario creare un campo nella tabellaInventTransArchive
con un nome diverso (comeInventtransArchive.InventTransCreatedDateTime
) e aggiungere le estensioni alle classiInventTransArchiveProcessTask
eInventTransArchiveSqlStatementHelper
, come illustrato nel codice di esempio seguente.
Nel seguente codice di esempio viene illustrato un modo per aggiungere l'estensione richiesta alla classe 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);
}
}
Nel seguente codice di esempio viene illustrato un modo per aggiungere l'estensione richiesta alla classe 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;
}
}
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per