> ## 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.

# Perbarui grup absensi

> Panggil API DingTalk untuk memperbarui grup absensi berdasarkan ID: ubah nama, lokasi absen, Sub Admin, dan aturan absen melalui Server API.

Panggil API ini untuk memperbarui informasi grup absensi berdasarkan ID grup absensi.

## Permintaan

| **Informasi dasar** | |
| - | - |
| URL HTTP | [https://api.dingtalk.io/topapi/attendance/group/modify](https://api.dingtalk.io/topapi/attendance/group/modify) |
| Metode HTTP | POST |
| Jenis aplikasi yang didukung | appType-Aplikasi internal |
| Izin yang diperlukan | permission-qyapi\_attendance\_group\_manage-Izin pengelolaan grup absensi |

### Parameter query

| Nama | Tipe | Wajib | Contoh | Deskripsi |
| - | - | - | - | - |
| access\_token | String | Ya | b5e95d101165xxxx | Kredensial aplikasi untuk memanggil API ini. Dapatkan kredensial ini 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 | 123dfd | ID pengguna operator. |
| top\_group | Object | Ya | | Informasi grup absensi. |
| shift\_vo\_list | Object\[] | Tidak | | Informasi shift. |
| id | Number | Tidak | 123 | ID shift. Dapatkan nilai id dengan memanggil API [Mendapatkan ringkasan shift](https://help.dingtalk.io/id/open/development/enterprise-shift-query-in-batches.md). |
| id | Number | Ya | 123 | ID grup absensi.  **Catatan**  Jika Anda menggunakan pengenal grup absensi versi lama (group\_key), panggil API [Konversi groupKey ke groupId](https://help.dingtalk.io/id/open/development/convert-groupkey-to-groupid.md) untuk mengonversi group\_key menjadi group\_id. |
| name | String | Tidak | Absensi Shift Siang | Nama grup absensi. |
| positions | Object\[] | Tidak | | Pengaturan alamat absensi. |
| address | String | Tidak | Jl. Jinger No. 21, Kawasan Industri Bioteknologi | Alamat. |
| corp\_id | String | Tidak | 123dfd | CorpId Organisasi. Temukan CorpId di halaman Beranda [Developer Console](https://open-dev.dingtalk.io/#/index). |
| latitude | String | Tidak | 36.687495 | Garis lintang (maksimal 6 angka desimal). |
| longitude | String | Tidak | 101.750329 | Garis bujur (maksimal 6 angka desimal). |
| title | String | Tidak | Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet | Judul lokasi absensi. |
| accuracy | String | Tidak | 0 | Akurasi.  **Catatan**  Bidang ini tidak berfungsi dan tidak memengaruhi akurasi. Bidang ini tidak digunakan lagi sejak 7 Maret 2022. |
| offset | Number | Tidak | 300 | Jangkauan absensi. |
| manager\_list | String\[] | Tidak | \["userId1","userId2"] | Daftar ID pengguna Sub Admin grup absensi. |
| enable\_camera\_check | Boolean | Tidak | true | Menentukan apakah fitur absen dengan foto diaktifkan.   - **true**: Aktif - **false** (default): Nonaktif   **Catatan**  Parameter ini tidak digunakan lagi. Gunakan parameter open\_camera\_check sebagai gantinya. |
| owner | String | Tidak | 123dfdf | ID pengguna penanggung jawab absensi. |
| disable\_check\_when\_rest | Boolean | Tidak | false | Menentukan apakah absen pada hari libur memerlukan Persetujuan.   - **true**: Wajib - **false**: Tidak wajib |
| skip\_holidays | Boolean | Tidak | true | Menentukan apakah hari libur nasional dilewati.   - **true** (default): Lewati - **false**: Jangan lewati |
| enable\_outside\_check | Boolean | Tidak | true | Menentukan apakah absensi lapangan diizinkan.   - **true** (default): Izinkan - **false**: Jangan izinkan |
| disable\_check\_without\_schedule | Boolean | Tidak | false | Menentukan apakah karyawan dilarang absen jika tidak ada jadwal shift.   - **true**: Larang - **false**: Jangan larang |
| enable\_emp\_select\_class | Boolean | Tidak | true | Menentukan apakah karyawan dapat memilih shift untuk absen jika tidak ada jadwal shift.   - **true**: Izinkan - **false**: Jangan izinkan |
| resource\_permission\_map | Object | Tidak | | Cakupan izin Sub Admin.   - **w**: Dapat dikelola - **r**: Hanya Baca |
| camera\_check | String | Tidak | w | Konfigurasikan aturan absen dengan foto. |
| over\_time\_rule | String | Tidak | r | Konfigurasikan aturan lembur. |
| check\_position\_type | String | Tidak | w | Konfigurasikan metode absen. |
| check\_time | String | Tidak | r | Konfigurasikan waktu absensi. |
| group\_type | String | Tidak | w | Konfigurasikan jenis absensi. |
| group\_member | String | Tidak | r | Konfigurasikan anggota absensi. |
| schedule | String | Tidak | w | Penjadwalan shift karyawan. |
| out\_side\_check | String | Tidak | r | Konfigurasikan absensi lapangan. |
| workday\_class\_list | Number\[] | Tidak | \[12,12,12,12,0,0] | Daftar shift mingguan.  **Catatan**   - Wajib untuk absensi shift tetap. Nilai 0 menandakan hari libur. - Nilai dalam array mewakili penjadwalan shift harian dari Minggu hingga Sabtu, dari kiri ke kanan. |
| open\_camera\_check | Boolean | Tidak | true | Menentukan apakah fitur absen dengan foto diaktifkan.   - **true**: Aktif - **false** (default): Nonaktif |

### Contoh permintaan

```curl theme={"theme":{"light":"github-light","dark":"github-dark"}}
curl -X POST "https://api.dingtalk.io/topapi/attendance/group/modify" \
-H 'Content-Type:application/x-www-form-urlencoded;charset=utf-8' \
-d 'access_token=ca21b524-0a09-4909-b6e9-af087e28a86b' \
-d 'op_user_id=123dfd' \
-d 'top_group=null'
```

Java

```java theme={"theme":{"light":"github-light","dark":"github-dark"}}
DingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/modify");
OapiAttendanceGroupModifyRequest req = new OapiAttendanceGroupModifyRequest();
req.setOpUserId("user1");
TopGroupVo topGroupVo = new TopGroupVo();
topGroupVo.setOwner("user1");
topGroupVo.setEnableEmpSelectClass(true);
topGroupVo.setSkipHolidays(true);
List<TopPositionVo> positionVos = new ArrayList<TopPositionVo>();
TopPositionVo topPositionVo = new TopPositionVo();
positionVos.add(topPositionVo);
topPositionVo.setAddress("Jl. Jinger No. 21, Kawasan Industri Bioteknologi");
topPositionVo.setCorpId("ding9f741xxxx");
topPositionVo.setLatitude("30.123");
topPositionVo.setAccuracy("0");
topPositionVo.setTitle("Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet");
topPositionVo.setLongitude("120.123");
topGroupVo.setPositions(positionVos);
topGroupVo.setEnableCameraCheck(true);
List<TopShiftVo> topShiftVos = new ArrayList<TopShiftVo>();
TopShiftVo topShiftVo = new TopShiftVo();
topShiftVos.add(topShiftVo);
topShiftVo.setId(678215070L);
topGroupVo.setShiftVoList(topShiftVos);
topGroupVo.setEnableOutsideCheck(true);
topGroupVo.setName("Grup Absensi Uji 1");
topGroupVo.setId(2987L);
topGroupVo.setManagerList(Arrays.asList("userId1"));
topGroupVo.setOffset(500L);
topGroupVo.setDisableCheckWithoutSchedule(false);
topGroupVo.setWorkdayClassList(Arrays.asList(12L,12L,12L,12L,12L,0L,0L));
req.setTopGroup(topGroupVo);
OapiAttendanceGroupModifyResponse 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.OapiAttendanceGroupModifyRequest("https://api.dingtalk.io/topapi/attendance/group/modify")

req.op_user_id="123dfd"
req.top_group=""
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 OapiAttendanceGroupAddRequest;
$req->setOpUserId("123dfd");

$top_group = new TopGroupVo;

// Bidang berikut tercantum dalam dokumentasi API:
$top_group->name = "Absensi Shift Siang";
$top_group->type = "TURN"; // FIXED: absensi shift tetap, TURN: absensi berbasis shift, NONE: jam kerja fleksibel
$top_group->enable_camera_check = "true";
$top_group->enable_outside_camera_check = "true";
$top_group->enable_outside_check = "true";
$top_group->enable_next_day = "false";
$top_group->modify_member = "true";
$top_group->offset = "500";
$top_group->default_class_id = "1234";
$top_group->manager_list = "[\"userId1\",\"userId2\"]";
$top_group->workday_class_list = "[12,12,12,12,12,0,0]";
$top_group->disable_check_without_schedule = "false";
$top_group->freecheck_work_days = "[1,2,3,4,5,6,0]";
$top_group->freecheck_day_start_min_offset = "240";
$top_group->disable_check_when_rest = "false";

// positions - Daftar lokasi absensi
$positions = new TopPositionVo;
$positions->title = "Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet";
$positions->address = "Jl. Jinger No. 21, Kawasan Industri Bioteknologi";
$positions->latitude = "36.687495";
$positions->longitude = "101.750329";
$positions->accuracy = "0";
// Catatan: Bidang corp_id tidak wajib diisi di positions
$top_group->positions = array($positions);

// members - Daftar anggota grup absensi
$members = new TopMemberVo;
$members->user_id = "1212jfkd";
$members->type = "StaffMember";
$members->role = "Attendance";
// Catatan: Bidang corp_id tidak wajib diisi di members
$top_group->members = array($members);

// wifis - Daftar titik absen WiFi
$wifis = new TopWifiVo;
$wifis->ssid = "OFFICE-WiFi";
$wifis->mac_addr = "C0:E0:D0:E0:C0:0F";
// Catatan: Bidang corp_id tidak wajib diisi di wifis
$top_group->wifis = array($wifis);

// shift_vo_list - Daftar shift
$shift_vo_list = new TopShiftVo;
$shift_vo_list->id = "123";
$top_group->shift_vo_list = array($shift_vo_list);

// resource_permission_map - Pemetaan izin sumber daya
$resource_permission_map = new TopGroupManageRolePermissionVo;
$resource_permission_map->schedule = "w";
$resource_permission_map->group_member = "w";
$resource_permission_map->group_type = "r";
$resource_permission_map->check_time = "w";
$resource_permission_map->check_position_type = "r";
$resource_permission_map->over_time_rule = "r";
$resource_permission_map->camera_check = "w";
$resource_permission_map->out_side_check = "w";
$top_group->resource_permission_map = $resource_permission_map;

// Bidang berikut tidak tercantum dalam dokumentasi API dan telah dihapus:
// - owner: Penanggung jawab absensi (atur melalui manager_list)
// - enable_emp_select_class: Bidang nonstandar
// - corp_id: ID Organisasi diperoleh dari token dan tidak perlu diatur di isi permintaan
// - skip_holidays: Bidang nonstandar
// - special_days: Bidang nonstandar
// - id: Jangan kirim ID saat membuat grup. Sistem akan membuatnya secara otomatis.

$req->setTopGroup($top_group);
$resp = $c->execute($req, $access_token, "https://api.dingtalk.io/topapi/attendance/group/add");
```

C#

```csharp theme={"theme":{"light":"github-light","dark":"github-dark"}}
IDingTalkClient client = new DefaultDingTalkClient("https://api.dingtalk.io/topapi/attendance/group/modify");
OapiAttendanceGroupModifyRequest req = new OapiAttendanceGroupModifyRequest();
req.OpUserId = "123dfd";
OapiAttendanceGroupModifyRequest.TopGroupVoDomain obj1 = new OapiAttendanceGroupModifyRequest.TopGroupVoDomain();
List<OapiAttendanceGroupModifyRequest.TopShiftVoDomain> list3 = new List<OapiAttendanceGroupModifyRequest.TopShiftVoDomain>();
OapiAttendanceGroupModifyRequest.TopShiftVoDomain obj4 = new OapiAttendanceGroupModifyRequest.TopShiftVoDomain();
list3.Add(obj4);
obj4.Id = 123L;
obj1.ShiftVoList= list3;
obj1.Id = 123L;
obj1.Name = "Absensi Shift Siang";
List<OapiAttendanceGroupModifyRequest.TopPositionVoDomain> list6 = new List<OapiAttendanceGroupModifyRequest.TopPositionVoDomain>();
OapiAttendanceGroupModifyRequest.TopPositionVoDomain obj7 = new OapiAttendanceGroupModifyRequest.TopPositionVoDomain();
list6.Add(obj7);
obj7.Address = "Jl. Jinger No. 21, Kawasan Industri Bioteknologi";
obj7.CorpId = "123dfd";
obj7.Latitude = "36.687495";
obj7.Longitude = "101.750329";
obj7.Title = "Museum Sejarah Alam Dataran Tinggi Qinghai-Tibet";
obj7.Accuracy = "0";
obj1.Positions= list6;
obj1.Offset = 300L;
obj1.ManagerList = "\"userId1\",\"userId2\"";
obj1.EnableCameraCheck = true;
obj1.Owner = "123dfdf";
obj1.SkipHolidays = true;
obj1.EnableOutsideCheck = true;
obj1.DisableCheckWithoutSchedule = false;
obj1.EnableEmpSelectClass = true;
obj1.WorkdayClassList = new long[] { 12,12,12,12,0,0 };
req.TopGroup_ = obj1;
OapiAttendanceGroupModifyResponse rsp = client.Execute(req, access_token);
Console.WriteLine(rsp.Body);
```

## Respons

### Isi respons

| Nama | Tipe | Contoh | Deskripsi |
| - | - | - | - |
| result | Object | | Hasil grup absensi. |
| name | String | Absensi Shift Siang | Nama grup absensi. |
| id | Number | 123 | ID grup absensi. |
| errmsg | String | 0 | Pesan error. |
| errcode | Number | ok | Kode error. |
| success | Boolean | true | Menunjukkan apakah panggilan berhasil.   - **true**: Berhasil - **false**: Gagal |

### Contoh isi respons

```json theme={"theme":{"light":"github-light","dark":"github-dark"}}
{
  "result":{
    "name":"Absensi Shift Siang",
    "id":"123"
  },
  "errcode":0,
  "success":true,
  "errmsg":"ok"
}
```

### Kode error

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


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