project QadFinancials > class BSafStructure > method DumpSafStructureForConsolid
Description
This method will load the SafStructures that need to be dumped and dump them in a XML file.
Parameters
icSafStructureIDList | input | character | |
icDumpFile | input | character | |
icConsolCompany | input | character | |
bcSafConceptIDList | input-output | character | |
oiReturnStatus | output | integer | Return status of the method. |
Internal usage
QadFinancials
program code (program1/bsafstructure.p)
If oiReturnStatus = 0
Then Assign oiReturnStatus = -98.
<M-1 run DataLoad (input ? (icRowids),
input icSafStructureIDList (icPkeys),
input ? (icObjectIds),
input ? (icFreeform),
input False (ilKeepPrevious),
output viFcReturnSuper (oiReturnStatus)) in BSafStructure>
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.
Assign bcSafConceptIDList = Replace(bcSafConceptIDList,Chr(4),',':U).
For Each tSafStructure:
Assign
tSafStructure.SafStructureIsActive = True
tSafStructure.SafStructure_ID = 0.
For Each tSafStructureLine Where
tSafStructureLine.tc_ParentRowid = tSafStructure.tc_Rowid:
If Not Can-do(bcSafConceptIDList + ",0":U, String(tSafStructureLine.SafConcept_ID))
Then Assign bcSafConceptIDList = bcSafConceptIDList + ',':U + String(tSafStructureLine.SafConcept_ID).
Assign
tSafStructureLine.SafConcept_ID = 0
tSafStructureLine.SafStructureLine_ID = 0
tSafStructureLine.SafStructure_ID = 0.
End.
End.
Assign bcSafConceptIDList = Replace(Trim(bcSafConceptIDList,',':U),',':U,Chr(4)).
<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 BSafStructure>
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 = "90":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 BSafStructure>
If viFcReturnSuper <> 0
Then Assign oiReturnStatus = viFcReturnSuper.
If viFcReturnSuper < 0
Then Return.
If oiReturnStatus = -98
Then Assign oiReturnStatus = 0.