Uh, yeah, what he said - apart from, the query which the api business rules code runs (PER_PYP_BUS.chk_access) in order to make the check, does not itself check for a salary basis. That check is done, but it's done elsewhere (PER_PYP_BUS.chk_assignment_id_change_date), and if that failed (ie the salary_basis was null as at the salary change date), the API would return the message HR_289855_SAL_ASS_NOT_SAL_ELIG
As a general rule, when you get those sorts of cryptic message codes, you can usually get a more meaningful text by doing this in SQL*plus or TOAD or whatever:
SELECT message_text
FROM fnd_new_messages
WHERE message_name = 'PER_SAL_ASG_NOT_EXIST';
In the above example, you get:
The employee assignment does not exist on the proposal's change date.
<Topic creep>
Oh and thanks, Romesh, for the financial advice regarding my football club. As a *Dirty* L**ds fan, you will of course be able to comment most eloquently on financial matters pertaining to football clubs generally, and mediocre Sunday League Div 1 sides in particular! Still, I suppose we could always stick the FA Cup on eBay, just as you did with the Div 1 playoff final trophy - oh, hang on....
</Topic creep>
_________________________
L&K
CT
Remember: A dog is for life, not just for Christmas... unless you're in Korea