حذف رکورد تکراری در اودو ۲۰: ادغام، بازیافت و یکدست کردن داده با اپ پاک‌سازی داده

اودو ۲۰ · · ۱۱ دقیقه مطالعه · سطح متوسط

حذف رکورد تکراری در اودو معمولاً بعد از اولین ایمپورت بزرگ لازم می‌شود: مشتری‌ای که یک بار با «شرکت» و یک بار با «شركت» ثبت شده، سرنخی که دو بار از فرم سایت آمده، یا شماره‌هایی که هر کدام به یک شکل نوشته شده‌اند. اپ پاک‌سازی داده (Data Cleaning) این‌ها را با قاعده پیدا می‌کند، تکراری‌ها را در یک رکورد ادغام می‌کند، رکوردهای کهنه را بایگانی یا حذف می‌کند و فیلدها را یکدست می‌کند. در این آموزش هر سه کار را با منوهای اودو ۲۰ قدم‌به‌قدم می‌رویم.

در این آموزش یاد می‌گیرید

  • قاعده‌ی پیدا کردن تکراری بسازید و رکوردهای تکراری را در یک رکورد اصلی ادغام کنید
  • رکوردهای کهنه را با قاعده‌ی بازیافت بایگانی یا حذف کنید
  • نام، تلفن و متن را با قاعده‌ی پاک‌سازی فیلد یکدست کنید
  • اقدام «ادغام» را برای مدل‌های دیگر روشن یا خاموش کنید
  • بدانید «ی» و «ک» عربی و نیم‌فاصله چطور جلوی پیدا شدن تکراری‌های فارسی را می‌گیرند

پیش‌نیاز

اپ پاک‌سازی داده از چند ماژول ساخته شده است. ماژول پایه‌ی بازیافت (data_recycle) در کامیونیتی هم هست؛ پاک‌سازی فیلد (data_cleaning) و پیدا کردن و ادغام تکراری‌ها (data_merge) فقط در اینترپرایز هستند. چند ماژول اختصاصی هم هست: حذف تکراری در CRM، اقدام ادغام برای میز خدمات و پروژه، و هشدار ادغام کالا وقتی ممکن است روی ارزش‌گذاری انبار اثر بگذارد. برای نصب، نصب اپ و ماژول در اودو را ببینید. مدیر اقدام ادغام به حالت توسعه‌دهنده نیاز دارد. فرق ویرایش‌ها در راهنمای اودو کامیونیتی یا اینترپرایز آمده است.

پاک‌سازی داده در اودو؛ سه کار اصلی

حذف تکراری (Deduplication)
رکوردهای مشابه را با قاعده پیدا و در یک رکورد اصلی ادغام می‌کند.
بازیافت (Recycle)
رکوردهای کهنه را پیدا می‌کند تا بایگانی یا حذف شوند.
پاک‌سازی فیلد (Field Cleaning)
متن فیلدها را طبق قاعده یکدست می‌کند؛ مثلاً فاصله‌های اضافه یا قالب تلفن.

هر سه با قاعده کار می‌کنند و قاعده را برای هر مدل پایگاه داده (مخاطب، سرنخ، کالا، کار پروژه و…) جدا می‌سازید. قاعده‌ها به‌طور پیش‌فرض روزی یک بار با یک اقدام زمان‌بندی‌شده اجرا می‌شوند و هر قاعده را هر وقت خواستید دستی هم می‌توانید اجرا کنید.

ساختن قاعده‌ی حذف تکراری

قاعده می‌گوید دو رکورد کی تکراری حساب شوند. به پاک‌سازی داده ‣ پیکربندی ‣ حذف تکراری Data Cleaning ‣ Configuration ‣ Deduplication بروید و یک قاعده‌ی پیش‌فرض را باز کنید یا «جدید» را بزنید.

  1. «مدل» (Model) را انتخاب کنید، مثلاً مخاطب. عنوان قاعده خودش نام مدل را می‌گیرد.
  2. اگر لازم است، «دامنه» (Domain) بگذارید تا فقط بخشی از رکوردها بررسی شوند؛ مثلاً فقط شرکت‌ها. تعداد رکوردهای مشمول کنار پیوند «# رکورد» دیده می‌شود.
  3. بسته به مدل، فیلد «حذف تکراری» (Duplicate Removal) پیدا می‌شود: رکوردهای ادغام‌شده بایگانی (Archive) شوند یا حذف (Delete).
  4. «حالت ادغام» (Merge Mode) را انتخاب کنید. «دستی» (Manual) یعنی هر گروه تکراری را خودتان ادغام می‌کنید و فیلد «خبر دادن به کاربران» هم باز می‌شود. «خودکار» (Automatic) یعنی گروه‌هایی که شباهتشان از «آستانه‌ی شباهت» (Similarity Threshold) بالاتر است بدون خبر به کاربران ادغام می‌شوند.
  5. کلید «فعال» (Active) را روشن کنید تا قاعده از همان ذخیره شروع به کار کند.
  6. در بخش «قاعده‌های حذف تکراری» با «Add a line» دست‌کم یک سطر بسازید: «فیلد شناسه‌ی یکتا» (Unique ID Field)، یعنی فیلدی که با آن مقایسه می‌شود، و شرط «تطبیق اگر» (Match If): «تطبیق کامل» (Exact Match) یا «تطبیق بدون حساسیت به حروف بزرگ و کوچک و اعراب» (Case/Accent Insensitive Match).

بدون دست‌کم یک سطر در «قاعده‌های حذف تکراری»، قاعده هیچ تکراری‌ای پیدا نمی‌کند. در پایگاه داده‌ی چندشرکتی فیلد «بین شرکت‌ها» (Cross-Company) هم هست تا تکراری‌های شرکت‌های مختلف هم پیشنهاد شوند. با حالت توسعه‌دهنده، فیلد «آستانه‌ی پیشنهاد» (Suggestion Threshold) هم دیده می‌شود؛ تکراری‌هایی که شباهتشان از آن کمتر است پیشنهاد نمی‌شوند.

اجرای دستی قاعده

قاعده را از همان منو باز کنید و «حذف تکراری» (Deduplicate) را بالای فرم بزنید. دکمه‌ی هوشمند «تکراری‌ها» (Duplicates) تعداد موارد پیدا شده را نشان می‌دهد؛ رویش بزنید تا به فهرست ادغام بروید.

اشتباه رایج

حالت خودکار را روی فیلد نام شروع نکنید. دو شعبه‌ی یک شرکت یا دو مشتری هم‌نام ممکن است تکراری به نظر برسند ولی دو رکورد جدا باشند. اول با حالت دستی چند هفته نتیجه را ببینید، بعد اگر خواستید خودکار کنید.

ادغام رکوردهای تکراری

به پاک‌سازی داده ‣ حذف تکراری Data Cleaning ‣ Deduplication بروید. نوار کناری «قاعده» (RULE) قاعده‌های فعال را با تعداد تکراری‌های هر کدام نشان می‌دهد. پیش‌فرض «همه» (All) انتخاب است و رکوردها بر اساس قاعده گروه شده‌اند، هر گروه با درصد «شباهت» (Similarity). ستون‌ها این‌ها هستند: تاریخ ساخت، نام، مقدار فیلدهایی که با آن‌ها تکراری پیدا شده، «استفاده‌شده در» (مدل‌های دیگری که به رکورد ارجاع می‌دهند)، شناسه و «رکورد اصلی» (Is Master).

  1. در هر گروه، رکورد اصلی (Master) را انتخاب کنید؛ اطلاعات بقیه در آن ادغام می‌شود و هر گروه فقط یک رکورد اصلی دارد. اگر انتخاب نکنید، اودو یکی را به تصادف برمی‌دارد.
  2. «ادغام» (Merge) را بالای گروه بزنید و با «Ok» تأیید کنید.

بعد از ادغام، پیامی درباره‌ی آن در گفت‌وگوی رکورد (چتر) رکورد اصلی ثبت می‌شود. برای بعضی رکوردها، مثل کارهای پروژه، پیوندی به رکورد قدیمی هم در همان پیام می‌ماند.

نکته

گروهی را که واقعاً تکراری نیست با «کنار گذاشتن» (DISCARD) از فهرست بیرون ببرید؛ پنهان و بایگانی می‌شود. گروه‌های کنارگذاشته را با فیلتر «کنارگذاشته» (Discarded) در نوار جست‌وجو ببینید.

برای ادغام دستی چند مخاطب از خود اپ مخاطبان، بدون قاعده، ادغام مخاطبان تکراری را ببینید.

بازیافت رکوردهای کهنه

قاعده‌های بازیافت به‌طور پیش‌فرض وجود ندارند. به پاک‌سازی داده ‣ پیکربندی ‣ بازیافت رکوردها Data Cleaning ‣ Configuration ‣ Recycle Records بروید و «جدید» را بزنید:

  1. «مدل» را انتخاب کنید و اگر لازم است «فیلتر» (Filter) بگذارید تا فقط بخشی از رکوردها مشمول شوند.
  2. «فیلد زمان» (Time Field) را انتخاب کنید، مثلاً «آخرین به‌روزرسانی». بعد «فاصله» (Delta) را به عدد صحیح بنویسید و «واحد فاصله» (Delta Unit) را روز، هفته، ماه یا سال بگذارید.
  3. «حالت بازیافت» (Recycle Mode) را دستی یا خودکار بگذارید. حالت دستی فیلد «خبر دادن به کاربران» را هم باز می‌کند.
  4. «اقدام بازیافت» (Recycle Action) را بایگانی یا حذف بگذارید. اگر حذف را انتخاب کنید، مشخص کنید رکوردهای بایگانی‌شده هم مشمول شوند یا نه (Include Archived).

مستندات اودو این مثال را می‌آورد: سرنخ‌ها و فرصت‌های بایگانی‌شده‌ای که یک سال است به‌روز نشده‌اند و دلیل باختشان «خیلی گران» است، خودکار حذف شوند. برای اجرای فوری، قاعده را باز کنید و «اجرا» (Run Now) را بزنید؛ دکمه‌ی هوشمند «رکوردها» تعداد را نشان می‌دهد.

فهرست رکوردهای پیدا شده در پاک‌سازی داده ‣ بازیافت رکوردها Data Cleaning ‣ Recycle Records است. روی هر سطر «تأیید» (Validate) را بزنید تا طبق قاعده بایگانی یا حذف شود، یا «کنار گذاشتن» (Discard) را بزنید تا آن رکورد دیگر هیچ‌وقت با این قاعده پیدا نشود.

اشتباه رایج

حذف خودکار برگشت ندارد. برای شروع، اقدام بازیافت را «بایگانی» و حالت را «دستی» بگذارید؛ رکورد بایگانی‌شده با فیلتر بایگانی‌شده‌ها پیدا می‌شود و برمی‌گردد.

پاک‌سازی فیلد: فاصله، حروف، تلفن و HTML

به پاک‌سازی داده ‣ پیکربندی ‣ پاک‌سازی فیلد Data Cleaning ‣ Configuration ‣ Field Cleaning بروید. یک قاعده‌ی پیش‌فرض برای مخاطب آماده است؛ بازش کنید یا «جدید» را بزنید. مدل را انتخاب کنید و در بخش «قاعده‌ها» با «Add a line» فیلد و اقدام را مشخص کنید:

  • حذف فاصله (Trim Spaces): «همه‌ی فاصله‌ها» (All Spaces) یا «فاصله‌های اضافه» (Superfluous Spaces)، یعنی فاصله‌ی اول و آخر و فاصله‌های پشت سر هم.
  • حروف بزرگ و کوچک (Set Type Case): حرف اول بزرگ، همه بزرگ یا همه کوچک؛ برای نام‌های لاتین.
  • قالب تلفن (Format Phone): شماره را به قالب بین‌المللی کشور برمی‌گرداند.
  • حذف HTML (Scrap HTML): متن HTML را به متن ساده تبدیل می‌کند.

بعد «حالت پاک‌سازی» (Cleaning Mode) را دستی یا خودکار بگذارید. برای اجرای فوری «پاک‌سازی» (Clean) را روی فرم قاعده بزنید. پیشنهادها در پاک‌سازی داده ‣ پاک‌سازی فیلد Data Cleaning ‣ Field Cleaning با ستون‌های «فعلی» (Current) و «پیشنهادی» (Suggested) می‌آیند؛ هر سطر را تأیید یا کنار بگذارید.

اشتباه رایج

«همه‌ی فاصله‌ها» را روی نام فارسی نگذارید؛ «علی رضایی» می‌شود «علیرضایی». برای نام‌ها فقط «فاصله‌های اضافه» را بزنید.

مدیر اقدام ادغام

اقدام «ادغام» (Merge) در منوی اقدامات (Actions) فقط برای بعضی مدل‌ها روشن است. حالت توسعه‌دهنده را روشن کنید و به پاک‌سازی داده ‣ پیکربندی ‣ مدیر اقدام ادغام Data Cleaning ‣ Configuration ‣ Merge Action Manager بروید. برای هر مدل، ستون «قابل ادغام» (Can Be Merged) را روشن یا خاموش کنید. برای دیدن مدل‌هایی که از اول روشن‌اند، در نوار جست‌وجو با «قابل ادغام» فیلتر بزنید.

بومی‌سازی پاک‌سازی داده اودو برای ایران

بیشتر تکراری‌های پایگاه داده‌ی فارسی از نویسه‌ها می‌آیند، نه از بی‌دقتی. فهرست کامل بومی‌سازی در راهنمای بومی‌سازی اودو آمده است؛ این‌ها مخصوص پاک‌سازی داده است:

  • ی و ک عربی: «ي» و «ك» عربی نویسه‌هایی جدا از «ی» و «ک» فارسی‌اند؛ «شرکت» و «شركت» برای «تطبیق کامل» یکی نیستند. مستندات اودو فقط می‌گوید تطبیق «بدون حساسیت» حروف بزرگ و کوچک و اعراب را نادیده می‌گیرد و نمی‌گوید این دو را یکی حساب می‌کند. نکته: روی چند رکورد آزمایشی امتحان کنید، و تا مطمئن نشده‌اید قاعده را روی ایمیل یا تلفن بگذارید که به این نویسه‌ها حساس نیستند.
  • نیم‌فاصله: «فروشگاه‌آریا» با نیم‌فاصله، با فاصله و بی‌فاصله سه رشته‌ی متفاوت‌اند. اقدام حذف فاصله در مستندات فقط از فاصله حرف می‌زند، پس روی نیم‌فاصله حساب نکنید. نکته: این‌ها را پیش از ایمپورت در فایل یکدست کنید (توضیح در ورود و خروج داده در اودو).
  • یکدست کردن نویسه‌ها: اقدام‌های پاک‌سازی فیلد در مستندات چهار تاست (فاصله، حروف، تلفن، HTML) و جایگزینی «ي» با «ی» در آن‌ها نیست. نکته: رکوردها را خروجی بگیرید، نویسه‌ها را در فایل جایگزین کنید و با همان شناسه دوباره ایمپورت کنید تا رکوردها به‌روز شوند، نه تکرار.
  • تلفن ایرانی: پیش از روشن کردن قالب تلفن در حالت خودکار، آن را در حالت دستی روی چند شماره‌ی ایرانی ببینید و کشور مخاطب‌ها را ایران بگذارید. رقم فارسی و لاتین را هم یکدست کنید؛ «۰۹۱۲» و «0912» برای مقایسه یکی نیستند.
  • تاریخ شمسی: ستون تاریخ ساخت در داشبورد تکراری‌ها در اودوی خام میلادی است. در اودوی بومی‌شده‌ی وستا تقویم شمسی در همه‌ی ماژول‌ها هست، با رابط فارسی و راست‌چین.

اگر داده از نرم‌افزار قبلی‌تان می‌آید، اودو به نرم‌افزار فعلی‌تان وصل می‌شود و همه‌ی داده و پایگاه داده مال خود شماست. مسیر انتقال در راهنمای مهاجرت به اودو آمده است.

یک مثال ایرانی

یک شرکت پخش لوازم خانگی در تبریز ۱۲ هزار مخاطب را از نرم‌افزار قبلی و چند فایل اکسل فروشنده‌ها به اودو آورده است. نیمی از فایل‌ها با صفحه‌کلید عربی تایپ شده‌اند. اول در فایل‌ها «ي» و «ك» را با «ی» و «ک» عوض می‌کند و با همان شناسه دوباره ایمپورت می‌کند. بعد یک قاعده‌ی حذف تکراری روی مخاطب می‌سازد که ایمیل را با تطبیق کامل مقایسه می‌کند، در حالت دستی و با «بایگانی» برای رکوردهای ادغام‌شده.

مسئول داده هر صبح ده دقیقه داشبورد تکراری‌ها را مرور می‌کند، رکوردی را که در ستون «استفاده‌شده در» ارجاع بیشتری دارد اصلی می‌کند و ادغام می‌زند؛ دو شعبه‌ی یک فروشگاه را که ایمیل مشترک دارند کنار می‌گذارد. یک قاعده‌ی پاک‌سازی فیلد فاصله‌های اضافه‌ی نام را می‌گیرد و یک قاعده‌ی بازیافت، سرنخ‌هایی را که دو سال است به‌روز نشده‌اند بایگانی می‌کند. سه ماه بعد گزارش فروش هر مشتری یک سطر دارد، نه دو سطر.

پرسش‌های رایج درباره‌ی حذف رکورد تکراری در اودو

چطور رکورد تکراری را در اودو حذف کنم؟

در پاک‌سازی داده ‣ پیکربندی ‣ حذف تکراری یک قاعده با مدل، فیلد مقایسه و شرط تطبیق بسازید و فعالش کنید. بعد در پاک‌سازی داده ‣ حذف تکراری، در هر گروه رکورد اصلی را انتخاب کنید و «ادغام» را بزنید. رکوردهای ادغام‌شده طبق قاعده بایگانی یا حذف می‌شوند.

اپ پاک‌سازی داده در اودو کامیونیتی هست؟

فقط بخش بازیافت رکورد (ماژول data_recycle). پیدا کردن و ادغام تکراری‌ها (data_merge) و پاک‌سازی فیلد (data_cleaning) فقط در اینترپرایز هستند. ادغام دستی مخاطبان از منوی اقدامات اپ مخاطبان جداست.

ادغام رکورد در اودو برگشت‌پذیر است؟

خود ادغام برنمی‌گردد. اگر در قاعده «حذف تکراری» را روی بایگانی بگذارید، رکوردهای ادغام‌شده بایگانی می‌شوند و از بین نمی‌روند، و پیام ادغام در گفت‌وگوی رکورد اصلی می‌ماند. برای همین شروع با حالت دستی و بایگانی امن‌تر است.

چرا اودو «علي» و «علی» را تکراری پیدا نمی‌کند؟

چون «ي» عربی و «ی» فارسی دو نویسه‌ی جدا هستند و مستندات اودو نمی‌گوید تطبیق بدون حساسیت آن‌ها را یکی حساب کند. قاعده را روی ایمیل یا تلفن بگذارید و نویسه‌ها را با خروجی گرفتن، جایگزینی و ایمپورت دوباره یکدست کنید.

قاعده‌های پاک‌سازی داده کی اجرا می‌شوند؟

قاعده‌های حذف تکراری، بازیافت و پاک‌سازی فیلد به‌طور پیش‌فرض روزی یک بار با اقدام زمان‌بندی‌شده اجرا می‌شوند. هر قاعده را هم می‌شود از فرم خودش دستی اجرا کرد: «حذف تکراری»، «اجرا» یا «پاک‌سازی».

منبع و مجوز

ترجمه، ویرایش و بومی‌سازی غیررسمی وستا از مستندات Odoo 20؛ تغییرات: ترجمه‌ی فارسی، مثال‌ها و بخش بومی‌سازی برای ایران. این صفحه مانند منبع با مجوز CC BY-SA 4.0 منتشر می‌شود. Odoo نشان تجاری Odoo S.A. است و این صفحه وابسته به آن نیست. صفحه‌ی اصلی: پاک‌سازی داده در مستندات Odoo 20 · متن مجوز

  1. Odoo 20 documentation: Data Cleaning
  2. Odoo 20: Merge contacts
  3. Odoo 20: Merge similar leads and opportunities