これは、InterSystems FAQサイトの記事です。
%Library.GlobalクラスのExport()メソッドを使用してエクスポートする際に、エクスポート形式(第4引数:OutputFormat)を 7 の「ブロックフォーマット/Cachéブロックフォーマット(%GOF)」にした場合、マッピングされたグローバルはエクスポートできない仕様となっています(対象はネームスペースのデフォルトグローバルデータベースのグローバルのみ)。
マッピングされたグローバルを「ブロックフォーマット/Cachéブロックフォーマット(%GOF)」でエクスポートする為には、%Library.Global.Export()の第1パラメータにマッピング先のデータベースディレクトリを指定します。
実行例は以下の通りです。
set sc = ##class(%Library.Global).Export(DB,"TESTGBL.gbl",FULLPATH,7,,"")
エクスポート形式を 5(既定値) の「ISM/ObjectScriptフォーマット(ISM/Cacheフォーマット)(※)」を指定した場合、マッピングされたグローバルもエクスポートできますが、エクスポート形式(第4引数:OutputFormat)を 7 の「ブロックフォーマット/Cachéブロックフォーマット(%GOF)」にした場合と比べ、出力ファイルが大きくなります。
※ シーケンシャルファイル形式
また、グローバルにバイナリデータが記録されている場合、そのデータは正常に出力されません。
詳細については、以下ドキュメントをご覧ください。
クラスリファレンス:%Library.Global.Export() 【IRIS】
クラスリファレンス:%Library.Global.Export()
【注意】
$LIST形式や制御文字を含むグローバルの場合は、エクスポート形式を 5(既定値) の「ISM/ObjectScriptフォーマット(ISM/Cacheフォーマット)(※)」で正常にエクスポートできません。
この場合は、データベース単位に、エクスポート形式(第4引数:OutputFormat)を 7 の「ブロックフォーマット/Cachéブロックフォーマット(%GOF)」でエクスポートする必要があります。