bcquality/microsoft/knowledge/web-services/expose-operations-as-bound-actions.good.al
Jesper Schulz-Wedde 13f47f65a8
Seed web-services (API v2) knowledge domain (#45)
* 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>

* Trim web-services domain to 6 non-duplicative articles

Drop API entity-naming/camelCase and DelayedInsert articles (owned by the style domain). Reframe the committed-data and API-versioning articles to stay strictly within the endpoint design/behavior lane, and update the leaf skill's worklist tokens and Output example accordingly.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

---------

Co-authored-by: Jesper Schulz-Wedde <jesper.schulzwedde@microsoft.com>
Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-25 12:37:40 +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;
}