project BLF > class RPCRequestService > method ImportXML


Parameters


izInputDSinputdataset-handle
ohOutputDSoutputhandle
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


BLF
method RPCRequestService.Main


program code (program1/rpcrequestservice.p)

/* Read all context properties into data items */
<M-1 run ReadContextPropertiesForXMLImport
   (input  izInputDS by-reference (izInputDS), 
    output vcAction (ocAction), 
    output vcActivity (ocActivity), 
    output vlReturnObjectDataset (olReturnObjectDataset), 
    output vlReturnInternalIds (olReturnInternalIds), 
    output vlIsPartialUpdate (olIsPartialUpdate), 
    output vcPartialUpdateExceptionList (ocPartialUpdateExceptionList), 
    output viFcReturnSuper (oiReturnStatus)) in RPCRequestService>

/* Check validity of the incoming izInputDS (make sure it is according to the official XSD of the object dataset) */
<M-3 run ValidateInputDS
   (input  izInputDS by-reference (izInputDS), 
    output viFcReturnSuper (oiReturnStatus)) in RPCRequestService>

if viFcReturnSuper < 0 or
   oiReturnStatus  = 0
then assign oiReturnStatus = viFcReturnSuper.

if viFcReturnSuper < 0
then return.

/* Use a method similar to BXmlDaemonProcessor.LoadXmlDocument to process the data.*/
<M-4 run ProcessDS
   (input  vcActivity (icActivity), 
    input  vlIsPartialUpdate (ilIsPartialUpdate), 
    input  vcAction (icAction), 
    input  vlReturnObjectDataset (ilReturnObjectDataset), 
    input  vcPartialUpdateExceptionList (icPartialUpdateExceptionList), 
    input  vlReturnInternalIds (ilReturnInternalIds), 
    input  izInputDS by-reference (izInputDS), 
    output vhReturnDataset (ohReturnDataset), 
    output viFcReturnSuper (oiReturnStatus)) in RPCRequestService>

assign ohOutputDS = vhReturnDataset.

/* Interpret the result of the call to this method, and fill in the ohExceptionDS dataset. */
if viFcReturnSuper < 0 or
   oiReturnStatus  = 0
then assign oiReturnStatus = viFcReturnSuper.

if viFcReturnSuper < 0
then return.