There are several ways of creating a cylindrical cam, but my personal favourite is to use a sheetmetal 'shell' which can have the cam slot created in the unbent state then re-wrapped. This can be used as a Construction part, just to provide the sweep path for the cam groove.
Up until the introduction of the Cam relationship in SEv14, your options to create any kind of cam behaviour in an Assembly were very limited since you could only create a relationship to a single face, NOT to a chain of faces.
If you cannot achieve what you need with the Tangent or Connect relationships, SEv14 is the only real answer for creating an assembly.