Document 6511974

Transcription

Document 6511974
• The goal of this training is to enable implementers to configure and deploy Oracle® Transactional Business
Intelligence Enterprise for Human Capital Management Cloud Service. An implementer is responsible for
performing the initial setup and configuration of Oracle® Transactional Business Intelligence Enterprise for
Human Capital Management Cloud Service. This may be done by the customer or by an implementation partner.
OTBI Enterprise for HCM Cloud Service 2
OTBI Enterprise for HCM Cloud Service 3
• A load plan is an executable object that comprises and organizes the child objects (referred to as steps) that move
data from the source to OTBI Enterprise for HCM Cloud Service. A load plan is made up of a sequence of several
types of steps. Each step can contain several child steps. Depending on the step type, the steps can be executed
conditionally, in parallel or sequentially.
• You define a load plan in Configuration Manager by selecting a data source and one or more fact groups. This
selection determines which steps need to be performed during the process. Each fact group belongs to a specific
functional area or areas that are associated with one or more offerings, which, in turn, are related to a data
server. A transactional data source is associated with one or more data servers.
• After you define the load plan, you then generate it to build it in the ODI repository.
• You then execute the load plan to move data.
OTBI Enterprise for HCM Cloud Service 4
• A load plan life cycle comprises the following phases:
• Phase 1: Define load plan. In this phase, you define load plan properties in Configuration Manager. You select a
data source and one or more fact groups, and this selection determines the steps to be performed during the
process.
• Phase 2: Generate load plan. In this phase, you launch a generation process from Configuration Manager that
propagates the load plan properties to the ODI repository, where the load plan is built.
• Phase 3: Execute load plan. In this phase, you start a load plan run from Configuration Manager, which executes
the steps of the load plan. Executing a load plan creates a load plan instance and a first load plan run. If a run is
restarted, a new load plan run is created under this load plan instance. Each execution attempt of the load plan
instance is preserved as a different load plan run in the log.
• Phase 4: Monitor load plan. In this phase, you monitor the load plan run on the Load Plan Details page of
Configuration Manager. The Load Plan Details page provides a view of the ODI repository through Oracle Data
Integrator Console.
OTBI Enterprise for HCM Cloud Service 5
• Perform the following steps to define a load plan in Configuration Manager:
– In the Tasks pane of Configuration Manager, select Manage Load Plans, which appears under the Load Plans
Administration heading. The Manage Load Plans page is displayed. On the Load Plans toolbar, click the Add icon. The
Create Load Plan page is displayed.
– On the first page of the Create Load Plan series, specify the load plan name, description, type, and source. Always start the
load plan name with 'OTBIE' so that it can be monitored in EMCC by Oracle Cloud Ops. Load plan types include:
• Source Extract (SDE) - Includes only those tasks that extract from the source and loads data into staging tables.
• Source Extract and Load (SDE, SIL, and PLP) - Includes all tasks to extract from the source and load the target tables.
• Warehouse Load (SIL and PLP) - Includes only those tasks that extract from the staging tables and load the target
tables.
• Domain-Only - Includes all tasks required to extract domain-related records from the source and load the data into the
domain-related tables in OTBI Enterprise for HCM Cloud Service.
– On the second page of the Create Load Plan series, select the fact groups that you want to include in the load plan
definition. Note that fact groups may belong to a hierarchy of fact groups. You can select only the top-level parent fact
group and not a child fact group. A load plan must contain at least one fact group, and multiple fact groups may be
selected from one or more data sources.
– Save the load plan definition to display it in the Load Plans master list.
OTBI Enterprise for HCM Cloud Service 6
• When you generate a load plan, the load plan is built in the ODI repository. A load plan must be generated
successfully before it can be executed. Note: Load plans must be generated serially or the process will fail. Do not
launch a second load plan generation if one is already underway. You must wait until the first generation process
completes before you launch the next generation process.
• To generate a load plan:
– In the Load Plans master list, select the load plan that you want to generate.
– In the Load Plans toolbar, click the Generate icon.
– Use the Generation Status field to monitor progress. Click the Refresh icon to refresh the display.
– When the generation process completes, the Succeeded icon is displayed in the Generation Status field.
• You can execute a load plan or schedule it for execution after it has been successfully generated.
OTBI Enterprise for HCM Cloud Service 7
• You can only execute a load plan if it was successfully generated. You can have separate load plans for each
source, but load plans should not run in parallel.
• To execute a load plan:
– In the Load Plans list, select the load plan that you want to execute.
– On the Load Plans toolbar, click the Execute icon to display the load plan dialog box.
– Specify the following information in the load plan dialog box:
• Context: The ODI context to be used when the load plan is run (Note that Global is the only supported context.)
• Local Agent: The ODI local agent to be used when the load plan is run.
• ODI Work Repository: The name of the ODI Work Repository
– Use the Execution Status field to monitor execution progress.
OTBI Enterprise for HCM Cloud Service 8
• You can monitor a load plan run by viewing the execution status information on the Load Plan Execution Details
page of Configuration Manager.
• To view load plan execution details:
– In the Load Plans master list, select the load plan whose run you want to view.
– On the Load Plans toolbar, click the Show Execution Status Details icon. The Oracle Data Integrator Console login screen is
displayed (not shown in the slide).
– Log in to Oracle Data Integrator Console by entering an appropriate user ID and password.
– ODI Console is displayed.
• Within ODI Console, the navigation pane is displayed in the left pane and the Load Plan Execution page for the
selected load plan is displayed in the right pane. The Load Plan Execution page displays the load plan execution
name and load plan details. You can use the Load Plan Execution page to view detailed information about the
definition and execution status of the load plan.
OTBI Enterprise for HCM Cloud Service 9
• In Configuration Manager, in the Load Plans list, select the load plan that you want to copy.
• On the Load Plans toolbar, click the Copy icon to display the Copy Load Plan page.
• On the first page of the Copy Load Plan series, modify the load plan information.
• On the second page of the Copy Load Plan series, verify that the same fact groups are selected.
• Save the copied load plan.
OTBI Enterprise for HCM Cloud Service 10
• Click Show Execution Status Details on the toolbar in Configuration Manager to display the ODI Console sign in
page in a new tab or window (depending on your browser). Then sign in to ODI Console using the same
credentials you used to sign in to Configuration Manager. In the left pane of ODI Console, browse to Load Plan
Executions, locate your execution, right-click and select Stop.
OTBI Enterprise for HCM Cloud Service 11
• Use this tab to view the fact groups associated with a load plan selected in the Load Plans list. The fact groups
displayed may belong to a hierarchy of fact groups. You can expand the fact group node to view the hierarchy. If a
fact group is a child of another fact group in a hierarchy, it appears twice in the tree table, because it is associated
with both the functional area and the parent fact group.
OTBI Enterprise for HCM Cloud Service 12
• Use this tab to view and edit the data load parameters associated with a load plan selected in the Load Plans list.
The Data Load Parameters list includes both application-specific and global parameters. Application-specific
parameters are associated with one or more fact groups included in the load plan definition. Global parameters
apply to all applications and can also be associated with specific fact groups. Key points to note about the Data
Load Parameters tab:
– If a listed parameter requires a value but a value has not been assigned, the respective row in the table is tagged with an
error icon. Parameters that do not require a value (value can be null) are not tagged even if no value has been assigned.
– You can filter the list of parameters to display only the data load parameters that have no value by using the Show dropdown list in the toolbar.
– You can export and save content displayed in the table to a Microsoft Excel formatted file by clicking the Export icon on
the toolbar.
– You can change a parameter value by selecting the parameter in the list, and then clicking the Edit icon on the toolbar. The
Edit Parameter Value dialog box is displayed. To change a parameter value, the user must have been assigned a role that
has the appropriate privilege.
OTBI Enterprise for HCM Cloud Service 13
• Use the Domains and Mappings tab to view and edit domains and mappings related to a load plan selected in the
Load Plan list. The domains and mappings are associated with the fact group included in the load plan definition.
Key points to note about the Domains and Mappings tab:
– If a source domain in the list contains members that have not been mapped to an appropriate domain member, the row in
the table is tagged with an error icon. Some source domain members are not applicable, and, therefore, are not tagged
even if they are unmapped.
– You can filter the list of mappings to display only the domains that have unmapped source members using the Show dropdown list in the toolbar.
– You can export and save content displayed in the table to a Microsoft Excel formatted file by clicking the Export icon on
the toolbar.
– You can change a domain mapping by selecting the mapping in the list and then clicking the Edit icon on the toolbar. The
Edit Domain Member Mappings dialog box is displayed. To change a domain member mapping, the user must have been
assigned a role that has the appropriate privilege.
OTBI Enterprise for HCM Cloud Service 14
• Use the Schedules tab to view, create, edit, and delete schedules for the execution of a load plan. A load plan
schedule includes the following required properties:
– Context: The ODI context to be used when the load plan is run (Note that Global is the only supported context.)
– Logical Agent: The ODI Agent to be used when the load plan is run
– Recurrence: The frequency of occurrence
– Status: The status of the schedule
– Scheduled Time: The date and time the load plan is to be executed. Work with Oracle Cloud Ops to determine a date and
time that will not conflict with back-up and patching schedules of the POD.
OTBI Enterprise for HCM Cloud Service 15
• If you do experience a load plan failure, please double-check that you are using the correct username and
password, and that you have the rights to perform load plan tasks. You will need to enter SR to help triage the
issue that caused a load plan failure, because you will not be able to check network failure, failure of the ODI
agent, issues with space, and problems with data. See the next slide for information about submitting an SR.
OTBI Enterprise for HCM Cloud Service 16
If a load plan fails and you receive an error message, work with Oracle Support to monitor, troubleshoot,
diagnose, and fix load plan issues.
OTBI Enterprise for HCM Cloud Service 17
OTBI Enterprise for HCM Cloud Service 18
OTBI Enterprise for HCM Cloud Service 19
• When you restart a load plan after a failure, you may not be able to restart from the exact point of failure,
depending on where it occurred and on dependencies between load plan steps. The goal of restartability is that
the result of the load plan execution is the same regardless of any load plan failure.
• To maintain data integrity in the case of restart, the grain varies depending on the location in the step hierarchy
of the failed step and on the restart setting for the step.
• Within the Steps Hierarchy, you can view the restart setting of a step in the Restart column. The default settings
for different steps in the hierarchy support data integrity in restarts:
– Root steps are set to “Restart from Failure” if serial and “Restart from failed Children” if parallel.
– Substeps are set to “Restart from Failure” if serial and “Restart from failed Children” if parallel.
– Scenario steps are set to “Restart from Failed Step.”
OTBI Enterprise for HCM Cloud Service 20
• Serial steps are represented by a vertical icon in the load plan steps hierarchy and, by default, have a restart
setting of “Restart from Failure.” In a case where the load plan fails when running such a step to load a dimension
group with multiple serial substeps loading individual dimensions, the load plan, on restart, starts from the
individual substep that failed. Any successfully completed serial substeps are not run again.
• Parallel steps are represented by a horizontal icon in the load plan steps hierarchy and, by default, have a restart
setting of “Restart from Failed Children.” In a typical run, a parallel step with five parallel substeps under it has all
five substeps executed in parallel, subject to free sessions being available. If two of those five steps complete and
then the load plan fails, all the steps that did not complete or failed would be started again when the load plan is
restarted.
• At the lowest order in any load plan are the scenario steps. While the parent steps, whether serial or parallel, are
used to set the dependencies, the scenario steps are those that load the tables. A scenario step in turn may have
one or more substeps, corresponding to the number of steps inside the package. In the case of a scenario-step
failure during execution, the scenario step may have multiple steps, all under the same session in the operator
log, but identified with different step numbers: 0, 1, 2, and so on. If the plan is restarted, the scenario executes
from the failed parent scenario step, re-running all substeps.
OTBI Enterprise for HCM Cloud Service 21
• You use ODI Console to restart a load plan.
• The slide shows how to restart a load plan using ODI Console.
– In ODI Console, navigate to Runtime > Sessions/Load Plan Executions and select the load plan execution that has failed.
– Click the Restart button. The Restart button is displayed only when the selected load plan is the most recent run of the
load plan. The restart option is enabled only on the last run for a load plan. A load plan can be restarted any number of
times and each time it progresses from the last failure.
– A new instance of the load plan is generated.
– Monitor the load plan and confirm that it completes successfully.
OTBI Enterprise for HCM Cloud Service 22
• It is also possible to restart a session. To avoid restarting the entire load plan after a failure, which would require
inefficient re-runs of all tasks, you can restart the load from the same point in its execution once the cause of
failure has been diagnosed and resolved.
• You can use ODI Console to restart a session. The slide shows how to restart a session using ODI Console.
– In ODI Console, navigate to Runtime > Sessions/Load Plan Executions and select the session that has failed.
– Click the Restart button. The Restart button is displayed only when the selected session has failed.
OTBI Enterprise for HCM Cloud Service 23
• In most cases, the load plan restart method described earlier is the recommended approach. This approach
ensures data integrity and leaves no scope for manual error.
• However, at times you may want to run a load plan step manually. For example, if a step is inserting duplicate
records that are causing failure, rerunning the step would still insert duplicates. In such a case, you may need to
manually correct the data outside of the load plan and then skip that step when you restart the load plan.
• For this kind of situation, you can use the “Mark as Complete” option. When you mark a load plan step as
complete, it ensures that when the load plan is restarted, the marked step is not executed. It is then the
responsibility of the person making this setting to ensure that the load for that step is carried out outside the load
plan.
• To mark a step as complete, right-click the step and select “Mark as Complete.” This can be done at the scenario
step or at any step higher than that. Marking a step complete at a higher level in the step hierarchy means that
none of the child steps under that parent step is executed upon load plan restart, even if it is otherwise eligible.
For this reason, marking a step as complete should be treated as an advanced task and must be done only with a
full understanding of its impact. There is no single recommendation that pertains in all cases, so the setting must
be done carefully and only on a case-by-case basis.
OTBI Enterprise for HCM Cloud Service 24
• Select Actions > Execute Reset Data Warehouse Scenario. This command resets the data warehouse by truncating
the W_ETL_LOAD_DATES table. This ensures that the subsequent load will truncate all target tables and do a
fresh full load.
• In the Execute Reset Data Warehouse Scenario dialog box, set the Context, Logical Agent, ODI Work Repository,
and Log Level and click OK.
OTBI Enterprise for HCM Cloud Service 25
OTBI Enterprise for HCM Cloud Service 26
OTBI Enterprise for HCM Cloud Service 27
Defining and Executing a Full Load for OTBI Enterprise for HCM
Cloud Service
Overview
In this practice, you use Configuration Manager to define and execute a “Source Extract and
Load (SDE, SIL, and PLP)” load plan (full load) for OTBI Enterprise for HCM Cloud Service.
Assumptions
You use Configuration Manager to define and execute a “Source Extract and Load (SDE, SIL,
and PLP)” load plan for OTBI Enterprise for HCM Cloud Service. A “Source Extract and Load
(SDE, SIL, and PLP)” load plan includes all tasks to extract data from the fusion source and
load it into OTBI Enterprise for HCM Cloud Service.
Time
45 minutes
Tasks
1.
If you haven’t done so already, set the initial extract date. The initial extract date is required
when you extract data for a full load. It reduces the volume of data in the initial load. The
specified initial extract date is used as a filter on the creation date of OLTP data in the
selected full extract mapping.
a.
Sign in to Configuration Manager using the credentials provided by Oracle Cloud Ops.
b.
In the Tasks list, under Data Load Parameters Administration, click Manage Data Load
Parameters to open the Manage Data Load Parameters page in the work panel on the
right.
c.
In the Parameters Configuration section, verify that your source is selected in the
Source Instance field.
d.
In the Parameters Configuration section, select Code in the Parameter drop-down list.
e.
In the Parameter search field, enter INITIAL_EXTRACT_DATE.
f.
Click Search.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 1 of 9
g.
The parameter “Initial Extract Date for ETL” should now be visible in the Data Load
Parameters section.
h.
To edit the parameter, click the value or select the parameter in the Data Load
Parameters list and click the Edit icon to open the Edit Dialog box.
i.
When you receive the Warning message, click Yes to continue.
j.
In the Edit dialog box, enter the desired dated in the Parameter Value field. The default
value is 1/1/70.
k.
Click “Save and Close.”
l.
In the Data Load Parameters list, confirm that the Initial Extract Data for ETL parameter
is updated.
m. Click Done to close the Manage Data Load Parameters page and return to Overview
page.
2.
Define a “Source Extract and Load (SDE, SIL and PLP)” load plan.
a.
In the Tasks pane, select Manage Load Plans to display the Manage Load Plans page.
b.
In the Load Plans toolbar, click the Add icon
c.
Enter a name and description for the load plan. Be sure to begin the load plan name
with 'OTBIE' so that Oracle Cloud Ops can properly monitor it.
d.
Select the “Source Extract and Load (SDE, SIL and PLP)” load plan type. A “Source
Extract and Load (SDE, SIL, and PLP)” load plan includes all tasks to extract data from
the source and load it into OTBI Enterprise for HCM Cloud Service.
to display the Define Load Plan page.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 2 of 9
e.
Select the source instance from which the fact groups will be selected.
f.
Click Next to display the second page of the Define Load Plan series.
g.
In the Available Selections tab, select the fact group(s) to include in the load plan
definition. Note that fact groups may belong to a hierarchy of fact groups. You can
select only the top-level parent fact group and not a child fact group. A load plan must
contain at least one fact group, and multiple fact groups may be selected from one or
more data sources. For OTBI Enterprise for HCM Cloud Service release 11.1.1.8.1,
only the Absence and Accrual, Payroll, and Workforce Deployment fact groups should
be selected.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 3 of 9
3.
h.
Click the Selected Fact Groups tab and confirm that the fact groups are visible.
i.
Click the Save button in the bottom right corner to save the load plan. After a load plan
is saved, it is displayed in the Load Plans master list.
Explore the load plan settings.
a.
Select the “Source Extract and Load (SDE, SIL and PLP)” load plan in the Load Plans
master list.
b.
Click the Fact Groups sub-tab.
c.
Expand the source name and confirm that the selected fact groups are associated with
the load plan, and the data source number is set as expected. You use this tab to view
the fact groups associated with a load plan selected in the Load Plans list. The fact
groups displayed may belong to a hierarchy of fact groups. You expand the fact group
node to view the hierarchy.
d.
Click the Data Load Parameters tab. You use this tab to view and edit the data load
parameters associated with a load plan selected in the Load Plans list. The Data Load
Parameters list includes both application-specific and global parameters. Applicationspecific parameters are associated with one or more fact groups included in the load
plan definition. Global parameters apply to all applications and can also be associated
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 4 of 9
with specific fact groups.
4.
e.
Click the “Domains and Mappings” tab. You use the “Domains and Mappings” tab to
view and edit domains and mappings related to a load plan selected in the Load Plan
list. The domains and mappings are associated with the fact group included in the load
plan definition.
f.
Click the Schedules tab. You use the Schedule tab to view, create, edit, and delete
schedules for the execution of a load plan.
Reset the data warehouse.
a.
In the Load Plans toolbar, select Actions > Execute Reset Data Warehouse Scenario.
This command resets the data warehouse by truncating the W_ETL_LOAD_DATES
table. This ensures that the subsequent load will truncate all target tables and do a
fresh full load.
b.
In the Execute Reset Data Warehouse Scenario dialog box, set the following:
Context: Global
Logical Agent: OracleDIAgent
Oracle Data Integrator Work Repository: BIAPPS_WORKREP
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 5 of 9
Log Level: <Accept Default>
c.
5.
6.
Click OK to close the Execute Reset Data Warehouse Scenario dialog box. Allow a
moment for processing to complete.
Generate the load plan. A load plan must be generated successfully before it can be
executed.
a.
In the Load Plans master list, select the “Source Extract and Load (SDE, SIL and PLP)”
load plan.
b.
Click the Generate icon
c.
Use the Generation Status column to monitor the progress of the generation process.
Initially the Generation Status column will display the In Progress
icon. The process
must complete and display the Succeeded icon
before you can move on to the next
step. Click the Refresh icon
on the toolbar to refresh the display.
on the Load Plans toolbar to begin the generation process.
Execute the load plan.
a.
Select the “Source Extract and Load (SDE, SIL and PLP)” load plan by clicking inside a
field, but do not drill down on the load plan name.
b.
Execute the load plan by clicking the Execute icon
c.
In the Execute Load Plan dialog box, set the following:
Context: Global
Logical Agent: OracleDIAgent
Oracle Data Integrator Work Repository: BIAPPS_WORKREP
on the toolbar.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 6 of 9
Log Level: <Accept Default>
7.
d.
Click OK. Allow a moment for Execute Load Plan dialog box to close and processing to
begin.
e.
Use the Execution Status column to monitor the progress of the execution process.
Click the Refresh icon
on the Load Plans toolbar to refresh the display. Initially, the
Running icon
will display in the Execution Status column. Eventually the status icon
should turn to Done to indicate that the load plan execution completed successfully.
Monitor the load plan.
a.
In the Load Plans master list, select the load plan.
b.
On the Load Plans toolbar, click the Show Execution Status Details icon
the Oracle Data Integrator (ODI) Console sign-in screen.
c.
Confirm that Work Repository is selected and click Proceed. If requested to sign in, use
the same credentials you used for Configuration Manager.
d.
The ODI Console is displayed in the right pane of Configuration Manager. If desired,
click the Collapse Pane arrow to hide the Tasks navigation pane on the left.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 7 of 9
to display
e.
Within the ODI Console, notice that the Load Plan Execution page for the selected load
plan is displayed in the right pane. The Load Plan Execution page displays the load
plan execution name and load plan details. You can use the Load Plan Execution page
to view detailed information about the definition and execution status of the load plan.
f.
Notice that the top panel in the Load Plan Execution page is Execution. This panel
displays information about the load plan run, including the instance ID, load plan
execution name, start and end time, execution status, and any error messages.
g.
Scroll down to the Definition panel. This panel displays information about the load plan
definition, such as the parent folder, description, and log details.
h.
Scroll down to the Relationships panel. This panel displays information about steps
included in the load plan, variables associated with the load plan, and sessions
included in the load plan, including start and end dates.
i.
Click the Sessions tab.
a.
In the Status column, click the Sort Descending arrow. If there are any errors, this will
display sessions with Error status at the top of the list. If the load plan fails and you
receive an error message, work with Oracle Support to monitor, troubleshoot,
diagnose, and fix any load plan issues. You will need to submit an SR. Please refer to
the instructions for submitting an SR in the slide deck portion of this topic.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 8 of 9
Submitting an SR to Provision Users
Overview
After you successfully run the initial load plan, you need to provision the users who will be
accessing OTBI Enterprise for HCM Cloud Service dashboards and reports.
Assumptions
OTBI Enterprise for HCM Cloud Service is provisioned with fixed set of pre-populated enterprise
roles, to which authorization is granted to various bits of functionality within OTBI Enterprise for
HCM Cloud Service.
To create users, log an SR and upload the add_user.csv and add_users_to_groups.csv files
containing the list of users and their membership to the fixed set of enterprise roles.
Tasks
1.
2.
Submit an SR with the following Service Type, Problem Type, and Sub Problem Type:
a.
Service Type = Oracle Transactional Business Intelligence Enterprise for HCM Cloud
Service
b.
Problem Type = Hosting Services - Server Issue
c.
Sub Problem Type = Add users in OTBI Enterprise
Attach the add_user.csv and add_users_to_groups.csv files containing the list of
users and their membership to the fixed set of enterprise roles. If you do not know where to
locate these .csv files, please contact the person in Oracle BI Product Management who
has been assigned to assist you with your implementation.
a.
The add-users.csv file contains the list of users and their attributes such as mail
address, first name, last name, display name, etc. In the 11.1.1.8.1 release, the mail
attribute is automatically used as the unique login id (uid) for the user.
b.
The add_users_to_groups.csv file contains the assignment of the users to the
predefined list of enterprise roles. In this example, Jan Smith is assigned to two
predefined enterprise roles, PER_LINE_MANAGER_ABSTRACT and
PAY_PAYROLL_MANAGER_JOB, and therefore appears in two rows in the csv file.
c.
Please refer to the topic “setting Up Security” for information about modifying users,
deleting users, and resetting passwords.
Copyright © 2014, Oracle and/or its affiliates. All rights reserved.
Page 9 of 9