project QadFinancials > class BSaf > method DumpSafForConsolid

Description

This method will load the Safs that need to be dumped and dump them in a XML file.


Parameters


icSafIDListinputcharacter
icDumpFileinputcharacter
icConsolCompanyinputcharacter
oiReturnStatusoutputintegerReturn status of the method.


Internal usage


QadFinancials
method BConsolidDump.AdditionalUpdatesPostingSub


program code (program1/bsaf.p)

If oiReturnStatus = 0
Then Assign oiReturnStatus = -98.

<M-1 run DataLoad (input  ? (icRowids),
                   input  icSafIDList (icPkeys),
                   input  ? (icObjectIds),
                   input  ? (icFreeform),
                   input  False (ilKeepPrevious),
                   output viFcReturnSuper (oiReturnStatus)) in BSaf>
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.

For Each tSaf:

    Assign
        tSaf.BudgetGroup_ID     = 0
        tSaf.tcBudgetGroupCode  = '':U
        tSaf.SafIsActive        = True
        tSaf.Saf_ID             = 0
        tSaf.SafConcept_ID      = 0.

End.

<M-2 run DumpXmlRepresentation
   (input  icDumpFile (icFile),
    input  no (ilHeaderOnly),
    input  no (ilSuppressEmptyFields),
    input  0 (iiPriority),
    input  false (ilWriteXMLSchema),
    input  ? (icObjectRowId),
    output viFcReturnSuper (oiReturnStatus)) in BSaf>
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.

create X-DOCUMENT vhDoc in widget-pool "non-persistent".
create X-NODEREF vhRoot in widget-pool "non-persistent".
create X-NODEREF vhNode in widget-pool "non-persistent".
create X-NODEREF vhNode2 in widget-pool "non-persistent".
create X-NODEREF vhValue in widget-pool "non-persistent".

vhDoc:load ("FILE":U, icDumpFile, no) no-error.

do viCnt = 1 to vhDoc:num-children:
    vhDoc:get-child(vhRoot,viCnt).
    if vhRoot:local-name = "object":U
    Then Leave.
end.
do viCnt = 1 to vhRoot:num-children:
    vhRoot:get-child(vhNode,viCnt).
    if vhNode:local-name   = "CompanyCode":U and
       vhNode:num-children = 1
    then do:
        vhNode:get-child(vhValue,1).
        if vhValue:name = "#text":U
        then do:
            vhValue:node-value = icConsolCompany.
        End.
    end.

    if vhNode:local-name   = "classRepresentation":U
    Then Do:
        vhDoc:create-node-namespace (vhNode2, "com.softcell.componentbuilder.class":U, "priority":U, "element":U).
        vhNode2:namespace-prefix = "cb":U.
        vhRoot:insert-before (vhNode2, vhNode).

        vhDoc:CREATE-NODE (vhValue, "", "TEXT":U).
        vhValue:NODE-VALUE = "100":U.
        vhNode2:APPEND-CHILD (vhValue).

        /*this is a must otherwise crash*/
        Assign viCnt = viCnt + 1.
    End.
end.

vhDoc:save ("file":U, icDumpFile) no-error.

delete object vhValue.
delete object vhNode2.
delete object vhNode.
delete object vhRoot.
delete object vhDoc.

<M-3 run ClearData (output viFcReturnSuper (oiReturnStatus)) in BSaf>
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.

If oiReturnStatus = -98
Then Assign oiReturnStatus = 0.