Quantcast
Channel: Oracle Fusion Apps | Oracle Fusion | Oracle Apps Training
Viewing all 103 articles
Browse latest View live

WHY FUSION ?

$
0
0

{jcomments off}

INTRODUCTION

Fusion as the word suggests stand for Culmination / Mix / Combination.

In context of Oracle, Fusion is referred as Fusion Applications.

So Why Fusion Applications ?

Before that let’s understand What is Fusion Applications ?

Fusion Application is a new Oracle Product to cater to ERP Needs.

But we already have so many ERP Applications. Some of the most popularly used being EBS (E-Business Suite), PeopleSoft, JDEdwards to name a few. So why a new ERP application to cater to business needs. The answer is :

Fusion Applications is an attempt ( and for that matter a very popular and widely accepted one) by Oracle . It takes the best features from EBS and PeopleSoft and does makes life simpler for Business Users and (Both Functional and Technical) Implementation Consultants  .Lets try to get into more details of the same . We would categorize this discussion into two broad categories namely:

  1. Business Reasons ( Details about why should Business adopt Fusion)

  2. Functional Reasons ( Details about why should Functional Consultant adopt Fusion)

  3. Technical Reasons ( Details about why should Technical Consultant adopt Fusion)

BUSINESS REASONS

  1. Easy to use

  2. Better Look and Feel

  3. Better Functionality

  4. Better User Experience

FUNCTIONAL REASONS

  1. Configuration is simpler ( Most configurations from ‘Setup and Maintenance’)

Most of the setups start with Manage% ( screenshot below)

  1. Configuration is based on Train Stop Models ( First Step guides you to second step and so on)

  1. Allows What IF Scenarios (Manage Enterprise Structures, Allows Multiple Combination but Loads just one)

Below Screenshots gives details of creating Enterprise Structures ( and then to view to Technical Summary Report). This would not get loaded but would be used for comparative analysis. Screenshots displaying what-if scenarios ( ESC Setup Example) .

Example of WHAT IF SCENARIO ( Using Enterprise Structure Configurator)

WHAT IF SCENARIO EXAMPLE-> Step 1: Manage Enterprise

WHAT IF SCENARIO EXAMPLE-> Step 2 : Manage Divisions

WHAT IF SCENARIO EXAMPLE-> Step 3 : Manage Legal Entities

WHAT IF SCENARIO EXAMPLE-> Step 4 : Create Business Units

WHAT IF SCENARIO EXAMPLE-> Step 5 : Manage Business Units

WHAT IF SCENARIO EXAMPLE-> Step 6 : Manage Reference Data SETS

WHAT IF SCENARIO EXAMPLE-> STEP 7 : Manage Business Unit Set Assignment

WHAT IF SCENARIO EXAMPLE-> Step 8 : Manage Location Reference Set

WHAT IF SCENARIO EXAMPLE-> Interview Results

WHAT IF SCENARIO EXAMPLE-> Management Reporting Structure

WHAT IF SCENARIO EXAMPLE-> Technical Summary Report

WHAT IF SCENARIO EXAMPLE-> Click on Download Technical Summary Report to Get PDF ReporT

WHAT IF SCENARIO EXAMPLE-> Report Screenshots



We can configure multiple such Enterprise Values and compare before loading one. So we can have WHAT IF scenarios. This feature is not supported in older Legacy Systems ( EBS / PPLSOFT).

TECHNICAL REASONS

Broad Responsibilities of any Technical Resource on any ERP Implementations are :

  1. InBound Integration ( HDL from RELEASE 10 Makes Life SimPLER, DATA LOAD on BUTTON CLICK)

  2. REPORTING ( BIP / OTBI / OBIA )

  3. OUTBOUND INTEGRATION ( HCM EXTRACTS)

All the above three are very easy to implement in Fusion HCM.

So, It is for all the above stated reasons we should have Fusion Applications. Happy Adoption…….Cheers……


Multiple Organisation (Multi Org) R12 Financials

$
0
0

The concept of multiple organisation or multi org is used in the release 11 and 12.

Index:

  1. Introduction

  2. Benefits

  3. Multi Org structure in Release 11 and Release  12

  4. Release 11 versus Release 12

  5. Important points stated in the oracle user guide

  6. Pre requisites  for setting up Multi org in Release 12

  7. Setting up Multi org in Release 12

Introduction:

Multi – Org is a server side enhancement, which enables the multiple organizations (organisations having offices across the globe) in an enterprise to use a single installation of oracle applications products while keeping transacting data separate and secure. (in a single server)

Multi - Org is essential for large customers with multiple lines of business or divisions. It allows secure access to information and simplifies processing and reporting.

Example:

A client spread across Canada and UK, is moving its ERP to Oracle from a different ERP.

It would be a single installation of an oracle server and organisations are placed across the world. It gets integrated using a shared instance.  Using multi org we can have multiple organisations linked and separated through operating units.  Information could be in a shared mode and is secure - all in a single instance or server. Different organisations would be mapped to it.

Key Concepts:

Business Group:

It is the highest level (basically the HRMS) in the organisation structure, such as the consolidated enterprise or major division etc. It is a consolidated enterprise at the top level.

Example:

If a head quarter wants to have a shared payroll. There can be one business group across multiple ledger and legal entities respectively.

Multiple ledgers can share the same business group if they share the same business group attributes, including HR Flex field structures.

Normally the HR is shared across and called shared HR. In few cases, there are separate business groups.  Most cases there is one centralised company under which there are separate ledgers and legal entities mapped.  ( like a big umbrella)

We have the following under business group:

Ledger:

A ledger determines the currency, charts of accounts, accounting calendar, ledger processing options and sub ledger,   accounting method.  Ledger can be Primary and secondary.

Currency and calendar is new in R12.

Ledger deals with the movement of data into GL.

It is critical in configuration.

In the best scenario each country would have own its ledgers. Companies can share the same chart of account structure, but the reports have to be in their own currency (functional).

In case of UK the data would be reported in GBP, in US it would be USD. Therefore there should be a separate ledger for them.

Sub ledger accounting method is new in release 12. It is how the accounting convention has to take place. For e.g. standard accrual or cash based.  That can be defined and attached.

4 c’s are chart of account, currency and calendar and (conventions or accounting conventions. (it’s new in R12) or sub ledger accounting method.

If any one of the four changes a new ledger has to be defined.

There are two types of ledgers in oracle, one is primary and the other is secondary.  Primary is the main book of reporting. Secondary is optional it is required in cases where data is to be reported in a different currency. In is an important concept in the understanding prospective.

Ledgers are new in R 12 in the older version it is set of books or SOB.

Legal Entity:

Legal Entity is a Legal company for which the fiscal report or tax report is prepared.

Example if there is a separate tax registration for an organisation. That becomes a legal entity. It has its own registration a vat number or a sales tax number.

In 11 i it is referred as Government report entity or GRE. Tax reporting is prepared in a legal entity.

Operating Unit:

Operating unit is an organisation that uses Oracle Sub ledgers and related products.  They are sub ledger modules like AP, Accounts receivables, and accounts payable.   They work at the operating unit level. There could be multiple operating units assigned to a single entity, which is correspondingly linked to the ledger. Operating unit is where the operations are carried.  It could be AP or AR operations. It could be of a single country but could have multiple divisions with respect to the AP module so data is segregated by the AP module.  All sub ledgers use operating unit as the base to move on. So there could be an operating unit linked to the legal entity as well as a ledger and they could be logically associated so there could be multiple operating units under one ledger and legal entity combination. It is important in the sub ledger prospective.  Sub ledgers other than GL and fixed assets.  All other modules like AP and AR lock into the operating unit.  Each operating unit prepare their respective AP and AR.  

Accounting for Payables Transactions in Fusion Applications

$
0
0

In this article we will try to understand accounting involved in Fusion Payables. As we know default accounting for taxes for Payables transactions is based on the nature of the tax, tax recoverability, and the tax account assigned to relevant tax configuration. Accounting for Payables transactions is dependent on the categories like-

  • Unmatched standard invoices
  • Purchase order matched invoices
  • Receipt matched invoices
  • Prepayments

Let us know look at individual categories one by one to understand debit and credit accounts. 

Unmatched Standard Invoices- Below table describes the accounting for taxes for unmatched standard invoices:

Nature of Tax Recoverability Debit Account Credit Account Notes
All taxes Recoverable Tax Recoverable  Payables Recoverable tax account is derived from the tax recovery setup. If it is not defined there, it is derived from the tax rate.
All taxes Nonrecoverable Tax Expense  Payables The debit to the tax expense account applies only when the tax expense account is specified for the tax rate. If it is not defined, then the debit is applied to the charge account for the transaction line.
Deferred to tax point of Payment Recoverable Interim Tax  Payables Recovery for these taxes is deferred until payment. On payment, the interim tax account is credited with a debit to the tax recovery account.
Deferred to tax point of Payment Nonrecoverable Tax Expense  Payables  
Self-assessed Recoverable Tax Recoverable or Liability Tax Recoverable or Liability As these taxes are to be assessed and paid by the first party organization. The credit is posted to the tax liability account instead of the payables account.
Self-assessed Nonrecoverable Tax Expense Tax Recoverable or Liability  
Offset tax Recoverable Tax Recoverable or Liability Payables Offset taxes are always 100% recoverable. These taxes are defined with a negative rate and an invoice distribution with negative amount is created. The Payables amounts between the base tax and the offset tax are negated. What remains is the debit to tax expense or tax recovery account and negative debit to tax liability account.

 

How-to Migrate Custom HCM Extract

$
0
0

Business Requirement

At times we have multiple instances and we intend to move one HCM Extract ( created in Development) environment to another instance ( UAT ) or even in Production.

We can use the Export Import feature then.

Export

Login to Fusion Applications, Navigate to ‘Data Exchange’ and then search for the custom worker extract you wish to export.

Click on the Export symbol and xml file gets downloaded as displayed:

 

IMPORT

Navigate to ‘Data Exchange’ as displayed:

Under Tasks -> HCM Extracts -> Manage Extract Definitions

Click on Import Extract Option

A new popup window opens which asks for the File Path as displayed:

Give a new name if you wish to

Once the import Process is complete you would be able to search for the Extract:

 

{jcomments off}

FUSION APPLICATIONS – USER ROLE DETAIL REPORT

$
0
0

BUSINESS REQUIREMENT:

It is a very common requirement in almost all implementation where in the Stakeholders are interested to know how many user accounts are there is the system along with the corresponding roles attached to them. While oracle has delivered some seeded Reports which could be run from ‘Application Diagnostic Framework, screenshot below (Troubleshooting -> Run Diagnostic Tests)

ORACLE DELIVERED REPORTS

1) User Roles Display

2) User and Role : Role Details

3) User and Role : User Details

NAVIGATION TO RUN DELIVERED REPORTS

Login to Application -> Run Diagnostic Tests

UR1

After Running Reports :

UR2

DELIVERED REPORT 1 -> USER ROLES DISPLAY

User Roles Display: (Displays the Roles attached to procurement user)

ur3

Input Value : Sachin.Satpute

UR5

Output Screenshot :

ur30

DELIVERED REPORT 2 -> USER AND ROLE : ROLE DETAILS

User and Role : Role Details

Takes Role Name as input and displays all users who have the role attached to their user account. ( Secured i.e if the individual who is running the Report has access to a specific Data Set individuals belonging to that Data Set would only be displayed).

ur31

 

Input Value : Employee

ur8

 

Output Screenshot :

ur33

DELIVERED REPORT 3 -> USER AND ROLE : USER DETAILS

User and Role : User Details

Takes User Name as input and displays all roles attached to the user. (Secured i.e if the individual who is running the Report has access to a User Account being passed as input data would be displayed else no.)

ur7

Input value : Sachin.Satpute

ur34

Output Screenshot :

ur35

NEED FOR A CUSTOM CONSOLIDATED REPORT 

But if we need a consolidated report which will list all the users along with all the roles they have neither of the delivered ones help.

So we need a Custom Report (Preferred O/P Format could be RTF, Interactive, Excel,PPT. )

Since we are planning to display a colorful report with Different colour Code Combination ( using Conditional Formatting feature we choose PPT Format for this example)

CUSTOM REPORT NAME -> USER AND ROLE DETAILS REPORT

SQL USED FOR USER AND ROLE DETAILS REPORT

select papf.person_number "PersonNumber",

    ppnf_emp.full_name "PersonName",

           pu_emp.user_start_date "UserAccountStartDate",

           pu_emp.user_end_date "UserAccountEndDate",

           pu_emp.is_user_account_active "UserAccountStatus",

           pu_emp.username "UserAccountName",

           pu_emp.is_user_account_suspended "IsUserAccountSuspended",

           pu_emp.user_distinguished_name "UserAccountInternalName",

           pur_emp.method_code "RoleProvisioningMethod",

           pur_emp.is_user_role_active "IsUserRoleActive",

           pur_emp.is_user_role_terminated "IsUserRoleTerminated",

Case

When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'No' ) Then 'Active'

When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'No') Then 'NeitherActiveNorTerminated'

When (pur_emp.is_user_role_active = 'Yes' AND pur_emp.is_user_role_terminated = 'Yes') Then 'ActiveAndTerminated'

When (pur_emp.is_user_role_active = 'No' AND pur_emp.is_user_role_terminated = 'Yes' ) Then 'InactiveAndNotTerminated'

End as "UserRoleStatus",

pur_emp.role_start_date "UserRoleStartDate",

pur_emp.role_end_date "UserRoleEndDate",

prd_emp.abstract_role "IsRoleAAbstractRole",

prd_emp.job_role "IsRoleAJobRole",

prd_emp.data_role "IsRoleADataRole",

prd_emp.is_role_active "IsRoleActive",

Case

When (prd_emp.abstract_role = 'Y' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'N' ) Then 'Abstract Role'

When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'Y' AND prd_emp.data_role = 'N' ) Then 'Job Role'

When (prd_emp.abstract_role = 'N' AND prd_emp.job_role = 'N' AND prd_emp.data_role = 'Y' ) Then 'Data Role'

When (prd_emp.abstract_role is NULL AND prd_emp.job_role is NULL AND prd_emp.data_role is NULL ) Then '--NA--'

End as "UserRoleType",

prd_emp.role_common_name "RoleCommonName",

prd_emp.multitenancy_common_name "MultitenancyCommonName",

prd_emp.role_distinguished_name "IsRoleDistinguishedName",

prdt_emp.role_name "UserRoleName",

prdt_emp.RoleDescription

FROM per_all_people_f papf

JOIN

(

SELECT ppnf.full_name,

ppnf.person_id

FROM per_person_names_f ppnf

WHERE ppnf.name_type = 'GLOBAL'

AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date AND ppnf.effective_end_date

) ppnf_emp

ON (

ppnf_emp.person_id = papf.person_id

AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date

)

LEFT OUTER JOIN

(

SELECT pu.person_id,

pu.user_id,

pu.username,

to_char(pu.start_date,'DD-MM-RRRR') user_start_date,

to_char(pu.end_date,'DD-MM-RRRR') user_end_date,

DECODE(pu.active_flag,'N','Inactive','Y','Active') is_user_account_active,

DECODE(pu.suspended,'N','No','Y','Yes') is_user_account_suspended,

pu.user_distinguished_name

FROM per_users pu

) pu_emp

ON(pu_emp.person_id = papf.person_id AND TRUNC(SYSDATE) BETWEEN papf.effective_start_date AND

papf.effective_end_date)

LEFT OUTER JOIN

(

SELECT pur.user_id,

pur.role_id,

        pur.role_guid,

DECODE(pur.method_code,'A','Automatic','M','Manually','E','Externally Provisioned') method_code,

DECODE(pur.active_flag,'N','No','Y','Yes') is_user_role_active,

DECODE(pur.terminated_flag,'N','No','Y','Yes') is_user_role_terminated,

to_char(pur.start_date,'DD-MM-RRRR') role_start_date,

to_char(pur.end_date,'DD-MM-RRRR') role_end_date

FROM per_user_roles pur

) pur_emp

ON (pu_emp.user_id = pur_emp.user_id)

JOIN

(

SELECT        prd.role_id,

prd.role_guid,  

                     prd.abstract_role,

                     prd.job_role,

                     prd.data_role,

DECODE(prd.active_flag,'N','No','Y','Yes') is_role_active,

prd.role_common_name,

prd.multitenancy_common_name,

prd.role_distinguished_name

FROM per_roles_dn prd

) prd_emp

ON (pur_emp.role_id = prd_emp.role_id AND pur_emp.role_guid = prd_emp.role_guid)

JOIN

(

SELECT prdt.role_id, prdt.role_name,

              prdt.description RoleDescription,

              prdt.source_lang

FROM per_roles_dn_tl prdt

) prdt_emp

ON (prd_emp.role_id = prdt_emp.role_id AND pur_emp.role_id = prdt_emp.role_id AND prdt_emp.source_lang = 'US' )

WHERE papf.person_number = nvl(:pn_person_number, papf.person_number)

AND TRUNC (SYSDATE) BETWEEN papf.effective_start_date AND papf.effective_end_date

CONDITIONAL FORMATTING

The different colour code feature can be added using the Conditional Formatting fields

( Highlight and Manage Formats )

ur13

ur14

REPORT OUTPUT

ur15

SCHEDULING THE REPORT

Scheduling the Report :

ur16

 

ur17

SCHEDULED OUTPUT (PPT FORMAT)

ur18

ESS JOB CREATION

ur20

PARAMETER DEFINITION

ur21

RUNNING SCHEDULED JOB

ur22

ur23

ur24

RUNNING SCHEDULED JOB FOR ONE PERSON

Person Number : 10

ur25

ur26

ur27

ur28

ur29

           

Oracle Fusion Procurement offerings

$
0
0

Objective:

In the first article we discuss the offerings available with Oracle Fusion procurements together with its key features and benefits. 

 

Oracle Fusion Procurement Offerings:

Oracle Fusion procurement has following modules: 

  • Self Service Procurement: This module is similar to e-commerce sites like Amazon, Yep me, etc., where we can create the requisition by selecting the products from the catalog. Here we can compare the products side by side and shop for the product chosen.
  • Sourcing: In this module RFQ is created and sent to the suppliers for their response.
  • Purchasing: Basic procurement like purchase order creation, etc are handled in this module.
  • Supplier Portal: It is similar to i-supplier portal in R-12.
  • Procurement Contracts: In this module we can build the contracts based on certain conditions. It also has approval process.

 

Proc Image

Oracle Fusion Procurement – Key Features:

Key features of oracle fusion procurement are: 

  • Consumer user experience
  • Interactive help and training
  • Best in class catalog management- example is Self Supplier procurement
  • Requester analytics- comparison of prices with the help of chart & graphs
  • Flexible accounting rules
  • Support of notes and assignments
  • Smart Forms
  • Negotiation planning with sourcing calendar, recent activities and recommended actions
  • Guided negotiation creation with reusable negotiation styles and templates
  • Online supplier negotiations
  • Collaboration with key stakeholders
  • Consolidated view of sourcing activities for buyers and suppliers
  • Spreadsheet support for supplier responses and award analysis
  • Support for centralized, decentralized and hybrid procurement organizations.
  • Buyer work area
  • Multi-currency, Multi-Language support
  • Streamlined order processing and changed management
  • Control approvals by amount, business unit, account segment, item, category and location.

 

 

Oracle Fusion Procurement – Key Benefits

Key benefits of oracle fusion procurement are: 

  • Enforce Contract compliance
  • Improve efficiency
  • Minimize training
  • Reduce support and maintenance costs
  • Increase value from sourcing
  • Enhance negotiation strategies and improve results
  • Streamline supplier negotiations
  • Drive competitive behavior from Suppliers
  •  Minimize training and ongoing support
  • Streamline procurement processes
  • Enforce procurement policies
  • Improve supply base management
  • Manage exceptions
  • Improve visibility

 

Method Overriding in Java

$
0
0

Objective:

In the previous article Set and File handling in Java, we have learned about the Set function and the ways of file handling in Java. In this article,, we are going to learn about the Overriding method in java.

 

Method Overriding in Java:

If subclass (child class) has the same method as declared in the parent class, it is known as method overriding in java.

In other words, If subclass provides the specific implementation of the method that has been provided by one of its parent class, it is known as method overriding.

Method overriding is used to provide specific implementation of a method that is already provided by its super class.

Method overriding is used for runtime polymorphism

Rules for Method overriding:

  1. method must have same name as in the parent class

  2. method must have same parameter as in the parent class.

  3. must be IS-A relationship (inheritance).

 

Example 1:

class Vehicle{

 void run(){System.out.println("Vehicle is running");}

 }

 class Bike2 extends Vehicle{

 void run(){System.out.println("Bike is running safely");}

 

 public static void main(String args[]){

 Bike2 obj = new Bike2();

 obj.run();

 }

}

//Output:

Bike is running safely

 

In thi above example, we have defined the run method in the subclass as defined in the parent class but it has some specific implementation. The name and parameter of the method is same and there is IS-A relationship between the classes, so there is method overriding.

 

Example2:

Consider a scenario, Bank is a class that provides functionality to get rate of interest. But, rate of interest varies according to banks. For example, SBI, ICICI and AXIS banks could provide 8%, 7% and 9% rate of interest.

bankinheritance.png

class Bank{

int getRateOfInterest(){return 0;}

}

 

class SBI extends Bank{

int getRateOfInterest(){return 8;}

}

 

class ICICI extends Bank{

int getRateOfInterest(){return 7;}

}

class AXIS extends Bank{

int getRateOfInterest(){return 9;}

}

 

class Test2{

public static void main(String args[]){

SBI s=new SBI();

ICICI i=new ICICI();

AXIS a=new AXIS();

System.out.println("SBI Rate of Interest: "+s.getRateOfInterest());

System.out.println("ICICI Rate of Interest: "+i.getRateOfInterest());

System.out.println("AXIS Rate of Interest: "+a.getRateOfInterest());

}

}

//Output:

SBI Rate of Interest: 8

ICICI Rate of Interest: 7

AXIS Rate of Interest: 9

Difference between Method overloading and Method Overriding:

 

No.

Method Overloading

Method Overriding

1)

Method overloading is used to increase the readability of the program.

Method overriding is used to provide the specific implementation of the method that is already provided by its super class.

2)

Method overloading is performed within class.

Method overriding occurs in two classes that have IS-A (inheritance) relationship.

3)

In case of method overloading, parameter must be different.

In case of method overriding, parameter must be same.

4)

Method overloading is the example of compile time polymorphism.

Method overriding is the example of run time polymorphism.

5)

In java, method overloading can't be performed by changing return type of the method only. Return type can be same or different in method overloading. But you must have to change the parameter.

Return type must be same or covariant in method overriding.

Oracle ERP Development Training

$
0
0

Course Contents

Day 1

Oracle Apps Overview

Oracle Apps Architecture and Concepts

Develop pl/sql concurrent program 

Day 2

Reports Development and Customization

Example of Custom Report Development in Oracle Apps and another example of report

Customization for exercise. 

Day 3

Forms

Forms Development

Customization in Oracle ERP

Example of custom form development

Forms personalization  

Day 4

Workflows

Workflows Development

Customization in Oracle ERP  

Day 5

Interfaces

Development of Interfaces in Oracle ERP

Example of developing an interface using interface table  

Day 6

Best Practices for development

Problem solving

Performance tips

Debugging and help in doing

Pending exercises  

Day 7

Oracle Approvals Management

Introduction to Oracle Approvals Management

Implementing Oracle Approvals Management

Attributes

Conditions

Actions

Approver Groups

Rules

Testing

Administration

Day 8

OAF Personalisation

Customization Primer

Personalizing OA Framework Applications

Personalizing Your Pages and Portlets

Administrative-Level Personalizations

Administrative-Level Personalization User Interface

User-Level Personalization User Interface

Portlet-Level Personalization User Interface

Translating Personalizations

Deploying Personalizations

Migrating AK Personalizations

 

Enroll

Training Hours

Start date: 14th Nov 2015

Training Schedule: 14, 15, 21,22, 28, 29th of Nov 2015 5, 6th December 2015

5-6 Hrs starting from 5:30pm Indian Standard Time

{jcomments off}

Oracle Apps Architecture and Concepts Develop pl/sql concurrent program - Last two hours

How to validate XML against XSD in java

$
0
0
Objective:
In the previous article Method Overriding in Java, Method overriding is explained in detail with example. In this article, we will learn how to validate XML against XSD in java.


How to validate XML against XSD in java:
Java XML Validation API can be used to validate XML against an XSD. javax.xml.validation.Validator class is used in this program to validate xml file against xsd file.Here are the sample XSD and XML files used.

Employee.xsd

<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.journaldev.com/Employee"
xmlns:empns="http://www.journaldev.com/Employee" elementFormDefault="qualified">
<element name="empRequest" type="empns:empRequest"></element>
<element name="empResponse" type="empns:empResponse"></element>
<complexType name="empRequest">
<sequence>
<element name="id" type="int"></element>
</sequence>
</complexType>
<complexType name="empResponse">
<sequence>
<element name="id" type="int"></element>
<element name="role" type="string"></elemen>
<element name="fullName" type="string"></element>
</sequence>
</complexType>
</schema>

Notice that above XSD contains two root element and namespace also, I have created two sample XML file from XSD using Eclipse.


EmployeeRequest.xml

<?xml version="1.0" encoding="UTF-8"?>

<empns:empRequest xmlns:empns="http://www.journaldev.com/Employee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.journaldev.com/Employee Employee.xsd ">


EmployeeResponse.xml

<?xml version="1.0" encoding="UTF-8"?>

<empns:empResponse xmlns:empns="http://www.journaldev.com/Employee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.journaldev.com/Employee Employee.xsd ">
<empns:id>1</empns:id>
<empns:role>Developer</empns:role>
<empns:fullName>Pankaj Kumar</empns:fullName>
</empns:empResponse>

Here is another XML file that doesn’t confirms to the Employee.xsd.


employee.xml

<?xml version="1.0"?>
<Employee>
<name>Pankaj</name>
<age>29</age>
<role>Java Developer</role>
<gender>Male</gender>
</Employee>

Here is the program that is used to validate all three XML files against the XSD. The validateXMLSchemamethod takes XSD and XML file as argument and return true if validation is successful or else returns false.

XMLValidation.java

package com.journaldev.xml;
import java.io.File;
import java.io.IOException;
import javax.xml.XMLConstants;
import javax.xml.transform.stream.StreamSource;
import javax.xml.validation.Schema;
import javax.xml.validation.SchemaFactory;
import javax.xml.validation.Validator;
import org.xml.sax.SAXException;
public class XMLValidation {
public static void main(String[] args) {

     System.out.println("EmployeeRequest.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "EmployeeRequest.xml"));

     System.out.println("EmployeeResponse.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "EmployeeResponse.xml"));

     System.out.println("employee.xml validates against Employee.xsd? "+validateXMLSchema("Employee.xsd", "employee.xml"));

     }

   public static boolean validateXMLSchema(String xsdPath, String xmlPath){

       try {

           SchemaFactory factory =

                   SchemaFactory.newInstance(XMLConstants.W3C_XML_SCHEMA_NS_URI);

           Schema schema = factory.newSchema(new File(xsdPath));

           Validator validator = schema.newValidator();

           validator.validate(new StreamSource(new File(xmlPath)));

       } catch (IOException | SAXException e) {

           System.out.println("Exception: "+e.getMessage());

           return false;

       }

       return true;

   }

}


Output of the above program is:

EmployeeRequest.xml validates against Employee.xsd? true

EmployeeResponse.xml validates against Employee.xsd? true

Exception: cvc-elt.1: Cannot find the declaration of element 'Employee'.

employee.xml validates against Employee.xsd? false

Benefit of using java XML validation API is that we don’t need to parse the file and there are no third party APIs used.





WHAT Is SQL

$
0
0

What IS SQL?

SQL Stands for Structured Query Language.

Structured = In a Processed Way,Proper Methodical Approach

Query = Asking Questions

Language = Mode / Medium of Communication

So SQL = Structured + Query + Language

             = (In a Processed Way, Proper Methodical Approach) + (Asking Questions) + (Mode / Medium of Communication)

After a rearrangement if we try to construct a line it could be:

  1. Mode / Medium of Communication Via Asking Questions

  2. Mode / Medium of Asking Questions in a proper methodical approach.

Out of the above two the option 2 sounds better hence I will choose 2.

So SQL now stands for Mode / Medium of Asking Questions in a proper methodical approach.

Now this brings us to the next question.

Asking Questions . But Questions are asked by some-one (Individual 1) to Some-One (Individual 2)

So in SQL WHO Asks the Question and To WHOM

WHO = Business / Business User / Technical Consultant

WHOM = Database / ERP System / Any system Holding Data / Datawarehouse

So we come to conclusion that via SQL

Business / Business User / Technical Consultant asks questions to Data Storing System (Commonly referred to as Database) in a proper methodical way (following specific syntax)

Graphical Representation

 



Database Table:

The above data gets stored into the Database in a Structure Called Table and it looks like as shown below :


Database Column

Each Database Table is made up of one or more vertical rows typically referred to as Columns.


In the above example we have following columns

  1. Employee No

  2. Employee Name

  3. Position

  4. Department




SQL Example

Say a Technical Consultant Adam has been asked by CEO of ABC Company to give him the details of all employees . The Output would be fetched via a SQL.

Sql Syntax

So if we want to get the data of all employees we will have a SQL like :

Sql 1 : Get All Data

SELECT * FROM EMPLOYEES; ---------------------------------------------------------------------------- (a)

                OR

SELECT ALL FROM EMPLOYEES;------------------------------------------------------------------------( b )

                OR

SELECT EMPLOYEE_NO,

              EMPLOYEE_NAME,

              POSITION,

              DEPARTMENT

FROM    EMPLOYEES; -------------------------------------------------------------------------------------- ( c )

                    OR

SELECT E.ALL FROM EMPLOYEES E; ------------------------------------------------------------------( d )

                    OR

SELECT E.* FROM EMPLOYEES E ;  ------------------ ( e )

OR

SELECT E.EMPLOYEE_NO as “Employee No”,

E.EMPLOYEE_NAME as “Employee Name”,

E.POSITION                  as “Position”,

E.DEPARTMENT         as “Department”

FROM EMPLOYEES E                                                                ----------------------------------------- ( f )

Note :- Here in ( c ) we have used ‘E’ for ‘Employees’ which is an alias. Like we have Names (Dinesh) and pet-name (Dinu). So we can refer the to the TABLE with either Real Name ( Employees ) or with Pet-Name ( E )


WHERE CLAUSE

Whenever we want to Restrict Data in SQL we need to use where clause. In this example we have 3 department while we are interested to get data for ABC Sales so SQL will be :

SQL 2 : SQL with Where Clause

 

SELECT * FROM EMPLOYEES WHERE DEPARTMENT = ‘ABC Sales’; ------------------------------------------------------------- (a)


                OR

SELECT ALL FROM EMPLOYEES WHERE DEPARTMENT = ‘ABC Sales’;------------------------------------------------------------( b )

                OR

SELECT EMPLOYEE_NO,

              EMPLOYEE_NAME,

              POSITION,

              DEPARTMENT

FROM    EMPLOYEES

WHERE DEPARTMENT = ‘ABC Sales’; ------------------------------------------------------------------------------------------------------- ( c )

                    OR

SELECT E.ALL FROM EMPLOYEES E WHERE DEPARTMENT = ‘ABC Sales’------------------------------------------------------ ( d )

                    OR

SELECT E.* FROM EMPLOYEES E WHERE E.DEPARTMENT = ‘ABC Sales’ ;  ------------------ ( e )

OR

SELECT E.EMPLOYEE_NO as “Employee No”,

E.EMPLOYEE_NAME as “Employee Name”,

E.POSITION                  as “Position”,

E.DEPARTMENT         as “Department”

FROM EMPLOYEES E     

WHERE E.DEPARTMENT = ‘ABC Sales’                                                           ----------------------------------------- ( f )




How-To Create a Custom BIP Report In Fusion Applications

$
0
0

Business Requirement

Oracle has already delivered a lot of BIP Reports in the Fusion Instance, However during a course of implementation it is a common requirement to develop new ones.

Content

There are few common steps involved they are :

  1. Create a SQL Query which comprises of DB Tables ( that exist in Fusion Schema).

We have a SQL Query which is as below :

select  A.person_number,

       A.full_name,

       A.legal_employer,

       A.business_unit,

       A.department,

       A.absence_plan_name,

       A.adjustment_type,

       A.adjustment_reason,

       A.value,

       A.procd_date accrual_entry_date

from

(

select apaed.per_accrual_entry_dtl_id,

      apaed.per_accrual_entry_id,

      apaed.enterprise_id,

      apaed.value,

      apaed.type,

      apaed.created_by,

      apaed.creation_date,

      apaed.last_updated_by,

      apaed.last_update_date,

      apaed.last_update_login,

      apaed.person_id,

      apaed.pl_id,

      apaed.procd_date,

      apaed.per_event_id,

      apaed.legal_employer_id,

      apaed.assignment_id,

      apaed.per_absence_entry_id,

      apaed.per_plan_enrt_id,

      apaed.work_term_asg_id,

      DECODE(apaed.type,'ADJOTH',ADD_MONTHS(procd_date,6),NULL) proposed_expiration_date,

      papf.person_number,

      ppnf.full_name,

      paam.organization_id,

      dept.name  department,

      paam.legal_entity_id,

      legal_employer.classification_code         legal_emp_classification_code,

      legal_employer.name                        legal_employer,

      paam.business_unit_id,

      business_unit.classification_code          bu_classification_code,

      business_unit.name                         business_unit,

      absence_plan.name        absence_plan_name,

      flvt.meaning             adjustment_type,

    adj_reason.meaning            adjustment_reason

 FROM anc_per_acrl_entry_dtls apaed

 JOIN fnd_lookup_values_tl flvt

      ON (flvt.lookup_type = 'ANC_ACCRUAL_ENTRY_TYPE'

      AND flvt.lookup_code = apaed.type

      AND flvt.language = 'US')

 JOIN per_all_people_f papf

      ON (apaed.person_id = papf.person_id

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

 JOIN per_person_names_f ppnf

      ON (ppnf.name_type = 'GLOBAL'

      AND ppnf.person_id = apaed.person_id

      AND TRUNC(SYSDATE) BETWEEN ppnf.effective_start_date and ppnf.effective_end_date)

 JOIN per_all_assignments_m paam

      ON (paam.assignment_id = apaed.assignment_id

      AND paam.person_id = apaed.person_id

      AND paam.primary_assignment_flag = 'Y'

      AND paam.assignment_type = 'E'

      AND TRUNC(SYSDATE) between paam.effective_start_date and paam.effective_end_date)

LEFT OUTER JOIN

( SELECT flvt1.lookup_code,

flvt1.meaning

FROM fnd_lookup_values_tl flvt1

WHERE flvt1.lookup_type = 'ANC_ABS_PLAN_OTHER_REASONS'

AND flvt1.language = 'US'

) adj_reason

ON (apaed.adjustment_reason = adj_reason.lookup_code)

 LEFT OUTER JOIN

     ( SELECT hauft.organization_id,

              hauft.NAME

         FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf,

              HR_ALL_ORGANIZATION_UNITS_F haouf,

              HR_ORGANIZATION_UNITS_F_TL hauft

        WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID

          AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID

          AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND houcf.EFFECTIVE_END_DATE

          AND hauft.LANGUAGE = 'US'

          AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE

          AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE

          AND houcf.CLASSIFICATION_CODE = 'DEPARTMENT'

          AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date

      ) dept

      ON (paam.organization_id = dept.organization_id)

 LEFT OUTER JOIN

      (SELECT hauft.organization_id,

              hauft.NAME,

              houcf.classification_code

         FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf,

              HR_ALL_ORGANIZATION_UNITS_F haouf,

              HR_ORGANIZATION_UNITS_F_TL hauft

        WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID

          AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID

          AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND houcf.EFFECTIVE_END_DATE

          AND hauft.LANGUAGE = 'US'

          AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE

          AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE

          AND houcf.CLASSIFICATION_CODE = 'HCM_LEMP'

          AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date

       ) legal_employer

       ON (paam.legal_entity_id = legal_employer.organization_id)

 LEFT OUTER JOIN

      (SELECT hauft.organization_id business_unit_id,

              hauft.NAME,

              houcf.classification_code

         FROM HR_ORG_UNIT_CLASSIFICATIONS_F houcf,

              HR_ALL_ORGANIZATION_UNITS_F haouf,

              HR_ORGANIZATION_UNITS_F_TL hauft

        WHERE haouf.ORGANIZATION_ID = houcf.ORGANIZATION_ID

          AND haouf.ORGANIZATION_ID = hauft.ORGANIZATION_ID

          AND haouf.EFFECTIVE_START_DATE BETWEEN houcf.EFFECTIVE_START_DATE AND houcf.EFFECTIVE_END_DATE

          AND hauft.LANGUAGE = 'US'

          AND hauft.EFFECTIVE_START_DATE = haouf.EFFECTIVE_START_DATE

          AND hauft.EFFECTIVE_END_DATE = haouf.EFFECTIVE_END_DATE

          AND houcf.CLASSIFICATION_CODE = 'FUN_BUSINESS_UNIT'

          AND TRUNC(SYSDATE) BETWEEN hauft.effective_start_date AND hauft.effective_end_date

       ) business_unit       

       ON (paam.business_unit_id = business_unit.business_unit_id)

        LEFT OUTER JOIN

       (SELECT aapf.absence_plan_id,

               aapft.NAME

          FROM anc_absence_plans_f_tl aapft,

               anc_absence_plans_f    aapf

         WHERE aapft.absence_plan_id = aapf.absence_plan_id

           AND aapf.plan_status = 'A'   -- added to pick only Active Absence Plans

           AND trunc(SYSDATE) BETWEEN aapf.effective_start_date AND aapf.effective_end_date

           AND trunc(SYSDATE) BETWEEN aapft.effective_start_date AND aapft.effective_end_date

           AND aapft.language = 'US'

       ) absence_plan

       ON  apaed.pl_id  = absence_plan.absence_plan_id

       where pl_id = absence_plan.absence_plan_id

and apaed.value <> 0    

order by apaed.person_id,apaed.procd_date asc

) A

where person_number = nvl(:pPersonNumber,person_number)

and   legal_employer = nvl(:pLegalEmployer,legal_employer)

and   business_unit = nvl(:pBusinessUnit,business_unit)

and   procd_date >=  nvl(:pCalculationDate,procd_date)

and   department = nvl(:pDepartment,department)

and   full_name = nvl(:pPersonName,full_name)

and   absence_plan_name = nvl(:pAbsencePlanName,absence_plan_name)


Navigate to the screen as shown:


Under Published Reporting -> Data Model

Create a New Data Set (of SQL Query type) as shown in Screenshot below:

Give a Name to Data Set (for this example say PersonAbsenceAccrualEntryDetails_ds):

You would need to take special care while selecting Data Source (Logic Below):

  1. If you are Building Finance reports use : ApplicationDB_FSCM

  2. If you are Building HCM reports use : ApplicationDB_HCM

  3. If you are Building CRM Reports use : ApplicationDB_CRM

For this example we use ApplicationDB_HCM

Depending on the number of Parameters( Bind Variables) used a Popup window will appear as :

Click OK. Give a Name to the Parameters as shown below

Parameter Details :

Data Model is created. Now we need to check the data retrieved.




. Create List of Values for Parameters.

List OF VALUES

LOV SQL Section

This Section shows all the SQL which are used for LOV Creation.

Legal Employer LOV SQL

Business Unit LOV SQL

Department LOV SQL

Absence Plan LOV SQL

Person Name LOV SQL


View Data :

Click on ‘Save As Sample Data’:

Create Report

                                                                                                     Click on Create Report


Click Next and Follow Train Stops :

Create Table

Drag and Drop fields and the Final Report output will look like :


R12 - Article 2 - Multiple organisations

$
0
0

This article is the continuation of Multiple Organisation.

Important concepts in R12 – Finance module – Multi ORG

Inventory Organisation:

It is the lowest level. It is the physical manufacturing company which tracks inventory and balances. (Outgoing and Incoming) It is used in supply chain. Inventory is a warehouse or a store where all the materials are kept. It is linked to the operating unit.

To summarize on the top would be the business group then ledgers and each ledger would have multiple legal entities assigned to it under which operating units are assigned and then inventory organisation. Inventory organisation is a place where materials are procured and materials are received and includes sales. 

Benefits of multiple organisations:

Supports number of organisations, under a single installation, even if they use different ledgers.

Supporting Flexible Organisation Models

Data access is secured, allowing users to access relevant information only. It could be done through a single instance. Though it is shared data for each operating unit it would be secure.

Multi Org Model or Structure:

The multi org model provides a hierarchy that dictates how transactions flow through different business organisations and how they interact with each other.     



Any company that is going to use oracle has to define the above values. Business group is at the top most level where the HRMS information is stored. Under business groups there can be multiple SOBs (Set of Books). In normal practice each country would have its own set of books, (chart of accounts, currency, calendars and combinations). Then there could be multiple legal entities which are legal reporting companies, which would have its own registration number.

For Example, in UK, for the same customer there could be multiple legal operations across. Operation units include all AP and AR transactions. It comprises all sub ledger entries are done at the operating unit level. Operating unit is a critical concept to understand in the accounting prospective.  All sub ledger accounting happens at the OU level.

At the last is the inventory organisation, where the material stock or inventory is tracked. Each of these has a parent child flow. Operating units can have multiple inventory orgs. One inventory orgs cannot be assigned to multiple operating units. One operating unit can be linked to only one legal entity. under one legal entity there could be multiple operating units. There could be multiple set of books and once the legal entity is assigned to a set of books, it cannot be assigned to another set of books.

The above was in the previous version; the same thing is there in the release 12. It does not have set of books and it is replaced by ledger




This is the overall architecture.

The reason for the inventory organisation being under the operating unit could be explained with an example. For example there is an operating unit in USA – it could have multiple warehouses for raw materials and then for finished goods etc but it comes under the operating unit in USA or is associated with it.

Release 11 versus Release 12:

The multi org concepts and structure remains the same in release 12. Differences relating to the setups are as follows.

  • Set of books are replaced by ledgers in release 12.

  • Legal entities are created using accounting setup manager or legal entity manager/ configurator in release 12.

  • In the previous version the option was to define the legal entity in the hrms level and then it was linked up to the organisation, In release 12 it is all a part of the General ledger.

  • Operating units can also be created in accounting setup manager itself in release 12.

Important points in the oracle user guide:

  • Responsibility:

One of the important concepts in oracle is responsibility. It is the access given to the user to do the entries.

For example there are three operating units in India, USA and China. It would be required that Indian users should be able to enter data using Indian related responsibility, like India payable and India receivable. The Indian user should not be able to see US data, this restriction in oracle is through responsibility and the access profiles set to the responsibility. Responsibility matrix should be defined very carefully before the structure is designed - The AP and AR modules that have to be used and they probably have multiple level. (Like a manager level responsibility, inquiry level responsibility, entry level responsibility) Each module and combination of the level is to be defined and is to be linked to the operating unit used. So for a user in India though the server is shared, (it could have the US data and UK data and Indian data), to ensure the Indian views only the Indian data, a UK user would only be able view UK data so that access is granted to a responsibility, so each user based on the country or location, based on how the business rules are defined will have to have that many responsibilities defined. A person could be in accounts payable activity making invoices to suppliers and other person may be having only view access where he could only view the data. A manager doesn’t have to enter anything and wants to view reports, so it would be an inquiry responsibility and may have an entry responsibility. A lead the one entering may not be able to validate the information and the next level may validate. Basis of this the number of responsibilities could be defined. So a single instance having access to all units but based on the user, the access could be defined. The access is a responsibility. Responsibilities are attached to the users.

User is the person logging in and should be able to see only the responsibilities assigned to him. So responsibility is one of the key terms.

Responsibility determines which operating units you can access when oracle applications are used.

  • Operating units are not associated with legal entities. Operating units are assigned to ledgers and a default legal context.

To explain the above point operating units are linked with the ledger but it has to have a default legal context which means a default legal entity should be placed here. So if there are multiple legal entities, there should that many operating units defined and attached to them. For any company to go live there should be one each so one legal entity and one operating unit has to be there as the minimum requirement for going live in oracle. So there should be a minimum of one ledger and one legal entity and one operating unit if you are going live with the finance module of oracle. – AP AR etc. Inventory organisation is required only if the inventory module is used, - supply chain.

As compared with R11 in R12 multiple operating units can be assigned to a single responsibility.

(Multi org access control), here the security profile has to be attached to the particular user and that user could enter through a single responsibility for multiple operating units invoices and payments. MOAC security profile could be set at the user level or the responsibility level, depends on the requirement.

  • To use multiple organisations, you must define an accounting setup with at least one legal entity.

R 12 - Article 3 - Multiple organisations

$
0
0

Important points stated in the Oracle User Guide:

  • Operating units can be defined from the Define organisation window in oracle HRMS or from Accounting Setup Manager in General Ledger.

There are two options, one in the organisation window, in the HRMS responsibility it is defined or it in the General ledger responsibility as well. In the previous version it was only from the HRMS or the inventory organisation.

For fresh installation, Oracle Applications provides a predefined business group, setup business group. It is recommended that the predefined business group is modified rather than defining a new one.

Which means the name could be changed for the predefined business group, following the naming convention of the organisation. EG: company name_BG and then the settings could be modified. So there is a predefined business group given at the time of doing the configuration. If there is a single business group, the predefined business group could be renamed and used. If there are multiple business groups, then we have to define separately for each business group.

Example: Some companies may want a separate HR, business group in the HRMS level, in order to have a different business group, to have different payroll and HRMS mapped across countries, a multiple business group concept has to be used.  For a single business group in the centralised HR and the employee business group numbering should be standard across, in different countries then there would be a single business group

  • HRMS does not have to do anything with the operating units; HRMS would be interested in knowing the payroll information or employee data. So employees are mapped at the business group level. Operating unit is for the accounting purposes. AP and AR is at the operating unit level whereas HRMS work at the BG level, the payroll or HR transaction employees are mapped at the HRMS level. They don’t get linked to the operating unit level respectively.

Example: If the Head quarter is in USA, HRMS is compiled in USA but it is split across multiple organisations. For India there could be a separate business group, for USA a separate one and for UK separate.

Pre requisites for setting Multi org in Release 12

  • Access to define organisations and define legal entity configurator pages, or the accounting setup manager page.

So the organisation has to be defined first and then the HR organisation, then the ledger and legal entity. In order to achieve that there should be access to GL, access to purchasing for inventory and HRMS for business group.

System administrator is a known concept in oracle. The system administrator grants responsibility access, profile options, what needs to setup, what needs to be access to what. All this is the responsibility of the system administrator. Only the person having a system administrator access can give users access to various operating units or business group or inventory org or profiles being set up. All this is done in the system administrator level. So system administrator is the ones who create users, who enable access, who drive the responsibility access and all responsibility definitions are done under the system administrator roles. The system administrator gives the actual access. It is the most important role. The role should be limited to the one who is actually the administrator of the system, who would actually give the required roles or let’s say a new person joins the organisation, the user id creation, his access, his AP access, all that is done by the system administrator. It is the most critical responsibility so it should not be given to anybody; it has be to a limited access people.

  • It is advised to have access to HRMS, General Ledger, purchasing and system administrator responsibilities.

Setting up Multi Org in release 12:

The sequence of steps to be carried out:

  1. Develop or design a structure

  2. Define location

  3. Define business group

  4. Define or use an existing accounting key flex field structure

  5. Create Legal entity

  6. Create Ledgers

  7. Create and Assign operating units and legal entities

  8. Create Inventory Organisation

  9. Run reports

The first step is to develop or design a structure. Here the number of business groups required is decided, what is the kind of ledger structure, what is the kind of account structure that has to be there. How many segments are required? Once the structure is defined it has to be linked. The structure is discussed with the customer and decided.


HCM Delete Diagnostics Sample Use Case

$
0
0

Business Requirement

HCM Delete Diagnostics is a tool provided by Oracle to Delete Unwanted Data from the Fusion System.

Sometimes we might have to create Dummy Data into system for CRP ( Customer Room Pilot) and also at times we might encounter situations where incorrect data gets loaded using the Data Exchange Tool. In such scenarios we may use ‘HCM Delete’ as an option.

Specific Roles needs to be attached to the user to be able to use the same.

 

Roles Required to Enable HCM Delete Diagnostics

 

Fusion HCM Nuggets - 1

$
0
0

 

 

What is Fusion HCM (Human Capital Management)?

Fusion – The F word baby born out of a marriage between the best of breed features from Oracle product-lines and the best practices shared by customers.

Fast-to-Implement, low cost cloud based HCM applications comes with deployment options. It offers new enhanced features, functionalities and are built to empower enterprises/organisations.

Besides the traditional HR and Payroll, Fusion HCM comes with new modules like Talent Management (Unleash people power), Workforce Analytics (Decision Making Support) and completely new collaborative tool Network at work (Social Networking for Employees behind firewall).


OBIEE - Oracle Business Intelligence Enterprise Edition(Part 1)

$
0
0

SUMMARY

OBIEE suite delivers the complete robust set of reporting for the enterprise that delivers ability for reporting, ad hoc query and analysis, online analytical processing (OLAP) and dashboards. In this article we get to know the overview of OBIEE 11g and also witness its features, upgrades, components, utilities etc. 

  1. DATA WAREHOUSE

In computing, a data warehouse (DW or DWH), also known as an enterprise data warehouse (EDW) is a system used for reporting and data analysis. The term data warehouse is coined by bill immon.

A warehouse is a Subject-oriented, Integrated, Time-variant and Non-volatile collection of data in support of management’s decision making process

Subject oriented

Data that give information about a particular subject instead of about company’s ongoing operations

Difference between Operational system and Data Warehouse

Integrated

Data is gathered into the data warehouse from variety of sources like spreadsheet, oracle database or peoplesoft are merged into a coherent whole as shown below.

Time variant

All data in the data warehouse is identified with a particular time period.


Non-Volatile

In operational system since there are daily transactions we take those transactions and keep it sometime in the system and we move that data to the data warehouse.  They don’t stay in the operational database. Whereas, in case of data warehouse the deletion and truncation of data are done thus making it as non volatile.

Difference between OLTP and Data Warehouse

Golden Gate is the reporting tool which immediately replicates any transactions in data warehouse without waiting for ETL process.

         1.1 DW Architecture

The data from different sources are dumped into staging tables. The first Extract, Transform and Load (ETL) part is to load the data from staging to data warehouse. The second ETL part will focus on all business transformations and data integrity. Now there is something called MDM master data management   

       1.2 Datawarehousing concepts

             1.2.1Source Systems

  • Systems which are identified for providing data to be integrated in the DW

  • Data in DW can also be sourced from excel sheets and other unstructured sources of data

  • Mostly termed as Transaction Systems,  OLTP, or System of Record

Common Characteristics of Source Systems
  • Applications that run the business

  • Help automate business processes within organizations

  • Optimized for inserts and updates

  • Does not hold historical data (Data is often purged)

  • Source systems can be packaged applications (SAP, MFG/PRO, PeopleSoft, Siebel, Oracle Applications) or custom built solutions

1.2.2Staging Layer/ Area

  • Predominantly a storage area to hold raw data extracted from the source systems

  • Minimal or No transformation done to extract data from source before loading to staging area

  • Data type conversions, data length normalization etc can be done

  • Data Structures designed to aid in optimizing data loading

  • Data in staging layer is not available for reporting

  • Staging area also serves as a permanent data store for data which might get purged in the source systems

  • Facilitates incremental data loading (handling of rejected records)

1.2.3Extract Transform Load (ETL)

It comes before and after staging layer and extracts data from source system, transform it and load it. The transformation is nothing but they fall in lined to the business project.

Actions
  • It extracts information from one or more source

  • Approaches – Flat File Vs. Direct Dip

  • Challenges – Incremental, Full Data Extraction, Identifying data changes

  • It performs transformations such as string manipulations, UOM Conversions, Master data validations like Code normalization/Cleansing

  • It loads finally transformed data into the target data structures and the report can be created.

  • Examples of ETL Tools are DataStage, Informatica and DTS

1.2.4 ODS

  • Stands for Operational Data Store

  • Holds the most recent integrated data from multiple sources

  • Usually used by operational teams for day-to-day decision making

  • Data available at a higher level of granularity (business documents are stored)

  • Does not hold historical data – May hold 30-90 days history

  • It is used to store data which is volatile but required by business to make decisions

1.2.5 Enterprise Data Warehouse

  • It is the core component  in the architecture

  • Data sourced from the source is ultimately stored here

  • Data model for EDW are

  • Normalized proposed by Bill Inmon

  • Dimensional Model proposed by Ralph Kimball father of DW

1.2.6 EDW – Dimensional Model

  • It is originated in the mid seventies by A.C.Nielson and made popular by Ralph Kimball

  • The Dimensional Model which is used in BMM layer can be divided into two categories

  • Star Schema – Connected as star by having facts e.g. sales in between and other dimensions e.g. product, time, region and customer connected with the fact. The dimension has a key and the fact has a foreign key for that particular dimension.

  • Snow Flake Schema – Product category is stored in different tables 

1.2.7 OLTP Model

Highly normalized typically in 3 NF 

1.2.8 Dimensional Model

It can be converted into the DW model as below


Here the joints are eliminated thus providing more memory space
1.2.8.1 Dimensions
  • Sets context for asking questions about the facts in the fact table

  • They correspond to the entities by which you want to analyze the business metrics

  • Dimensions have multiple levels like time

  • The combination of levels participate in a hierarchy which is used for data aggregation

  • Multiple hierarchies can be carved out for a dimension such as geographical hierarchy, political hierarchy, sales hierarchy etc

  • The records in dimensional table are less compared to records in fact tables

1.2.8.2 Facts
  • Contains measures related to a process or event

  • Types of facts
        Additive : Measures can be added along any and all dimensions for e.g. sales              
              Semi-Additive : Measures can be added along some dimensions and not all e.g. closing stock, bank balance
              Non-Additive : Cannot be added along any dimension. E.g. Text measures, temperatures etc.
  • It contains vast number of records compared to dimension table

  • Records are mostly appended

  • Can contain either detail or summarized data

2. OBIEE

  • Oracle’s reporting tool formerly known as Siebel Analytics

  • It is the reporting tool like SAP’s BO and IBM’s Cognos

  • BI reporting tool that helps to dump the data into spreadsheets is integrated with OBIEE

  • It is one of the most popular reporting tools in the market as per Gartner’s quadrant

  • It is used in custom standalone deployments and also in Oracle’s very own OBIA product

  • It caters to multiple levels at organization from C-level executives to store managers

  • OBIEE 11g comes with a rich and interactive UI  and complex calculation features when compared  to 10g

2.2.1. Changes made in OBIEE
  • WebLogic containing Oracle MapViewer application is utilized instead of OC4J java

  • System Management is made using Enterprise Manager for deploying repository

  • It is embedded with built-in web logic server consuming lot of memory when compared to 10g in which 600 MB is enough

  • It employs different file system structure including logs etc.

  • Deployment process is modified

  • No “Oracle BI” windows services which is used in 10g

  • Ability for remote start/stop/restart via OPMN

  • Security model comprising authentication/authorization 2.2is completely changed

  • BI publisher repository is merged into the BI presentation catalog itself so that unnecessary manual calculations can be reduced

  • “Credential Store” is now centrally managed by WebLogic/Fusion Middleware

2.2.2. Changes not made in OBIEE
  • BI Server Repository (RPD) is still a single file at any point of time

  • BI Presentation Catalog that stores reports is still a file system

  • 5 BI Server components such as Server/Presentation Services/Java Host/Scheduler/Cluster controller remain unchanged

  • J2EE deployments such as analytics/bioffice/bipublisher remain unchanged

  • Admin tool and catalog manager tools are present on windows platform only

  • There is only one instance of OBIEE per server (this may change in a future release)

  • Log file naming conventions OBIEEE process like nqserver, sawserver etc remain unmodified

2.2.3. Repository Creation Utility

The RCU is a common utility used for creating repository schemas for the entire Oracle Fusion Middleware platform

This utility is now used to create all the supporting database schemas required by Oracle Fusion Middleware

Oracle BI EE has a single schema that is prompted for during install, this schema will then include all the system tables required for BI Publisher, Balanced scorecard, Usage Tracking

2.2.4 File System Structure

This has completely changed in OBIEEE 11g



2.2.5. File System





2.2.6.OBIEE 10g Architecture
UI is very dull. It was built using C and C++ and contains less number of java components. RPD is the repository file where we do all the development



The admin tool is used by the developer to create the rpd. Once the rpd is built, it will be deployed into the Oracle BI server. The Oracle BI server interacts with multiple data sources. Once it is deployed, it goes to the presentation services in which the data is displayed in the required format like charts, graph for the end user.

2.2.7. Oracle BI EE Architecture 11g


The supporting Database Schemas is created by RCU that creates supporting database schemas for OBIEE. The BI system components are similar to 10g. The Oracle BI domain has various sub parts. The first subpart at high level is WebLogic  domain with the advent of weblogic server coming into oracle BI. Installing OBIEE means , WebLogic is installed itself. The WebLogic server can be of two types . The weblogic server has one admin server which contains weblogic UI . The weblogic console is mainly used for security.
2.2.8. Weblogic Console

The weblogic console contains two ports

7001 – Admin Server

9704 – BI Server
2.2.9. Enterprise Manager


2.2.10. Sizing

  • In terms of CPU, the Oracle BI EE 11g should support the same number of users as 10g

  • General rule (250 users per CPU core) containing minimum of 2 CPU cores

  • However, the introduction of weblogic and Enterprise manager do consume a lot more memory than the previous OC4J.

  • Each Weblogic Admin/Managed server consumes more than 600MB RAM each

  • Machines running OBI EE 11g should ideally have a minimum size of 6GB RAM.

2.2.11. OBIEE 11g New Features
  • Rich UI compared to 10g

  • There is one platform for security model that has changed after weblogic came into picture, more inlined towards FMW

  • OBIEE 10 g have parent-child relationship whereas  11g supports for other hierarchies like ragged and skip level

  • BI publisher is fully integrated, make it in a single window for reports

  • Multiple reporting of subject area for e.g. oracle general ledger is supported

  • Rich KPI and score carding

  • Time series calculations

  • Rename wizard

  • LDAP Authorization where we can create own set of users

 

Siebel open UI Training

$
0
0

Siebel Open UI Training is designed to help business analysts develop the skills to translate user requirements into detailed technical specifications. To know about methods for determining solutions to application gaps.

OBIEE - Oracle Business Intelligence Enterprise Edition(Part 2)

$
0
0

This is the continuation of the OBIEE - Oracle Business Intelligence Enterprise Edition(Part 1)

  1. Oracle BI Repository

Oracle BI server stores metadata in repositories i.e. in physical layer

The Oracle BI Administration tool has a GUI that allows server administrators to set up these repositories

Admin tool is used to

Import metadata from databases and other data sources like xml

Simplify and reorganize the imported metadata into business models

In presentation layer, the business model is structured so as to meet the expectation of business users who request BI information via oracle BI UI tools

Open the admin tool in order to open the rpd file.

The rpd file has three layered architecture namely

  • Physical layer

  • BMM layer

  • Presentation layer

 

  1. Physical layer



The physical layer containing physical object creates the data source and import the meta data.

  1. Business Model and Mapping layer



The entire data modelling is done in BMM layer. It takes the request from the user and process that to the BI server engine and creates a physical sql query and then it fetch the database and the get the results back to the user.

  1. Presentation layer



Presentation layer defines UI

The modelling is done in the presentation layer as per the end user requirements.

  1. Repository directory

By default, the repositories are stored in the repository subdirectory where oracle BI software is installed: ORACLE_INSTANCE\bifoundation\OracleBIServerComponent\bi_instance_name_obisn\repository

  1. Repository modes

  • The repository files can be opened for editing in offline mode or online mode

  • In Offline mode all rpds in local machine can be opened since the repository is not loaded into Oracle BI Server memory

  • In Online mode the repository deployed in the server alone can be opened

  • Administrators can perform tasks that are not available in offline mode

Manage scheduled jobs

Manage user sessions

Manage the query cache

Manage clustered servers

  • In Enterprise Manager, the default rpd deployed into the server is displayed.

 

  1. Publish Repository

Go to Enterprise Manager

Go to Business Intelligence, then lock and edit



  1. Restart OBI Services

After publishing repository the OBI services should be restarted as shown below.



  1. Reload Server Metadata

After new changes is done in repository, instead of signing in and out the server metadata can be reloaded.

  1. Query Processing

There are types of queries namely logical query and physical query. The logical query involves logical dimensional tables

The BI server converts the logical query into physical query involved in the underlying database

  1. A user views a dashboard and submits an analysis

  2. Oracle BI presentation services makes a request to Oracle BI server to retrieve the requested data

  3. Using the repository file, Oracle BI server optimizes functions to request the data from the data sources

  4. Oracle BI server receives the data from the data sources and processes as necessary

  5. Oracle BI server passes the data to Oracle BI presentation services

  6. Oracle BI presentation services formats the data and sends it to the query client




  1. Building Physical Layer

 

  • Contains objects representing the physical data sources to which Oracle BI Server submits queries

  • May contain multiple data sources

  • It is the first layer built in a repository



 

  1. Database Objects

It is the highest-level object in the physical layer

Defines the data source to which Oracle BI Server submits queries

ORCL is inherited from tnsnames.ora file



  1. Database Properties



  1. Connection pool

Connection pool is defined as the connection between Oracle BI server and data source

The database objects and connection pool are automatically created when you import the physical schema

Oracle call interface is recommended for connecting to an Oracle data source

The data source name (DSN) information is used to connect to a data source, the number of connections allowed, timeout information, and other connectivity-related administrative details

Multiple connection pools can be created  to improve the performance for groups of users

A single database connection is shared by selecting the Enable connection pooling checkbox that allows multiple concurrent query requests



  1. Physical Table

A physical table is an object in the physical layer of the Administration tool that corresponds to a table in the physical database

Physical tables are imported from a database or another data source, and they provide necessary metadata necessary for Oracle BI server to access the tables with SQL requests

When data source definitions are imported, actual data is not moved. Data remains in the physical data source



  1. Physical table properties



  1. Physical column



  1. Key column

Defines relationships between tables by using primary key and foreign keys

Primary key identified by a key column

  • Uniquely identifies single row of data

  • Consists of columns or set of columns



 

  1. Physical table alias

 

  • An alias table is a physical virtual table object that points to a physical table object. An alias table in the physical layer is like any other alias used in standard SQL notation

  • A common use of aliases is role-playing dimensions, where a single dimension simultaneously appears in the same fact table

  • Alias synchronization is the act of ensuring that the source table and related alias tables have the same column definitions

  • An alias table always inherits all the column definitions from the source table, and synchronization happens automatically



The changes made in the table will be reflected in alias table also. Key columns should be made manually.

Joins



 

  1. Creation of RPD



Import meta data as shown below



Select the metadata as depicted in the fig below



Then select the metadata objects as shown below





Then Verify import in physical layer as shown below



After that verify the connectivity as below



Create alias table as shown in the fig below



As soon as the alias table is created, the joins and keys should be defined as follows



The joins are made as follows



The joins can be made from fact to dimensions (one to many relationship) and is made in BMM layer or reporting layer itself.

XML, Web Services and API's in Java

$
0
0
Objective:

In the previous article How to validate XML against XSD in java we have learned about XML validation method. In this article we will learn about Role of XML in java platform, Introducing web services concept, Web services standard, API’s and tools to develop Java Services.


XML:

XML is a simple text based language which was designed to store and transport data in plain text format. It stands for Extensible Markup Language. Following are some of the salient features of XML.

XML is a markup language.

XML is a tag based language like HTML.

XML tags are not predefined like HTML.

You can define your own tags which is why it is called extensible language.

XML tags are designed to be self descriptive.

XML is W3C Recommendation for data storage and transport.


Example:

<?xml version="1.0"?>
<Class>
  <Name>First</Name>
  <Sections>
     <Section>
        <Name>A</Name>
        <Students>
           <Student>Rohan</Student>
           <Student>Mohan</Student>
           <Student>Sohan</Student>
           <Student>Lalit</Student>
           <Student>Vinay</Student>
        </Students>
     </Section>
     <Section>
        <Name>B</Name>
        <Students>
           <Student>Robert</Student>
           <Student>Julie</Student>
           <Student>Kalie</Student>
           <Student>Michael</Student>
        </Students>
     </Section>
  </Sections>
</Class>


Role of XML in Java Platform:

The features of XML and Java are:

  1. Platform Independent

  2. Security

  3. Scalability

  4. Reliability


The advantages of developing Web application using XML are:

  1. Supports Exchange of data between heterogeneous databases and Systems.

  2. Distributes data processing load to the web browser.

  3. Integrates Java servers with Web browsers.

  4. XML is the natural choice of developing enterprise level web applications using java because of its data portability and platform independence features.

  5. Developers can implement the platform independent features of java to develop applications and exchange application data using XML.


Web services concept:

Web Services tutorial is designed for beginners and professionals providing basic and advanced concepts of web services such as protocols, SOAP, RESTful, java web service implementation, JAX-WS and JAX-RS tutorials and examples.

A Web Service is can be defined by following ways:

  • is a client server application or application component for communication.

  • method of communication between two devices over network.

  • is a software system for interoperable machine to machine communication.

  • is a collection of standards or protocols for exchanging information between two devices or application.

There are three major web service components:


  1. SOAP: SOAP is an acronym for Simple Object Access Protocol.
SOAP is a XML-based protocol for accessing web services.

SOAP is a W3C recommendation for communication between applications.

SOAP is XML based, so it is platform independent and language independent. In other words, it can be used with Java, .Net or PHP language on any platform.

    2. WSDL: WSDL is an acronym for Web Services Description Language.

WSDL is a xml document containing information about web services such as method name, method parameter and how to access it.

WSDL is a part of UDDI. It acts as a interface between web service applications.

WSDL is pronounced as wiz-dull.

    3. UDDI: UDDI is an acronym for Universal Description, Discovery and Integration.

UDDI is a XML based framework for describing, discovering and integrating web services.

UDDI is a directory of web service interfaces described by WSDL, containing information about web services.

UDDI is an XML-based standard for describing, publishing, and finding web services.

  • UDDI stands for Universal Description, Discovery, and Integration.

  • UDDI is a specification for a distributed registry of web services.

  • UDDI is a platform-independent, open framework.

  • UDDI can communicate via SOAP, CORBA, Java RMI Protocol.

  • UDDI uses Web Service Definition Language(WSDL) to describe interfaces to web services.

  • UDDI is seen with SOAP and WSDL as one of the three foundation standards of web services.

  • UDDI is an open industry initiative, enabling businesses to discover each other and define how they interact over the Internet.

Partner Interface Processes (PIPs) are XML based interfaces that enable two trading partners to exchange data. Dozens of PIPs already exist. Some of them are listed here:

  • PIP2A2 : Enables a partner to query another for product information.

  • PIP3A2 : Enables a partner to query the price and availability of specific products.

  • PIP3A4 : Enables a partner to submit an electronic purchase order and receive acknowledgment of the order.

  • PIP3A3 : Enables a partner to transfer the contents of an electronic shopping cart.

  • PIP3B4 : Enables a partner to query the status of a specific shipment.

RESTful web services:

RESTful web services are built to work best on the Web. Representational State Transfer (REST) is an architectural style that specifies constraints, such as the uniform interface, that if applied to a web service induce desirable properties, such as performance, scalability, and modifiability, that enable services to work best on the Web. In the REST architectural style, data and functionality are considered resources and are accessed using Uniform Resource Identifiers (URIs), typically links on the Web. The resources are acted upon by using a set of simple), well-defined operations. The REST architectural style constrains an architecture to a client/server architecture and is designed to use a stateless communication protocol, typically HTTP. In the REST architecture style, clients and servers exchange representations of resources by using a standardized interface and protocol.

The following principles encourage RESTful applications to be simple, lightweight, and fast:

  • Resource identification through URI: A RESTful web service exposes a set of resources that identify the targets of the interaction with its clients. Resources are identified by URIs, which provide a global addressing space for resource and service discovery. See The @Path Annotation and URI Path Templates for more information.

  • Uniform interface: Resources are manipulated using a fixed set of four create, read, update, delete operations: PUT, GET, POST, and DELETE. PUT creates a new resource, which can be then deleted by using DELETE. GET retrieves the current state of a resource in some representation. POST transfers a new state onto a resource. See Responding to HTTP Methods and Requests for more information.

  • Self-descriptive messages: Resources are decoupled from their representation so that their content can be accessed in a variety of formats, such as HTML, XML, plain text, PDF, JPEG, JSON, and others. Metadata about the resource is available and used, for example, to control caching, detect transmission errors, negotiate the appropriate representation format, and perform authentication or access control. See Responding to HTTP Methods and Requests and Using Entity Providers to Map HTTP Response and Request Entity Bodies for more information.

  • Stateful interactions through hyperlinks: Every interaction with a resource is stateless; that is, request messages are self-contained. Stateful interactions are based on the concept of explicit state transfer. Several techniques exist to exchange state, such as URI rewriting, cookies, and hidden form fields. State can be embedded in response messages to point to valid future states of the interaction. See Using Entity Providers to Map HTTP Response and Request Entity Bodies and “Building URIs” in the JAX-RS Overview document for more information.

 

API's:

JAXP:

The Java API for XML Processing (JAXP) is for processing XML data using applications written in the Java programming language.

JAXP leverages the parser standards Simple API for XML Parsing (SAX) and Document Object Model (DOM) so that you can choose to parse your data as a stream of events or to build an object representation of it.

JAXP also supports the Extensible Stylesheet Language Transformations (XSLT) standard, giving you control over the presentation of the data and enabling you to convert the data to other XML documents or to other formats, such as HTML.

JAXP also provides namespace support, allowing you to work with DTDs that might otherwise have naming conflicts. Finally, as of version 1.4, JAXP implements the Streaming API for XML (StAX) standard.

Designed to be flexible, JAXP allows you to use any XML-compliant parser from within your application. It does this with what is called a pluggability layer, which lets you plug in an implementation of the SAX or DOM API.

The pluggability layer also allows you to plug in an XSL processor, letting you control how your XML data is displayed.

SAX:

This lesson focuses on the Simple API for XML (SAX), an event-driven, serial-access mechanism for accessing XML documents.

This protocol is frequently used by servlets and network-oriented programs that need to transmit and receive XML documents, because it is the fastest and least memory-intensive mechanism that is currently available for dealing with XML documents, other than the Streaming API for XML (StAX).

Setting up a program to use SAX requires a bit more work than setting up to use the Document Object Model (DOM). SAX is an event-driven model (you provide the callback methods, and the parser invokes them as it reads the XML data), and that makes it harder to visualize. Finally, you cannot "back up" to an earlier part of the document, or rearrange it, any more than you can back up a serial data stream or rearrange characters you have read from that stream.

For those reasons, developers who are writing a user-oriented application that displays an XML document and possibly modifies it will want to use the DOM mechanism described in Document Object Model.

However, even if you plan to build DOM applications exclusively, there are several important reasons for familiarizing yourself with the SAX model:

  • Same Error Handling: The same kinds of exceptions are generated by the SAX and DOM APIs, so the error handling code is virtually identical.

  • Handling Validation Errors: By default, the specifications require that validation errors be ignored. If you want to throw an exception in the event of a validation error (and you probably do), then you need to understand how SAX error handling works.

  • Converting Existing Data: As you will see in Document Object Model, there is a mechanism you can use to convert an existing data set to XML. However, taking advantage of that mechanism requires an understanding of the SAX model.




Oracle Workflow Training

$
0
0

Oracle Workflow delivers a complete workflow management system that supports business process based integration. Its technology enables modeling, automation, and continuous improvement of business processes, routing information of any type according to user–defined business rules.  Oracle Workflow course teaches you concepts and features of Oracle Workflow. It also covers the benefits of using Oracle Workflow in an e-business environment.

Viewing all 103 articles
Browse latest View live