bc-code-intelligence-mcp
Version:
BC Code Intelligence MCP Server - Complete Specialist Bundle with AI-driven expert consultation, seamless handoffs, and context-preserving workflows
61 lines (55 loc) • 1.76 kB
Markdown
# TestField Implementation Patterns
## Entry Point Validation
```al
procedure ProcessSalesOrder(var SalesHeader: Record "Sales Header")
begin
// Validate prerequisites at procedure entry
SalesHeader.TestField("Document Type", SalesHeader."Document Type"::Order);
SalesHeader.TestField("Sell-to Customer No.");
SalesHeader.TestField("Order Date");
// Continue with business logic
ProcessOrderLines(SalesHeader);
end;
```
## State-Dependent Validation
```al
procedure ReleasePurchaseDocument(var PurchaseHeader: Record "Purchase Header")
begin
case PurchaseHeader."Document Type" of
PurchaseHeader."Document Type"::Order:
begin
PurchaseHeader.TestField("Buy-from Vendor No.");
PurchaseHeader.TestField("Expected Receipt Date");
end;
PurchaseHeader."Document Type"::Invoice:
begin
PurchaseHeader.TestField("Buy-from Vendor No.");
PurchaseHeader.TestField("Posting Date");
end;
end;
end;
```
## Conditional Field Requirements
```al
trigger OnValidate()
begin
if "Payment Method Code" <> '' then begin
PaymentMethod.Get("Payment Method Code");
if PaymentMethod."Bal. Account Type" = PaymentMethod."Bal. Account Type"::"Bank Account" then
TestField("Bank Account No.");
end;
end;
```
## Try Function Integration
```al
procedure TryValidateCustomerData(CustomerNo: Code[20]): Boolean
var
Customer: Record Customer;
begin
if not Customer.Get(CustomerNo) then
exit(false);
Customer.TestField(Name);
Customer.TestField("Customer Posting Group");
exit(true);
end;
```