project BLF > class BReportDaemonProcessor > method ReportResponse


Internal usage


unused


program code (program1/breportdaemonprocessor.p)

empty temp-table tReplyMessage.
set-size(vmResponseData) = 11.
assign vlFcOk = vhSocketDNS:read(vmResponseData, 1, 10) no-error.

if not vlFcOk         or
   error-status:error or
   error-status:num-messages > 0
then do:
    assign vcFcMaskList = "".

    do viFcCount1 = 1 to error-status:num-messages:
        if viFcCount1 > 1
        then assign vcFcMaskList = vcFcMaskList + chr(2).

        assign vcFcMaskList = vcFcMaskList + error-status:get-message(viFcCount1).
    end.

    <M-25 run SetMessage
       (input  trim(#T-27'The system failed to read from socket object.':255(998716610)T-27#) (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'S' (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'BLF-876454':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>

    if vcFcMaskList <> ""
    then do viFcCount1 = 1 to num-entries(vcFcMaskList, chr(2)):
        <M-26 run SetMessage
           (input  entry(viFcCount1, vcFcMaskList, chr(2)) (icMessage), 
            input  '' (icArguments), 
            input  '' (icFieldName), 
            input  '' (icFieldValue), 
            input  'S' (icType), 
            input  3 (iiSeverity), 
            input  '' (icRowid), 
            input  'BLF-730966':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
    end.

    return.
end.

assign viResponseSize = integer(get-string(vmResponseData, 1, 10)) no-error.

if viResponseSize > 0
then do:
    set-size(vmResponseData) = 0.
    set-size(vmResponseData) = viResponseSize + 1.
    assign vlFcOk = vhSocketDNS:read(vmResponseData, 1, viResponseSize) no-error.

    if not vlFcOk         or
       error-status:error or
       error-status:num-messages > 0
    then do:
        assign vcFcMaskList = "".
        
        do viFcCount1 = 1 to error-status:num-messages:
            if viFcCount1 > 1
            then assign vcFcMaskList = vcFcMaskList + chr(2).
        
            assign vcFcMaskList = vcFcMaskList + error-status:get-message(viFcCount1).
        end.
        
        <M-28 run SetMessage
           (input  trim(#T-30'The system failed to read from socket object.':255(998716610)T-30#) (icMessage), 
            input  '' (icArguments), 
            input  '' (icFieldName), 
            input  '' (icFieldValue), 
            input  'S' (icType), 
            input  3 (iiSeverity), 
            input  '' (icRowid), 
            input  'BLF-796700':U (icFcMsgNumber), 
            input  '' (icFcExplanation), 
            input  '' (icFcIdentification), 
            input  '' (icFcContext), 
            output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
        
        if vcFcMaskList <> ""
        then do viFcCount1 = 1 to num-entries(vcFcMaskList, chr(2)):
            <M-29 run SetMessage
               (input  entry(viFcCount1, vcFcMaskList, chr(2)) (icMessage), 
                input  '' (icArguments), 
                input  '' (icFieldName), 
                input  '' (icFieldValue), 
                input  'S' (icType), 
                input  3 (iiSeverity), 
                input  '' (icRowid), 
                input  'BLF-130179':U (icFcMsgNumber), 
                input  '' (icFcExplanation), 
                input  '' (icFcIdentification), 
                input  '' (icFcContext), 
                output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
        end.
        
        return.
    end.

    create dataset vhReplyMessage in widget-pool "non-persistent".
    vhReplyMessage:name = "ReplyDataset".
    vhReplyMessage:set-buffers (temp-table tReplyMessage:default-buffer-handle).
    vhReplyMessage:read-xml("memptr", vmResponseData, "EMPTY", ?, no).
    delete object vhReplyMessage.
end.

for each tReplyMessage on error undo, throw:
    case tReplyMessage.tcCode:
        when "RPT-002"
        then vcResponse = trim(subst(#T-5'The report file (&1) does not exist.':255(9235)T-5#, tReplyMessage.tcParam1)).
        when "RPT-101"
        then vcResponse = trim(subst(#T-20'The system cannot find a local printer (&1) to print the report.':255(998716611)T-20#, tReplyMessage.tcParam1)).
        when "RPT-201"
        then vcResponse = trim(#T-31'No e-mail address was specified for the daemon login ID.':255(998716612)T-31#).
        when "RPT-202"
        then vcResponse = trim(subst(#T-32'An error occurred while sending the e-mail: &1.':255(998716613)T-32#, tReplyMessage.tcParam1)).
        when "RPT-301"
        then vcResponse = trim(subst(#T-22'Error while exporting to file (&1). Service exception (&2).':255(9360)T-22#, tReplyMessage.tcParam1, tReplyMessage.tcParam2)).
        when "RPT-302"
        then vcResponse = trim(subst(#T-23'Unsupported file export format (&1).':255(998716614)T-23#, tReplyMessage.tcParam1)).
        when "RPT-099"
        then vcResponse = trim(subst(#T-24'Generic Error. Service exception (&1).':255(9362)T-24#, tReplyMessage.tcParam1)).
        otherwise vcResponse = trim(subst(#T-2'The report service returned error code &1.':255(9216)T-2#, tReplyMessage.tcCode)).
    end case.

    <M-1 run SetMessage
       (input  vcResponse (icMessage), 
        input  '' (icArguments), 
        input  '' (icFieldName), 
        input  '' (icFieldValue), 
        input  'E' (icType), 
        input  3 (iiSeverity), 
        input  '' (icRowid), 
        input  'BLF-331234':U (icFcMsgNumber), 
        input  '' (icFcExplanation), 
        input  '' (icFcIdentification), 
        input  '' (icFcContext), 
        output viFcReturnSuper (oiReturnStatus)) in BReportDaemonProcessor>
end.

assign vlReportSuccessfull = not can-find (first tReplyMessage).

finally:
    set-size(vmResponseData) = 0.
end finally.