bcquality/microsoft/knowledge/web-services/expose-operations-as-bound-actions.good.al
Jesper Schulz-Wedde 2da72e782a Seed web-services (API v2) knowledge domain
Add eight web-services API page knowledge articles (each with .good.al/.bad.al samples), a new al-web-services-review leaf skill, and wire it into al-code-review and the README.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 12:35:53 +02:00

59 lines
1.5 KiB
AL

page 50350 "WS Bound Action Good"
{
PageType = API;
Caption = 'salesOrder';
APIPublisher = 'contoso';
APIGroup = 'sales';
APIVersion = 'v1.0';
EntityName = 'salesOrder';
EntitySetName = 'salesOrders';
ODataKeyFields = SystemId;
SourceTable = "Sales Header";
DelayedInsert = true;
layout
{
area(content)
{
repeater(records)
{
field(id; Rec.SystemId)
{
Caption = 'id';
Editable = false;
}
field(number; Rec."No.")
{
Caption = 'number';
}
}
}
}
[ServiceEnabled]
procedure Post(var ActionContext: WebServiceActionContext)
var
PostHelper: Codeunit "WS Bound Action Helper";
begin
PostHelper.PostOrder(Rec);
SetActionResponse(ActionContext, Rec.SystemId);
end;
local procedure SetActionResponse(var ActionContext: WebServiceActionContext; CreatedId: Guid)
begin
ActionContext.SetObjectType(ObjectType::Page);
ActionContext.SetObjectId(Page::"WS Bound Action Good");
ActionContext.AddEntityKey(Rec.FieldNo(SystemId), CreatedId);
ActionContext.SetResultCode(WebServiceActionResultCode::Updated);
end;
}
codeunit 50352 "WS Bound Action Helper"
{
procedure PostOrder(var SalesHeader: Record "Sales Header")
var
SalesPost: Codeunit "Sales-Post";
begin
SalesPost.Run(SalesHeader);
end;
}