Documents
TC-6089: Onderzoek contactpersoon en afleveradres inkoop order
TC-6089: Onderzoek contactpersoon en afleveradres inkoop order
Aanleiding
De klant wil op de inkoop order layout de contactpersoon en het telefoonnummer tonen bij het afleveradres, zodat de leverancier weet wie hij moet bellen bij aflevering. Op dit moment zijn deze velden op een aantal orders niet gevuld, waardoor het afleveradresblok incompleet is.
Analyse "Deliver" veld (aflevermethode)
Op de Purchase Header staat het veld Deliver (field 11012301, Option). Dit bepaalt waar de order afgeleverd wordt. Bij het wijzigen van dit veld vult 4PS automatisch de Ship-to adresvelden via de procedure UpdateShipToAddress.
We hebben de broncode van deze procedure onderzocht (AST analyse) om te bepalen waar elk aflevertype de contactpersoon en het telefoonnummer vandaan haalt:
| Deliver waarde | Adres komt uit | Contact komt uit | Telefoon komt uit |
|---|---|---|---|
| Default (Company Address) | Company Information | CompanyInfo."Ship-to Contact" | CompanyInfo."Ship-to Phone No." |
| Project Location | ProjectLocation of Project | ProjectLocation.Contact of Project."Bill-to Contact" | ProjectLocation/Project."Phone No." |
| Location | Location (magazijn) | Location.Contact | Location."Phone No." |
| Customer Address | Customer | Customer.Contact | Customer."Phone No." |
| Customer Ship-to Address | Ship-to Address | ShipToAddr.Contact | ShipToAddr."Phone No." |
| Order Address | Order Address | OrderAddress.Contact | OrderAddress."Phone No." |
| Service Order | Service Order | ServiceOrder."Contact Name" | ServiceOrder."Phone No." |
| Plant Location | Plant Location | PlantLocation.Contact | PlantLocation."Phone No." |
Belangrijk: De standaard 4PS logica vult bij Project Location de contactpersoon vanuit de projectlocatie of het project (Bill-to Contact = opdrachtgever). Dit is niet wat de klant wil.
Gewenste logica (afgestemd met klant)
Scenario 1: Aflevering op bedrijfsadres (Default Company Address)
- Afleveradres: Company Information (bedrijfsadres)
- Contactpersoon: De inkoper die de order heeft aangemaakt
- Bron: Purchase Header."Purchaser Code" → Salesperson/Purchaser.Name
- Telefoon: Employee."Mobile Phone No." (via Salesperson/Purchaser → Employee), fallback naar Salesperson/Purchaser."Phone No."
Voorbeeld: Order 03IO26115, project 03PR26104
- Inkoper: Rob Verhallen (Employee 86, Purchaser Code via Salesperson/Purchaser)
- Telefoonnummer: 0612708486 (mobiel)
Keten: Purchase Header → Purchaser Code → Salesperson/Purchaser (Code = Employee No.) → Employee → Mobile Phone No.
Scenario 2: Aflevering op projectlocatie (Project Location)
- Afleveradres: Projectlocatie (ProjectLocation tabel) of projectadres
- Contactpersoon: Uitvoerder (Site Manager) van het project
- Bron: Job."Site Manager" → Employee.Name
- Telefoon: Employee."Mobile Phone No.", fallback naar Employee."Company Phone No."
Voorbeeld: Order 03IO26154, project 03PR26101
- Afleverlocatie: Philippusstraat 7.01, Sint-Oedenrode
- Contactpersoon: de uitvoerder van het project (niet T. van der Velden, dat is de opdrachtgever)
Waarom uitvoerder: De uitvoerder is de persoon die fysiek op de bouwlocatie aanwezig is. Bij aflevering van materiaal op een bouwplaats is hij degene die de levering ontvangt, controleert en aanwijst. De leverancier bereikt hem op z'n mobiel.
Scenario 3: Overige aflevertypen
Voor alle andere Deliver waarden (Location, Customer Address, etc.) gebruiken we de standaard velden van de order: Ship-to Contact en Ship-to Contact Phone No.. Deze worden al correct gevuld door de standaard 4PS logica.
Technische implementatie
Rapportlogica in Rep-Ext72203.OrderExtPP.al, trigger CopyLoop - OnAfterAfterGetRecord:
case "Purchase Header".Deliver of
Default (Company Address):
→ Salesperson/Purchaser.Name + Employee."Mobile Phone No."
Project Location:
→ Job.SiteManagerName() + SiteMgrEmployee."Mobile Phone No."
else:
→ Ship-to Contact + Ship-to Contact Phone No.
Nieuwe dataset kolommen:
ContactPersonForReport(Text[100]): naam contactpersoonContactPhoneForReport(Text[30]): telefoonnummer contactpersoon
Voorwaarden
Voor het correct functioneren is het nodig dat:
- De Salesperson/Purchaser gekoppeld is aan een Employee (zelfde code)
- Het mobiele telefoonnummer op de Employee kaart is ingevuld
- Bij projectorders: het veld Uitvoerder (Site Manager) op het project is gevuld
Als deze gegevens niet gevuld zijn, blijft de contactpersoon en/of het telefoonnummer leeg op de afdruk.
Openstaande vragen aan klant
- Bij projectlocatie: is de uitvoerder de juiste contactpersoon, of liever de werkvoorbereider?
- Zijn de Employee kaarten up-to-date met mobiele telefoonnummers?
- Voorkeur voor staand of liggend formaat van de layout?
TC-6089 Vraag aan Daan
Hoi Daan,
Ik ben bezig met TC-6089 voor Peter Peters, de aanpassing van de inkoop order layout. De kolommen en indeling zijn klaar, maar ik loop tegen een functionele vraag aan rondom de contactpersoon en het afleveradres. Kan je even meekijken of we de juiste aanpak hebben?
Wat de klant wil
Op de afdruk van de inkoop order moet bij het afleveradres een contactpersoon en telefoonnummer staan, zodat de leverancier weet wie hij moet bellen bij aflevering. De klant heeft twee scenario's beschreven:
Scenario 1: Afleveren op bedrijfsadres (Deliver = "Default Company Address")
De klant wil hier de persoon die de inkooporder heeft aangemaakt als contactpersoon. Concreet voorbeeld: order 03IO26115, project 03PR26104, daar moet Rob Verhallen staan met zijn mobiele nummer (0612708486).
Onze aanpak: we halen de contactpersoon op via Purchase Header."Purchaser Code" → Salesperson/Purchaser → Employee (voor het telefoonnummer).
Probleem: bij Rob Verhallen is het veld Verkoper/Inkoper in de Gebruikersinstellingen (User Setup) niet gevuld. Daardoor wordt Purchaser Code niet automatisch gezet op nieuwe inkooporders. Is dit een inrichtingskwestie die we bij de klant moeten laten vullen, of pakken we dit anders aan (bijv. via Created By → User Setup → Employee)?
Scenario 2: Afleveren op projectlocatie (Deliver = "Project Location")
De klant wil hier de persoon die op de bouwlocatie aanwezig is. We denken aan de uitvoerder (Site Manager) van het project, omdat die fysiek op locatie de leveringen ontvangt.
Concreet voorbeeld: order 03IO26154, project 03PR26101. Nu staat daar T. van der Velden, maar dat is de contactpersoon van de opdrachtgever (Principal Contact Person), niet de persoon op locatie.
Onze aanpak: we halen de contactpersoon op via Job."Site Manager" → Employee (naam + mobiel).
Mijn vragen aan jou
- Scenario 1: is Purchaser Code via User Setup."Verkoper/Inkoper" de juiste bron, of moet dit anders? Als dit de juiste weg is, moeten we de klant vragen om dat veld te vullen bij alle inkopers.
- Scenario 2: is de uitvoerder (Site Manager) het juiste veld voor de contactpersoon op de projectlocatie, of gebruiken jullie daar een ander veld voor?
- Ken jij de inrichting bij Peter Peters goed genoeg om te zeggen of deze velden al gevuld zijn, of moet de klant hier actie op ondernemen?
Alvast bedankt!
Groet, Jonathan
Time Entries
| Date | Hours | Description |
|---|---|---|
| 2026-03-23 | 4.5 | Maken, testen, communiceren |