Uncategorized

25.11 EPM Updates for Data Integration and EDM

In the November 2025 update for Oracle EPM, we will see some additional changes to the Data Integration Actions menu. A new “Other” actions folder will be added with the Report Execution and System Maintenance Tasks options. This is another quality of life update that brings us one step closer to parity between Data Integration and Data Management. To put it plainly, if you’re not using the Data Integration UI in Oracle EPM, you should get familiar with it.

EDM didn’t have any new updates this month, but Oracle has a new video on the Consolidation Requests. Consolidation requests allow the combination of multiple in flight requests into a single consolidation request for approval by a change governance committee. Requests can only be consolidated from the same view in EDM. The consolidation of requests can help simplify the approval by a change board. If part of a consolidation request needs to be pushed back, the consolidation request can be discarded. For more information, see the video here: https://youtu.be/vujzO5bQsi4

Strategic Deployment Models for Oracle EDM: From Metadata Steward to Master Creator

By now, most of the world knows what EDM is and what it does. Even though EDM has been out for several years at this point, I believe its strategic potential is being overlooked. Too often, organizations treat EDM as a tactical metadata tool tied solely to their EPM applications, rather than recognizing it as a foundational investment in enterprise-wide data governance. We play games with EPM Enterprise licenses to try and keep the node counts under 5,000 but that is really undervaluing the impact EDM could have.

It has been designed to be much more than a connector; it’s a platform for harmonizing metadata across business domains, enabling alignment, auditability, and agility. When deployed thoughtfully, EDM becomes a metadata authority that can support Finance, HR, Supply Chain, and beyond. But that vision only materializes when companies stop thinking of EDM as a bolt-on and start treating it as a core pillar of their enterprise architecture.

EDM can be leveraged not just as a catalog of data elements, but as a strategic asset for downstream reporting and analysis tools. How you deploy EDM can dramatically shape its impact. This post explores three strategic deployment models for EDM:

  1. As the originator of new metadata records
  2. As a metadata steward downstream from source systems
  3. As a metadata harmonizer across different business units

EDM as the Primary Metadata Creator

In this model, EDM is the primary source for creating new metadata records such as cost centers, products, legal entities, or reporting hierarchies. Business users or administrators initiate requests directly in EDM, and once approved, metadata is pushed downstream to consuming systems. This could be called “hub and spoke” where EDM is the controller for all metadata.

This deployment scenario is ideal for:

  • Organizations with centralized governance
  • Enterprises looking to remove “shadow” systems and rogue metadata creation
  • Use cases requiring strict audit trails and approval workflows

EDM’s request workflow ensures intentional and controlled metadata changes, aligning with organizational policies. Approval processes with multiple stages can reinforce robust data governance, maintaining consistency and compliance across systems. Additionally, EDM’s REST APIs can enable automated integration with downstream applications.

EDM as a metadata steward

In this deployment scenario, EDM receives metadata from upstream systems (such as CRM, ERP, or MDM platforms), and acts as a governance checkpoint. It matches incoming records to existing nodes, merges duplicates, and applies survivorship rules to determine which properties to retain.

Ideal for:

  • Enterprises with decentralized metadata creation
  • Organizations integrating multiple source systems
  • M&A scenarios requiring metadata harmonization

EDM has key features that can help with these scenarios like the Matching Workbench for deduplication along with merge logic and survivorship rules. Matching and deduplication relies on a logical tag for each node in EDM called a data source. Data source provides a foundation for Matching or Deduplication rules by defining the scope of metadata to be analyzed.

The key benefit to this method is to allow existing upstream applications to continue to own key business dimensions, but provide a central hub to consolidate and distribute those dimensions to downstream applications.

EDM as Federated Metadata Hub

In this hybrid model, EDM acts as a metadata exchange platform across multiple domains like Finance, HR, or Supply Chain, each with its own governance model. EDM doesn’t own all metadata but facilitates alignment and synchronization.

This deployment method is ideal for:

  • Large enterprises with domain-specific governance
  • Multi-cloud or multi-ERP environments
  • Organizations with regional autonomy but global reporting needs

EDM supports domain-specific modeling for Finance, HR, Supply Chain, and beyond, allowing each unit to maintain its own governance structure while participating in enterprise-wide metadata harmonization. Features like subscription requests facilitate cross-domain alignment by automatically propagating approved changes to related hierarchies, ensuring consistency without manual intervention. EDM’s security model and approval workflows help decentralized teams manage metadata collaboratively while preserving accountability.

This model enables business units to continue to operate with autonomy while providing governance which is ideal for balancing agility and control.

Which deployment strategy you choose should take into consideration your organization’s maturity in data governance. Do your end users know enough about the business to submit their own requests directly into EDM? Is there a deliberate approval workflow for changes to your chart of accounts? What are your compliance requirements and audit needs around metadata changes? What is the priority for your business (e.g., speed vs. control)?

Oracle EDM isn’t just a bolt-on EPM module; it’s a strategic enabler of enterprise agility, compliance, and insight. The key is choosing the correct deployment scenario that matches your business needs. Those business needs don’t stop at your Planning or Consolidation applications. That’s why EDM should be considered as a tool to be used across the enterprise. There is a reason it’s called Enterprise Data Management after all.

Smart Split feature in 25.07

New EPM Data Integration Features in 25.07

Oracle updates for the 25.07 patch just recently came out and there are a couple of great features for Data Integration in the mix this month.

First, a new application role called “Data Integration – Administrator” is rolling out. This access role will grant a user access to all activities in Data Integration. This means a user will be able to create/manage integrations, execute and monitor pipelines, and perform data and metadata extraction and transformation from on-premises sources using the EPM Integration Agent. The new role is a fantastic addition to allow a user to manage your integrations without giving them Service Administrator permissions on the rest of application. This applies to pretty much all EPM business processes including ARC, EPCM, FCC, Planning, PCM, and Tax Reporting.

The second update is the addition of the Smart Split feature in Pipeline. Basically, Essbase has a governor and it gets mad when you try to push too much data into it. The solution up to now has been to split a large volume data integration into multiple smaller slices of data to get around the limit. Going forward, we can set up a large integration like normal with one big data load rule. Then, in Pipeline we can add an “Integration with Smart Split” job which will split the files for us based on the Split Dimension specified. This will allow the system to bypass the governor to submit smaller data slices without requiring the creation of multiple integrations. Smart Split will be available in EPCM, FCC, Planning, and Tax Reporting

Check out the Proactive Support Blog update here for more information on all of the 25.07 updates: https://blogs.oracle.com/proactivesupportepm/post/oracle-planning-july-2025-cloud-updates

Dusting this thing off…

I read a blog post this morning by someone known as “raf,” titled The Curse of Knowing How, or; Fixing Everything, that has inspired me to share my own thoughts on the subject. Several themes from the post resonated deeply with me, especially based on my experiences in Oracle EPM and integration development over the course of my consulting career:

  • Knowing which problems are worth your energy.
  • Knowing which projects are worth maintaining.
  • Knowing when you’re building to help—and when you’re building to cope.
  • Knowing when to stop.

Early in my career, I was used to being a self-sufficient application administrator and had just enough programming knowledge to be dangerous. My first instinct was always to code my way through integration challenges.

Before I even got into Hyperion/Oracle EPM administration, I worked as an admin for a PDF report bursting tool called DocumentDirect for the Internet by Mobius Software (now owned by Rocket Software). One of our recurring challenges was maintaining monthly security updates for sensitive commission reports as managers changed roles.

To solve this, I built a quick Java application that took an HCM report and generated an XML file, which we could upload to update security roles each month. This saved a ton of time and ensured consistent role updates. It was efficient and effective—but ultimately short-lived.

The problem? I wasn’t part of IT. I was in a shadow-IT role within the Financial Systems department, reporting up through the Controller and CFO. No one else on the finance team had the technical chops to maintain what I had built. So when I left the company, my slick little Java app effectively died with me.

When I moved into EPM consulting, I brought that same mindset to client engagements. I could write elegant Python or Java solutions to streamline integration processes and save time. The downside? Many clients didn’t have the resources or the technical depth to maintain the black boxes we consultants left behind.

It takes a more mature mindset to recognize the risks of this approach. If your code breaks a year or two down the line (especially during a critical close cycle) and no one can fix it, that’s not innovation. That’s failure.

This is why the “KISS” principle (“Keep It Simple, Stupid”) can be essential in integration work. Sure, we can create all kinds of sophisticated solutions in Oracle EPM using event scripts and custom reports on integration tables. But before I do anything like that, I need to know that the client can support the customization. Additionally, the implementation partner is committed to writing the most complete, user-friendly documentation imaginable.

My goal is to share some wisdom that was given to me early in my career. It took me years to truly understand the “why” behind that advice. Hopefully, by sharing this, I can help flatten someone else’s learning curve.

Do Oracle’s OOW cloud announcements signal the death of on-premises EPM?

This week at Oracle Open World, Oracle has announced more details around a few new EPM Cloud products (Essbase Cloud Services, PCMCS, and DMCS) in addition to their already existing stack of SaaS cloud services (PBCS, EPRCS, EPBCS, ARCS, and FCCS).
axeWith these new offerings added to their stable, is this the death of on-premises EPM as we know it?

Oracle’s stated direction of product strategy for the EPM products is to tap into unserved business users. EPM has been predominantly used by corporate finance departments from the beginning. At one point, Hyperion was marketed to CFOs and not CIOs because it could be run on an administrator’s computer under a desk without IT involvement. The evolution of EPM cloud is a return to the golden age of Essbase – easily created departmental applications that provide better analytic ability than Excel alone.

The EPM cloud products are really all about allowing easy adoption for non-traditional EPM users and providing rapid value to their customers. Spreadsheets still dominate at small to medium companies. The cloud offerings are really simplify life for those companies who struggle with maintaining servers and have a lack of technical skill at designing an optimized solution. With the EPM cloud products, it’s very easy to roll out a Workforce or CapEx application in EPBCS by sending out the URL and paying the monthly subscription fees. The cloud also allows the business users to be in the driver’s seat by not needing IT resources to get them up and running.

As we know, there is a long way to go yet on the EPM Cloud roadmap to get all of these products working well together. For instance, how exactly do we get data from our EPBCS application into ESSCS for additional reporting? How about my BICS dashboards using data from my ESSCS departmental cube or my PBCS budget data? It’s clear to see that with Oracle’s growth in the cloud and continued development of additional features and functions on the cloud products that these drawbacks will be remedied in time.

This whole cloud thing is just a fad, it will pass, right?

Even Mark Hurd stated during his keynote on Monday that the cloud is no fad, it’s a generational shift that is here to stay. Oracle has stated publicly that they fully intend to continue to support and develop EPM on-premises solutions. Matt Bradley, SVP for EPM and BI Development at Oracle, has said that Oracle expects most companies will enter into a hybrid cloud implementation if and/or when they decide to move their investments into the cloud. They have developed tools in DRM and FDMEE to support these hybrid cloud implementations. The shift to cloud computing is happening, but it doesn’t signal the immediate end of the line EPM on-premises. Once the cloud products have fully matured, there may continue to be valid use cases for on-premises EPM products going forward.

So, what is the future of my on-premises investment?

The market indicates that there is a healthy appetite for cloud solutions and all indications are that Oracle expects even large customers to eventually move their EPM investments to the cloud. While the on-premises products are still being developed, the availability of new on-premises versions has slowed down. For the last few years, we were blessed with several major releases of EPM software from 9.3.1 to 11.1.2.4. Oracle noted that the software release adoption cycle was about every two to three years, so we expect that the new software releases for on-premises will be more in line with those adoption cycles. We should expect to see some new features and functionality through Patch Set Updates to the latest code line in between major upgrades. Future on-premises releases will begin to showcase a simpler architecture to the components and focus on usability.

What should we do with our on-premises EPM environments now?

If you haven’t already upgraded to version 11.1.2.4, it is highly recommended. The 11.1.2.4 code line has some great features like better support for Essbase Hybrid Aggregation, improvements in HFM consolidations, FDMEE data synchronization between EPM applications, and the new Financial Reporting Web Studio. I have been on several calls with customers who are still working in old releases and the Classic Essbase add-in. It is time to move on and update those environments. If you have upgraded to version 11.1.2.4, it’s highly recommended to keep up with the latest Patch Set Updates on at least a quarterly basis. Sometimes applying the latest patches may cause some issues, so thorough testing of new patches is always recommended before implementing into production.

Staying on the latest release also allows companies to bridge from on-premises to cloud much easier. For example, as mentioned earlier FDMEE and DRM already support hybrid cloud implementations. Oracle has doubled-down at OOW 2016 on their assertion that cloud computing is the future. While on-premises EPM software isn’t going away any time soon, the cloud products are going to continue to mature rapidly. As the cloud products develop and integrations between them become more defined, more and more companies are going to see the benefits of moving their EPM investments into the cloud.

FDMEE and Essbase calculations

Since January, I have been on a project using FDMEE against Essbase and Planning applications. There are certainly many more companies using FDMEE with HFM, so I wanted to share some things I have learned about FDMEE and Essbase.

The topic of this post is about the process of running calculations in Essbase. Typically with Essbase data loads, especially repetitive loading of data during a close cycle, we will want to clear out the data first and then load in the new data. Of course, after that data loads to Essbase (BSO) we will likely need to run an aggregation after the load.

Lucky for us, Oracle baked in the ability to run calculations on your Essbase Target Applications at certain points during the load process. In this post, we will cover how to set up a clear script before a data load, but an aggregation script after the load is the same process with a different script.

First, we need an Essbase calculation script to run a CLEARDATA command. For this occasion, I wrote a quick little CLEARDATA script to clear out Sales in California for whatever period I happen to be running in FDMEE. I have saved the script in the Sample.Basic application as “fdmClear”.

SET CALCTASKDIMS 4;
SET CALCPARALLEL 4;
SET UPDATECALC OFF;

SET RUNTIMESUBVARS
{
POVPer = "";
};

FIX(&POVPer, "Sales", "California")

CLEARDATA Actual;

ENDFIX

Notice the use of RUNTIMESUBVARS for my POVPer variable. By defining these in our calculation script, FDMEE will be able to pick up the variable and pass a value when it runs the calc script.

To set up these calculations, we need to be on the Setup tab of FDMEE and have the Target Applications window up. If we switch to the Calculation Scripts tab, we can add our scripts.

EsbCalcs1

We need to click the Add button to set up our clear script. I have entered in the “fdmClear” name for the script and clicked on the pencil icon to add my calc script parameter. In the “Set Calculation Script Parameters” window, I clicked the magnifying glass icon. This forces FDMEE to look back at the calc script and pick up the POVPer variable.

EsbCalcs2

Now we have a choice as to what value to assign to our POVPer variable.  In our simple use case, we will use the POV Period option and click OK.

EsbCalcs3

Next, we can select the appropriate scope for the calculation. For instance, if we have a clear for this application and it only affects a particular slice of data, we would want to use a more granular scope like data rule or location. Script scopes with higher granularity override those with lower granularity. So, if we have multiple scripts with different scopes, the most granular one will take effect (data rule scope overrides a location scope, location scope overrides category scope, and category overrides application).

EsbCalcs4

For any selections other than Application, a Scope Entity box will appear and allow you to specify what rule, location, or category to use. I chose Location and selected my Loc1 sample location.

The next choice is to decide when to execute the calculation: before the data load, after the data load, before the check process or after the check process.  In my case, I selected Before Data Load.

EsbCalcs5

Finally, if we end up with multiple calculations with the same script scope, scope entity, and event, we can specify a Sequence value to order the calculations appropriately. I only have one calculation, so this is left null.

Calculation Script Parameters

I was curious if a regular substitution variable would work, so I created a Market subvar (mkt) on the Sample.Basic application and a Measures subvar (acct) as a global variable to test.

EsbCalcs6

EsbCalcs7

No dice. When we attempt to add our substitution variables in the parameter names window, FDMEE is only able to retrieve the RUNTIMESUBVARS defined within the script.

EsbCalcs8

WebLogic vulnerability in Oracle EPM and BI: Security Alert CVE-2015-4852

Oracle customers are beginning to get a rare vulnerability notification outside of the quarterly Critical Patch Update.  This update refers to a security vulnerability for Oracle WebLogic, IBM WebSphere and other Java web servers, which affects EPM and BI products as well as many other applications built on Oracle’s Fusion Middleware.

The vulnerability allows remote execution of code on the web server without a login ID or password.  Basically, a Java application can be written to exploit this vulnerability allowing a hacker to force WebLogic to run a command on the server. Obviously, this could be very bad for your WebLogic server.

Due to the high Common Vulnerability Scoring System (CVSS) score of 7.5, Oracle is informing its customers of mitigation instructions while patches for this vulnerability are being worked on.  My Oracle Support document 2076338.1 lists mitigation options for WebLogic.  Oracle has another MOS article (2075927.1) that lists the patches and minimum releases that will be fixed by those patches.  It’s very important to note that we will likely need to first patch our WebLogic to the minimum release and then apply the security patch to fix this vulnerability.

At this time, the options are limited to either blocking all T3 traffic from reaching your WebLogic server (like RMI through an HTTP server (like Oracle HTTP Server or Apache) or by blocking undesirable T3 traffic on WebLogic using Network Connection Filters to refuse any connections from undesirable IPs.

While this vulnerability is a little scary, most EPM and BI environments are internal applications and are not facing the internet where the possibility of malicious attack is much more likely.  For those environments that are internet-facing, your security team is likely already on top of this vulnerability once it was confirmed last Friday by FoxGlove Security.  The sad part is that the vulnerability was brought to the public in January at AppSecCali and hadn’t been addressed at all.  If you really want to geek out, check out the links for full details.

I don’t pretend to be cool enough to understand exactly how the vulnerability works in Java, but I do know that some malicious code could really ruin your day.  Stay tuned to the My Oracle Support documents listed above as more details come and patches for WebLogic are eventually released.

Oracle Critical Patch Update – July 2015

Last week on July 14, Oracle released it’s quarterly Critical Patch Update.  The following Hyperion and BI products are affected by security vulnerabilities:

  • Hyperion Essbase
  • Hyperion Shared Services
  • Hyperion EPMA
  • OBIEE

Hyperion Essbase

There are patches available to fix the vulnerabilities in Essbase for the 11.1.2.2 and 11.1.2.3 versions. The patch for version 11.1.2.3 are the 11.1.2.3.506 Patch Set Update (PSU) for the Essbase Server and Essbase Client (patch numbers 20184072 and 20184082, respectively).  The vulnerability fix for Essbase version 11.1.2.2 is “Upgrade to Hyperion Essbase 11.1.2.3, then apply the patches listed above”.  If you are on an older version of Essbase than 11.1.2.3, it is time to upgrade.

Hyperion Shared Services

The CPU document calls this “Hyperion Common Security,” but they are talking about Shared Services. The vulnerability is listed as affecting versions 11.1.2.4, 11.1.2.3, and 11.1.2.2.  The patch for version 11.1.2.4 is listed as patch number 20876722. This one is interesting because if you search, that patch doesn’t bring anything up on the My Oracle Support site. I also searched for Shared Services patches under 11.1.2.4, but there isn’t even an 11.1.2.4 version available to choose yet.  Edit 7/22/15 – The Shared Services 11.1.2.4.001 patch (number 20876722) came out on 7/21 and is available on My Oracle Support. The 11.1.2.3 patch is the Shared Services 11.1.2.3.700 PSU (number 20675028). That PSU requires patching nearly every EPM product in your environment but gives the ability to run Internet Explorer 11 in its native mode – no more Enterprise Mode needed for 11.1.2.3.  The 11.1.2.2 patch is listed as number 21052487, but this is a bad patch number as well with no results when using their link.

Hyperion Enterprise Performance Management Architect

The EPMA vulnerabilities affect both versions 11.1.2.2 and 11.1.2.3.  In version 11.1.2.3, you have two different options to fix the vulnerabilities: EPMA PSU 11.1.2.3.501 (patch number 19466859) or EPMA PSU 11.1.2.3.700 (patch number 20929659).  If you are on version 11.1.2.2, a patch set update is available on request from Oracle.  I assume that you would need to submit an SR to get a PSU from Oracle Support for 11.1.2.2.

OBIEE

For version 11.1.1.9 of OBIEE, only a patch to Third Party BI software (patch number 21235195) is listed as a critical patch.

The following patches are listed to fix vulnerabilities in version 11.1.1.7:

Calc Manager 11.1.2.4 New Functions

EPM 11.1.2.4 has been out for a few weeks now and I have been heads-down diverting my “free time” to a different creative outlet besides blogging. Most EPM bloggers have already given details on the new features of their favorite applications, so I won’t belabor the point. I haven’t yet seen anyone report on the new functions in Calculation Manager 11.1.2.4, as these are not documented in the readme for Calc Manager or anywhere else, unfortunately.

As I researched the functions, it was clear that the EPM community is always looking for some type of documentation around these functions, so I wanted to make the latest information available for anyone out there on the cutting edge. All of the functions in Calc Manager 11.1.2.3.502 are still available in 11.1.2.4, so these are only the brand new functions. Also, the errors on the CDF definitions persist in 11.1.2.4, so the blog entry I did here is still relevant.  If you are going to use those functions, just edit the essfunc.xml file and you’re good to go.

New Functions in Calc Manager 11.1.2.4:

@CalcMgrGetFormattedDate (date, format) – Accepts a date and its format and will reformat it into YYYYMMDD format.

  • @CalcMgrGetFormattedDate (12302014, “mmddyyyy”) = 20141230
  • @CalcMgrGetFormattedDate (30122014, “ddmmyyyy”) = 20141230

 

@CalcMgrGetStringFormattedDate (dateString, format) – Accepts a string of numbers and its format and will reformat the string into YYYYMMDD format.

  • @CalcMgrGetFormattedDate (“12302014”, “mmddyyyy”) = 20141230

 

@CalcMgrGetDatePart (date, date_part_ex) – Returns the Year/Month/Week/DayofMonth/WeekofYear/WeekOfMonth/DayOfYear as a number from date which is in the YYYYMMDD format.

  • Options for the date_part_ex parameter are: Year, Month, Week, DayofMonth, WeekOfYear, WeekOfMonth, or DayOfYear.  These are Strings passed and the capitalization does not matter.
  • @CalcMgrGetDatePart (20141230, DayOfYEAR) = 364
  • @CalcMgrGetDatePart (20141230, yEAR) = 2014

 

@CalcMgrGetDayOfYear (date) – Returns the day of year (1-366) from date which is in the YYYYMMDD format.

  • Calls the same code as @CalcMgrGetDatePart (YYYYMMDD, DayOfYear).
  • @CalcMgrGetDayOfYear (20141230) = 364

 

@CalcMgrAddDatePart (date,date_part,amountToAdd) – Add specified number of years/months/days/weeks to the date which is in the YYYYMMDD format.

  • Options for the date_part parameter are: Year, Month, Day, or Week.
  • The amountToAdd may be positive or negative.
  • @CalcMgrAddDatePart (20141230,week,1) = 20150106

 

@CalcMgrRollDate (date,date_part,up) – Adds or subtracts (up or down) a single unit of time on the given date field without changing larger fields.

  • Options for the date_part parameter are: Year, Month, Day, or Week
  • The up parameter is a boolean (true or false) Java parameter.  Use @_true to add, and @_false to subtract.
  • @CalcMgrRollDate(19960131,”month”,@_true) = 19960229
  • @CalcMgrRollDate(19960131,”day”,@_true) = 19960101
    • Note that the DAY field was rolled over to 1, but the MONTH field remained at 01.
    • Use @CalcMgrAddDatePart to automatically increment months when rolling over days

 

@CalcMgrDateDiff (fromDate,toDate,datePart) – Returns the difference (number) between two input dates, in YYYYMMDD format, in terms of the specified date-parts, following a standard Gregorian calendar.

  • Options for the date_part parameter are: Year, Month, Day, or Week
  • Returns integers (no remainders or decimals) for the difference.

 

@CalcMgrYearsBetween (fromDate,toDate) – Returns the years between two dates which are in the YYYYMMDD format.

  • Calls the same code as @CalcMgrDateDiff (YYYYMMDD, YYYYMMDD, Year).
  • Returns integers (no remainders or decimals) for the difference.

 

@CalcMgrMonthsBetween (fromDate,toDate) – Returns the months between two dates which are in the YYYYMMDD format.

  • Calls the same code as @CalcMgrDateDiff (YYYYMMDD, YYYYMMDD, Month).
  • Returns integers (no remainders or decimals) for the difference.

 

I am humbled, thank you.

Last week on Thursday, this blog achieved a milestone.  Until then, the highest number of views was 114 in a day which was set last October.  That 114-view number stood for an entire year until it was broken last Thursday by 142 views.  Also on Thursday, this blog went over 20,000 views all-time.

Yesterday, that 142 number was eclipsed by 165 views.  We broke the record again, two business days after smashing a year-long record.

Granted, these are not huge numbers, but for a niche technology blog it feels pretty amazing that there are that many people out there wanting to get some information that many of us may take for granted.  I am humbled that so many have come here for information and I thank you for reading.