I have a tilde reference in a command which I link to a command via the implementation file. However if I use this tilde reference I get an error in the implementation file if I don’t acknowledge the reference in the interface file, but I get an error in the interface file if I acknowledge it. How do I use a tilde reference when using a command via an interface?
Unfortunately, it is currently not possible to map a text
value specified in an interface
to a text
value with an optional reference in an application
model. This is a known issue that will be fixed in an upcoming platform release. For now you can use a hidden command as a workaround:
./application.alan
'Buy': command {
'Product': text ~> .'Products'[]
} => ignore /* ..command implementation here.. */
'Buy for interface': command @hidden { // map to this command in your implementation.alan
'Product': text
} => execute .'Buy' ( 'Product' = @ .'Product' )