The world of software engineering is complex and massive, and I hope I can help a few people support their users in a more effective manner, relative to the areas that I work with!
Search This Blog
Sunday, April 21, 2024
Keeping Track of Redwood Enabled Pages
Saturday, April 20, 2024
Oracle AI Documentation and Information
Everyone knows that AI and ML are the trending topics, and Oracle is certainly investing heavily relative to their own AI strategy.
The below links to information are great resources relative to AI documentation and information that Oracle has made available, and should definitely be explored for anyone interested in seeing what Oracle has to offer in this space!
1.
AI Overview - OCI Generative AI
service provides customizable large language models (LLMs) that cover a wide
range of use cases for text generation.
https://docs.oracle.com/en-us/iaas/Content/generative-ai/overview.htm#overview
2.
Concepts for Generative AI - concepts and
terms related to the OCI Generative AI service
https://docs.oracle.com/en-us/iaas/Content/generative-ai/concepts.htm
3.
PII Data with AI – How to safeguard the
corporate jewels and sensitive customer data when using AI
4.
Oracle AI GitHub Repository - Great examples of LLM’s and AI services with
step by step code examples with OCI AI services
https://github.com/oracle-samples/oci-data-science-ai-samples/
5.
Live Labs – 40 Hands on Labs for AI
services and related services. This is a great source for any Oracle Technology
or product https://apexapps.oracle.com/pls/apex/dbpm/r/livelabs/livelabs-workshop-cards?session=108343633199478
6.
Oracle AI and Data Science YouTube Channel
–
https://www.youtube.com/playlist?list=PLKCk3OyNwIzv6CWMhvqSB_8MLJIZdO80L
7.
OCI Data Science Landing Pad – starting
point for setting up a OCI tenancy using the Data Science Service. Step by Step for setting up service, creating
models, and submitting jobs
https://docs.oracle.com/en-us/iaas/data-science/using/home.htm
8.
Embedded AI and ML capabilities in Oracle
Analytics -
9.
Oracle Analytics Cloud and AI for Business
Users –
https://www.oracle.com/business-analytics/analytics-platform/capabilities/ai-ml/
10. Intro
to Select AI in Autonomous DB -
11. Select
AI - Use Select AI to Generate SQL
from Natural Language Prompts
12. Machine
Learning Blog Page – This Blog Homepage is focused on AutoML generating
code for SQL, Python, and R
https://blogs.oracle.com/machinelearning/
13. Machine
Learning Documentation for SQL, Pyton, R, Spark
https://docs.oracle.com/en/database/oracle/machine-learning/index.html
14. Machine
Learning Technical Replays and Office Hours
https://asktom.oracle.com/ords/r/tech/catalog/series-landing-page?p5_oh_id=6801#sessions
15. LiveLabs
Hands on training for Machine learning
https://apexapps.oracle.com/pls/apex/f?p=133:100:8251167255223::::SEARCH:machine%20learning
Oracle Rest Dataservices (ORDS) - An Introduction, Use Cases and Examples
Oracle Rest Dataservices (ORDS) is truly an underrated feature of the Oracle Database, and now with it being an embedded feature in the Cloud Autonomous Databases, it's truly a feature that is a MUST!
Click on the images to zoom in!
So what? How is it useful? Well, here is a use case where Oracle Integration Cloud is interfacing with Visual Builder to push and pull data from the VBCS Business Objects (BO's) using the REST API layer on the BO's. This is a real use case that many Oracle clients have, specially those that implemented OIC and VBCS back in the Gen 1 days, and using the REST support at the BO layer was the best approach to integrate with VBCS.
In the above we can see that the individual calls to update BO attributes can take a long time, because OIC is iterating through a lot of data, making decisions and making updates. There's also plenty of opportunities for disruption during the API chains, and retriggering is far too complex.
Let us know observe the same scenario, but utilizing ORDS instead:
As noted above, this is far simpler, performs better, less failure points, easier to maintain and support, this is the power of ORDS!
It is a perfect match for VBCS because visual builder wants to speak REST, and ORDS provides an excellent opportunity for that to happen while also taking advantage of the power of the stored procedures to manipulate the BO's at the database level without hitting the VBCS middle tier and relying on complex API interactions.
Below are some additional use cases:
To expand further on the above:
VBCS calls a logging/audit stored procedure exposed as REST via ORDS, to log exceptions being raised in the action chains in VBCS (blocks of code), because right now we have to have user sessions and capture the problem real time via dev tools, unless the message is being handled and shown to the user on the screen, and a lot of them are not, so this is a great way to be proactive and see trends of errors and warnings from user activity.
Many are in the process of replacing BIP reports being used as custom API’s and called from VBCS (which is a common pattern that many have used), by instead utilizing ERP/HCM API’s where feasible, but there's always cases where we will still need to use BIP in this manner, because API support doesn't have the columns or filters required, or the API may just not exist, as an example.
My recommendation here is to instead schedule the BIP extracts and load the data to the VBCS ATP (if you have your own tenant database for VBCS, which you should), then create stored procedures to retrieve it from VBCS via REST, and that way you do not hammer ERP/HCM via the BIP layer, and just hit it once when the scheduled job runs instead. If you don't use VBCS but extract data out of ERP/HCM into your own downstream database, you can do the same rather than allowing direct API traffic into ERP/HCM, and this isn't limited to BIP extracts. Meaning, you can extract data from Fusion using BICC, and other means better than BIP, into a warehouse or data lake and then use ORDS to create an API layer for systems, if the frequency of data needs align.
Lastly, the below talks about the simplicity of deploying ORDS assets, which is very important due to stringent requirements from TO Security around code quality scanning and vulnerabilities with tools like SonarQube. Since ORDS and APEX when exported are just SQL and PLSQL files, there's not much to be concerned about, unlike with high code frameworks with extensive projects with hundreds of files in the build artifacts).
ORDS is an excellent tool on it's own right, and when paired with APEX it can do wonders, but that's a topic for another day!
Thursday, April 11, 2024
Oracle LiveLabs - Hands On Education
Hello everyone!
I wanted to bring to your awareness this capability offered by Oracle LiveLabs Home (oracle.com)
Oracle LiveLabs gives you access to Oracle's tools and technologies to run a wide variety of labs and workshops using an Oracle tenancy. There’s extremely good content for Developers, DevOps, Data Engineers, Architects and Data Scientists (including content around data lakes, data warehouses, analytics, ML, AI, etc.), particularly in, but not limited to, the OCI space.
Checkout the full blog on LinkedIn at https://www.linkedin.com/pulse/oracle-livelabs-hands-education-julio-lois-flwze
Sunday, March 24, 2024
Oracle OCI Gen AI Services and Enhancing Developer Productivity
I am currently exploring the OCI service for areas such as the below, and will write a follow-up entry relative to my findings:
- Code generation and auto-completion: With generative AI, the potential to write code using AI to greatly speed up building extensions and integrations will be a game changer, much like how data scientists can now write R & Python code exponentially faster using ChatGPT like services, so can writing extensions and integrations become far less manual for you.
- More time could be spent on design, unit testing and other aspects versus manual development.
- Code refactoring & bug fixing: Asking the AI to code review, improve, make suggestions around implementation for custom code is something already available for high code programming languages like C#, Python, PLSQL and Java in tools like ChatGPT, and this can increase quality and reduce bugs.
- You can embed AI reviews to your peer review process, as well as during the build process to optimize performance and reduce logic errors.
- To help with KT’s when flexing with staff or when a developer is touching a code base they did not previously own, the developer can ask the AI service to explain logic, speeding up the learning process exponentially.
- Automated Test Generation: having the ability for the AI to generate test scenarios and test cases, in supported frameworks, based on the implementation and logic would save time and reduce defects.
- We can ask the AI to interpret code and suggest unit test scenarios and even build them (depending on the framework).
- Code comparisons: rather than using tools like Beyond Compare, to manually inspect differences in code bases, you can ask the AI to inspect it for you and produce a comparison report with intelligence built in (meaning, really explain what is different, not just highlight text differences).
- Code notation & summarization: imagine uploading code to the AI service and asking for a detailed implementation report with steps and explanations, and even a technical design and graphical support such as sequence diagrams.
- This would be very helpful for custom code where technical designs were not clearly documented or not documented at all (more prevalent now due to the Agile methodology putting less emphasis on documentation) and useful for onboarding new developers and support staff, for product delivery to hand off artifacts to operations, etc.
- The time savings from not having to write detailed technical designs would be fantastic, and in general to speed up any developer working on a case by asking the AI to summarize and explain sections of the code.
So, why Oracle since there’s similar services in the industry? I believe the Oracle services can have a competitive advantage because Oracle AI data models should yield higher accuracy with frameworks such as Oracle JET, Java, PLSQL, Fast Formulas, etc. since Oracle owns those frameworks and uses the AI service internally as part of their own DevOps processes, and the AI model could learn overtime as your developers utilize the service, and it would learn from usage, on top of Oracle’s tuning of the service over time. Lastly, it would be within your secure VCN and OCI environment, so privacy and security should not be a concern if you already have an OCI tenancy, and this is a major factor for many wishing to adopt Gen AI safely.
I think the usage of this, for the moment, is limited to high code frameworks such as Java, PLSQL, C#, Oracle JET (JavaScript), Python etc. but we would be very interested in extending the usability and benefits to middleware technology such as Oracle Integration, for the same reasons listed in this blog.
To that end, I have raised an Idea in Customer connect for the integration of the OCI Gen AI Service to Oracle Integration Gen 3 (OIC) going back to September of last year, so please support this idea over in Cloud Customer Connect by voting and commenting on it (Idea Number: 713448): Generative AI for OIC — Cloud Customer Connect (oracle.com) [community.oracle.com]
Stay tuned for my findings over the next few weeks, as I explore the Gen AI service for these use cases!
Oracle Generative AI Strategy and Options
Below are highly informative strategy updates that you may want to review relative to Oracle’s AI strategy and recent developments.
- Oracle Generative AI Strategy Update - Oracle Generative AI Strategy Update (youtube.com)
- From Greg Pavlik (SVP, Oracle AI) - Posted 2 weeks ago
- Highly recommended to watch, includes an interview with Deloitte's global head of Oracle and AI, also includes a brief conversation with Miranda Nash (GVP App Dev and Fusion AI at Oracle)
- First Principles: Exploring the Depths of OCI Generative AI Service: https://youtu.be/TOPaqzM7u5s?si=rUJIF5Toq7h0XCVG [youtu.be]
- From Pradeep Vincent, SVP Chief Technical Architect, OCI
- Cohere and Oracle Partnership Brings Generative AI Solutions to Customers | Oracle Cloud World 2023 (youtube.com)
These AI services are the same used by Oracle internally to develop AI capabilities in the Fusion applications and Fusion analytics, etc. now exposed for customers to utilize as well.
Something that Greg mentions in the first video, is the GenAI Agents beta recently launched, that is a service that allows you to have a conversation with your data within your autonomous database. Also, there's a new feature now called "Autonomous database select AI", also seen above, here's a GREAT blog about it: Introducing Select AI - Natural Language to SQL Generation on Autonomous Database (oracle.com)
I think that both the GenAI Agents and the Select AI feature should be considered as part of any modern Data Strategy, particularly when the data sources are Oracle applications (such as ERP & HCM), once your Autonomous Datawarehouse (ADW) has the Fusion data in it via BICC, you can use these features there without moving the data to a third-party tool to do similar operations (which can increase your cost of ownership and decrease technology technical stack harmony (meaning using too many vendor products unnecessarily)).
Imagine transforming part of your workforce from writing reports to being able to have conversations with the data without A) Having to move it elsewhere B) Having to spend a lot of time writing complex queries and designing intricate reports. Their workload could shift from designing and building reports, to tuning the data model and talking with the data, and this could then be expanded to end users over time, where internal teams would then focus on data model tuning, and everyone else is just talking with the data.
Additionally, this would all be happening within the secure boundaries of your OCI tenancy, reducing concerns around privacy and security that often worries the mind!
Real life examples for those using ERP and HCM that could be made possible in the near future:
%sql
SELECT AI how many invoices are past due
SELECT AI how many suppliers do we consistently not pay on time, and what are the reasons
SELECT AI how many expenses will be past due by next week
SELECT AI how many people under my organization may retire over the next 5 years
SELECT AI how many people under my organization will lose vacation by end of year
No more reports, just conversations with the data..!
Monday, March 18, 2024
Oracle Fusion Cloud - BIP Performance Tuning Tips and Documentation
During the early days of Oracle Cloud being adopted relative to SaaS technologies like ERP and HCM, it was quite common to develop extracts and reports using complex custom sql data models that would either be downloaded by users or scheduled to extract data and interface it to external systems. Overtime, Oracle has released guidelines and best practices to follow, and efforts like the SQL guardrails have emerged to prevent poor performing custom SQL from impacting environment performance and stability. To that end, I have been aggregating useful links to documentation around this topic from our interactions with Oracle Support over the past few months, which are consolidated in this post.
Links to Documentation:
- Optimize Performance of Multi-Thread Processes (oracle.com) [docs.oracle.com]This deals with multi-threading in HCM, this configuration will allow jobs to allocate more threads in the environment and therefore run faster.
- OTBI & BICC PSR Technote (2679006.1 [support.oracle.com]) and OTBI self-service [cloudcustomerconnect.oracle.com] monitoring
- The OTBI self-service dashboards can be downladed and installed in your environment so that you can see usage and monitor it. Some of the reports may not work after imported and could require modifications.
- BIP PSR Technote (2800118.1 [support.oracle.com]) and BIP self-service [oracle.com] monitoring
- Similarly to OTBI, there's BIP self-service reports that you can use to monitor performance and activity, and act upon those findings.
- BIP Datamodel validation enhanced with Saffron SQL pattern checks, available to customers in BIP Administration UI
- For custom BIP SQLs, Saffron [saffron.subnet1ad3phxsu.psr4saas01phx.oraclevcn.com] output along with the ref. to BIP Technote (2800118.1 [support.oracle.com]), that describes reported patterns in more details
- Fusion Applications BI Publisher : How to control BI Publisher Data Model time out (Doc ID 1921393.1 [mosemp.us.oracle.com])
- Fusion Applications BI Publisher : How To Configure And Use Audit In BI Publisher For Fusion SaaS Cloud Customers? (Doc ID 2059102.1 [mosemp.us.oracle.com]) to schedule monitoring of the health of your BI jobs.
- This is a key piece to proactive observing which Reports are nearing a critical threshold or identifying a sudden variation in runtime.
- Saffron report with tuning suggestions can be provided or you can use the new feature DM Validate (SAFfron results in Data Model UI) and fix the detected pattern by reviewing the Tech Note 2800118.1 [mosemp.us.oracle.com].
- For custom BIP SQLs, Saffron [saffron.subnet1ad3phxsu.psr4saas01phx.oraclevcn.com] output along with the ref. to BIP Technote (2800118.1 [support.oracle.com]), that describes reported patterns in more details
- Fusion Applications - BI Publisher Memory Guard Best Practices (Doc ID 2472630.1 [mosemp.us.oracle.com])
For scheduled reports, Oracle recommends the following guidelines:
- Having a temporary backlog (wait queue) is expected behavior, as long as the backlog get cleared over the next 24 hours.
- If the customer expect the jobs to get picked up immediately, submit via ‘online’ and wait – as long as they not hit 500 sec limit.
- If there are any jobs that need to be processed with high priority (over the rest), it's advised to mark reports as ‘critical’ so that they picked up by the first available thread.
- Oracle advises customers to tune their custom reports so that they complete faster and not hold threads for long time.
- Oracle advises customers schedule less impactful jobs during off-peak or weekend hours – manage scheduler resource smart.
- With Release 13 all configuration values including BI Publisher memory guard settings are preset based on your earlier Pod sizing request and cannot be changed.
- For memory guard the Oracle SaaS performance team has calculated and set the largest values that still provide a robust and stable reporting environment for all users to meet business requirements.
- The BI Service must support many concurrent users and these settings act as guard rails so an individual report cannot disrupt your entire service and impact the business.
- BulkLoading/ Performance testing/Payroll parallel runs: Pod with highest threads is a good candidate be utilized for bulk data loading, payroll parallel runs, and similar resource-intensive tasks such as performance testing.
Saturday, January 20, 2024
Oracle Redwood Migration and Adoption
Oracle continues to migrate, re-design and implement new features utilizing their Redwood design system, and HCM continues to be a big focus relative to these efforts in the coming releases (it already has been, but it's really picking up steam now with the end in sight!). In yesterday's office hours for HCM Redwood adoption, hosted by Oracle, it was clear that Redwood will likely become fully mandatory by 25B, for HCM, and Oracle was clear that if you haven't opted in by then, that they would move you!
In this post we won't go into a lot of details relative to what Redwood is, but in short, it is a modern design approach, bringing an updated UI that leverages AI and ML very well, while delivering a more modern and engaging usability experience for the users. Instead, we will focus on key points relative to adoption that you will want to make note of.
We already covered that full adoption is planned for 25B (around the April 2025 timeframe), however, there's accelerated adoption points that need to be considered, meaning, you don't have until 25B to opt in for the below:
- Redwood Learning self-service mandatory for learners and managers (along with other select pages being enabled) - 24B
- Checklists and Onboarding replaced by Journeys (Redwood) - 24D
- Time and labor will transition to Redwood (24D), meaning features like timecards will have a new look and feel, etc.
Oracle also urges clients to inventory their assets, and they list the below, as areas of consideration:
- Page Composer personalizations
- Transaction Design Studio personalizations
- AutoComplete rules: Defaulting and Validations
- Approvals and Notifications
If you are a current live client (HCM), not utilizing Redwood yet to great extent, I recommend you dedicate an environment and go enable as much as you can there, then build a roadmap with milestones, and a test plan, etc. Additionally, change management will be very important, communications, trainings, job aid's, demos, because it is a significant change from a user experience standpoint.
Lastly, below are several useful resources relative to Redwood:
- MOS article on enabling redwood pages- HCM Redwood Pages with Profile Options – My Oracle Support Doc ID 2922407.1
- Fusion HCM: Redwood Required Steps for Environment Provisioned on Release 24A - Doc ID 2997123.1
- Extending Redwood Applications using Visual Builder Studio - Doc ID 2991662.1
Sunday, January 14, 2024
Oracle Integration Cloud Gen 3 Upgrade - Tips and Features
An overview of key highlights with opportunities is below, and detailed documentation to all new features and other information is available at the bottom via links. Also, new updates are being rolled out to OIC Gen3 every month.
Gen3 Feature Highlights |
Opportunities |
Large
payload support for integrations |
Payload
support is growing with Gen3, which allows for more complex use cases and
larger volume to be processed, which will be a win already, but also can
eventually lead you to rationalizing other tools away, such as MuleSoft and
Biztalk, if you use those platforms. |
Enhanced
Disaster Recovery Capabilities |
Gen3
will have an enhanced Oracle Managed DR offering that should simplify and
reduce manual labor versus our existing DR strategy in Gen2, more on that
below. |
Private
Endpoint Connectivity |
This feature will set the stage to deprecate the connectivity agent used in OIC to connect to the DBCS or ADB (autonomous database) where you may house PLSQL for complex business logic, and instead allows us to connect OIC to the Autonomous Database directly, and if you have your own tenant ADB for VBCS, then both can coexist. In
short, you can rationalize databases by removing the DBCS environments and
consolidate VBCS and OIC into a single ATP (autonomous database), and while
replacing the connectivity agent (third party) with an adapter (native),
reducing technical debt and failure points, should you have this type of
configuration in OIC 2 currently. |
New
recipes and adapters |
Enhanced
connectivity and opportunities both to accelerate development of new
integrations and to reduce technical debt, such as custom integrations
between OIC and custom identity or token providers. |
Enhanced
Event Framework |
True
pub sub capabilities will now exist in OIC, which will simplify when we use
this pattern, as today we have to write parent/child integrations with custom
hand offs, versus using native event capabilities internally in OIC. There
also appear to be enhanced polling capabilities. |
RBAC
and Projects |
This
feature will enhance how you utilize global OIC environments across business
units and teams, better allowing HR and AFT to co-exist on the same
environment (for example), reducing risk and improving supportability. You
can also move away from having independent Dev environments for HR and AFT or
CX, and consolidate. |
RPA
Capability |
RPA
capabilities will be added to OIC, which will allow for the utilization of
this feature to address RPA requirements and aid in removing dependencies
with external tools and the utilization of less integrated and supported RPA
capabilities, such as Blue Prism, in the context of the broader Oracle
footprint. |
Increased
Observability |
Changes
to monitoring and API framework that will allow for enhanced monitoring
capabilities. |
To note:
- Not all features in Gen2 may yet be available in Gen3, and this upgrade also impacts VBCS and Process Automation, so extensive testing will be required, including performance testing.
- Oracle has mentioned that middle of next year will be the deadline to migrate, potentially August, and although initial research shows that many clients are still in Gen2 and that upgrade issues can happen, you should plan and execute this sooner than later.
- Some of our features weren’t ready or fully developed in OIC 3, such as the VBCS auto upgrade, and other features, and also that there’s several break/fixes that have been completed to stabilize OIC 3. As an example, Oracle was tracking an internal bug relative to stage files read/write, and this had a performance difference compared to Gen2, as an example 20-minute runtimes would go to an hour or two, which highlights A) the need to check the Known issues link, but B) to perform extensive regression testing, and also performance testing.
- I also recommend that you upgrade a single instance as a pilot, perform your test plans there, prior to moving to upgrading several environments at once.
- The VBCS and PCS assets within your Gen 2 instance will now be part of the auto upgrade process, which was previously not available, and would have caused significant manual work on your end, however, there's some outstanding licensing concerns Oracle is working through in this regard and some updates have been postponed until February, but if you have a simple instance without VBCS or PCS, there's no reason to wait, and you can go to OIC 3 already.
- Oracle utilized the auto upgrade process to internally upgrade many of their complex OIC assets in Q4 (which include VBCS and PCS), which has increased confidence in the process for those that will undertake the complex upgrade path.
- We confirmed that the IDCS stripe that the Gen2 instance is related to will not be impacted by the upgrade, and that OIC instance names, URL’s, etc. will also not be impacted.
- We confirmed the connectivity agent does have changes relative to how it authenticates (no longer supports basic authentication), but that it should be seamless during the upgrade process, but if you use a connectivity agent make sure to test it well.
- When you login to your Gen 2 environment, there will be a section that tells you if your environment meets the prerequisites to be upgraded, it is important these upgrade pre-checks pass, check the link below for more information. Also, if you don't want your environments to be auto upgraded if the pre-checks are met, it's important that you communicate with Oracle, to avoid surprises, you can raise an SR to postpone migrations.
- Lastly, our current understanding is that the deadline to migrate to OIC 3 will be August of 2024, currently, but this could move depending on adoption and issues.
Links to Documentation:
- What’s New in Gen3: Oracle Cloud What's New for Oracle Integration 3
- Differences between Gen2 and Gen3: https://docs.oracle.com/en/cloud/paas/application-integration/whats-new/index.html#GUID-6366FC51-5836-4D2E-AF8E-E9E939BF7330
- FAQ: https://docs.oracle.com/en/cloud/paas/application-integration/oracle-integration-oci/upgrade-faqs.html [docs.oracle.com]
- Upgrade pre-checks: https://docs.oracle.com/en/cloud/paas/application-integration/oracle-integration-oci/prepare-upgrade-oracle-integration-3.html [docs.oracle.com]
- Known issues: https://docs.oracle.com/en/cloud/paas/application-integration/known-issues/preface.html#GUID-34683717-9FA8-4982-BD27-39E1AAA43FBF
- Upgrade from OIC Gen2 to Oracle Integration 3 (OIC3) - Schedule Information (Doc ID 2977663.1)