quick "recap"
During stop creation it creates some fields including sourceID, sourceOID, PosAlong and SideOfEdge. These fields are not filled initally but will be resolved during the route finding process.
The route finding process seems to only check for edges on this position and will take the settings of the first edge it finds. In my personal case the objectID of the edge with single direction traffic was the lowest of the three edges so it was chosen. You can check this solution, when you open the Stops attribute table and scroll to the above mentioned fields. SourceOID is the objectID of the edge it found and used.
To solve this in ArcGIS Pro you can alter the Stop table and fill in the four fields with the desired values and than start solving the route problem.
On arcGIS Server with a Route Solver NAS you can alter the stops feature set:
instead of sending
{"features":[{"geometry":{"spatialReference":{"latestWkid":32632,"wkid":32632},"x":4712.0,"y":816.0},"attributes":{}},{"geometry":{"spatialReference":{"latestWkid":32632,"wkid":32632},"x": 4711.0,"y":815.0},"attributes":{}}]}
you should send defining attributes:
{"features":[{"aggregateGeometries":null,"geometry":{"spatialReference":
{"latestWkid":32632,"wkid":32632}
,"x":4712.0,"y":816.0},"attributes":{"SourceID": 2, "SourceOID": 26142977, "PosAlong": 0, "SideOfEdge":1}},{"aggregateGeometries":null,"geometry":{"spatialReference":
{"latestWkid":32632,"wkid":32632}
,"x":4711.0,"y":815.0},"attributes":{"SourceID": 2, "SourceOID": 26156789, "PosAlong": 0, "SideOfEdge":1}}]}
The determination of the SourceOID is the up to you. It will not be overwritten by ArcGIS Server.
Tested with ArcgIS Server 10.9.1
in ArcGIS ENterprise 11, you can also check with the new locateSettings Parameter described here:
Direct request—ArcGIS REST APIs | ArcGIS Developers