iT邦幫忙

2024 iThome 鐵人賽

DAY 2
0

先集中處理當週資料,做出斷點

要將 Google 的當週信件寄送檔案(如 CSV 或 Excel)導入到 Odoo 並建檔,並利用 RPA 程式來自動化
我們預計採取的步驟:

1. 準備 Google 信件寄送檔案

首先,假設你已經有了 Google 郵件的寄送檔案,這些檔案通常是 CSV 或 Excel 格式的。將這些檔案下載到本地。

2. 將 Google 信件寄送檔案導入到 Odoo

A. 準備 Odoo 模組

  1. 建立一個 Odoo 模組: 如果你沒有現成的模組,可以建立一個自定義模組來處理導入操作。

  2. 新增模型和視圖:

    • 創建一個模型(例如 mail.send.record),用於儲存從 Google 信件寄送檔案中導入的資料。
    • 設定視圖和表單,以便在 Odoo 中查看和管理這些記錄。

B. 撰寫 Odoo 導入腳本

  1. 創建一個導入功能: 實現一個導入功能,將 CSV 或 Excel 檔案中的數據讀取並寫入到 Odoo 的模型中。
from odoo import models, fields, api
import csv
import base64
from io import StringIO

class MailSendRecord(models.Model):
    _name = 'mail.send.record'
    _description = 'Mail Send Record'

    date = fields.Date(string='Date')
    recipient = fields.Char(string='Recipient')
    subject = fields.Char(string='Subject')
    body = fields.Text(string='Body')

    def import_mail_records(self, file_data):
        file_content = base64.b64decode(file_data)
        file_stream = StringIO(file_content.decode('utf-8'))
        reader = csv.DictReader(file_stream)

        for row in reader:
            self.create({
                'date': row.get('Date'),
                'recipient': row.get('Recipient'),
                'subject': row.get('Subject'),
                'body': row.get('Body')
            })
  1. 設計導入介面: 創建一個用戶界面來上傳文件並觸發導入功能。
<record id="view_mail_send_record_import" model="ir.ui.view">
    <field name="name">mail.send.record.import</field>
    <field name="model">mail.send.record</field>
    <field name="arch" type="xml">
        <form string="Import Mail Records">
            <sheet>
                <group>
                    <field name="file_data" filename="file_data"/>
                    <button name="import_mail_records" string="Import" type="object" class="oe_highlight"/>
                </group>
            </sheet>
        </form>
    </field>
</record>

3. 撰寫 RPA 程式

以下是一個簡單的 RPA 程式示例,使用 Python 和 Selenium 來自動化文件上傳和導入。

A. 安裝依賴

安裝必要的庫,如 selenium 和 pandas:

pip install selenium pandas

B. 撰寫 RPA 腳本

from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
import pandas as pd
import time

# 設定 WebDriver 路徑
driver_path = '/path/to/chromedriver'
driver = webdriver.Chrome(executable_path=driver_path)

# 打開 Odoo 登入頁面
driver.get('http://your-odoo-instance.com/web/login')

# 登入 Odoo
driver.find_element(By.ID, 'login').send_keys('your-username')
driver.find_element(By.ID, 'password').send_keys('your-password')
driver.find_element(By.ID, 'password').send_keys(Keys.RETURN)

# 等待頁面加載
time.sleep(5)

# 打開導入界面
driver.get('http://your-odoo-instance.com/web#id=your_view_id&view_type=form&model=mail.send.record')

# 上傳文件
upload_element = driver.find_element(By.NAME, 'file_data')
upload_element.send_keys('/path/to/your/google_send_file.csv')

# 點擊導入按鈕
driver.find_element(By.XPATH, "//button[@name='import_mail_records']").click()

# 等待導入完成
time.sleep(10)

# 關閉瀏覽器
driver.quit()

4. 確認和測試

  1. 確認數據導入: 在 Odoo 的「Mail Send Record」模組中查看是否已成功導入數據。

  2. 測試 RPA 程式: 運行 RPA 程式並檢查結果,確保自動化過程正常工作。

總結

搬運 Google 信件到Odoo是希望由 Odoo 的數據導入達到更好的管理,因此上面是如何使用 RPA 來自動化這個過程。


上一篇
Odoo 從文件開始...
下一篇
E統計每周的單量和Email數量
系列文
挑戰CRM客戶支援系統搬到Odoo的跨平台RPA工程 共 31 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言