前置き
Pleasanterの使い方の話がメインです。
最後におまけスクリプトあり。
そのルールとは
「1レコードに記載するのは1テーマのみ」
ごくごく当たり前のことです。具体的どういうことか。
コメントの使い方
複数人が同じレコードで情報を共有し、問題を解決するような場合、コメント欄でいろいろコミュニケーションを進めることがあると思います。このコメント欄、何でもかんでも、チャットみたいにやり取りしちゃっていませんか?
コメントが大量に記載されてしまうことの弊害
Pleasanterには検索機能があります。が、コメントが大量にあると、どこに検索ワードが存在するか、検索結果から該当箇所を見つけるのが大変です。
また、往々にしてこういったレコードには、課題の結論・状況が記載されていないことが多いです。すると、後から見たときに、どんな結論になったのか?そもそもまだ解決していないのか?がわからなくなります。
コメントの流れから結論を追っかけるのは大変です
よくある、コメントが大量に記載されてしまうパターン
課題管理テーブルでのやり取りの例。課題解決後、関連する課題についても議論
例えばこんな流れ..
- 課題管理に課題を起票
- 課題に対する情報交換をコメント欄で実施
- その後、課題は解決、ただし追加でさらなる課題発生
- そのままコメント欄で追加課題について議論・・
→ 「関連する話題なのですが、xxxについてはどうしましょう??」 なんて続いてしまうケース
どのような結論となったのか。残タスクはあるのか?その残タスクの状況は?など、コメント欄だけで議論を進めてしまうと、後から状況を把握することが難しくなります。
じゃあ、どうするか
ということで、冒頭のルールです。
「1レコードに記載するのは1テーマのみ。」
前述の例をもとに、どう使うかの具体例を考えてみます。
課題管理の例
- 課題管理に課題を起票 。
- 課題に対する情報交換をコメント欄で実施。
- その後、課題は解決、ただし追加でさらなる課題発生。
- 新たな課題を、別レコードに起票。もともとのレコードは課題解決済としクローズする。
さらに、コメント欄でのやり取りだけではなく、課題の結論、状況(完了済)をテーブルの項目に記載したほうがよいでしょう。
まとめ
大量に記載されたコメントの流れを追っかけるのって、本当に大変なんです(読む気になれない)。
あとから、あの時こういう結論だったよね?というのを追いかけて探しても、探しきれないことも。テーブルの本来の目的を理解した上で、より効率的なコミュニケーションをとるようにしたいですね。(してくださいお願いします)
おまけ
Pleasanterのコメントが検索しにくいなら、別レコードで管理すればいいじゃん、ということで、レコードのコメントを取得・分解してリンクしている子テーブルに登録するスクリプトを作ってみました。
コメントを普通に書き込むテーブル(親)
親テーブルの詳細画面 コメント分割イメージ
分割したコメントを登録するテーブル(子)
→項目「親テーブル」にコメント分割元のテーブルをリンクします。
サンプルコード
処理概要
- 親テーブルの情報を$p.apiGetで取得
- コメントがJSONの配列形式となっているのでパース
- パースしたコメントを分割先の子テーブルに$p.apiCreateで登録
※実際に使用する場合は、functionをプロセス機能などから呼び出してください。
※サンプルではCreateしかしないので、細かい処理は適宜調整してください。
function DisassemblyComments(){
//分割元のデータを$p.apiGet取得します。
//親サイトIDを指定してください(当サンプルコードは記録テーブル想定、サイト全体のコメント取得・分割をします。)。
//必要であれば、レコード単位で実施するなど調整してください。
$p.apiGet({
'id': XXXXX(親サイトID),
'data':{
'View':{
'ApiDataType': 'KeyValues',
'ApiColumnKeyDisplayType': "ColumnName",
'GridColumns': ["ResultId","Comments"]
}
},
'done': function (data) {
//取得したデータ分繰り返し
for (let val of data.Response.Data) {
if(val.Comments != null){
//取得したコメントをJsonパース
var comentsObj = JSON.parse(val.Comments);
//jsonの配列で取得したコメントを1件ずつ処理
for (let comment of comentsObj) {
//分割コメントを子サイトへ$p.apiCreateで登録します
//Body→コメント本文を設定
//ClassA→親サイトとのリンク項目、登録元のレコードID(ResultId)を設定
//ClassB→分割したコメントのIDを設定
//ClassC→コメント作成者のIDを設定
//DataA→コメント作成日を設定
$p.apiCreate({
id: XXXXX(子サイトID),
data: {
ApiVersion: 1.1,
Body: comment.Body,
ClassHash: {
ClassA: val.ResultId,
ClassB: comment.CommentId,
ClassC: comment.Creator
},
DateHash: {
DateA: comment.CreatedTime
}
},
done: function (data) {
console.log(data);
},
fail: function (data) {
console.log(data);
}
});
}
}
}
},
fail: function (data) {
console.log(data);
}
});
}