Przejdź do głównej zawartości

Księgowanie zapisów dziennika w NetSuite

Księguj zapisy dziennika z tabel projektu PlaidCloud w NetSuite za pomocą kroku Post NetSuite Journal Entry przepływu pracy. Ten przewodnik buduje partię z tabeli nagłówków i tabeli wierszy, wyświetla jej podgląd bez kontaktu z NetSuite, a następnie ją księguje i odczytuje wynik.

  • Działające połączenie NetSuite z rolą, która może tworzyć zapisy dziennika (dostęp Create do rekordu Journal Entry, oprócz konfiguracji REST/OAuth opisanej w przewodniku dotyczącym odczytu).
  • Dwie tabele źródłowe w projekcie:
    • Tabela nagłówków z jednym wierszem na każdy zapis dziennika.
    • Tabela wierszy z jednym lub wieloma wierszami debetowymi/kredytowymi na każdy zapis dziennika.
  1. Zbuduj lub zaimportuj tabelę nagłówków z jednym wierszem na każdy zapis dziennika. Minimalnie potrzebuje ona:

    Kolumna Mapowana na Wymagana
    Identyfikator dziennika Journal ID Tak
    Spółka zależna NetSuite Subsidiary Tak
    Data zapisu Posting Date Tak
    Waluta NetSuite Currency Nie
    Opis na poziomie zapisu Memo Nie
    Zewnętrzny identyfikator podany przez wywołującego External ID Nie
  2. Zbuduj lub zaimportuj tabelę wierszy z jednym lub wieloma wierszami na każdy zapis dziennika, z tym samym identyfikatorem dziennika co wiersz nagłówka:

    Kolumna Mapowana na Wymagana
    Identyfikator dziennika Journal ID Tak
    Konto księgi głównej Account Tak
    Kwota po stronie Wn (0, jeśli brak) Debit Tak
    Kwota po stronie Ma (0, jeśli brak) Credit Tak
    Opis na poziomie wiersza Memo Nie
    Dział, klasa, lokalizacja, jednostka Department / Class / Location / Entity Nie
  3. Zgrupuj kwoty w tych dwóch tabelach na takim poziomie, na jakim księgujesz — jeden zapis na dzień, na dokument lub na partię — używając zwykłych kroków tabel (tabeli przestawnej, agregacji z grupowaniem lub złączenia). Identyfikator dziennika łączy zestaw wierszy z jego nagłówkiem, więc zbuduj go jako klucz unikatowy dla każdego zapisu dziennika i wspólny dla wszystkich należących do niego wierszy.

  1. Dodaj do przepływu pracy krok Post NetSuite Journal Entry.

  2. Na karcie Connection ustaw NetSuite Connection na swoje połączenie NetSuite i wybierz Environment.

  3. Na karcie Data:

    • Ustaw Journal Entry Header Table i Journal Entry Lines Table na tabele zbudowane powyżej.
    • Na razie pozostaw zaznaczone Test Only Mode — zobacz Podgląd i weryfikacja.
    • Pozostaw zaznaczone Continue posting remaining entries if one entry fails, chyba że wolisz, aby partia zatrzymała się na pierwszym błędnym zapisie.
    • Pozostaw wyłączone Submit Asynchronously, chyba że konieczna jest ścieżka asynchronicznego przyjmowania w NetSuite dla partii o dużej objętości — zobacz Przesyłanie asynchroniczne poniżej.
    • Ustaw Posting Result Table na tabelę, którą PlaidCloud może utworzyć lub nadpisać. Będzie ona potrzebna przy każdym uruchomieniu, nie tylko za pierwszym razem — zobacz Odczyt tabeli wyników.
  4. Na karcie Header Map zmapuj kolumny tabeli nagłówków na Journal ID, Subsidiary, Posting Date oraz (jeśli je masz) Currency, Memo i External ID. Użyj Header Filters, jeśli chcesz zaksięgować tylko podzbiór wierszy nagłówka.

  5. Na karcie Line Map zmapuj kolumny tabeli wierszy na Journal ID, Account, Debit, Credit oraz (jeśli je masz) Memo, Department, Class, Location i Entity. Użyj Line Filters w ten sam sposób.

Przy zaznaczonym Test Only Mode uruchom krok. PlaidCloud buduje każdy zapis dziennika ze zmapowanych danych i wykonuje te same sprawdzenia, które wykonałby przed księgowaniem — zbilansowanie debetów i kredytów, obecność wymaganych pól, prawidłową datę księgowania — bez ani jednego wywołania NetSuite. Nic nie zostaje zaksięgowane.

  1. Uruchom krok (zobacz Uruchamianie jednego kroku w przepływie pracy).

  2. Otwórz tabelę wyników i upewnij się, że każdy wiersz, który miał zostać zaksięgowany, ma status = validated. Każdy wiersz z wartością error wskazuje identyfikator dziennika zapisu i problem — najczęściej niezbilansowany zapis, brakujące konto (Account) albo puste pole Subsidiary lub Posting Date.

  3. Popraw dane źródłowe (lub mapowania i filtry) dla każdego wiersza error i uruchamiaj ponownie, aż partia przejdzie weryfikację bez błędów.

Gdy partia przejdzie weryfikację bez błędów, odznacz Test Only Mode i uruchom krok ponownie. Tym razem PlaidCloud faktycznie księguje w NetSuite każdy zweryfikowany zapis.

Submit Asynchronously wysyła każdy zapis z asynchronicznym nagłówkiem akceptacji NetSuite zamiast czekać na synchroniczne utworzenie i odczyt zwrotny. NetSuite umieszcza zapis w kolejce i odpowiada natychmiast; PlaidCloud rejestruje go jako pending wraz z odwołaniem do przesłania, a nie jako posted lub error.

Tabela wyników zawiera jeden wiersz na każdy zapis dziennika, którego dotyczyła próba, niezależnie od trybu, w którym uruchomiono krok:

Kolumna Opis
journal_id Identyfikator dziennika z tabeli nagłówków.
external_id Zewnętrzny identyfikator użyty w tej próbie księgowania (patrz niżej).
internal_id Wewnętrzny identyfikator NetSuite utworzonego zapisu lub odwołanie do przesłania asynchronicznego, gdy status to pending. Puste w Test Only Mode i w przypadku błędu.
status validated, posted, pending (Submit Asynchronously — zapis przyjęto, ale NetSuite go jeszcze nie potwierdził) lub error.
message Szczegóły błędu przy error. Puste przy posted/validated.

Kolejne kroki — powiadomienie o każdym wierszu error, złączenie z tabelą nagłówków w celu zapisania internal_id — buduj na tej tabeli, a nie na statusie uruchomienia samego kroku, ponieważ jeden błędny zapis w dużej partii nie powoduje niepowodzenia całego kroku, gdy włączono Continue posting remaining entries.

Każdy zapis jest księgowany z deterministycznym zewnętrznym identyfikatorem zbudowanym z projektu, połączenia, identyfikatora dziennika, daty księgowania i kwot jego wierszy. Ponowne uruchomienie kroku dla niezmienionego zapisu używa tego samego zewnętrznego identyfikatora, a mechanizm obsługi zewnętrznych identyfikatorów w NetSuite zapobiega utworzeniu duplikatu — dlatego ponowne uruchomienie przepływu pracy po przejściowej awarii jest bezpieczne dla zapisów, które się nie zmieniły.