

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

# Penjadwalan data di danau data analisis Connect Customer
<a name="data-lake-scheduling"></a>

Topik ini merinci konten dalam tabel penjadwalan data lake Connect Customer. Tabel mencantumkan kolom, jenis, dan deskripsi konten.

Ada dua cara untuk mengakses data lake analitik dan mengonfigurasi data yang akan dibagikan: 
+ [Opsi 1: Gunakan konsol Connect Customer](access-datalake.md#option1-configure-data-to-be-shared)
+ [Opsi 2: Gunakan CLI atau CloudShell](access-datalake.md#option2-configure-data-to-be-shared)

Jika Anda tidak dapat mengakses tabel penjadwalan dengan menggunakan Opsi 1, coba gunakan Opsi 2.

**Topics**
+ [Profil penjadwalan staf](#data-lake-staff-scheduling-profile)
+ [Aktivitas shift](#data-lake-shift-activities)
+ [Shift profil](#data-lake-shift-profiles)
+ [Kelompok kepegawaian](#data-lake-staffing-groups)
+ [Kelompok kepegawaian - Forecast groups](#data-lake-staffing-groups-forecast-groups)
+ [Kelompok kepegawaian - Supervisor](#data-lake-staffing-groups-supervisors)
+ [Staf bergeser](#staff-shifts)
+ [Kegiatan shift staf](#data-lake-staff-shift-activities)
+ [Perubahan saldo waktu istirahat staf](#data-lake-staff-timeoff-balance-changes)
+ [Timeoff staf](#data-lake-staff-timeoffs)
+ [Interval waktu istirahat staf](#data-lake-staff-timeoff-intervals)
+ [Kelompok permintaan staf](#data-lake-staff_demand_group)
+ [Kelompok permintaan kelompok kepegawaian](#data-lake-staffing-groups-demand-groups)
+ [Alokasi aktivitas shift staf](#data-lake-staff-shift-activity-allocation)
+ [Metrik jadwal](#data-lake-schedule-metrics)
+ [Jadwalkan tujuan](#data-lake-schedule-goals)
+ [Pergeseran pola rotasi](#data-lake-shift-rotation-patterns)
+ [Pergeseran langkah rotasi](#data-lake-shift-rotation-steps)
+ [Skema data](#data-lake-data-schema)
+ [Kueri Sampel](#data-lake-sample-queries)

## Profil penjadwalan staf
<a name="data-lake-staff-scheduling-profile"></a>

**Nama tabel:** `staff_scheduling_profile`

**Deskripsi:** Berisi konfigurasi penjadwalan agen termasuk penugasan grup kepegawaian, profil shift atau penetapan pola rotasi, dan jendela validitas penjadwalan.

**Kunci utama:** `instance_id, agent_arn, staff_scheduling_profile_version`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `agent_arn`— Bergabung ke Acara Agen, Catatan Kontak, staff\_shift, staff\_timeoff, pengguna (as) `user_arn`
+ `staffing_group_arn`— Bergabung dengan staffing\_groups, staffing\_group\_forecast\_groups, staffing\_group\_supervisors
+ `shift_profile_arn`— Bergabung ke shift\_profiles
+ `shift_rotation_pattern_arn`— Bergabung ke shift\_rotation\_patterns


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer. | 
|  agen\_arn  |  string |  Tidak  |  ARN dari Agen.  | 
|  staff\_scheduling\_profile\_version  |  bigint  |  Tidak  |  Versi Profil Penjadwalan Staf.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer. | 
|  staffing\_group\_arn  |  string  |  Ya  |  ARN dari Grup Kepegawaian tempat Agen ditugaskan.  | 
|  start\_timestamp  |  Stempel waktu  |  Ya  |  StartTimestamp untuk Agen yang dikonfigurasi dalam Aturan Staf (jadwal dibuat hanya setelah Stempel Waktu ini).  | 
|  end\_timestamp  |  Stempel waktu  |  Ya  |  EndTimestamp untuk Agen yang dikonfigurasi dalam Aturan Staf (jadwal tidak dibuat di luar Stempel Waktu ini). | 
|  shift\_profile\_arn  |  string  |  Ya  |  ARN dari Profil Shift yang ditugaskan ke Agen dalam Aturan Staf. Saling eksklusif dengan Shift Rotation Pattern.  | 
|  shift\_rotation\_pattern\_arn  |  string  |  Ya  |  ARN dari Pola Rotasi Pergeseran yang ditugaskan ke Agen dalam Aturan Staf. Saling eksklusif dengan Shift Profile.  | 
|  shift\_rotation\_start\_step\_id  |  bigint  |  Ya  |  ID langkah di mana Agen dimulai dalam Pola Rotasi Shift yang ditetapkan.  | 
|  timezone  |  string  |  Ya  |  Zona waktu dikonfigurasi untuk Agen.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke True jika Agen dihapus. Lain diatur ke False.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu saat Profil Penjadwalan Staf di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data.  | 

## Aktivitas shift
<a name="data-lake-shift-activities"></a>

**Nama tabel:** `shift_activities`

**Deskripsi:** Mendefinisikan jenis kegiatan yang dapat ditetapkan dalam shift, termasuk jenis kegiatan (produktif, tidak produktif, cuti), pelacakan kepatuhan, dan status berbayar.

**Kunci utama:** `instance_id, shift_activity_arn, shift_activity_version`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_activity_arn`— Bergabung ke staff\_shift\_activities, staff\_timeoff\_balance\_changes, staff\_timeoff


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  shift\_activity\_id  |  string  |  Tidak  |  ARN dari Kegiatan Shift.  | 
|  shift\_activity\_version  |  bigint  |  Tidak  |  Versi Aktivitas Shift.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  shift\_activity\_name  |  string  |  Ya  |  Nama Aktivitas Shift.  | 
|  jenis  |  string  |  Ya  |  Jenis Aktivitas Shift. Nilai yang mungkin adalah: PRODUKTIVE, NON\_PRODUCTIVE, dan LEAVE.  | 
|  sub\_tipe  |  string  |  Ya  | Sub-tipe dari Aktivitas Shift. Ini hanya berlaku untuk aktivitas tipe NON\_PRODUCTIVE. Nilai yang mungkin adalah: BREAK\_OR\_MEAL dan NONE.  | 
|  is\_adherence\_dilacak  |  Boolean  |  Ya  |  Setel ke True jika Aktivitas Shift dikonfigurasi untuk melacak Kepatuhan. Lain diatur ke False.  | 
|  is\_paid  |  Boolean  |  Ya  |  Setel ke True jika Aktivitas Shift dikonfigurasi sebagai Dibayar. Lain diatur ke False.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke True jika Aktivitas Shift dihapus. Lain diatur ke False.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  | Timestamp saat Aktivitas Shift di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Shift profil
<a name="data-lake-shift-profiles"></a>

**Nama tabel:** `shift_profiles`

**Deskripsi:** Mendefinisikan templat profil shift yang dapat ditetapkan ke agen, menentukan pola shift untuk pembuatan jadwal.

**Kunci utama:** `instance_id, shift_profile_arn, shift_profile_version`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_profile_arn`— Bergabung ke staff\_scheduling\_profile, shift\_rotation\_steps


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  shift\_profile\_arn  |  string  |  Tidak  |  ARN dari Profil Shift.  | 
|  shift\_profile\_version  |  bigint  |  Tidak  |  Versi Profil Shift.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  shift\_profile\_name  |  string  |  Ya  |  Nama Profil Shift.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke True jika Shift Profile dihapus. Lain diatur ke False.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  | Timestamp saat Profil Shift di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Kelompok kepegawaian
<a name="data-lake-staffing-groups"></a>

**Nama tabel:** `staffing_groups`

**Deskripsi:** Mendefinisikan kelompok kepegawaian yang mengatur agen untuk tujuan penjadwalan, berfungsi sebagai unit organisasi utama untuk manajemen tenaga kerja.

**Kunci utama:** `instance_id, staffing_group_arn, staffing_group_version`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `staffing_group_arn`— Bergabung ke staff\_scheduling\_profile, staffing\_group\_forecast\_groups, staffing\_group\_supervisors, staffing\_group\_demand\_group


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  staffing\_group\_arn  |  string  |  Tidak  |  ARN dari Grup Kepegawaian.  | 
|  staffing\_group\_version  |  bigint  |  Tidak  |  Versi Grup Kepegawaian.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  staffing\_group\_name  |  string  |  Ya  |  Nama Grup Kepegawaian.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke True jika Grup Staffing dihapus. Lain diatur ke False.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat Grup Staffing di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Kelompok kepegawaian - Forecast groups
<a name="data-lake-staffing-groups-forecast-groups"></a>

**Nama tabel:** `staffing_group_forecast_groups`

**Deskripsi:** Memetakan hubungan antara kelompok kepegawaian dan kelompok perkiraan, menghubungkan kapasitas tenaga kerja dengan perkiraan permintaan.

**Kunci utama:** `instance_id, staffing_group_arn, staffing_group_version, forecast_group_arn`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `staffing_group_arn, staffing_group_version`— Bergabung dengan staffing\_groups
+ `forecast_group_arn`— Bergabung ke schedule\_metrics, schedule\_goals, staff\_shift\_activity\_allocations


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  staffing\_group\_arn  |  string  |  Tidak  |  ARN dari Grup Kepegawaian.  | 
|  staffing\_group\_version  |  bigint  |  Tidak  |  Versi Grup Kepegawaian.  | 
|  forecast\_group\_arn  |  string  |  Tidak  |  ARN dari Forecast Group yang terkait dengan Staffing Group.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke False saat StaffingGroup-ForecastGroup asosiasi valid.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp ketika Grup Kepegawaian berada. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Kelompok kepegawaian - Supervisor
<a name="data-lake-staffing-groups-supervisors"></a>

**Nama tabel:** `staffing_group_supervisors`

**Deskripsi:** Memetakan asosiasi pengawas ke kelompok kepegawaian, melacak supervisor mana yang bertanggung jawab untuk setiap kelompok kepegawaian.

**Kunci utama:** `instance_id, staffing_group_arn, staffing_group_version, supervisor_arn`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `staffing_group_arn, staffing_group_version`— Bergabung dengan staffing\_groups
+ `supervisor_arn`— Bergabung dengan Agent Event (sebagai agent\_arn), Contact Record (sebagai agent\_arn)


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  staffing\_group\_arn  |  string  |  Tidak  |  ARN dari Grup Kepegawaian.  | 
|  staffing\_group\_version  |  bigint  |  Tidak  |  Versi Grup Kepegawaian.  | 
|  supervisor\_arn  |  string  |  Tidak  |  Agen ARN dari Supervisor yang terkait dengan Staffing Group.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke False saat StaffingGroup-ForecastGroup asosiasi valid.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp ketika Grup Kepegawaian berada. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Staf bergeser
<a name="staff-shifts"></a>

**Nama tabel:** `staff_shifts`

**Deskripsi:** Berisi instance shift individual yang ditetapkan ke agen, termasuk waktu mulai dan akhir shift serta metadata pembuatan.

**Kunci utama:** `instance_id, shift_id, shift_version`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_id, shift_version`— Bergabung ke staff\_shift\_activities, staff\_shift\_activity\_allocations
+ `agent_arn`— Bergabung ke staff\_scheduling\_profile, Agent Event, Contact Record, users (as) `user_arn`


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  shift\_id  |  string  |  Tidak  |  ID dari Shift. | 
|  shift\_version  |  bigint  |  Tidak  |  Versi Shift.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  agen\_arn  |  string  |  Ya  |  ARN dari Agen.  | 
|  shift\_start\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat Shift Dimulai.  | 
|  shift\_end\_timestamp  |  Stempel waktu  |  Ya  | Timestamp saat Shift Berakhir.  | 
|  created\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat Shift Dibuat.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke True jika Shift dihapus. Lain diatur ke False.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat Shift di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Kegiatan shift staf
<a name="data-lake-staff-shift-activities"></a>

**Nama tabel:** `staff_shift_activities`

**Deskripsi:** Berisi blok aktivitas individual dalam shift, termasuk waktu mulai dan berakhir aktivitas, flag lembur, dan status aktivitas.

**Kunci utama:** `instance_id, shift_id, shift_version, activity_id`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_id, shift_version`— Bergabung dengan staff\_shifts
+ `activity_id`— Bergabung ke staff\_shift\_activity\_allocations
+ `shift_activity_arn`— Bergabung dengan shift\_activities


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  shift\_id  |  string  |  Tidak  |  ID dari Shift. | 
|  shift\_version  |  bigint  |  Tidak  |  Versi Shift.  | 
|  activity\_id  |  string  |  Tidak  |  ID Aktivitas.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  activity\_start\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat aktivitas dimulai.  | 
|  activity\_end\_timestamp  |  Stempel waktu  |  Ya  | Stempel waktu saat aktivitas berakhir.  | 
|  shift\_activity\_id  |  string  |  Ya  |  ARN dari Kegiatan Shift. Jika shift\_activity\_arn adalah null, maka itu menunjukkan aktivitas 'Kerja'.  | 
|  aktivitas\_status  |  string  |  Ya  |  Status Kegiatan. Ini disetel ke INACTIVE jika aktivitas tumpang tindih dengan waktu istirahat.  | 
|  adalah\_lembur  |  Boolean  |  Ya  |  Setel ke True jika Aktivitas adalah bagian dari Overtime. Lain diatur ke False.  | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke False ketika Aktivitas Shift valid.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  | Timestamp saat Shift itu. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Perubahan saldo waktu istirahat staf
<a name="data-lake-staff-timeoff-balance-changes"></a>

**Nama tabel:** `staff_timeoff_balance_changes`

**Deskripsi:** Melacak perubahan saldo time-off untuk agen, mencatat kredit dan pengurangan dari berbagai sumber termasuk unggahan, permintaan, dan jadwal penerbitan.

**Kunci utama:** `instance_id, agent_arn, shift_activity_arn, timeoff_balance_version`

**Kunci partisi:** `last_created_timestamp` (harian)

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `agent_arn`— Bergabung ke staff\_scheduling\_profile, staff\_shifts, Acara Agen, Catatan Kontak
+ `shift_activity_arn`— Bergabung dengan shift\_activities
+ `timeoff_id`— Bergabung ke staff\_timeoffs


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  account\_id  |  string  |  Ya  |  ID AWS akun.  | 
|  agen\_arn  |  string  |  Tidak  |  ARN agen.  | 
|  shift\_activity\_id  |  string  |  Tidak  |  ARN Aktivitas Shift saldo ini dialokasikan untuk.  | 
|  timeoff\_balance\_version  |  bigint  |  Tidak  |  Versi saldo Time Off, angka yang bertambah untuk menunjukkan urutan perubahan.  | 
|  balance\_update\_source  |  string  |  Ya  |  Sumber pembaruan saldo. Nilai yang mungkin adalah TIME\_OFF\_BALANCE\_UPLOAD, CONNECT\_TIME\_OFF\_REQUEST, SCHEDULE\_PUBLISH, CSV\_TIME\_OFF\_BALANCE\_DELETION, TIME\_OFF\_BALANCE\_BACKFILL, SYSTEM\_UPDATE  | 
|  timeoff\_id  |  string  |  Ya  |  ID Time Off yang menyebabkan perubahan saldo ini, jika ada.  | 
|  last\_updated\_by  |  string  |  Ya  |  ARN agen yang menyebabkan perubahan keseimbangan ini, jika ada.  | 
|  balance\_change\_in\_hours  |  double  |  Ya  |  Jumlah saldo Time Off diperbarui melalui perubahan jam ini. Jika nilai ini positif, perubahan ini mengkredit saldo Time Off. Jika nilai ini negatif, perubahan ini mengurangi saldo Time Off. Nilai ini tidak ditentukan untuk setiap peristiwa pengunggahan dan penghapusan saldo.  | 
|  sisa\_balance\_in\_hours  |  double  |  Ya  |  Sisa Waktu Off jam saldo setelah peristiwa perubahan ini. Nilai ini tidak ditentukan untuk setiap peristiwa penghapusan saldo.  | 
|  last\_created\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat catatan perubahan saldo Time Off dibuat.  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Timeoff staf
<a name="data-lake-staff-timeoffs"></a>

**Nama tabel:** `staff_timeoffs`

**Deskripsi:** Mencatat permintaan waktu istirahat dan persetujuan untuk agen, termasuk pelacakan status melalui alur kerja persetujuan dan jam efektif.

**Kunci utama:** `instance_id, timeoff_id, agent_arn, timeoff_version`

**Bergabung kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `timeoff_id, timeoff_version`— Bergabung ke staff\_timeoff\_interval
+ `agent_arn`— Bergabung ke staff\_scheduling\_profile, staff\_shifts, Acara Agen, Catatan Kontak
+ `shift_activity_arn`— Bergabung dengan shift\_activities


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  timeoff\_id  |  string  |  Tidak  |  ID dari Time Off.  | 
|  agen\_arn  |  string  |  Tidak  |  ARN dari Agen.  | 
|  timeoff\_version  |  bigint  |  Tidak  |  Versi Time Off.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  timeoff\_type  |  string  |  Ya  |  Jenis Time Off. Nilai yang mungkin adalah: TIME\_OFF dan VOLUNTARY\_TIME\_OFF.  | 
|  timeoff\_start\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp saat Time Off dimulai.  | 
|  timeoff\_end\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu saat Time Off berakhir.  | 
|  timeoff\_status  |  string  |  Ya  |  Status Time Off. Nilai yang mungkin adalah: PENDING\_CREATE, PENDING\_UPDATE, PENDING\_CANCEL, PENDING\_ACCEPT, PENDING\_APPROVE, PENDING\_DECLINE, APPROVED, ACCEPTED, REJECLED, CANCELLED, WAITING\_ACCEPT, dan WAITING\_APPROVE. Status WAITING menunjukkan timeoff sedang menunggu tindakan Pengguna. Status PENDING menunjukkan timeoff sedang menunggu pemrosesan sistem dari tindakan pengguna.  | 
|  shift\_activity\_id  |  string  |  Ya  |  ARN dari Aktivitas Shift yang digunakan untuk Timeoff.  | 
|  effective\_timeoff\_hours  |  double  |  Ya  |  Total jam Waktu Off efektif. Jam timeoff efektif dihitung berdasarkan logika [deduksi timeoff](https://docs.aws.amazon.com/connect/latest/adminguide/upload-timeoff-balance.html#how-system-calculates-time-off-deductions). Ini hanya diatur untuk tipe TIME\_OFF.  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu saat Time Off di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data.  | 

## Interval waktu istirahat staf
<a name="data-lake-staff-timeoff-intervals"></a>

**Nama tabel:** `staff_timeoff_intervals`

**Deskripsi:** Berisi interval waktu individual dalam permintaan time-off, memecah waktu multi-hari atau multi-periode menjadi interval diskrit dengan jam efektif per interval.

**Kunci utama:** `instance_id, timeoff_id, timeoff_version, interval_id`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `timeoff_id, timeoff_version`— Bergabung ke staff\_timeoffs


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  timeoff\_id  |  string  |  Tidak  |  ID dari Time Off.  | 
|  timeoff\_version  |  bigint  |  Tidak  |  Versi Time Off.  | 
|  interval\_id  |  string  |  Tidak  |  ID Interval Time Off.  | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer.  | 
|  timeoff\_interval\_start\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu saat interval spesifik Time Off dimulai.  | 
|  timeoff\_interval\_end\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu ketika interval spesifik Time Off berakhir.  | 
|  interval\_effective\_timeoff\_hours  |  double  |  Ya  |  Jam Waktu Off yang Efektif untuk interval Waktu Off khusus ini. Jam timeoff efektif dihitung berdasarkan logika [deduksi timeoff](https://docs.aws.amazon.com/connect/latest/adminguide/upload-timeoff-balance.html#how-system-calculates-time-off-deductions).  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu saat Time Off di/dihapus. created/updated  | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data.  | 

## Kelompok permintaan staf
<a name="data-lake-staff_demand_group"></a>

**Nama tabel:** `staff_demand_group`

**Deskripsi:** Memetakan agen untuk meminta grup dengan tugas prioritas, mendukung default tingkat grup kepegawaian dan penggantian tingkat agen untuk alokasi permintaan.

**Kunci utama:** `instance_id, agent_arn, demand_group_arn, staff_demand_group_version`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `agent_arn`— Bergabung ke staff\_scheduling\_profile, staff\_shifts, Acara Agen, Catatan Kontak
+ `demand_group_arn`— Bergabung ke staffing\_group\_demand\_group, staff\_shift\_activity\_allocations


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
| instance\_id  | string  |  Tidak  | ID dari instans Connect Customer.  | 
| agen\_arn  | string  |  Tidak  | ARN agen. | 
| demand\_group\_arn  | string  |  Tidak  | ARN dari kelompok permintaan.  | 
| staff\_demand\_group\_version  | Panjang  |  Tidak  | Versi untuk agen ini untuk menuntut asosiasi kelompok  | 
| Prioritas  | string  |  Ya  | Prioritas kelompok permintaan untuk agen ini. Bisa RENDAH, SEDANG atau TINGGI | 
| instance\_arn  | string  |  Ya  | ARN dari instance Connect Customer. | 
| is\_override  | Boolean  |  Ya  | Setel ke 'true' jika ini adalah asosiasi Agen ke Grup Permintaan adalah penggantian level Agen. | 
| is\_dihapus  | Boolean  |  Ya  | Setel ke true jika asosiasi grup agen untuk permintaan dihapus. | 
| last\_updated\_timestamp  | Stempel waktu  |  Ya  | Timestamp ketika agen untuk meminta asosiasi kelompok adalah. created/updated | 
| data\_lake\_last\_processed\_timestamp  | Stempel waktu  |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal. | 

## Kelompok permintaan kelompok kepegawaian
<a name="data-lake-staffing-groups-demand-groups"></a>

**Nama tabel:** `staffing_group_demand_group`

**Deskripsi:** Memetakan hubungan antara kelompok kepegawaian dan kelompok permintaan dengan prioritas, menghubungkan unit organisasi untuk menuntut target alokasi.

**Kunci utama:** `instance_id, staffing_group_arn, demand_group_arn, staffing_group_demand_group_version`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `staffing_group_arn`— Bergabung ke staffing\_groups, staff\_scheduling\_profile
+ `demand_group_arn`— Bergabung ke staff\_demand\_group, staff\_shift\_activity\_allocations


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  staffing\_group\_arn  |  string  |  Tidak  |  ARN dari Grup Kepegawaian.  | 
|  demand\_group\_arn  |  string  |  Tidak  |  ARN dari kelompok permintaan.  | 
|  staffing\_group\_demand\_group\_version  |  Panjang  |  Tidak  | Versi untuk asosiasi Staffing Group to Demand Group ini  | 
|  Prioritas  |  string  |  Ya  |  Prioritas Grup Permintaan untuk Grup Kepegawaian ini. Bisa RENDAH, SEDANG atau TINGGI | 
|  instance\_arn  |  string  |  Ya  |  ARN dari instance Connect Customer. | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke true jika grup kepegawaian untuk meminta asosiasi grup dihapus. | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Stempel waktu ketika grup kepegawaian untuk meminta asosiasi grup di/dihapus. created/updated | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal. | 

## Alokasi aktivitas shift staf
<a name="data-lake-staff-shift-activity-allocation"></a>

**Nama tabel:** `staff_shift_activity_allocations`

**Deskripsi:** Mencatat persentase alokasi aktivitas shift ke kelompok permintaan, memungkinkan penugasan proporsional kapasitas agen di beberapa kelompok permintaan dalam satu aktivitas.

**Kunci utama:** `instance_id, shift_id, shift_version, activity_id, demand_group_arn`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_id, shift_version`— Bergabung ke staff\_shifts, staff\_shift\_activities
+ `activity_id`— Bergabung dengan staff\_shift\_activities
+ `demand_group_arn`— Bergabung ke staff\_demand\_group, staffing\_group\_demand\_group
+ `foecast_group_arn`— Bergabung ke staffing\_group\_forecast\_groups (sebagai forecast\_group\_arn)


|  Kolom  |  Jenis  |  Deskripsi  | 
| --- | --- | --- | 
|  instance\_id  |  string  |  Tidak  |  ID dari instans Connect Customer.  | 
|  shift\_id  |  string  |  Tidak  |  ID shift. | 
|  shift\_version  |  Panjang  |  Versi Shift. | 
|  activity\_id  |  string  |  Tidak  |  ID aktivitas. | 
|  demand\_group\_arn  |  string  |  Tidak  |  ARN dari kelompok permintaan.  | 
|  foecast\_group\_arn  |  string  |  Ya  |  ARN dari kelompok ramalan.  | 
|  alokasi\_persentase  |  double  |  Ya  |  Persentase alokasi Aktivitas ke Grup Permintaan. | 
|  is\_dihapus  |  Boolean  |  Ya  |  Setel ke False saat valid. StaffingGroup-ForecastGroupassociation  | 
|  last\_updated\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp ketika Grup Kepegawaian berada. created/updated | 
|  data\_lake\_last\_processed\_timestamp  |  Stempel waktu  |  Ya  |  Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan untuk menentukan kesegaran data yang andal.  | 

## Metrik jadwal
<a name="data-lake-schedule-metrics"></a>

**Nama tabel:** `schedule_metrics`

**Deskripsi:** Berisi metrik kinerja jadwal berdasarkan interval, termasuk jumlah agen yang diperlukan versus terjadwal, hunian, persentase tingkat layanan, dan kecepatan jawaban rata-rata.

**Kunci utama:** `instance_id, metric_id, interval_start_timestamp`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `entity_arn`— Bergabung ke staffing\_group\_forecast\_groups (sebagai forecast\_group\_arn), staff\_demand\_group (sebagai demand\_group\_arn)


| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| instance\_id | string |  Tidak  | ARN dari instans Amazon Connect. | 
| instance\_arn | string |  Ya  | ID instans Amazon Connect. | 
| metric\_id | string |  Tidak  | Pengidentifikasi unik untuk nilai metrik | 
| aws\_account\_id | string |  Ya  | ID akun AWS. | 
| entity\_type | string |  Ya  | Menunjukkan apakah metrik adalah untuk kelompok perkiraan atau kelompok permintaan. | 
| entity\_arn | string |  Ya  | Arn dari kelompok perkiraan atau kelompok permintaan | 
| saluran | string |  Ya  | Menunjukkan saluran media seperti Suara, obrolan. Jika baris berisi metrik yang bukan level saluran, maka itu diisi sebagai SEMUA | 
| interval\_start\_timestamp | timestamp |  Tidak  | Stempel waktu yang menunjukkan dimulainya interval | 
| required\_agent\_count | float |  Ya  | Menunjukkan jumlah agen yang diperlukan | 
| scheduled\_agent\_count | float |  Ya  | Menunjukkan jumlah agen yang dijadwalkan | 
| scheduled\_occupancy | float |  Ya  | Menunjukkan persentase hunian | 
| scheduled\_service\_level\_percentage | float |  Ya  | Menunjukkan persentase tingkat layanan yang diproyeksikan berdasarkan jumlah karyawan yang dijadwalkan | 
| service\_level\_seconds | integer |  Ya  | Menunjukkan detik tingkat layanan | 
| scheduled\_average\_speed\_of\_answer | float |  Ya  | Menunjukkan kecepatan rata-rata jawaban yang diproyeksikan dalam hitungan detik berdasarkan jumlah karyawan yang dijadwalkan | 
| is\_dihapus | boolean |  Ya  | Menunjukkan apakah metrik dihapus | 
| last\_updated\_timestamp | timestamp |  Ya  | Timestamp saat catatan metrik dibuat. | 
| data\_lake\_last\_processed\_timestamp | timestamp |  Ya  | Timestamp, yang menunjukkan terakhir kali data lake memproses catatan. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data. | 
| projected\_average\_time\_to\_complete | float |  Ya  | Menunjukkan waktu rata-rata untuk menyelesaikan dalam jam | 
| projected\_backlog | integer |  Ya  | Menunjukkan item backlog | 

## Jadwalkan tujuan
<a name="data-lake-schedule-goals"></a>

**Nama tabel:** `schedule_goals`

**Deskripsi:** Menyimpan sasaran tingkat layanan untuk penjadwalan, termasuk persentase tingkat layanan target, detik tingkat layanan, dan kecepatan jawaban rata-rata untuk perkiraan atau kelompok permintaan.

**Kunci utama:** `instance_id, goal_id`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `entity_arn`— Bergabung ke staffing\_group\_forecast\_groups (sebagai forecast\_group\_arn), staff\_demand\_group (sebagai demand\_group\_arn)


| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| instance\_id | string |  Tidak  | ARN dari instans Amazon Connect. | 
| instance\_arn | string |  Ya  | ID instans Amazon Connect. | 
| goal\_id | string |  Tidak  | Pengidentifikasi unik untuk nilai tujuan | 
| aws\_account\_id | string |  Ya  | ID akun AWS. | 
| entity\_type | string |  Ya  | Menunjukkan apakah tujuannya adalah untuk kelompok perkiraan atau kelompok permintaan. | 
| entity\_arn | string |  Ya  | Arn dari kelompok perkiraan atau kelompok permintaan | 
| saluran | string |  Ya  | Menunjukkan saluran media seperti Suara, obrolan. | 
| start\_date\_timestamp | timestamp |  Ya  | Stempel waktu yang menunjukkan awal dari tujuan | 
| end\_date\_timestamp | timestamp |  Ya  | Stempel waktu yang menunjukkan akhir tujuan | 
| goal\_service\_level\_percentage | float |  Ya  | Menunjukkan persentase tingkat layanan tujuan | 
| goal\_service\_level\_seconds | integer |  Ya  | Menunjukkan detik tingkat layanan | 
| gol\_rata-rata\_speed\_of\_answer | float |  Ya  | Menunjukkan kecepatan rata-rata jawaban dalam hitungan detik | 
| is\_dihapus | boolean |  Ya  | Menunjukkan apakah tujuan dihapus | 
| last\_updated\_timestamp | timestamp |  Ya  | Timestamp saat rekor gol dibuat. | 
| data\_lake\_last\_processed\_timestamp | timestamp |  Ya  | Timestamp, yang menunjukkan terakhir kali data lake memproses catatan. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data. | 
| goal\_average\_time\_to\_complete | float |  Ya  | Menunjukkan waktu rata-rata untuk menyelesaikan dalam jam. | 

## Pergeseran pola rotasi
<a name="data-lake-shift-rotation-patterns"></a>

**Nama tabel:** `shift_rotation_patterns`

**Deskripsi:** Mendefinisikan konfigurasi pola rotasi shift yang mengsiklus agen melalui profil shift yang berbeda dari waktu ke waktu, dengan tanggal mulai yang dapat dikonfigurasi.

**Kunci utama:** `instance_id, shift_rotation_pattern_arn, shift_rotation_pattern_version`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_rotation_pattern_arn, shift_rotation_pattern_version`— Bergabung ke shift\_rotation\_steps
+ `shift_rotation_pattern_arn`— Bergabung ke staff\_scheduling\_profile


| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| instance\_id | string |  Tidak  | ID dari instans Connect Customer. | 
| shift\_rotation\_pattern\_arn | string |  Tidak  | ARN dari Pola Rotasi Pergeseran. | 
| shift\_rotation\_pattern\_version | bigint |  Tidak  | Versi Pola Rotasi Pergeseran. | 
| instance\_arn | string |  Ya  | ARN dari instance Connect Customer. | 
| shift\_rotation\_pattern\_name | string |  Ya  | Nama Pola Rotasi Pergeseran. | 
| start\_date | string |  Ya  | Tanggal mulai dari Shift Rotation Pattern dalam yyyy-mm-dd format. | 
| is\_dihapus | Boolean |  Ya  | Setel ke True jika Pola Rotasi Shift dihapus. Lain diatur ke False. | 
| last\_updated\_by | string |  Ya  | ARN dari pengguna yang created/updated /menghapus Pola Rotasi Shift. | 
| last\_updated\_timestamp | Stempel waktu |  Ya  | Timestamp saat Pola Rotasi Shift di/dihapus. created/updated | 
| data\_lake\_last\_processed\_timestamp | Stempel waktu |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data. | 

## Pergeseran langkah rotasi
<a name="data-lake-shift-rotation-steps"></a>

**Nama tabel:** `shift_rotation_steps`

**Deskripsi:** Mendefinisikan langkah-langkah individu dalam pola rotasi shift, masing-masing mengaitkan profil shift dengan durasi dalam minggu (hingga 52 langkah per rotasi).

**Kunci utama:** `instance_id, shift_rotation_pattern_arn, shift_rotation_pattern_version, step_id`

**Bergabunglah kunci:**
+ `instance_id`— Bergabung ke semua tabel
+ `shift_rotation_pattern_arn, shift_rotation_pattern_version`— Bergabung ke shift\_rotation\_patterns
+ `shift_profile_arn`— Bergabung ke shift\_profiles


| Kolom | Jenis | Deskripsi | 
| --- | --- | --- | 
| instance\_id | string |  Tidak  | ID dari instans Connect Customer. | 
| shift\_rotation\_pattern\_arn | string |  Tidak  | ARN dari Pola Rotasi Pergeseran. | 
| shift\_rotation\_pattern\_version | bigint |  Tidak  | Versi Pola Rotasi Pergeseran. | 
| step\_id | bigint |  Tidak  | ID langkah dalam Pola Rotasi Shift. Langkah-langkah diberi nomor secara berurutan (1, 2, 3,... hingga 52). | 
| instance\_arn | string |  Ya  | ARN dari instance Connect Customer. | 
| shift\_profile\_arn | string |  Ya  | ARN dari Profil Shift terkait dengan langkah rotasi. | 
| durasi | bigint |  Ya  | Durasi langkah rotasi dalam beberapa minggu. | 
| is\_dihapus | Boolean |  Ya  | Setel ke False saat Shift Rotation Step valid. | 
| last\_updated\_by | string |  Ya  | ARN dari pengguna yang Shift Rotation created/updated Pattern. | 
| last\_updated\_timestamp | Stempel waktu |  Ya  | Timestamp saat Pola Rotasi Shift adalah. created/updated | 
| data\_lake\_last\_processed\_timestamp | Stempel waktu |  Ya  | Timestamp, yang menunjukkan terakhir kali rekor disentuh oleh data lake. Ini dapat mencakup transformasi dan pengurukan. Bidang ini tidak dapat digunakan secara andal untuk menentukan kesegaran data. | 

## Skema data
<a name="data-lake-data-schema"></a>

Berikut ini adalah diagram hubungan entitas yang menunjukkan struktur dan hubungan antara tabel penjadwalan di danau data Connect Customer. 

 Setiap tabel menampilkan kunci utama dan atribut dengan tipe data mereka. Diagram menggambarkan bagaimana tabel ini berhubungan satu sama lain melalui hubungan kunci asing, memberikan pandangan komprehensif dari model data penjadwalan.

![Diagram hubungan entitas yang menunjukkan struktur dan hubungan antara tabel penjadwalan.](http://docs.aws.amazon.com/id_id/connect/latest/adminguide/images/data-lake-scheduling-tables-overview-1.png)


## Kueri Sampel
<a name="data-lake-sample-queries"></a>

### 1. Kueri untuk membuat semua Aktivitas Shift Terjadwal Agen bekerja pada Grup Forecast tertentu
<a name="query1"></a>

`SELECT * FROM agent_scheduled_shift_activities_view where forecast_group_name = 'AnyDepartmentForecastGroup'` 

Selesaikan langkah-langkah berikut untuk membuat `agent_scheduled_shift_activities_view` yang disebutkan di atas.

 **Langkah 1: Buat tampilan untuk mendapatkan nama supervisor** 

```
CREATE OR REPLACE VIEW "latest_supervisor_names_view" AS
SELECT
  staffing_group_arn
, array_agg(supervisor_name ORDER BY supervisor_name ASC) supervisor_names
FROM
  (
   SELECT
     s.staffing_group_arn
   , CONCAT(u.first_name, ' ', u.last_name) supervisor_name
   FROM
     ((
      SELECT
        staffing_group_arn
      , supervisor_arn
      FROM
        (
         SELECT
           *
         , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency
         FROM
           staffing_group_supervisors
         WHERE (instance_id = 'YourAmazonConnectInstanceId')
      )  t
      WHERE (recency = 1)
   )  s
   INNER JOIN USERS u ON (s.supervisor_arn = u.user_arn))
)
GROUP BY staffing_group_arn
```

 **Langkah 2: Buat tampilan untuk mendapatkan grup kepegawaian dan grup perkiraan yang terkait dengan agen** 

```
CREATE OR REPLACE VIEW "latest_agent_staffing_group_forecast_group_view" AS
WITH
  latest_staff_scheduling_profile AS (
   SELECT
     agent_arn
   , staffing_group_arn
   , last_updated_timestamp
   FROM
     (
      SELECT
        *
      , RANK() OVER (PARTITION BY agent_arn ORDER BY staff_scheduling_profile_version DESC) recency
      FROM
        staff_scheduling_profile
      WHERE ((instance_id = 'YourAmazonConnectInstanceId') AND (is_deleted = false))
   )  t
   WHERE (recency = 1)
)
, latest_staffing_groups AS (
   SELECT
     staffing_group_name
   , staffing_group_arn
   FROM
     (
      SELECT
        *
      , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency
      FROM
        staffing_groups
      WHERE (instance_id = 'YourAmazonConnectInstanceId')
   )  t
   WHERE (recency = 1)
)
, latest_forecast_groups AS (
   SELECT
     forecast_group_arn
   , forecast_group_name
   FROM
     (
      SELECT
        *
      , RANK() OVER (PARTITION BY forecast_group_arn ORDER BY forecast_group_version DESC) recency
      FROM
        forecast_groups
      WHERE (instance_id = 'YourAmazonConnectInstanceId')
   )  t
   WHERE (recency = 1)
)
, latest_staffing_group_forecast_groups AS (
   SELECT
     staffing_group_arn
   , forecast_group_arn
   FROM
     (
      SELECT
        *
      , RANK() OVER (PARTITION BY staffing_group_arn ORDER BY staffing_group_version DESC) recency
      FROM
        staffing_group_forecast_groups
      WHERE (instance_id = 'YourAmazonConnectInstanceId')
   )  t
   WHERE (recency = 1)
)
SELECT
  ssp.agent_arn
, U.agent_username AS username
, U.agent_routing_profile_id AS routing_profile_id
, CONCAT(u.first_name, ' ', u.last_name) agent_name
, fg.forecast_group_arn
, fg.forecast_group_name
, sg.staffing_group_arn
, sg.staffing_group_name
FROM
 latest_staff_scheduling_profile ssp
INNER JOIN latest_staffing_groups sg ON ssp.staffing_group_arn = sg.staffing_group_arn
INNER JOIN latest_staffing_group_forecast_groups sgfg ON ssp.staffing_group_arn = sgfg.staffing_group_arn
INNER JOIN latest_forecast_groups fg ON fg.forecast_group_arn = sgfg.forecast_group_arn
INNER JOIN USERS u ON ssp.agent_arn = u.user_arn
```

 **Langkah 3: Dapatkan aktivitas Shift terbaru** 

```
CREATE OR REPLACE VIEW "latest_shift_activities_view" AS
SELECT
  shift_activity_arn
, shift_activity_name
, shift_activity_version
, type
, sub_type
, is_adherence_tracked
, is_paid
, last_updated_timestamp
FROM
  (
   SELECT
     *
   , RANK() OVER (PARTITION BY shift_activity_arn ORDER BY shift_activity_version DESC) recency
   FROM
     shift_activities
   WHERE (instance_id = 'YourAmazonConnectInstanceId')
)  t
WHERE (recency = 1)
```

 **Langkah 4: Buat tampilan untuk mendapatkan aktivitas shift terjadwal agen** 

```
CREATE OR REPLACE VIEW "agent_scheduled_shift_activities_view" AS
WITH
  latest_staff_shifts AS (
   SELECT
     agent_arn
   , shift_id
   , shift_version
   , shift_start_timestamp
   , shift_end_timestamp
   , created_timestamp
   , last_updated_timestamp
   , data_lake_last_processed_timestamp
   , recency
   FROM
     (
      SELECT
        RANK() OVER (PARTITION BY shift_id ORDER BY shift_version DESC) recency
      , *
      FROM
        staff_shifts sa
      WHERE (instance_id = 'YourAmazonConnectInstanceId')
   )  t
   WHERE ((recency = 1) AND (is_deleted = false))
)
SELECT
  asgfg.forecast_group_name
, array_join(sn.supervisor_names, ',') supervisor_names
, s.agent_arn
, u.first_name
, u.last_name
, asgfg.staffing_group_name
, ssa.activity_id
, (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.shift_activity_name, 'Work') ELSE sa.shift_activity_name END) shift_activity_name
, s.shift_start_timestamp
, s.shift_end_timestamp
, (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.type, 'PRODUCTIVE') ELSE sa.type END) type
, (CASE WHEN (ssa.shift_activity_arn IS NULL) THEN COALESCE(sa.is_paid, true) ELSE sa.is_paid END) is_paid
, ssa.activity_start_timestamp
, ssa.activity_end_timestamp
, ssa.last_updated_timestamp
, ssa.data_lake_last_processed_timestamp
, u.agent_username as username
, u.agent_routing_profile_id as routing_profile_id
FROM
  staff_shift_activities ssa
INNER JOIN latest_staff_shifts s ON s.shift_id = ssa.shift_id AND s.shift_version = ssa.shift_version
INNER JOIN USERS u ON s.agent_arn = u.user_arn
INNER JOIN latest_agent_staffing_group_forecast_group_view asgfg ON s.agent_arn = asgfg.agent_arn
LEFT JOIN latest_shift_activities_view sa ON sa.shift_activity_arn = ssa.shift_activity_arn
INNER JOIN latest_supervisor_names_view sn ON sn.staffing_group_arn = asgfg.staffing_group_arn
WHERE (ssa.is_deleted = false) AND (COALESCE(ssa.activity_status, ' ') <> 'INACTIVE') AND (ssa.instance_id = 'YourAmazonConnectInstanceId')
```

### 2. Kueri untuk mendapatkan semua permintaan waktu istirahat dari Agen dalam Grup Forecast tertentu
<a name="query2"></a>

` SELECT * FROM agent_timeoff_report_view where forecast_group_name = 'AnyDepartmentForecastGroup' `

 Gunakan kueri berikut untuk membuat `agent_timeoff_report_view` yang disebutkan di atas.

```
CREATE OR REPLACE VIEW "agent_timeoff_report_view" AS
WITH latest_staff_timeoffs AS (
        SELECT t1.*,
            CAST((t1.effective_timeoff_hours * 60) AS INT) total_effective_timeoff_minutes
        FROM (
                SELECT RANK() OVER (
                        PARTITION BY timeoff_id
                        ORDER BY timeoff_version DESC
                    ) recency,
                    agent_arn,
                    timeoff_id,
                    shift_activity_arn,
                    timeoff_status,
                    timeoff_version,
                    effective_timeoff_hours,
                    timeoff_start_timestamp,
                    timeoff_end_timestamp,
                    last_updated_timestamp,
                    data_lake_last_processed_timestamp
                FROM staff_timeoffs
                WHERE (
                        instance_id = 'YourAmazonConnectInstanceId'
                    )
            ) t1
        WHERE (recency = 1)
    )
SELECT asgfg.forecast_group_name,
    to.agent_arn,
    asgfg.agent_name,
    asgfg.staffing_group_name,
    asgfg.username,
    sa.shift_activity_name,
    to.timeoff_start_timestamp,
    to.timeoff_end_timestamp,
    to.timeoff_status,
    array_join(sn.supervisor_names, ',') AS supervisor_names,
    sa.is_paid,
    to.last_updated_timestamp,
    to.data_lake_last_processed_timestamp,
    u.agent_routing_profile_id AS routing_profile_id,
    to.timeoff_id,

    to.shift_activity_arn,
    to.total_effective_timeoff_minutes
FROM latest_staff_timeoffs to
    INNER JOIN latest_agent_staffing_group_forecast_group_view asgfg ON asgfg.agent_arn = to.agent_arn
    INNER JOIN latest_shift_activities_view sa ON sa.shift_activity_arn = to.shift_activity_arn
    INNER JOIN latest_supervisor_names_view sn ON sn.staffing_group_arn = asgfg.staffing_group_arn
    INNER JOIN users u ON u.user_arn = to.agent_arn
```