記事
· 2023年4月11日 2m read

マッピングしたグローバルのエクスポートについて

これは、InterSystems FAQサイトの記事です。

%Library.GlobalクラスのExport()メソッドを使用してエクスポートする際に、エクスポート形式(第4引数:OutputFormat)を 7 の「ブロックフォーマット/Cachéブロックフォーマット(%GOF)」にした場合、マッピングされたグローバルはエクスポートできない仕様となっています(対象はネームスペースのデフォルトグローバルデータベースのグローバルのみ)。

マッピングされたグローバルを「ブロックフォーマット/Cachéブロックフォーマット(%GOF)」でエクスポートする為には、%Library.Global.Export()の第1パラメータにマッピング先のデータベースディレクトリを指定します。

実行例は以下の通りです。 

 set DB = "^^c:\InterSystems\Cache\Mgr\Test\"  ; "^^\<データベースフォルダーのパス>\"
 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)」でエクスポートする必要があります。

ディスカッション (0)1
続けるにはログインするか新規登録を行ってください