Połączenie z NetSuite
Pobieraj dane finansowe i operacyjne z NetSuite do tabel PlaidCloud za pomocą SuiteQL. Ten przewodnik prowadzi od pustej integracji NetSuite do zaplanowanego, otypowanego pobierania. Szczegółową dokumentację pól znajdziesz w sekcji Łącznik REST NetSuite.
Wymagania wstępne
Dział zatytułowany „Wymagania wstępne”W NetSuite potrzebujesz:
- Włączonych OAuth 2.0 i REST Web Services (Setup > Company > Enable Features > SuiteCloud).
- Pary kluczy RSA — certyfikat publiczny przesłany do NetSuite, klucz prywatny zachowany dla PlaidCloud.
- Identyfikatora certyfikatu (JWT
kid, uzyskanego po przesłaniu certyfikatu publicznego), identyfikatora klienta (z rekordu integracji) i identyfikatora konta (produkcyjnego1234567lub piaskownicy1234567_SB1). - Roli z uprawnieniami REST Web Services, Log in using OAuth 2.0 Access Tokens, SuiteAnalytics Workbook (jeśli zapytania sięgają do analityki) oraz dostępem do podglądu rekordów, które będziesz odczytywać.
Pełne kroki po stronie NetSuite — generowanie pary kluczy, przesyłanie certyfikatu i tworzenie integracji — opisano w sekcji Konfiguracja po stronie NetSuite dokumentacji referencyjnej. Wykonaj je najpierw; ten przewodnik zakłada, że masz już te cztery wartości.
Utwórz połączenie
Dział zatytułowany „Utwórz połączenie”-
Otwórz Tools > Connections i kliknij
New Connection. -
Wybierz z menu NetSuite.
-
Wypełnij pola:
Pole Wartość Nazwa Przyjazna nazwa, np. NetSuite Prod.Identyfikator klienta Identyfikator klienta z rekordu integracji. ID certyfikatu Identyfikator certyfikatu ( kid) z przesłania certyfikatu publicznego.ID konta NetSuite Twój identyfikator konta, np. 1234567lub1234567_SB1.Certyfikat prywatny NetSuite Pełny blok PEM klucza prywatnego, wklejony wielowierszowo. -
Kliknij
Create.
Przetestuj połączenie
Dział zatytułowany „Przetestuj połączenie”Zanim zbudujesz cokolwiek na danych uwierzytelniających, upewnij się, że działają.
-
Dodaj do przepływu pracy 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 niewielkie, ograniczone zapytanie:
{"q": "SELECT id FROM account WHERE ROWNUM <= 1"} -
Kliknij Wyślij żądanie testowe.
Zbuduj krok pobierania
Dział zatytułowany „Zbuduj krok pobierania”Gdy test podstawowy zakończy się powodzeniem, przekształć krok w rzeczywiste pobieranie.
-
W polu Treść żądania napisz zapytanie SuiteQL z deterministycznym
ORDER BY. Gotowe do skopiowania punkty wyjścia — zapisy dziennika, zestawienie obrotów i sald, rachunek zysków i strat, bilans, otwarte należności, zamówienia sprzedaży, zamówienia zakupu, zapasy — znajdziesz w sekcji Przykłady zapytań SuiteQL dla NetSuite.Finansowe — pozycje transakcji księgi głównej dla okresu:
{"q": "SELECT tl.transaction AS transaction_id, TO_CHAR(t.trandate, 'YYYY-MM-DD') AS tran_date, a.acctnumber AS account_number, tl.subsidiary AS subsidiary_id, tl.foreignamount AS amount FROM transactionline tl JOIN transaction t ON t.id = tl.transaction JOIN account a ON a.id = tl.expenseaccount WHERE t.trandate BETWEEN TO_DATE('2026-01-01','YYYY-MM-DD') AND TO_DATE('2026-01-31','YYYY-MM-DD') ORDER BY tl.transaction, tl.id"}Operacyjne — otwarte zamówienia sprzedaży według klienta:
{"q": "SELECT so.tranid AS order_number, so.entity AS customer_id, TO_CHAR(so.trandate, 'YYYY-MM-DD') AS order_date, so.status AS order_status FROM transaction so WHERE so.type = 'SalesOrd' AND so.status = 'SalesOrd:B' ORDER BY so.id"} -
Nie zmieniaj kontrolek Stronicowanie i analiza ani nagłówków
Prefer/Content-Type— połączenie NetSuite wstawia je samo. -
Na karcie Odpowiedź pozostaw miejsce docelowe jako Tabela i zdefiniuj kolumny z rzeczywistymi typami:
Currency/Decimaldla kwot,Date/Datetimedla dat,Booleandla flagT/F. SuiteQL zwraca wszystko jako ciągi znaków; otypowane kolumny informują PlaidCloud, jak je skonwertować.
Zweryfikuj i zaplanuj
Dział zatytułowany „Zweryfikuj i zaplanuj”-
Uruchom krok (zobacz Uruchamianie pojedynczego kroku w przepływie pracy) i sprawdź tabelę docelową — liczby wierszy oraz to, czy kolumny kwot i dat dotarły jako otypowane, a nie jako tekst.
-
Aby uzyskać stały strumień danych, zaplanuj przepływ pracy.
Rozwiązywanie problemów
Dział zatytułowany „Rozwiązywanie problemów”| Objaw | Prawdopodobna przyczyna |
|---|---|
| Żądanie testowe zwraca 400 z komunikatem o zakresie lub roli | Roli brakuje REST Web Services / logowania OAuth 2.0 / SuiteAnalytics albo tablica zakresów została odrzucona — wyświetlone szczegóły to wskazują. |
| Wymiana tokenu kończy się niepowodzeniem | Zła postać identyfikatora konta (brak _SB1), zły identyfikator certyfikatu (kid) albo klucz prywatny niepasujący do przesłanego certyfikatu publicznego. |
| Błąd typu/konwersji przy imporcie (wskazuje kolumnę i wartość) | Otypowana kolumna otrzymała wartość, której nie można przeanalizować — najczęściej kolumna Date/Datetime, dla której SuiteQL zwrócił format wyświetlania konta. Opakuj pole w TO_CHAR(col, 'YYYY-MM-DD') w zapytaniu albo ustaw typ kolumny na Text. |
| Sumy nie zgadzają się między spółkami zależnymi | amount jest w walucie danej transakcji — użyj pól skonsolidowanych/przeliczonych. |
| Zduplikowane lub brakujące wiersze w dużym pobraniu | Brak deterministycznego ORDER BY w zapytaniu stronicowanym z przesunięciem. |
Powiązane
Dział zatytułowany „Powiązane”- Przykłady zapytań SuiteQL dla NetSuite — gotowe do uruchomienia zapytania dla zapisów dziennika, zestawienia obrotów i sald, rachunku zysków i strat, otwartych należności i innych.
- Łącznik REST NetSuite — dokumentacja pól i SuiteQL.
- Krok Żądanie REST — krok, na którym opiera się to pobieranie.
- Tworzenie połączenia i zarządzanie nim