Description
GetFileName
Parameters
icPayFormatTypeCode | input | character | PayFormatTypeCode |
icTransferFilePath | input | character | TransferFilePath |
ocOutputFileName | output | character | OutputFileName |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bpaymentselection.p)
assign vcmSlash = (if opsys = "UNIX":U then "/":U else "~\":U).
/* Get the mask output file */
<Q-1 run PayFormatTypeByType (all) (Read) (NoCache)
(input icPayFormatTypeCode, (PayFormatTypeCode)
output dataset tqPayFormatTypeByType) in BPaymentFormat >
find first tqPayFormatTypeByType no-error.
if not available tqPayFormatTypeByType
then do:
<M-2 run SetMessage (input #T-6'The specified payment format $1 is not found in the system.':100(2979)t-6# (icMessage),
input icPayFormatTypeCode (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'D':U (icType),
input 2 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-1116':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentSelection>
assign oiReturnStatus = -1.
return.
end.
/* Output File Mask: 'DD' - day(today), 'MM' - month(today), 'YY/YYYY' - year(today) */
assign vcOutputFileMask = trim(tqPayFormatTypeByType.tcPayFormatTypeOutFileMask).
if vcOutputFileMask = '':U
then assign vcOutputFileMask = 'YYMMDD$1.txt':U.
assign vcOutputFileMask = replace(vcOutputFileMask,'DD':U,string(day(today),'99':U))
vcOutputFileMask = replace(vcOutputFileMask,'MM':U,string(month(today),'99':U))
vcOutputFileMask = replace(vcOutputFileMask,'YYYY':U,string(year(today),'9999':U))
vcOutputFileMask = replace(vcOutputFileMask,'YY':U,substring(string(year(today),'9999':U),3,2,"CHARACTER":U))
viFileSequence = viFileSequence + 1.
do while ocOutputFileName = '':U or
search(ocOutputFileName) <> ?:
Assign file-info:file-name = icTransferFilePath.
if file-info:file-type = ?
then do:
<M-10 run SetMessage (input #T-12'This is not a valid directory.':255(17073)T-12# (icMessage),
input icTransferFilePath (icArguments),
input '':U (icFieldName),
input icTransferFilePath (icFieldValue),
input 'E':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-4192':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentSelection>
assign oiReturnStatus = -1.
return.
end.
assign ocOutputFileName = icTransferFilePath + vcmSlash + (if index(vcOutputFileMask,'$1':U) > 0
then replace(vcOutputFileMask,'$1':U,string(viFileSequence,'999':U))
else if index(vcOutputFileMask,'&1':U) > 0
then subst(vcOutputFileMask, string(viFileSequence,'999':U))
else right-trim(vcOutputFileMask) + string(viFileSequence,'999':U))
file-info:file-name = ocOutputFileName.
if search( file-info:full-pathname ) <> ? and
( index( file-info:file-type, "F":U ) = 0 or
index( file-info:file-type, "R":U ) = 0 )
then assign ocOutputFileName = '':U
viFileSequence = viFileSequence + 1.
else assign viFileSequence = viFileSequence + 1.
if viFileSequence = 1000
then do:
<M-3 run SetMessage
(input #T-13'There are too many files (more than 1000) in the specified directory. Clean up the directory first.':255(17074)t-13# (icMessage),
input icTransferFilePath (icArguments),
input '':U (icFieldName),
input icTransferFilePath (icFieldValue),
input 'D':U (icType),
input 2 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-1117':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentSelection>
assign oiReturnStatus = -1.
return.
end.
end.
if ocOutputFileName = '':U
then do:
<M-4 run SetMessage
(input #T-8'The specified file name is invalid (empty).':200(2981)t-8# (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'D':U (icType),
input 2 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-1312':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentSelection>
assign oiReturnStatus = -1.
return.
end.
else do on error undo, retry:
if retry
then do:
<M-5 run SetMessage
(input #T-9'The system cannot provide output to: $1.':200(2982)t-9# (icMessage),
input ocOutputFileName (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'D':U (icType),
input 2 (iiSeverity),
input '':U (icRowid),
input 'QADFIN-1313':U (icFcMsgNumber),
input '' (icFcExplanation),
input '' (icFcIdentification),
input '' (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BPaymentSelection>
assign oiReturnStatus = -1.
return.
end.
output to value(ocOutputFileName).
output close.
end.