TC-4934 Explora

Serviceordernummer op inkooporderregel werkt niet meer

Total hours: 0.0

Documents

TC-4934 Analyse

TC-4934 Serviceordernummer op inkooporderregel, werkt niet meer

Melding

Op de inkooporderregel wordt de omschrijving niet meer op regelniveau aangevuld met het serviceordernummer van die regel.

Technische analyse

Oorspronkelijke implementatie

Bestand: app/src/codeunit/Cod60001.EventsExplora.al, regels 153-178

De functionaliteit werkte via een EventSubscriber op OnAfterValidateItemFunction van de "Purchase Line" tabel (4PS event). Wanneer een artikel wordt gevalideerd op een inkooporderregel, wordt het serviceordernummer of projectnummer als prefix toegevoegd aan de omschrijving (format: SO-12345 / Artikelomschrijving).

Voorwaarden:

  1. Explora Setup veld "Add SO/Project to Purch Line" moet aanstaan
  2. "Service Order No." of "Job No." moet gevuld zijn op de inkooporderregel
  3. Er moet een artikel op de regel staan

Git-onderzoek

De TC-4934 code is niet gewijzigd sinds de originele merge (commit 611f43b, 29 oktober 2025). Geen enkele commit heeft de Purchase-region aangepast.

Oorzaak

Het event OnAfterValidateItemFunction is deprecated door 4PS omdat het gekoppeld was aan het oude "Item No." veld op de Purchase Line tabel. Dit veld bestaat niet meer in de huidige versie. Het event wordt daardoor niet meer gefired, waardoor de subscriber stilzwijgend stopte met werken.

Oplossing

Het event is vervangen door OnAfterValidateNoPurchaseLine, het nieuwe 4PS event dat fired wanneer het "No." veld (de opvolger van "Item No.") wordt gevalideerd.

Wijzigingen

Bestand: app/src/codeunit/Cod60001.EventsExplora.al

Onderdeel Oud Nieuw
Event OnAfterValidateItemFunction OnAfterValidateNoPurchaseLine
Parameters var PurchaseLine var PurchaseLine, var xPurchaseLine, var TempPurchaseLine temporary, PurchaseHeader
Item check PurchaseLine.GetItemNo() = '' PurchaseLine."No." = ''

De logica blijft identiek: als er een serviceordernummer of projectnummer op de regel staat, wordt dit als prefix aan de omschrijving toegevoegd.

Status

  • Oorzaak vastgesteld: deprecated 4PS event
  • Fix geïmplementeerd: event subscriber omgezet naar OnAfterValidateNoPurchaseLine
  • Testen op testomgeving
  • Deployen naar productie

TC-4934: Serviceordernummer op inkooporderregel werkt niet meer

TC-4934: Serviceordernummer op inkooporderregel werkt niet meer

Datum: 2026-03-25 Status: Fix geïmplementeerd, testen op testomgeving

Melding

De omschrijving op inkooporderregels werd niet meer aangevuld met het serviceordernummer of projectnummer als prefix.

Oorzaak

Het 4PS event OnAfterValidateItemFunction op de Purchase Line tabel is verwijderd in een recente 4PS update. Dit event was gekoppeld aan het oude "Item No." veld dat deprecated is. Onze EventSubscriber compileerde nog wel, maar werd nooit meer aangeroepen.

Oplossing

Event subscriber omgezet van OnAfterValidateItemFunction naar OnAfterValidateNoPurchaseLine in Cod60001.EventsExplora.al. Ook GetItemNo() vervangen door "No.".

Bestanden

  • app/src/codeunit/Cod60001.EventsExplora.al (regels 154-178)

Leerpunten

  • Deprecated 4PS events geven geen compilatiefout, ze stoppen stilzwijgend met werken
  • Bij "functionaliteit werkt niet meer" zonder codewijzigingen: altijd checken of het onderliggende event nog bestaat
  • 4PS source broncode opvragen en doorzoeken is de snelste manier om dit te bevestigen
  • Zie ook: _DOCS/4PS-Concepten/purchase-line-validate-no-event.md

Time Entries

Activity

2026-04-01 11:05:24 Document "analysis" added
2026-04-01 11:05:24 Document "analysis" added
2026-04-01 11:04:29 Ticket "Serviceordernummer op inkooporderregel werkt niet meer" created