Jak zintegrować NetSuite z Tulipem (przykład)
  • 23 Mar 2023
  • 10 Minuty do przeczytania
  • Współtwórcy

Jak zintegrować NetSuite z Tulipem (przykład)


Article Summary

Przegląd

Dowiedz się, jak używać RESTlets w NetSuite, aby udostępnić dane Tulipowi poprzez Connectors w tym walkthrough.

NetSuite's RESTlets pozwalają na udostępnienie dowolnych danych strukturalnych do Tulipa.

Jednak, aby skonfigurować RESTlet, musisz użyć wielu warstw w NetSuite. Musisz również znać kilka wstępnie skonfigurowanych funkcji z NetSuite.

Ten przewodnik pokaże Ci jak zbudować integrację NetSuite-Tulip, która pobiera dane o inwentaryzacji i zleceniach z NetSuite. Obejmuje on kilka wspólnych wzorców, które mogą być korzystne dla każdego użytkownika Tulipa, który chce zbudować integrację z NetSuite.

Netsuite Token Based Authentication

Netsuite ma metodę uwierzytelniania zwaną token based authentication (powszechnie określaną jako TBA), która jest zbudowana na szczycie specyfikacji OAuth 1.0. Tulip obsługuje teraz OAuth 1.0, umożliwiając tym samym uwierzytelnianie Tulip Connectors do Twojej instancji Netsuite za pomocą TBA. Możesz wybrać uwierzytelnianie za pomocą TBA, ponieważ ta metoda uwierzytelniania zapewnia długo żyjący token, który może być używany do uwierzytelniania z Netsuite.

Poniższe kroki zakładają, że rozumiesz, jak skonfigurować uwierzytelnianie oparte na tokenach w Netsuite, o którym możesz przeczytać więcej tutaj.

Aby skonfigurować swój konektor Tulip do korzystania z Netsuite TBA, wybierz OAuth 1.0 jako metodę uwierzytelniania dla konektora HTTP.

  • Dla metody podpisu wybierz HMAC-SHA256
  • Dla wersji, upewnij się, że jest ustawiona na 1.0
  • W przypadku klucza konsumenta wprowadź klucz konsumenta podany przez użytkownika integracji skonfigurowanego w Netsuite.
  • Dla consumer secret, wprowadź consumer secret dostarczony przez użytkownika integracji skonfigurowanego w Netsuite
  • W przypadku tokena dostępu, wprowadź Token ID tokena dostępu, który został skonfigurowany w Netsuite. Zauważ, że ten token dostępu musi być przypisany do użytkownika integracji, który został skonfigurowany wcześniej.
  • W przypadku token secret, wprowadź token secret tokena dostępu, który skonfigurowałeś w Netsuite. Należy pamiętać, że ten token dostępu musi być przypisany do skonfigurowanego wcześniej użytkownika integracji.
  • Dla realm, wprowadź swoją subdomenę instancji Netsuite dużymi literami (na przykład, jeśli używasz tstdrv123456.app.netsuite.com do logowania się do Netsuite, twoja realm/subdomena będzie TSTDRV123456). Jeśli w subdomenie instancji Netsuite znajduje się myślnik, należy wprowadzić go jako symbol podkreślenia (na przykład sb1-123456 zostanie wprowadzony jako SB1_123456).

Po ustawieniu naciśnij przycisk Test w ramach konfiguracji złącza i kliknij przycisk Zapisz, jeśli test się powiedzie. Jesteś teraz gotowy do integracji RESTlets przy użyciu metody TBA firmy Netsuite.

Jak zintegrować NetSuite z Tulipem

Oto scenariusz:

  1. Pracownicy mają listę zleceń roboczych, które są przypisane do nich w NetSuite. Kiedy zaczynają swój dzień, chcesz, aby mogli wybrać zlecenie, które jest przypisane do nich w aplikacji Tulip.
  2. Po wybraniu zlecenia, chcesz udostępnić serię istotnych danych, takich jak 10+ pól szczegółowych na zleceniu.
  3. Kiedy naciskają przycisk, aby przejrzeć instrukcje pracy, aplikacja skieruje ich do odpowiedniego zestawu instrukcji na podstawie danych ze zlecenia.
  4. Kiedy ukończą zlecenie, powinni zostać odesłani do oryginalnego ekranu, aby wybrać inne zlecenie.

Oto szybki diagram pokazujący, jak wygląda doświadczenie operatora w aplikacji Tulip:

Oto przykład kroku "Choose A Work Order".

A oto przykład kroku "Szczegóły zlecenia":

Jest to jednokierunkowy transfer danych. Chociaż Tulip będzie przechowywał dane, które pochodzą z NetSuite, żadne nowe dane nie będą przechowywane w NetSuite.

Z perspektywy technicznej oznacza to:

  1. Po otwarciu aplikacji Tulip zapyta o punkt końcowy API z NetSuite, używając ID pracownika operatora, który jest zalogowany w aplikacji.
  2. NetSuite zwróci 6 ostatnich zleceń, które zostały przypisane do tego pracownika.
  3. Operatorowi zostanie automatycznie przypisane najnowsze zlecenie z tych 6.
  4. Tulip zapyta punkt końcowy NetSuite API o numer zlecenia.
  5. NetSuite zwróci odpowiednie szczegóły zlecenia.
  6. Kiedy operator naciśnie przycisk complete, aby wskazać, że zakończył zlecenie, wróć do kroku 1.

Aby skorzystać z tego samouczka, musisz być administratorem NetSuite z pewnym doświadczeniem w JavaScript. Ponadto, musisz znać podstawy Tulip's Connectors.

Oto dwa zasoby, aby dowiedzieć się więcej:

Konfiguracja uprawnień NetSuite

Zanim zaczniesz tworzyć swój pierwszy skrypt, musisz upewnić się, że kilka rzeczy jest ustawionych prawidłowo.

Po pierwsze, jeśli chcesz dynamicznie uzupełniać listę zleceń dla każdego operatora za pomocą aplikacji Tulip, operatorzy muszą mieć konto w Tulip i konto w NetSuite.

Po utworzeniu konta użytkownika w NetSuite, każdy operator otrzyma unikalny identyfikator pracownika. Możesz użyć pola ID identyfikatora w rekordzie użytkownika w aplikacji Tulip, aby dodać ten identyfikator pracownika.
Przykład:

W tym przypadku numer identyfikacyjny pracownika w NetSuite to "6".

Następnie, jako administrator NetSuite, musisz upewnić się, że masz wystarczające uprawnienia do korzystania z usługi RESTlet. Każde wywołanie API z Tulipa będzie musiało pochodzić od użytkownika NetSuite z odpowiednimi uprawnieniami. Zalecamy, aby wszystkie wywołania API używały poświadczeń jednego użytkownika NetSuite do uwierzytelniania.

Aby sprawdzić, czy masz wystarczające uprawnienia, kliknij menu Setup, następnie zakładkę "Users/Roles", a następnie wybierz "Manage Users".

Z powstałej listy wybierz swoje konto użytkownika, a w ramach konta przewiń do dołu strony, aby zobaczyć swoje Role. Wybierz jedną z ról i upewnij się, że ma ona odpowiednie uprawnienia na liście u dołu strony.

Skorzystaj z tego przewodnika od NetSuite, aby dowiedzieć się, które typy wywołań API wymagają uprawnień.

Konfiguracja skryptu w NetSuite

Zanim przejdziesz do rzeczywistych skryptów w NetSuite, powinieneś określić, które punkty danych musisz pobrać do Tulipa.

Posłużmy się przykładem listy zleceń pracy według operatora. Oto przypomnienie tego, co chcesz, aby operator UI pokazał:

Dla każdego zlecenia pracy, które jest przypisane do operatora, musisz wyciągnąć:

  1. ID z NetSuite
  2. Numer zlecenia roboczego
  3. Klasę produktu opisanego w zleceniu roboczym
  4. Datę końcową.

Oto przykład skryptu, który możesz stworzyć w celu wyciągnięcia wartości tych pól:

`` function getRecordByEmployee(datain) {.

var columns = new Array();

columns[0] = new nlobjSearchColumn('enddate')

.setSort(true);

columns[1] = new nlobjSearchColumn('status');

columns[2] = new nlobjSearchColumn('tranid');

columns[3] = new nlobjSearchColumn('custbody_assignto');

columns[4] = new nlobjSearchColumn('trandate');

columns[5] = new nlobjSearchColumn('class');

var filters = new Array();

filters[0] = new nlobjSearchFilter(

'custbody_assignto'

null,

'is',

datain.id,

null

);

filters[1] = new nlobjSearchFilter(

'mainline'

null,

'is',

'T'

);

return nlapiSearchRecord(

'workOrder'

null,

filtry,

kolumny

);

} ```

Kilka rzeczy, które zauważysz:

  • Cały kod jest zawinięty w jedną funkcję, którą definiujesz, w tym przypadku "getRecordByEmployee"
  • Funkcja przyjmuje jeden parametr, datain, który zdefiniujesz w Tulipie później
  • Funkcje nlapiSearchRecord i nlobjSearchColumn są zdefiniowane w dokumentacji SuiteScript

Tak więc, ta funkcja przyjmuje ID pracownika, przeszukuje obiekt zleceń NetSuite w poszukiwaniu wszystkich zleceń związanych z tym ID i zwraca tablicę zleceń z 7 parami klucz/wartość. Ostatecznie w aplikacji umieścisz 4 z nich.

Teraz musisz wdrożyć i przetestować skrypt w NetSuite.

Przejdź do Gabinetu plików w zakładce Dokumenty.

Przejdź do folderu SuiteScripts i wgraj plik .js poprzez przycisk Add File.

Następnie przejdź do zakładki Customization w pasku menu, wybierz Scripting, Scripts i New.

Zacznij wpisywać nazwę pliku, który właśnie załadowałeś w input Script File, a kiedy pojawi się pożądany skrypt, kliknij Create Script Record.

Z kolejnego menu wybierz RESTlet.

Powinieneś znaleźć się na stronie Script. Nadaj skryptowi łatwo identyfikowalną nazwę, a następnie zdefiniuj funkcję "Get". Jest to funkcja, która zostanie uruchomiona, gdy wyślesz żądanie GET do określonego punktu końcowego API.

Ponieważ Twój skrypt ma tylko jedną funkcję, dodaj jej nazwę w polu GET.

Kliknij przycisk Zapisz na dole strony.

Po tym NetSuite utworzy nowy punkt końcowy API, którego możesz użyć do przetestowania i wdrożenia tej funkcji. Jest on widoczny na stronie Script Deployment.

Dzieli on wartość "Deploy" i numer skryptu (544) w tym przypadku. Będziesz ich potrzebował w kilku krokach.

Otwórz klienta REST, aby przetestować punkt końcowy. Popularnymi przykładami są Insomnia i Postman.

Następnie dodaj adres URL i parametry na końcu. Upewnij się, że testujesz z numerem ID pracownika, który faktycznie istnieje w Twojej instancji NetSuite!

Następnie twój klient REST utworzy zapytanie GET i zwróci dane po powodzeniu lub zgłosi niepowodzenie z kodem błędu. Dane powinny pojawić się jako Array pełen obiektów z 7 parami klucz / wartość, w tym przypadku.

Konfiguracja funkcji Connector

Teraz musisz stworzyć funkcję Connector w Tulipie, która będzie mogła wysłać zapytanie do określonego punktu końcowego API, odebrać dane i przechować je w Tulipie.

Najpierw utwórz Connector HTTP dla swojej instancji NetSuite. Użyj tego przewodnika, jeśli nigdy wcześniej nie tworzyłeś Connectora. Oto kilka przykładów szczegółów:

Następnie będziesz musiał utworzyć funkcję wewnątrz tego Connectora. Przyjmuje ona jeden argument - identyfikator identyfikatora operatora korzystającego z aplikacji. Tak więc, upewnij się, że dodałeś identyfikator odznaki do profilu każdego operatora w Tulipie przed kontynuowaniem. Będzie to ciąg znaków.

Następnie dodaj serię {{glossary.Output}}, które w tym przykładzie są ciągami znaków. Będą one przechowywać wyniki żądania GET i pozwolą na przesłanie ich później do zmiennej w App Editorze.

Oto przykład z trzema punktami danych - ID, TranID i data końcowa - z każdego z 5 ostatnich zleceń, które zostały przypisane operatorowi.

Następnie w sekcji Query dodaj punkt końcowy, który właśnie stworzyłeś.

Po tym dodaj swoje parametry zapytania, w tym numer skryptu, numer wdrożenia i id, które będą potrzebne, aby uzyskać dostęp do wszystkich zleceń pracy od określonego pracownika. To powinno być wejście, które właśnie stworzyłeś.

Na koniec musisz zmapować pary klucz / wartość z obiektów w Array, które są zwracane w odpowiedzi na żądanie GET. W tym przypadku odpowiedź jest tablicą zawierającą 5 Obiektów.

Oto, jak może wyglądać mapowanie:

Dla etykiet Body obok każdego wyjścia dodaj indeks z tablicy w odpowiedzi plus klucz właściwości, którą chciałbyś zmapować.

W wyjściu workOrderZeroID, chciałbyś wyciągnąć wartość właściwości "id" pierwszego obiektu w tablicy. Czyli używasz "0.id", aby uzyskać dostęp do właściwości "id" obiektu o zerowym indeksie.

Wywołanie funkcji Connector w Triggerze

Teraz możesz przechowywać dane Netsuite w zmiennych Tulipa. Jedyne co musisz zrobić, to stworzyć wyzwalacze, które określą kiedy uruchomić funkcję Connector.

Wróćmy do naszego przykładu aplikacji. Chcesz wypełnić serię zleceń na podstawie operatora, który korzysta z aplikacji.

Aby to zrobić, powinieneś stworzyć wyzwalacz kroku - wyzwalacz, który uruchamia się, gdy krok jest otwarty. Możesz wywołać funkcję złącza z tego wyzwalacza. Oto, jak to może wyglądać:

Oto, co dzieje się w tym wyzwalaczu:

  • Wyzwalacz odpala "gdy krok jest otwarty"

  • W pierwszym stwierdzeniu "Then" odwołujesz się do funkcji o nazwie "get Work Orders by EmployeeID" w ramach NetSuite Connector.
  • Ta funkcja wymaga identyfikatora pracownika, który dołączasz jako "Identyfikator odznaki" z "App Info".
  • Wynik zostaje zapisany w zmiennej o nazwie "workOrderEmp", która jest obiektem z parami klucz/wartość, które odpowiadają wyjściom z funkcji.

W tym przypadku mamy drugie oświadczenie "Then", ponieważ operatorzy mają pracować tylko na najnowszym zleceniu pracy. Tak więc, gdy krok się otworzy, chcesz automatycznie zapisać najnowsze zlecenie jako to, nad którym będą pracować.

Alternatywnie można dodać przycisk "Rozpocznij WO" obok każdego wiersza w tabeli i dynamicznie aktualizować zmienną workOrderID na podstawie zlecenia pracy wybranego przez operatora.

Kiedy operator naciska przycisk "Start WO", druga funkcja łącznika NetSuite uruchamia się i wypełnia kolejny krok wszystkimi istotnymi szczegółami dotyczącymi zlecenia.

Oto jak wygląda ten krok:

A oto przycisk Trigger, który wypełnia ten krok:

Pobiera on zmienną workOrderID z poprzedniego kroku jako wejście i zapisuje wszystkie wyjścia jako pary klucz/wartość w zmiennej o nazwie workOrder.

Tak więc, podsumowując, oto kolejność zdarzeń, które prowadzą do pomyślnego dodania danych NetSuite do aplikacji Tulip.

  1. W Tulip Player, operator naciska przycisk, aby uruchomić aplikację
  2. Trigger odpala się w momencie otwarcia pierwszego kroku. Wyzwalacz ten wywołuje funkcję Connectora o nazwie "get Work Orders for Employee" z argumentem w postaci ID identyfikatora aktywnego operatora.
  3. Funkcja Connector uderza w punkt końcowy API, który został utworzony w NetSuite, i zwraca tablicę z 5 ostatnimi zleceniami pracy dla tego pracownika, z 4 parami klucz / wartość dla każdego obiektu w tablicy.
  4. Wartości te są przechowywane w "Outputs", które ręcznie utworzyłeś.
  5. W instrukcji "Then" wyzwalacza, dołączasz wszystkie "Wyjścia" jako pary klucz / wartość do jednej zmiennej o nazwie "workOrderEmp", która jest obiektem. Następnie można uzyskać do nich dostęp w aplikacji.

Oto, jak to wygląda od strony programowej:

Na tym diagramie ikona błyskawicy oznacza zmienne i właściwości, które zostały wymienione w powyższym Triggerze.

Wyświetlanie danych w jednym kroku

Teraz masz dane z NetSuite dostępne w zmiennej o nazwie workOrderEmp. Musisz tylko dodać ją do kroku, aby operator mógł z niej skorzystać.

WorkOrderEmp jest obiektem zawierającym około 20 par klucz/wartość. Aby udostępnić te informacje w kroku, wystarczy użyć tekstu, który dzieli wartość zmiennej. Można to zrobić w pasku narzędziowym.

W rzeczywistości większość kroku "Select A Work Order" składa się z tekstu o zmiennych wartościach. Oto krok w Edytorze aplikacji:

Są tu 24 przykłady tekstu z wartościami Variable. Przycisk "Start WO" uruchamia drugą funkcję Connector i wysyła operatora do kroku "Szczegóły zlecenia", który ma podobny wzór do tego kroku - 20+ różnych pól tekstowych ze zmiennymi wartościami.

Najbardziej skomplikowane części integracji NetSuite-Tulip obejmują śledzenie i przechowywanie wartości, ponieważ są one przekazywane tam i z powrotem pomiędzy dwoma platformami oprogramowania. Dzieje się to za pomocą wielu narzędzi - Edytora aplikacji, strony Connectors i 3 różnych części NetSuite.

Jeśli masz więcej pytań dotyczących tej integracji, użyj panelu czatu w prawym dolnym rogu ekranu. Sprawdź ten przewodnik po złączach HTTP, jeśli chcesz lepiej zapoznać się z budowaniem złączy i funkcjami złączy.


Czy znalazłeś to, czego szukałeś?

Możesz również udać się na stronę community.tulip.co, aby zadać swoje pytanie lub sprawdzić, czy inni spotkali się z podobnym pytaniem!


Czy ten artykuł był pomocny?