project QadFinancials > class BDInvoice > method MaintainByDatasetWithOutput

Description

This method uses contents of the input class temp-tables (prefix t_s) to perform the action specified in icAction. (if icAction is empty, it gets the default value of "SAVE")
SAVE : validate contents and write to database if correct
SAVEDRAFT : validate contents, write to database if correct, copy the data to the class tables (prefix t_o) and create draft instance if incorrect
DRAFT : copy data to the class tables (prefix t_o) and create draft instance
VALIDATE : only validate data

It returns the object dataset if required (if ilProvideOutput = true).

See method ApiStdMaintainTTInitialDefaulting for all further details


Parameters


icActioninputcharacterSAVE
SAVEDRAFT
DRAFT
VALIDATE
ilReturnDatasetinputlogicalIndication whether the logic should return the official dataset of the object that has just been created/modified.
ilPartialUpdateinputlogicalIndication whether the input dataset is a full object or only a partial one.
icPartialUpdateExceptionListinputcharacterComma separated list with fields that need to be skipped in the test logic for partial update.
Fields in the list are specified as t<table>.<field>.
opPrimaryKeyoutputlongchar
opRowidoutputlongchar
oiDraftInstanceoutputinteger
ocPrimaryKeyNameoutputcharacterThe name of the field(s) in the primary key of the object. Normally this is the name of the object ID of the main table. (like creditor_ID)
ozObjectRepresentationoutputdataset-handleThe dataset containing the official representation of the object dataset. It should always be passed by-reference, meaning, the dataset handle should be created before the call.
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


unused


program code (program1/bdinvoice.p)

assign oiReturnStatus      = -98
       vlReturnDatasetDI   = ilReturnDataset
       vhDatasetToReturnDI = ozObjectRepresentation
       vcPrimKeyDI         = "".

<M-1 run ApiStdMaintainTT
   (input  t_sDInvoice (tApiDInvoice), 
    input  t_sDInvoiceMovement (tApiDInvoiceMovement), 
    input  t_sDInvoicePosting (tApiDInvoicePosting), 
    input  t_sDInvoiceStage (tApiDInvoiceStage), 
    input  t_sDInvoiceVat (tApiDInvoiceVat), 
    input  t_sDInvoiceBank (tApiDInvoiceBank), 
    input  t_sDInvoiceBankPayCode (tApiDInvoiceBankPayCode), 
    input  t_sDInvoiceOpInfo (tApiDInvoiceOpInfo), 
    input  icAction (icAction), 
    output opPrimaryKey (ocLstPrimKey), 
    output vcDummy (ocLstReturn), 
    output opRowid (ocLstRowid), 
    output viFcReturnSuper (oiReturnStatus)) in BDInvoice>

assign ocPrimaryKeyName  = vcPrimKeyDI
       vlReturnDatasetDI = false.

if viFcReturnSuper <> 0
then do: 
    assign oiReturnStatus = viFcReturnSuper.
    if viFcReturnSuper < 0 then return.
end. /* if viFcReturnSuper <> 0 */

if oiReturnStatus = -98 
then assign oiReturnStatus = 0.