Its also possible to do this by dissolving the lines in your sewer network, executing two separate Features Vertices to Point functions (one for upstream points and one for downstream nodes), at this point if your nodes represent features that are matched in another layer (such as Manholes) you can use a spatial join to import those structure IDs into your new upstream and downstream nodes layers. Once your upstream and downstream features have IDs you can use another series of joins to add the ID's to your original (un-dissolved) sewers layer.
It could look something like this
[ATTACH=CONFIG]15459[/ATTACH]
Note that this model is not a working version of what we came up as a solution, the final version was much more complicated and had to be completed with python to be flexible with incomplete data sets and poorly interconnected sewer features.