Create a Data Model Adding Geolocation Data

Creating OAAM Oracle BI Publisher Reports 19-7

19.2.2.2 Discover Entity Data Details Like Data Type, Row and Column Mappings

To get the entity data details that you will need to construct your report, follow these steps: 1. Get the Entity Definition Key by looking at the entity definition using the OAAM Admin Console. 2. Get details of how entity data is mapped using the SQL Query: SELECT label, data_row, data_col, data_type FROM vt_data_def_elem WHERE status =1 AND data_def_id = SELECT data_def_id FROM vt_data_def_map WHERE relation_type =data AND parent_obj_type =3 AND parent_object_id IN SELECT entity_def_id FROM vt_entity_def WHERE entity_def_key=Entity Definition Key AND status =1 ORDER BY data_row ASC, data_col ASC;

19.2.2.3 Build Entity Data SQL Queries and Views

The above SQL query gives a list of data fields of the entity with data type and row, column position. Using that information, build a SQL query based on the following information that represents data of the given entity. It is also recommended to createbuild a view based on this SQL query that represents data of the given entity. SELECT ent.ENTITY_ID, ent.EXT_ENTITY_ID, ent.ENTITYNAME, ent.ENTITY_KEY, ent.ENTITY_TYPE, Table 19–3 Information about Data Types Data Type Description 1 Represents String data 2 Represents Numeric data. Data stored is equal to Original value 1000. 3 Date type data. Store the data in YYYY-MM-DD HH24:MI:SS TZH:TZM format and also retrieve it using same format. 4 Boolean data. Stored as strings. True represents TRUE and False represents FALSE Note: EntityRowN represents an entity data row. If your entity has 3 distinct data_row values from the above query then you would have 3 EntityRows, name the aliases as EntityRow1, EntityRow2, and so on, and similarly take care of the corresponding joins as shown below. 19-8 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager EntityRowNrow.DATAcol column_name, EntityRowNrow.NUM_DATAcol 1000.0 numeric_column_name, to_timestamp_tzEntityRowNrow.DATAcol, YYYY-MM-DD HH24:MI:SS TZH:TZM date_column_name, ent.CREATE_TIME, ent.UPDATE_TIME, ent.EXPIRY_TIME, ent.RENEW_TIME FROM VT_ENTITY_DEF entDef, VT_ENTITY_ONE ent LEFT OUTER JOIN VT_ENTITY_ONE_PROFILE EntityRowN ON EntityRowN.ENTITY_ID = ent.ENTITY_ID AND EntityRowN.ROW_ORDER = row AND EntityRowN.EXPIRE_TIME IS NULL LEFT OUTER JOIN VT_ENTITY_ONE_PROFILE EntityRowN+1 ON EntityRowN+1.ENTITY_ID = ent.ENTITY_ID AND EntityRowN+1.ROW_ORDER = row+1 AND row1.EXPIRE_TIME IS NULL WHERE ent.ENTITY_DEF_ID = entDef.ENTITY_DEF_ID and entDef.ENTITY_DEF_KEY=Entity Definition Key

19.2.3 Discover Transaction Data Mapping Information

To discover transaction data mapping information that you will need to create your report, follow the procedures in this section.

19.2.3.1 Discover Transaction data details like Data Type, Row and Column mappings

To get entity data details you will need to construct your report, follow these steps:

1. Get list of transaction to entity definition mapping Ids using the following SQL:

SELECT map_id FROM vt_trx_ent_defs_map, vt_trx_def WHERE vt_trx_ent_defs_map.trx_def_id = vt_trx_def.trx_def_id AND vt_trx_def.trx_def_key =Transaction Definition Key 2. Use the following SQL query to get details of all transaction data fields, their data type and their row, column mapping: SELECT label, data_row, data_col, data_type FROM vt_data_def_elem WHERE status =1 AND data_def_id = SELECT data_def_id FROM vt_data_def_map WHERE relation_type =data AND parent_obj_type =1 AND parent_object_id IN SELECT trx_def_id FROM vt_trx_def WHERE trx_def_key=mayo_pat_rec_acc Creating OAAM Oracle BI Publisher Reports 19-9 AND status =1 ORDER BY data_row ASC, data_col ASC;

19.2.3.2 Build Transaction Data SQL Queries and Views

Use the information from the previous section and build a SQL query that represents transaction data based on the following: Note: It is recommended to build a view based on this Query so that it is easier to build reports SELECT trx.LOG_ID, trx.USER_ID, trx.REQUEST_ID, trx.EXT_TRX_ID, trx.TRX_TYPE, trx.STATUS, trx.SCORE, trx.RULE_ACTION, trx.TRX_FLAG, trx.POST_PROCESS_STATUS, trx.POST_PROCESS_RESULT, TxnDataRowNrow.DATAcol data_column_name, TxnDataRowNrow.NUM_DATAcol 1000.0 numeric_column_name, to_timestamp_tzTxnDataRowNrow.DATAcol, YYYY-MM-DD HH24:MI:SS TZH:TZM date_column_name, SELECT entTrxMap.MAP_OBJ_ID FROM VT_ENT_TRX_MAP entTrxMap WHERE entTrxMap.DEF_MAP_ID = Transaction to Entity Mapping Id of Entity1_ Name AND entTrxMap.TRX_ID = trx.LOG_ID EntityN_Name, SELECT entTrxMap.MAP_OBJ_ID FROM VT_ENT_TRX_MAP entTrxMap WHERE entTrxMap.DEF_MAP_ID = Transaction to Entity Mapping Id of Entity2_ Name AND entTrxMap.TRX_ID = trx.LOG_ID EntityN+1_Name, trx.CREATE_TIME, trx.UPDATE_TIME, TRUNCtrx.create_time, HH24 created_hour, TRUNCtrx.create_time, DDD created_day, TRUNCtrx.create_time, DAY created_week, TRUNCtrx.create_time, MM created_month, TRUNCtrx.create_time, YYYY created_year FROM VT_TRX_DEF trxDef, VT_TRX_LOGS trx LEFT OUTER JOIN VT_TRX_DATA TransactionDataRowN ON TransactionDataRowN.TRX_ID = trx.LOG_ID AND TransactionDataRowN.ROW_ORDER = rowN LEFT OUTER JOIN VT_TRX_DATA TransactionDataRowN+1 ON TransactionDataRowN+1.TRX_ID = trx.LOG_ID AND TransactionDataRowN+1.ROW_ORDER = rowN+1 WHERE trx.TRX_DEF_ID = trxDef.TRX_DEF_ID and trxDef.TRX_DEF_KEY=Transaction Definition Key 19-10 Oracle Fusion Middleware Developers Guide for Oracle Adaptive Access Manager

19.2.4 Build Reports

Follow the instructions in this section to build reports for entities and transactions.

19.2.4.1 Building Entity Data Reports

Use the SQL Queries or Views built using the information mentioned in Section 19.2.2.3, Build Entity Data SQL Queries and Views.

19.2.4.2 Building Transaction Data Reports

Use the SQL Queries or Views built using the information mentioned in Section 19.2.3.2, Build Transaction Data SQL Queries and Views.

19.2.4.3 Joining Entity Data Tables and Transaction data tables

You can join the transaction data views you built with entity data view using VT_ ENT_TRX_ MAP.MAP_OBJ_ID which is indicated using the pseudo column EntityN_Name. 20 Developing Custom Challenge Processors 20-1 20 Developing Custom Challenge Processors The OAAM Server provides a challenge processor framework that allows for custom implementations of challenge mechanisms. This chapter contains the following sections: ■ What are Challenge Processors ■ Code Challenge Processors ■ Define the Delivery Channel Types for the Challenge Processors ■ Configure User Input Properties ■ Configure the Challenge Pads Used for Challenge Types

20.1 What are Challenge Processors

A challenge processor is java code that implements the ChallengeProcessorIntf interface or extends the AbstractChallengeProcessor class. Challenge processors can be created to perform the following tasks for a challenge: ■ Generate challenge secret password to send to the user. ■ Validate the user answer ■ Control delivery wait page if needed ■ Check if delivery service is available if needed For example, to use SMS, you must implement a method for generating the secret PIN and checking the status of the send and the class that is called for by a challenge type.

20.2 Code Challenge Processors

This section contains information on the challenge processor class and methods to implement. An implementation example is also provided for your reference.

20.2.1 Class

To implement a challenge processor, you will need to extend the following class: com.bharosa.uio.processor.challenge.AbstractChallengeProcessor Later, you will compile the code by adding oaam.jar from ORACLE_IDM_ HOME\oaam\cli\lib folder to the build classpath.