Quantcast
Channel: Apps2Fusion Articles
Viewing all 930 articles
Browse latest View live

Executing a Fusion Cloud BI Report by a Simple Click on Springboard Icon

$
0
0

Introduction

We can run BI Reports from Report Catalog (article here) , from ESS Jobs (Run BIP Report as a ESS Job) , from Payroll Flow Pattern (Run BIP Report using Payroll Flow Pattern) and even via embedding a BIP Report into a OTBI Dashboard (Embedding BI Report In a OTBI Dashboard) but all of the above mentioned methods still has one shortcoming (at least, there may be more) and that is one would have to go through a series of navigation links to run the report.

While to a techie guy that might seem normal for a business user this might turn out to be cumbersome as he/she is looking for an easier way to get his task done (run the report in this case).

So, to make things simple I would try to demonstrate how we can accomplish this. We would try to show how to run a BI Report from a springboard icon there by trying to make life simpler for the business user.

So, without much ado let’s get started.

Worked-Out Example

We would need to create a new category (in case we would like to group all such commonly used reports under a common heading say “One-Click Reports” .one may choose to have a more appropriate name as applicable) and multiple pages. Please refer thisarticle to learn how to create a custom category and page in Oracle Cloud Application.

The high-level steps required in performing this activity (running BI Report from a springboard icon) are:

  1. Creating a New Category

  2. Adding New Page Entry (which points to the BIP Report we wish to execute)

Creating a New Category

We would need to click on the Structure Menu Item under Tools (as shown in the screenshot below)

Navigation is Navigator->Tools->Structure

This would take us to new screen where we need to click on “Edit Button” and then we would be asked to activate a sandbox (as shown)

We would be shown a list of all available sandboxes and we may choose to select any of them to be made active or even create a new one.

Once we click on a Yes, the sandbox will get activated.

Next, we need to again navigate to Structure (Navigator -> Tools) and create a new category. For this example, we will give the category a name as “One-Click Reports” and set the Visible Property to ‘Yes’

Note: We are not allowed to change the icon image in a SaaS Deployment Model and hence would continue with the default option provided.

Next, we would need to create a new page (which would be linked to the BIP Report)

We have used an already created custom report (AbsenceAccrualEntryDetailsReport.xdo).Specific points to note are the Category ( We chose “One-Click Reports” we created in previous step) , Visible property as “Yes’ (for both Navigator and Springboard) , the Link Type as Static URL.

The Destination URL can be obtained if you navigate to the report and then copy the link from the Address Bar

We would also create one more page entry for another report (Employee Personal Detail Report)

Once done we can click on either “Save” or “Save and Close”. If we Click on “Save” the transaction will be saved and we would remain on the same page. If we click on “Save and Close” button instead the transaction will get saved and also we would return to the “Structure” page.

Verification

If we go to the Homepage and click on the Navigator icon we would be able to see the new categories and the new pages created.

A quick click on the “Absence Accrual Entry Details Report” shows the following screen:

Similarly, if we click on the “Employee Personal Detail Report” it shows the following screen:

Inference / Summary

So, this is how we can provide a direct link of a BIP Report on the springboard. Whenever a end-user clicks on the icon it would display the BIP Report data. This feature is very useful as the business user need not to navigate through a series of links to run a BI Report but could simply click on the link and he/she would get the required results.

As such one may create page entries for all BIP Reports and associate the same with a category (maybe like “Payroll Reports”, “HR Reports”, “GL Reports”, “Compensation Reports” ..) . Also one may make use of “EL Expression” both at Page Entry or Category level whereby one may have a selective control on making those items visible. Based on the logic in the EL Expression the Category and Pages could be made visible to a specific set of users only while the other set would have no option of running the reports.

One may feel free to try that feature too and I would be glad if you would share your findings and observations.

And with this I would end up my article here. Thanks all for your time and have a great day ahead!


Identifying Whether Employee Record is New Hire or an Assignment Change Record In Oracle Fusion Cloud

$
0
0

Introduction

The title of this article might surprise a lot of experienced consultants but it does continues to puzzle new starters to understand how to identify whether an employee is a new hire or is some one who has undergone assignment changes.

We would try to explain this with a very simple example covering both the technical and functional sides and try to explain the same both from an database as well as application perspective.

To start with we would begin with the Technical Aspect ( generally people tend to start with this aspect as its considered that most people would have little idea about SQL queries, Relational Database etc and it becomes easier to understand).

In context of Oracle HCM Cloud the Assignment Related details are captured in a Base Table named PER_ALL_ASSIGNMENTS_M. Also important detail like Person Number is stored in the PERSON_NUMBER database field of PER_ALL_PEOPLE_F table.

We would use the below query to get the assignment details from the database:

SQL Query

SELECT (

            SELECT papf.person_number

            FROMper_all_people_f papf

            WHERE papf.person_id = paam.person_id

             AND trunc(sysdate) BETWEEN papf.effective_start_date and papf.effective_end_date

          ) person_number,

           paam.*

FROM per_all_assignments_m paam

WHERE  paam.primary_flag = ‘Y’

AND    paam.assignment_type = ‘E’

ORDER BY paam.assignment_id asc, paam.effective_start_date asc

When we execute this query creating a Data Model ( Read thisarticle to learn how to create a sql query based BI Data Model in Oracle Cloud Application) we would be able to view the following results:

From the above diagram we can find the below things

Person#

Assignment Effective Start Date

Assignment Effective End Date

2

29-Dec-2004

31-Dec-4712

3

14-Feb-2003

30-Sep-2004

3

01-Oct-2004

23-Jan-2015

3

24-Jan-2015

31-Dec-4712

Couple of points to note from above table are:

  1. There is just one Assignment Record for Person# 2

  2. There are multiple assignment records for Person#3

  3. Each New Assignment Record (For Person#3) starts one day after the previous assignment record ends

  4. The most recent record has an Assignment End Date of 31-Dec-4712

So from these details we may conclude that Person# 2 has not undergone any assignment changes and there should be only one record (one created during new hire action) in case we verify from UI.

For Person# 3 on the other hand there are 3 assignment records out of which the first one would be new hire record and the other two would be assignment changes.

Verification From Application UI

In order to perform a verification from application we would need to follow the below navigation:

Navigator->Person Management-> Search for Person Number and then go Quick Actions -> Personal and Employment -> Manage Employment

We would see the following details on the Manage Employment we could see the Action is Hire, the effective start date and hire date are both same (12/29/04 which corresponds to 29-Dec-2004) and also the assignment history shows all the actions were performed on the hire date.

Similarly, if we check for the Person# 3 we could infer that the Hire Date and the Start Date of First Assignment (2/14/03 corresponds to 14-Feb-2003) , the most current Assignment Record starts on 1/24/15 for Promotion Action. Also in the View History we could see that there are three assignment records with assignment actions Hire, Manager Change and Promotion.

Inference / Summary

From the above example we could clearly see that for a New Hire there would be just one assignment record with Assignment Action as Hire and the Hire Date and Assignment Start Date would be same. In case of an employee record where multiple assignment changes have been made there would be multiple assignment records each starting on a new date such that the New Assignment Start Date begins one day after the previous assignment record ends.

While in this example, I have picked up already existing person records for this demonstration but one can create two new worker records one which will only have Hire Action performed and the other would have multiple assignment changes.

Sample HDL Files for Loading Worker Records in Oracle HCM Cloud Application

$
0
0

Introduction

 

In one of the previous article we have tried to demonstrate how to load Worker Records in an HCM Cloud Application. Post that article got published I got multiple requests from consultants where they have asked for the actual zip files which I have used for the process.

Hence, I thought it makes sense to have a follow up article which would help the readers.

Prerequisite

While the pre-requisite details have already been mentioned in the main article but I would make a explicit mention of the same here so that ambiguity if any is removed.

The major prerequisites are:

 

  1. Creating a Source System Owner as ‘HA’
  2. Creating a Legal Employer as ‘US1 Legal Entity’
  3. Creating a Business Unit as ‘US1 Business Unit’

 

Note:

One may choose to configure different data values for Source System Owner, Legal Employer and Business Unit but in that case one would need to modify the HDL files too accordingly. As such, it still makes sense to use the existing values for now and one may try with new values later once he/she become familiar with the entire process.

 

The Effective Start Date Values used while Configuring the Source System Owner is set to 01-01-2018. If anyone chooses any values after this date they might encounter date-effectivity issues. It's recommended that the same start date value (01-01-2018) be used during the operation.

 

Sample Files

For those of you who have already gone through the article , they might have understood that we would need to perform the entire data-load procedure in 3 steps namely:

 

  1. Load Work-Structure Components
  2. Initial Worker Load
  3. Supervisor Assignments

 

A brief description of each of the above steps follows:

 

Load Work-Structure Components

One of the basic requirement before one starts creating Worker Records into the application one should ensure that the Work Structure Components like Legal Employer, Business Unit, Job, Department, Location, Grade and Position should already be present in the system. These details are required when we need to assign an individual to specific Department, Job , Location and other assignment attributes.

 

Please use the following link to download the WorkStrcutureComponents.zip file:

 

<WorkstructureComponents.zip>

 

The zip file when extracted should contain the following files:

 

 

Initial Worker Load

Once you load the WorkstructureComponents successfully one may proceed with loading the Worker Records. (These worker records would not be having supervisor related details in this load as there might be some issues with the assignment records of the supervisor and that might halt your progress). So in order to keep things simple we would load the worker details in this step and then will try to reload the supervisor details (in the third step)

 

Please use the following link to download the InitialWorkLoad.zip file:

 

<InitialWorkerLoad.zip>

 

The zip file when extracted should contain the following files:

 

 

Supervisor Assignment

After the worker load is successful, we would try to assign supervisor to the worker records.Once these files gets loaded successfully too we would be able to view that the assignment recors have the Line Manager details populated too. Also one may try to run the organization chart to view the supervisor hierarchy.

 

Please use the following link to download the SupervisorAssignment.zip file:

 

Supervisor Assignment.zip

 

The zip files when extracted should contain the following files:

 

 

Inference / Summary

Once we load all the files successfully we should be able to get an org chart (as shown below) which is a confirmation that the data-load was successful.

 

Manage Item in Fusion SCM cloud Product Information Management- Demo

$
0
0

By implementing the Product Management offering, an enterprise can configure how to create and manage items, catalogs, and related processes, as well as the structures to support receipt accounting for purchased items, cost accounting for financial reporting, and product profitability management. The Oracle Fusion Applications Product Information Management Implementation Guide covers implementation of item, catalog, and product management processes.
You can begin creating an item from the Regional Task pane or the Manage Items page. Start by providing basic information such as master organization, number of items (in this case, one item), and item class. Then you will select the templates which will be applied to the items, sequentially. Next, required attributes must be provided. If mandatory attributes were defined in the item class, then they must be provided. You can also provide unit of measure details.
When creating a new item, you have the option of creating more than one item simultaneously. In situations where you have to create numerous items that share some common characteristics, it is best to use this procedure.

Manage Item in Fusion SCM cloud Product Information Management:

 

Enrol Now for Fusion SCM Cloud Training

Getting Started with Inbound Integration using HCM Data Loader In Oracle Fusion HCM Cloud

$
0
0

Introduction

If you are a technical consultant planning to start on your first Oracle HCM Data Migration /Data Conversion Implementation Project (irrespective of the deployment model be it On-Premise, SaaS, Hybrid) probably this article for you but that doesn’t means it cannot be referred by experienced professionals.

It is not very easy to understand the detailed data mapping, joins and relations between various HCM Business Object components. Some of the business objects may be very simple like Location which only has one metadata line (object definition) or could be a complex one like Worker which comprises of multiple child components (Person Name, Person National Identifier, Person Email, Person Phone... etc.). Read this articlehere to learn how one may load some business objects using HCM Data Loader.

And while one may always use a combination of MERGE and DELETE commands to load and remove data from application, there are always chances that you load unwanted data. Typical examples being you loaded a Location Object and then loaded a Worker Record which uses this specific location. One may still use the “Purge Person” Diagnostic Test (read complete worked out examplehere ) to delete person records completely from the application but remember that’s only supported in Non-Production Environments.

In order to simplify all this and still give a real-time hands on experience of using HCM Data Loader (with no prior configuration required) to newbies Oracle Development team has provided a sample object “Example Object”. Example Object data is saved to its own tables. No data is saved to the application tables. One can review the structure and attributes of the Example Object on the Business Object Details page in the Data Exchange work area. The example object:

  • Has child and grandchild components and a translation object

  • Supports all key types

  • Supports Create and Delete actions

  • Has attributes of most data types

  • Has lookup-validated attributes

Starting Release 13 there would be a new process ( complete detailshere ) named “Test HCM Data Loader Process Flow and Connections” and when a user selects the value of “Action” parameter as “Test HCM Data Loader” then the process will perform the following actions:

  1. Generates a file of MERGE Instructions for Example Object

  2. Adds the ExampleObject.dat file to ExampleObject||<date and time>||.zip file

  3. Uploads the .zip file to /hcm/dataloader/import directory on the WebCenter Content Server

  4. Initiates the HCM Data Loader to import and load the file

  5. Provides a log file

However, not many of the release 13 environment currently have this process currently present. But nevertheless one may still make use of “Import and Load Data” process.

We would demonstrate the same with a worked out example.

Worked Out Example

We would need to download the WorkerObject.dat Template (from the “Initiate Data Load” option under Data Exchange using “Example Object” as the business object name.

Once we click on the icon the Template file will get downloaded which would appear as below:

We could see that there are three METADATA lines namely ExampleObject, ExampleChildObject and ExampleGrandChildObject respectively. A brief description of each of the metadata line along with logic of the data used described in detail

ExampleObject

Attribute Name

Attribute Value

Comments

Metadata

MERGE

Command Used to Add/Edit

ExampleObject

ExampleObject

Object Name

ParentId

1

Unique Number (ID)

ParentNumber

HRC_SQLLOADER_EO_PARENT1

Unique Identifier (Used by End User for easy identification)

ParentCode

HRC_SQLLOADER_EO_PARENTCODE1

Unique Code

StartDate

2018/01/01

Date in YYYY/MM/DD

EffectiveStartDate

2018/01/01

Effective Date from which this record should be active in YYYY/MM/DD

EffectiveEndDate

4712/12/31

Date when this record ends. For an ongoing record always use 4712/12/31 in YYYY/MM/DD

EffectiveSequence

1

Sequence (like 1,2,3.)

EffectiveLatestChange

Y

If the record is the latest one it will hold value as ‘Y’ else ‘N’

Status

SUCCESS

Lookup Code Value as fetched from HRC_DL_STATUS Lookup Type

ParentBusinessObjectId

 

Unique ID of the Parent Business Object

ChildBusinessObjectId

1

Unique ID of Child Business Object

AttrChar1

 

Optional

SourceSystemOwner

HRC_SQLLOADER

Source System Owner Value as configured in HRC_SOURCE_SYSTEM_OWNER Lookup

SourceSystemId

HRC_SQLLOADER_EO_PARENT_1

Unique ID from Legacy Application

GUID

 

System Generated Unique ID

Name

Sample Example Object

Name you want to give to your custom object

The Data File would appear as below:

Similarly, the Example Child Object Metadata Line would have following mapping details:

ExampleChildObject

Attribute Name

Attribute Value

Comments

Metadata

MERGE

Command Used to Add/Edit

ExampleChildObject

ExampleChildObject

Object Name

ChildLevelOneId

1

Unique Number (ID)

ChildLevelOneNumber

HRC_SQLLOADER_EO_LEVEL1_CHILD1

Unique Identifier (Used by End User for easy identification)

GUID

 

System Generated Unique ID

ParentId

1

ParentId value of the parent object

SourceSystemId

HRC_SQLLOADER_EO_LEVEL1_CHILD_1

Unique ID from Legacy Application

SourceSystemOwner

HRC_SQLLOADER

Source System Owner Value as configured in HRC_SOURCE_SYSTEM_OWNER Lookup

StartDate

2018/01/01

Date in YYYY/MM/DD

ParentNumber

HRC_SQLLOADER_EO_PARENT1

Parent Number of Parent Record

ParentCode

HRC_SQLLOADER_EO_PARENTCODE

Parent Code of Parent Record

The Data File would appear as:

Similarly, the Example Grandchild Object Metadata Line would have following mapping details:

ExampleGrandchildObject

Attribute Name

Attribute Value

Comments

Metadata

MERGE

Command Used to Add/Edit

ExampleGrandchildObject

ExampleGrandchildObject

Object Name

ChildLevelOneId

1

Unique Number (ID)

ChildLevelTwoId

1

Unique Number (ID)

ChildTwoCode

HRC_SQLLOADER_EO_GRANDCHILDCODE1

Unique Code

GUID

 

System Generated Unique ID

SourceSystemId

HRC_SQLLOADER_EO_LEVEL2_GRANDCHILD_1

Unique ID from Legacy Application

SourceSystemOwner

HRC_SQLLOADER

Source System Owner Value as configured in HRC_SOURCE_SYSTEM_OWNER Lookup

StartDate

2018/01/01

Date in YYYY/MM/DD

ChildLevelOneNumber

HRC_SQLLOADER_EO_LEVEL1_CHILD1

Parent Number of Child Record

The Data File would appear as:

Now the files are ready and one may try loading the same.

Loading the File

In the next step one would login to application, click on Data Exchange, click on Import and Load Data. We would load three different files named ParentExampleObject.zip , ChildExampleObject.zip and GrandchildExampleObject.zip. Once all the files are loaded the UI would appear as below:

Verification

Since this specific Example Object does not have any specific application base tables and UI pages associated with it we would not be able to verify the same from UI but we could always check from the underlying tables which holds this data.

Data Model Diagram

We would create a custom data model comprising of three different data sets:

Data Set Name

SQL Query

ExampleObject

select * from hrc_dl_so_parent_m

ChildExampleObject

select * from hrc_dl_so_child_level_one

GrandChildExampleObject

select * from hrc_dl_so_child_level_two

Once we click on “Data” we could see the results as shown:

Next we would click on “Save as Sample Data” and then try to Create a Report using this Data Model. We would have three different RTF Templates created. Once created the “Edit Report” page would appear as shown below:

And when we click on “View Report” we would be able to see 4 different tabbed reports one each corresponding to ExampleObject , ParentExampleObject, ChildExampleObject and GrandChildExampleObject respectively and the output would appear as below:

ExampleObjectTemplate (Tab):

ParentExampleObjectTemplate(Tab):

ChildExampleObjectTemplate(Tab):

GrandChildExampleTemplate(Tab):

Inference / Summary

So this is how one can load the Example Object and even verify the data from the database tables. I hope this was a good read and would help you guys getting started with HCM Data Loader.

Good Luck!

And just to make life simpler for you guys please find the handy link where-from you can download the relevant files used in this demonstration:

ParentExampleObject.zip (ExampleObject Data File with Only Parent Object Data other Lines are commented)

ChildExampleObject.zip (ExampleObject Data File with Only Child Object Data other Lines are commented)

GrandChildExampleObject.zip (ExampleObject Data File with Only GrandChild Object Data other lines are commented)

ExampleObjectTemplate.rtf

ParentExampleObjectTemplate.rtf

ChildExampleObjectTemplate.rtf

GrandChildExampleObjectTemplate.rtf

ExampleObject_dm.xdm.catalog

ExampleObjectReport.xdo.catalog

Overview of Oracle EBS R12 Advanced Pricing- Demo

$
0
0

Oracle Advanced Pricing provides the flexibility to meet the needs of complex pricing situations for a range of industry business requirements including consumer goods, telecommunications, services, high technology, automotive, and aerospace/defense businesses that sell to other businesses; and, telemarketing, mail order catalog, and web store businesses that sell directly to consumers.Oracle Advanced Pricing uses a logical and flexible framework to handle complex and tailored pricing scenarios. It enables organizations to segment the price creation process into three basic elements: defining pricing rules, assigning rules to create specific pricing actions, and designating pricing controls.

Overview of Oracle EBS R12 Advanced Pricing

 

Enrol Now for Oracle EBS R12 Advanced Pricing Training

Running Parameterized Reports from Navigator Menu And Springboard Icon in Oracle Fusion HCM Cloud

$
0
0

Introduction

In one of the previousarticle we have seen how to run a run a Cloud BI Report by a simple click on Springboard Icon. But that particular example would work only for reports which does not needs any user input (commonly referred to as a parameter) required. The user clicks on the icon and the report data is displayed. However, not all reports work that way. Some or probably most of them need one or more parameters. In this article we will try to demonstrate how to run a parameterized report from a Navigator Menu Link or from the springboard icon.

A user should have access to “Structure” Menu Link in order to perform ths activity. Appplication Implementation Administrator role has access to “Structure

So let’s get started.

Worked Out Example

As a first step we would need to create a parameterized BI Report and verify that the report works fine from the BI catalog. For this example we have taken a report titled “Employee Basic Detail Report” and have verified that the report does works fine from the BI Catalog Area.

As a next step we would need to select the “Employee Basic Detail Report” from the BI Catalog Area and click on More->Schedule Option as shown

 

Once we click on the Schedule Link it would take us to a new screen. We would need to copy the Web-page link from the address bar and keep it in some text editor (this would be used in next steps).

The page link would appear as:

 

https://<host:port>/analytics/saw.dll?bipublisherEntry&Action=schedule&itemType=.xdo&bipPath=%2FCustom%2FPractice%20Samples%2FEmployee%20Basic%20Detail%20Report.xdo&path=%2Fshared%2FCustom%2FPractice%20Samples%2FEmployee%20Basic%20Detail%20Report.xdo

 

The actual link has been changed (to ensure confidentiality is maintained). One would have a separate Host and Port details for his/her environment. Also notice that the Action should have a value of schedule

 

Now as a next step we would need to activate a sandbox and create a new category. Details used are below:

 

Create New Category

Attribute Name

Attribute Value

*Name

One-Click Parameterized Reports

Icon

<any available icon from the search pane>

Navigator

Yes

 

The details when captured in screenshot would appear as below:

 

Similarly, we would need to create a New page too. We would need the following details:

 

Create New Page

Attribute Name

Attribute Value

*Name

Employee Basic Detail Report

*Icon

<any available icon from the search pane>

Category

One-Click Parameterized Reports

Navigator

Yes

Springboard

Yes

Link Type

Static URL

Secure Destination

Unchecked

*Destination

<page-link captured in editor in previous steps>

 

The details when captured in screenshot would appear as below:

Once we are done we can click on “Save and Close”. We would be able to see the link on the Navigator Menu as shown:

 

We would also be able to view the link on the springboard too:

Verification

One may choose either of the Navigator Menu or the Springboard Icon and once we click on them we would be taken to the schedule page where from we can pass the parameter values (Person Number as ‘All’) and submit the job as shown:

 

Similarly, we can again click on either of the Navigator Menu Link or Springboard Icon and pass a specific person number value (100053 for this example) and submit the job:

We would now go to “Job History” and we should be able to see the details of the job submitted

 

And once we click on “Run1_All’ (the job name submitted with Person Number parameter value as ‘All’) we would view the below output:

And similarly, if we click on “Run2_100053” (the job name submitted with person number as 100053) we would view the following output:

 

Inference / Summary

So this is how we can run parameterized reports from navigator menu link or springboard icon. While we have used only one parameter for demonstration one may try with multiple parameters too and I am sure it would work fine too.

And with this I have come to an end of this article. Hope this was informative and would help you guys in your projects.

That’s it from my side, have a nice day ahead.

 

Manage Pricing in Oracle EBS R12 Advanced Pricing- Demo

$
0
0

Price Lists

Price lists relate a list price to a product. (The list price is the starting price before any related discounts and adjustments are applied.) Price lists can contain one or more price list lines, price breaks, pricing attributes, qualifiers, and secondary price lists. The price list information includes the price list name, effective dates, currency, pricing controls, rounding factor, and shipping defaults such as freight terms and freight carrier.
Multiple Currency Price Lists

Multiple currency price lists enables businesses that have pricing strategies based on a single price for an item in a base currency to use exchange rates or formulas to convert that price into the ordering currency. At engine run time, the pricing engine will take the currency from the order and search for a price list or price lists with base or conversion currencies matching this currency. The pricing engine converts the price from the base currency and calculates the ordering currency based upon the established conversion rules.

Manage Pricing in Oracle EBS R12 Advanced Pricing:

Enrol Now for Oracle EBS R12 Advanced Pricing Training


Delivered Date Time and System Functions In OBI Analysis

$
0
0

Introduction

In one of the previous article (linkhere) we have seen how to display total no of rows fetched by an OTBI Analysis, Display Logged In User’s Application User-Name, Current Date and Time. But just to remind that these are not the only functions available to be used.

There are a whole gamut of functions categorized under:

Aggregate

Running Aggregate

String

Math

Calendar/Date

Conversion

System

Expressions

DB Functions

Time Series Calculations

One may find the list if one navigates to any of the Data Fields used in Analysis and then click on “Edit Formula”. A new popup window opens up and there is a Button Titled “f()..’ . Once we click on the same the following screen opens up:

Most of the functions perform some specific operations on the actual data rendered by the Analysis, however there are few functions which might be common to many analysis couple of example being displaying the Day Name, Day of Year, Day of Quarter, Username, Day of Month….etc etc

At this point one obvious question which might arise to many users would be what is the actual benefit / value-addition a business used will have if he/she is aware of these delivered functions. And while there could be many reasons for the same my answer is as below:

OTBI was originally designed for use by business users.

As such any business user at any point of time should be aware of the delivered functions.

Couple of advantages (with sepcific reference to the delivered function follows):

1. Logged in User Name

For an OTBI Analysis the data rendered is dependent on the logged in user(who runs the report). So while UserA may get 10 Purchase Order related details (for example), UserB will get 20 Purchase Orders. So the data rendered doesn't make any sense unless the logged in user details are provided.

2. Current Date

Unlike BI Report an OTBI Analysis always gives Current Date data. So Current Date should always be printed in an OTBI Report . Hence being aware of this function helps.

3. Current Year, Current Month, Current Quarter

These functions can be of importance while creating financial reports. Being aware of the function helps

And many more...

For this example we would use a couple of these functions and display them in a Narrative View.

Details of the functions below:

 

Attribute Name

Attribute Value (Function Used)

Subject Area

DATABASE()

Logged In User

USER()

Current Date

CURRENT_DATE

Current Time

CURRENT_TIME

Current Timestamp

CURRENT_TIMESTAMP

Day of Quarter

DAY_OF_QUARTER(CURRENT_DATE)

Day Name

DAYNAME(CURRENT_DATE)

Day of Month

DAYOFMONTH(CURRENT_DATE)

Day of Week

DAYOFWEEK(CURRENT_DATE)

Day of Year

DAYOFYEAR(CURRENT_DATE)

Current Month

MONTH(CURRENT_DATE)

Month of Quarter

MONTH_OF_QUARTER(CURRENT_DATE)

Month Name

MONTHNAME(CURRENT_DATE)

Week of Year

WEEK_OF_YEAR(CURRENT_DATE)

Year

YEAR(CURRENT_DATE)

Week of Quarter

WEEK_OF_QUARTER(CURRENT_DATE)

Quarter of Year

QUARTER_OF_YEAR(CURRENT_DATE)

 

Once these details have been populated we would get the requisite data in the “Results” tab. We would need to create a new “Narrative View” and Navigation is View ->New View (using )

Screenshot below:

Next we need to choose Other Views -> Narrative View as shown

 

Once we do that we need to design the Narrative View. The details used are in the table below:

 

Attribute Name

Attribute Value

Prefix

******** Start of Report ********************[br/]

[br/]

Delivered Date Time and System Functions[br/][br/]

**********************************************[br/][br/]

Narrative

[b]Subject Area             :[/b] @1[br/]

[b]Logged In User         :[/b] @2[br/]

[b]Current Date             :[/b] @3[br/]

[b]Current Time             :[/b] @4[br/]

[b]Current Timestamp       :[/b] @5[br/]

[b]Day of Quarter          :[/b] @6[br/]

[b]Day Name                 :[/b] @7[br/]

[b]Day of Month             :[/b] @8[br/]

[b]Day of Week              :[/b] @9[br/]

[b]Day of Year               :[/b] @10[br/]

[b]Current Month           :[/b] @11[br/]

[b]Month of Quarter       :[/b] @12[br/]

[b]Month Name              :[/b] @13[br/]

[b]Week of Year             :[/b] @14[br/]

[b]Year                           :[/b] @15[br/]

[b]Week of Quarter            :[/b] @16[br/]

[b]Quarter of Year         :[/b] @17[br/]

Row separator

 

Rows to Display

 

Postfix

[br/]*************End of Report******************[br/]

 

These details when populated in the application would appear as shown below:

 

We can now save the analysis. Remove the Title and Table views. Add this Narrative View and the results would appear as below:

 

Inference / Summary

So this is how one may use the delivered functions in a OBI Analysis. While I have used Narrative View here one may choose any of the other available ones too. Also apart from the functions used here there are multiple other functions which can be used.

That’s it from my side , have a nice day!

Hopefully the content was useful

Understanding UPDATE and CORRECTION Actions in Oracle Fusion HCM Cloud Application

$
0
0

Introduction

One of the most common confusion (which I have seen) for HRIS Business Analysts and HR Administrator while performing any modifications (edit/changes) to any worker record is which one of the UPDATE and CORRECTION mode should be selected. Both the modes have its own set of advantages and disadvantages. While this article is not intended to provide a thumb rule on which operation should be chosen on a specific scenario it but probably it may help one decide which is the best way to go. What I would try to demonstrate here is what kind of impact does a Data Row has once we choose a CORRECTION Action vis a vis an UPDATE Action.

In this article we would perform a CORRECTION and UPDATE action on two different records and illustrate how this impacts the data in the underlying tables.

Hopefully getting a clear view of that would help in making decision as to which particular action should be performed in a specific scenario and the associated reasons for doing so.

So, without further delay let’s get started.

Worked Out Example

We would categorize this activity into two Broad Parts namely:

  1. CORRECTION Mode Operation

  2. UPDATE Mode Operation

Correction Mode Operation

In order to illustrate this case we would perform the following steps:

Step1: Create a New Position in the HCM Cloud System with Start Date as 01-Jan-2018 (01/01/2018)

Step2: Create a New Person Record (start Date as 01-Jan-2018) and associate this Position to it.

Step3: Perform a CORRECTION Action on this Position and Change the Position Name from “Oracle HCM Cloud Consultant” to “Cloud Consultant”

Step4: Check the Assignment Record

We could clearly notice that the new Position Name gets reflected in the Assignment Record

Update Mode Operation

We would need to perform the following steps in order to demonstrate the impact an UPDATE operation has on the transactional records.

Step1: Create a New Position in the HCM Cloud System with Start Date as 01-Jan-2018 (01/01/2018)

Step2: Create a New Person Record (start Date as 01-Jan-2018) and associate this Position to it.

Step3: Perform an UPDATE operation (start date as 01-Feb-2018) and change the Position Name from “Oracle HCM Solution Architect” to “Solution Architect”

Step4: Verify the Assignment Record as on 01-Jan-2018

Step5: Verify the Assignment Record as on 01-Feb-2018

One should be able to notice that depending on the dates on which we are trying to view the Assignment Record the value of the Position field changes even though all other things (including the Assignment Effective Start Date) remains the same.

Inference / Summary

Whenever we perform an UPDATE action all the references and history is maintained in the date underlying tables the same is not the case in CORRECTION. A CORRECTION action ensures that all the previous references are removed and only the latest changes made gets reflected from the initial date till the current one.

Having said so it doesn’t means that one should always perform a CORRECTION or an UPDATE but it purely depends on the specific needs. Some organizations prefer to keep track of all changes made and go with UPDATE operation while some prefer the CORRECTION action.

Applying UPDATE and CORRECTION Mode Changes to PersonName Metadata using HDL Files In Oracle Fusion HCM Cloud Application

$
0
0

Introduction

In one of the previous article (Loading Worker Record Using HDL Template) we have seen how to load Worker object using HDL files.

In this article we would try to identify which all data attributes can be modified. While there is no specific action name like UPDATE or CORRECTION mentioned in the data file we go with an assumption that if we keep the effective start and end dates same it would be CORRECTION operation while if we have a new effective start date it would be UPDATE action.

Create Worker

In the first step we would load the worker record.

And a quick search on Person Management (with Person Number as AH1) should show the record. On the Manage Person page we could see the Date of Birth is 01/01/1975

Scenario: Making Changes to WORKER Metadata

In the above file we have only used the minimum attributes and for the METADATA line it is only the Date of Birth field which can be modified without having an adverse impact on any other child entities. For this example we would change the Date of Birth value from 1975/01/01 to 1978/01/01 in the data file and retry the load. We have made the changes in the file and named the zipped file as UpdateDOB.zip

We may verify whether the changes have reflected by navigating to the Manage Person screen.

Scenario: Making Changes to PersonName Metadata in CORRECTION Mode

For this scenario we would make changes to the Person Name Metadata .The initial load did not had a Middle Name field populated. For this example we would add “CorrectionModeScenario” in the middle name field. We would name the zip file as PersonNameCorrectionModeUpdate

And when we verify the same from Manage Person page we should be able to view the change. The Middle Name field should be populated with the new value (CorrectionModeScenario for this example)

One should note that the Name History only shows one record (confirming that CORRECTION Mode changes have taken effect)

Scenario: Making Changes to PersonName Metadata in UPDATE Mode

In this case we would try to make changes to PersonName metadata. For this we would need to provide a new Effective Start Date (2018/02/01 for this example) and we would change the Middle name value to UpdateModeScenario.

We would name the zip file as PersonNameUpdateMode

And we should again do a quick verification by checking for the Name Attributes field (from Manage Person UI)

We can see that the Middle name value has changed and the Name History popup window shows that a new record got created starting 2018/02/01 which also confirms that the changes have been made in UPDATE mode.

Files Used Can Be downloaded from below links:

CreateWorker

UpdateDOB

PersonNameCorrectionModeUpdate

PersonNameUpdateMode

Inference / Summary

This is how we can perform UPDATE and CORRECTION actions using HDL data files. While I have only shown the changes taking person related METADATA entities one may perform similar operations for other entities like WORKRELATIONSHIP, WORKTERMS, ASSIGNMENT, WORKMEASURE etc.

Request you all to please try the different permutations and combinations from your side and feel free to share your views / observations and findings.

As from my side, I would try something from my end too and share in the next post.

Thanks for your time and hope this write-up was useful.                       

Creating Employee Record using WebService In Oracle Fusion HCM Cloud Application

$
0
0

Introduction

There are various ways of creating employees in Oracle Fusion HCM Cloud Application. It could be either of:

  1. Application UI

  2. HCM Data Loader

  3. HCM Spreadsheet Loader

  4. Web-Service

One can refer toCreate an Employee In Fusion HCM to learn how to create a new employee in Oracle Fusion HCM . Similarly one may referLoading Worker Record Using HDL Template to learn how to create employee using HDL. For creating worker record using HCM Spreadsheet Loader feel free to referthis link here.

And now coming for the last option, we would try to demonstrate the same in this article here.

Pre-requisite

One would require some Soap Web Service Testing Tools. For this example we would be using SOAPUI. Once we have downloaded the SOAPUI tool we would need to have the following details handy in order to create a SOAPUI project:

  1. WSDL

  2. Operation

  3. User Credentials

Now the WSDL URL would be specific to every environment and one might get to know the exact WSDL URL by following the below navigation.

Login to Oracle HCM Cloud Application -> Navigator -> Tools -> Developer Connect

Once we click on the link this would take us to a new screen where we need to search for the specific web service whose WSDL URL we are trying to retrieve (Worker Version 2 for this example)

If we click on the highlighted text we would be taken to a new tab which will contain the Web Service Details.

Next we would need to go to the “Operations” tab and choose the appropriate one.

Now we would need to open the SOAPUI and create a new project. Once we give the WSDL detail the associated Web Service Operations would be displayed in the SOAPUI application as below:

We would need to provide a Sample Input (referred to as Sample Payload) and when we click on “Submit request to specific end point URL” we will get a response. For this example we are trying to create a new employee ( we would assign WS2 as the person number to the record). But prior to using this let-us check whether the same employee has not been used in the application. We can check this by performing a search operation on the Person Management page ( Navigator -> My Workforce -> Person Management -> Pass Person Number as WS2 on Person Number field and click on Search)

So now that we have verified that this person number (WS2) has not been used we can go ahead with next steps. We would populate the input XML (sample payload)

And now once we click (Alt +Enter) or click on the green arrow (highlighted in image above) we will find a response.

We could see that there is a XML response received. As a last step let us try to check whether a record is visible on the Application UI .

One may get the sample payload used for this example from the link below:

CreateWorkerSamplePayloadMinAttributes.xml

Making Changes to Assignment Data using HDL Files in Oracle Fusion HCM Cloud Application

$
0
0

Introduction

In this example we will showcase how to perform CORRECTION and UPDATE actions on Assignment Metadata.

As a pre-requisite we have already loaded a record (Person Number AH1). The Assignment details as checked on UI appears as shown below:

We could see that the FTE value is 1. Headcount field is Blank. And, also there are no details populated for Probation and Notice Periods.

We would make the following changes :

  1. Change FTE value to 0.8 from 1

  2. Add Record for HEAD in Assignment Measure . Value used is 1

  3. Add Notice Period as 3, Probation Period as 6 and Probation Unit as M

The new file is zipped and the zipped file is named as AssignmentCorrectionModeUpdate

We may check the “Manage Employment” page to view the changes.

We could see that the FTE value has changed (to new value 0.8) , Headcount data field has got a value of 1. Also Probation and Notice Period related fields are populated. Another important point to note being that the Assignment History shows that there has been only one entry made which also confirms that the HDL file performed an CORRECTION action.

Making Changes to Assignment Record in UPDATE Mode

In this scenario we would try to make the changes in UPDATE mode. This means that we will try to Add a New Record (with New Effective Start Date say 2018/02/01) and verify the changes. For the sake of simplicity lets try to revert the changes. This essentially means that we will make following changes:

  1. Use Effective Start Date as 2018/02/01

  2. Change FTE value from 0.8 to 1

  3. Change Headcount Value from 1 to Blank

  4. Change Probation Period Value from 6 to Blank

  5. Change Probation Period UOM value from M to Blank

  6. Change Notice Period Value from 3 to Blank

  7. Change Notice Period UOM value from M to Blank

  8. Use Reason Code as PER_REORGANIZATION

And now we will have a look at the Manage Employment page too to confirm the data values.

Now from the above screenshot we can see that:

  1. A new assignment record got created with effective start date as 02/01/2018 . This confirms that an UPDATE action did happened.

  2. The value of FTE field has changed from 0.8 to 1

  3. The value of Headcount field which was supposed to become BLANK hasn’t changed

  4. Probation Period ,Probation Unit and Probation End Date (which gets calculated on the basis of first assignment start date, probation period and unit) which were also supposed to have BLANK values have retained the previous values

  5. Notice Period and Notice Period UOM which were supposed to have BLANK values have retained previous values.

Well to some of you this might appear that all the expected changes didn’t take place. But as per the underlying technical architecture this was an expected result.

As per HDL documentation in case we want to explicitly set the value of a Data field (which holds a NOT NULL) to a NULL value we would need to pass #NULL as the new data value. We did not meet this criteria last time. But lets try to do a new load with a new effective start date (starting 2018/03/01) to confirm this.

Making Changes to Assignment Record in UPDATE Mode to explicitly assign NULL Values

In this scenario we will make the following changes:

  1. Use Effective Start Date as 2018/03/01

  2. Change Notice Period Value from 3 to Blank (#NULL)

  3. Change Notice Period UOM value from M to Blank (#NULL)

  4. Use Reason Code as PER_REORGANIZATION

We have created a new file with the above changes, named the zipped file as AssignmentUpdateModeSetExplicitNull and will try a re-load.

And when we check the “Manage Employment” page we will find below.

One could notice that a new assignment record has been created with effective start date as 2018/03/01 , and the Notice Period value has changed to NULL from 3 and similarly the Notice Period UOM value has changed from Months to NULL.

Data Files used for this example can be accessed from following link:

AssignmentCorrectionModeUpdate

AssignmentUpdateMode

AssignmentUpdateModeSetExplicitNull

Inference / Summary

From the above illustration one can easily conclude the following:

  1. While performing an CORRECTION action ensure that the effective start date and end date values are not changed (that is they should hold the same values as present in the system)

  2. While performing an UPDATE action one would need to provide a new effective start date and also an appropriate Action Reason and Action Reason Code

  3. In case the intent is to set the value of data attribute as NULL one would need to explicitly pass #NULL as data value and just choosing to not pass any value would mean that the old value would be retained.

Oracle Fusion Cloud Benefits Introduction- Demo

$
0
0

Oracle Fusion Benefits (HCM Benefits) is a global, rules-based benefits application that enables organizations to manage and deliver benefits programs to meet their mission, objectives, and strategic alignment to the organization. HCM Benefits has a completely flexible design process, where setup objects can be reused. It allows the creation of benefits programs that include multiple plans to meet the organization's benefits needs. Plans can be grouped together that share similar enrollment and eligibility rules.

 

Oracle Fusion Cloud Benefits Introduction- Demo

Enrol Now for Oracle Fusion Cloud Benefits Training

How to create customised Security Roles in Oracle Cloud- Demo

$
0
0

You can use the Security Console to create duty, job, or abstract roles.

In many cases, an efficient method of creating a role is to copy an existing role, then edit the copy to meet your requirements. Typically, you would create a role from scratch if no existing role is similar to the role you want to create.

To create a role from scratch, select the Roles tab in the Security Console, then click the Create Role button. Enter values in a series of role-creation pages, selecting Next or Back to navigate among them.

 

How to create customised Security Roles in Oracle Cloud

 

Enrol Now for Oracle Fusion Cloud Training

 


Enabling Error Notification Feature In HCM Extracts in Oracle Fusion HCM Cloud Application

$
0
0

Introduction

In one of the previousarticle we have seen how to create a custom HCM Extract In Oracle Fusion HCM Cloud Application. Many a times some of these custom extracts can be scheduled (checkarticle here) to ensure the entire extraction process can be automated. However not all times does all the extract runs successfully. Sometime the extracts fails and one would need to check for the root cause for the same. Having said so it is not always possible to manually monitor each and every extract ( which runs at different times of the day) and there needs to be a mechanism which would notify users whenever an extract runs into error.

In this article we would try to demonstrate how to enable the feature and try to have a look at a worked out example.

Worked Out Example

In order to demonstrate this we may either create a New Custom HCM Extract or use a pre-existing one. For this example we would use a pre-existing custom HCM Extract ( “Custom Demo Extract”).

We would search for the extract under Navigator -> Data Exchange -> Manage Extract Definitions -> Search for Extract with name as Custom Demo Extract

 

This step confirms that an Extract with the name “Custom Demo Extract” does exists in the application and is in valid status.

Now we would need to click on the “Refine Extracts” link from the “Tasks” menu

This would take us to a new screen which would take us to a search screen where we would need to provide a Flow Pattern Name. Each HCM Extract is essentially a Flow pattern too so the Flow pattern name and HCM Extract name is same.

Next we need to click on the pencil icon (Edit) and this takes us to the following screen

We need to click on the “Go to Task” and this would take us to the “Basic Information” page which would provide details of all the input and output parameters of the Extract.

We would need to click on the “Next” button and this will take us to Owner and Checklist area. This is the place where we assign individual users / group who would be notified in case an HCM Extract goes in warning / error. An HCM Extract can even be configured to send notifications when the HCM Extract Flow Task starts or ends.

There are two types of Owner Types and a small description of each of them follows:

User: This option allows us to choose a specific user who would ne notified in case an HCM Extract errors out

Group: This option is to choose a specific Job Role meaning all individuals who have this job role would get notified.

For this example we would set the Owner Type as “User” and choose a Owner as “Andrew Debacher”. One would need to tick the checkboxes under the Notifications region depending on the various cases when we need a notification. For this example we would select all the available option. Once added the application screen would appear as below:

We should “Submit” the changes and then move to submit the extracts.(Using “Submit Extracts” option under the Tasks menu)

We would quickly click on “Ok and View Checklist” button to check the status of the HCM Extract run.

The above screen-shot shows that the HCM Extract status is in Error and we hope to receive an Notification Email (as per our setup) in the designated work email-id associated with “Andrew Debacher” and we would quickly go and check the mailbox

How to Create Descriptive Flexfield (DFF) in Oracle Fusion Cloud- Demo

$
0
0

Descriptive flexfields have two different types of segments, global and context-sensitive . Descriptive flexfields provide customizable "expansion space" on your forms. You can use descriptive flexfields to track additional information, important and unique to your business, that would not otherwise be captured by the form. Descriptive flexfields can be context sensitive, where the information your application stores depends on other values your users enter in other parts of the form.A global segment is a segment that always appears in the descriptive flexfield pop–up window. A context–sensitive segment is a segment that may or may not appear depending upon what other information is present in your form. A descriptive flexfield uses columns that are added on to a database table. A descriptive flexfield requires one column for each possible segment and one additional column in which to store structure information (that is, the context value). 

 

How to Create Descriptive Flexfield (DFF) in Oracle Fusion Cloud

 Enrol Now for Oracle Fusion Cloud Training

Reusing Data Elements of One Data Set Into Another Data Set In Oracle Fusion Cloud SQL Query Data Source based Data Model

$
0
0

Introduction

Many a times we need to create a multi data set sql query based data model and there may be scenario where a specific data field used in one data set might be required (either in the select clause or in the where clause) in another data set. We do not need to repeat the entire SQL again in the second data set, rather this can be easily accomplished using a simple trick.

We would demonstrate the same in this example.

Worked Out Example

For this example, we will have two data sets. Let’s name then PersonBasicDetails_ds and PersonNameDetails_ds respectively. We would assume that PersonBasicDetails_ds would act as a Master Data Set ( there is nothing like a Master or Child Data Set here, but we refer this data set as a Master Data Set because this is the place where we reference the re-usable data columns for the first time).

PersonBasicDetails_ds (SQL Query)

select papf.person_id,

     papf.person_number

from   per_all_people_f papf

where trunc(sysdate) between papf.effective_start_date and papf.effective_end_date

PersonNameDetails_ds (SQL Query)

select ppnf.display_name,

     :person_id nds_person_id,

     :person_number nds_person_number

from   per_person_names_f ppnf

where ppnf.name_type = 'GLOBAL'

and sysdate between ppnf.effective_start_date and ppnf.effective_end_date

and ppnf.person_id = :person_id

We would need to create element links too.

G_1.PERSON_ID = G_2.NDS_PERSON_ID

G_1.PERSON_NUMBER = G_2.NDS_PERSON_NUMBER

Where G_1 is the Group Name for PersonBasicDetails_ds and G_2 is the Group Name for PersonNameDetails_ds

One important point to note is that while creating the Child Data Set (PersonNameDetails_ds) we would be referring to the re-usable data columns as a bind variable (like :person_id and :person_number) , but this is just for reference purpose and one should not tick the checkbox.

Demonstration

We would login to the application. Navigate to BI Catalog (Navigator -> Reports And Analytics) and create a new data model.

We would create two data sets (as per details above) and even create links. Once all the above setups are done the data model would appear as below:

The Groups when expanded would show the data field details.

And now as a last step when we click on “View Data” (highlighted in screenshot below) , we will see below data:

Inference / Summary

So this is how we can make use of a data field of one data set into another data set within the same data model. One may extend this idea further too. Typical examples being a scenario where we have one data set which is having columns (created using sub-queries) and then each of these columns can be referenced in the subsequent data sets using an “:” suffixed by the actual data column name.

Do give a try and share your observations.

Using Expression Variable Functionality in Oracle Fusion Cloud BI Data Model

$
0
0

Introduction

It is a very common requirement to perform some calculations to derive some fields by applying some logic in either any of the existing data elements present in the Data Set of a BI Data Model or even based on the input parameter value passed.

While one may decide to include the calculation logic in the underlying SQL query and define a new data element there or one may wisely choose to use “Add Element By Expression” functionality.

Some of the advantages of using “Add Element By Expression” feature over creating a new element in the SQL query are as follows:

Delivered Functionality supporting most commonly used functions

 

Commonly used functions are available for ready use. Some of them being:

 

  • IF

  • NOT

  • AND

  • OR

  • MAX

  • MIN

  • ROUND

  • FLOOR

  • CEILING

  • ABS

  • AVG

  • LENGTH

  • SUM

  • NVL

  • CONCAT

  • STRING

  • SUBSTRING

  • INSTR

  • DATE

  • FORMAT_DATE

  • FORMAT_NUMBER

  • DECODE

  • REPLACE

Screenshot below for ready reference.

 

Flexibility to use any/all of the data elements and parameters used in the Data Set

As visible in the screenshot above all the data elements defined in the Data Set along with the parameters used can be utilized for deriving the expression logic.

Improved SQL Execution Time (performance perspective)

We are using the elements/parameters and constructing an expression outside the scope of SQL, which means that all the values are first fetched from the database and then the corresponding logic is applied on the retrieved values. The expression logic is not being applied in the SQL engine as such. This makes the execution a little faster.

There might be some other advantages too but the above are the ones which comes to my mind at this point of time.

Now, let-us try to understand how the “Add Element By Expression” feature works with help of a worked-out example.

Worked Out Example

For this example, we will create a very simple SQL which will fetch the “Person Number” field from the database. We would then use the “Add Element By Expression” feature which would check if the “Person Number” value fetched is less than an integer value passed using a bind variable. If the value of  “Person Number” is less than the value of bind variable the Expression Variable will return “Person Number is less then <bind variable value” else it will return “Person Number is NOT less than <bind variable value>”

Data Set SQL Query

select papf.person_number

from per_all_people_f papf

where trunc(sysdate) between papf.effective_start_date and papf.effective_end_date

Screenshot

Logic for Expression Element

IF( G_1.PERSON_NUMBER < param.ComparisonValue,CONCAT('Person Number is less than ',

param.ComparisonValue),CONCAT('Person Number is NOT less than ',

param.ComparisonValue))

Screenshot

Verifying Results

We will pass a Value for Input Parameter (Comparison Value as 10) and verify the results

Displaying Meaningful Error Messages In a Oracle Fusion Cloud BI Report

$
0
0

Introduction

For all of those who have worked with Oracle Reports they must be acquainted with using Before Parameter, After Parameter and other Report Triggers. Unfortunately for Oracle Fusion Cloud (until release 13) the only supported trigger is Schedule Trigger.(Worked out example on how to use a Schedule Trigger can be foundhere )

One very common usage of using Report Trigger (After Parameter Report Trigger in particular) was to validate the input values provided by end-user and one can display user friendly messages as per requirement) Typical examples being:

1.       Specify If an Incorrect Data Value is provided

2.       Notify if Mandatory parameter value is not provided

3.       Any specific action to be taken basis value of Report parameter

While Oracle BI (Cloud Deployment) does not allows us to create such triggers there could still be a smart way of achieving the above.

One would need to make use of a BI Report (in conjunction with a RTF Template).

In this article we would try to demonstrate the same.

We may break up the entire activity into the following sub-steps:

Create a SQL Based Data Model

  1. Ensure you use an Input Parameter

  2. Create a Global Level Function Using Add Element by Expression Feature to check whether the input provided is NULL or NOT NULL

  3. Create an Aggregate Function which would be used whether the BI Query returns data or not

  4. Create a RTF template

  5. Add specific logic to display messages when NO parameter value is passed

  6. Add specific logic to display messages when a parameter value is passed but yields no results.

Creating a Data Model

We would create a very simple SQL query which would fetch some of the data fields from application base table (per_all_people_f for this example). We would also use a Parameter (PersonNumber).

SQL Query

Select papf.person_number,

      papf.start_date,

      rownum recordno

From  per_all_people_f papf

Where trunc(sysdate) between papf.effective_start_date and papf.effective_end_date

And papf.person_number = :PersonNumber

Creating an Input Parameter

From the query we could see that we make use of an input variable PersonNumber in this case.

Details about the parameter is as follows:

Parameter Name

Data Type

Default Value

Parameter Type

Row Placement

Display Label

PersonNumber

String

 

Text

1

Person Number

Screen-shot:

Creating Global Level Function Using Add Element by Expression

We would need to create a Global Level Function (let’s say ISPERSONNUMBERNULL)

*Name

Display Name

Data Type

Expression

IsPersonNumberNULL

IsPersonNumberNULL

String

IF( param.PersonNumber!=null,'N','Y')

Screen-shot:

Creating Global Level Function Using Add Element by Expression

We would also need to create an Aggregate function (say CS_RECORDNO) which would be used to identify whether the SQL Query instance (for the specific input value passed) returns any value or not.

Details about the Aggregate Function are as follows:

*Column Name

*Alias

Display Name

Function

Data Type

Value if NULL

Round

G_1.RECORDNO

CS_RECORDNO

CS_RECORDNO

COUNT

Integer

 

3

Screen-shot:

Create a RTF Template

We would now need to create a RTF Template. We would need to map the Data Elements and the corresponding messages (based on specific conditions). The template used for this example would look as below:

Configuring RTF Template to Display Appropriate Message when Parameter Value Passed is Blank

We would need to specifically add logic in the RTF Template to display appropriate message when there is no value passed for the input parameter. In order to accomplish this we would make use of ISPERSONNUMBERNULL variable we have defined earlier.

Value of ISPERSONNUMBERNULL Variable

Meaning / Interpretation

Y

Value is NULL. No Input passed

N

Value is NOT NULL. An Input value is passed

We would make use of this variable and have the following logic added to the RTF Template.

<?if:ISPERSONNUMBERNULL = 'Y' ?>

Mandatory Parameter Missing Input

You have not provided an input for a Mandatory Parameter.

<?end if?>

From the code we can infer that this specific message will be displayed only when there is no input value passed.

Configuring RTF Template to Display Appropriate Message when an INVALID Parameter Value is Passed

We would need to specifically add logic in the RTF Template to display appropriate message when we do pass a input value but it does not returns any results. We would make use of both the expression variable ISPERSONNUMBERNULL and CS_RECORDNO

We would apply the following logic to the RTF Template

<?if: ISPERSONNUMBERNULL = ‘N’ and CS_RECORDNO = 0 ?>

Parameter Value Passed Returns No Results

There is No Data found for the provided input.

<?end if?>

The code indicates that when there is an Input Value passed (ISPERSONNUMBERNULL is ‘N’ ) but if the count of total records returned is 0 it means that there is no results retrieved using the SQL query.

And in the best case scenario when the input parameter value is NOT NULL and CS_RECORDNO returns a positive integer we display the actual data.

Verification

Till now we have explained how to configure the Data Model and the RTF Template, but the job isn’t complete unless we test the same.

As such, we would need to perform an exhaustive test and we would have three scenarios for the same:

1.       Scenario 1 : Not passing a input value

2.       Scenario 2: Pass an invalid input value

3.       Scenario 3: Pass a valid input value

Verification: Scenario 1: NULL Input

We would run the Report by NOT providing an Input Value for the parameter Person Number and the report should show an appropriate message.

Verification: Scenario 2: NOT NULL Invalid Input

In this scenario we would provide an INVALID input as the parameter value. Here too we expect to have a meaningful message displayed. We will pass ‘ABC’ as a person number (which is an invalid value) and check the report output.

Verification: Scenario 3: Valid Input

In this scenario we will provide a valid person number as parameter input and the report should display results. We will pass 10 (a valid value) and check for the report output.

Inference / Conclusion

So this is how we can configure out RTF Template to display different messages / results based on specific conditions. Hope this article did provide some basic guideline and starting point on which you all may extend further.

Do try it out and share your views / results with me. I hope this was a good write-up and would be useful to you guys. Thank You for your time, have a nice day ahead!


Viewing all 930 articles
Browse latest View live


<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>