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 must include the following information: 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.
Note: Your practice environment may support the completion of multiple challenges. As a result, the configuration shown in the challenge walkthrough may not match your environment exactly.
1 Configure the Review service summary step
- In the navigation pane of Dev Studio, click Case types > Assistance Request to open the Assistance request case type.
- In the Assistance request case type, on the Workflow tab, click Review service summary to open the step properties pane.
- In the step properties pane to the right, click Configure view to display a dialog box.
- In the dialog box, click Add field to configure a new field.
- Create a multi-record data relationship named Selected Services. In the Target type list, select Services offered data object as shown in the following image.
- Click Submit & add another to configure a new field.
- Create a currency calculated field named Invoiced total. Configure the Invoiced total calculation as the sum of SelectedServices.LineTotal as shown in the following image.
- Click Submit to record the new fields and return to the Workflow tab of the case life cycle.
- Click Save to save your changes in the case life cycle.
2 Configure the CopySelectedServices data transform
- In the navigation pane of Dev Studio, 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 flow canvas.
- In the flow canvas, right-click the Select services connector, and then select View Properties to display the Connector properties dialog box.
- In the Connector properties dialog box, in the Set properties area, select Apply data transform to add a data transform to the connector.
- In the Data transform field, enter CopySelectedServices to name the data transform.
- To the right of the Data transform field, click the Open icon to open the Create Data Transform tab.
- On the Create Data Transform tab, click Create and open to display a new data transform record.
- On the Definition tab of the data transform record, configure the CopySelectedServices data transform.
- On the data transform record, in the Action list, 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, in the Actions list, 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 list, 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 data relationship in the Assistance request parent case.
- In the row labeled 1.1.1, from the Relation list, select current source page to copy the contents of the selected row in the Services data relationship 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 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.
3 Confirm your work
- In the header of Dev Studio, click Create > New > Assistance Request to create a new case.
- Advance the case to the Service stage.
Note: In Enter customer information step, select a customer with standard coverage.
- On the Select service provider view, select a service provider.
- On the Select services view, enter the quantities provided in the following image.
- Verify that the total cost is $210.00.
- Click Submit to complete the Select services assignment and resolve the Service case. The Review service summary view is displayed.
- 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 $210.00.
Note: In a real-life implementation, ensure that the list of selected services in the Assistance Request case is read-only and restricts 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.
Note: The empty first line in the list is a result of the Selected services list initialization. The empty line is added to the data relationship 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.