BELOW IS WHAT I DID TO ***EXPERIMENTALLY*** EXPORT A OSCRIPT MODULE AS A COLLECTION OF DUMP FILES (ONE FOR EACH OSPACE OBJECT) RATHER THAN A SINGLE MONOLITHIC DUMP FILE. You can view the Viemo video https://vimeo.com/47891950 to watch a demo of this very crude proof-of-concept quality code. 1. Created new Child 'OSUtils' under "[my module] Root" 2. Copied "Builder Root:Builder Utils" features "NewOSpaceStetup","SystemFeatures","ExportOspace" 3. Created Integer fCounter, setting initial value to 10000 4. Created Dynamic fDmpFile, leaving Undefined 5. Edited ExportOspace to write a new .dmp file for each object by doing this: Note: I am not posting the source for my modified ExportOspace method because I did not write the original method and don't want to post code I did not write. However, below is a unified diff showing the changes I made. --- E:/csapps/opentext/module/aabmod_1_0_1/src/ExportOspace_original.txt +++ E:/csapps/opentext/module/aabmod_1_0_1/src/ExportOspace_modified.txt @@ -22,6 +22,7 @@ dynamic f object x + .fCounter = 10000 if OS.IsObject( starthere ) root = starthere @@ -34,6 +35,7 @@ else outfile = File.StringToFile( filename ) end + .fDmpFile = outfile $cancelled = false @@ -81,6 +83,7 @@ Dialog.Close( $progress ) $outputFile = undefined + .fCounter = 10000 end end @@ -99,6 +102,10 @@ function void PrintObject( object o ) + File outputFile = $outputFile + File myFile = .GetFileFor(o) + $outputFile = myFile + File.Open( $outputFile, "w" ) object obj boolean featureSet string featureName @@ -173,6 +180,8 @@ break end end + File.Close(myFile) + $outputFile = outputFile end 6. Created GetFileFor method as follows: function File GetFileFor(Object o) .fCounter += 1 String s = Str.Format("%1_%2_%3.dmp", File.FileToString(.fDmpFile), .fCounter, o.osName) File f = File.StringToFile(s) return f end 7. Created RebuildDmpFile method as: function File RebuildDmpFile(File dmpfile) String name = File.GetName(dmpFile) String tmpname = Str.Format("%1.tmp", name) String dir = File.GetPath(dmpFile) File fTmpFile = File.StringToFile(Str.Format("%1%2%3", dir, File.Separator(), tmpname)) File.Delete(fTmpFile) File.Open(fTmpFile, File.WriteMode) File fRead List lFiles String msg, sFile, line msg = Str.Format("Reassemble %1.* into %2", name, tmpname) echo(msg) lFiles = List.Sort(File.FileList(dir)) for sFile in lFiles if (sFile != File.FileToString(fTmpFile)) if (Str.Locate(sFile, File.FileToString(dmpfile)) == 1) echo(" Processing ", sFile) fRead = File.Open( sFile, File.ReadMode ) for ( line = File.Read(fRead) ; \ line != File.E_Eof ; \ line = File.Read(fRead) ) File.Write(fTmpFile, line) end File.Close(fRead) end end end File.Close(fTmpFile) return fTmpFile end 8. Wrote _test_export function as follows: function _test_export() .ExportOSpace(Undefined, OS.Root('aabmod')) end 9. Wrote _test_reconstruct function as follows: function _test_reconstruct() File dmp = File.StringToFile("E:\csapps\opentext\module\aabmod_1_0_1\src\aabmod.dmp") File tmp = .RebuildDmpFile(dmp) echo("Ok, import " , File.FileToString(tmp)) end