Á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>
}
Bloco de código
languagejava
titleSystemInfo
linenumberstrue
interface SystemInfo{
    readonly system: string;
    readonly version: string;
    readonly qualifiers: string;
}

Âncora
TRPServices
TRPServices

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


Â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{
   readonly latitude;
   readonly 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
class 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)
	readonly distance:Double
	readonly numberOfStops:Integer
	readonly volume:Double
	readonly weight:Double
	readonly duration:Integer
	readonly extraTrip:boolean
	readonly vehicle:string
	readonly considerReturnOrigem considerReturnToOrigin:boolean
	readonly 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)
	readonly stopSequence:Integer
	readonly stopType:String
	readonly locality:TPRRoutingLocality
	readonly arrivalTime:DateTime
	readonly departureTime:DateTime
	readonly loadedOrders:TPRRoutedOrder[]
	readonly 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)
	readonly identifier:String
	readonly country:String
	readonly latitude:Double
	readonly longitude:Double
	readonly operation:String
}

Âncora
TPRRoutedOrder
TPRRoutedOrder

Bloco de código
languagejava
titleTPRRoutedOrder
linenumberstrue
class TPRRoutedOrder{
	readonly identifier:String
	readonly weight:Double
	readonly 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("algum-token-aqui", {"system": "system-1.0.0", "version": "1.0.0", "qualifiers": ""})
		.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;
	});

// 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(new TPRPoint(-23, -46));

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

// Caso de uso 6: Ver rota
    let tprMapRoute: TPRMapRoute;
	tprMap.viewRoute(new TPRRoute(new TPRTrip(...)))
		.then((mapRoute) => tprMapRoute = mapRoute);

// 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
	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(new TPRTrip(...)), 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