Dell PowerEdge T20 Notes

Bought one of these for running various business services.

image

Got it cheap with cashback for less than the CPU would cost in retail.

The CPU and motherboard supports:

  • VT-x: Hardware virtualization
  • VT-d: Direct I/O virtualization
  • vPro: Active management technology (AMT)

Standard specifications:

  • Intel Xeon E3-1225V3
  • Ram 4Gb
  • 1Gb hard disk

Additional components:

  • Kingston 2x8Gb Ram KTD-PE313E/8G
  • Syba SATA III 4 Port PCI-e x1 Controller Card
  • Inateck 2x 2.5 Inch SSD to 3.5 Inch Internal Hard Disk Drive Mounting Kit Bracket
  • HP NC364T 436431-001 435506-003 – Quad / 4 Port Gigabit Ethernet Card Adapter

Hardware Notes

The quad NIC adapter is to enable physical separation of intranet and internet traffic.

ESXi likes to use a single NIC for a single virtual switch for a single subnet.

Hence if you want intranet and internet physically separated for VM’s you just have two virtual switches – one for intranet and one for internet – each mapped to a physical NIC.

The router the isolated the physical ports to virtual networks.

This means it is very hard to break in to the intranet even if the internet VM is compromised.

Details about this belongs in a dedicated network and router post later.

AMT Notes

Enabling AMT

During boot press ctrl-P to enable.

Connecting to AMT: http://{hostname}:16992/logon.htm

Even better download Meshcommander

Looks like this:

image

AMT and VPN Issues

If you connect via VPN you may find you cannot connect to AMT.

It took me a while to find out why not…

This may be caused by you assigned a fixed IP address to the server, which is a normal thing to do for server, however it just doesn’t work then.

Be sure to use DHCP and then use the router to force the IP address using bind to IP:

image

So do as above…

Posted in: Server, Technical Knowledge by Kent Willumsen Comments Off on Dell PowerEdge T20 Notes , ,

ESXi Notes

Having previously worked with Oracle VirtualBox I thought this this would be an easy transition – but no way.

ESXi feel much more like a enterprise ready product, with complexities at that level as well.

Most of the things in here will be related to the CLI interface of ESXi version 6.5.

It is work in progress so there will be errors and things I have misunderstood below as it is for my own use.

Storage

Storage is provisioned in 3 layers starting from lowest level:

  1. Physical Disks (or raid/nas/san drives)
  2. Datastores: collection of physical disks making a logical disk
  3. Virtual Disks: VM storage placed in datastores as vmdk files

Simplified diagram:

image

Physical Disks (devices)

Physical disks are located in directory:

/vmfs/devices/disks

Physical hard disks maps to files in /vmfs/devices/disks like this:

t10.SanDisk00Ultra_Fit000000000000004C531001491102119083

Partitions maps to the above filename but ending with “:” and number like this:

t10.SanDisk00Ultra_Fit000000000000004C531001491102119083:1

Listing disks only:

ls -lh /vmfs/devices/disks | grep -v ":[0-9]$" | grep -v "vml\." | grep -v "total"

Datastores

Datastores are located in directory:

/vmfs/volumes

Datastores are having names like this:

587949b5-46baef34-fb63-1866da2041ef

When a datastore is created and names then it gets a link from the name to the file above like:

SSD -> 587949b5-46baef34-fb63-1866da2041ef

Within the datastore you will find the virtual disks.

Virtual Disks

Virtual disks are located in directory:

/vmfs/volumes/{datastorename}/{vmname}

Together with other VM related files.

Main virtual disk names:

  • {diskname}.vmdk: disk configuration file
  • {diskname}-flat.vmdk: thin provisioned file (full file)
  • {diskname}-rdmp.vmdk: raw provisioned file (link only)

Raw Device Mapping (RDM)

A physical disk can be mapped directly to a VM by creating a link.

Use this command:

vmkfstools -z /vmfs/devices/disks/{physical disk} /vmfs/volumes/SSD/{vmname}/{vmdkname}.vmdk

For example:

vmkfstools -z /vmfs/devices/disks/t10.SanDisk00Ultra_Fit000000000000004C531001491102119083 /vmfs/volumes/SSD/windows/hdd1.vmdk

Creates the following files:

  • {diskname}.vmdk: disk configuration file
  • {diskname}-rdmp.vmdk: raw provisioned file (link only)

Equally to remove the links to a VM do the following:

rm /vmfs/volumes/SSD/windows/hdd1.vmdk
rm /vmfs/volumes/SSD/windows/hdd1-rdmp.vmdk

Virtual Disk Backup

It is easy to do a “cold” backup when the VM is shut down.

Using the command to clone the original disk:

vmkfstools –i /vmfs/volumes/{datastorename}/{vmname}/{vmdkname}.vmdk {backupdest}/{vmdkname}.vmdk -d thin

This command should only be used with thin provisioned disks.

VM Upgrade

When importing a VM from other sources you will find the VM version is older.

I had this problem where I got a warning about the Linux version was not correct.

I could only pick Debian 6 where I was using Debian 8.

This is caused by the VM version is older.

To upgrade the VM version run the following command:

vim-cmd vmsvc/upgrade {vmid} vmx-13

The {vmid} can be obtained by running this command:

vim-cmd vmsvc/getallvms

Extending Virtual Disk

Well you don’t really extend but add another one instead.

Click on the VM details:

image

Click Add hard disk – New hard disk:

image

Adjust disk size:

image

Reboot the VM

List the disk:

# lsblk

NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0  100G  0 disk
|-sda1               8:1    0  428M  0 part /boot
|-sda2               8:2    0 18.2G  0 part
| |-turnkey-root   254:0    0   99G  0 lvm  /
| `-turnkey-swap_1 254:1    0  512M  0 lvm  [SWAP]
`-sda3               8:3    0 81.4G  0 part
  `-turnkey-root   254:0    0   99G  0 lvm  /
sdb                  8:16   0  100G  0 disk

So new hard disk is: sdb

Initialise the physical volume:

# pvcreate /dev/sdb
  Physical volume "/dev/sdb" successfully created

Extend volume group in LVM:

# vgextend turnkey /dev/sdb
  Volume group "turnkey" successfully extended

Extend size of logical volume – first try failed as slightly less than 100GB available so just use extents option instead:

# lvextend -L+100G /dev/turnkey/root
  Insufficient free space: 25600 extents needed, but only 25599 available
# lvextend -l 25599 /dev/turnkey/root
  Size of logical volume turnkey/root changed from 99.02 GiB (25348 extents) to 100.00 GiB (25599 extents).
  Logical volume root successfully resized

Resize the file system:

# resize2fs /dev/turnkey/root
resize2fs 1.42.12 (29-Aug-2014)
Filesystem at /dev/turnkey/root is mounted on /; on-line resizing required
old_desc_blocks = 7, new_desc_blocks = 7
The filesystem on /dev/turnkey/root is now 26213376 (4k) blocks long.

All done:

# lsblk
NAME               MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                  8:0    0  100G  0 disk
|-sda1               8:1    0  428M  0 part /boot
|-sda2               8:2    0 18.2G  0 part
| |-turnkey-root   254:0    0  100G  0 lvm  /
| `-turnkey-swap_1 254:1    0  512M  0 lvm  [SWAP]
`-sda3               8:3    0 81.4G  0 part
  `-turnkey-root   254:0    0  100G  0 lvm  /
sdb                  8:16   0  100G  0 disk
`-turnkey-root     254:0    0  100G  0 lvm  /

Posted in: Server, Technical Knowledge by Kent Willumsen Comments Off on ESXi Notes

Lenovo X1 Carbon Tips and Notes

Very happy with this computer and only have very few issues as per below.

Sierra Wireless EM7345 4G LTE

This WLAN unit seems very unstable and tend to disconnect just after connecting.

It does not help to disable any power settings.

The solution I found was simple – run ping in the background.

Open a command prompt and enter: ping –t bbc.com

Or any other internet address that return the ping:

image 

Just keep this running also when you close the lid and it re-connects when you re-open the lid.

Posted in: General News and Tips, Laptops by Kent Willumsen Comments Off on Lenovo X1 Carbon Tips and Notes

HP ProLiant MicroServer Notes

This server is getting a bit old now but still works well except for some minor problems I will start to record in here.

Excessive disk I/O caused by audiodg.exe

The Microserver does not have a soundcard when using Remote Desktop on Windows 10 it creates a Remote Audio driver .

This remote Remote Audio driver should be disabled using the Device Manager console as per below:

image

Disable by right-clicking and chose “Disable”

Don’t ask me why the disk I/O happens – it’s one of those things…

KVM Viewer does not open

This is a Java based tools and only really works in Internet Explorer.

However IE has changed over time so the pop-up does not work any more.

This is especially true in this case for:

  • Windows 8.1 64-bit  or Windows 10 64-bit
  • Java 6 (if you have any newer then de-install these)
  • Internet Explorer 11
1. Click Launch KVM Viewer

image

2. Click Open

image

3. Pick Application

image

Click: More Options

image

Default Open With./.. windows opens

Click: Look for another app on this PC

image

However this points to x64 programs so change to: Program Files (x86)

image

Click on Java (which is now a 32-bit Java) and go down to the bin directory:

image

Pick the Java Web Start executable: javaws.exe

And the KVM should start just fine…

Posted in: Technical Knowledge by Kent Willumsen Comments Off on HP ProLiant MicroServer Notes

Budgetary Control and Funds Checking Notes

Overview

Modules supporting budgetary control:

  • General Ledger
  • Payables
  • Purchasing
  • Inventory
  • Projects

Limitations:

  • Budgetary control is only available for the primary ledger functional entered currency
  • Budgetary control requires the use of encumbrance or budgetary accounting

Funds checking levels:

  • Detail budgetary control: budget per code combination assigned at budget organization range level
  • Summary budgetary control: budget by summary accounts assigned at summary account template level

Budgetary controls possible:

  • None: no funds checking and no funds reservation
  • Advisory: funds checking and if no funds, warning is issued and funds are reserved
  • Absolute: funds checking and if no funds, transaction is blocked and funds are not reserved

Budget Control Group

The budget control group is assigned at site or responsibility profile level and can set limits for:

  • Funds check level
  • Tolerance Percent: overspend allowed on budget in percent
  • Tolerance Amount: overspend allowed on budget in amount
  • Override amount: maximum override amount per account for failed absolute level

Note: tolerances only work in an encumbrance environment.

Amount Types and Boundaries:

  • Amount Type: cumulative balance for funds checking interval
  • Boundary: end point of the interval so budget cannot be spent beyond this point
  • Some examples:
    • PTD + Period: PTD budget is checked against current period (any previous periods underspend is ignored)
    • YTD + Period: Accumulated YTD budget is checked for current period (YTD underspend can be used until current period)
    • QTD + Quarter: Accumulated QTD budget is checked for current quarter (QTD underspend can be used within current quarter)
    Boundary      
    Period Quarter Year Project
Amount Type PTD: Period-to-date OK      
  QTD: Quarter-to-date OK OK    
  YTD: Year-to-date OK OK OK  
  PJTD: Project-to-date OK OK OK OK

Funds Available Calculation:

Encumbrance Accounting:

  • Funds Available = Budget – Encumbrance – Expenditures

Budgetary Accounting:

  • Funds Available = Budget – Expenditures

Detail Budget Control

To define detailed budget control you must create a budget organisation with a specific range and assign budgetary control that range.

Any ranges not assigned to budget control will not have budgetary control enabled so care must be taken when defining ranges to ensure all accounts are covered if full budgetary control is required.

Each of the budget organisation assignments having budgetary control enabled should have a budget amount allocated.

In practice, this may become a huge task. Just imagine you have an account for "stamps", then you must assign a budget amount for "stamps" per cost centre and per company per any code combination, your account structure may have.

Therefore, detail level budgetary control assumes you have a budget amount per code combination.

To limit the number of code combinations requiring budget amounts it is recommended to switch off "dynamic insert" so only pre-defined code combinations can be used.

A simple setup would be (based on the chart of accounts in the appendix):

Purpose

Range from

Range to

Budgetary control

Insurance

10-100-6400

10-100-6499

Advisory

Travel

10-100-6500

10-100-6599

Absolute

With this setup, you are required to enter a budget amounts for:

  • 10.100.6510
  • 10.100.6520
  • 10.100.6530

And optionally amounts for:

  • 10.100.6410
  • 10.100.6420

Budgets > Define > Budget:

image

Note: "Require Budget Journals" must be enabled for budgetary control budgets.

Budgets > Define > Organization:

image

Note: Use the "Maintain" button to update code combination assignments when budget organisation ranges are changed or new accounts are added.

Click: Ranges

image

Click: Budgetary Control (line 10)

image

Click: Budgetary Control (line 20)

image

Process for adding a new account, which is inside an existing budget organisation range with budgetary control:

  1. Add new account
  2. Create code combinations manually
  3. Add budget amount for the code combination
  4. Run " Program – Maintain Budget Organization"
  5. Check if code combination exists in budget organisation assignment with correct budget control assignment

Only code combination assignments will have budget control enabled hence, it is important to run: "Program – Maintain Budget Organization". This program is run when clicking the button "Maintain" in the "Define Budget Organization" screen.

Summary Budget Control

Summary level control is managed at summary account level. Summary accounts are always assigned at parent account level.

This makes it easier to enter budget amounts as this can be entered at a higher level.

Also the budget organisations can now be arranged independently of the budgetary control.

To ensure we only budget at one account we specifically add a budget account for this purpose with "Posting = No" and "Budget = Yes" and set all other accounts to "Budget = No" and "Posting = Yes".

For example using our chart of accounts below, we define:

  • Insurance Budget: 6401
  • Travel Budget: 6501

Then we define summary accounts for 6400 and 6500 to summarise both actual and budget amounts in the parent account range.

First, we define a rollup group to control the summarisation.

Setup>Financials>Flexfields>Key>Groups:

image

Name the rollup groups the same as the segment values so you can refer to these in the same way as an account.

Setup>Financials>Flexfields>Key>Values:

image

Assign the rollup group to the parent account.

The rollup can be assigned to any level in a hierarchy so the account hierarchy is important for the level of budgeting as well as reporting.

Accounts>Summary:

image

These summary accounts will have a total for "Travel" or "Insurance" for total of company and cost centre. TBD as company should be "D".

Click: Budgetary Control (Insurance)

image

Click: Budgetary Control (Travel)

image

The budget control can be performed at these summary levels per segment:

  • D: Detail – sum per segment value
  • T: Total – sum per segment (normally applied to a 4th segment like "Analysis")
  • {rollup group}: Sum of the accounts assigned to the rollup group

In the above example the calculation will be:

D.D.6400 =

10.100.6401 +

10.100.6410 +

10.100.6420

The amounts are added for each balance type of actual, budget and encumbrance.

Funds available = Budget – Encumbrance – Actuals = 100 – 0 – (10 + 20) = 70

All made simple thanks to the summary account.

The amounts can be checked using the funds inquiry screen.

Inquiry>Funds:

image

As the budgetary control is on D.D.6400 then there is no need for a budget on 6410 and 6420 making it simpler to maintain on just one account: 6401.

When a new account/combination is added it will inherit the budget assigned to the summary account hence dynamic insert can be enabled.

So for example, we add account 6430 to the above example then there would still be a budget covered by the amount on 6401.

However, you still need to ensure the summary account template is updated by running: Program – Maintain Summary Templates

Process for adding a new account, which is inside an existing budget organisation range with budgetary control:

  1. Add new account

Simple and clean.

Optional you can run: "Program – Maintain Summary Templates" but this is automatically run during the posting process anyway.

Not if you change the hierarchy, which is part of a summary group you need to run: Program – Incremental Add/Delete Summary Templates

Chart of Accounts

Note this is not the full chart of accounts but only listing accounts relevant for the above examples.

COA structure:

Segment

Qualifier

Length

Company

Balancing

2

Cost Centre

Cost Center

3

Account

Account

4

Company values:

Value

Description

10

ACME Limited

Cost Centre values:

Value

Description

000

Balance Sheet

100

Finance

Account values:

Value

Description

Type

Parent

Child Range

6000

Operating Expenses

Expense

Yes

6000-6999

6400

Insurance Expense

Expense

Yes

6400-6499

6401

Insurance Budget

Expense

No

 

6410

Liability Insurance

Expense

No

 

6420

Property Insurance

Expense

No

 

6500

Travel

Expense

Yes

6500-6599

6501

Travel Budget

Expense

No

 

6510

Trains

Expense

No

 

6520

Planes

Expense

No

 

6530

Automobiles

Expense

No

 
Posted in: Functional Knowledge, General Ledger by Kent Willumsen Comments Off on Budgetary Control and Funds Checking Notes , , ,

Interface Strategy – a Functional Approach

Interfaces are mostly assumed being a technical exercise however been on the receiving end of that there is several shortcomings to this approach.

image

When interfacing two systems the transactional flow can become quite complex in terms of functional interaction – an interaction, which is beyond what most technical people can contemplate. Just imagine how to design a purchase order interface:

  • In what system do we enter the invoices in order to track purchase order fulfilment?
  • Do we need to match or part match the invoice to the purchase order?
  • When a purchase order is closed do we need to relay this to both systems?
  • Is receiving being used and if so in what system?

Beyond that, there are the implications of change – like changes to the purchase order – how is this managed and interfaced?

When it comes to multi-phased implementations, the scenarios can become even more complicated. Careful functional consideration must be taken, as if done wrong the transactional flow may be broken or the interfaced system may be impossible to reconcile, essentially breaking business continuity.

Overview

The interface strategy is part of the overall project key deliverables setting out scope and project outcome expectations. The documents below are directly related but should be kept separate:

image

  • Interface Strategy: Define system scope and integration need
  • Data Migration Strategy: Define data retention for decommissioned systems or systems not being interfaced
  • Cut-over Strategy: Define how to orchestrate close down of decommissioned systems and their data migration, switch-over of retained systems and related interfaces, and commence use of new systems

The "strategy" nomenclature indicates these documents are likely to have a significant impact on the overall project plan. Each of the above documents may also spawn a number of functional and technical specifications based on decisions made.

Purpose

The primary purpose of the interface strategy is to facilitate management decisions caused by system change – decisions to ensure:

  • Continuation of daily business activities
  • Correct management reporting
  • Correct legal reporting and compliance

The responsibility of ensuring the above is not a technical decision but a high-level management decision. If the decision is taken at the wrong level or in the wrong perspective, the result can be serious for the business, which again falls back on management.

So therefore, the target audience and signee of the interface strategy is upper management.

A secondary purpose of the interface strategy is to give project management an idea of the effort ahead – both in terms of functional and technical work.

Therefore, the interface strategy must be created early in the project either during a pre-analysis phase or as first phase in an already started project.

Technical aspects are only considered where circumstances require technical assistance to gauge feasibility to accomplish the task due to complexity or extremely high volumes.

The interface strategy may indicate the need for a custom interfaces or an integration hub, which requires functional specification setting out the detailed requirements and then if custom/in-house made/built then a technical specification is needed.

Scope

The scope of the interface strategy is highly dependent on the overall project scope and timeline. Often projects are phased and may have intermediate system scenarios during which the business need to continue to operate.

On a large-scale project, you may want to split the interface strategy according to the implementation phases or sub-project schedules.

Scope Example:

image

The above example is a project looking to replace an old finance; payroll and treasury system with a new integrated finance and payroll system. The business seek to prioritise the business critical retail system and in a later phase to replace payroll and treasury systems.

If the phases are treated as two separate projects it may be convenient to have two interface strategies – one for phase one and one for phase 2. In case of parallel run; parallel implementations or downstream dependency of a decommissioned system, the interfaces may impact each other and should therefore be in one document.

Contents

These are the recommended top level chapters in the interface strategy:

  • General Overview: Upper management and general interest
  • System Analysis: Middle management and functional interest
  • Interface Analysis: Functional interest mainly

In some rare cases a technical considerations part maybe required to describe impacts of very high volume or space requirements.

General Overview

First part of the document should describe general scope and limitations enabling a high-level executive to create an overview of the decisions ahead.

For instance, use these sub-chapters:

  • Purpose
  • Scope
  • Limitations

Purpose: Explains about the overall project and how the interface strategy fits into this.

Scope: Lists key objectives; target systems and high-level project plan with timeline; phases and milestones.

Limitations: This describes both high-level business and legal limitations. Business limitations can the areas like seasonal impacts; other projects; reorganisations and mergers and acquisitions. Legal limitations are mainly based on statutory reporting like year-end; quarterly VAT reporting. In addition, Sarbanes-Oxley; data protection and sector specific rules may impact the interface strategy.

System Analysis

Second Part should contain short description of systems impacted by the above changes and an analysis of these changes and an overview of logical entities involved in the change. This will enable middle management to understand the overall impact on their functional area.

For instance, use these chapters:

  • Interface Diagram
  • System Descriptions
  • Interface Descriptions
  • Change Analysis

Interface Diagram: This is a complete as-is and to-be diagram of systems and interfaces between them. The interface diagram should focus on functional system blocks and logical interfaces.

A functional system block would be a function within a system like "Oracle Payroll" rather than "Oracle" as a physical system. Same goes for logical interfaces which would be "Payroll Journal" or "Salary Payment" rather than "GL data" or "BACS file". Also internal flows within a physical system should not be shown, as that would not constitute an interface in scope, so no flow is depicted between "Oracle Payroll" and "Oracle General Ledger".

A simple interface diagram example based on the scope example from above:

image

Note that the interface flow direction is the logical flow, as an interface can have bidirectional handshakes and feedback loops, which are considered technical rather than functional flows.

System Description: Each system and the specific module used in the interface should be described to a level so the decision maker understands the functionality and importance of this.

Interface Description: Each interface should be described to a level so the decision maker understands what is interfaced and what purpose this interface serves and how critical it is.

Change Analysis: Analysis of the as-is to the to-be transition and how to mitigate business continuity during the transition process.

Interface Analysis

For this chapter I would normally have a table per interface. In most cases this should only be to-be interfaces assuming knowledge of the as-is interface will feed into the to-be interface.

If many interfaces are required, the chapter can be divided into sub-chapters based on the source system or logical entity being interface depending on what is convenient.

The interface analysis should be kept at a high level but detailed enough for decisions to be made without pre-empting any required functional design. The information in the interface analysis should create a basis for the functional design, but not limit it.

These table sections are recommend:

  • Interface Name
  • Source system
  • Target system
  • Logical Entities
  • Structure Analysis
  • Dependencies
  • Trigger/Frequency
  • Volumetrics/Statistics
  • Transformations
  • Process
  • Controls
  • Security/Data Protection

Interface Name: Name of the interface. Ensure unique, consistent and precise naming like “new supplier invoice” or “payroll journal”. For instance the name “payroll interface” is bad, as it may cover multiple interfaces like “new employee”, “payroll journal” and “expense report invoice”.

Source system: Source system and module/sub-system where the interface logically originates.

Target system: Target system and module/sub-system where the interface logically terminates.

Logical Entities: What type of data is interfaced? Any sub-types or all data? For example, for the entity "invoice" is that "new invoices" or "amended invoices". In real life you may find each of these, may require a separate interface due to the nature of the data and how the interface is triggered.

Structure Analysis: Explain differences in entities between the two systems if needed. If the structure is very complex, a logical entity diagram may be needed. This is often very important for customer data as different structures may impact the level of customer information retained between two systems.

Dependencies: Dependencies on other interfaces or any functional dependencies. Like if another interface must be run before this or if the period must be closed before running the interface.

Trigger/Frequency: When and/or how often will the interface be run. Like "run daily at 3am" or functional event triggers like "when new customer is entered" or triggered by another interface "run when customer interface has completed".

Volumetrics/Statistics: How much data by time period. Time period is typically per day/week/month/year. This is important information for deciding on frequency, process and controls. For instance reconciling 1,000 records can be a manual task but if it is 100,000 records or more, some kind of automated reconciliation may be required.

Transformations: Changes to data between the two systems. This can be anything from data mapping to data cleansing like address validation and lookup. At this point only high-level transformation should be highlighted so no need to detail field level transformation.

Process: Automated transfer or any manual steps required for instance some bank interfaces may require manual load into a banking desktop system

Controls: How to reconcile the two systems and how to verify data has been successfully transferred. This may include reconciliation reports or automated controls or feedback loops. Also in case of error if manual check is needed or if automated alert is required.

Security/Data Protection: Any special functional security considerations. This may be encryption or masking of certain data or ensuring the data transferred is not generally accessible.

Conclusion

The above sections may not all be needed as it depends on the complexity of the project but one should ask yourself:

Does the quality of this interface strategy document ensure the right decision can be made?

Posted in: Functional Knowledge, Interfaces, Technical Knowledge by Kent Willumsen Comments Off on Interface Strategy – a Functional Approach ,

R12.2.x Functional Issues and Major Bugs

Trying to collect the major non-technical R12.2.x issues and bugs in a single note…

UPDATE 2014-03-26: R12.3 seems to be on the way; its referred to in many notes on Metalink so bugs below might not get fixed until then.

Topics covered in this note:

  • Flexfield Value Set Security: Enabled by Default
  • Report Manager Excel Publishing: Compile error on SAXXMLReader30

Flexfield Value Set Security: Enabled by Default

This is enabled by default and you will find that you are not able to view and update any segment values.

  1. Login as: SYSADMIN
  2. Use responsibility: User Management
    image
    And click: Users
  3. Find your user and click update:
    image
  4. Click: “Assign Roles” and search for role: “Flexfield Value Set Security: All privileges”
  5. Select role and enter justification and click: Apply
    image

Report Manager Excel Publishing: Compile error on SAXXMLReader30

This is described in note: 1077728.1 but is hard to find. Key is to search for: SAXXMLReader30

According to Oracle support:

R12.1.3: Apply patch 17429169

R12.2.2: NO PATCH EXISTS (yet)

So a really big issue for R12.2.x implementations.

The error happens on all Windows 8 clients when publishing a report to MS Excel:

image

Supplier Entry: Server Not Found

When activating the Supplier Entry html form you get:

image

On Vision you will get the reference: fa5099-obiee.oracleads.com

This is caused by an OBIEE personalization.

Click “Personalize Page”:

image

Scroll down to:

image

and click delete and same for:

image

Click return to application and all looks as in the “good old days”:

image

Posted in: Functional Knowledge, New Features by Kent Willumsen Comments Off on R12.2.x Functional Issues and Major Bugs , ,

Java with Internet Explorer 11 incompatible?

After upgrading to Windows 8.1 you will find it impossible to use Java with internet explorer.

This is particularly bad for Oracle E-Business Suite that depends of the use of Java for its professional applications.

Problem Identification

You may get the warning:

Java(tm) Plug-In 2 SSV Helper’ from ‘Sun Microsystems, Inc.’ isn’t compatible with Internet Explorer’s enhanced security features and has been disabled:

Or you might just get stuck on:

In order to access this application, you must install the J2SE Plugin version 1.6.0_27…

Click tools: image 

Manage add-ons: image

And it shows:

image

Notice I’m using the 64-bit Java plug-in here.

And it’s incompatible…

Do not despair – there is a solution.

Solution

Enhanced Protected Mode 

Click tools: image

Internet Options: image

Select Advanced tab and scroll down to Security:

image

Uncheck “Enable Enhanced Protected Mode” as above.

Click OK and restart the browser.

In “Manage add-ons” you should now have:

image

If it is still disabled click on the Enable button: image

Compatibility View

Click tools: image 

Compatibility View Settings: image

Add current site:

image

Click: Add

Reconnect to your site.

You may get a pop-up warning – just click Always Allow:

image

And re-try.

In case it still doesn’t help, ensure:

  • Only to install JRE 6.0.27
  • In case you installed JRE 7.0.45 – when you open a R12.2 Java screen for the first time it will automatically install JRE 6.0.27. This is in spite R12.2 should have built-in support for JRE 7.0.45…
  • Add site to: Trusted Sites
  • Set security for Trusted Sites to Medium-Low

If it still doesn’t work it may be due to policy settings from your IT department…

Posted in: Office Tools, Technical Knowledge by Kent Willumsen Comments Off on Java with Internet Explorer 11 incompatible? , ,

Installing Oracle E-Business Suite R12.2

Being a non-DBA and non-developer it is not easy to install Oracle E-Business Suite R12.2.

I did have to try a few times before succeeding but it is possible and hopefully now a bit easier with the guide.

On the surface is looks straight forward but I would recommend to set aside a full week to complete the full installation and patching cycle.

What you need to do is:

I usually skip the step “Install Server” but from R12.2 a Oracle Weblogic Server is included so you will need a lot more power to install R12.2 in a reasonable time. You could install and run R12.1 on a 4Gb Atom CPU based server but for R12.2 I would recommend minimum 8Gb and ideally 16Gb running on a i7 or Xeon CPU.

Posted in: Installation, R12 Installation, Technical Knowledge by Kent Willumsen Comments Off on Installing Oracle E-Business Suite R12.2 , , , , ,

Upgrading Oracle E-Business Suite R12.2.0 to R12.2.2

This is a sub-post to Installing Oracle E-Business Suite R12.2.

In general the patching process takes longer time than to install R12.2.0 so be sure to do plenty of cold-backups.

Patch Directory

For all patches; you need to download and unzip the patches in $PATCH_TOP:

# . vis.sh

# mv {zipfile} $PATCH_TOP

# cd $PATCH_TOP

# unzip "{zipfile}"

Patches

This is the official list of patches to upgrade to R12.2.2:

Sequence

Type

Patch

Note

File/Notes

1

Opatch

12415211

1330701.1

p12415211_10105_LINUX.zip

2

Adop

17064510

1320300.1

p17064510_R12.TXK.C_R12_GENERIC.zip

3

Adadmin

Create Snapshot

1320300.1

4

Opatch

16924879

1320300.1

p16924879_121010_Generic.zip

5

Opatch

17047617

1320300.1

p17047617_112030_Linux-x86-64.zip

6

Opatch

17184721

1320300.1

p17184721_112030_Generic.zip

7

Opatch

17468141

1320300.1

p17468141_112030_Linux-x86-64.zip

17468141 replaces 16702016

8

Sqlplus

utlirp and utlrp

1320300.1

Very Slow

9

Adop

Prepare

10

Adop

16605855

1320300.1

p16605855_12.2.0_R12_GENERIC.zip

11

Adop

15955263

1560906.1

p15955263_R12.AD.C_R12_LINUX.zip

Very slow

12

Adop

15946788

1560906.1

p15946788_R12.TXK.C_R12_GENERIC.zip

13

Adop

16207672

1506669.1

Initial R12.2 download: V37515*.zip

Very slow

14

Adop

16207673

1506669.1

p16207673_R12_GENERIC.zip

15 Adop 17305947 1506669.1 p17305947_R12.FND.C_R12_GENERIC.zip

16

Adop

Finalize

17

Adop

Cutover

18

Adop

Cleanup

Very slow

19

Adop

fs_clone

 

The official process is to run all of these but I also tries a faster approach, which is just to run the Adop patches. This worked just fine and was much faster. This is the un-official patch process.

Official patch process

This includes both Opatch and Adop patches.

Opatch

As opatch path varies with environment so always use:

# $ORACLE_HOME/OPatch/opatch

Patch 12415211

This is really an R12.2.0 post installation patch.

Apply this patch to fs1:

# runenv

Stop all services:

# adstpall apps/apps

Enter the WLSADMIN password: Oracle122

# addbctl stop

# addlnctl stop VIS

Apply opatch:

# cd $PATCH_TOP/12415211

# $ORACLE_HOME/OPatch/opatch apply -invPtrLoc /etc/oraInst.loc

Email address/User Name: {Enter}

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: {Y}

Is this system ready for updating?

Please respond Y|N > {Y}

Manual steps:

# cd <12.2_INSTALL_DIR>/fs1/EBSapps/10.1.2/lib

# cp -p -R stubs stubsORIG

# cd stubs

# cp $PATCH_TOP/12415211/files/lib/stubs/libgcc_s-2.3.2-stub.so .

# ln -sf libgcc_s-2.3.2-stub.so libgcc_s.so.1

# ln -sf libgcc_s.so.1 libgcc_s.so

Relink all products:

# $ORACLE_HOME/bin/relink all

Start all services again:

# addbctl stop

# addlnctl stop VIS

# adstpall apps/apps

Enter the WLSADMIN password: Oracle122

Patch 17064510

Ensure all services are running.

Use adop:

# runenv

# cd $PATCH_TOP

# adop phase=apply hotpatch=yes patches=17064510

Enter the APPS password: apps

Enter the SYSTEM password: manager

Enter the WLSADMIN password: Oracle122

Enter the RUN file system context file name:{Enter}

Create Snapshot

Use adadmin:

# runenv

# adadmin

Is this the correct APPL_TOP [Yes] ? {Enter}

Filename [adadmin.log] : {Enter}

Do you wish to activate this feature [No] ? {Enter}

Please enter the batchsize [1000] : {Enter}

Is this the correct database [Yes] ? {Enter}

Enter the password for your ‘SYSTEM’ ORACLE schema: manager

Enter the ORACLE password of Application Object Library [APPS] : apps

2. Maintain Applications Files menu

4. Maintain Snapshot Information

2. Update Current View Snapshot

1. Update Complete APPL_TOP

Review the messages above, then press [Return] to continue. {Enter}

7. Return to Maintain Applications Files menu

6. Return to Main Menu

5. Exit AD Administration

Patch 16924879

Stop all services:

# runenv

# adstpall apps/apps

Enter the WLSADMIN password: Oracle122

# addbctl stop

# addlnctl stop VIS

Source database environment for Opatch:

# dbenv

# cd $PATCH_TOP/16924879

# $ORACLE_HOME/OPatch/opatch apply -invPtrLoc /etc/oraInst.loc

Patch "16924879" is not needed since it has no fixes for this Oracle Home

Patch 17047617

# cd $PATCH_TOP/17047617

# $ORACLE_HOME/OPatch/opatch apply -invPtrLoc /etc/oraInst.loc

Email address/User Name: {Enter}

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: {Y}

Is the local system ready for patching? [y|n] {Y}

Patch 17184721

# cd $PATCH_TOP/17184721

# $ORACLE_HOME/OPatch/opatch apply -invPtrLoc /etc/oraInst.loc

Email address/User Name: {Enter}

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: {Y}

Is the local system ready for patching? [y|n] {Y}

# addbctl start

# sqlplus / as sysdba

SQL> start postinstall.sql

SQL> exit

# addbctl stop

Patch 17468141

# cd $PATCH_TOP/17468141

# $ORACLE_HOME/OPatch/opatch apply -invPtrLoc /etc/oraInst.loc

Email address/User Name: {Enter}

Do you wish to remain uninformed of security issues ([Y]es, [N]o) [N]: {Y}

Is the local system ready for patching? [y|n] {Y}

You may get – but ignore:

OPatch Session completed with warnings.

Run utlirp and utlrp

Beware this will run for a long time as it will create 100,000+ invalid objects that will be compiled.

Use sqlplus:

# dbenv

# sqlplus / as sysdba

SQL> shutdown immediate

SQL> startup upgrade

SQL> start $ORACLE_HOME/rdbms/admin/utlirp.sql

SQL> shutdown immediate

SQL> startup

SQL> start $ORACLE_HOME/rdbms/admin/utlrp.sql

SQL> start $ORACLE_HOME/rdbms/admin/utldtchk.sql

SQL> exit

In case the compilation gets stuck – stop the above process and try this:

# sqlplus system/manager

SQL> begin

SQL> sys.utl_recomp.recomp_serial();

SQL> end;

SQL> /

As the previous step takes a long time to complete it is a good idea to backup now.

Patch 16605855

Set environment:

# runenv

# cd $PATCH_TOP

Stop middle tier and start admin server:

# adstpall apps/apps

Enter the WLSADMIN password: Oracle122

# adadminsrvctl start

Enter the WLSADMIN password: Oracle122

Enter the APPS Schema password: apps

Use adop:

# adop phase=apply patches=16605855 hotpatch=yes

Enter the APPS password: apps

Enter the SYSTEM password: manager

Enter the WLSADMIN password: Oracle122

Enter the RUN file system context file name: {enter}

This creates <1000 invalid objects so not too bad.

Restart middle tier:

# adstrtal apps/apps

Enter the WLSADMIN password: Oracle122

Adop Prepare

The following patches can all be applied in same session however the middle tier must be running if not started already:

# runenv

# adstrtal apps/apps

Enter the WebLogic Admin password: Oracle122

Prepare for the patches:

# adop phase=prepare

Enter the APPS password: apps

Enter the SYSTEM password: manager

Enter the WLSADMIN password: Oracle122

Enter the RUN file system context file name: {enter}

Enter the PATCH file system context file name: {enter}

Patch 15955263

Adop Prepare

Use sqlplus:

# dbenv

# cd $PATCH_TOP

# sqlplus /nolog @15955263/admin/adgrants.sql apps

Use adop:

# runenv

# adop phase=apply patches=15955263

15955263 will run for a very, very long time – so do not kill.

However it may get stuck. In that case kill the patch and shutdown the middle tier and compile all objects from sqlplus. Then restart middle tier and restart adop patch using:

# adop phase=apply patches=15955263 restart=yes

Patch 15946788

Now the second patch:

# adop phase=apply patches=15946788

Patch 16207672

Use adop:

# runenv

# cd $PATCH_TOP

# mv /oracle/Stage122/V37515*.zip .

# unzip "V37515*.zip"

# adop phase=apply patches=16207672

16207672 will run for a very, very long time – so do not kill.

Patch 16207673

# adop phase=apply patches=16207673

Patch 17305947

# adop phase=apply patches=17305947

Adop Final Steps

Doing these one by one is case of problems…

Ready the instance for cutover:

# adop phase=finalize

Make the patch edition the new run edition:

# adop phase=cutover

Source the environment again:

# vis

Drop obsolete objects and data from old editions:

# adop phase=cleanup

Adop Clone

Copy the run file system to the patch file system:

# adop phase=fs_clone

Done

image

Un-official Patch Process

This will only apply the Adop based patches.

Patch 17064510

# runenv

# adop phase=apply hotpatch=yes patches=17064510

Patch 16605855

Stop middle tier and start admin server:

# adstpall apps/apps

# adadminsrvctl start

Use adop:

# adop phase=apply hotpatch=yes patches=16605855

Restart middle tier:

# adstrtal apps/apps

Patch 15955263

# adop phase=prepare

Use sqlplus:

# dbenv

# cd $PATCH_TOP

# sqlplus /nolog @15955263/admin/adgrants.sql apps

Use adop:

# runenv

# adop phase=apply patches=15955263

Patch 15946788

Use adop:

# adop phase=apply patches=15946788

Patches 16207672

Use adop:

# adop phase=apply patches=16207672

Patches 16207673

# adop phase=apply patches=16207673

Patches 17305947

# adop phase=apply patches=1730594716207673

Adop Final Steps

Ready the instance for cutover:

# adop phase=finalize

Make the patch edition the new run edition:

# adop phase=cutover

Source the environment again:

# vis

Drop obsolete objects and data from old editions:

# adop phase=cleanup

Clone the file system:

# adop phase=fs_clone

Done…

Posted in: Installation, R12 Installation, Technical Knowledge by Kent Willumsen Comments Off on Upgrading Oracle E-Business Suite R12.2.0 to R12.2.2 , , , ,