> ## Documentation Index
> Fetch the complete documentation index at: https://help.dingtalk.io/llms.txt
> Use this file to discover all available pages before exploring further.

# Kueri riwayat shift

> Gunakan API DingTalk ini untuk mengkueri riwayat shift absensi berdasarkan ID dan versi shift, lengkap dengan pengaturan shift, waktu absen, dan waktu istirahat.

Panggil API ini untuk mengkueri riwayat shift berdasarkan ID shift dan versinya. Respons mencakup nama shift, pengaturan shift, waktu absen, dan waktu istirahat.

## Permintaan

| **Informasi dasar** | |
| - | - |
| URL HTTP | [https://api.dingtalk.io/topapi/attendance/shift/history/query](https://api.dingtalk.io/topapi/attendance/shift/history/query) |
| Metode HTTP | POST |
| Tipe aplikasi yang didukung | appType-Aplikasi internal |
| Izin | permission-qyapi\_attendance\_group\_read-Izin kueri grup absensi |

### Parameter kueri

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| access\_token | String | Ya | 73e9xxx | Kredensial aplikasi yang digunakan untuk memanggil API ini. Dapatkan dengan memanggil API [Mendapatkan access\_token Aplikasi internal](https://help.dingtalk.io/id/open/development/obtain-orgapp-token). |

### Isi permintaan

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| op\_user\_id | String | Ya | user123 | userId operator. |
| shift\_id | Number | Ya | 628380875 | ID shift. Dapatkan nilai id dengan memanggil API [Mendapatkan ringkasan shift](https://help.dingtalk.io/id/open/development/enterprise-shift-query-in-batches.md). |
| version | Number | Ya | 624190327 | Versi shift. Dapatkan nilai shift\_version dengan memanggil API [Kueri massal informasi penjadwalan shift pengguna](https://help.dingtalk.io/id/open/development/query-batch-scheduling-information.md). |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/attendance/shift/history/query" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=e56f7xxxxeb7ef1' \
-d 'op_user_id=dd_dd' \
-d 'shift_id=2445' \
-d 'version=222'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/shift/history/query");
OapiAttendanceShiftHistoryQueryRequest req = new OapiAttendanceShiftHistoryQueryRequest();
req.setOpUserId("user456");
req.setShiftId(715390132L);
req.setVersion(624190327L);
OapiAttendanceShiftHistoryQueryResponse rsp = client.execute(req, access_token);
System.out.println(rsp.getBody());
```

Python

```python theme={"theme":{"light":"github-light","dark":"github-dark"}}
import dingtalk.api

req=dingtalk.api.OapiAttendanceShiftHistoryQueryRequest("https://api.dingtalk.io/topapi/attendance/shift/history/query")

req.op_user_id="dd_dd"
req.shift_id=2445
req.version=222
try:
  resp= req.getResponse(access_token)
  print(resp)
except Exception,e:
  print(e)
```

PHP

```php theme={"theme":{"light":"github-light","dark":"github-dark"}}
include "TopSdk.php";
date_default_timezone_set('Asia/Shanghai');

$c = new DingTalkClient(DingTalkConstant::$CALL_TYPE_OAPI, DingTalkConstant::$METHOD_POST , DingTalkConstant::$FORMAT_JSON);
$req = new OapiAttendanceShiftHistoryQueryRequest;
$req->setOpUserId("dd_dd");
$req->setShiftId("2445");
$req->setVersion("222");
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/shift/history/query");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/shift/history/query");
OapiAttendanceShiftHistoryQueryRequest req = new OapiAttendanceShiftHistoryQueryRequest();
req.OpUserId = "dd_dd";
req.ShiftId = 2445L;
req.Version = 222L;
OapiAttendanceShiftHistoryQueryResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama | Tipe | Contoh | Deskripsi |
| - | - | - | - |
| result | TopShiftVo | | Hasil kueri. |
| shift\_group\_name | String | Shift siang reguler | Nama grup shift. |
| corp\_id | String | dinge87fxxx | ID organisasi (corpId). |
| shift\_setting | TopShiftSettingVo | | Pengaturan shift. |
| shift\_id | Number | 628380875 | ID shift. |
| gmt\_modified | Date | 2021-01-14 14:21:03 | Waktu terakhir shift diubah. |
| corp\_id | String | dinge87fxxx | ID organisasi (corpId). |
| is\_deleted | String | N | Penanda penghapusan. |
| work\_time\_minutes | Number | 480 | Durasi kerja, dalam menit. Nilai -1 menunjukkan fitur ini dinonaktifkan. |
| id | Number | 350530359 | ID pengaturan shift. Saat ini tidak digunakan. |
| attend\_days | String | 21 | Jumlah hari kehadiran untuk shift ini. |
| gmt\_create | Date | 2021-01-14 14:18:08 | Waktu pembuatan. |
| name | String | Shift siang reguler | Nama shift. |
| id | Number | 241120079 | ID shift. |
| sections | TopSectionVo\[] | | Sesi absen. |
| punches | TopPunchVo\[] | | Titik absen. |
| check\_type | String | OnDuty | Tipe absen:   - **OnDuty**: Absen masuk - **OffDuty**: Absen pulang |
| end\_min | Number | 1 | Batas keterlambatan maksimum yang diizinkan untuk absen, dalam menit. |
| across | Number | 0 | Apakah shift berlanjut ke hari berikutnya:   - **0**: Tidak berlanjut ke hari berikutnya - **1**: Berlanjut ke hari berikutnya |
| check\_time | Date | 1970-01-01 09:00:00 | Waktu absen. |
| permit\_minutes | Number | 60 | Durasi yang diizinkan untuk keterlambatan atau pulang lebih awal. |
| free\_check | Boolean | false | Apakah dibebaskan dari absen:   - **true**: Tidak wajib absen - **false**: Wajib absen |
| id | Number | 376955859 | ID titik absen. Saat ini tidak digunakan. |
| begin\_min | Number | demo | Batas paling awal yang diizinkan untuk absen lebih dulu, dalam menit. |
| work\_time\_minutes | Number | 480 | Durasi kerja, dalam menit. |
| rests | TopRestVo\[] | | Sesi istirahat. |
| check\_type | String | OnDuty | Tipe istirahat:   - **OnDuty**: Mulai istirahat - **OffDuty**: Selesai istirahat |
| across | Number | 0 | Apakah istirahat berlanjut ke hari berikutnya, yaitu waktu istirahat jatuh pada hari berikutnya:   - **0**: Tidak berlanjut ke hari berikutnya - **1**: Berlanjut ke hari berikutnya |
| check\_time | Date | 1970-01-01 12:00:00 | Waktu istirahat. |
| id | Number | 376955861 | ID titik istirahat. |
| id | Number | 22979360 | ID sesi absen. Setiap pasangan absen masuk dan absen pulang membentuk satu sesi. Satu shift dapat memiliki beberapa sesi. |
| shift\_group\_id | Number | 22979 | ID grup shift. |
| success | Boolean | true | Apakah panggilan berhasil.   - **true**: Berhasil - **false**: Gagal |
| errcode | Number | 0 | Kode respons. |
| errmsg | String | ok | Deskripsi kode respons. |
| request\_id | String | q3ef3y3sogkd | ID permintaan. |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "errcode": 0,
  "errmsg":"ok",
  "result": {
    "corp_id": "dinge87fxxx",
    "id": 628380875,
    "name": "Shift siang reguler",
    "sections": [
      {
        "id": 350530359,
        "punches": [
          {
            "across": 0,
            "begin_min": 1,
            "check_time": "1970-01-01 09:00:00",
            "check_type": "OnDuty",
            "end_min": 1,
            "free_check": false,
            "id": 376955859,
            "permit_minutes": 60
          },
          {
            "across": 0,
            "begin_min": 1,
            "check_time": "1970-01-01 18:00:00",
            "check_type": "OffDuty",
            "end_min": 1,
            "free_check": false,
            "id": 376955860,
            "permit_minutes": 15
          }
        ],
        "rests": [
          {
            "across": 0,
            "check_time": "1970-01-01 12:00:00",
            "check_type": "OnDuty",
            "id": 376955861
          },
          {
            "across": 0,
            "check_time": "1970-01-01 13:00:00",
            "check_type": "OffDuty",
            "id": 376955862
          }
        ]
      }
    ],
    "shift_setting": {
      "corp_id": "dinge87fxxx",
      "gmt_create": "2021-01-14 14:18:08",
      "gmt_modified": "2021-01-14 14:21:03",
      "id": 624190327,
      "is_deleted": "N",
      "shift_id": 628380875,
      "work_time_minutes": 480
    }
  },
  "success": true,
  "request_id": "q3ef3y3sogkd"
}
```

### Kode error

Jika API ini mengembalikan error, cari solusinya di dokumen [Kode error global](https://help.dingtalk.io/id/open/development/server-api-error-codes-1.md) berdasarkan pesan error yang diterima.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.