# applyTransaction

안정적인 ID를 기준으로 원본 행을 추가·수정·삭제합니다. 결과를 확인하고 앱 서버 저장과 구분합니다.

Canonical: https://grid.syidax.com/ko/docs/methods/applyTransaction/

<a id="meaning"></a>

## 무엇을 하는 API인가요

안정적인 ID를 기준으로 원본 행을 추가·수정·삭제합니다. 결과를 확인하고 앱 서버 저장과 구분합니다.

<a id="contract"></a>

## 입력과 결과의 정확한 타입

```typescript
applyTransaction(transaction: RowDataTransaction<GridRow>, label?: string, opts?: { source?: GridEditSource; origin?: unknown }): Promise<ApplyRowTransactionResult<GridRow>>
```

| 인수 | 필수 여부 | 타입 |
| --- | --- | --- |
| transaction | 필수 | RowDataTransaction<GridRow> |
| label | 선택 | string |
| opts | 선택 | { source?: GridEditSource; origin?: unknown } |

반환 타입은 `Promise<ApplyRowTransactionResult<GridRow>>`입니다.

<a id="usage"></a>

## 사용 흐름

등록과 초기화를 마친 Grid 요소에서 grid.applyTransaction(…)를 호출합니다. 반환값은 await로 읽으세요. boolean이나 보고서를 반환하는 메서드는 결과를 확인한 뒤 다음 작업을 진행합니다.

<a id="types"></a>

## 관련 타입 읽기

- [RowDataTransaction](https://grid.syidax.com/ko/docs/types/RowDataTransaction.md)
- [GridRow](https://grid.syidax.com/ko/docs/types/GridRow.md)
- [GridEditSource](https://grid.syidax.com/ko/docs/types/GridEditSource.md)
- [ApplyRowTransactionResult](https://grid.syidax.com/ko/docs/types/ApplyRowTransactionResult.md)

<a id="recipes"></a>

## 기능별 설명과 예제

- [데이터 갱신](https://grid.syidax.com/ko/docs/features/data-updates.md) — 조회 결과 전체를 새로 받았다면 rowData를 교체합니다. 일부 주문만 바뀌었다면 applyTransaction에 add·update·remove를 전달합니다. 갱신은 화면 위치가 아니라 getRowId로 연결됩니다.
