© navision.pl | Opracowano na podstawie: Microsoft Learn (CC BY 4.0)
Szczegóły projektowania: Struktura księgowania śledzenia zapasów
Aby zachować zgodność z funkcjonalnością wyceny zapasów i uzyskać prostsze i bardziej niezawodne rozwiązanie, zapisy księgi zapasów są używane jako główny nośnik numerów śledzenia zapasów.
Numery śledzenia zapasów w jednostkach sieci zamówień i jednostkach spoza sieci zamówień są określone w tabeli Zapis rezerwacji (T337). Numery śledzenia zapasów powiązane z informacjami historycznymi są pobierane bezpośrednio z zapisów księgi zapasów powiązanych z daną transakcją. Oznacza to, że zapisy księgi zapasów odzwierciedlają specyfikację śledzenia zapasów zaksięgowanego wiersza zamówienia.
Strona Wiersze śledzenia zapasu pobiera informacje z T337 i zapisów księgi zapasów i wyświetla je za pomocą tabeli tymczasowej Specyfikacja śledzenia (T336). T336 przechowuje również dane tymczasowe na stronie Wiersze śledzenia zapasu dla ilości śledzenia zapasów, które pozostają do zafakturowania.
Relacja jeden do wielu
Tabela Relacja zapisu zapasu, która służy do łączenia zaksięgowanego wiersza dokumentu z powiązanymi zapisami księgi zapasów, składa się z dwóch głównych części:
- Wskaźnik do zaksięgowanego wiersza dokumentu, pole Nr wiersza zamówienia.
- Numer zapisu wskazujący na zapis księgi zapasów, pole Nr zapisu zapasu.
Funkcjonalność istniejącego pola Nr zapisu, które wiąże zapis księgi zapasów ze zaksięgowanym wierszem dokumentu, obsługuje typową relację jeden do jednego, gdy na zaksięgowanym wierszu dokumentu nie istnieją numery śledzenia zapasów. Jeśli numery śledzenia zapasów istnieją, pole Nr zapisu pozostaje puste, a relacja jeden do wielu jest obsługiwana przez tabelę Relacja zapisu zapasu. Jeśli zaksięgowany wiersz dokumentu zawiera numery śledzenia zapasów, ale odnosi się tylko do pojedynczego zapisu księgi zapasów, pole Nr zapisu obsługuje relację i żaden rekord nie jest tworzony w tabeli Relacja zapisu zapasu.
Codeunits 80 (Sales-Post) and 90 (Purch-Post)
Aby podzielić zapisy księgi zapasów podczas księgowania, kod w codeunit 80 i codeunit 90 jest otoczony pętlami przebiegającymi przez globalne tymczasowe zmienne rekordowe. Ten kod wywołuje codeunit 22 z wierszem dziennika zapasów. Te zmienne są inicjowane, gdy istnieją numery śledzenia zapasów dla wiersza dokumentu. Aby zachować prostotę kodu, ta struktura pętli jest zawsze używana. Jeśli dla wiersza dokumentu nie istnieją numery śledzenia zapasów, wstawiany jest pojedynczy rekord, a pętla wykonuje się tylko raz.
Księgowanie dziennika zapasów
Item tracking numbers are transferred via the reservation entries that relate to the item ledger entry, and the looping through item tracking numbers occurs in codeunit 22 (Item Jnl.-Post Line). This concept works in the same way when an item journal line is used indirectly to post a sale or purchase order as when an item journal line is used directly. When the item journal is used directly, the Source Row ID field points to the item journal line itself.
Code Unit 22 (Item Jnl.-Post Line)
Codeunits 80 (Sales-Post) and 90 (Purch-Post) loop the call of codeunit 22 (Item Jnl.-Post Line) during the invoice posting of item tracking numbers and during the invoicing of existing shipments or receipts.
Podczas księgowania ilości numerów śledzenia zapasów codeunit 22 (Item Jnl.-Post Line) pobiera numery śledzenia zapasów z zapisów w T337 (Zapis rezerwacji) powiązanych z księgowaniem. Te zapisy są umieszczane bezpośrednio w wierszu dziennika zapasów.
Codeunit 22 (Item Jnl.-Post Line) loops through the item tracking numbers and splits the posting into the respective item ledger entries that carry the item tracking numbers. Information about which item ledger entries are created is returned to T337(Reservation Entry)by using a temporary T336 record, which is called by a procedure in codeunit 22. This procedure is triggered when codeunit 22 has finished its run because at that point, the codeunit 22 object contains the information. When the temporary T336 record is retrieved, Codeunits 80 (Sales-Post) and 90 (Purch-Post) create records in the Item Entry Relation table to link the created item ledger entries to the created shipment or receipt line. Codeunits 80 (Sales-Post) and 90 (Purch-Post) then converts the temporary T336 (Tracking Specification) records to real T336 (Tracking Specification) records that are related to the line in question. However, this conversion occurs only if the posted document line is not deleted, because it is only partially posted.
Powiązane informacje
Szczegóły projektowania: Śledzenie zapasów
Szczegóły projektowania: Projekt śledzenia zapasów
Znajdź bezpłatne moduły e-learningowe dla Business Central tutaj