---
title: "如何使用自動化模組？"
description: "EMILY.RPA 自動化模組總覽：在訓練模式中選用自動化模組並加入技能流程的操作方式。"
source: https://docs.emily.tips/wap/intro
---

# 如何使用自動化模組？

EMILY.RPA 提供多種自動化模組讓使用者在設計技能時可以按需求選用並加入流程。在訓練模式下點擊主界面的「**回到設計首頁**」按鈕。

![](https://docs.emily.tips/img/zh/wap-011.png)

## 設計首頁

設計首頁可以上下捲動，瀏覽所有的自動化模組。在網址列填入搜尋關鍵字時會即時過濾出名稱與說明包含關鍵字的所有模組，例如輸入 `郵件` 會過濾出跟郵件有關的模組。

![](https://docs.emily.tips/img/zh/wap-012.png)

也可以點擊設計首頁左上方的「**ASK EMILY**」，以自然語言詢問 AI 哪些模組可能可以滿足你的需求，甚至嘗試描述流程的大致過程，讓 AI 來建議應該考慮使用哪些模組。

![](https://docs.emily.tips/img/zh/wap-013.png)

## No-Code 編輯器

絕大多數的模組都提供 No-Code 無程式碼編輯器，可以編輯模組參數或指令。以「**發送電子郵件**」模組為例，如果規則標準沒有太多變化，使用者可以在 No-Code 編輯器直接設定電子郵件信箱的參數。如果欄位提示出現 **%VAR%** 或 **%FILENAME%** 表示這個欄位接受變數，其中變數名稱對應到工作資料夾中的文檔的主檔名。例如：`%name%` 的內容會被工作資料夾中 `name.txt` 的檔案內容取代。

![](https://docs.emily.tips/img/zh/wap-014.png)

## Low-Code 編輯器

需要高度彈性或複雜規則的模組通常會另外提供 Low-Code 低程式碼編輯器，例如**發送電子郵件**」郵件主旨與附件檔案想以當天日期做命名，這時就可以採用 Low-Code 以 JavaScript 編寫彈性的規則。[moment.js](https://momentjs.com/docs/) 與 [lodash](https://lodash.com/docs/4.17.15) 都是內建函式庫，可以直接使用。模組執行時會先將無程式碼指令依序執行完畢再執行低程式碼中的腳本。

Low-Code 建議使用「**ASK EMILY**」讓 AI 根據需求生成程式碼。

![](https://docs.emily.tips/img/zh/wap-015.png)

生成後可以直接在對話中提交與測試，如果程式碼有錯 AI 也會重寫，這樣可以提高效率。

![](https://docs.emily.tips/img/zh/wap-016.png)

### Low-Code 共用 API

提供 Low-Code 編輯器的自動化模組都提供存取工作資料夾檔案的同步函式如下：
* api.files() - 列出工作資料夾中所有的檔案
* api.read(filename, encoding='utf8') - 讀取工作資料夾中的指定檔案
* api.write(filename, data) - 寫入工作資料夾中的指定檔案
* api.rename(oldname, newname) - 修改工作資料夾中指定檔案的名稱
* api.remove(filename) - 移除工作資料夾中的指定檔案

```javascript
// 一筆筆列出所有工作資料夾中的檔案
api.files().forEach((file) => console.log(file))

// 用 lodash.js _.filter() 函式過濾出檔名為 'jpg' 結尾的檔案，
const files = api.files()
console.log(_.filter(files, (file) => file.endsWith('jpg')))

// 讀取工作資料夾中的文字檔 price.txt
console.log(api.read('price.txt'))

// 使用 moment.js 產生自訂格式的日期字串，並寫出文字檔到工作資料夾中
api.write('time.txt', moment().format('HH:mm:ss'))

// 修改工作資料夾中的檔案名稱
api.rename('time.txt', 'currentTime.txt')

// 刪除工作資料夾中的檔案
api.remove('price.txt')
```
