一.概要
ツリーデータセットは主に部署間の関係を構築するために使用され、各部署は元のマークフィールドと親マークフィールドを提供する必要があり、バックエンドは同期する時にその2つのフィールドに基づいてツリー構造を構築します。
しかし、デザイナーのバージョンを更新するときに、ツリーデータセット同期が失敗することがあります。主に、ツリーデータセットの構成が間違っているか、それ自体が完全なツリー構造ではないからです。
いくつかの比較的完全なツリー構造を挙げて、ツリーデータセットを構築する際の注意事項を説明します。
二.ツリー構造と注意事項
1.ツリー構造(タイプ1)
1.1.データシート

1.2.ツリーデータセット

上は完全なツリーデータセットで、部署IDを元のマークフィールドとし、上級IDを親マークフィールドとする。
例示:
2行目は人事部の元のマークが11で、その親部署が部署1であることを意味します(このマークに基づいて親部署が本社であることがわかります)。
最初の行は本部のマークが1で、親マークが空であることから、それが最高部署で、親部署がないことがわかります。通常、部署に親部署がない場合、親部署は空です。
このデータセットをトラバースすると、すべての部署情報、役職情報を得ることができます。上司IDに基づいて、部門IDという列で対応する部署名を探すことで、親部署を構築することができます。
1.3.注意事項
注意が必要なのは、上司IDに現れるマーク(空を除く)は、部門IDに対応するマークを見つけなければなりません。ご覧のように、上の図のすべての上司IDが部門IDに対応する値を見つけることができます。
下図のような状況になった場合、上級IDは2であるが、部署IDに2である部署情報が見つからないため、上級IDが2である部署情報を構築することができません。それで、ツリーが不完全であると考えられ、同期データセットの同期動作が直接返され、同期動作が行われません。

それで、ログには、次のようなエラーが報告されます
上司ID 2 has no corresponding deparment!
マーク2に対応する部署が見つからないという意味です。
2.ツリー構造(タイプ2)
2.1.データシート

2.2.ツリーデータセット

部門名称と上司名称でツリーを構築します。マークフィールドは部署の直接の階層関係をマークするためだけで、業務処理には関与しません。
その中で上司名称のマークフィールドも部門名称の中で対応する部署を見つけることが必要で、見つからなければ、即時に同期が失敗になります。
2.3.注意事項
注意事項は前項と同じです。上司名称に出てきたマーク(空を除く)は、全て部門名称のマークに対応しければならなりません。そうでなければ、ツリーは不完全だと判断され、同期データセットの同期動作は直接返され、同期操作が行われません。
3.ツリー構造(タイプ3)
3.1.データシート

3.2.ツリーデータセット

部門IDと上級IDを使ってマークするにも、上級ID列の部門IDで見つけられることを保証する必要があり、そうでなければ同期が拒否されます。
部門IDと上級IDに基づいてツリーを構築します。
3.3.注意事項
ツリーデータセットが正しいための条件:
親タグフィールドに表示される値(空を除く)は、元のタグフィールドに対応する値を見つけることができます。
元のマークフィールドが同じ行なら、その部署名と親マークの2列も同じでなければなりません。
親マークと部署名が同じ行なら、元のマーク列は同じでなければなりません。
下図のような状況の場合、エラーが発生します
1.エラー情報は次のとおりです
One 部門ID 14 has more than one 上司ID 1, 11
特定された部署には2つの親部署があり、明らかにツリー構造ではありません。
部署のマークが同じになると、部署が確定され、上司IDと部門IDは同じでなければなりません。
次の図では人事部と財務部の部署マークは同じですが、親部署は違っています。明らかにデータが間違っていて、修正すれば成功になります。

2.エラー情報は次のとおりです
Table data synchronization failed! Tree mark f consists of two department name 営業部, 企画部!
下図のように、福岡支店の上位名称が同じでなければなりません。異なれば、構築が失敗になります。

3.エラー情報は次のとおりです
社員 lyon and loy have the same department name and parent department, but 部門ID is not the same
親部署が確定した場合、部署名称が唯一で、部署マークも唯一です。上図は部署マークが唯一ではないことを示しています。
部署名は同じで、例えば営業部には性能グループと呼ばれるグループがあり、研究開発部にも性能グループと呼ばれるグループがあるとします。
しかし、親部署が確定した場合、部署名は重複できません。
例えば、lyonとloyがいる部署は開発部で、親部署のマークは1で、二人が同じ部署にいることを示しています。そうしたら、部署のマークは同じであるべきで、上図の部門のIDが違うと、エラーが報告され、同期が拒否されます。つまり、親部署が確定した場合、部署名によって唯一の部署を確定することができます。

4.実際には、互いに上級と下級の状況で、この構造やデータは時にフラットスタイル管理を実施している会社に現れることがあります。つまり、A部署はB部署の上級で、またB部署はA部署の上級で、このような二つの部署は組織が同期している時に失敗することがあります。
三.その他
元のマークフィールドと親マークフィールドには0、,0000000のようなフィールドは表示されません。これらのマークはプログラムの保留フィールドである0に解析され、0はすべての部署のIDとして保留されているので、できるだけ避けてください。
ツリー構造を構築するとき、ある部署に親部署がなければ、親部署は書かないで、空にしてください。
また、デザイナーがアップグレードする前に必ずJARパッケージファイルをバックアップしてください。