[[introduction]]
= Introduction

:Notice: Licensed to the Apache Software Foundation (ASF) under one or more contributor license agreements. See the NOTICE file distributed with this work for additional information regarding copyright ownership. The ASF licenses this file to you under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at. http://www.apache.org/licenses/LICENSE-2.0 . Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR  CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
:page-partial:


Invoking an action whose parameters are primitives or values (int, date, string etc) is simple: the user can just type in or use a date picker.
Invoking an action with a parameter of reference type (such as `Customer` or `Order`) requires the viewer to provide some mechanism by which the end-user can select the relevant instance.

If the list of available options is fixed then the developer can provided a list a xref:refguide:applib-methods:prefixes.adoc#choices[choices...()] supporting method (for either and action parameter or when editing a property).
These are rendered in a drop-down.

If the list of available options is much larger, then the developer can use an xref:refguide:applib-methods:prefixes.adoc#autoComplete[autoComplete...()] supporting method.
The user user enters a few characters and this is used to search for matching reference(s), again rendered in a drop-down.

Similarly, when invoking an action, there may well be suitable defaults for the action arguments.
For example, if placing an `Order` then -- even if the `Product` argument might not have a sensible default -- the quantity argument could reasonably be defaulted to 1.
Or, the `Product` might indeed have a default, say the product previously placed by this user.
The developer indicates this using a xref:refguide:applib-methods:prefixes.adoc#default[default...()] supporting method.
