Manipulating application data
To ensure that customers are billed for only the services provided, the program manager wants the application to display a list of the services performed by the service provider. The list should include the name of the service performed, the unit cost of the service, the number of times the service was performed, the total cost for each service, and the total cost of the services performed. On the Perform service flow, configure the CopySelectedServices data transform to copy services provided from a Service case to an Assistance request case.
The following diagram displays the relationships of the Selected Services page list in the Assistance Request case type, and the Services page list in the Service case type to the Services offered data type.
The following table provides the credentials you need to complete the challenge.
1 Configure the CopySelectedServices data transform
- In Dev Studio, from the navigation pane, click Case types > Service to open the Service case type.
- In the Perform service process, click Configure Process.
- Click Open process to open the Perform service flow record in the Process Modeler.
- In the Process Modeler, right-click the Select services connector and select View Properties to display the Connector properties dialog box.
- In the Connector properties dialog box, in the Set properties area, click Apply data transform to add a data transform to the connector. The dialog updates to display a Data transform field.
- In the Data transform field, enter CopySelectedServices to name the data transform.
- To the right of the Data transform field, click the crosshairs icon to open the Create Data Transform form.
- On the Create Data Transform form, click Create and open to display a new data transform record.
- Configure the CopySelectedServices data transform.
- On the data transform record, from the Action drop-down, select For Each Page In to iterate over the items in a list. A second, indented row labeled 1.1 is displayed on the record.
- In the row labeled 1, in the Target field, enter or select .Services to iterate over the items in the Services list.
- In the Source column, select the Also use each page as source context check box to use the Services page as the source context to resolve property references.
- In the row labeled 1.1, from the Actions drop-down, select When to configure the condition for selecting a row. A third, indented row labeled 1.1.1 is displayed on the record.
- In the row labeled 1.1, in the Target field, enter .Quantity>0 to only select rows with a quantity greater than zero.
- In the row labeled 1.1.1, from the Actions drop-down, select Append to to append the contents of the selected row to a different list.
- In the row labeled 1.1.1, in the Target field, enter pyWorkCover.SelectedServices to copy the contents of the selected row to the Selected services field group in the Assistance request parent case.
- In the row labeled 1.1.1, from the Relation drop-down, select current source page to copy the contents of the selected row in the Services field group in the Service case.
- On the data transform record, click the Pages & Classes tab to define the pyWorkCover page so that the data transform can resolve the Selected services property reference.
- In the Page name field, enter pyWorkCover as the name of the page to define.
- In the Class field, enter or select GoGo-GoGoRoad-Work-AssistanceRequest to define the context of the pyWorkCover page as the Assistance Request case type class.
- Click Save to complete the configuration of the data transform.
- Click the open PerformService tab to return to the Perform service flow record.
- In the Connector properties dialog box, click Submit to complete the configuration of the Select services connector that runs the CopySelectedServices data transform.
- Click Save to complete the configuration of the Perform service flow record.
2 Confirm your work
- From the Create menu, select New > Assistance Request to create a new case.
- On the Create view, click Done to advance the case to the Enter customer information view.
- From the Actions drop-down, select Change stage to move the case to a different stage.
- From the Next stage drop-down, select Choose a stage. A second drop-down list is displayed to the right that lists the stages defined for the Assistance Request case type.
- From the drop-down list of stage names, select Service to advance the case to the Service stage and display the Select services view.
- Click Continue to switch the case to the Service stage.
- On the Select service provider view, select a service provider and click Submit.
- On the Select services view, enter the quantities provided in the following image. Verify that the total cost is USD100.
- Click Submit to complete the Select services assignment and resolve the Service case. The Review service summary view is displayed.
Tip: You can verify the Service case is set to Resolved-Completed in the Open assignments area.
- On the Review service summary view, verify that the Selected services table displays the three rows filled out in the Service case and that the value of the Invoice total field is USD100.
Note: The empty first line in the list is a result of the Selected services list initialization. The empty line is added to the field group list by the pySetFieldDefaults data transform in the AssistanceRequest class. To prevent the empty line from appearing in the list, open the data transform, and delete the line that sets the value of .SelectedServices(1).pyLabel.
Note: In a real-life implementation, ensure that the list of selected services in the Assistance Request caserestricts users from adding or removing items. You can remove the Add item and Delete controls by editing the section rule that displays the list, which is outside the scope of this challenge.