Beejartha

Categories
Javascript

JavaScript Essential Concepts : Variables

Mastering JavaScript’s Building Blocks: Variables
Variables allow programmers to reuse and repurpose data with ease. User can update variables with new values as dictated by program’s logic, fostering dynamic and responsive experiences. Users can assign meaningful names to variables, creating self-documenting code that elucidates its intent. This allows developer to enhance code comprehension and maintainability for themselves and fellow developers.

Developer can define variables 3 ways in Java Script :
var – Declares variables that are either confined to functions scope (accessible only within its boundaries) or they can become part of global scope reachable anywhere in the code. Variables of ‘var’ type aren’t restricted to specific data types. They can accommodate numbers, strings, booleans, objects, and more, adapting fluidly as their values change.JavaScript “hoists” var declarations to the top of their scope, making variables usable before their actual declaration line.However, assignment still occurs at the defined line, potentially leading to unexpected behavior if accessed prematurely.

let – Declares variables that can be reassigned within their scope, embracing dynamic change. Offers block-level scoping, limiting accessibility to the code block where they’re declared. Perfect for values that evolve throughout code execution, such as loop counters, user input, or calculated results.

const – Declares variables whose values cannot be reassigned after initial assignment. This variable type ensures immutability, preventing accidental changes and promoting code predictability. Ideal for values that should remain fixed, such as mathematical constants, configuration settings, or API endpoints.

Shared Characteristics and Best Practices :

  • Both const and let exhibit block-level scoping, providing clearer boundaries and reducing potential conflicts.
  • Neither are hoisted, ensuring variables are only accessible after their declaration line.
  • Modern JavaScript development generally favors const by default for its immutability and code clarity.
  • Use let strategically when reassignment is truly necessary.

Key Takeaways :

  • Prioritize const for values that should remain constant, fostering predictability and preventing unintended modifications.
  • Embrace let for values that require flexibility and change, ensuring code adaptability.
  • By understanding the nuances of const and let, you’ll craft cleaner, more maintainable, and predictable JavaScript code.

Variable Naming conventions :

When developers create a variable, they need to write the name of the variable using camelCase (the first word is lowercase, and all following words are uppercase). Also developers need to try to use a variable name that accurately, but succinctly describes what the data is about.

consttotalSalePrice = 200.00; // uses camelCase if the variable name is multiple words
constsalary = 10000.00; // uses lowercase if the variable name is one word

Dive Deeper into Strings: Unlock Individual Characters with Indexing!

JavaScript strings hold surprising power – you can pinpoint specific characters using their index (starting at 0). Simply append the index in square brackets after the string, like stringValue[1]. This opens doors to creative manipulations – think initials from usernames, URL tweaks, or custom validations. Unleash the full potential of strings, one character at a time!
Example:

“Beautiful” [0];

Returns: “B”

Got Quotes? Master Escaping in JavaScript Strings!

Ever wanted to say “quote this!” in your JavaScript code? Turns out, strings can get jealous of their own punctuation! To avoid confusion, we need to “escape” special characters like quotes using the trusty backslash ().

Imagine a quote inside a quote like a nesting doll. Without escaping, JavaScript gets confused about where the string ends. But a quick backslash before the quote tells it: “Hey, this one’s just visiting, let them both stay!” ✨

So, for quotes within quotes, simply add a backslash before them: “He said, \”I’m here!\””. This applies to other special characters like newlines (\n) and tabs (\t) too.

Mastering escaping unlocks a world of possibilities in your JavaScript strings. Build dynamic messages, generate complex HTML, and craft creative expressions – all with the power of the backslash!

For example see below:

“I yelled, \”this is amazing.\””

Returns: I yelled, “this is amazing.”

Beyond Quotes: The Sneaky Characters You Need to Escape in JavaScript

Quotes got you covered? Think again! While they’re escape masters, there’s a whole gang of sneaky characters in JavaScript that need the same VIP treatment. Don’t worry, you don’t need to memorize their secret handshake. Here’s a cheat sheet for the most common escape artists:

  • Double Quotes: ” – Use \” to make them play nice inside their stringy home.
  • Single Quotes: ‘ – Backslash \’ and they’ll happily share the spotlight.
  • Backslash: \ – Escaping itself! Use \\ to avoid double-crossing your code.
  • Newlines: \n – Want a line break? \n tells JavaScript it’s intentional.
  • Tabs: \t – Prefer some space? \t keeps your code tidy.

Remember, escaping these characters ensures smooth sailing in your JavaScript strings. No more confusion, just clear communication and happy code.

String Showdown: Conquering Comparisons in JavaScript

Remember those epic battles between numbers, using == and != to declare victory? JavaScript strings get in on the action too! Comparing strings unlocks a world of possibilities, from filtering data to validating user input.

Let’s throw “Yes” and “yes” into the ring. Head-to-head, they might look like twins. But with the strict === operator, “Yes” claims the win, because case matters! This is where case-insensitive comparisons with toLowerCase() come in, making “yes” a worthy contender.

String comparisons go beyond simple equality. You can use < and > to order words alphabetically, or includes to check if one string hides within another. It’s like having a toolbox full of detective skills for your JavaScript code!

So, next time you’re wrangling words, remember the power of comparisons. They’ll help you find matches, sort information, and build logic that makes your JavaScript sing. Ready to unleash your inner string sleuth?

For example see below comparison :

“Yes”==“yes”

Returns: false

In JavaScript, strings are compared character by character, using their ASCII values. Think of it like a letter ranking system, where “A” reigns supreme at 65 and its lowercase counterpart bows at 97. This hierarchy means uppercase always wins the alphabetical duel.

So, why the number gap? It’s a historical quirk from the ASCII code table. Uppercase letters simply come before lowercase in the sequence. This order dictates how JavaScript compares strings, one character at a time.

Remember, the range for uppercase letters ([A-Z]) is [65-90], while lowercase ([a-z]) occupies [97-122]. So, when “Apple” and “apple” clash, “A” throws its 65-point punch first, knocking out “a” (97) and securing victory for the entire string.

Want to tame case sensitivity? Tools like toLowerCase() are your allies. They even the playing field by converting all characters to lowercase, making comparisons fairer and more predictable.

Understanding this hidden world of ASCII values empowers you to write robust and precise string comparisons in your JavaScript code. So, next time you face a case-sensitive conundrum, remember – it’s all about the numbers behind the letters!

True or False? Demystifying Booleans in JavaScript

Ever wondered how your code decides between “yes” and “no”? That’s where booleans come in, the tiny heroes behind every “if” and “else” statement!

A boolean variable is like a light switch for your code. It can be either true (light on) or false (light off), representing two possible outcomes. This is especially crucial when evaluating conditions, like comparing numbers or checking if something exists.

Think of a comparison as a question. “Is 5 greater than 3?” The answer, “true,” becomes a shiny new boolean variable. And guess what? Numbers get involved too! In most cases, true secretly hides the value 1, while false whispers 0. It’s like a code language only booleans understand.

But booleans are more than just binary buddies. They control the flow of your program, letting you build branching paths based on their true or false nature. Imagine a maze – booleans act as the checkpoints, guiding your code down the right path depending on the choices it makes.

So, next time you see an “if” statement, remember the mighty booleans behind it. They’re the silent guardians of logic, ensuring your code makes the right decisions, one true or false at a time.

For example see below:

constx = 50;
consty = 100;
if (x>y) { // The outcome of x>y will be a boolean
console.log("Variable `x` has higher value"); // if x>y is true
} else {
console.log("Variable `y` has higher value"); // if x>y is false
}

Null vs. Undefined: The Great JavaScript Mystery Solved!

Ever stumbled upon the cryptic terms “null” and “undefined” in your JavaScript code? You’re not alone! These two concepts, though similar, can leave even seasoned developers scratching their heads. But fear not, intrepid coders, for I’m here to unveil the mystery!

Think of null as the “empty box” of JavaScript. It’s a deliberate placeholder, signifying the intentional absence of any value. You might assign null to a variable when you haven’t figured out its purpose yet, or to explicitly clear its contents. It’s like saying, “Hey, there’s nothing here right now, but watch this space!”

On the other hand, undefined whispers, “Something’s missing!” It refers to a variable that hasn’t been assigned any value at all. Imagine a forgotten box – you declared its existence, but never filled it with anything. Undefined is like a placeholder by accident, a variable waiting to be rescued from the void.

So, the key difference lies in intention. Null is the chosen emptiness, the “nothing to see here” sign, while undefined is the unintentional void, the “oops, I forgot” flag.

Remember, understanding these subtle nuances is crucial for writing clean and predictable JavaScript code. No more chasing phantom values or wrestling with unexpected outcomes! So, the next time you encounter null or undefined, channel your inner detective and remember – it’s all about the intention behind the emptiness!

Meet NaN: JavaScript’s Enigmatic Number That’s Not a Number

In the realm of JavaScript numbers, there’s a mysterious resident known as NaN. It stands for “Not-A-Number,” and it’s a bit of a rebel. It looks like a number, acts like a variable, but refuses to play by the rules of arithmetic.

Think of NaN as the code equivalent of “Does not compute!” It often appears when a math calculation goes haywire, resulting in something that simply doesn’t fit the definition of a valid number.

Here are a few common scenarios where NaN might crash the party:

  • Dividing zero by zero (the ultimate mathematical paradox)
  • Trying to extract a square root from a negative number (imagine a square with a negative side length…yikes)
  • Converting non-numeric values to numbers (like asking a poem for its favorite digit)

When NaN appears, it’s a signal that something went awry in your code’s calculations. It’s like a flashing warning sign, urging you to review your logic and ensure you’re working with valid numbers.

Don’t let NaN intimidate you, though! JavaScript provides tools like the isNaN() function to help you identify and handle these numerical rebels gracefully. By understanding NaN, you’ll write more robust and error-proof code, avoiding those awkward “Does not compute!” moments.

So, next time you see NaN pop up, don’t panic. It’s just JavaScript’s way of saying, “Hey, something’s not quite right with these numbers. Let’s take a closer look.”

Categories
Javascript

JavaScript Essential Concepts: Data Types

  • Mastering JavaScript’s Building Blocks: Primitive Data Types –

In the realm of JavaScript development, understanding data types is crucial for crafting dynamic and robust applications. Primitive data types serve as the fundamental building blocks that enable you to represent and manipulate various kinds of information. In this blog post, we’ll delve into the core primitive data types that JavaScript offers, empowering you to effectively manage data within your projects.

  • Essential Data Types for JavaScript Mastery :

– Numbers: Harness the power of numerical values, whether for calculations, representing quantities, or tracking measurements.

– Strings: Master the art of text manipulation with strings, enabling you to store and work with words, phrases, and even entire documents.

– Booleans: Make informed decisions within your code using booleans, which represent true or false states, essential for conditional logic and control flow.

– Undefined: Explore the nuances of undefined values, which signal the absence of a defined value for a variable, ensuring clarity and preventing errors.

– Null: Discover the deliberate absence of value with null, a distinct data type that represents nothingness, often used to indicate intentional emptiness.

  • Unlocking Manipulation Mastery :

Throughout this lesson, we’ll delve into practical techniques for defining and manipulating each of these primitive data types. You’ll gain the knowledge and skills to create variables, perform operations, and construct meaningful expressions within your JavaScript code.

Stay tuned as we embark on this journey together, demystifying the world of JavaScript’s primitive data types and unlocking their full potential!

Numbers :

Working with numerical values in JavaScript is a breeze, thanks to the versatile Number data type. It effortlessly accommodates a wide range of numerical representations, including both positive and negative integers as well as decimals. Interacting with numbers in the console is straightforward as well—simply enter a numerical value, and JavaScript will promptly echo it back.

Unleashing the Power of Numbers in JavaScript: Arithmetic operations

Manipulating numbers in JavaScript isn’t just about storing raw values; it’s about unlocking their dynamic potential. And guess what? Performing calculations in this language is remarkably straightforward, almost like wielding a digital calculator!

Express Yourself Mathematically:

Imagine a blank canvas – that’s your JavaScript code. Just as you’d write an equation on a calculator, you can directly express your desired computation within your code. Familiar operators like +, -, *, and / become your paintbrushes, allowing you to add, subtract, multiply, and divide with ease.

For example, let’s calculate the area of a rectangle with a width of 10 and a height of 15:
const width = 10;
const height = 15;
const area = width * height;
console.log(`Area of the rectangle: ${area}`);

Returns :

Area of the rectangle: 150

Above code defines the width and height as variables, then multiplies them to obtain the area and stores it in another variable. Finally, it displays the area on the console using string interpolation. Simple, right?

Beyond the Basics :

JavaScript offers a rich toolkit for exploring the world of numbers. You can delve into exponents, modulo operations for remainders, and even perform complex mathematical functions like sine and cosine with built-in methods.

Remember, while the syntax might be familiar, JavaScript empowers you to manipulate numbers in dynamic ways within your programs. So go ahead, experiment, and unleash the mathematical magic within your code!

Let’s Practice :

Here are some fun challenges to test your newfound powers:

1. Calculate the average of three numbers entered by the user.
2. Write a program that converts Celsius to Fahrenheit temperatures.
3. Use a loop to calculate the sum of all natural numbers up to a given limit.

Embrace the possibilities, and remember – the world of numbers in JavaScript is yours to explore!

Arithmetic Operators in JavaScript:

NAME OPERATOR MEANING
Addition a + b Adds a and b
Subtraction a – b Subtracts b from a
Multiplication a * b Multiplies a and b
Division a / b Divides a by b
Modulo a % b Returns the remainder of a / b
Exponent a ** b Raises a to the power of b

The Modulo Operator :

Imagine a world where division always gives you neat, whole numbers. No messy leftovers! While that might simplify things initially, it would also strip away a powerful tool: the modulo operator.Think of the modulo operator (represented by %) as a resourceful chef who can repurpose those leftover “scraps” from division. Instead of discarding them, the modulo operator extracts them as the remainder, opening up a treasure trove of possibilities in programming.

Here is an example worth your review. Imagine designing a digital clock that displays hours, minutes, and seconds. We can use modulo to extract the desired units from larger time values:

  • hours = minutes // 60 (gives the number of complete hours)
  • minutes = minutes % 60 (gives the remaining minutes within an hour)
  • seconds = seconds % 60 (gives the remaining seconds within a minute)

By combining these simple operations, we can build a clock that accurately tracks and displays time, all thanks to the power of modulo!

Comparing numbers :

Programming languages, mirroring mathematics, offer comparison operators to establish inequalities and equalities between numerical values.Relational operators (>, <, >=, <=, ==, !=) form the bedrock of numerical comparisons in code.

Arithmetic Operators in JavaScript :

OPERATOR MEANING
< Less than
> Greater than
<= Less than or Equal to
>= Greater than or Equal to
>== Equal to
>!= Not Equal to

Strings :

JavaScript strings offer a remarkable degree of flexibility, empowering developers to create text sequences that encompass a diverse array of characters. Strings are a collection of characters enclosed inside double or single quotes. You can use strings to represent data like sentences, names, addresses, and more.This comprehensive nature extends beyond traditional letters and numbers, encompassing even emojis for engaging and expressive communication.

Key Points:

  • Unlimited Potential: Strings can be constructed using virtually any combination of characters, based on content needs.
  • Creative Freedom: Embrace the unlimited possibilities of string composition to craft engaging user experiences and deliver content that resonates with end users.

In JavaScript strings can be added together, this is called Concatenating.

For example: “Hello,”+” Sunny Florida”returns “Hello, Sunny Florida” on the console.

Categories
Javascript

Unleash the Power of JavaScript: From Basics to Project

Welcome to a journey where we’ll unlock the true potential of JavaScript, brick by digital brick! We’ll embark on a learning adventure, starting with the fundamental building blocks and culminating in a functioning project powered solely by JavaScript’s awesome capabilities.

JavaScript is a versatile and essential programming language that is primarily used to create dynamic content on websites. As a client-side scripting language, it runs in web browsers, enabling developers to enhance user interfaces and create interactive web pages. JavaScript plays a crucial role in front-end development, allowing for the manipulation of HTML and CSS elements, handling user input, and facilitating asynchronous communication with servers. Its ubiquity in modern web development makes it a foundational skill for programmers. With JavaScript, developers can build responsive and engaging web applications, ranging from simple interactive forms to complex single-page applications (SPAs). As a key component of the web development stack, JavaScript is continuously evolving, with the introduction of new features and frameworks, making it an exciting language for both beginners and experienced developers alike

Key facets of JavaScript’s impact on web development include:

  • Dynamic Interactions: JavaScript empowers websites to respond seamlessly to user actions, crafting experiences that transcend static content. Elements can gracefully transform and update without full page reloads, fostering a sense of responsiveness and engagement.
  • Elevating User Experience: JavaScript breathes life into elements such as interactive forms, captivating animations, and seamless visual effects. It facilitates the creation of intuitive interfaces that delight users with their visual appeal and effortless navigation.
  • Powering Robust Web Applications: JavaScript’s capabilities extend far beyond simple animations. It serves as the bedrock for constructing intricate web applications, spanning online games, social networks, and productivity tools that redefine the boundaries of web-based experiences.
  • Mastering Both Client and Server Sides: JavaScript excels as a client-side language, executing within web browsers to orchestrate interactions with the user’s device. Yet, it also ventures into server-side development through technologies like Node.js, enabling server-side scripting and application construction.
  • JavaScript’s pervasiveness and versatility render it an essential language for those seeking to navigate the ever-evolving landscape of web development. Its mastery unlocks the potential to craft interactive, dynamic experiences that captivate users and propel web innovation forward.

No prior knowledge required, just a curious mind and a willingness to explore. Along the way, we’ll conquer these essential coding territories:

  • Data Types & Variables: Mastering the language’s vocabulary and storage units.
  • Conditionals: Building logic gates for your code, making decisions like a pro.
  • Loops: Automating repetitive tasks, letting the computer do the heavy lifting.
  • Functions: Encapsulating code for reusability and organization.
  • Arrays: Storing and managing ordered collections of data efficiently.
  • Objects: Bringing your code to life with dynamic structures and properties.

Finally, we’ll culminate our learning in a real-world project, putting all these fundamentals to work in a captivating and practical application.

Get ready to witness the power of JavaScript unfold, from its humble beginnings to its awe-inspiring potential. Are you ready to code your way to success? Let’s begin!

Categories
Oracle APEX

Oracle Apex Sandbox Creation

Used these links to create base resources on Cloud Tenancy:
https://docs.oracle.com/en-us/iaas/Content/GSG/Concepts/settinguptenancy.htm
https://docs.oracle.com/en-us/iaas/Content/GSG/Tasks/addingusers.htm#Create

Login to – https://www.oracle.com/cloud/sign-in.html
Cloud Account Name:
User name:<XXXXXXX@email.com>
Password:

Create a new Compartment:
Main Navigation> Identity & Security> Identity> Compartment

Create Compartment with below details:
Name: APEX_SANDBOX
Description: Sandbox to try all APEX Proof Of Concepts
Parent Compartment: abc

Create a Sandbox Group: Main Navigation> Identity & Security> Identity> Groups
Name: APEX_SANDBOX_GROUP
Description: Sandbox Group to try all APEX Proof Of Concepts

Below is screen after group is created:

Create a new User: Main Navigation> Identity & Security> Identity> Users> Create user <XXXXXXXXXX) (email:XXX@email.com) Create a new Policy: Main Navigation> Identity & Security> Identity> Policies> Create Policy
Name: APEX_SANDBOX_POLICY
Description: Sandbox Policy to try all APEX Proof Of Concepts
Parent Compartment: APEX_SANDBOX

Add User to a Group:

Categories
Oracle APEX

Oracle Apex Setup and Administration

Login to cloud tenancy>Quickstarts> Application Development:

You will be directed to screen below and click ‘Continue’

Compartment: APEX_SANDBOX
Password:

Below is the screen after deployment is completed:

Click on Launch APEX to setup workspace and user accounts: Use the ADMIN password created earlier

After logging in create a work space with new schema for the first time:
Workspace Name:ABC_WS
Workspace Username: abcd_dev
Workspace Password:

Below is the screen after the workspace is created:

Logout as admin and login back directly to the workspace as its user with below details:
Workspace Name:ABC_WS
Workspace Username: abcd_dev
Workspace Password:

After logging in import,any sample apps from https://oracle.github.io/apex/ to create new application with below details:

Create a new application using the ‘New Application’ choice shown below:

Categories
Oracle Fusion Cloud

Oracle Fusion Cloud User Creation

NOTE: This article assumes that user is new to Oracle Cloud ERP and is in the process of learning with examples.

Login to instance: https://fa-euth-dev25-saasfademo1.ds-fa.oraclepdemos.com/
Use the current admin username: and password: <**********>

Go to Tools> Security Console> Users> Add User and fill in the details as below:

How to Add User

Instance: https://fa-euth-dev25-saasfademo1.ds-fa.oraclepdemos.com/
username: TL25AJ
password: <**********>

Click on Save and Close and open this user in new window. Initially there are not much roles associated to the user so you need to add one more ABSTRACT role ‘Employee’ as below:

Add ‘Application Implementation and Consultant’ to get couple of generic applications access
Add ‘IT Security Manager’ role to get access for security console:

Adding above 3 roles to user account will give complete access to oracle fusion application access. Since ‘Security Console’ role access is like ‘System Administrator’ access from R12, you can add any other role to user using this role.

Adding roles to user account

NOTE: Always add roles that start with ORA_XXX_XXX_JOB or ORA_XXX_XXX_DUTY for assigning seeded oracle roles

Once the above roles are added login to cloud fusion instance again as TL25AJ user, you should see new privileges (responsibilities/menus/functions per R12) added to user. They will be visible in ‘Springboard’ view.

The same features can also be viewed in ‘Navigator’ screen (hamburger icon on top left icon)

Here are few important job (responsibility) roles that users need:

Accounts Payable Manager
Accounts Receivable Manager
Human Resource Analyst
Human Capital Management Integration Specialist This job role will be used for inbound and outbound integrations
Integration Specialist This job role will give access to all web services and REST APIs when working with OIC
Order Administrator For sales orders related maintenance
Procurement Manager
Supplier Administrator

Below are all the roles added to TL25AJ user account:

Logout of application and login to see new job roles associated to user. Sometimes synchronization between LDAP server and Oracle Fusion server takes time (information has to go to LDAP and then changes should be communicated back to Fusion Cloud instance).

Categories
Oracle Fusion Cloud

Oracle Fusion Cloud Role Creation and Assignment

All Oracle Fusion applications information is available in Oracle Enterprise Repository for Oracle Fusion Applications – https://fusionappsoer.oracle.com/
After logging to this site click on Cloud Applications link as shown below:

System will take you to below page, then click on ‘Financials’ link to get all details:

In order to understand more about Roles and Users click on ‘Secure’ link on left hand side menu as shown below, keep drilling till you reach the Job Role you like and identify the Duty, Privilege roles etc. associated to this issue.

 

 

 

Categories
Oracle Integrated SOA Gateway

How to Build Oracle SOA Web Services for Oracle E-Business Suite for Free?

Building on top of Oracle Fusion Middleware and service-oriented architecture (SOA) technology, Oracle E-Business Suite Integrated SOA Gateway (ISG) is a complete set of service infrastructure to provide, consume, and administer Oracle E-Business Suite web services.

With service enablement feature, integration interfaces published in the Oracle Integration Repository can be transformed into SOAP and REST based web services.

Use Case – Our client currently has an Oracle E-Business Suite application instance which is R12.1.3+ level along with an in house credit card payment processing system. Ideally client needs to implement Oracle Payments and Oracle iReceivables modules to process credit card payments, instead we applied Oracle SOA ISG add on patches to existing Oracle E-Business Suite instance and wrote custom pl/sql programs and deployed these as web services in SOA ISG repository as REST web services. These web services are consumed by 3rd party applications for querying invoices, creation of receipts, and application of receipts to specific invoices, reversal of applied receipts and host of other functionalities.

In current Oracle EBS system, invoices generated for customers belonging to various internal applications within the client network, accepts only payments by checks since payment by credit cards has not been configured. Existing E-Business Suite processes millions of dollars’ worth financial data for client and any changes to this system have to be thoroughly vetted and then implemented. Existing E-Business Suite instance has to integrate with the custom credit card payment process system using in built features of Oracle Integrated SOA Gateway (ISG) and record payments, inquire outstanding balances, process reversals etc. in real time etc.

Here are some major features that can be achieved from  this project (from Oracle ISG):

  1. Display all Oracle E-Business Suite integration interface definitions through Oracle Integration Repository
  2. Support custom integration interfaces from Oracle Integration Repository
  3. Provide service enablement capability (REST services) for seeded and custom integration interfaces within Oracle E-Business Suite
  4. Use the Integration Repository user interface to perform design-time activities such as generate and deploy Oracle E-Business Suite Web services
  5. Support synchronous interaction pattern for REST-based Web services
  6. Support multiple authentication types for inbound service requests in securing Web service content
  7. Enforce function security and role-based access control security to allow only authorized users to execute administrative functions
  8. Provide centralized, user-friendly user interface for logging configuration
  9. Audit and monitor Oracle E-Business Suite service operations from native SOA Monitor

Below is the SOA ISG Architecture:

Categories
Oracle Fusion Cloud

Oracle Fusion Payables Role Creation

NOTE: This article assumes that user is new to Oracle Cloud ERP and is in the process of learning with examples.

Login to instance: https://fa-euth-dev25-saasfademo1.ds-fa.oraclepdemos.com/
Use the current admin username: and password: <**********>

EXERCISE: Create a custom Payables Application roles that will create or view invoices only and assign it to TL25AJ user
SOLUTION
STEP1 – Go to Fusion cloud Security Console> Search for TL25AJ user > Edit user> Remove ‘Accounts Payable Manager’ job role since this already has the create or view invoices only privilege role

STEP2 – Go to Security Console> Roles> Open any role ex: Integration Specialist> Drop down arrow> choose ‘Simulate Navigator’>

System will open the Simulate Navigator like below:

Search for ‘Payables’ section> click on ‘Invoices’> click on ‘View Privileges Required for Menu’ and add privileges next to task names ‘Create Invoice’ and ‘Manage Invoices’ (and also ‘Invoice Workbench’ since all 3 tasks are linked to same privilege)

STEP3 – Go to Security Console> Roles> Create Role> create the role with below details> Click Next button
Role Name:TL25AJ Custom Payables Role
Role Code:TL25AJ_CUSTOM_PAYABLES_ROLE
Role Category: Common – Job Roles (NOTE: This could be specific to any specific module like Finance, SCM or HCM also)
Description: This role is used to provide access only for creation and view of payables invoices

In step 2 click on ‘Add Function Security Policy’ choose oracle seeded privilege ‘Manage Payables Invoices Activities’

Add user TL25AJ user to this newly created job role with specific privileges

Below is the summary of new role creation> Save and Close

In order for making above changes effective, we have to run 3 ESS jobs. These will apply custom role changes to user
a) Send Pending LDAP Requests – Manages requests to create or update users, roles and role grants in LDAP.
b) Retrieve Latest LDAP Changes – Synchronizes users, roles, and role grants with definitions in LDAP.
c) Import User and Role Application Security Data

In order to run the jobs go to Tools> Scheduled Processes> Schedule New Process>No need to submit any parameter values> click on ‘Submit’

Similarly submit ‘Retrieve Latest LDAP Changes’ request
Similarly submit ‘Import User and Role Application Security Data’ request

Another option is to click on top right corner on user logo>Settings and Actions> Administration> Setup and Maintenance> Choose ‘Run User and Roles Synchronization Process’ to mimic all the 3 ESS jobs submitted above

Logout of TL25AJ user and log back in > Payables>You will see there is only one privilege to view ‘Invoices’

Similarly you can create a new JOB role by copying a standard JOB role and in that remove any unwanted PRIVILEGE (Function Security) and DUTY (Role Hierarchy) roles and save JOB role name with client name prefix and CUSTOM tag at end.

ASSIGNABLE – Any custom role by default will not be assignable. This means this role cannot be delegated to other users until the checkbox is chosen

Auto-Provisioned roles are roles that are assigned to user based on business unit and certain conditions. Job roles are assigned to this Auto-Provision rule and users who satisfy the rule conditions are automatically assigned the job roles tied to this rule.