در شرکتهای پیمانکاری، سازمانهای پخش و زنجیره تامین و بانکها، بخش عمدهای از اطلاعات عملیاتی (شامل گزارشهای انبارگردانی، کارکرد ماهانه پرسنل، صورتوضعیتهای کارگاهی و لیست اقلام بارنامه) در قالب فایلهای اکسل (Microsoft Excel) توسط واحدهای مختلف تولید میشود. انتقال دستی این ردیفها به لیستهای شیرپوینت فرآیندی خستهکننده و همراه با خطای انسانی است. از سوی دیگر، ورود دستهای هزاران رکورد به یکباره باعث تریگر شدن همزمان هزاران نمونه گردشکار و در نتیجه فلج شدن سرویس SharePoint Timer Service (SPTimerV4) و قفل دیتابیسهای تراکنشی میشود.
پکیج یکپارچه SharePoint + Nintex + BoostSolutions Suite با ادغام بیش از ۲۰ ماژول کاربردی (بهویژه Excel Import، Column/View Permission و Cascading Lookups) با موتور گردشکار قدرتمند نینتکس، یک اکوسیستم بینقص برای پالایش، ورود امن و پردازش دستهای دادهها بدون خطر قفلشدگی سرورها فراهم میسازد. این مقاله مرجع، راهکارهای مهندسی همگامسازی دادههای حجیم، اعمال محدودیتهای دسترسی ستونی در فرمهای نینتکس، و تنظیم صفهای پردازش بهینه را تشریح میکند.
۱. معماری جریان همگامسازی اکسل با لیستهای شیرپوینت و مهار بار صف نینتکس #
برای جلوگیری از اشباع رم و پردازنده سرورهای Application در زمان ایمپورت فایلهای اکسل با بیش از ۵۰,۰۰۰ ردیف، از الگوی پردازش فازبندیشده (Chunked Batch Processing) استفاده میشود:
┌────────────────────────────────────────────────────────┐
│ فایل اکسل دادهها (Excel / CSV) │
│ [۵۰,۰۰۰ ردیف صورتوضعیت مالی و کارکرد] │
└──────────────────────────┬─────────────────────────────┘
│
▼
┌────────────────────────────────────────────────────────┐
│ موتور BoostSolutions Excel Import (Background) │
│ - اعتبارسنجی مقادیر ستونها با شروط لیست مقصد │
│ - درج دستهای (Batch Insert) در بستههای ۵۰۰ تایی │
│ - درج فیلد وضعیت: Status = "ImportedPendingApproval" │
└──────────────────────────┬─────────────────────────────┘
│
تزریق آرام به صف (Throttled Queue Ingestion)
│
▼
┌────────────────────────────────────────────────────────┐
│ تایمر جاب زمانبندیشده نینتکس │
│ - انتخاب ۵۰ آیتم در هر چرخه اجرای جاب │
│ - شروع State Machine فرآیند تاییدیه مالی │
│ - جلوگیری از ایجاد قفل در جدول NintexWorkflowProgress │
└────────────────────────────────────────────────────────┘
۲. جدول مقایسه سناریوهای مدیریت اکسل و امنیت ستونی #
جدول زیر تفاوت رویکردهای خام شیرپوینت با پکیج جامع BoostSolutions و نینتکس را تبیین مینماید:
| ویژگی عملیاتی | شیرپوینت خام بدون ابزار تجاری | راهکار ترکیبی BoostSolutions + Nintex |
|---|---|---|
| ایمپورت فایل اکسل به لیست موجود | صرفاً کپی/پیست در نمای Quick Edit با محدودیت ۱۰۰ سطر | ایمپورت مستقیم فایل اکسل، تطبیق ستونها و پشتیبانی از ۵۰,۰۰۰ سطر |
| بهروزرسانی رکوردهای قبلی با اکسل | غیرممکن (فقط ایجاد سطر جدید میکند) | امکان Update هوشمند بر اساس ستون کلید شناسه (ID / Code) |
| امنیت ستونها در فرمهای تاییدیه | تمام کاربران همه فیلدها را در لیست مشاهده میکنند | پنهانسازی یا فقطخواندنی کردن ستونهای حساس بر اساس نقش کاربر |
| امنیت نماها (View Permission) | کاربران به تمام ویوها دسترسی دارند | تفکیک دسترسی ویوها؛ هر دپارتمان صرفاً نمای مجاز خود را میبیند |
| رفتار گردشکار با رکوردهای حجیم | شروع ناگهانی و قفل دیتابیس (Timer Lockout) | مدیریت تریگر شرطی؛ شروع گردشکار صرفاً پس از تایید سرپرست دسته |
| پایداری در دیتاسنترهای ایزوله | نیازمند افزونههای مدرن با وابستگی به Cloud Graph | ۱۰۰٪ بستههای WSP محلی و مستقل از اینترنت با لایسنس دائمی فارم |
۳. ترکیب امنیت ستونی BoostSolutions با فرمهای Flexi-Task نینتکس #
یکی از چالشهای اساسی در فرآیندهای خرید، عدم افشای "برآورد سقف بودجه" در زمان استعلام قیمت از پیمانکاران است. با ماژول Column Permission، میتوان ستون بودجه را در نمای عمومی مخفی کرد، اما در تسک اختصاصی کارشناس مالی نینتکس آن را قابل رویت ساخت:
<!-- پیکربندی قانون دسترسی ستونی با BoostSolutions Column Permission -->
<ColumnPermissionSetting ListName="VendorQuotations">
<Column Name="EstimatedBudget">
<PermissionPolicy Type="DenyView">
<Principal Target="AllUsers" />
</PermissionPolicy>
<PermissionPolicy Type="AllowViewAndEdit">
<Principal Target="FinanceDirectors" />
<Principal Target="ProcurementManagers" />
</PermissionPolicy>
</Column>
<Column Name="VendorProposedPrice">
<PermissionPolicy Type="ReadOnly">
<Condition Field="QuotationStatus" Operator="Equal" Value="LockedForEvaluation" />
</PermissionPolicy>
</Column>
</ColumnPermissionSetting>
۴. اسکریپت پاورشل اتوماسیون پالایش صفهای پردازش نینتکس #
برای تضمین عدم کندی پایگاه داده نینتکس در مواجهه با تراکنشهای حاصل از ورود فایلهای اکسل، اسکریپت زیر تایمر جابهای صف را تنظیم و ایندکسهای دیتابیس را مانیتور میکند:
<#
.SYNOPSIS
Optimize Nintex Timer Jobs and BoostSolutions Batch Integration
#>
$ErrorActionPreference = "Stop"
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
Write-Host "[CONFIG] Optimizing Nintex Engine for Bulk Excel Imports..." -ForegroundColor Cyan
# 1. Adjust Workflow Timer Job Schedule to run smoothly
$timerJob = Get-SPTimerJob | Where-Object { $_.Name -eq "job-workflow" }
if ($timerJob) {
Write-Host "[SCHEDULE] Setting Workflow Timer Job to execute every 1 minute..." -ForegroundColor Yellow
Set-SPTimerJob -Identity $timerJob -Schedule "every 1 minutes between 0 and 59"
}
# 2. Check Throttling on High-Volume Import Lists
$web = Get-SPWeb "https://portal.licentra.lan"
$list = $web.Lists["صورتوضعیتهای پیمانکاران"]
if ($list) {
Write-Host "[LIST-OPT] Configuring List Indexing and Threshold Overrides..." -ForegroundColor Cyan
$list.EnableThrottling = $true
# Ensure Key Column is Indexed for Fast Upserting
$keyField = $list.Fields["ContractID"]
if (-not $keyField.Indexed) {
$keyField.Indexed = $true
$keyField.Update()
Write-Host "[INDEX] Indexed ContractID for high-speed Excel Lookups." -ForegroundColor Green
}
}
Write-Host "[SUCCESS] Farm parameters tuned for massive batch workflows." -ForegroundColor Green
۵. چکلیست استقرار و ممیزی پایداری در شبکه Air-Gapped #
جهت اطمینان از عملکرد پایدار در شبکههای عملیاتی بدون اینترنت:
-
1
نصب پکیجهای WSP با Farm Account: تمامی ماژولهای BoostSolutions باید با دسترسی اکانت مزرعه نصب گردند تا در سرورهای Front-End و App یکسانسازی شوند.
-
2
بررسی لایسنس دائمی بر مبنای Farm ID: کلیدهای لایسنس سازمانی برای هر دو محصول در Central Administration شیرپوینت ثبت گردند.
-
3
فعالسازی سرویس لاگینگ اختصاصی: در صورت بروز هرگونه خطا در تبدیل مقادیر ستونهای تاریخ شمسی یا عددی اکسل، لاگهای تفصیلی در پوشه ۱۶ Hive شیرپوینت ثبت شوند تا در فرآیند نگهداری عیبیابی گردند.



