パッケージを自動的にエクスポートするワークフローの設定方法を学びます。
定期的に(たとえば毎日、毎週など)パッケージを自動的にエクスポートするワークフローを設定すると、バックアップ手順として役立ちます。データベースがクラッシュした場合や何かが誤って削除された場合に備えて、すべてのパラメータのバックアップが提供されます。
var query = xtk.queryDef.create( <queryDef schema="xtk:specFile" operation="select"> <select> <node expr="@name"/> <node expr="@namespace"/> <node expr="data"/> </select> </queryDef> ) var res = query.ExecuteQuery()
また、XMLドキュメントでパッケージを指定することもできます。デフォルトでは、最大 1000 個のドキュメントがエクスポートされます。
さらにドキュメントをエクスポートするには、lineCountMax 属性を設定します。
パッケージ仕様 XML:
<package> <definition id="1" lineCountMax="10000" schema="nms:delivery"> <where> <condition boolOperator="OR" expr="[campaign/@fullName] LIKE '/Campaign Management/%'"/> </where> </definition> </package>
vars specFileXML = <specFile (...) /> var specFile = xtk.specFile.create(specfileXml) var package = specFile.GenerateDoc()
var package = (...) // XML contents of package var fileName = "/tmp/myPackage.xml" saveXmlFile(package, fileName)
複数のパッケージを生成する場合は、すべてのファイルを zip ファイルに保存するのが便利です。ファイルは「var」サブディレクトリにあり、ファイル名には日付を含める必要があります。
パッケージを zipファイルに保存:
var zip = new ZipFile(zipfilename) for each (var s in res.specFile) { var packageName = s.@namespace + ":" + s.@name var specFile = xtk.specFile.create(s) var package = specFile.GenerateDoc() package = "<?xml version='1.0' encoding='windows-1252'?>\n" + package var fileName = s.@namespace + s.@name + ".xml" var content = new MemoryBuffer(); content.fromString(package) zip.setEntry(fileName, content) content.dispose() } zip.save("", true) zip.dispose()