DOCUMENTATION ON SANDBOX and PERSONALIZATION
DOCUMENTATION ON SANDBOX PERSONALIZATION
Prepared by VAMSI GOVATHOTI
ROLE: ORACLE APPS TECHNICAL CONSULTANT
Contents
1. How to Customize (Enable or Disable) the Fields/Components in the Sandbox 6
2. How to Enable Direct Access from User Interface (UI) to the Desired Destination using an URL 9
3. How to Create “Role Based Access control” to particular Fields / Components 13
4. ‘More Tasks’ Tab to be renamed to 'Create' on Purchase Requisitions page. 18
5. By using Application Composer making field required in sand box 23
6. Personalization by using application composer 27
A) By using Application Composer creating new field in sand box 27
B) Creating of currency field with fixed choice list 32
C) Creating of currency field with dynamic choice list. 36
7. Creating a button in sand box 40
8. Creating a global function for runtime message in sand box 47
A) validation server script for getting message at script level 53
B) validation server script for getting message at message level 56
10. Groovy script codes used in this sandbox personalization 59
What is a Sandbox?
In the context of Oracle Fusion Applications, a sandbox is a specialized, isolated environment that allows users to create, test, and customize configurations without impacting the live production environment. Think of it as a separate playground where you can safely experiment with changes, Personalization’s, or extensions.
Purpose of Sandboxes
Isolation: Changes made within a sandbox are contained and do not affect the main production environment or other sandboxes. This ensures that any customizations or testing conducted in the sandbox remain segregated from the live application.
Safe Testing: Sandboxes provide a risk-free environment to test new configurations, personalization’s, or page layout changes. This prevents potential disruptions or conflicts in the mainline code or the production environment.
Key Features
Customization and Personalization: Sandboxes allow you to perform a range of activities, including personalizations, extensions, and page layout adjustments on Oracle Fusion web pages.
Change Management: Changes made within a sandbox are only visible to users working in that sandbox until they are reviewed, tested, and published. This means other users will not see these changes until you decide to make them live.
Conflict Avoidance: By using sandboxes, you mitigate the risk of conflicts and issues that might arise from direct modifications to the mainline code or other parts of the system.
Why Use Sandboxes?
Segregated Customizations: Sandboxes provide a dedicated space for making customizations, ensuring these changes do not interfere with the mainline application or other users' configurations.
Reduced Risk: Testing and implementing changes in a sandbox helps avoid potential conflicts and errors that could impact the overall application or production environment.
Best Practices: It is recommended to always use sandboxes for any functional setups or customizations within Oracle Fusion Applications. This practice helps maintain the integrity of the production environment and ensures that changes are thoroughly vetted before being applied.
By leveraging sandboxes, you can confidently manage and test customizations in a controlled environment, ensuring a smooth transition from development to production.
Click on Create Sandbox
Name: Enter your sandbox name (Mandatory)
Description: Enter your sandbox description (Optional)
All Tools: Select at least on tool as per your requirement from All Tools
Once you have done with above click on Create and Enter button
We can update the tools also.
Click on the created sandbox.
Press the + symbol to manually add any additional Tools to the Sandbox
In active column u can add required tools.
Enter the sand box.
How to Customize (Enable or Disable) the Fields/Components in the Sandbox
Click Home Button then Go to payables
Click Invoices
Select any invoice
Go To Profile Icon and then Click Edit Pages
Select supplier number for disabling
Click on edit component
Inside the Component Properties click on show component and select override.
Now again click on show component click on expression builder.
Clear the value and write Boolean value false
Test and ok
Field is disabled
if you want to enable the field again do vice versa
How to Enable Direct Access from User Interface (UI) to the Desired Destination using an URL
In this Sequence we are going to create a Group directly on the UI.
Provide Access to the Icon with the help of an URL to Redirect to the Desired Destination (Report File).
Go to Tools and Click Structure
Click Create Dropdown and Select Create Group
Give a Name to the Group and select an Appropriate Icon
Show on Navigator “yes” and Save and Close
As we can see in the Image below, Test Group is Created
Now Go To Create Dropdown again and select Create Page Entry
Here we are Going to create an Icon and Provide Access
Fill in the Name, Select an Appropriate Icon
Select the Group which is Already Created, from the Dropdown.
Select the Link Type as Static URL
In the Destination Field provide the URL which has to be Accessed (here we have given a report file URL as destination for Demo Purpose)
As we can see in the Image below, My Report Icon is Created inside the Test Group
Press the Home Button and Look for the TEST GROUP
Click the TEST GROUP and find the MY REPORT icon within the User Interface
Click on the MY TEST REPORT Icon
\
This is the Destination Report File which we had provided with the Help of an URL
How to Create “Role Based Access control” to particular Fields / Components
In this Sequence we are going to restrict a User from Accessing the Search Input Field in the Directory Menu.
This user is assigned with Order Manager Role & we are creating an Expression for this user on Role Based Access Control.
Go to Me in the UI and Click Directory
Here is the Search Field which we are going to Restrict a User, to Inputting a Value and Searching
Click the Profile Icon and select the Edit Pages
Click Structure and Select the Search Input Field
Click Edit in the Popup Window
Pull up the Structure Task Bar
Click the Settings Icon
From the Component Properties window Scroll Down the ‘Visible’ button
Click Expression Builder
Input the Expression
Validate the Expression that the User who is Assigned with the ‘Order Manager’ Role will be Restricted from Accessing the Search Input Field
Note: Follow the Exact Special Characters used in the Expression
Then click Test to check the validation information and then click OK
Click Apply and then OK
Result :Here we can see that the User with ‘Order Manager’ Role will not be able to Input a Value in the Search Field
‘More Tasks’ Tab to be renamed to 'Create' on Purchase Requisitions page.
Navigation : - Navigator > Procurement > Purchase Requisitions
Select ‘Edit Pages’ from the Settings and Action drop down menu
Click ‘structure’ from the for the edit bar.
Select the section to be updated. In our Case, we selected the ‘More Tasks’ TAB
Click ‘Edit’ on the dialogue box which appears on screen
Go to the bottom bar and click the pencil as shown below
A new window appears and that is where changes are made. We had to change the ‘Text’ so we clicked on the down arrow near ‘Text’ and selected Expression Builder. Other properties can also be changed.
Following window appears
Delete the value and enter ‘Create’ and Click on Test TAB and OK
After changing the value click on Apply then OK.
Changes are done; now click on ‘Close’ to complete the process.
By using Application Composer making field required in sand box
Select application composer in the tools section
Select ERP and SCM Cloud in application
Go to standard objects in that contract and select fields
Fields are used to make customization in the fields level.
Select standard in that enter the required column name like end date and enter
You will find the end date field in result
Initially End Date field in the create contract page is not marked as required (*).
Select the check box as required.
Save and close.
Now you will see the required option to the end date field in the create contract page.
If you want to remove simply uncheck the required box in the field page.
Personalization by using application composer
By using Application Composer creating new field in sand box
We are creating a new field called test business unit in the create contract page by using application composer.
Select the application composer in the tools section.
Select ERP and SCM cloud in the application.
Select the fields in the contract present in the standard.
Select the custom in that Click on the plus (+) symbol you will get a pop up like select field type.
There are lot of options in the field type text, date, number, long text etc.
Select field type is text as for now we add a text field in the contract page.
Give the Display Label as Test BS Unit
Help text is optional for reference only.
Name as TestBSUnit without spaces.
Save and close.
Go to the object tags select pages in the contract.
Select standard layout in the creation page layouts duplicate that layout and rename that to Test Creation Layout.
Save and close
Click on pen symbol in fuse contract create.
Now select the test BS Unit and drag that in the selected fields
Save and close
Now check the create contract page we will see the custom field in that page.
NOTE: We can restrict the end user we cannot store data in the database by using that custom field.
Creating of currency field with fixed choice list
We are going to create a currency field with fixed list of values.
Select contract in that fields.
Select + symbol to add new field.
Select choice field (Fixed).
Click ok.
Enter the display label : Test Currency
Help Text is optional for reference purpose.
Give name as TestCurrency.
Add a lookup Type clicking that + button
Give the Meaning as Currency Test.
Lookup Type as TESTCURRENCY in capital
Give the list of values as per required and give the display sequence number.
Click Save
Created field should be adding in the page layout.
So, select pages in the contract.
Select Test Creation Layout in page layouts.
Select edit pen button in fuse contract create.
Select the Test Currency and drag to the selected fields.
Save and close
Now check the create contract page we will find the fixed list custom field.
Creating of currency field with dynamic choice list.
We will create a new field with dynamic choice list.
Select fields in contract in custom select + button.
Select choice list (Dynamic)
Click ok.
Give display name and help text optional
Give name without spaces
Click next
Select Related object as contract and list selection display value as currency
Click on submit.
Select pages in contract.
Click on Test Creation Layout.
Click on edit.
Select the field of test currency list and drag that into selected fields.
Save and close
Click Done
Now you can see the test currency list with dynamic list of values in create contact page.
Creating a button in sand box
Whatever we select in business unit it should insert in test business unit field when we click button
Actions and link generally for buttons and button related actions.
Click on actions and links and in that select + symbol beside new
Give display label, name and description for the button(optional)
Create method so click on + symbol
Enter function name : COPYBUNAME
In search bar search with Business Unit
Select OrgName And Insert it into the script
Write the groovy script in the script area
For attribute name search Test BS Unit name and select Attribute name and insert
If (Orgname == ‘KSA BUSINESS UNIT’)
{
setAttribute(‘TestBSUnit_c’ ,OrgName)
}
Click on validate and save
You will see the message like this if there are no errors
Click on ok
In method name select created function(COPYBUNAME) and click on save
Select Pages in contract
Select created layout name : Test Creation layout
Click on pen
Select COPY BUSINESS UNIT and drag to opposite fields.
Save and close this button page and click done.
Clicks save.
now you when the Business unit is KSA BUSINESS UNIT then we click copy business unit button the that Business Unit name is pasted in the copy field
Creating a global function for runtime message in sand box
Select Global function in Common setup
Click on new symbol
Give function name
Name: message and type : string
In edit scrip box write groovy script
def msgtext = “Debug :” + now() + “—”+ Message
println(msgtext)now() function is for present time and Message is the parameter
Validate.
If there are any errors in the script it will fire error.
Save and close.
Now We add our global function in actions and links
Click on actions and links.
Select the Copy business unit and click on pen edit symbol to update
Click on edit button
To edit the groovy script for the button
We are going to add global script message for this button
Select functions in that click on global and select TestDebugMsgs (Global function name).
Click on insert.
We will get adf.util.TestDebugmsgs(‘’)
Insert this in the script as shown in the below image
Script :
if (OrgName == ‘KSA BUSINESS UNIT’)
{
adf.util.TestDebugMsgs(‘Row 1’+OrgName)
setAttribute(‘TestBSUnit_c’ , OrgName)
adf.util.TestDebugMsgs(‘Row 2’+OrgName)
}
Click on validate
Click on save and close
We have to enable run time messages so that whenever we click on the button we will get a run time message.
Select run time messages.
Clear the Messages
Check the Enable My Application Script Logging.
So now whenever we click that created test button we will get run time message here
We can see runtime messages after clicking the button
Creating a validation server script for getting message at script level and error message level
Whenever we click on the test button it will trigger an error and shows the error message at script level and at error message level
validation server script for getting message at script level
Select server Scripts in the contract
In validation rules select new symbol to create the object rule.
Give rule name : ErrorMessage
In the rule definition write groovy script for error message
If there are any errors in script it throws error
if OrgName == 'KSA BUSINESS UNIT'
{
throw new oracle.jbo.ValidationException("BU Error at script level")
}
click on validate it throws an error box after if we didn’t gave () parenthesis.
if (OrgName == 'KSA BUSINESS UNIT')
{
throw new oracle.jbo.ValidationException("BU Error at script level")
}
This will throw an exception on script level means whenever we click on button it shows the BU error at script level message.
Click on validate.
Gets script validated successfully click ok.
Save and close
When we click the button in create contact page it will show exception message at script level (BU error at script level)
We will get error at script level
validation server script for getting message at message level
Open server script contract
Select ErrorMessage and click on edit pen button
In the error message section we have to enter a message to display to the user.
Rule name is ErrorMessage
Error message: Bu Validation message at error message section.
Edit the script replace the exception part with return false.
if (OrgName == 'KSA BUSINESS UNIT')
{
return false
}
Click on validate.
Shows the message that script praised successfully.
Click ok.
Save and close
Whenever we click the COPY BUSINESS UNIT button we will get message level error
Groovy script codes used in this sandbox personalization
--------------------code for calling a function in sandbox-------------------------
if (OrgName == 'KSA BUSINESS UNIT')
{
setAttribute('TestBSUnit_c',OrgName)
}
--------------------code for global message in sandbox-------------------------------
def msgtext = "Debug :"+ now() + "--" + Message
println(msgtext)
now() method is for getting the present time.
Message: Parameter in the method
--------------------code for script level message for throwing exception -------------------------------------
if (OrgName == 'KSA BUSINESS UNIT')
{
throw new oracle.jbo.ValidationException("BU Error at script level")
}
--------------------code for error message level ---------------------------------------
if (OrgName == 'KSA BUSINESS UNIT')
{
return false
}
Comments
Post a Comment