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. 安裝依賴

安裝必要的庫,如 seleniumpandas

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) }}
直播中

尚未有邦友留言

立即登入留言