systemFields.js•5.28 kB
// src/server/tools/documentation/systemFields.js
/**
* システムフィールドのドキュメントを取得する関数
* @returns {string} ドキュメント文字列
*/
export function getSystemFieldDocumentation() {
return `
# kintoneシステムフィールドの仕様
## 概要
kintoneアプリを作成すると、以下の5つのシステムフィールドが自動的に作成されます。これらのフィールドはkintoneによって管理され、ユーザーが同じフィールドコードを持つフィールドを追加することはできません。
1. レコード番号(RECORD_NUMBER)
2. 作成者(CREATOR)
3. 更新者(MODIFIER)
4. 作成日時(CREATED_TIME)
5. 更新日時(UPDATED_TIME)
これらのフィールドはデフォルトではフォームレイアウトに表示されませんが、レイアウトに追加して表示することができます。
## システムフィールドの詳細
### レコード番号(RECORD_NUMBER)
- **説明**: 各レコードに自動的に割り当てられる一意の番号
- **特性**:
- 自動採番される
- 編集不可
- 削除不可
- 一意性が保証される
- **表示形式**: テキスト(例: "1", "2", "3")または指定した採番ルールに従った形式
- **用途**: レコードの識別、参照
### 作成者(CREATOR)
- **説明**: レコードを作成したユーザー
- **特性**:
- レコード作成時に自動的に設定される
- 編集不可(管理者権限でも変更できない)
- 削除不可
- **表示形式**: ユーザー情報(名前、アイコン)
- **用途**: 監査証跡、ワークフロー、アクセス制御
### 更新者(MODIFIER)
- **説明**: レコードを最後に更新したユーザー
- **特性**:
- レコード更新時に自動的に更新される
- 編集不可(管理者権限でも変更できない)
- 削除不可
- **表示形式**: ユーザー情報(名前、アイコン)
- **用途**: 監査証跡、変更履歴の追跡
### 作成日時(CREATED_TIME)
- **説明**: レコードが作成された日時
- **特性**:
- レコード作成時に自動的に設定される
- 編集不可(管理者権限でも変更できない)
- 削除不可
- タイムゾーン対応
- **表示形式**: 日時(例: "2023-01-31T09:30:00Z")
- **用途**: 監査証跡、時系列分析、期限管理
### 更新日時(UPDATED_TIME)
- **説明**: レコードが最後に更新された日時
- **特性**:
- レコード更新時に自動的に更新される
- 編集不可(管理者権限でも変更できない)
- 削除不可
- タイムゾーン対応
- **表示形式**: 日時(例: "2023-01-31T09:30:00Z")
- **用途**: 監査証跡、変更履歴の追跡、最新性の確認
## システムフィールドの制約事項
1. **フィールドコードの重複不可**:
- システムフィールドと同じフィールドコード(RECORD_NUMBER, CREATOR, MODIFIER, CREATED_TIME, UPDATED_TIME)を持つフィールドを追加することはできません。
2. **編集・削除の制限**:
- システムフィールドは編集や削除ができません。
- APIを使用しても変更することはできません。
3. **レイアウト上の制約**:
- デフォルトではフォームレイアウトに表示されませんが、レイアウトに追加することができます。
- レイアウトに追加しても、読み取り専用として表示されます。
## 代替フィールドの作成例
システムフィールドと同様の目的を持つカスタムフィールドを作成したい場合は、以下のような代替方法があります:
### レコード番号の代替
\`\`\`json
{
"type": "SINGLE_LINE_TEXT",
"code": "management_number",
"label": "管理番号",
"noLabel": false,
"required": false,
"unique": true
}
\`\`\`
### 作成者の代替
\`\`\`json
{
"type": "USER_SELECT",
"code": "applicant",
"label": "申請者",
"noLabel": false,
"required": true
}
\`\`\`
### 更新者の代替
\`\`\`json
{
"type": "USER_SELECT",
"code": "approver",
"label": "承認者",
"noLabel": false,
"required": false
}
\`\`\`
### 作成日時の代替
\`\`\`json
{
"type": "DATETIME",
"code": "application_datetime",
"label": "申請日時",
"noLabel": false,
"required": true,
"defaultNowValue": true
}
\`\`\`
### 更新日時の代替
\`\`\`json
{
"type": "DATETIME",
"code": "approval_datetime",
"label": "承認日時",
"noLabel": false,
"required": false
}
\`\`\`
## 注意事項
1. システムフィールドは自動的に管理されるため、ビジネスロジックに依存する場合は注意が必要です。
2. 代替フィールドを作成する場合、自動更新されないため、必要に応じてプロセス管理やカスタマイズで値を設定する必要があります。
3. システムフィールドは検索や条件付き書式設定、プロセス管理の条件などで利用できます。
4. APIを使用してレコードを取得する場合、システムフィールドの値も取得できます。
`;
}