Closed attaxia closed 3 years ago
Dit komt door een wijziging in ampersand in release 4.1.0. In de releasenotes kan je daar meer over lezen. Het komt er op neer dat je het woordje ROWS
moet vervangen door FORM
. (aanvulling van @stefjoosten : Dit is onjuist. Je dient het woordje ROWS
te vervangen door BOX <FORM>
)
Blijkbaar is de documentatie ergens niet meer actueel. Kan jij aangeven waar je je voorbeeld vandaan hebt? Dan kunnen we wellicht die documentatie bijwerken.
Jazeker, dat komt hier vandaan: https://ampersandtarski.gitbook.io/documentation/the-language-ampersand/services/layout-of-user-interfaces (post-edit van @stefjoosten: Dit is inmiddels aangepast.)
Maar ook gebruik van de zoekfunctie geeft nog vele andere pagina's aan met het keyword ROWS. Een fatsoenlijke error tijdens compilen zou wel fijn zijn.
Het vervangen van ROWS door FROM zorgt trouwens wél voor een compile error:
/var/www/data/scripts/aaa/Script_1609238713_00028563/ScriptVersion_1609250333_00993252/script.adl:104:1 error:
unexpected upper case identifier FORM
expecting symbol '<', keyword "BOX", keyword "ROWS", keyword "COLS", keyword "TABS", keyword "LINKTO", keyword "INTERFACE" or keyword "API"
ExitFailure 10
Hmm. Da's niet zo mooi. Op een of andere manier is blijkbaar de Ampersand compiler niet in sync met de prototype generator in RAP. Daar moet @stefjoosten even naar kijken, vrees ik.
In de tussentijd zou je het woordje ROWS
kunnen vervangen door BOX
. Dat zou als workaround wel moeten werken, denk ik.
Thank you @attaxia for submitting this issue. Han's diagnosis above is quite right. Version 4 of Ampersand (the current one) has a new syntax for interface directives. This is what we have to do:
In the meantime, here is how you can edit your code right now to make the INTERFACE Artikels
work:
COLS
with BOX <TABLE>
ROWS
with BOX <FORM>
TABS
with BOX <TABS>
@attaxia schreef hierboven:
Maar ook gebruik van de zoekfunctie geeft nog vele andere pagina's aan met het keyword ROWS. Een fatsoenlijke error tijdens compilen zou wel fijn zijn.
De juiste foutmelding zou moeten zijn:
/var/www/data/scripts/aaa/Script_1609238713_00028563/ScriptVersion_1609250333_00993252/script.adl:104:1 error:
unexpected upper case identifier ROWS
expecting symbol '<', keyword "BOX", keyword "LINKTO", keyword "INTERFACE" or keyword "API"
ExitFailure 10
Dat ga ik regelen.
De correcte versie van de interface zou moeten zijn:
INTERFACE Artikels : "_SESSION" cRud
BOX <FORM>
[ Artikelen : V[SESSION*Artikel] CRud
BOX <TABLE>
[ "Artikelnummer" : artikelNummer cRUd
, "Serienummer" : serieNummer CRUd
, "Artikelnaam" : artikelNummer;artikelNaam cRud
]
]
Dat mag je zelf regelen :-) @attaxia
@attaxia Je krijgt nu een betere foutmelding te zien, en daarmee sluit ik dit issue en het oude jaar af. Beste wensen voor het nieuwe jaar!
De situatie
Prototype geeft 404 page not found error bij invoegen bepaalde interface
Wat er gebeurde er en wat had je verwacht?
Er zijn geen compile errors, en prototype lijkt gegenereed te worden. Alles zou dus moeten werken
Stappen om dit te reproduceren
Compile het volgende script, en run prototype:
Context / Source van ampersand script
Het probleem wordt veroorzaakt door de "Artikels" interface. Waarom is mij onduidelijk. Als ik deze weglaat dan werkt alles wel. -->