@things-factory/dataset 8.0.0-alpha.3 → 8.0.0-alpha.31

Sign up to get free protection for your applications and to get access to all the features.
Files changed (102) hide show
  1. package/client/activities/activity-data-collect-edit.ts +3 -1
  2. package/client/activities/activity-ooc-resolve-edit.ts +5 -3
  3. package/client/activities/activity-ooc-review-edit.ts +5 -3
  4. package/client/bootstrap.ts +11 -1
  5. package/client/components/data-entry-form.ts +3 -3
  6. package/client/pages/data-entry/data-entry-list-page.ts +72 -12
  7. package/client/pages/data-report/data-report-list-page.ts +9 -2
  8. package/client/pages/data-sensor/data-sensor-list-page.ts +1 -1
  9. package/client/pages/data-set/data-item-list.ts +1 -1
  10. package/client/pages/data-set/data-set-list-page.ts +29 -17
  11. package/dist-client/activities/activity-data-collect-edit.d.ts +1 -1
  12. package/dist-client/activities/activity-data-collect-edit.js +2 -1
  13. package/dist-client/activities/activity-data-collect-edit.js.map +1 -1
  14. package/dist-client/activities/activity-ooc-resolve-edit.js +5 -3
  15. package/dist-client/activities/activity-ooc-resolve-edit.js.map +1 -1
  16. package/dist-client/activities/activity-ooc-review-edit.js +5 -3
  17. package/dist-client/activities/activity-ooc-review-edit.js.map +1 -1
  18. package/dist-client/bootstrap.js +4 -0
  19. package/dist-client/bootstrap.js.map +1 -1
  20. package/dist-client/components/data-entry-form.js +3 -3
  21. package/dist-client/components/data-entry-form.js.map +1 -1
  22. package/dist-client/pages/data-entry/data-entry-list-page.js +68 -10
  23. package/dist-client/pages/data-entry/data-entry-list-page.js.map +1 -1
  24. package/dist-client/pages/data-report/data-report-list-page.js +8 -2
  25. package/dist-client/pages/data-report/data-report-list-page.js.map +1 -1
  26. package/dist-client/pages/data-sensor/data-sensor-list-page.js +1 -1
  27. package/dist-client/pages/data-sensor/data-sensor-list-page.js.map +1 -1
  28. package/dist-client/pages/data-set/data-item-list.js +1 -1
  29. package/dist-client/pages/data-set/data-item-list.js.map +1 -1
  30. package/dist-client/pages/data-set/data-set-list-page.js +29 -17
  31. package/dist-client/pages/data-set/data-set-list-page.js.map +1 -1
  32. package/dist-client/tsconfig.tsbuildinfo +1 -1
  33. package/dist-server/activities/activity-data-collect.js.map +1 -1
  34. package/dist-server/activities/activity-ooc-review.js +12 -4
  35. package/dist-server/activities/activity-ooc-review.js.map +1 -1
  36. package/dist-server/controllers/create-data-sample.js +16 -10
  37. package/dist-server/controllers/create-data-sample.js.map +1 -1
  38. package/dist-server/controllers/issue-data-collection-task.d.ts +2 -0
  39. package/dist-server/controllers/{issue-collect-data.js → issue-data-collection-task.js} +13 -9
  40. package/dist-server/controllers/issue-data-collection-task.js.map +1 -0
  41. package/dist-server/engine/task/issue-collect-data.js +2 -2
  42. package/dist-server/engine/task/issue-collect-data.js.map +1 -1
  43. package/dist-server/routes.js +5 -3
  44. package/dist-server/routes.js.map +1 -1
  45. package/dist-server/service/data-ooc/data-ooc-query.js +1 -1
  46. package/dist-server/service/data-ooc/data-ooc-query.js.map +1 -1
  47. package/dist-server/service/data-ooc/data-ooc.js +12 -3
  48. package/dist-server/service/data-ooc/data-ooc.js.map +1 -1
  49. package/dist-server/service/data-sample/data-sample-query.js +1 -1
  50. package/dist-server/service/data-sample/data-sample-query.js.map +1 -1
  51. package/dist-server/service/data-sample/data-sample.js +4 -1
  52. package/dist-server/service/data-sample/data-sample.js.map +1 -1
  53. package/dist-server/service/data-set/data-set-mutation.d.ts +1 -0
  54. package/dist-server/service/data-set/data-set-mutation.js +48 -45
  55. package/dist-server/service/data-set/data-set-mutation.js.map +1 -1
  56. package/dist-server/service/data-set/data-set-query.d.ts +3 -0
  57. package/dist-server/service/data-set/data-set-query.js +104 -29
  58. package/dist-server/service/data-set/data-set-query.js.map +1 -1
  59. package/dist-server/service/data-set/data-set-type.d.ts +2 -3
  60. package/dist-server/service/data-set/data-set-type.js +6 -6
  61. package/dist-server/service/data-set/data-set-type.js.map +1 -1
  62. package/dist-server/service/data-set/data-set.d.ts +2 -0
  63. package/dist-server/service/data-set/data-set.js +12 -0
  64. package/dist-server/service/data-set/data-set.js.map +1 -1
  65. package/dist-server/service/data-set-history/data-set-history.js +7 -2
  66. package/dist-server/service/data-set-history/data-set-history.js.map +1 -1
  67. package/dist-server/service/data-summary/data-summary-query.js +1 -1
  68. package/dist-server/service/data-summary/data-summary-query.js.map +1 -1
  69. package/dist-server/tsconfig.tsbuildinfo +1 -1
  70. package/helps/dataset/data-set.ja.md +55 -59
  71. package/helps/dataset/data-set.ko.md +9 -11
  72. package/helps/dataset/data-set.md +20 -24
  73. package/helps/dataset/data-set.zh.md +3 -11
  74. package/helps/dataset/task/issue-collect-data.ja.md +1 -1
  75. package/helps/dataset/task/issue-collect-data.ko.md +1 -1
  76. package/helps/dataset/task/issue-collect-data.md +1 -1
  77. package/helps/dataset/task/issue-collect-data.ms.md +1 -1
  78. package/helps/dataset/task/issue-collect-data.zh.md +1 -1
  79. package/package.json +13 -13
  80. package/server/activities/activity-data-collect.ts +11 -2
  81. package/server/activities/activity-ooc-review.ts +28 -7
  82. package/server/controllers/create-data-sample.ts +16 -10
  83. package/server/controllers/{issue-collect-data.ts → issue-data-collection-task.ts} +13 -7
  84. package/server/engine/task/issue-collect-data.ts +2 -2
  85. package/server/routes.ts +5 -3
  86. package/server/service/data-ooc/data-ooc-query.ts +1 -1
  87. package/server/service/data-ooc/data-ooc.ts +12 -3
  88. package/server/service/data-sample/data-sample-query.ts +1 -1
  89. package/server/service/data-sample/data-sample.ts +4 -1
  90. package/server/service/data-set/data-set-mutation.ts +44 -49
  91. package/server/service/data-set/data-set-query.ts +98 -30
  92. package/server/service/data-set/data-set-type.ts +4 -4
  93. package/server/service/data-set/data-set.ts +10 -0
  94. package/server/service/data-set-history/data-set-history.ts +8 -2
  95. package/server/service/data-summary/data-summary-query.ts +1 -1
  96. package/translations/en.json +2 -0
  97. package/translations/ja.json +2 -0
  98. package/translations/ko.json +2 -0
  99. package/translations/ms.json +2 -0
  100. package/translations/zh.json +2 -0
  101. package/dist-server/controllers/issue-collect-data.d.ts +0 -2
  102. package/dist-server/controllers/issue-collect-data.js.map +0 -1
@@ -1,110 +1,106 @@
1
- # 데이터셋 (データセット)
1
+ # 数据集 (DataSet)
2
2
 
3
3
  ![DataSample Process][datasample-process]
4
4
 
5
- データセットはさまざまな設定と情報を通じて定義されます。以下では、データセットに関連する各フィールドと設定オプションについての詳細な説明を提供します。
5
+ 数据集通过各种设置和信息来定义。以下是关于数据集及其相关字段和设置选项的详细说明。
6
6
 
7
- - **名前 (name)**: データセットの名前を設定します。この名前はデータセットを固有に識別するために使用されます。
7
+ - **名称 (name)**: 设置数据集的名称。该名称用于唯一标识数据集。
8
8
 
9
- - **説明 (description)**: データセットについての説明を設定します。データセットの目的、内容、または特徴を説明するために使用されます。
9
+ - **描述 (description)**: 设置有关数据集的描述。用于说明数据集的目的、内容或特征。
10
10
 
11
- - **タイプ (type)**: データセットのタイプを設定します。2 つのオプションのうち一つを選択できます。
11
+ - **类型 (type)**: 设置数据集的类型。可以选择以下两个选项之一:
12
12
 
13
- - **手動収集 (Manual)**: ユーザーが直接データを入力するデータセットを表します。
14
- - **自動収集 (Automatic)**: センサーなどの自動化された方法を通じてデータが収集されるデータセットを表します。
13
+ - **手动收集 (Manual)**: 表示用户直接输入数据的数据集。
14
+ - **自动收集 (Automatic)**: 表示通过自动化方法,如传感器,收集数据的数据集。
15
15
 
16
- - **データキーセット (dataKeySet)**: データキーセットマスターページで登録した項目を選択して適用します。データキーセットはデータセットで使用されるデータフィールドおよび属性を定義します。
16
+ - **数据键集 (dataKeySet)**: 在数据键集主页面注册的项目应用于数据集。数据键集定义了数据集中使用的数据字段和属性。
17
17
 
18
- - **パーティションキー (partitionKeys)**: データを分割し構成するために使用されるパーティションキーを設定します。パーティションキーはデータを論理的にグループ化し保存し、データを管理し検索するための効率性を提供します。パーティションキーを活用することでデータを迅速にフィルタリングしクエリできます。
18
+ - **分区键 (partitionKeys)**: 设置用于分割和组织数据的分区键。分区键逻辑上对数据进行分组和存储,并提高数据管理和检索的效率。通过使用分区键,可以快速过滤和查询数据。
19
19
 
20
- - **スケジュール (schedule)**: データ入力周期を設定します。入力周期が設定されると、その周期ごとにデータ入力作業が実行されます。
20
+ - **计划 (schedule)**: 设置数据输入周期。设置周期后,将根据该周期执行数据输入作业。
21
21
 
22
- - **タイムゾーン (timezone)**: スケジュールが適用される基準タイムゾーンを設定します。時間帯変換と関連する作業に使用されます。
22
+ - **时区 (timezone)**: 设置计划应用的基准时区。用于相关时间转换工作。
23
23
 
24
- - **通常データシナリオ (normalScenario)**:通常データが生成された時に開始されるシナリオを設定します。データの後続処理が必要な場合に使用されます。
24
+ - **正常数据场景 (normalScenario)**: 当生成正常数据时,设置启动的场景。在需要数据后续处理的情况下使用。
25
25
 
26
- - **異常値シナリオ (outlierScenario)**:通常範囲を超えるデータが生成された時に開始されるシナリオを設定します。データの後続処理が必要な場合に使用されます。
26
+ - **异常数据场景 (outlierScenario)**: 当生成超出正常范围的数据时,设置启动的场景。在需要数据后续处理的情况下使用。
27
27
 
28
- - **レビュー必要性 (requiresReview)**:データのレビューが必要かどうかを設定します。設定されると、管理者のレビューとレビュー承認プロセスが自動的に開始されます。
28
+ - **审查批准线 (reviewApprovalLine)**: 当生成正常数据时,设置数据审查过程中的批准线。仅在需要审查工作时适用。
29
29
 
30
- - **レビュー承認ライン (reviewApprovalLine)**:通常データが生成された時、データレビュープロセスの承認ラインを設定します。レビュー作業が必要な場合のみ適用されます。
30
+ - **异常数据批准线 (outlierApprovalLine)**: 当生成超出正常范围的数据时,设置数据处理过程中的批准线。
31
31
 
32
- - **異常値承認ライン (outlierApprovalLine)**:通常範囲を超えるデータが生成された時、データ対応プロセスの承認ラインを設定します。
32
+ - **管理员角色 (supervisoryRole)**: 设置数据集的管理员角色。管理员负责审查收集的数据和异常数据。他们还拥有分配数据收集任务的权限。
33
33
 
34
- - **管理者役割 (supervisoryRole)**: データセットの管理者役割を設定します。管理者はデータセットに対する権限と責任を持ちます。
34
+ - **输入负责角色 (entryRole)**: 设置拥有输入权限的角色。表示执行数据输入工作的角色。
35
35
 
36
- - **入力担当役割 (entryRole)**: 入力権限を持つ役割を設定します。データ入力作業を行う役割を表します。
36
+ - **分配者 (assignees)**: 设置负责处理数据收集任务的人员。
37
37
 
38
- - **入力用画面の種類 (entryType)**: 入力画面の種類を設定します。次のオプションの中から一つを選択できます。
38
+ - **审查批准线 (reviewApprovalLine)**: 设置用于验证数据收集结果的批准线。
39
39
 
40
- - **Generated**: 実装された画面を自動的に使用します。
41
- - **Board**: Board 画面を使用します。
42
- - **Page**: 実装されたページに移動します。サブ URL(suburl)が必要です。
43
- - **External URL**: 外部ページに移動します。完全な URL が必要です。
40
+ - **异常数据批准线 (outlierApprovalLine)**: 设置用于处理异常数据的批准线。
44
41
 
45
- - **入力用画面 (entryView)**: 入力画面の種類に応じて値を設定します。Board 画面の種類を選択する場合、対応する値を設定できます。
42
+ - **审查必要性 (requiresReview)**: 设置是否需要数据审查。设置后,管理员的审查和审查批准流程将自动开始。
46
43
 
47
- - **モニター用画面の種類 (monitorType)**: モニター用画面の種類を設定します。入力画面
44
+ - **输入画面类型 (entryType)**: 设置输入画面的类型。可以选择以下选项之一:
48
45
 
49
- の種類と同じオプションを提供します。
46
+ - **Generated**: 自动使用已实现的画面。
47
+ - **Board**: 使用 Board 画面。
48
+ - **Page**: 移至已实现的页面。需要子 URL(suburl)。
49
+ - **External URL**: 移至外部页面。需要完整的 URL。
50
50
 
51
- - **モニター用画面 (monitorView)**: モニター用画面の種類に該当する値を設定します。
51
+ - **输入画面 (entryView)**: 根据输入画面的类型设置值。如果选择 Board 画面类型,可以设置相应的值。
52
52
 
53
- - **レポート用画面の種類 (reportType)**: レポート用画面の種類を設定します。入力画面の種類と部分的に共有するオプションを提供します。
53
+ - **监控画面类型 (monitorType)**: 设置监控画面的类型。提供与输入画面类型相同的选项。
54
54
 
55
- - **Jasper**: Jasper サーバー設定に従い Jasper レポートページをレンダリングし、報告書を生成します。
56
- - **Shiny**: Shiny サーバー設定に従い Shiny アプリケーションページをレンダリングし、報告書を生成します。
55
+ - **监控画面 (monitorView)**: 设置与监控画面类型相对应的值。
57
56
 
58
- - **レポート用画面 (reportView)**: レポート用画面の種類に合った値を設定します。Jasper や Shiny のような場合、該当サーバーで有効なサブ URL(suburl)が必要です。
57
+ - **报告画面类型 (reportType)**: 设置报告画面的类型。提供部分与输入画面类型共享的选项。
59
58
 
60
- - **レポート用テンプレート (reportTemplate)**: レポート用画面に必要なテンプレートファイルをアップロードします。
59
+ - **Jasper**: 根据 Jasper 服务器设置渲染 Jasper 报告页面并生成报告。
60
+ - **Shiny**: 根据 Shiny 服务器设置渲染 Shiny 应用程序页面并生成报告。
61
61
 
62
- - **担当者 (assignees)**: 異常データ処理承認線に対する問い合わせを受ける担当者を設定します。
62
+ - **报告画面 (reportView)**: 根据报告画面的类型设置值。对于 Jasper 或 Shiny,需要在相应服务器上有效的子 URL(suburl)。
63
63
 
64
- - **確認承認ライン (reviewApprovalLine)**: データセット確認のための承認ラインを設定します。
64
+ - **报告模板 (reportTemplate)**: 上传报告画面所需的模板文件。
65
65
 
66
- - **異常データ処理承認線 (outlierApprovalLine)**: 異常データ処理のための承認ラインを設定します。
66
+ - **使用案例 (useCase)**: 指示数据集的用途或目的。包括常见的使用案例选项,如 "QA," "CCP," "SPC"。
67
67
 
68
- - **使用事例 (useCase)**: データセットの用途や目的を示します。"QA," "CCP," "SPC"などの一般的な使用事例オプションを含みます。
68
+ - **数据项 (dataItems)**: 设置数据集的数据项。
69
69
 
70
- - **データ項目 (dataItems)**: データセットに関するデータ項目を設定します。
70
+ - **数据输入计划 (schedule)**: 设置数据输入周期。
71
71
 
72
- - **データ入力スケジュール (schedule)**: データ入力周期を設定します。
72
+ - **数据输入时区 (timezone)**: 设置与数据集输入相关的时区。
73
73
 
74
- - **データ入力タイムゾーン (timezone)**: データセットの入力に関連するタイムゾーンを設定します。
74
+ - **计划 ID (scheduleId)**: 设置数据集的计划 ID。
75
75
 
76
- - **レビュー必要性 (requiresReview)**: データセットがレビューが必要かどうかを示します。
76
+ - **摘要周期 (summaryPeriod)**: 设置摘要周期会自动在计划器中注册摘要作业。目前不考虑工作负载,不提供每周和每月周期摘要。周期选项包括 hour(每小时)、shift(每班次)、workdate(每工作日)和 daily(每日)。
77
77
 
78
- - **スケジュール ID (scheduleId)**: データセットのスケジュール ID を設定します。
78
+ - **下一摘要执行日期 (summarySchedule)**: 根据设置的摘要周期通知下一摘要执行日期。根据设置的周期执行摘要作业。
79
79
 
80
- - **サマリー周期 (summaryPeriod)**: サマリー周期を設定すると、自動的にスケジューラーにサマリー作業が登録されます。現在は週刊、月刊周期サマリーは作業負荷を考慮し提供していません。周期オプションには hour(毎時)、shift(毎作業班)、workdate(毎作業日)、daily(毎日)があります。
80
+ - **创建日期 (createdAt)**: 显示数据集创建的日期和时间。
81
81
 
82
- - **次のサマリー実行日時 (summarySchedule)**: 設定されたサマリー周期を基準に次のサマリー実行日時を知らせます。設定された周期に従いサマリー作業が実行されます。
82
+ - **最后更新日期 (updatedAt)**: 显示数据集最后更新的日期和时间。
83
83
 
84
- - **作成日 (createdAt)**: データセットが作成された日付と時間を示します。
84
+ - **创建者 (creator)**: 显示创建数据集的用户。
85
85
 
86
- - **最終更新日 (updatedAt)**: データセットが最後に更新された日付と時間を示します。
86
+ - **更新者 (updater)**: 显示最后更新数据集的用户。
87
87
 
88
- - **作成者 (creator)**: データセットを作成したユーザーを示します。
88
+ 这些设置和信息有助于定义数据集并使用它,有助于清晰理解数据集的目的和用途。
89
89
 
90
- - **更新者 (updater)**: データセットを最後に更新したユーザーを示します。
90
+ ## 分区键使用示例
91
91
 
92
- これらの設定と情報は、データセットの定義と使用に役立ち、データセットの目的と使用法を明確に理解するのに役立ちます。
92
+ **分区键使用示例 (Athena API):**
93
93
 
94
- ## パーティションキー (partitionKey) の使用例
94
+ Athena Amazon Web Services (AWS) 的查询服务之一,可以轻松查询和分析存储在 S3 中的数据。让我们看看如何使用分区键在 Athena 中快速搜索和过滤数据。
95
95
 
96
- **パーティションキーの使用例 (Athena API):**
96
+ 假设:
97
97
 
98
- Athena は、Amazon Web Services (AWS) のクエリサービスの一つで、S3 に保存されたデータを簡単にクエリし分析することができます。パーティションキーを使用して、Athena でデータを迅速に検索しフィルタリングする方法を見ていきましょう。
98
+ - 数据集存储每日订单数据。
99
+ - 分区键设置为 "日期 (Date)"。
99
100
 
100
- 仮定:
101
+ **Athena 查询示例:**
101
102
 
102
- - データセットは、日々の注文データを保存しています。
103
- - パーティションキーは「日付 (Date)」として設定されています。
104
-
105
- **Athena クエリ例:**
106
-
107
- 以下は、特定の日付の注文データを検索するために Athena を使用したクエリの例です。
103
+ 以下是使用 Athena 搜索特定日期的订单数据的查询示例。
108
104
 
109
105
  ```sql
110
106
  SELECT *
@@ -112,6 +108,6 @@ FROM "my_dataset"
112
108
  WHERE "partition_key" = '2023-12-01';
113
109
  ```
114
110
 
115
- このクエリは、「my_dataset」データセット内で「日付 (Date)」パーティションキーが '2023-12-01'であるすべての注文データを検索します。パーティションキーを使用すると、大規模なデータセットでも迅速に目的のデータを検索することができます。
111
+ 此查询搜索 "my_dataset" 数据集中 "日期" 分区键为 '2023-12-01' 的所有订单数据。使用分区键可以在大型数据集中快速检索所需的数据。
116
112
 
117
113
  [datasample-process]: ./images/datasample-process.png
@@ -25,16 +25,22 @@
25
25
 
26
26
  - **이상치 시나리오 (outlierScenario)**: 정상범위를 벗어난 데이타가 생성되었을 때, 시작되는 시나리오를 설정합니다. 데이타 후속 처리가 필요한 경우에 사용됩니다.
27
27
 
28
- - **검토 필요 여부 (requiresReview)**: 데이타 검토가 필요한 지 여부를 설정합니다. 설정되면 관리자의 검토와 검토 결재 프로세스가 자동 시작됩니다.
29
-
30
28
  - **검토 결재선 (reviewApprovalLine)**: 정상데이타가 생성되었을 때, 데이타 검토과정의 결재선을 설정합니다. 검토 작업이 필요한 경우에만 적용됩니다.
31
29
 
32
30
  - **이상치 결재선 (outlierApprovalLine)**: 정상범위를 벗어난 데이타가 생성되었을 때, 데이타 조치 과정의 결재선을 설정합니다.
33
31
 
34
- - **관리자 역할 (supervisoryRole)**: 데이터셋의 관리자 역할을 설정합니다. 관리자는 데이터셋에 대한 권한과 책임을 가집니다.
32
+ - **관리자 역할 (supervisoryRole)**: 데이터셋의 관리자 역할을 설정합니다. 관리자는 수집된 데이타의 검토와 이상치 데이타 검토를 담당한다. 또한, 데이타 수집 작업을 할당하는 권한을 가진다.
35
33
 
36
34
  - **입력 담당 역할 (entryRole)**: 입력 권한을 가진 역할을 설정합니다. 데이터 입력 작업을 수행하는 역할을 나타냅니다.
37
35
 
36
+ - **할당자 (assignees)**: 데이터 수집에 대한 작업을 받을 담당자를 설정합니다.
37
+
38
+ - **결재 라인 (reviewApprovalLine)**: 데이터 수집시 관리담당자의 검토 결과를 확인하는 승인 라인을 설정합니다.
39
+
40
+ - **이상치 결재 라인 (outlierApprovalLine)**: 이상치 데이터 처리를 위한 승인 라인을 설정합니다.
41
+
42
+ - **검토 요청 (requiresReview)**: 데이타 검토가 필요한 지 여부를 설정합니다. 설정되면 관리자의 검토와 검토 결재 프로세스가 자동 시작됩니다.
43
+
38
44
  - **입력용 화면 종류 (entryType)**: 입력 화면 종류를 설정합니다. 다음 옵션 중 하나를 선택할 수 있습니다.
39
45
 
40
46
  - **Generated**: 구현된 화면을 자동으로 사용합니다.
@@ -57,12 +63,6 @@
57
63
 
58
64
  - **리포트용 템플릿 (reportTemplate)**: 리포트용 화면에 필요한 템플릿 파일을 업로드합니다.
59
65
 
60
- - **할당자 (assignees)**: 이상치 데이터 처리 결재선에 대한 문의를 받을 담당자를 설정합니다.
61
-
62
- - **확인 승인 라인 (reviewApprovalLine)**: 데이터셋 확인을 위한 승인 라인을 설정합니다.
63
-
64
- - **이상치 데이타 처리 결재선 (outlierApprovalLine)**: 이상치 데이터 처리를 위한 승인 라인을 설정합니다.
65
-
66
66
  - **사용 사례 (useCase)**: 데이터셋의 용도나 목적을 나타냅니다. "QA," "CCP," "SPC"와 같은 공통 사용 사례 옵션을 포함합니다.
67
67
 
68
68
  - **데이터 항목 (dataItems)**: 데이터셋에 대한 데이터 항목을 설정합니다.
@@ -71,8 +71,6 @@
71
71
 
72
72
  - **데이터 입력 타임존 (timezone)**: 데이터셋의 입력과 관련된 타임존을 설정합니다.
73
73
 
74
- - **리뷰 필요 여부 (requiresReview)**: 데이터셋이 리뷰가 필요한지 여부를 나타냅니다.
75
-
76
74
  - **스케줄 ID (scheduleId)**: 데이터셋의 스케줄 ID를 설정합니다.
77
75
 
78
76
  - **서머리 주기 (summaryPeriod)**: 서머리 주기를 설정하면 자동으로 스케줄러에 서머리 작업이 등록됩니다. 현재는 주별, 월별 주기 서머리는 작업 부하를 고려하여 제공하지 않습니다. 주기 옵션으로는 hour(매시간), shift(매 작업조), workdate(매 작업일), daily(매일)이 있습니다.
@@ -25,30 +25,36 @@ DataSets are defined through various settings and information. Below is a detail
25
25
 
26
26
  - **Outlier Scenario (outlierScenario)**: Sets the scenario that starts when data exceeding the normal range is generated. Used when subsequent data processing is needed.
27
27
 
28
- - **Review Requirement (requiresReview)**: Sets whether data review is necessary. If set, the administrator's review and review approval process automatically begins.
29
-
30
28
  - **Review Approval Line (reviewApprovalLine)**: Sets the approval line for the data review process when normal data is generated. Only applies if review work is needed.
31
29
 
32
30
  - **Outlier Approval Line (outlierApprovalLine)**: Sets the approval line for the data action process when data exceeding the normal range is generated.
33
31
 
34
- - **Supervisory Role (supervisoryRole)**: Set the supervisory role for the DataSet. The supervisor has authority and responsibility for the DataSet.
32
+ - **Supervisory Role (supervisoryRole)**: Set the supervisory role for the DataSet. The supervisor is responsible for reviewing collected data and outlier data. They also have the authority to assign data collection tasks.
33
+
34
+ - **Entry Role (entryRole)**: Set the role with entry permissions. This role is responsible for performing data entry tasks.
35
+
36
+ - **Assignees (assignees)**: Set the person in charge of handling data collection tasks.
37
+
38
+ - **Review Approval Line (reviewApprovalLine)**: Set the approval line for verifying the data collection results by the supervisor.
39
+
40
+ - **Outlier Approval Line (outlierApprovalLine)**: Set the approval line for handling outlier data.
35
41
 
36
- - **Entry Role (entryRole)**: Set the role with input authority. Represents the role that performs data input tasks.
42
+ - **Requires Review (requiresReview)**: Set whether data review is necessary. If set, the administrator's review and review approval process automatically begins.
37
43
 
38
44
  - **Entry Type (entryType)**: Set the type of entry screen. You can choose one of the following options:
39
45
 
40
46
  - **Generated**: Automatically use the implemented screen.
41
47
  - **Board**: Use the Board screen.
42
- - **Page**: Move to the implemented page. A sub URL (suburl) is needed.
43
- - **External URL**: Move to an external page. A full URL is needed.
48
+ - **Page**: Move to the implemented page. A sub URL (suburl) is required.
49
+ - **External URL**: Move to an external page. A full URL is required.
44
50
 
45
- - **Entry View (entryView)**: Set the value according to the type of entry screen. If the Board screen type is selected, the corresponding value can be set.
51
+ - **Entry View (entryView)**: Set the value according to the type of entry screen. If the Board screen type is selected, set the corresponding value.
46
52
 
47
53
  - **Monitor Type (monitorType)**: Set the type of monitor screen. Provides the same options as the entry screen type.
48
54
 
49
- - **Monitor View (monitorView)**: Set the value according to the type of monitor screen.
55
+ - **Monitor View (monitorView)**: Set the value corresponding to the type of monitor screen.
50
56
 
51
- - **Report Type (reportType)**: Set the type of report screen. Partially shares options with the entry screen type.
57
+ - **Report Type (reportType)**: Set the type of report screen. Provides partially shared options with the entry screen type.
52
58
 
53
59
  - **Jasper**: Render a Jasper report page according to Jasper server settings to generate a report.
54
60
  - **Shiny**: Render a Shiny application page according to Shiny server settings to generate a report.
@@ -57,12 +63,6 @@ DataSets are defined through various settings and information. Below is a detail
57
63
 
58
64
  - **Report Template (reportTemplate)**: Upload the template file required for the report screen.
59
65
 
60
- - **Assignees (assignees)**: Set the person in charge of handling inquiries for the approval line for outlier data processing.
61
-
62
- - **Review Approval Line (reviewApprovalLine)**: Set the approval line for DataSet verification.
63
-
64
- - **Outlier Approval Line (outlierApprovalLine)**: Set the approval line for outlier data processing.
65
-
66
66
  - **Use Case (useCase)**: Indicates the purpose or use of the DataSet. Includes common use case options like "QA," "CCP," "SPC."
67
67
 
68
68
  - **Data Items (dataItems)**: Set the data items for the DataSet.
@@ -71,8 +71,6 @@ DataSets are defined through various settings and information. Below is a detail
71
71
 
72
72
  - **Data Entry Timezone (timezone)**: Set the timezone related to data entry for the DataSet.
73
73
 
74
- - **Requires Review (requiresReview)**: Indicates whether the DataSet requires a review.
75
-
76
74
  - **Schedule ID (scheduleId)**: Set the schedule ID for the DataSet.
77
75
 
78
76
  - **Summary Period (summaryPeriod)**: Setting a summary period automatically registers a summary task in the scheduler. Currently, weekly and monthly period summaries are not provided considering workload. Period options include hour (hour), shift (shift), workdate (workdate), and daily (daily).
@@ -89,22 +87,20 @@ DataSets are defined through various settings and information. Below is a detail
89
87
 
90
88
  These settings and information help define the DataSet and use it, aiding in a clear understanding of the DataSet's purpose and use.
91
89
 
92
- ## Partition Key Utilization Example (
93
-
94
- partitionKey)
90
+ ## Partition Key Utilization Example
95
91
 
96
92
  **Partition Key Utilization Example (Athena API):**
97
93
 
98
- Athena is one of Amazon Web Services (AWS)'s query services, which allows easy querying and analysis of data stored in S3. Let's look at how to use a partition key in Athena to quickly search and filter data.
94
+ Athena is one of Amazon Web Services (AWS) query services, which allows easy querying and analysis of data stored in S3. Let's look at how to use partition keys to quickly search and filter data in Athena.
99
95
 
100
96
  Assumptions:
101
97
 
102
98
  - The DataSet stores daily order data.
103
- - The partition key is set as "Date."
99
+ - The partition key is set to "Date."
104
100
 
105
101
  **Athena Query Example:**
106
102
 
107
- Here is an example of a query using Athena to retrieve order data for a specific date.
103
+ The following is an example query using Athena to search for order data on a specific date.
108
104
 
109
105
  ```sql
110
106
  SELECT *
@@ -112,6 +108,6 @@ FROM "my_dataset"
112
108
  WHERE "partition_key" = '2023-12-01';
113
109
  ```
114
110
 
115
- This query searches for all order data in the "my_dataset" DataSet where the "Date" partition key is '2023-12-01'. Utilizing the partition key allows for quick searching of desired data even in large data sets.
111
+ This query searches for all order data in the "my_dataset" DataSet where the partition key "Date" is '2023-12-01'. Using partition keys allows for quick retrieval of desired data even in large data sets.
116
112
 
117
113
  [datasample-process]: ./images/datasample-process.png
@@ -35,6 +35,8 @@
35
35
 
36
36
  - **输入负责角色 (entryRole)**:设置拥有输入权限的角色。表示执行数据输入工作的角色。
37
37
 
38
+ - **指派者 (assignees)**:设置负责处理数据收集任务的人员。
39
+
38
40
  - **输入用界面类型 (entryType)**:设置输入界面类型。可以选择以下选项之一:
39
41
 
40
42
  - **Generated**: 自动使用实现的界面。
@@ -57,12 +59,6 @@
57
59
 
58
60
  - **报告用模板 (reportTemplate)**:上传报告用界面所需的模板文件。
59
61
 
60
- - **指派者 (assignees)**:设置负责处理异常数据审批线的负责人。
61
-
62
- - **审批线 (reviewApprovalLine)**:设置数据集审批线。
63
-
64
- - **异常数据处理审批线 (outlierApprovalLine)**:设置异常数据处理的审批线。
65
-
66
62
  - **使用案例 (useCase)**:表示数据集的用途或目的。包括 "QA"、"CCP"、"SPC" 等常见用例选项。
67
63
 
68
64
  - **数据项 (dataItems)**:设置数据集的数据项。
@@ -71,13 +67,9 @@
71
67
 
72
68
  - **数据输入时区 (timezone)**:设置数据集输入相关的时区。
73
69
 
74
- - **审查需要性 (requiresReview)**:表示是否需要审查数据集。
75
-
76
70
  - **计划 ID (scheduleId)**:设置数据集的计划 ID。
77
71
 
78
- - **汇总周期 (summaryPeriod)**:设置汇总周期后,自动在调度器中注册汇总作业。目前,考虑到工作负载,不提供每周、每
79
-
80
- 月周期的汇总。周期选项包括小时(hour)、班次(shift)、工作日(workdate)、每日(daily)。
72
+ - **汇总周期 (summaryPeriod)**:设置汇总周期后,自动在调度器中注册汇总作业。目前,考虑到工作负载,不提供每周、每月周期的汇总。周期选项包括小时(hour)、班次(shift)、工作日(workdate)、每日(daily)。
81
73
 
82
74
  - **下次汇总执行时间 (summarySchedule)**:根据设定的汇总周期,通知下次汇总执行时间。根据设定周期执行汇总作业。
83
75
 
@@ -20,7 +20,7 @@
20
20
 
21
21
  ## 機能
22
22
 
23
- 実行時に、タスクはデータセット ID の存在を確認します。ID が提供されていない場合、タスクはデータセットが見つからないことを示すエラーを投げます。有効なデータセット ID が提供された場合、タスクはそのデータセットに特定のデータ収集活動を発行します。`issueCollectData` によって処理される基本的なプロセスには、データセットの存在の検証、データ収集環境の準備、およびデータセットの構成および関連するデータソースに従ってデータ収集プロセスを開始するなどの操作が含まれます。
23
+ 実行時に、タスクはデータセット ID の存在を確認します。ID が提供されていない場合、タスクはデータセットが見つからないことを示すエラーを投げます。有効なデータセット ID が提供された場合、タスクはそのデータセットに特定のデータ収集活動を発行します。`IssueCollectData` によって処理される基本的なプロセスには、データセットの存在の検証、データ収集環境の準備、およびデータセットの構成および関連するデータソースに従ってデータ収集プロセスを開始するなどの操作が含まれます。
24
24
 
25
25
  タスクは開始された活動のインスタンスを返し、これを使用して進行状況を追跡し、データ収集ワークフローを管理するか、収集したデータを処理するための後続のタスクと統合することができます。
26
26
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  ## 기능
19
19
 
20
- 실행 시, 작업은 데이터셋 ID의 존재를 확인합니다. ID가 제공되지 않으면, 데이터셋이 발견되지 않았다는 오류를 발생시킵니다. 유효한 데이터셋 ID가 제공되면, 작업은 해당 데이터셋에 특정한 데이터 수집 활동을 발행합니다. `issueCollectData`에 의해 처리되는 기본 프로세스는 데이터셋의 존재를 확인, 데이터 수집 환경 준비, 데이터셋의 구성 및 관련 데이터 소스에 따라 데이터 수집 프로세스 시작과 같은 작업을 포함합니다.
20
+ 실행 시, 작업은 데이터셋 ID의 존재를 확인합니다. ID가 제공되지 않으면, 데이터셋이 발견되지 않았다는 오류를 발생시킵니다. 유효한 데이터셋 ID가 제공되면, 작업은 해당 데이터셋에 특정한 데이터 수집 활동을 발행합니다. `IssueCollectData`에 의해 처리되는 기본 프로세스는 데이터셋의 존재를 확인, 데이터 수집 환경 준비, 데이터셋의 구성 및 관련 데이터 소스에 따라 데이터 수집 프로세스 시작과 같은 작업을 포함합니다.
21
21
 
22
22
  작업은 시작된 활동의 인스턴스를 반환하며, 이는 진행 상황을 추적하고, 데이터 수집 워크플로를 관리하거나, 수집된 데이터를 처리하기 위한 후속 작업과 통합하는 데 사용할 수 있습니다.
23
23
 
@@ -17,7 +17,7 @@ The `IssueCollectData` task is an automated function that triggers a data collec
17
17
 
18
18
  ## Functionality
19
19
 
20
- Upon execution, the task checks for the presence of a dataset ID. If the ID is not provided, the task will throw an error indicating that no dataset has been found. If a valid dataset ID is provided, the task proceeds to issue a data collection activity specific to that dataset. The underlying process handled by `issueCollectData` involves operations such as validating the dataset's existence, preparing the data collection environment, and initiating the data collection process according to the dataset's configuration and associated data sources.
20
+ Upon execution, the task checks for the presence of a dataset ID. If the ID is not provided, the task will throw an error indicating that no dataset has been found. If a valid dataset ID is provided, the task proceeds to issue a data collection activity specific to that dataset. The underlying process handled by `IssueCollectData` involves operations such as validating the dataset's existence, preparing the data collection environment, and initiating the data collection process according to the dataset's configuration and associated data sources.
21
21
 
22
22
  The task returns an instance of the activity initiated, which can be used to track the progress, manage the data collection workflow, or integrate with subsequent tasks for processing the collected data.
23
23
 
@@ -19,7 +19,7 @@ Tugas `IssueCollectData` adalah fungsi automatik yang memicu proses pengumpulan
19
19
 
20
20
  ## Fungsi
21
21
 
22
- Saat dieksekusi, tugas memeriksa keberadaan ID set data. Jika ID tidak disediakan, tugas akan melempar kesalahan yang menunjukkan bahwa tidak ada set data yang ditemukan. Jika ID set data yang valid disediakan, tugas melanjutkan untuk mengeluarkan aktiviti pengumpulan data yang spesifik untuk set data tersebut. Proses dasar yang ditangani oleh `issueCollectData` melibatkan operasi seperti validasi keberadaan set data, persiapan lingkungan pengumpulan data, dan memulai proses pengumpulan data sesuai dengan konfigurasi set data dan sumber data terkait.
22
+ Saat dieksekusi, tugas memeriksa keberadaan ID set data. Jika ID tidak disediakan, tugas akan melempar kesalahan yang menunjukkan bahwa tidak ada set data yang ditemukan. Jika ID set data yang valid disediakan, tugas melanjutkan untuk mengeluarkan aktiviti pengumpulan data yang spesifik untuk set data tersebut. Proses dasar yang ditangani oleh `IssueCollectData` melibatkan operasi seperti validasi keberadaan set data, persiapan lingkungan pengumpulan data, dan memulai proses pengumpulan data sesuai dengan konfigurasi set data dan sumber data terkait.
23
23
 
24
24
  Tugas mengembalikan instansi aktivitas yang dimulai, yang dapat digunakan untuk melacak kemajuan, mengurus alur kerja pengumpulan data, atau mengintegrasikan dengan tugas berikutnya untuk memproses data yang dikumpulkan.
25
25
 
@@ -17,7 +17,7 @@
17
17
 
18
18
  ## 功能
19
19
 
20
- 执行时,任务会检查数据集 ID 的存在。如果未提供 ID,则任务会抛出错误,指示未找到数据集。如果提供了有效的数据集 ID,则任务将继续针对该数据集发起数据收集活动。`issueCollectData` 处理的底层过程涉及验证数据集的存在、准备数据收集环境以及根据数据集的配置和关联数据源启动数据收集过程。
20
+ 执行时,任务会检查数据集 ID 的存在。如果未提供 ID,则任务会抛出错误,指示未找到数据集。如果提供了有效的数据集 ID,则任务将继续针对该数据集发起数据收集活动。`IssueCollectData` 处理的底层过程涉及验证数据集的存在、准备数据收集环境以及根据数据集的配置和关联数据源启动数据收集过程。
21
21
 
22
22
  任务返回启动的活动实例,可用于跟踪进度、管理数据收集工作流或与后续任务集成以处理收集的数据。
23
23
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@things-factory/dataset",
3
- "version": "8.0.0-alpha.3",
3
+ "version": "8.0.0-alpha.31",
4
4
  "main": "dist-server/index.js",
5
5
  "browser": "dist-client/index.js",
6
6
  "things-factory": true,
@@ -40,21 +40,21 @@
40
40
  "@operato/shell": "^8.0.0-alpha",
41
41
  "@operato/styles": "^8.0.0-alpha",
42
42
  "@operato/utils": "^8.0.0-alpha",
43
- "@things-factory/auth-base": "^8.0.0-alpha.2",
44
- "@things-factory/aws-base": "^8.0.0-alpha.2",
45
- "@things-factory/board-service": "^8.0.0-alpha.3",
46
- "@things-factory/env": "^8.0.0-alpha.0",
47
- "@things-factory/integration-base": "^8.0.0-alpha.2",
48
- "@things-factory/organization": "^8.0.0-alpha.3",
49
- "@things-factory/personalization": "^8.0.0-alpha.2",
50
- "@things-factory/scheduler-client": "^8.0.0-alpha.2",
51
- "@things-factory/shell": "^8.0.0-alpha.2",
52
- "@things-factory/work-shift": "^8.0.0-alpha.2",
53
- "@things-factory/worklist": "^8.0.0-alpha.3",
43
+ "@things-factory/auth-base": "^8.0.0-alpha.29",
44
+ "@things-factory/aws-base": "^8.0.0-alpha.29",
45
+ "@things-factory/board-service": "^8.0.0-alpha.31",
46
+ "@things-factory/env": "^8.0.0-alpha.8",
47
+ "@things-factory/integration-base": "^8.0.0-alpha.31",
48
+ "@things-factory/organization": "^8.0.0-alpha.31",
49
+ "@things-factory/personalization": "^8.0.0-alpha.29",
50
+ "@things-factory/scheduler-client": "^8.0.0-alpha.31",
51
+ "@things-factory/shell": "^8.0.0-alpha.29",
52
+ "@things-factory/work-shift": "^8.0.0-alpha.29",
53
+ "@things-factory/worklist": "^8.0.0-alpha.31",
54
54
  "cron-parser": "^4.3.0",
55
55
  "moment-timezone": "^0.5.45",
56
56
  "simple-statistics": "^7.8.3",
57
57
  "statistics": "^3.3.0"
58
58
  },
59
- "gitHead": "610cf58f02e8d6ec5f988500ab5c4fd601fca8d8"
59
+ "gitHead": "3d8df8131f3b0c1898c525d2928b7f9dc846840e"
60
60
  }
@@ -1,11 +1,20 @@
1
1
  import { In } from 'typeorm'
2
2
 
3
3
  import { User } from '@things-factory/auth-base'
4
- import { Activity, ActivityInstance, ActivityInstanceStatus, UpdateActivityInstanceStateAddendum } from '@things-factory/worklist'
4
+ import {
5
+ Activity,
6
+ ActivityInstance,
7
+ ActivityInstanceStatus,
8
+ UpdateActivityInstanceStateAddendum
9
+ } from '@things-factory/worklist'
5
10
  import { NewDataSample } from 'service/data-sample/data-sample-type'
6
11
  import { createDataSample } from '../controllers/create-data-sample'
7
12
 
8
- async function callback(activityInstance: ActivityInstance, addendum: UpdateActivityInstanceStateAddendum, context: ResolverContext) {
13
+ async function callback(
14
+ activityInstance: ActivityInstance,
15
+ addendum: UpdateActivityInstanceStateAddendum,
16
+ context: ResolverContext
17
+ ) {
9
18
  const { domain, tx } = context.state
10
19
  const { input, output, state } = activityInstance
11
20
 
@@ -1,10 +1,20 @@
1
1
  import { In } from 'typeorm'
2
- import { Activity, ActivityInstance, ActivityInstanceStatus, UpdateActivityInstanceStateAddendum } from '@things-factory/worklist'
2
+ import {
3
+ Activity,
4
+ ActivityInstance,
5
+ ActivityInstanceStatus,
6
+ UpdateActivityInstanceStateAddendum
7
+ } from '@things-factory/worklist'
3
8
  import { issue } from '@things-factory/worklist/dist-server/controllers/activity-instance/issue'
9
+ import { Role } from '@things-factory/auth-base'
4
10
 
5
11
  import { DataOoc, DataOocStatus } from '../service/data-ooc/data-ooc'
6
12
 
7
- async function callback(activityInstance: ActivityInstance, addendum: UpdateActivityInstanceStateAddendum, context: ResolverContext) {
13
+ async function callback(
14
+ activityInstance: ActivityInstance,
15
+ addendum: UpdateActivityInstanceStateAddendum,
16
+ context: ResolverContext
17
+ ) {
8
18
  const { domain, user, tx } = context.state
9
19
  const { input, output, state, terminatedAt } = activityInstance
10
20
  const { causedBy } = addendum || {}
@@ -28,7 +38,7 @@ async function callback(activityInstance: ActivityInstance, addendum: UpdateActi
28
38
  })
29
39
 
30
40
  const dataSet = dataOoc.dataSet
31
- const { assignees, outlierApprovalLine } = dataSet
41
+ const { resolverRoleId, outlierApprovalLine } = dataSet
32
42
 
33
43
  /* dataOoc Review 결과를 dataOoc 엔티티에 반영한다. */
34
44
  dataOoc = await tx.getRepository(DataOoc).save({
@@ -39,8 +49,15 @@ async function callback(activityInstance: ActivityInstance, addendum: UpdateActi
39
49
  state: DataOocStatus.REVIEWED
40
50
  })
41
51
 
42
- /* 해당 dataset의 작업 담당자(assignees)에게 OOC 해결을 위한 태스크를 지시한다. */
43
- if (assignees && assignees instanceof Array && assignees.length > 0) {
52
+ const assigneeRole =
53
+ resolverRoleId &&
54
+ (await tx.getRepository(Role).findOneBy({
55
+ domain: { id: In([domain.id, domain.parentId].filter(Boolean)) },
56
+ id: resolverRoleId
57
+ }))
58
+
59
+ /* 해당 dataset의 작업 담당자(resolverRole)에게 OOC 해결을 위한 태스크를 지시한다. */
60
+ if (assigneeRole) {
44
61
  const activityInstance = {
45
62
  name: `[OOC 조치] ${dataSet.name}`,
46
63
  description: dataSet.description,
@@ -50,14 +67,18 @@ async function callback(activityInstance: ActivityInstance, addendum: UpdateActi
50
67
  dataOocId,
51
68
  instruction: correctiveInstruction
52
69
  },
53
- assignees,
70
+ assigneeRole,
71
+ threadsMin: 1,
72
+ threadsMax: 1,
54
73
  approvalLine: outlierApprovalLine
55
74
  }
56
75
 
57
76
  dataOoc.resolveActivityInstance = await issue(activityInstance, context)
58
77
  await tx.getRepository(DataOoc).save(dataOoc)
59
78
  } else {
60
- console.error(`Assignees are not set. So, Data OOC Resolve task for ${dataOoc.name}(${dataOoc.id}) could not be issued.`)
79
+ console.error(
80
+ `Assignees are not set. So, Data OOC Resolve task for ${dataOoc.name}(${dataOoc.id}) could not be issued.`
81
+ )
61
82
  }
62
83
  } else {
63
84
  console.error('OOC Resolve Activity not installed.')