در سازمانهای صنعتی، هلدینگهای بازرگانی و بانکها، فرمهای مالی مانند پیشفاکتورهای خرید، اسناد تسویه تنخواه، سفارشات کالا و درخواستهای پروپوزال (RFP)، دارای ساختار جدولی اقلام (Master-Detail) با صدها ردیف کالا، محاسبات پیچیده مالیات بر ارزش افزوده، تخفیفات پلکانی و اعتبارسنجی سقف بودجه مراکز هزینه هستند. فرمسازهای ساده توانایی مدیریت این حجم از روابط تکرارشونده و فرمولهای تو در تو را ندارند و از طرفی موتورهای گردشکار سنتی بدون فرمهای پیشرفته قادر به اخذ تاییدیههای تفکیکی نیستند.
ترکیب پلتفرم بومی مایکروسافت شیرپوینت با فرمساز فوقالعاده منعطف BPC Power Forms و موتور جریان کار Nintex Workflow Enterprise در قالب بسته یکپارچه SharePoint + Nintex + BPC Suite، قدرتمندترین زیرساخت توسعه سامانههای بدون کد (Low-Code/No-Code) را در شبکههای ایزوله پدافندی خلق میکند. این راهنما، معماری پیادهسازی فرمهای چندمرحلهای مالی، اتصال اقلام تکرارشونده به جداول دیتابیس، و هندشیک پایدار میان فرم و گردشکار را تشریح میکند.
۱. معماری جریان داده بین فرم BPC و موتور گردشکار نینتکس #
در این معماری، کاربر اطلاعات سربرگ سند و اقلام را در فرم ویژارد (Step-by-Step) ثبت میکند. فرم BPC دادهها را به صورت همزمان در لیست اصلی و لیست اقلام وابسته (Child Items) درج کرده و یک شیوه اعتبارسنجی رمزنگاریشده (Checksum) تولید میکند تا از دستکاری دادهها قبل از شروع فرآیند جلوگیری شود:
┌────────────────────────────────────────────────────────┐
│ فرم چندمرحلهای مالی BPC Power Forms (Client) │
│ - تب ۱: اطلاعات عمومی درخواست و مرکز هزینه │
│ - تب ۲: جدول اقلام Master-Detail با محاسبات مالیات │
│ - تب ۳: پیوست فاکتورها و اعتبارسنجی سقف بودجه │
└──────────────────────────┬─────────────────────────────┘
│
ذخیره اتمیک (Atomic Save Pipeline)
│
▼
┌────────────────────────────────────────────────────────┐
│ لایههای ذخیرهسازی شیرپوینت │
│ [لیست سربرگ درخواستها] ◄─── ارتباط کلید خارجی ───► [لیست اقلام خرید] │
└──────────────────────────┬─────────────────────────────┘
│
رویداد ItemAdded (Event Receiver)
│
▼
┌────────────────────────────────────────────────────────┐
│ موتور گردشکار نینتکس (Nintex State Machine) │
│ - وضعیت ۱: بررسی کارشناس خرید و کنترل اعتبار بودجه │
│ - وضعیت ۲: تاییدیه مدیر مالی و صدور حواله پرداخت │
│ - وضعیت ۳: امضای دیجیتال مدیریت و بایگانی سند حسابداری │
└────────────────────────────────────────────────────────┘
۲. جدول مقایسه توسعه بومی شیرپوینت با راهکار ترکیبی نینتکس و BPC #
جدول زیر نشاندهنده تفاوتهای عملیاتی رویکردهای مختلف در توسعه فرمهای سازمانی است:
| مؤلفه ارزیابی فنی | توسعه با InfoPath / Power Apps | توسعه ترکیبی با Nintex + BPC Suite |
|---|---|---|
| وابستگی ابری و اینترنت | اجباری در Power Apps (عدم کارکرد در Air-Gapped) | ۱۰۰٪ مستقل و محلی بر روی سرورهای دیتاسنتر داخلی |
| مدیریت اقلام Master-Detail | بسیار کند و شکستخورده در بیش از ۳۰ ردیف | پشتیبانی از صدها ردیف کالا همراه با صفحهبندی و محاسبات آنی |
| محاسبات ریاضی و شرطی | نیازمند اسکریپتهای سنگین C# در سمت سرور | موتور فرمولنویسی مشابه اکسل در مرورگر کاربر |
| کنترل دسترسی تبها و فیلدها | نیازمند کدهای غیرپایدار DOM Injection | تنظیمات ویژوال و امن بر اساس ماتریس گروههای کاربری |
| سرعت تغییر فرآیندها | نیازمند هفتهها بازنویسی کد و کامپایل WSP | تغییر گرافیکی منطق فرآیند در کمتر از چند دقیقه |
| لایسنس فارم و کاربران | لایسنسهای نامشخص و سردرگمی نامگذاری | صدور پکیج دائمی یکپارچه برای کل مزرعه شیرپوینت |
۳. فرمولهای محاسبات مالی در فرم BPC Power Forms #
در فرمهای مالی، مقادیر ستونهای جمع کل، مالیات بر ارزش افزوده (VAT) و تخفیفات به صورت بیدرنگ با فرمولهای توکار BPC ارزیابی میشوند:
// محاسبه قیمت خالص ردیف اقلام با در نظر گرفتن تخفیف و مالیات
// Row Item Formula:
var unitPrice = [ItemUnitPrice];
var quantity = [ItemQuantity];
var discountRate = [ItemDiscountPercent] / 100;
var vatRate = 0.10; // نرخ مصوب مالیات بر ارزش افزوده ۱۰٪
var rawTotal = unitPrice * quantity;
var discountedTotal = rawTotal * (1 - discountRate);
var vatAmount = discountedTotal * vatRate;
var finalRowTotal = discountedTotal + vatAmount;
return Math.round(finalRowTotal);
و جهت تجمیع ستون اقلام در فیلد سربرگ درخواست:
// محاسبه جمع کل پرداختی در سربرگ فاکتور (Master Header)
var totalInvoice = SUM([PurchaseItemsTable.FinalRowTotal]);
var costCenterLimit = [CostCenterBudgetRemaining];
if (totalInvoice > costCenterLimit) {
SetControlError("CostCenterWarning", "مبلغ کل فاکتور فراتر از مانده بودجه مرکز هزینه انتخابشده است!");
DisableSubmitButton();
} else {
ClearControlError("CostCenterWarning");
EnableSubmitButton();
}
return totalInvoice;
۴. طراحی ماتریس مصوبات در State Machine نینتکس بر اساس سقف اختیارات #
هنگامی که فرم ذخیره شد، نینتکس بر اساس مبلغ نهایی فاکتور، مسیر مصوبات را به صورت خودکار هدایت میکند:
-
مبالغ زیر ۱۰۰ میلیون تومان: صرفاً تایید مدیر مستقیم واحد متقاضی و رئیس حسابداری.
-
مبالغ بین ۱۰۰ تا ۵۰۰ میلیون تومان: اضافه شدن تایید مدیر مالی و معاونت مربوطه.
-
مبالغ بالای ۵۰۰ میلیون تومان: هدایت به وضعیت تایید مدیرعامل و هیئتمدیره.
<!-- نمونه تعریف وضعیتهای State Machine در پایپلاین نینتکس -->
<NintexStateMachine Name="InvoiceApprovalProcess">
<State Name="DirectManagerReview">
<Action Type="AssignFlexiTask" Approver="{Item:ManagerID}" />
<Transition Condition="Approved" NextState="CheckFinancialThreshold" />
<Transition Condition="Rejected" NextState="NotifyInitiatorRejection" />
</State>
<State Name="CheckFinancialThreshold">
<Action Type="CalculateCondition" Expression="{Item:TotalAmount} > 500000000" />
<Transition Condition="True" NextState="CEOApproval" />
<Transition Condition="False" NextState="FinanceDirectorPayment" />
</State>
</NintexStateMachine>
۵. اسکریپت استقرار و اعتبارسنجی WSP در فارم ایزوله با PowerShell #
اسکریپت زیر پکیجهای WSP مربوط به فرمساز BPC و ماژولهای اتصال نینتکس را بر روی کل وباپلیکیشنهای فارم مستقر میسازد:
<#
.SYNOPSIS
Automated Deployment of BPC Power Forms and Nintex Integration to SharePoint Farm
#>
$ErrorActionPreference = "Stop"
Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue
Write-Host "[DEPLOY] Initializing BPC Power Forms & Nintex Suite Setup..." -ForegroundColor Cyan
$packagePath = "C:\Deploy\BPC.PowerForms.Enterprise.wsp"
if (-not (Test-Path $packagePath)) {
throw "[FATAL] Package file not found: $packagePath"
}
# Add and install solution globally
$bpcSol = Get-SPSolution -Identity "BPC.PowerForms.Enterprise.wsp" -ErrorAction SilentlyContinue
if (-not $bpcSol) {
Write-Host "[ADD] Adding solution to farm..." -ForegroundColor Yellow
Add-SPSolution -LiteralPath $packagePath
}
Write-Host "[INSTALL] Deploying solution to all Web Applications..." -ForegroundColor Green
Install-SPSolution -Identity "BPC.PowerForms.Enterprise.wsp" -GACDeployment -AllWebApplications -Force
# Activate Feature on specific Portal Web App
$portalUrl = "https://portal.licentra.lan"
Write-Host "[ACTIVATE] Activating BPC Enterprise Site Collection Features..." -ForegroundColor Cyan
Enable-SPFeature -Identity "BPC.PowerForms.Features" -Url $portalUrl -Force
Write-Host "[SUCCESS] Suite deployed and verified. Offline permanent license is active." -ForegroundColor Green
۶. جمعبندی و پایداری در سطح بنگاه اقتصادی #
بهکارگیری همزمان BPC Power Forms و Nintex به سازمانها اجازه میدهد بدون وابستگی به پیمانکاران خارجی یا کدهای شکننده، پیچیدهترین فرآیندهای مالی و بازرگانی را در کمتر از چند روز به بهرهبرداری برسانند. ثبت اطلاعات در ساختار استاندارد شیرپوینت تضمین میکند که گزارشگیری مدیریتی با Power BI و استخراج دیتابیس بدون هیچگونه قفل یا اختلال در کارایی دیتاسنتر انجام پذیرد.



