Przejdź do głównej zawartości

Steve Trucking, co ja bym zaprojektował

Dostępne także w 28 językach

English · Español · 日本語 · Português (Brasil) · Français · Deutsch · Italiano · 한국어 · 简体中文 · Português (Portugal) · 繁體中文 · Bahasa Indonesia · Türkçe · Tiếng Việt · ไทย · Nederlands · العربية · עברית · Українська · हिन्दी · Русский · Svenska · Dansk · Norsk bokmål · Suomi · Español (México) · Français (Canada) · Deutsch (Schweiz)

A row of plain white delivery trucks ready at the loading doors at first light, a clipboard on the front of the nearest one.
Obraz wygenerowany przez AI

Moduł 6 z 6 w rozdziale Dane podstawowe i tożsamość, rozdziale 6 kursu Data Architect, i koniec części 1. Wstecz: Gdy autorytet jest dzielony · Dalej: część 2 zaczyna się od Projektowanie pod skalę (coming soon)

Pytanie, na które odpowiada ten punkt kontrolny: czy potrafisz złożyć część 1 w całość na prawdziwym scenariuszu?

Najpierw spróbuj zadania. To moje omówienie zadania z Punktu kontrolnego 1. Jeśli nie masz jeszcze narysowanego własnego projektu, zrób to, zanim zaczniesz czytać dalej. Wartość leży w porównaniu twojego rozumowania z moim, a nie w przeczytaniu odpowiedzi.

To jest „Co ja bym zaprojektował” (What I Would Architect): jedno z możliwych sensownych rozwiązań, a nie jedyna odpowiedź, z nazwanymi kompromisami i zajętymi przeze mnie stanowiskami. Nie omówiliśmy jeszcze dużych wolumenów danych, projektowania zapytań, wzorców integracji, migracji ani transakcji, i to celowo: architektura rozwija się w miarę nauki. Ale część 1 daje nam dość, żeby ustawić szkielet.

Z opisu: około 3300 dostaw na dzień roboczy, milion rocznie, wzrost o 30% rocznie. Około 1,6 pozycji na dostawę (1,6 mln rocznie); około ośmiu zmian statusu na dostawę (8 mln rocznie); cztery do pięciu milionów zdjęć rocznie; około 200 000 odczytów GPS dziennie; około 180 000 zgłoszeń rocznie; trzech partnerów detalicznych wysyłających manifesty na trzy różne sposoby; dziewięć centrów dystrybucyjnych; 330 ciężarówek z dwuosobowymi ekipami. A Steve Trucking już ma jeden org Salesforce z Service Cloud, Field Service i portalem dla partnerów. Policz zera, zanim narysujesz choćby jeden prostokąt. Zdecydują o kilku sprawach poniżej.

Dostawy są sercem tego wszystkiego, a Field Service już obsługuje dyspozycję. Zaczynam więc od standardowego modelu Field Service, tak jak zrobił to wycinek z rozdziału 3:

Pojęcie biznesoweObiekt SalesforceDlaczego
Partner detalicznyAccount (typ rekordu Retail Partner)Firma, z którą Steve Trucking ma umowę; niesie umowy, zgłoszenia i dostęp do portalu
Personel partnera (kierownicy CD, pracownicy sklepów)ContactUżytkownicy portalu muszą być kontaktami
Jedna dostawa: jeden odbiorca, jeden adres, jedno zamówienie partnera, jeden dzieńWork OrderJednostka pracy w Field Service; wiszą na niej planowanie, aplikacja mobilna i raporty serwisowe
Każda rzecz albo usługa: lodówka, instalacja, wywózWork Order Line ItemDzieli pracę, napędza listy kontrolne i fakturowanie
Rodzaj przystanku: tylko dostawa, z instalacją, z wywozemWork TypeUstala czas trwania, umiejętności i listę kontrolną instalacji
Zaplanowana wizyta i jej okno czasoweService AppointmentTo, co planuje Field Service i co pokazuje aplikacja ekipy
Ekipy i ciężarówki; obszary dyspozycji CDService Resource, Service Crew, Service TerritoryField Service planuje ekipę jako jeden zasób
Zapytania odbiorców, reklamacje partnerówCaseKonsola serwisowa, uprawnienia do obsługi (entitlements), email-to-case
Lista partnera na wtorek w CD w PhoenixManifest__c (niestandardowy)Nic standardowego nie odwzorowuje jednostki odbioru, uzgadniania i ponownego przetwarzania

Wszystko inne zostaje standardowe. Opieranie się kolejnym obiektom niestandardowym jest celowe: pytanie z rozdziału 1 brzmiało, kiedy architekt powinien opierać się kolejnemu, a tu odpowiedź brzmi „prawie zawsze”. Na przykład pozycja zamówienia partnera to nie nowy obiekt. To Work Order, identyfikowany numerem referencyjnym partnera.

Punkt kontrolny 1: rdzeń dostaw Fizyczny rdzeń Steve Trucking z Punktu kontrolnego 1. W core: partner detaliczny, konto z typem rekordu, wysyła manifesty, jedyny obiekt niestandardowy, a każda dostawa jest dla jednego partnera. Manifest wymienia dostawy. Dostawa to Work Order, który przechowuje odbiorcę jako pola; jest planowana jako wizyty, czyli Service Appointment, i zawiera pozycje dostawy, czyli Work Order Line Item, każdą opisaną przez rodzaj przystanku, czyli Work Type. Ekipa, czyli Service Crew, jest przypisywana do wizyt i pracuje w obszarze dyspozycji CD, czyli Service Territory. Zapytanie albo reklamacja, czyli Case, może dotyczyć dostaw. Poza core: sygnały GPS ekipy trafiają do hurtowni, dostawa łączy się ze zdjęciami dostaw w magazynie zdjęć, a każda wizyta publikuje swoją historię statusów jako zdarzenia do hurtowni. Na dole: patrz na statek-matkę: Field Service to rdzeń dostaw. W CORE POZA CORE wysyła jest dla wymienia dotyczy planowana jako zawiera opisuje ekipy pracują w przypisana do wysyła sygnały łączy się z publikuje Partner detaliczny Account · typ rekordu Manifest Manifest__c · niestandardowy Zapytanie albo reklamacja Case Dostawa WorkOrder · pola odbiorcy Pozycja dostawy WorkOrderLineItem Wizyta ServiceAppointment Rodzaj przystanku WorkType Obszar dyspozycji CD ServiceTerritory Ekipa ServiceCrew Historia statusów zdarzenia, hurtownia Zdjęcia dostaw magazyn zdjęć, powiązane Sygnały GPS hurtownia, przez odwołanie Patrz na statek-matkę: Field Service to rdzeń dostaw. dokładnie jeden zero lub jeden jeden lub wiele zero lub wiele wyszukiwanie © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Wyrasta z finału rozdziału 3 (Zaprojektuj fizyczny model w Salesforce): te same obiekty w tych samych miejscach, z dodaną ekipą, obszarem dyspozycji, zgłoszeniem i tym, co Punkt kontrolny 1 trzyma poza core.

Klucz, który dopasowuje zamówienie partnera do dostawy

Dział zatytułowany „Klucz, który dopasowuje zamówienie partnera do dostawy ”

Każda pozycja manifestu staje się jednym Work Order, powiązanym ze swoim manifestem. Kluczem jest pytanie, na które najbardziej chcę znać odpowiedź: skąd wiemy, że ta pozycja od partnera to właśnie ta dostawa? Moja odpowiedź: External ID na Work Order, zbudowany z partnera detalicznego i jego własnego numeru zamówienia i dostawy (coś w rodzaju KEYSTONE-PHX-8843119-1), oznaczony jako unikalny. Jedno pole na źródło, jeden do jednego. To identyfikator partnera, nie nasz: „kilka identyfikatorów jednej rzeczy” z rozdziału 2 i „partner jest właścicielem swojego numeru zamówienia” z modułu 1.

Dlaczego to ważne: manifesty przychodzą dzień lub dwa wcześniej i są poprawiane w dniu dostawy. Dzięki temu kluczowi każdy ponownie wysłany albo poprawiony manifest wykonuje upsert, zamiast tworzyć duplikaty. Poprawka aktualizuje Work Order, pole ją rejestruje, a zmiana w dostawie, która jest już na trasie, alarmuje koordynatora: zmiana partnera zostaje zastosowana, ale oznaczona, dopóki dyspozycja jej nie potwierdzi. To też jest to, co zmienia się względem obrazu z rozdziału 4. Dziś każdy manifest ląduje w RouteDesk, a koordynatorzy przepisują trasy do Salesforce, a ukończone przystanki z powrotem. W tym projekcie manifesty przychodzą prosto do Salesforce, przez upsert po kluczu partnera; RouteDesk zostaje wycofany, a przepisywanie się kończy. Rozdział o integracji projektuje trzy formaty wejściowe. Decyzją dotyczącą danych jest klucz.

To najciekawsza decyzja dotycząca danych w części 1, więc oto opcje, a potem mój wybór.

Opcja A: konta osób. Każdy odbiorca staje się kontem osoby powiązanym z każdą dostawą. Za: standardowe, naturalnie współpracuje z Service Cloud, komunikatorami i konsolą, rozpoznaje powracających odbiorców. Przeciw: około miliona nowych odbiorców rocznie, każdy jako konto osoby zajmujące mniej więcej dwa razy więcej miejsca niż konto firmowe (Estimated Record Size by Object Type (opens in a new tab), po angielsku), więc w ciągu dwóch lat jeden z największych obiektów w orgu. A odbiorcy to nie klienci Steve Trucking. To klienci poszczególnych partnerów detalicznych, a Steve Trucking nigdy nie może mieszać klienta jednego partnera z klientem drugiego (S2).

Opcja B: kontakty pod kontem partnera detalicznego. Przeciw: milion kontaktów pod trzema czy czterema kontami to nierównomierny rozkład rodzic-dziecko na ogromną skalę, daleko poza zaleceniem Salesforce, by na jednym rodzicu było około 10 000 rekordów podrzędnych (Considerations for Object Relationships (opens in a new tab); Parent-Child Data Skew (opens in a new tab), po angielsku). Tę opcję warto pokazać i odrzucić.

Opcja C: odbiorca mieszka na dostawie. Imię i nazwisko, telefon, e-mail, adres i uwagi do dostawy odbiorcy to pola na Work Order (pola adresu są tam już standardowe), pobierane z manifestu. Za: żadnego nowego dużego obiektu; dane żyją dokładnie tak długo, jak potrzebuje ich dostawa; usuwanie odbywa się dla każdej dostawy, w terminach partnera; a izolacja partnerów przychodzi za darmo, bo każda dostawa należy do jednego partnera. Przeciw: powracający odbiorca nie jest rozpoznawany jako ta sama osoba.

To jest równowaga, którą trzeba znaleźć. Czy kiedykolwiek będzie potrzeba rozpoznania kilku dostaw jako tej samej osoby, w tym samym miejscu? Dania tej osobie loginu? To granica między odbiorcą, który potrzebuje własnego rekordu, a danymi odbiorcy, które są po prostu danymi o dostawie. I jest droga środka. Przenoś własny identyfikator klienta partnera detalicznego jako pole na dostawie, Retail Partner Customer ID (identyfikator klienta partnera detalicznego). Nie tworzy on rekordu odbiorcy, ale wiąże ze sobą dostawy, które partner wysyła dla tego samego klienta, co jest początkiem bardziej ujednoliconego doświadczenia klienta, i prowadzi prosto z powrotem do systemu partnera detalicznego, gdzie ten klient naprawdę mieszka. To identyfikator partnera, więc coś znaczy tylko razem z partnerem: klient 4417 jednego partnera nie ma nic wspólnego z klientem 4417 innego.

Moim zawodowym zdaniem właściwym wyborem jest opcja C. Brak rozpoznawania jest do przyjęcia, a nawet pożądany: Steve Trucking nie ma z tymi ludźmi żadnej relacji poza dostawą. To znowu moduł 1: odbiorca to klient partnera, a partner jest autorytetem co do tego, kim ten klient jest. I to rozdział 5: dane osobowe, które trafiają w jedno miejsce i są przypięte do jednej dostawy, dużo łatwiej chronić, przechowywać i usuwać. Opcja ta wytrzymuje też próbę postaci normalnych z rozdziału 2: dane odbiorcy są w relacji jeden do jednego z dostawą, więc należą do niej. Osobny rekord podrzędny odbiorcy oszczędziłby kilka powtarzających się wartości kosztem kolejnego obiektu, kolejnej relacji i ich narzutu, a oszczędziłby więcej tylko wtedy, gdybyśmy traktowali tę samą osobę jako jedną u różnych partnerów detalicznych, czego nie zrobimy. Dlatego dostawa niesie odbiorcę, a Retail Partner Customer ID jest drogą z powrotem do własnego systemu partnera.

Kim jest odbiorca? Trzy opcje dla odbiorcy, każda z argumentami za i przeciw. Opcja A, konto osoby dla każdego odbiorcy: nie przechodzi pod względem relacji, bo odbiorca jest klientem partnera; nie przechodzi pod względem wolumenu, około miliona rocznie przy dwukrotnie większym zużyciu miejsca niż konto firmowe; przechodzi pod względem nierównomiernego rozkładu danych, bo każdy ma własne konto; nie przechodzi pod względem izolacji partnerów, bo miesza klientów partnerów; nie przechodzi pod względem usuwania, bo przeżywa dostawę; przechodzi pod względem rozpoznawania powrotów. Odrzucona. Opcja B, kontakty pod partnerem detalicznym: nie przechodzi pod względem relacji, bo to nie pracownicy partnera; nie przechodzi pod względem wolumenu; nie przechodzi pod względem nierównomiernego rozkładu danych, milion pod trzema czy czterema kontami; przechodzi pod względem izolacji, pod kontem jednego partnera; nie przechodzi pod względem usuwania; rozpoznaje powroty w obrębie partnera. Pokazać i odrzucić. Opcja C, pola odbiorcy na Work Order, wyróżniona jako wybór Punktu kontrolnego 1: jedyną relacją jest dostawa; bez nowego obiektu; bez nowego rodzica; jeden partner na dostawę; usuwane według harmonogramu partnera; a powracający odbiorca nie jest rozpoznawany, i to w porządku. Na dole: modeluj osobę zgodnie z relacją, którą naprawdę masz. A: Konto osoby odrzucona ZA Rozpoznaje powracającego odbiorcę Brak skew rodzica: każdy ma własne konto PRZECIW Klient partnera, nie nasz Ok. 1 mln rocznie, przy podwójnym zużyciu miejsca Miesza klientów partnerów (S2) Przeżywa dostawę B: Kontakt pod partnerem detalicznym: pokazać i odrzucić ZA Trzymany pod jednym partnerem (S2) Powroty rozpoznawane w obrębie partnera PRZECIW To nie pracownicy partnera 1 mln pod 3 lub 4 kontami: skew Przeżywa dostawę C: Na dostawie pola na Work Order: wybór ZA Jedyną relacją jest dostawa Bez nowego obiektu, bez nowego rodzica Jeden partner na dostawę (S2) Usuwane według harmonogramu partnera PRZECIW Powracający odbiorca nie jest rozpoznawany: w porządku Modeluj osobę zgodnie z relacją, którą naprawdę masz. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

John Smith, Main Street 123, pojawia się w manifeście Redrock i w manifeście Brightwave. Pewnie ta sama osoba. Czy Steve Trucking powinien ich ujednolicić? Nie, celowo nie. Ujednolicenie odbiorców między partnerami detalicznymi naruszyłoby S2: partner nigdy nie może widzieć odbiorców innego partnera, a ujednolicona tożsamość jest dokładnie tym mostem, przez który dane wyciekają. To zastosowanie stanowiska z tego rozdziału: dopasowuj mniej tam, gdzie mieszanie jest kosztowne, a tu jest bardzo kosztowne.

Jeśli partner detaliczny zechce później rozpoznawania powracających odbiorców we własnych dostawach, to zadanie dla narzędzia do rozpoznawania tożsamości, na przykład tego z Data 360, ograniczonego do tego partnera: mapa w stylu rejestru, a nie konto osoby, i nigdy między partnerami. Mapa tego, kto jest kim, nie daje własności ani dostępu.

Rozdział 3 pytał, gdzie powinny mieszkać dane. Tu odpowiadają zera:

  • Bieżący status mieszka na Service Appointment i Work Order. Historia zmian statusu, około 8 milionów rocznie i rośnie, nie musi mieszkać w orgu core. Każda zmiana jest publikowana jako zdarzenie i przechowywana w hurtowni, w Snowflake. Org trzyma stan bieżący; historia nadal jest dostępna dla serwisu, operacji i analityki, tylko nie w operacyjnej bazie danych.
  • Zdjęcia (cztery do pięciu milionów rocznie, niektóre pokazujące ludzi albo wnętrze domu) mieszkają poza core, w magazynie zbudowanym na taki wolumen, przesyłane prosto z aplikacji ekipy. Org trzyma tylko to, czego potrzebuje: mały rekord indeksu na zdjęcie albo tylko licznik i flagę „wymagane zdjęcia z instalacji kompletne”. Wolę lżejszą opcję: utrzymać org szczupłym i pozwolić, żeby magazyn zdjęć był właścicielem swojego indeksu i retencji.
  • Odczyty GPS (200 000 dziennie) zostają w FleetLink i trafiają do Snowflake; org potrzebuje tylko ostatniej pozycji dla strony śledzenia i mapy dyspozytora.
  • Osiem lat historii z RouteDesk (około 5 milionów dostaw) trafia do hurtowni albo archiwum, dostępnego na potrzeby reklamacji. Co, jeśli cokolwiek, trafia do orgu, to decyzja migracyjna dla części 2.
Punkt kontrolny 1: co ja bym zaprojektował Krajobraz z Punktu kontrolnego 1, czyli co ja bym zaprojektował, w tych samych miejscach co obecny krajobraz z rozdziału 4. Ludzie po lewej: 45 dyspozytorów w 9 centrach dystrybucyjnych partnerów, około 700 członków ekip dostawczych na 330 ciężarówkach, 100 osób z obsługi klienta i biura, wszyscy w Salesforce; około 300 użytkowników u 3 partnerów detalicznych, korzystających z portalu partnerów detalicznych; i około miliona odbiorców rocznie, którzy otwierają stronę śledzenia przez link, bez logowania, i dzwonią do agentów obsługi klienta. Pośrodku jeden org Salesforce w USA z Field Service, nad nim firmowy dostawca tożsamości tylko dla pracowników biurowych, a email-to-case wprowadza zgłoszenia. Trzej partnerzy detaliczni w prawym dolnym rogu, Redrock przez REST API i webhooki, Keystone przez CSV przez SFTP i Brightwave przez EDI przez sieć zewnętrznego dostawcy, wysyłają manifesty do jednej warstwy integracji, projektowanej w części 2, która wykonuje ich upsert do Salesforce po kluczu partnera i odsyła status do każdego partnera. Po prawej: Salesforce wysyła zdarzenia statusu do Snowflake, który przechowuje historię statusów i analitykę; FleetLink, w którym zostaje surowy GPS, wysyła do Salesforce tylko ostatnią pozycję; Salesforce wysyła liczby dostaw przez integrację do ERP finansowego, który fakturuje partnerów i płaci ekipom; zdjęcia, od 4 do 5 milionów rocznie, idą z aplikacji ekip do magazynu zdjęć poza core; a RouteDesk zostaje wycofany do archiwum swoich 8 lat historii. Salesforce wysyła wiadomość dzień przed, z linkiem, przez dostawcę SMS i e-mail. Na dole: ta sama firma co w rozdziale 4; ręczne przepisywanie i arkusz zniknęły; historia i zdjęcia mieszkają poza core. U GÓRY: TOŻSAMOŚĆ, APPEXCHANGE, WEB LUDZIE PO PRAWEJ: SYSTEMY WEWNĘTRZNE U DOŁU: KANAŁY KLIENTÓW PRAWY DÓŁ: PARTNERZY I DOSTAWCY Dyspozytorzy 45, w 9 CD partnerów Ekipy dostawcze ~700 na 330 ciężarówkach Obsługa klienta i biuro 100: serwis, operacje, finanse Użytkownicy partnerów detalicznych ~300 u 3 partnerów Odbiorcy ~1 mln rocznie Firmowy IdP SSO tylko dla pracowników biurowych Portal partnerów detalicznych Strona śledzenia INTEGRACJA Snowflake historia statusów, analityka FleetLink surowy GPS zostaje tutaj ERP finansowy fakturuje partnerów, płaci ekipom Magazyn zdjęć 4–5 mln rocznie, poza core Archiwum RouteDesk wycofany; 8 lat historii Telefon agenci obsługi klienta E-mail email-to-case Dostawca SMS i e-mail wiadomość dzień przed, z linkiem Redrock REST API, webhooki Keystone CSV przez SFTP Brightwave EDI przez sieć zewnętrznego dostawcy Salesforce Field Service, jeden org w USA link, bez logowania tylko pracownicy biurowi telefony zgłoszenia do środka manifesty do środka status na zewnątrz manifesty do środka status na zewnątrz manifesty do środka status na zewnątrz upsert, klucz partnera zdarzenia statusu tylko ostatnia pozycja liczby dostaw liczby dostaw zdjęcia, z aplikacji ekip dzień przed, z linkiem Salesforce społeczność ludzie tożsamość, aplikacje, web system wewnętrzny kanał klientów warstwa integracji zaczyna się w systemie, który otwiera połączenie; etykieta mówi, co przepływa wspólny certyfikat: zaufanie, bez bezpośredniego wywołania Ta sama firma co w rozdziale 4. Ręczne przepisywanie i arkusz zniknęły; historia i zdjęcia mieszkają poza core. © 2026 Twinshark LLC · stevetecharc.com
Click to enlarge

Punkt kontrolny 1: co ja bym zaprojektował. Te same miejsca co na krajobrazie z rozdziału 4 (Krajobraz Steve Trucking), bez przepisywania i bez arkusza.

  • Partnerzy detaliczni widzą tylko własne dostawy (S2). Każdy Work Order niesie swojego partnera detalicznego; użytkownicy portalu widzą dostawy swojego partnera, a kierownicy CD tylko dostawy swojego CD.
  • Użytkownicy partnerów potrzebują licencji portalowej, która obsługuje reguły udostępniania i role: Customer Community Plus albo Partner Community. Miejsca na stadionie z rozdziału 3: najtańsze miejsca nie dają udostępniania, którego potrzebuje ten projekt. Obie licencje wymagają ról dla użytkowników zewnętrznych, a Salesforce ostrzega, że więcej ról spowalnia org (Experience Cloud User Licenses (opens in a new tab), po angielsku). Rola na partnera i na CD jest w porządku; rola dla każdego sklepu już nie.

Wiedza egzaminacyjna. Wiedz, które licencje zewnętrzne dają standardowe udostępnianie: Customer Community Plus i Partner Community (z rolami dla użytkowników zewnętrznych), a nie Customer Community, która korzysta z zestawów udostępniania.

  • Odbiorcy nie potrzebują licencji. Strona śledzenia pokazuje jedną dostawę przez link z wygasającym tokenem (S3), a nie przez logowanie.
  • Uważaj na nierównomierny rozkład. Setki tysięcy Work Order rocznie wskazujących na trzy czy cztery konta partnerów to nierównomierny rozkład danych na kontach (account data skew). Jedna z opcji to konto podrzędne dla każdego CD pod każdym partnerem, co rozkłada rekordy podrzędne na dziewięć lub więcej części; archiwizacja zakończonych dostaw po upływie okna reklamacji utrzymuje niską liczbę aktywnych rekordów podrzędnych na rodzica. Zajmuje się tym część 2.

Nie tworzyłbym konta osoby dla każdego odbiorcy tylko dlatego, że odbiorca jest osobą fizyczną. Nie wieszałbym miliona kontaktów pod trzema kontami. Nie budowałbym niestandardowego obiektu Delivery obok Work Order z Field Service. Nie ujednolicałbym odbiorców między partnerami. Nie umieszczałbym milionów zdjęć ani odczytów GPS w przestrzeni core. I nie nazwałbym ujednoliconego odbiorcy złotym rekordem, dopóki nie podjęlibyśmy naprawdę decyzji o zarządzaniu danymi podstawowymi.

Część 1 ustawiła szkielet; część 2 go testuje. Linijka LDV w trzecim roku (Work Order, Service Appointment i pozycje to w ciągu dwóch, trzech lat terytorium dużych wolumenów), projektowanie zapytań dla widoków list ograniczonych do partnera, trzy integracje wejściowe i trzy strumienie statusów, migracja z RouteDesk, transakcje w dniu dostawy i projekt bezpieczeństwa stojący za portalem. Steve Trucking też się zmieni. Zachowaj ten projekt; wrócisz do niego.

  • Które obiekty standardowe niosą rdzeń (tu: Field Service), a które obiekty niestandardowe są naprawdę uzasadnione (tu: jeden).
  • Klucz, który dopasowuje każdą pozycję zamówienia partnera do dostawy, i dlaczego należy on do partnera.
  • Czym jest odbiorca, na podstawie relacji, jaką Steve Trucking naprawdę z nim ma.
  • Czy ujednolicać tożsamości i gdzie mieszanie jest zbyt kosztowne, żeby ryzykować.
  • Co zostaje w orgu, co mieszka poza core i od jakich licencji zależy projekt.