This use case describes the following user flow: - Load truck license plate
- Display information based on the license plate
- Enter username ticket to open the bin with the delivery and mark the order as completed
- Display screen with the process completion
For each step, there will be defined a report view and BellaDati endpoint config. Step 1 - Load truck license plate
Endpoint configurationCreate BellaDati endpoint with the following configuration: - URL: checkRegistrationPlate/.*
Configuration: Code Block |
---|
| def registrations_ds_id = 263
//define ID of the data set with license plates
def registrationPlate = request.getPath().split("/").last()
//load the registration plate based on the entered value
def filter = isEqualFilter('L_REGISTRATION_PLATE', registrationPlate)
//define filter to be applied to the data set
def rows = readDataset(registrations_ds_id , 1, filter, com.belladati.common.sort.Sort.descending('row_uid'))
if (rows.size() == 0) {
return Response.ok('error;var1=wrong license plate',"text/plan").build()
//if the input value does not exist in the target data set, the specified error will be displayed
}
else {
return Response.ok('success;var2='+rows[0].getValues()['L_ORDER_ID']+'',"text/plain").build()
}
//if the value exists, the exists, the value from column L_ORDER_ID will be loaded to the variable var2 |
Report configurationDefine custom content view you can apply your own configuration to the custom content view
the element "value" is used to load the values when the user navigates between the views Code Block |
---|
<form>
<label for="var1">Registration plate:</label>
<input type="text" id="var1" name="var1" value={formula}res = @var1 as String
if (res == null){
return ""
}
else {
return res}{formula}><br><br>
</form> |
- Create a report variable with the ID used in the custom form (in the example, the ID is "var1". In our configuration, there is also value var2. Include it in the report view as well.
- Apply config to the tab settings:
- Label settings: apply text based on your requirements. These labels supports translations.
- Transition view: select view with the custom content
- Transition action HTTP method: GET (parameter is configured in the URL)
- Transition action URL: define URL of your endpoint, include entered form value as parameter (e.g. $var1 for the report variable with code var1)
if you use name of BellaDati endpoint type. Then the endpoint is invoked internally, so domain and user context is preserved.
Endpoint configurationThis endpoint will be used to open the box with the order and saved the information about completing to the data set: Create BellaDati endpoint with the following configuration: - URL: openBox
Configuration: Code Block |
---|
| registrations_ds_id = 263
request_config_id = 12
//ID of the request for publishing the data
def body = JSON.fromJSONString(body)
processed_order_ds_id = 264
def rows = readDataset(registrations_ds_id , 1, filter, com.belladati.common.sort.Sort.descending('row_uid'))
//first load the ID of the box to be opened
if (rows.size() == 0) {
return Response.ok('error;var1=wrong license plate',"text/plan").build()
}
else {
box='+rows[0].getValues()['L_BASKET']+'
//returns ID of the box to open
def data = [
L_ORDER : body.getString("order"),
L_USERNAME : body.getString("username")
L_DATETIME : currentLocalDateTime(),
L_BOX : box,
]
httpRequestAsync(request_config_id, null, box)
//sends command to close the box
storeDataset(processed_order_ds_id, [data])
//saved the information about completed order to the selected data set
return Response.ok('success').build()
} |
Report configurationInside this view, the user will be able to see the ID of the box that will be opened. After entering his username, the required request is created and used to open the box and save the required information to the data set. Define custom content view Code Block |
---|
<p>The selected order is available in the box {formula}@var2{formula}.</p>
<br>
<p>To open the box, please enter your username<p>
<br>
<form>
<label for="var1">Username:</label>
<input type="text" id="var3" name="var3" value={formula}res = @var3 as String
if (res == null){
return ""
}
else {
return res}{formula}><br><br>
</form> |
- Apply config to the tab settings:
- Label settings: apply text based on your requirements
- Transition view: select view with the custom content
- Transition action HTTP method: POST (parameters are configured in the Transition action HTTP content)
- Transition action URL: apply URL from the current endpoint config
Transition action HTTP content Code Block |
---|
{"order" : "$var1", "username" : "$var3"} |
Step 3 - SummaryDefine the HTML content as per your app requirements to display the last screen:
Report configurationDefine the Transition finished URL that will redirect the user to the required screen after completing the flow.
|