テンプレートの使い方自体についてはこちらの記事を参照。
便利な機能ではあるのだが、テンプレートを使い始めてみると、必ずしもすべての項目がテンプレート化できるわけではないことに気づく。
例えばナレッジのテンプレートを作ろうとしても、↓の様にKnowledge Baseはそもそもテンプレート化対象の項目として指定できないのだ。
これにはセキュリティにかかわる設定を変更する必要がある。
まずは右上のメニューからElevate Rolesでsecurity adminに昇格する。
項目毎のKnowledge化可否はACLで設定されているようなのでフィルタナビゲータへACLと入力し、System Security -> Access Control(ACL)を表示させる。
answer = true;var col = root_rule.split('.')[1];var excluded = ["number","kb_knowledge_base","topic","workflow_state","kb_category","category","disable_commenting","disable_suggesting","author"];if (col.indexOf('sys_') > -1 || excluded.indexOf(col) > -1)answer = false;answer = answer && (gs.hasRole("knowledge_admin") || gs.hasRole("knowledge_manager") || new KBKnowledge().canCreate());
var excluded の中にしっかりkb_knowledge_baseと入っているので、このおかげでKnowledge baseがテンプレート化できないのだろう。
次のように変更(「,"kb_knowledge_base"」を削除)してみる(実用上はkb_categoryとcategoryも消してしまっても良い気がするが・・・)。
answer = true;var col = root_rule.split('.')[1];var excluded = ["number","topic","workflow_state","kb_category","category","disable_commenting","disable_suggesting","author"];if (col.indexOf('sys_') > -1 || excluded.indexOf(col) > -1)answer = false;answer = answer && (gs.hasRole("knowledge_admin") || gs.hasRole("knowledge_manager") || new KBKnowledge().canCreate());
この状態でアップデートを掛ける。
ちゃんとKnowledge baseもテンプレートとして指定・保存が可能になった。
デフォルトでKnowledge baseがテンプレート化できないようになっている意図は正直推し量れない。個人的にはナレッジベース単位で記載ルールを変えたりすることも十分あるし、ナレッジベース単位で管理者が違ったりということも想定しやすいので、ナレッジベースやカテゴリまではむしろテンプレート化できた方が良いと考える。
ただ、虫眼鏡マークの参照項目なので、変な入力をされると危険、みたいな判断が働いているのかもしれない。このあたりの事情をよくご存知の方がいたら是非教えを請いたい。
0 件のコメント:
コメントを投稿