
استخراج داده از فرمهای استاندارد با هوش مصنوعی در BPMS چگونه صورت میگیرد؟
در بسیاری از سازمانها، هنوز بخش قابل توجهی از دادههای مهم در قالب فرمهای کاغذی، قبضها و مستندات چاپی ذخیره میشوند. این دادهها معمولاً نقطهی شروع بسیاری از فرآیندهای سازمانی هستند، اما تا زمانی که وارد سیستمهای دیجیتال نشوند، عملاً قابل تحلیل یا پردازش نیستند.
از سوی دیگر، گاهی هم به دلیل محدودیتها، امکان ورود مستقیم دادهها به نرم افزار BPMS وجود ندارد. فرمها ممکن است از سوی سازمانهای دیگر ارسال شوند یا در قالبهایی استاندارد ولی غیردیجیتال وجود داشته باشند. در چنین شرایطی، نیاز به روشی وجود دارد که بتواند دادههای دنیای فیزیکی را به دنیای دیجیتال متصل کند. در این میان، ترکیب پایتون و BPMS راهحلی هوشمند و منعطف برای حل این چالش است. به کمک این ترکیب به شما روش استخراج داده از فرمهای استاندارد را آموزش میدهیم.
خواندن دادهها از فرمهای استاندارد با پایتون
پایتون میتواند بهعنوان یک ابزار واسط بین فرمهای فیزیکی و سیستم BPMS عمل کند. در مرحلهی اول، با استفاده از کتابخانههایی مانند pytesseract (برای OCR) و OpenCV (برای تشخیص موقعیت فیلدها)، اطلاعات از روی فرمهای اسکنشده استخراج میشود.
به عنوان مثال:
from PIL import Image
import pytesseract
image = Image.open(“TasvirSanad.jpg“)
text = pytesseract.image_to_string(image, lang=’fas’)
print(text)
تشخیص موقعیت یک ناحیه خاص از فرم (مختصات فیلد مبلغ) برای همه فیدها اینگار صورت میگیرد#
amount_area = image.crop((500, 700, 800, 750))
amount_text = pytesseract.image_to_string(amount_area)
سپس با استفاده از مختصات از پیش تعریفشده یا الگوریتمهای پردازش تصویر، فیلدهای مورد نیاز جدا و ساختار دادهای (مثلاً JSON) ایجاد میشود:
} = data
ِ“applicant_name”: “رضا احمدی”,
“request_date”: “1403/07/15”,
“amount”: “2500000”
{
پایتون میتواند در این مرحله علاوه بر خواندن، عملیات پاکسازی، اعتبارسنجی و تطبیق دادهها را نیز انجام دهد تا خطاهای انسانی حذف شوند.
انتقال دادهها به نرم افزار BPMS
پس از آمادهسازی دادهها، نوبت انتقال آنها به BPMS است تا فرآیند مورد نظر آغاز گردد. ما در این بخش به دو روش استفاده از API و درج مستقیم دادهها در دیتابیس اطلاعات می پردازیم.
روش اول – استفاده از API : از آنجا در یک نرم افزار BPMS مناسب امکان ارائه وب سرویس را بایستی پشتیبانی کند میتوان با فراخوانی وب سرویس مرتبط با درج اطلاعات، دیتا موجود را در بانک اطلاعاتی نرم افزار BPMS انتقال داد. به عنوان مثال کد زیر با استفاده از یک وب سرویس ساده این کار را انجام میدهد.
import requests, json
url = “https://katibe-bpms/api/process/start”
headers = {“Content-Type”: “application/json”}
} = data
“process_key“: “purchase_request“,
“variables”: }
“applicant_name”: “رضا احمدی”,
“request_date”: “1403/07/15”,
“amount”: “2500000”,
“description”: “خرید تجهیزات شبکه”
{
{
response = requests.post(url, headers=headers, data=json.dumps(data))
BPMS با دریافت این دادهها، فرآیند ثبت درخواست خرید را شروع کرده و اطلاعات را در دیتابیس فرآیند درج میکند. داستان فرایند از اینجا در دستان BPMS است. عملیات خودکاری سازی ارجاع و یا هر عملیاتی که شما میخواهید قابل تنظیم شدن در نرم افزار BPMS است.
روش دوم – درج مستقیم دادهها در پایگاه داده (Direct Database Insert)
در برخی موارد، سادهترین و سریعترین روش برای انتقال دادههای استخراجشده از فرمها، درج مستقیم آنها در پایگاه داده است. در این رویکرد، دادههایی که توسط پایتون یا ابزارهای هوشمند OCR از فرمها، قبضها یا فایلهای استاندارد استخراج شدهاند، بدون واسطه به جداول مقصد در بانک اطلاعاتی سازمان ارسال میشوند.
import pyodbc
اتصال به SQL Server#
)conn = pyodbc.connect
‘DRIVER={SQL Server};SERVER=ServerName;DATABASE=FTV_EO;UID=user;PWD=password’
)
()cursor = conn.cursor
دادههای استخراجشده از فرم#
} = form_data
“InvoiceNo”: “INV-2456”,
“CustomerName”: “شرکت مهندسین ورجاوند”,
“Amount”: 1450000,
“IssueDate”: “2025-10-08”
{
درج مستقیم در جدول#
“””)cursor.execute
INSERT INTO Invoices (InvoiceNo, CustomerName, Amount, IssueDate)
, “””(?, ?, ?, ?) VALUES
(form_data[“InvoiceNo“], form_data[“CustomerName“], form_data[“Amount“], form_data[“IssueDate“])
()conn.commit
()cursor.close
()conn.close
نکات فنی:
بهتر است برای امنیت بیشتر، دادهها قبل از درج اعتبارسنجی (Validation) شوند.
در BPMS میتوان این فرآیند را بهصورت Service Task یا Script Task فراخوانی کرد تا فرآیندها پس از درج موفق دادهها ادامه یابند.
در پروژههای بزرگ، توصیه میشود بهجای اتصال مستقیم، از Stored Procedure استفاده شود تا کنترل خطا و تراکنشها سادهتر باشد.
| ویژگی | روش API | روش Insert مستقیم در DB |
|---|---|---|
| پایداری در نسخههای آینده | ✅ بالا | ⚠️ پایین |
| امنیت و کنترل خطا | ✅ بالا | ⚠️ متوسط |
| سرعت در حجم بالا | ⚠️ متوسط | ✅ بالا |
| نیاز به شناخت ساختار DB | ❌ ندارد | ✅ زیاد دارد |
| توصیه در محیط تولید (Production) | ✅ بله | فقط در موارد خاص |
جدول این مقایسه دو روش API و درج مستقیم در Db
جمع بندی
دیجیتالیسازی فرمها، تنها یک گام فنی نیست، بلکه بخشی از مسیر تحول دیجیتال سازمانی است. با ترکیب توان پردازشی پایتون و قدرت مدیریتی BPMS، سازمانها میتوانند فرآیندهایی بسازند که دادهها را از هر منبعی – حتی فرمهای کاغذی – دریافت و پردازش کنند. این یعنی پایان دوبارهکاریها، کاهش خطا، و شروع عصری که در آن هر دادهای میتواند بخشی از یک فرآیند هوشمند شود.