4Dストラクチャが壊れてしまったときの対処方法

テーブルジェネレータやフォームジェネレータを作っている時の話。エクセルで編集したフィールド定義に従って、テーブルや関連メソッド、関連フォームまで自動生成してしまおう、という構想だ。そもそもこういう使い方は4D社の想定範囲外らしく、何が起こっても自己責任、ということは承知で始めた。開発の途中では、試行錯誤のSQL文を実行したり、生成しきれていないフォーム(.4DForm)を開こうとしたり、ということは日常茶飯事だ。そこで事故が起きる。

この事故は発生したときにはわからない。ストラクチャーファイルを開き直したときに、次のようなメッセージが表示されることで気づく。

プロジェクトモードではソースはすべてテキストファイルで保存されているため、以前バイナリモードのときのようにストラクチャファイルが壊れる、ということはないはず。なのに、不条理なSQL文を実行したり、ファイルフォーマットが間違っているフォームを作ったりしていると、壊れた状態になることがあるようだ。ソースやフォームはテキストファイルなので、それらを開いてみるとソースが消えてはいないが、プロジェクトファイルを開いてエクスプローラで見るとメソッドが一覧に表示されない、のであせる。

これへの対処方法がカタログファイルの再作成。やってみたらうまくいったので備忘録としてここに記す。実績はv20。

手順:

壊れたストラクチャ(A)を閉じてから以下の手順を実行。

1.4D v20を起動

2.新規プロジェクトを作成

catalog.4dcatalogができる。これを(B)とする。

3.壊れたプロジェクトのcatalog.4dcatalogを(B)に差し替える

4.Option-Keyを押しながら(A)を4D V20で開く

データファイルを選択するダイアログが表示される。

5.新規データファイルを選択

これでエクスプローラを開くと、メソッド一覧が表示される。

新規データファイルはそのまま使ってもいいし、元のデータファイルに戻してもいい。