UNPKG

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
# Temporary Table Operation Validation ## Pre-Operation Validation ```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; ``` ## Batch Processing Safety Check ```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; ``` ## Complex Operation Validation ```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; ``` ## Transaction Safety Validation ```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; ```