> ## 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**（Download 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`，不經過伺服器。如果您匯出多個資料表，請為每次下載重新命名，否則檔案會互相覆蓋。

## 可匯入的記錄

每種可匯入的實體，其清單畫面上都有**批量匯入**（Bulk Import）選單。其他項目不支援批量匯入。

| 實體 | 起始位置 | 備註 |
| - | - | - |
| 客戶與客戶聯絡人 | 客戶清單（**客戶**與**聯絡人**） | 客戶列也可以包含地址、付款條件與聯絡人類欄位。 |
| 報價單 | 報價單清單：**含明細的報價單**、**報價單**、**報價單明細** | 需要銷售的更新權限。 |
| 供應商 | 供應商清單 | 一列也可以包含地址、付款條件、運送方式與國貿條件。 |
| 零件、物料、工具、耗材、服務 | 各品項類型的清單 | 除品項本身外，一列還可以建立供應商與零件的連結、設定採購前置時間，並帶入單位成本初始值。 |
| 工作中心 | 工作中心清單 | 包含人工、機器與間接費用費率，以及地點。 |
| 流程 | 流程清單 | |
| 查詢清單 | 各清單自己的畫面 | 儲存單位與儲存類型、報廢原因、計量單位、品項過帳群組、部門，以及物料查詢（物質、形態、表面處理、等級、類型、尺寸）。 |
| 庫存、批次與序號數量 | **庫存 → 數量** | 現有品項的期初庫存，每種追蹤類型各匯入一次。請參閱[期初庫存](#opening-stock)。 |
| BOM、工序、含方法的零件 | 零件與工具清單 | 請參閱[方法匯入](#method-imports)。 |

HEADS UP

**固定資產與治具不支援匯入**

資料模型定義了 `fixedAsset` 的匯入格式，但匯入函式將它標示為不可匯入，並會拒絕這類檔案。所有清單也都沒有治具匯入。這兩者請在應用程式中建立；BOM 明細則透過 **BOM** 方法匯入或在應用程式中輸入。

## 執行匯入

**上傳。** 選擇**批量匯入**，選取實體，然後將 CSV 拖曳進去。瀏覽器會讀取標頭列，並將檔案上傳到您公司的私有儲存空間。提示：請先下載該實體的**範本**。範本有一列包含所有欄位標籤的標頭列，以及一列提示列，標示每個欄位是 `REQUIRED` 還是 `optional`，並列出允許的列舉值——請用您自己的資料覆蓋提示列。

**對應欄位。** 將每個 CSV 欄位與一個 Alforse 欄位配對。所有必填欄位都需要對應；設為**不適用**（N/A）的欄位會被忽略。列舉欄位——補貨系統、追蹤類型等——還需要將您的原始值對應到 Alforse 的值。精靈會預先配對明顯的項目（CSV 的 `"B"` 會建議為 `"Buy"`），也讓您當場新增缺少的查詢項目，例如類型或狀態。

**驗證。** 您對應的資料會依實體的結構描述檢查。漏填的必填欄位或無法解析的值，會在任何寫入之前被標示出來。

**匯入。** 提交後，您的對應會交給具特權的 **import** 函式。它會再次從儲存空間取得檔案、套用欄位與列舉對應、逐列判斷要新增還是更新，並在單一資料庫交易中提交所有內容。

NOTE

**未對應的列舉值會變成預設值**

列舉值沒有對應的列仍然會匯入——該欄位只會取得其設定的**預設值**。例如，未對應的 `"Replenishment System"` 最後會變成 `"Buy and Make"`。只要預設值可能不正確，請務必明確對應這些值。

## 新增、更新或略過

重新執行標準匯入是安全的：識別碼已為 Alforse 所知的列，會更新現有記錄，而不是建立副本。每一列在寫入前都會先分類。

<details>
  <summary>**新增**</summary>

  該列的唯一 ID（Unique ID）與名稱都沒有符合任何記錄，因此會建立新記錄，並儲存一筆 CSV ID 對應供日後匯入使用。
</details>

<details open>
  <summary>**更新**</summary>

  存在符合的記錄。Alforse 會先透過已儲存的 CSV 對記錄對應，嘗試以 CSV 的唯一 ID 比對，再比對名稱，並更新找到的記錄。
</details>

<details>
  <summary>**略過**</summary>

  同一檔案中的另一列已有相同的 ID 或名稱，因此這一列會被捨棄，並回報以供參考。
</details>

<details>
  <summary>**錯誤**</summary>

  缺少必要資料——通常是名稱空白。該列會被回報，讓您修正後重新匯入。
</details>

唯一 ID 的比對依賴以 `csv` 來源為鍵的共用外部對應表；這就是同一個檔案匯入兩次只會更新、不會重複的原因。您最初在應用程式中建立的記錄沒有這種對應，但之後相同**名稱**的 CSV 仍能找到並更新它們。

NOTE

**自訂欄位會維持空白**

匯入會填入實體的標準欄位及其文件記載的附屬表——地址、付款、供應商零件、成本——但**不會**填入各公司的自訂欄位。請事後在記錄的表單上填寫。

## 方法匯入

零件與工具清單提供三種匯入，用於物料清單與製程路徑：

| 匯入 | 載入內容 |
| - | - |
| **BOM** | 物料清單明細 |
| **工序** | 工序，連同其步驟、工具與參數 |
| **含方法的零件** | 完整附帶 BOM 與製程路徑的新零件 |

這些檔案中的每一列都帶有類型標籤——`PART`、`BOM`、`BOP`、`STEP`、`TOOL` 或 `PARAM`——以及所屬的上層零件。

### 列如何放置

* 列會**加入**既有的製造方法。
* **製造方法版本**留空，則以未封存的最高版本為目標。若指定版本，必須是大於 0 且小數位數不超過 2 位的數字。
* 新的 BOM 明細會放在已有明細之後。
* **工序編號**（Op No）是工序的順序，必須為數字。若數值與既有工序的順序相符，會將該列的步驟、工具與參數加入該工序；`10`、`10.0` 與 `010` 視為相同。

### 安全地重新執行與鎖定

* 方法上已有的內容——相同的物料、工序、步驟名稱、工具或參數鍵——會被略過並列出，因此重複執行同一個檔案不會造成傷害。
* 只有草稿版本會被變更，且匯入遵守與 BOM、BOP 編輯器相同的變更通知與發放鎖定。
* 如果某個零件被拒絕，會列出原因，且該零件的所有列都不會寫入。
* 當發放控制設為警告時，匯入會像編輯器一樣寫入已發放的修訂版，結果中會將該零件顯示於警告之下。

### 預設值與拒絕

空白儲存格會取得編輯器會提供的相同值：沒有**計量單位**的 BOM 明細會採用該物料自己的單位，沒有**工序類型**或**工序說明**的工序會採用其流程的類型與名稱。

編輯器拒絕的內容，匯入也會拒絕——BOM 明細指向零件本身或指向工具、服務，不是工具品項的工具，負數的數量、時間或成本，以及最大值低於最小值的步驟。檢驗工序需要檢驗計畫，而這無法以 CSV 表達，因此請在應用程式中建立。

## 期初庫存

**庫存 → 數量**上的三種匯入用來載入現有庫存——通常是上線導入時的一次性工作。

### 會過帳什麼

每一列都會成為一筆**正向調整**（Positive Adjmt.），並透過與手動庫存調整相同的核心過帳。這會產生一筆以今天為日期、以品項目前成本計算的品項分類帳分錄，以及整個檔案共用的單一庫存調整日記帳上的一組明細配對。成本為零的品項不會過帳日記帳明細。匯入期間不會執行庫存調整的業務規則，且匯入只能**增加**庫存——不會減少數量，也不會直接設定數量。

### 依追蹤類型選擇匯入

| 匯入 | 適用的追蹤方式 | 欄位 |
| - | - | - |
| **庫存數量** | **庫存** | 零件編號、修訂版、地點、儲存單位、數量、備註 |
| **批次數量** | **批次** | 零件編號、修訂版、地點、儲存單位、批次編號、數量、到期日、備註——每一列都會建立新的批次 |
| **序號數量** | **序號** | 零件編號、修訂版、地點、儲存單位、序號、到期日、備註——沒有數量欄，因為每一列就是一個單位 |

追蹤類型不同的品項所屬的列會失敗，並顯示指出正確匯入的錯誤。非庫存品項無法入庫。

### 欄位規則

* **零件編號 + 修訂版**必須能識別既有的品項；空白的修訂版會被當作 `0`，未知的品項則是錯誤。
* **地點**會在對應期間與您的其中一個地點配對。
* **儲存單位**為選填，會在該地點內依名稱比對，不分大小寫。指定不存在的儲存單位是錯誤——匯入不會建立儲存單位。
* **數量**必須為正數。
* **到期日**為選填，格式為 `YYYY-MM-DD`。若您對具有固定期限保存期限的品項省略，到期日會如同手動調整一樣計算。
* 沒有唯一 ID 欄時，這些匯入不會儲存 CSV ID 對應。

HEADS UP

**庫存數量檔案執行兩次會使庫存加倍**

以庫存方式追蹤的列沒有自然鍵，因此每次執行時，每個有效的列都會再次過帳。批次與序號的列有防護：品項已有的批次或序號（不論狀態）會被**略過**，同一檔案中第一列之後重複的編號也一樣。兩個不同的品項可以使用相同的序號。

## 讀取結果

失敗是逐列處理的——有問題的列會被回報，正常的列仍會匯入。報告包含：

| 報告部分 | 內容 |
| - | - |
| **inserted** / **updated** | 寫入了多少筆記錄。 |
| **errors** | 因缺少必要資料而需要修正並重新匯入的列，每列附有列號、原因與原始儲存格值。 |
| **skipped** | 刻意排除的列——檔案內的重複項或已存在的記錄——格式相同。 |

方法匯入將**零件**計為新增與更新，並加上 BOM 明細、工序、步驟、工具與參數的總數，例如「4 parts updated. Added: 6 BOM lines. 0 rows need fixing, 2 rows skipped.」（更新了 4 個零件。已新增：6 條 BOM 明細。0 列需要修正，略過 2 列。）

由於失敗的列保留了原始儲存格，結果畫面會直接指出需要修正的地方，不必再次閱讀您的檔案。只有發生嚴重錯誤時整個匯入才會失敗——檔案無法下載，或資料庫發生意外失敗——此時您會看到單一錯誤訊息，而不是逐列報告。

## 權限

HEADS UP

**於提交時檢查一次，因為匯入會繞過資料列層級安全性**

匯入函式使用繞過 RLS 的特權資料庫連線，因此 Alforse 會在您提交時檢查一次您的**匯入權限**。您需要對應模組的更新權限——客戶需要銷售、供應商需要採購、品項與方法需要零件、工作中心與流程需要生產、儲存單位與期初庫存需要庫存——否則匯入會在寫入任何內容之前被拒絕。期初庫存還需要庫存的建立權限，就像手動庫存調整一樣。

## 相關內容

**庫存**

現有庫存，以及期初庫存匯入所過帳的手動調整。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/inventory.md)

**方法**

BOM 與製程路徑，由方法匯入載入。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/methods.md)

**品項**

由品項匯入建立的零件、物料、工具、耗材與治具。

[Open](https://docs.alforse.com/zh-Hant/docs/reference/items.md)

**供應商與客戶**

由客戶與供應商匯入建立的合作夥伴記錄，含地址與條件。

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

**工作中心**

由工作中心匯入建立的產能記錄。

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


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