DOCUMENTATION ON SANDBOX and PERSONALIZATION

DOCUMENTATION ON SANDBOX PERSONALIZATION


Prepared by VAMSI GOVATHOTI

ROLE: ORACLE APPS TECHNICAL CONSULTANT

Contents

A) What is a Sandbox? 2

B) Purpose of Sandboxes 2

C) Key Features 2

D) Why Use Sandboxes? 2

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

9. Creating a validation server script for getting message at script level and error message level 53

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


  1. 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.

  1. 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.

  1. 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.

  1. 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.

  1. 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


  1. 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


https://learnoraclegrc.wordpress.com/wp-content/uploads/2023/02/image-17.png?w=890


  • 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



  1. 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


https://learnoraclegrc.wordpress.com/wp-content/uploads/2023/02/image-25.png?w=1024


  • Click the Profile Icon and select the Edit Pages



  • Click Structure and Select the Search Input Field


https://learnoraclegrc.wordpress.com/wp-content/uploads/2023/02/image-27.png?w=1024


  • Click Edit in the Popup Window


https://learnoraclegrc.wordpress.com/wp-content/uploads/2023/02/image-28.png?w=533


  • 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


  1. ‘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


https://html.scribdassets.com/4p72ke1w8washf9z/images/4-ec36052e3d.jpg


  • 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.


  1. 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.

















  1. Personalization by using application composer

  1. 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.

















  1. 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.


  1. 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.






  1. 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



  1. 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



  1. 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

  1. 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






  1. 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




  1. Groovy script codes used in this sandbox personalization


  1. --------------------code for calling a function in sandbox-------------------------


if (OrgName == 'KSA BUSINESS UNIT')

{

  setAttribute('TestBSUnit_c',OrgName)

}

  

  1. --------------------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


  1. --------------------code for script level message for throwing exception -------------------------------------


if (OrgName == 'KSA BUSINESS UNIT')

{

  throw new oracle.jbo.ValidationException("BU Error at script level")

}


  1. --------------------code for error message level ---------------------------------------


if (OrgName == 'KSA BUSINESS UNIT')

{

  return false

}


Comments

Popular posts from this blog

opaque schema xsd (standard file used in OIC)

SQL,PLSQL interview practice and DSA patterns

QR code Generate From Oracle PLSQL