Exporting files from MDriven Server
m ((username removed) (log details removed))
 
(12 intermediate revisions by 5 users not shown)
Line 1: Line 1:
==== Producing export files from MDriven Server ====
{| class="wikitable"
You can also write files by adding an action column called “savefile”; 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.
!Special column name
!
|-
|filename
!
|-
|path
|
|-
|xslt
|also see the [[OCLOperators XsltTransformXml|XsltTransformXml]] OCL operator
|-
|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 additional 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:
Like this:
Line 6: Line 25:
[[File:Exporting files from MDriven Server.png|frameless|360x360px]]
[[File:Exporting files from MDriven Server.png|frameless|360x360px]]


In a real world application it looked like this:
In a real-world application, it looks like this:


[[File:Exporting files from MDriven Server 02.png|frameless|362x362px]]
[[File:Exporting files from MDriven Server 02.png|frameless|362x362px]]


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.
Notice that both the 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:
The resulting file looks like this:


[[File:Exporting files from MDriven Server 03.png|frameless|409x409px]]
[[File:Exporting files from MDriven Server 03.png|frameless|409x409px]]


==== Shaping and transforming export files ====
==== 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.
This SaveFile action has been updated to look for a column named XSLT. If it is found, the contents of the field are 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…
So if your XSLT is…
  <?xml version='1.0'?>
  <?xml version='1.0'?>
   <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform<nowiki/>'
   <xsl:stylesheet xmlns:xsl='http://www.w3.org/1999/XSL/Transform<nowiki/>'
Line 31: Line 50:
''NO101087,Cosmica Tygg 90 ST…''
''NO101087,Cosmica Tygg 90 ST…''


==== SQLExport serverside action ====
==== New Addition March 2019: Arbitrary Filedata ====
The SQLExport action is an action used to write data from your model into another external SQLdatabase. It is an alternative way to export data – way to needs no other external components or maintenance than what MDriven Server provides.
Add a ViewModel column named "filedata". This results in an Image, Blob, or other byte array type, and this data is saved rather than the ViewModel-data-as-XML.  


SQLExport requires 'connectionstring' on root, 'data' as a Nesting that contains the datarow(s) to insert or update and on data - 'queryforinsert','queryforupdate' and 'queryforselectcount' as attributes (if queryforselectcount returns 0 the queryforinsert is used, else update).
If the "filedata"-column is of type string, the string content is written to the file.


''Update 2018-10-18: you can now use 'connectionstringodbc' and the logic will use ODBC connection instead.''
The MDriven Book - See also: [[SQLExport from MDriven Server|SQLExport]]


The very common case of “replicating” some model driven data to another database is implemented and scheduled in minutes.
[[File:Exporting files from MDriven Server 06.png|frameless|510x510px]]
[[Category:Advanced]]
[[Category:Advanced]]
[[Category:MDriven Server]]
[[Category:MDriven Server]]
[[Category:The MDriven Book]]

Latest revision as of 06:31, 11 January 2024

Special column name
filename
path
xslt also see the XsltTransformXml OCL operator
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 additional 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 looks like this:

Exporting files from MDriven Server 02.png

Notice that both the 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 looks 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 are 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 March 2019: Arbitrary Filedata

Add a ViewModel column named "filedata". This results in an Image, Blob, or other byte array type, and 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.

The MDriven Book - See also: SQLExport

This page was edited 123 days ago on 01/11/2024. What links here