MDrivenWiki
Log in

Advanced Exporting files from MDriven Server

From MDrivenWiki
Special column name
filename
path
xslt
filedata
savefile

filename

path

xslt

filedata

savefile

Producing export files from MDriven Server

You can also write files by adding an action column called “savefile” (case sensitive); when the periodic action supervisor in MDrivenServer sees this action column it looks for two additonal columns; path and filename (case insensitive). If these are found the complete result of the ViewModel is streamed out as xml by using the ViewModelXMLUtils.GetDataAsXml method. The xml is then saved to path/filename.

Like this:

Exporting files from MDriven Server.png

In a real world application it looked like this:

Exporting files from MDriven Server 02.png

Notice that both path and filename are evaluated expressions, furthermore the Action UpdateExportTime is executed last – and it changes some data. Since the whole execution is wrapped in a memory transaction we make sure that we do not update the export time unless the file was written and everything is ok.

The resulting file looked like this:

Exporting files from MDriven Server 03.png

Shaping and transforming export files

This SaveFile action has been updated to look for a column named xslt, if it is found the contents of the field is assumed to be a valid xslt transformation. The xml from the viewmodel is transformed with the xslt and the result is saved as above.

So if your xslt is…

<?xml version='1.0'?>
 <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform'
 version='1.0'> <xsl:output method='text' omit-xml-declaration='yes'/> 
            <xsl:value-of select='ArticleNumber'/>,<xsl:value-of
 select='SalesArticleName'/>
        </xsl:template>
 </xsl:stylesheet>

… then your output would be…

NO101087,Cosmica Tygg 90 ST…

New Addition 2019-March - arbitrary filedata

Adding a viewModel column named "filedata" - and this results is an Image,Blob or other byte array type - this data is saved rather than the ViewModel-data-as-XML.

If the "filedata"-column is of type string - the string content is written to the file.

See also SQLExport