project BLF > class PAuthentication > method GetUser

Description

getUser API, get user based on session id


Parameters


icGlobalSessionIdinputcharacter
ocUserIdoutputcharacter
ocClientPrincipalObjectoutputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method Session.ApplicationLogin


program code (program1/pauthentication.p)

/*
1. Create input dataset content, based on input GlobalSessionId.
2. Run GetUserRemote in this component.
3. Interpret content of output dataset to fill in ocUserId
*/

If oiReturnStatus = 0
Then Assign oiReturnStatus = -98.

Empty Temp-table tGetUserSessionTokenCall.
Empty Temp-table tResponseUserCall.

Create tGetUserSessionTokenCall.
Assign tGetUserSessionTokenCall.tcSession_id = icGlobalSessionId.

<M-1 run GetUserRemote
   (input  tGetUserSessionTokenCall (tGetUserSessionToken), 
    output tResponseUserCall (tResponseUser), 
    output viFcReturnSuper (oiReturnStatus)) in PAuthentication>
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.  

Find First tResponseUserCall No-error.
If not Available tResponseUserCall
Then Do:
    Assign vcMsg = Trim(#T-3'There is no tResponseUserCall record returned from the GetUserRemote procedure.':255(8907)T-3#)
           oiReturnStatus = -1.
    <M-2 run SetMessage
       (input  vcMsg (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'BLF-352':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in PAuthentication>

    Return.

End. /*If Not Available tResponseUserCall */

If tResponseUserCall.tcUserid = ''
Then Do:
    Assign vcMsg = Trim(#T-5'The User Login, returned by GetUserRemote procedure, is empty.':255(8909)T-5#)
           oiReturnStatus = -1.

    <M-4 run SetMessage
       (input  vcMsg (icMessage), 
        input  '' (icArguments), 
        input  'tResponseUserCall.tcUserid' (icFieldName), 
        input  tResponseUserCall.tcUserid (icFieldValue), 
        input  'S':U (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'BLF-353':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in PAuthentication>

    Return.

End. /* tResponseUserCall.tcUserid = ''*/

Assign ocUserId                = tResponseUserCall.tcUserid
       ocClientPrincipalObject = tResponseUserCall.tcMfgClientPrincipal.

If oiReturnStatus = -98
Then Assign oiReturnStatus = 0.