You may find sections of the article Converting ISINs to RICs useful.
In summary, you can have multiple RICs for an entity - one for each data source - e.g. for IBM the primary exchange is NYSE, and the Primary RIC is IBM.N but we also have other IBM RICs such as IBM.MX, IBM.BE, IBM.HA, IBM.H etc
As well as the Datascope select for the conversion, our newer RDP APIs can also be used to achieve this e.g. our Symbology API.
I have a simple Python example that demonstrates this and has links to the Symbology API documentation etc.