Based on your explanation my take is you only have a single key that you want to substitute dynamically in the REST URL. If that's correct then you can leverage testExec for this purpose ( testExec - specifies the current test execution environment).
In JSR-223 step you can set the key like this:
testExec.setStateValue("salarymapkey","salesID1004");
Later in any subsequent steps you can access the value of salarymapkey in REST URL like this
api/v1/salesopportunity/{{salarymapkey}}/offer
The value of property salarymapkey won't change until the next cycle of test execution till you fetch new salesID.
Assuming there are multiple key values in that case you should look at leveraging SharedModelMap as Rick explained earlier.
Populate the map in JSR-223 step as follows (sample code snippet)
import com.itko.lisa.vse.SharedModelMap;
if (!SharedModelMap.containsKey(salarymapkey)) {
SharedModelMap.put(salarymapkey,value);
}
REST URL should be constructed like this
api/v1/salesopportunity/{{=com.itko.lisa.vse.SharedModelMap.get(salarymapkey);}}/offer