Analiza finansów z NetSuite — od połączenia do rachunku zysków i strat
~45 minut · działające połączenie NetSuite, załadowana księga główna, miesięczny rachunek zysków i strat, zestawienie wiekowania należności i zaplanowane odświeżanie
To ścieżka na pierwszy dzień dla kontrolera finansowego lub analityka FP&A: na końcu pobierzesz księgę główną bezpośrednio z NetSuite, przekształcisz ją w miesięczny rachunek zysków i strat, który czyta się jak sprawozdanie, zbudujesz zestawienie wiekowania należności, umieścisz oba wyniki na pulpicie i ustawisz automatyczne odświeżanie całości. Bez eksportu do arkusza kalkulacyjnego i ręcznego przepisywania — liczby pochodzą z NetSuite i pozostają aktualne.
Połączysz się raz, pobierzesz dane raz, a potem zajmiesz się tym, co naprawdę ważne: przekształcaniem surowych wierszy księgi głównej w zestawienia, które biznes czyta w poniedziałek rano.
Wymagania wstępne
Dział zatytułowany „Wymagania wstępne”- Obszar roboczy PlaidCloud i projekt, w którym będziesz pracować (rozpocznij okres próbny, jeśli go potrzebujesz).
- Działające połączenie NetSuite. Najpierw wykonaj instrukcje z artykułu Połączenie z NetSuite — potrzebujesz włączonych w NetSuite OAuth 2.0 i REST Web Services, identyfikatora klienta integracji, identyfikatora certyfikatu, identyfikatora konta oraz klucza prywatnego w formacie PEM. Zanim zaczniesz tutaj, upewnij się, że Wyślij żądanie testowe kończy się powodzeniem.
- Do przekształcania danych nie jest potrzebny SQL — wykonasz je za pomocą standardowych kroków transformacji. Jedyny tekst zapytania to pobranie z NetSuite, a każde zapytanie pobierające jest podane. Miej w osobnej karcie otwarty artykuł Przykłady zapytań NetSuite SuiteQL; ten samouczek z niego korzysta.
Krok 1: utwórz przepływ pracy
Dział zatytułowany „Krok 1: utwórz przepływ pracy”Przepływ pracy to potok, który pobiera i przekształca dane.
- Otwórz projekt i przełącz się na kartę Przepływy pracy.
- Kliknij Nowy przepływ pracy, nadaj mu nazwę, na przykład
NetSuite Financials, i otwórz go.
Krok 2: pobierz księgę główną
Dział zatytułowany „Krok 2: pobierz księgę główną”Jedno zapytanie SuiteQL zwraca rok aktywności księgowań — każde konto, każdy miesiąc — co wystarczy do zbudowania rachunku zysków i strat oraz, w dalszej kolejności, innych zestawień.
-
Dodaj krok Żądanie REST. Na karcie Żądanie ustaw Połączenie na swoje połączenie NetSuite, Metoda na
POST, a Punkt końcowy na/services/rest/query/v1/suiteql. -
W polu Treść żądania wpisz poniższe zapytanie SuiteQL opakowane jako
{"q": "…"}:SELECTTO_CHAR(t.trandate, 'YYYY-MM') AS period,a.accttype AS account_type,a.acctnumber AS account_number,BUILTIN.DF(a.id) AS account_name,tal.amount AS amountFROM transactionaccountingline talJOIN transaction t ON t.id = tal.transactionJOIN account a ON a.id = tal.accountWHERE tal.posting = 'T'AND tal.accountingbook = 1AND t.trandate BETWEEN TO_DATE('2026-01-01', 'YYYY-MM-DD')AND TO_DATE('2026-12-31', 'YYYY-MM-DD')ORDER BY period, a.acctnumber -
Na karcie Odpowiedź ustaw miejsce docelowe na Tabela — nazwij ją
netsuite_gl— i ustaw typy kolumn:amount→ Waluta, wszystkie pozostałe → Tekst. (SuiteQL zwraca liczby i daty jako tekst; to typ sprawia, że wartościamountmożna sumować.) -
Kliknij Wyślij żądanie testowe, aby potwierdzić, że zapytanie działa, a następnie uruchom krok. Masz teraz tabelę
netsuite_gl: jeden wiersz na konto na miesiąc, ze znakowaną kwotą księgowania.
Krok 3: przekształć księgę główną w rachunek zysków i strat
Dział zatytułowany „Krok 3: przekształć księgę główną w rachunek zysków i strat”Teraz analiza, wykonana jednym krokiem transformacji obsługiwanym myszą — bez SQL. Rachunek zysków i strat to po prostu zsumowana księga główna: konta przychodów i kosztów, pogrupowane w kilka pozycji, ze zmienionym znakiem, tak aby przychody były dodatnie. Krok Table Extract robi to wszystko na kartach Wybór danych tabeli i Filtry danych.
-
Dodaj krok Table Extract. Ustaw jego Źródło na
netsuite_gl, a Cel na nową tabelęnetsuite_pnl. -
Na karcie Filtry danych zachowaj tylko konta przychodów i kosztów (pomiń konta bilansowe): dodaj filtr, w którym
account_typejest jedną z wartościIncome,OthIncome,COGS,Expense,OthExpense. -
Na karcie Wybór danych tabeli kliknij Podsumuj, aby włączyć agregację, a następnie skonfiguruj trzy kolumny docelowe:
period— mapowana bezpośrednio ze źródła. Podsumowanie: Grupuj według.pnl_line— wyrażenie (poniżej), które zamienia każdy typ konta na pozycję raportu. Podsumowanie: Grupuj według.amount— wyrażenienetsuite_gl.amount * -1(zmiana znaku). Podsumowanie: Suma.
Dla
pnl_linekliknij dwukrotnie komórkę wyrażenia i wprowadź poniższy kod (edytor pozwala wybierać kolumny i funkcjęcasez grupy Warunki myszą):case((netsuite_gl.account_type.in_(['Income', 'OthIncome']), '1 - Revenue'),(netsuite_gl.account_type == 'COGS', '2 - Cost of Goods Sold'),(netsuite_gl.account_type.in_(['Expense', 'OthExpense']), '3 - Operating Expenses'),) -
Uruchom krok.
Wyrażenie amount * -1 to jedyny zabieg księgowy: zmiana znaku kwoty dodatniej dla obciążeń sprawia, że przychody są dodatnie, a koszty ujemne, więc trzy pozycje każdego miesiąca sumują się do zysku netto. Następnie Suma z opcją Grupuj według dla period i pnl_line zwija wszystkie konta do tych trzech pozycji na miesiąc. Wyrażenia korzystają z edytora PlaidCloud obsługiwanego myszą — zobacz Zaawansowane użycie Data Mapper oraz opis wyrażeń.
Krok 4: czytaj to jak finansista
Dział zatytułowany „Krok 4: czytaj to jak finansista”Otwórz tabelę netsuite_pnl. Dla każdego miesiąca masz trzy liczby:
| okres | pnl_line | amount |
|---|---|---|
| 2026-01 | 1 - Revenue | 486,200.00 |
| 2026-01 | 2 - Cost of Goods Sold | -190,540.00 |
| 2026-01 | 3 - Operating Expenses | -212,880.00 |
Odczytaj bezpośrednio z tabeli:
- Zysk brutto = przychody + koszt własny sprzedaży (koszt własny sprzedaży jest już ujemny) →
486,200 − 190,540 = 295,660. - Zysk netto = suma trzech pozycji →
82,780. - Marża brutto % = zysk brutto ÷ przychody → ok. 61%.
Najpierw trzeba uzgodnić wyniki: uruchom w NetSuite jego własny rachunek zysków i strat za ten sam miesiąc i sprawdź, czy przychody i zysk netto się zgadzają. Jeśli nie, prawie zawsze chodzi o różnicę zakresu — filtr spółki zależnej lub waluty albo niedopasowanie okresu księgowania do daty transakcji (zobacz uwagę o okresach). Zaufaj potokowi dopiero wtedy, gdy wyniki się zgadzają.
Krok 5: zbuduj zestawienie wiekowania należności
Dział zatytułowany „Krok 5: zbuduj zestawienie wiekowania należności”Drugi sukces pierwszego dnia, według tego samego schematu: połącz, pobierz, przekształć. Zacznij od przepisu na otwarte należności, a następnie podziel je na przedziały według tego, jak bardzo faktura jest przeterminowana.
-
Dodaj kolejny krok Żądanie REST (to samo połączenie,
POST, punkt końcowy suiteql) z następującą treścią:SELECTt.tranid AS invoice_number,BUILTIN.DF(t.entity) AS customer,TO_CHAR(t.trandate, 'YYYY-MM-DD') AS invoice_date,TO_CHAR(t.duedate, 'YYYY-MM-DD') AS due_date,t.foreigntotal AS invoice_total,t.foreignamountunpaid AS amount_unpaidFROM transaction tWHERE t.type = 'CustInvc'AND t.foreignamountunpaid <> 0ORDER BY t.tranidZaładuj wynik jako
netsuite_open_ar, ustawiającinvoice_totaliamount_unpaid→ Waluta,invoice_dateidue_date→ Data, a pozostałe → Tekst. -
Dodaj krok Table Extract odczytujący
netsuite_open_ardo nowej tabelinetsuite_ar_aging. Na karcie Wybór danych tabeli kliknij Podsumuj i skonfiguruj trzy kolumny docelowe:aging_bucket— wyrażenie (poniżej), które oznacza każdą fakturę etykietą według stopnia przeterminowania. Podsumowanie: Grupuj według.invoices— dowolna kolumna, np.invoice_number. Podsumowanie: Liczba.balance— mapowana zamount_unpaid. Podsumowanie: Suma.
Dla
aging_bucketwprowadź to wyrażenie — mierzy ono liczbę dni po terminie płatności (różnica dat daje dni) i nadaje etykietę przedziału:case(((func.today() - netsuite_open_ar.due_date) <= 0, '0 - Current'),((func.today() - netsuite_open_ar.due_date) <= 30, '1 - 1-30 days'),((func.today() - netsuite_open_ar.due_date) <= 60, '2 - 31-60 days'),((func.today() - netsuite_open_ar.due_date) <= 90, '3 - 61-90 days'),else_='4 - Over 90 days',) -
Uruchom krok.
netsuite_ar_agingpokazuje teraz w pięciu wierszach, ile należności jest bieżących, a ile przeterminowanych o 30/60/90+ dni — to widok windykacyjny, który biznes czyta w pierwszej kolejności. (due_datemusi mieć typ Data, aby odejmowanie dat działało — ustawiono to wyżej na karcie Odpowiedź kroku Żądanie REST.)
Krok 6: umieść wyniki na pulpicie
Dział zatytułowany „Krok 6: umieść wyniki na pulpicie”Liczby w tabeli są w porządku, ale to wykres wysyła się dyrektorowi finansowemu. Opublikuj netsuite_pnl i netsuite_ar_aging, a następnie wykonaj instrukcje z samouczka Tworzenie pulpitu, aby dodać:
- wykres słupkowy zysku netto (lub przychodów) według
periodoraz - wykres kołowy lub słupkowy należności
balancewedługaging_bucket.
To działający na żywo pulpit finansowy z NetSuite — bez eksportu, odświeżany przy każdym uruchomieniu przepływu pracy.
Krok 7: zaplanuj odświeżanie
Dział zatytułowany „Krok 7: zaplanuj odświeżanie”- Uruchom cały przepływ pracy raz, od góry do dołu, aby potwierdzić, że każdy krok kończy się powodzeniem.
- Zaplanuj przepływ pracy — co miesiąc zgodnie z cyklem zamknięcia lub co noc, jeśli chcesz, aby zestawienie wiekowania należności było świeże każdego ranka.
Ponieważ każde pobranie w całości zastępuje tabelę, każde uruchomienie ponownie wyodrębnia wycinek zdefiniowany przez klauzulę WHERE — ogranicz go do potrzebnego okna (bieżący rok, tylko otwarte faktury) zamiast całej historii.
Co udało Ci się zbudować
Dział zatytułowany „Co udało Ci się zbudować”Zaczynając od pustego przepływu pracy, udało się pobrać dane księgi głównej i należności z NetSuite na żywo, przekształcić je w miesięczny rachunek zysków i strat oraz zestawienie wiekowania należności za pomocą dwóch standardowych kroków transformacji — bez SQL — umieścić je na pulpicie i ustawić ich odświeżanie. To podstawowa pętla raportowa zespołu finansowego, teraz zautomatyzowana.
Dokąd dalej
Dział zatytułowany „Dokąd dalej”- Przykłady zapytań NetSuite SuiteQL — zestawienie obrotów i sald, bilans, otwarte zamówienia sprzedaży, zamówienia zakupu i zapasy do dodania w tym samym przepływie pracy.
- Krok Table Extract oraz Zaawansowane użycie Data Mapper — grupowanie, filtrowanie i kolumny obliczeniowe do głębszej analizy.
- Projektowanie wymiaru — zwiń plan kont do grup raportowych, które kontrolujesz.
- Tworzenie pulpitu — pełny przewodnik po pulpitach.