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

# 가져오기 및 내보내기

> 모든 데이터 테이블의 현재 보기를 CSV로 다운로드하고, 안내형이며 재실행이 가능한 가져오기 마법사를 통해 CSV에서 고객, 공급업체, 품목, 제조방법, 작업장, 조회 목록, 견적, 기초 재고를 불러옵니다.

CSV는 Alforse에서 데이터를 대량으로 주고받는 방법입니다. 누구나 테이블을 스프레드시트로 내보낼 수 있으며, 관리자는 주로 가동 시작 시점과 대규모 업데이트 때 가져오기를 수행합니다. 내보내기는 테이블이 현재 표시하는 내용을 바탕으로 브라우저에서 생성됩니다. 가져오기는 열을 매핑하는 마법사를 거치며, 이후 권한이 상승된 백그라운드 함수가 모든 레코드를 하나의 트랜잭션으로 기록합니다.

## 테이블을 CSV로 내보내기

공유 Alforse 데이터 그리드를 기반으로 하는 모든 테이블의 헤더에는 **CSV 다운로드** 버튼이 있습니다. 선택하면 테이블이 저장됩니다.

[![테이블 헤더에 CSV 다운로드 아이콘이 있는 부품 목록](https://docs.alforse.com/screens/reference-parts-csv.png)](https://docs.alforse.com/screens/reference-parts-csv.png)

모든 Alforse 데이터 테이블은 현재 보기를 내보냅니다. 파일은 화면에 표시된 내용을 그대로 반영하므로 먼저 필터링하고 열을 정렬하십시오.

### 파일은 화면을 그대로 반영합니다

다운로드되는 것은 보고 있는 보기이며 데이터베이스의 전체 추출본이 아닙니다.

* **행:** 현재 페이지 / 결과 집합에 있는 행만. 검색하거나 먼저 필터링하여 포함할 내용을 조절하십시오.
* **열:** 현재 저장된 보기에서 보이는 열만, 사용자가 정렬한 순서로. 숨겨진 열은 제외되며 선택, 확장, 작업 열은 기록되지 않습니다.
* **헤더:** 그리드의 라벨과 동일합니다.
* **참조:** 품목, 공급업체, 직원, 고객 및 기타 id 열은 id가 아니라 읽기 쉬운 **이름**으로 기록됩니다.
* **내보내기 전용 열:** 그리드에는 표시되지 않지만 파일에는 항상 나타나는 일부 열이 있습니다.

NOTE

**다운로드 파일은 항상 data.csv입니다**

브라우저가 파일을 만들어 `data.csv`로 저장하며 서버는 관여하지 않습니다. 둘 이상의 테이블을 내보내는 경우 각 다운로드의 이름을 바꾸십시오. 그렇지 않으면 충돌합니다.

## 가져올 수 있는 레코드

가져올 수 있는 엔터티에는 각각 목록 화면에 **일괄 가져오기** 메뉴가 있습니다. 그 외의 항목에는 일괄 가져오기가 없습니다.

| 엔터티 | 시작 위치 | 비고 |
| - | - | - |
| 고객 및 고객 담당자 | 고객 목록(**고객** 및 **담당자**) | 고객 행에 주소, 지불 조건, 담당자 형식의 필드를 함께 담을 수 있습니다. |
| 견적 | 견적 목록: **라인이 포함된 견적**, **견적**, **견적 라인** | 영업 업데이트 권한이 필요합니다. |
| 공급업체 | 공급업체 목록 | 행에 주소, 지불 조건, 배송 방법, 인코텀즈를 함께 담을 수 있습니다. |
| 부품, 자재, 공구, 소모품, 서비스 | 각 품목 유형의 목록 | 품목과 함께 한 행으로 공급업체 부품 연결을 생성하고, 구매 리드 타임을 설정하고, 단위 원가를 시드할 수 있습니다. |
| 작업장 | 작업장 목록 | 노무, 기계, 간접비 요율과 위치를 포함합니다. |
| 프로세스 | 프로세스 목록 | |
| 조회 목록 | 각 목록 자체의 화면 | 보관 단위와 보관 유형, 폐기 사유, 측정 단위, 품목 전기 그룹, 부서, 자재 조회 항목(물질, 형태, 마감, 등급, 유형, 치수). |
| 재고, 배치, 일련번호 수량 | **재고 → 수량** | 기존 품목의 기초 재고이며 추적 유형별로 한 번씩 가져옵니다. [기초 재고](#opening-stock)를 참조하십시오. |
| BOM, 공정작업, 제조방법이 포함된 부품 | 부품 및 공구 목록 | [제조방법 가져오기](#method-imports)를 참조하십시오. |

HEADS UP

**고정자산이나 지그는 가져올 수 없습니다**

모델에는 `fixedAsset` 가져오기 형태가 정의되어 있지만 가져오기 함수는 이를 가져올 수 없는 것으로 표시하고 해당 파일을 거부합니다. 어떤 목록도 지그 가져오기를 제공하지 않습니다. 둘 다 앱에서 생성하십시오. BOM 라인은 **BOM** 제조방법 가져오기 또는 앱을 통해 입력합니다.

## 가져오기 실행

**업로드.** **일괄 가져오기**를 선택하고, 엔터티를 선택한 다음, CSV를 끌어다 놓습니다. 브라우저가 헤더 행을 읽고 파일은 회사의 비공개 스토리지에 업로드됩니다. 팁: 먼저 엔터티의 **템플릿**을 다운로드하십시오. 모든 필드 라벨이 있는 헤더 행 하나와 각 열을 `REQUIRED` 또는 `optional`로 표시하고 허용되는 enum 값을 나열하는 힌트 행 하나가 있습니다. 힌트 행을 사용자의 데이터로 덮어쓰십시오.

**열 매핑.** 각 CSV 열을 Alforse 필드와 짝짓습니다. 필수 필드는 모두 매핑이 필요하며, **해당 없음**(N/A)으로 설정한 열은 무시됩니다. 조달 방식, 추적 유형 같은 enum 필드는 원본 값도 Alforse 값과 대응시켜야 합니다. 마법사가 분명한 값은 미리 대응시키며(CSV의 `"B"`는 제안된 `"Buy"`가 됩니다), 유형이나 상태 같은 누락된 조회 항목을 그 자리에서 추가할 수 있습니다.

**검증.** 매핑된 데이터는 엔터티의 스키마에 대해 검사됩니다. 누락된 필수 필드나 파싱할 수 없는 값은 쓰기 전에 표시됩니다.

**가져오기.** 제출하면 매핑이 권한이 상승된 **가져오기** 함수로 전달됩니다. 이 함수는 스토리지에서 파일을 다시 가져오고, 열과 enum 매핑을 적용하고, 행마다 삽입할지 업데이트할지 판단한 다음, 모든 것을 하나의 데이터베이스 트랜잭션으로 커밋합니다.

NOTE

**매핑되지 않은 enum 값은 기본값이 됩니다**

enum 값에 매핑이 없는 행도 가져와지며, 해당 필드는 구성된 **기본값**을 받습니다. 예를 들어 매핑되지 않은 `"Replenishment System"`은 `"Buy and Make"`가 됩니다. 기본값이 적절하지 않다면 값을 명시적으로 매핑하십시오.

## 삽입, 업데이트 또는 건너뛰기

표준 가져오기를 다시 실행해도 안전합니다. Alforse가 이미 아는 식별자를 가진 행은 사본을 만드는 대신 기존 레코드를 업데이트합니다. 각 행은 쓰기 전에 분류됩니다.

<details>
  <summary>**Insert**</summary>

  행의 고유 ID나 이름 중 어느 것도 일치하지 않으므로 새 레코드가 생성되고, 이후 가져오기를 위해 CSV id 매핑이 저장됩니다.
</details>

<details open>
  <summary>**Update**</summary>

  일치하는 항목이 있습니다. Alforse는 저장된 CSV-레코드 매핑을 통해 먼저 CSV의 고유 ID를 시도하고 그다음 이름을 시도하여 찾은 레코드를 업데이트합니다.
</details>

<details>
  <summary>**Skip**</summary>

  같은 파일의 다른 행이 이미 이 id 또는 이름을 가지고 있으므로 이 행은 제외되고 참고용으로 보고됩니다.
</details>

<details>
  <summary>**Error**</summary>

  필수 데이터가 누락되었습니다. 보통 이름이 비어 있습니다. 행이 보고되므로 수정하여 다시 가져오십시오.
</details>

고유 ID 일치는 `csv` 소스에 키가 지정된 공유 외부 매핑 테이블에 의존합니다. 그래서 파일을 두 번 가져와도 중복이 생기지 않고 업데이트됩니다. 앱에서 처음 만든 레코드에는 그러한 매핑이 없지만, 같은 **이름**을 가진 이후의 CSV는 여전히 해당 레코드를 찾아 업데이트합니다.

NOTE

**사용자 정의 필드는 비어 있습니다**

가져오기는 엔터티의 표준 필드와 문서화된 보조 테이블(주소, 결제, 공급업체 부품, 원가)을 채우지만, 회사별 사용자 정의 필드는 채우지 **않습니다**. 이후 레코드의 양식에서 채우십시오.

## 제조방법 가져오기

부품 및 공구 목록은 자재 명세서와 라우팅을 위한 세 가지 가져오기를 제공합니다.

| 가져오기 | 불러오는 내용 |
| - | - |
| **BOM** | 자재 명세서 라인 |
| **공정작업** | 단계, 공구, 파라미터가 있는 공정작업 |
| **제조방법이 포함된 부품** | BOM과 라우팅이 완비된 새 부품 |

이 파일의 모든 행에는 유형 태그(`PART`, `BOM`, `BOP`, `STEP`, `TOOL`, `PARAM`)와 소속된 상위 부품이 있습니다.

### 행이 배치되는 방식

* 행은 이미 존재하는 제조 방법에 **추가**됩니다.
* **생산 방법 버전**을 비워 두면 보관되지 않은 가장 높은 버전을 대상으로 합니다. 버전을 지정하는 경우 0보다 큰 숫자이며 소수점 이하 두 자리를 넘지 않아야 합니다.
* 새 BOM 라인은 이미 있는 라인 뒤에 배치됩니다.
* **Op No**는 공정작업의 순서이며 숫자여야 합니다. 기존 공정작업의 순서와 일치하는 값은 해당 행의 단계, 공구, 파라미터를 그 공정작업에 추가하며 `10`, `10.0`, `010`은 같은 값으로 취급됩니다.

### 안전한 재실행과 잠금

* 제조방법에 이미 있는 항목(같은 자재, 공정작업, 단계 이름, 공구, 파라미터 키)은 건너뛰고 목록으로 보고되므로 파일을 다시 실행해도 문제가 없습니다.
* 초안 버전만 변경되며, 가져오기는 BOM 및 BOP 편집기와 동일한 변경 통지 및 릴리즈 잠금을 따릅니다.
* 부품이 거부되면 사유가 나열되고 해당 부품의 행은 하나도 기록되지 않습니다.
* 릴리즈 관리가 경고로 설정된 경우 가져오기는 편집기와 마찬가지로 릴리즈된 리비전에 기록하며, 결과에는 해당 부품이 경고 아래 표시됩니다.

### 기본값과 거부

빈 셀에는 편집기가 제공하는 것과 동일한 값이 채워집니다. **측정 단위**가 없는 BOM 라인은 자재 자체의 단위를 사용하고, **공정작업 유형**이나 **공정작업 설명**이 없는 공정작업은 해당 프로세스의 유형과 이름을 사용합니다.

편집기가 거부하는 것은 가져오기도 거부합니다. 부품 자체나 공구 또는 서비스를 가리키는 BOM 라인, 공구 품목이 아닌 공구, 음수 수량, 시간 또는 원가, 최대값이 최소값보다 작은 단계입니다. 검사 공정작업에는 CSV로 표현할 수 없는 검사 계획이 필요하므로 앱에서 생성하십시오.

## 기초 재고

**재고 → 수량**의 세 가지 가져오기로 현재고를 불러옵니다. 보통 가동 시작 시점에 한 번 하는 작업입니다.

### 전기되는 내용

모든 행은 수동 재고 조정과 동일한 코어를 통해 전기되는 **Positive Adjmt.**(증가 조정)가 됩니다. 그 결과 품목의 현재 원가로 오늘 날짜의 품목 원장 항목과 파일 전체가 공유하는 단일 재고 조정 전표의 라인 쌍이 생성됩니다. 원가가 0인 품목은 분개 라인을 전기하지 않습니다. 재고 조정 비즈니스 규칙은 가져오기 중에 실행되지 않으며, 가져오기는 재고를 **추가**만 할 수 있고 수량을 줄이거나 값을 직접 설정하지는 않습니다.

### 추적 유형별로 가져오기 선택

| 가져오기 | 대상 품목의 추적 방식 | 열 |
| - | - | - |
| **재고 수량** | **재고** | 부품 번호, 리비전, 위치, 보관 단위, 수량, 댓글 |
| **배치 수량** | **배치** | 부품 번호, 리비전, 위치, 보관 단위, 배치 번호, 수량, 만료일, 댓글 — 각 행이 새 배치를 생성 |
| **일련번호 수량** | **일련번호** | 부품 번호, 리비전, 위치, 보관 단위, 시리얼 번호, 만료일, 댓글 — 각 행이 하나의 유닛이므로 수량 열 없음 |

추적 유형이 다른 품목의 행은 올바른 가져오기를 알려 주는 오류와 함께 실패합니다. 비재고 품목은 재고로 보관할 수 없습니다.

### 열 규칙

* **부품 번호 + 리비전**은 기존 품목을 식별해야 합니다. 비어 있는 리비전은 `0`으로 읽히며, 알 수 없는 품목은 오류입니다.
* **위치**는 매핑 중에 사용자의 위치 중 하나와 대응됩니다.
* **보관 단위**는 선택 사항이며 해당 위치 안에서 이름으로 대소문자 구분 없이 일치시킵니다. 존재하지 않는 이름을 지정하면 오류입니다. 가져오기는 보관 단위를 생성하지 않습니다.
* **수량**은 양수여야 합니다.
* **만료일**은 선택 사항이며 `YYYY-MM-DD` 형식입니다. 고정 기간 유통기한이 있는 품목에서 생략하면 수동 조정과 동일하게 만료일이 계산됩니다.
* 고유 ID 열이 없으므로 이 가져오기는 CSV id 매핑을 저장하지 않습니다.

HEADS UP

**재고 수량 파일을 두 번 실행하면 재고가 두 배가 됩니다**

재고로 추적되는 행에는 자연 키가 없으므로 유효한 각 행이 실행할 때마다 다시 전기됩니다. 배치와 일련번호 행은 보호됩니다. 품목에 이미 있는 배치 또는 일련번호는 상태와 관계없이 **건너뛰며**, 파일 내에서 첫 번째 행 이후에 반복되는 번호도 마찬가지입니다. 서로 다른 두 품목은 시리얼 번호를 공유할 수 있습니다.

## 결과 읽기

실패는 행 단위로 처리됩니다. 잘못된 행은 보고되고 정상 행은 계속 가져와집니다. 보고서에는 다음이 포함됩니다.

| 보고서 부분 | 내용 |
| - | - |
| **삽입됨** / **업데이트됨** | 기록된 레코드 수. |
| **오류** | 필수 데이터가 누락되어 수정하고 다시 가져와야 하는 행으로, 행 번호, 사유, 원래 셀 값이 포함됩니다. |
| **건너뜀** | 의도적으로 제외된 행. 파일 내 중복이나 이미 존재하는 레코드이며 같은 형식으로 표시됩니다. |

제조방법 가져오기는 **부품**을 삽입됨 및 업데이트됨으로 집계하고 BOM 라인, 공정작업, 단계, 공구, 파라미터의 합계를 추가합니다. 예: "4 parts updated. Added: 6 BOM lines. 0 rows need fixing, 2 rows skipped."(부품 4개 업데이트됨. 추가됨: BOM 라인 6개. 수정이 필요한 행 0개, 건너뛴 행 2개.)

실패한 행은 원래 셀을 유지하므로 결과 화면은 파일을 다시 읽지 않아도 무엇을 수정해야 하는지 바로 알려 줍니다. 가져오기 전체는 파일을 다운로드할 수 없거나 데이터베이스가 예기치 않게 실패하는 심각한 오류에서만 실패하며, 이 경우 행별 보고서 대신 하나의 오류 메시지가 표시됩니다.

## 권한

HEADS UP

**가져오기는 행 수준 보안을 우회하므로 제출 시 한 번 확인합니다**

가져오기 함수는 RLS를 우회하는 권한이 상승된 데이터베이스 연결을 사용하므로, Alforse는 제출할 때 **가져오기 권한**을 한 번 확인합니다. 해당 모듈에 대한 업데이트 권한이 필요합니다. 고객은 영업, 공급업체는 구매, 품목과 제조방법은 부품, 작업장과 프로세스는 생산, 보관 단위와 기초 재고는 재고 권한입니다. 그렇지 않으면 아무것도 기록되기 전에 가져오기가 거부됩니다. 기초 재고에는 수동 재고 조정과 마찬가지로 재고 생성 권한도 추가로 필요합니다.

## 관련 문서

**재고**

현재고와 기초 재고 가져오기가 전기하는 수동 조정입니다.

[Open](https://docs.alforse.com/ko/docs/reference/inventory.md)

**제조방법**

제조방법 가져오기가 불러오는 BOM과 라우팅입니다.

[Open](https://docs.alforse.com/ko/docs/reference/methods.md)

**품목**

품목 가져오기로 생성되는 부품, 자재, 공구, 소모품, 지그입니다.

[Open](https://docs.alforse.com/ko/docs/reference/items.md)

**공급업체와 고객**

고객 및 공급업체 가져오기로 생성되는 주소와 조건이 포함된 거래처 레코드입니다.

[Open](https://docs.alforse.com/ko/docs/reference/suppliers-and-customers.md)

**작업장**

작업장 가져오기로 생성되는 생산 능력 레코드입니다.

[Open](https://docs.alforse.com/ko/docs/reference/work-centers.md)


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