Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Introdução

draw.io Diagram
borderfalse
viewerToolbartrue
fitWindowfalse
diagramDisplayName
lboxtrue
revision2
diagramNameTPR_visualizacao_rotas
simpleViewerfalse
width
linksauto
tbstylehidden
diagramWidth342


Sistemas Envolvidos

  • TPR: TOTVS Planejamento de Rotas

  • Sistema Externo: Todos os ERPs que se conectam ou pretendem se conectar com os produtos de planejamento logístico TOTVS.

Integração

  • Formato de entrada/saída: Javascript

Escopo

  • API Javascript para ser importada no sistema externo a partir dela deve ser possível implementar e manipular mapas tanto para a tela de localidade quanto para a tela de rotas;

Pré-requisitos instalação/implantação/utilização

  • Para clientes Protheus versão xxxxxx;
  • Para clientes Datasul versão xxxxxx;
  • Para clientes externos contratação do trial via TOTVS Store;

Layout de Requisição 

Bloco de código
languagejava
titleTPR
linenumberstrue
class TPR{
   get(token: String): Promise<TPRServices>
}

Âncora
TRPServices
TRPServices

Bloco de código
languagejava
titleTPRServices
linenumberstrue
class TPRServices{
   createMap(element: HTMLElement, mapOptions: TPRMapOptions): Promise<TPRMap>;
}

Âncora
TPRMapOptions
TPRMapOptions

Bloco de código
languagejava
titleTPRMapOptions
linenumberstrue
class TPRMapOptions{
   public height: number;
   public width: number;
}

Âncora
TPRMap
TPRMap

Bloco de código
languagejava
titleTPRMap
linenumberstrue
class TPRMap{
   addMarker(point: TPRPoint, markerOptions?: MarkerOptions): void;
   viewRoute(route: TPRRoute, routeOptions?: TPRRouteOptions): Promise<TPRMapRoute>;
   zoomIn(): void;
   zoomOut(): void;
   centerOn(point: TPRPoint);
   centerRoutes(): void;
   clear(): void;
   close(): void;
}

Âncora
TPRPoint
TPRPoint

Bloco de código
languagejava
titleTPRPoint
linenumberstrue
class TPRPoint{
   public latitude;
   public longitude;
}

Âncora
MarkerOptions
MarkerOptions

Bloco de código
languagejava
titleMarkerOptions
linenumberstrue
interface MarkerOptions{
   color?: String;
   draggable?: boolean;
   onDrag?: (latitude: number, longitude: number) => void
}

Âncora
TPRRoute
TPRRoute

Bloco de código
languagejava
titleTPRRoute
linenumberstrue
class TPRRoute{
   constructor(public trip: TPRTrip) {
   }
}

Âncora
TPRrouteOptions
TPRrouteOptions

Bloco de código
languagejava
titleTPRRouteOptions
linenumberstrue
class TPRRouteOptions{
   constructor(public tooglePopup: boolean) {}
}

Âncora
TPRMapRoute
TPRMapRoute

Bloco de código
languagejava
titleTPRMapRoute
linenumberstrue
interface TPRMapRoute{
	hide(): void;
	show(): void;
	color(color?: String);
}

Âncora
TPRTrip
TPRTrip

Bloco de código
languagejava
titleTPRTrip
linenumberstrue
class TPRTrip{
    // Campos do TPRTrip (https://tdn.totvs.com/pages/releaseview.action?pageId=604507369)
	Public distance:double
	Public numberOfStops:integer
	Public volume:double
	Public weight:double
	Public duration:double
	Public extraTrip:Boolean
	Public vehicle:String
	Public stops:TPRTripStop[]
}

Âncora
TPRTripStop
TPRTripStop

Bloco de código
languagejava
titleTPRTripStop
linenumberstrue
class TPRTripStop{
    // Campos do TPRTripStop (https://tdn.totvs.com/pages/releaseview.action?pageId=604507369)
	Public stopSequence:int
	Public stopType:String
	Public locality:TPRRoutingLocality
	Public arrivalTime:DateTime
	Public departureTime:DateTime
	Public loadedOrders:TPRRoutedOrder[]
	Public unloadedOrders:TPRRoutedOrder[]
{

Âncora
TPRRoutingLocality
TPRRoutingLocality

Bloco de código
languagejava
titleTPRRoutingLocality
linenumberstrue
class TPRRoutingLocality{
    // Campos do TPRRoutingLocality(https://tdn.totvs.com/pages/releaseview.action?pageId=604507369)
	Public identifier:String
	Public country:String
	Public latitude:Double
	Public longitude:Double
	Public operation:String
{

Âncora
TPRRoutedOrder
TPRRoutedOrder

Bloco de código
languagejava
titleTPRRoutedOrder
linenumberstrue
class TPRRoutedOrder{
	Public identifier:String
	Public weight:Double
	Public volume:Double
}

Âncora
usageCases
usageCases

Casos de uso

Bloco de código
languagejava
titleCasos de uso
linenumberstrue
(function() {
//require ou import TPR
	const tpr: TPR;
	let tprServices: TPRServices;
	tpr.get("alksdjlaksdjalalgum-token-aqui")
		.then((services) => {
			tprServices = services;
		});

	let tprMap: TPRMap;
// Caso de uso 1: visualizar uma localidade no mapa
	tprServices.createMap(document.getElementById("mapDiv"), {
		height: 300,
		width: 650
	}).then((map) => {
		tprMap = map;
		map.addMarker({latitude: -23, longitude: -46});
	});

// Caso de uso 2: zoomIn
	tprMap.zoomIn();

// Caso de uso 3: zoomOut
	tprMap.zoomOut();

// Caso de uso 4: centralizar sobre um ponto específico
	tprMap.centerOn({latitude: -23, longitude: -46});

// Caso de uso 5: Centralizar considerando todos os pontos plotados
	tprMap.centerRoutes();

// Caso de uso 6: Ver rota
	tprMap.viewRoute(new TPRRoute([{latitude: -23, longitude: -46}, {latitude: -22, longitude: -45}]));

// Caso de uso 7: Limpa o conteúdo (pontos e rota)
	tprMap.clear();

// Caso de uso 8: Remover mapa
	tprMap.close();

// Caso de uso 9: Esconder roda
	let tprMapRoute: TPRMapRoute;
	tprMap.viewRoute(new TPRRoute([{latitude: -23, longitude: -46}, {latitude: -22, longitude: -45}]))
		.then((mapRoute) => tprMapRoute = mapRoute);
	tprMapRoute.hide();

// Caso de uso 10: Reexibir rota
	tprMapRoute.show();

// Caso de uso 11: Trocar cor de rota
	tprMapRoute.color("AABBCC");

// Caso de uso 12: Exibir popup nas paradas
	tprMap.viewRoute(new TPRRoute([{latitude: -23, longitude: -46}, {latitude: -22, longitude: -45}]),
		new TPRRouteOptions(true));

// Caso de uso 13: Receber evento de drag dos marcadores
	tprMap.addMarker({latitude: -23, longitude: -46}, {
		draggable: true,
		onDrag: (lat, long) => console.log("Arrastei o marcador")
	});
})();

Anexos

Anexos