Workiva 支持 Python 标准库和 Python 包索引 (PyPI)。可使用內建的腳本編輯器自動產生或在本機上手動建立相依性。
註: 目前僅可透過 Customize Workiva 使用腳本。深入了解。
要求
- 您的工作區必須啟用 Workiva Scripting。進一步了解 Workiva Scripting。
- Script Editor 角色需要用於創建或編輯腳本。
支援的函式庫
Workiva 腳本開箱即支援Python 的標準函式庫 ;您只需在程式碼中匯入該模組即可開始使用。這個函式庫包含內建模組,提供系統功能的存取,例如檔案 I/O,以及許多常見程式設計問題的標準化解決方案。
除了標準函式庫之外,從Python Package Index 也可以找到越來越多的元件。您需要在腳本中產生包含您要使用的 PyPI 元件的相依性。
我們常用的 PyPI 元件之一是 "requests "元件,它允許您透過Workiva Public APIs 與 Workiva 平台互動。
注意: 可能不支援需要額外安裝的 PyPI 元件。
使用腳本編輯器產生相依性
腳本編輯器可以自動建立您的相依性。
這裡是如何
- 從Home ,開啟 腳本檔案 (或建立新檔案)。
- 移至左側的Sources 面板,在目前來源下方的空白處按一下滑鼠右鍵,然後選擇+ Add Source File 。
- 建立一個新的原始碼,命名為:requirements.txt 。
- 在中央畫布中,新增一行指定要安裝的函式庫和版本。(這是我們範例圖片中的requests==2.28.1 行)。
- 按一下左上角的「儲存」。
- 重新載入您的螢幕。請勿跳過此步驟!
保存并刷新后,Workiva 会自动生成一个名为dependencies.zip 的依赖关系包。現在您可以在程式碼中使用該函式庫。
從您的本機產生相依性
若要手動建立相依性,您必須在本機建立套件,然後上傳到指令碼編輯器。例如,您可能有一個專案需要存取「requests」函式庫來執行腳本:
import requests print (requests.get('https://api.github.com').text) 這可由 using a pip 相容的套件管理程式完成:
- 定義要存取的「requests」函式庫版本為 pip 相容的格式;它應該儲存為 .TXT 檔案:
echo requests==2.26.0 > requirements.txt
- 安裝相依性到新的Dependencies 目錄:
pip3 install --target ./dependencies --requirement requirements.txt
- 建立dependencies.zip 檔案:
cd dependencies
zip -r ../dependencies.zip .
cd ...
- 在您的 Workiva Scripting 專案中,建立一個空的dependencies.zip 檔案:
curl -k -v -X POST \
-H 'Content-type: application/x-www-form-urlencoded;charset=UTF-8' \
-d "client_id=$CLIENT_ID&client_secret=$CLIENT_SECRET&grant_type=client_credentials" \
https://api.app.wdesk.com/iam/v1/oauth2/token - 若要取得端點的連結,請在指令碼編輯器上方的選單中點選Run Link :
curl -X POST https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
您應該會得到以下回應。您可以從那裡取得檔案 ID。
-H "Content-Type: application/json" -H "Authorization:Bearer $BEARER_TOKEN" \
-d '{"path": "dependencies.zip"}'
{"id":"<file-id>", "path": "dependencies.zip"} - 要在您的腳本中取得檔案 ID 的清單,提出 GET 請求:
curl -X GET https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files \
-H "Content-Type:application/json" \
-H "Authorization:Bearer $BEARER_TOKEN" - 上傳 dependencies.zip 檔案到新的檔案 ID:
curl -X PUT https://h.sandbox.wdesk.com/s/scripting/v0/scripts/<script-id>/files/<file-id> \
-H "Authorization:Bearer $BEARER_TOKEN" --data-binary @dependencies.zip - 若要測試「requests」函式庫,請執行包含下列程式碼的腳本:
import requests print (requests.get('https://api.github.com').text)
常見問題集|常見問題
支援哪些 API 和函式庫?
Workiva Scripting 目前支援
- Workiva 公共 API
- 非 Workiva API
- Python 標準函式庫
- Python 套件索引 (PyPI)
對其他語言的支援仍在考慮中,並可能在未來實現。
瞭解更多:支持的 Workiva Scripting 庫和相依性
Workiva Scripting 使用哪個版本的 Python?
Workiva 指令碼目前支援使用 Python 3.9 和 Python 3.13,對使用 Python 3.9 的支援將於 2026 年 3 月結束。
進一步了解:在 Workiva 中將指令碼遷移至 Python 3.13
Workiva 是否提供 Python 或 Java 等流行語言的 API 客戶端?
我們目前不提供 Python 或 Java 的公開 SDK。
但是,我們提供 Workiva API 的開放式 API 規格,因此您可以自行產生這些程式庫。例如,您可以獲取 Workiva Platform API 的 OAS 檔案,並生成用戶端程式庫 。
是否有特定於腳本的 API 可用?
腳本 API 端點 可在Workiva 的原型平台 API 中作為原型端點使用。
我如何為 Workiva Public APIs 建立和檢視 API 授權?
您需要按照這裡的說明 獲得一個用戶端 ID 和秘密。
如何使用 Python 授權進入 Workiva 公共 API?
以下程式碼片段會呼叫 IAM 服務以產生存取標記,然後用於驗證 Scripting 原型端點。它會取得 API 授權 (即用戶端) 在建立授權的工作區中可以存取的所有腳本清單。
import requests import json import os AUTH_URL = "https://api.app.wdesk.com/iam/v1/oauth2/token" SCRIPTING_API_URL = "https://api.app.wdesk.com/prototype/platform/scripts/" CLIENT_ID = os.getenv('CLIENT_ID') CLIENT_SECRET = os.getenv('CLIENT_SECRET') tokenResponse = requests.post( AUTH_URL, data = 'client_id=' + CLIENT_ID + '&client_secret=' + CLIENT_SECRET + '&grant_type=client_credentials', headers = {'Content-Type': 'application/x-www-form-urlencoded; \ charset=UTF-8'}) accessToken = 'Bearer ' + json.dataRes = requests.get(SCRIPTING_API_URL, headers = {'Authorization': accessToken}) print(json.loads(dataRes.text))
如何使用 Python 更新儲存格的格式?
Update Sheet Content 原型端點允許使用 Python 程式碼更新儲存格的格式。
我可以讀/寫或上傳儲存在 Workiva 中的非 Workiva 檔案嗎?
目前,還沒有可用於讀/寫或上傳儲存在 Workiva 中的非 Workiva 檔案的端點。
我可以程式化地建立和管理自動化嗎?
目前沒有可用於程式化建立或管理自動化的端點。