Kindly run the process from the concurrent program submission form using same user and responsibility as set programatically.
It seems profile option GL Ledger Name is not set for the user/ responsibility.
If you set the context using : FND_GLOBAL.APPS_INITIALIZE( user_id , responsibility id , application id ) ;
what's a result ? what's request id it's given ?
If you are working with GL, then Pl. ensure that Responsibility / Application should be of GL.
That Responsibility should be assigned to that user and user should be active.