パッケージを自動的にエクスポートする方法
パッケージを自動的にエクスポートするワークフローの設定方法を学びます。

はじめに

定期的に(たとえば毎日、毎週など)パッケージを自動的にエクスポートするワークフローを設定すると、バックアップ手順として役立ちます。データベースがクラッシュした場合や何かが誤って削除された場合に備えて、すべてのパラメータのバックアップが提供されます。  

実装

パッケージ仕様のロード

xtk:spec ファイルは仕様を含みます。queryDef を使用して、JavaScript にロードします。

パッケージ仕様の読み込み:

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>

パッケージを生成

GenerateDoc()関数は、仕様からパッケージを生成します。XML オブジェクトを返します。

パッケージエクスポート JS:

vars specFileXML = <specFile (...) />
var specFile = xtk.specFile.create(specfileXml)
var package = specFile.GenerateDoc()

XML ファイルへのパッケージの保存

パッケージ XML をファイルに保存する必要があり、ファイル名にヘッダーと日付が必要です。saveXmlFile 関数は、XML 形式で内容をファイルに書き込みます。

zip ファイルに保存:

var package = (...) // XML contents of package
var fileName = "/tmp/myPackage.xml"
saveXmlFile(package, fileName)

複数のパッケージを zip ファイルに保存

複数のパッケージを生成する場合は、すべてのファイルを 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 = "&lt;?xml version='1.0' encoding='windows-1252'?&gt;\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()

ワークフローの設定

ワークフローを設定するには:

  1. 管理/制作/テクニカルワークフローの下に、パッケージのエクスポートという名前の新しいワークフローを作成します。
  2. 毎日実行するスケジューラを追加します。
  3. パッケージを出力する JavaScript を追加します。
  4. このワークフローを実行し、実施を監視します。
  5. パッケージの内容を使用して、毎日ファイルが作成されます。

ファイルを取得する

SFTP を使用してファイルを取得できます。ファイルはアプリケーションサーバー上にあります。

ファイルの削除

ファイルシステムの混雑を避けるためには、ファイルを定期的に削除する必要があります。