Search for existing answers to your product and support questions.
Familiarize yourself with our support site and learn best practices in working with our team.
Manage Service Requests, View and update service requests submitted by you and others in your organization.
Submit a new issue to our technical support team.
Oracle B2C Service insights from our Technical Support team subject matter experts
Browse resources to assist you in launching your implementation and ensure a successful go-live.
Access your OCI account.
Find product documentation for supported versions of B2C and documentation libraries for related service solutions.
You will have the tools to improve your customers' experience when you learn about all the things our products can do.
Find links for API documentation, Custom Processes, Customer Portal, and Agent Browser UI Extensibility Framework.
Explore how accelerators are designed to demonstrate how an integration scenario could be built using the public integration and extension capabilities of the Oracle B2C Service.
Prepare for a successful transition by reviewing upcoming release changes and enhancements.
Explore webinars, events, and feature kits to learn about B2C Service features, functionality, and best practices from the technical experts.
Oracle MyLearn offers a portfolio of free and paid subscription-based learning resources to help you gain valuable skills, accelerate cloud adoption, increase productivity, and transform your business.
Empower your team with the skills to implement, configure, manage, and use your applications with Customer Experience Cloud Training.
Our goal is to facilitate a friendly, supportive environment where members can easily collaborate with each other on solutions and best practices.
Ask and answer questions specific to B2C.
This is an exciting resource intended to help with your Oracle Service Cloud Analytics.
Share product improvement ideas and enhancement requests with Oracle Development, while collaborating with other Oracle customers and partners.
Update your phone number, email notification preferences, and severity 1 and severity 2 contact preferences.
View the contact managers within your organization.
Find contact information of the Technical Account Manager (TAM) and Client Success Manager (CSM) for your organization.
Environment:
Agent Browser UI (BUI) Extensibility Framework
Issue:
BUI Extensibility Framework documentation does contain some information on how to evaluate memory usage here. Still, I am left to use general information on managing memory in Javascript to determine if my BUI extensions are coded appropriately - as I am finding no recommendation on best-practices etc. for managing memory in BUI extensions.
I have referred to this reference that looks to be knowledgeable. The reference contains this information:
"Frameworks and libraries such as jQuery do remove listeners before disposing of a node (when using their specific APIs for that). This is handled internally by the libraries and makes sure that no leaks are produced, even when run under problematic browsers such as the old Internet Explorer."
So the question is - does the BUI extension framework handle the disposing of event listeners and take care of other potential problems within - or should developers be concerned with any specific details around Javascript memory management when developing BUI extensions?
Further, I am seeing some code in an B2C Service accelerator that includes BUI extensions as part of the demonstrated/provided functionality. Please see code in attached Sample_CTI_Extensions.zip - specifically at this file:
Sample_CTI_Extensions\MSE_CTI_Workshop\toolbar\toolbar.html
Is it a best practice to include the memory management code within this section of that file?
Resolution:
There are various kinds of extensions in browser UI:
1. Console 2. Workspace 3. Analytics 4. Library
All the extension except library will create a separate iframe. The library alone will be loaded as part of any other extension's iframe. Hence, the lifespan of these extensions is the period over which these iframes are kept alive.
Console and Analytics extensions load during application login and will not be removed until one log out. Hence, while creating console and analytics extension one should be careful on the number of objects being referred from these extensions. However, in case of workspace extensions, the extension gets created only if someone opens the workspace embedded with the extension and will be removed once the workspace is closed. The framework will remove all the listeners added here automatically, along with the extent of other memory utilized by the extension, as long as there is not a console/analytics (or other extension still in use/memory) holding a reference to the extension at the time the object is being disposed of/destroyed.
In case of extensions, every object provided has a dispose method and once called it will free up / unsubscribe all the memory/subscriptions related to the objects and its children if any. Therefore, its good practice to call dispose of once the need for the extension object is no more required. This guideline even applies to accelerator code that you have taken as an example. The place where the memory cleanup needs to be done changes based on what the extension is intending to perform. In the CTI simulator, record closing is indeed a right place where we can dispose the workspaceRecord object. However, the basic guidelines are to call dispose on the object as soon as the object is no more required.