project QadFinancials > class PLicense > method ValidateProgramLicense


Parameters


icProgramNameinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BBankCharge.PreValidateComponent
method BDomain.ValidateComponent


program code (program1/plicense.p)

/* ========================================================================== */
/* Do not run the license check when running in backwards compatibility mode. */
/* (running an older mfgpro version)                                          */
/* ========================================================================== */
<M-58 run StartCacher
   (output vhFcComponent (ohCacher), 
    output viFcReturnSuper (oiReturnStatus)) in PLicense>
    
<M-7 run GetIntegerValueFromSession
   (input  viSessionID (iiSessionId), 
    input  'MfgProMajorVersion':U (icDataItemName), 
    output vimfgMajorVersion (oiValue), 
    output viFcReturnSuper (oiReturnStatus)) in Cacher>    
    
<M-86 run GetIntegerValueFromSession
   (input  viSessionID (iiSessionId), 
    input  'MfgProMinorVersion':U (icDataItemName), 
    output vimfgMinorVersion (oiValue), 
    output viFcReturnSuper (oiReturnStatus)) in Cacher>    

if vimfgMajorVersion > 3
or (vimfgMajorVersion = 3 and vimfgMinorVersion > 12)
then do:
    empty temp-table ttLicenseValidationParameters.
    empty temp-table ttLicenseValidationResponseData.
    
    create ttLicenseValidationParameters.
    assign ttLicenseValidationParameters.tcProgramName = icProgramName.
    release ttLicenseValidationParameters.
    
    vhin = dataset dsLicenseValidationParameters:handle.
    vhinout = ?.
    vhout = dataset dsLicenseValidationResponseData:handle.
    
    <M-50 run CallService
       (input  '' (icProgramName), 
        input  'validateProgramLicenseAndUserAuthorization' (icMethodName), 
        input  vhin (izInput), 
        input-output vhinout (bzInputOutput), 
        input-output vhout (bzOutput), 
        input  ? (icAsyncHandler), 
        output oiReturnStatus (oiReturnStatus)) in PLicense>
    
    if oiReturnStatus >= 0
    then
    if can-find (first ttLicenseValidationResponseData)
    then for each ttLicenseValidationResponseData on error undo, throw:
        if ttLicenseValidationResponseData.tlValidLicense = no
        then do:
            <M-3 run SetMessage
               (input  ttLicenseValidationResponseData.tcErrorMessage + ' (' + string(ttLicenseValidationResponseData.tiErrorCode) + ')' (icMessage), 
                input  '' (icArguments), 
                input  '' (icFieldName), 
                input  '' (icFieldValue), 
                input  'D' (icType), 
                input  3 (iiSeverity), 
                input  '' (icRowid), 
                input  'qadfin-881683':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in PLicense>
            oiReturnStatus = -1.
        end.
    end.
    else do:
        <M-21 run SetMessage
           (input  #T-21'No response from license server.':255(1670484)T-21# (icMessage), 
            input  '' (icArguments), 
            input  '' (icFieldName), 
            input  '' (icFieldValue), 
            input  'D' (icType), 
            input  3 (iiSeverity), 
            input  '' (icRowid), 
            input  'qadfin-710823':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in PLicense>
        oiReturnStatus = -3.
    end.
end.