bc-code-intelligence-mcp
Version:
BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows
91 lines (74 loc) • 3.17 kB
Markdown
```al
procedure ValidateTemporaryTableOperation(var TempRecord: Record "Generic Record"; OperationType: Text)
begin
if not TempRecord.IsTemporary then
Error('Operation "%1" requires a temporary table to ensure data safety. Current table is permanent.', OperationType);
if TempRecord.IsEmpty() then
Error('Cannot perform "%1" operation on empty temporary table.', OperationType);
end;
```
```al
procedure ProcessTemporaryRecords(var TempSalesLine: Record "Sales Line" temporary)
var
LineCount: Integer;
begin
// Validate temporary status before bulk operations
if not TempSalesLine.IsTemporary then
Error('Batch processing requires temporary table to prevent permanent data corruption.');
TempSalesLine.Reset();
LineCount := TempSalesLine.Count();
if LineCount = 0 then
Error('No records found in temporary table for processing.');
if LineCount > 10000 then
if not Confirm('Processing %1 records may take considerable time. Continue?', false, LineCount) then
exit;
ProcessBatchRecords(TempSalesLine);
end;
```
```al
procedure ExecuteComplexDataOperation(var TempCustomer: Record Customer temporary; var TempVendor: Record Vendor temporary)
begin
// Validate both tables are temporary
ValidateAllTablesTemporary(TempCustomer, TempVendor);
// Validate data consistency
if TempCustomer.IsEmpty() and TempVendor.IsEmpty() then
Error('At least one temporary table must contain data for processing.');
// Execute complex operation safely
ProcessCustomerVendorRelationship(TempCustomer, TempVendor);
end;
local procedure ValidateAllTablesTemporary(var TempCustomer: Record Customer temporary; var TempVendor: Record Vendor temporary)
begin
if not TempCustomer.IsTemporary then
Error('Customer table must be temporary for this operation.');
if not TempVendor.IsTemporary then
Error('Vendor table must be temporary for this operation.');
end;
```
```al
procedure SafeTemporaryTableTransaction(var TempGLEntry: Record "G/L Entry" temporary)
begin
if not TempGLEntry.IsTemporary then
Error('Financial data operations require temporary tables to prevent accidental posting.');
// Validate data integrity before processing
ValidateFinancialData(TempGLEntry);
// Process in transaction
if TempGLEntry.FindSet() then
repeat
ProcessGLEntry(TempGLEntry);
until TempGLEntry.Next() = 0;
end;
local procedure ValidateFinancialData(var TempGLEntry: Record "G/L Entry" temporary)
var
TotalAmount: Decimal;
begin
TempGLEntry.CalcSums(Amount);
TotalAmount := TempGLEntry.Amount;
if Abs(TotalAmount) > 1000000 then
Error('Total amount %1 exceeds safety threshold for temporary table operations.', TotalAmount);
end;
```