Description
This method can be used for creation of new Daybook closing mask based on existing one
Parameters
iiOriginalCMask_ID | input | integer | ID of the original Daybook closing mask from which new one is created. |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
unused
program code (program3/bcmask.p)
/* ====================================================================================== *
* Method : Copy *
* Description : This method creates new Daybook closing mask as copy of existing one *
* -------------------------------------------------------------------------------------- *
* Parameters : (i) OriginalCMask_ID Original Daybook closing mask *
* ====================================================================================== */
MAIN_BLOCK:
do on error undo, throw:
/* Pre-validation block */
if iiOriginalCMask_ID = 0 or
iiOriginalCMask_ID = ?
then do:
assign vcMessage = #T-90'Not all mandatory input parameters are populated or they have wrong value.':255(999890330)T-90#
vcContext = "OriginalCMask_ID=&1":U
vcContext = substitute(vcContext, iiOriginalCMask_ID).
<M-37 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'S':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'qadfin-349052':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input vcContext (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
assign oiReturnStatus = -1.
leave MAIN_BLOCK.
end.
/* Clear instance data first */
<M-40 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BCMask>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then leave MAIN_BLOCK.
/* Read data of original Daybook closing mask */
<M-33 run DataLoad
(input ? (icRowids),
input ? (icPkeys),
input string(iiOriginalCMask_ID) (icObjectIds),
input ? (icFreeform),
input true (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then leave MAIN_BLOCK.
/* Change the data to get "New" status */
<M-67 run SetNewStatus (output viFcReturnSuper (oiReturnStatus)) in BCMask>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then leave MAIN_BLOCK.
find tCMask no-error.
if not available tCMask
then do:
assign vcMessage = #T-87'Missing record':255(69247)T-87#
vcContext = "OriginalCMask_ID=&1":U
vcContext = substitute(vcContext, iiOriginalCMask_ID).
<M-70 run SetMessage
(input vcMessage (icMessage),
input '':U (icArguments),
input '':U (icFieldName),
input '':U (icFieldValue),
input 'S':U (icType),
input 3 (iiSeverity),
input '':U (icRowid),
input 'qadfin-253071':U (icFcMsgNumber),
input '':U (icFcExplanation),
input '':U (icFcIdentification),
input vcContext (icFcContext),
output viFcReturnSuper (oiReturnStatus)) in BCMask>
assign oiReturnStatus = -1.
leave MAIN_BLOCK.
end.
/* Adjust code to indicate, it is copy */
assign tCMask.CMaskCode = substitute(#T-9'Copy of &1':20(715)T-9#, tCMask.CMaskCode).
/* Copy also all documents to new Daybook closing mask */
if viBDocumentLinkBCMID = 0 or
viBDocumentLinkBCMID = ?
then do:
<I-77 {bFcStartAndOpenInstance
&ADD-TO-TRANSACTION = "true"
&CLASS = "BDocumentLink"}>
end.
else if not valid-handle(vhBDocumentLinkBCMInst)
then do:
<I-92 {bFcOpenInstance
&CLASS = "BDocumentLink"}>
end.
/* Copy the Link from the Original Invoice to the Replacement invoice */
<M-27 run CopyObjectsDocuments
(input 'BCMask':U (icSourceComponent),
input iiOriginalCMask_ID (iiSourceObjectId),
input 'BCMask':U (icDestinationComponent),
input tCMask.CMask_ID (iiDestinationObjectId),
output viFcReturnSuper (oiReturnStatus)) in BDocumentLink>
if viFcReturnSuper < 0 or viFcReturnSuper > 0 and oiReturnStatus = 0 then assign oiReturnStatus = viFcReturnSuper.
if oiReturnStatus < 0 then leave MAIN_BLOCK.
/* Clean up resoruces */
finally:
/* Close communication with BDocumentLink */
if valid-handle(vhBDocumentLinkBCMInst)
then do:
<I-23 {bFcCloseInstance
&CLASS = "BDocumentLink"}>
end.
end.
end. /* MAIN_BLOCK */