Page 1 of 1

Amending of TransportOrderAB to tour w.o. changing sequence

Posted: Mon Oct 31, 2022 9:45 am
by Bernd Welter
Here's a little xtour1 challenge that I'd like to share with you - the solution is quite simple once you know the required parameters:
We have already planned tour with 5 TransportOrderAB in it.
All Orders starts at the same place A and making delivery to different places B1, B2, B3, B4 and B5.
Sequence of tour points: A, A, A, A, A, B1, B2, B3, B4, B5.
We are trying to amend TransportOrderAB from A to B6 and expecting result similar to A, A, A, A, A, B1, B2, B3, B6, B4, B5: original sequence not touched and point B6 inserted between 2 existing tour point.
Unfortunately, as response from xServer we receive reversed delivery tour points: A, A, A, A, A, B5, B4, B6, B3, B2, B1.
Could you take a look at our request, please, and tell us, how to keep original sequence of tour points untouched.
So in fact there are two requirements in this story:
  • All planned orders of the input tour are supposed to remain on the tour. To achieve this you have to set the Tour.TourPointFixation to
    NO_TOUR_POINT_OUT : All tour points of the related tour must stay in the tour, but additional tour points inserted in the tour are allowed.
  • Furthermore you have to apply proper TourSectionIDs on the TransportPoints to ensure that the given tour structure is not rearranged:
    tourSection : Position of the transport point in a tour (0 <= tourSection <= 1000). Within a tour the tourSection values != 0 of the transport points will be sorted ascending so that it is possible to pre-order the transport points. Transport points with tourSection 0 will be placed anywhere. TourSection 1 will be the first stop within a tour, and 1000 will be the last stop. There will be not more than one transport points within a tour with tourSection 1 or 1000, respectively.
    So in the example mentioned above you could set the tour section ids to
    • TransportPoint B1.tourSectionID = 1
    • TransportPoint B2.tourSectionID = 2
    • TransportPoint B3.tourSectionID = 3
    • TransportPoint B4.tourSectionID = 4
    • TransportPoint B5.tourSectionID = 5
    • TransportPoint B6.tourSectionID = 0
    This will allow the algorithm to place the B6 anywhere between the other stops while they have to remain in ascending order.