May 22, 2007

HRMS Release 11i Family Pack K Rollup 2

The summer is almost there (here in Belgium), and a new family pack is coming. Sorry, roll up.

One of the nice new payroll core features is the possibility to handle payments to foreign bank accounts. Dev made it now possible to select organizational payment methods from an other legislation then the one of your business group.

And i have the impression this is only implemented in framework, so i wonder how the form will behave.

May 5, 2007

Oracle in the blogging community: they don't get it yet

In the eBusiness suite corner, i'm not aware of good blogs from Oracle, except the tech stack blog of shan.

With a good blog, i mean a blog where personal opinions are expressed in an open, transparent way, by key players. For that to happen, Oracle is way too closed and hierarchical. Marketing and legal are close followers of all expressions.

First thing to happen is an internal cultural shift to openess. Inviting the blog community to their events can help that transformation to happen. I'm sure that the top bloggers will not all follow the official marketing strategy and message, and will post critical questions. If Oracle internals will then reply, an open communication and exchange can start.

But this will take time, and i'm not sure if Oracle wants to open the windows when the Fusion story needs to be told. A single marketing message is then so important, and the fusion message will not be easy to communicate anyway.

May 4, 2007

applications unlimited

From a marketing point of view, again, genious. Oracle will support your solution all over the time, if you pay for it.

But the pieces below will be desupported anyway by other suppliers, so you are forced by others to upgrade.

Apr 15, 2007

I'm afraid to raise a SR

Disclaimer: i work sometimes directly for Oracle support, so receive money from them.

But on almost every SR i have to pleasure to work on, they drive me nuts. To bring the status of an SR asap back to the customer, they paste in the most fanstatic texts. Or ask for whatever diagnostic information. And ask first for the traces that have nothing to do with the problem itself, but take ages to generate. Or ask for versions, even when you pasted it in already 3 times.

But ok, that is the first layer of analysts you should try to go through. It takes time, but once you now their top 10 of preferred useless info, you can prepare yourself pretty well. Unless you do not have the time (P1).

It becomes more dangereous when they suggest out of context recommendations, that can make the problem worse, or can have impact on other modules. But if you explain why you think it is not a good idea to perform a step, and thus refuse to implement their recommendation, they will not proceed in handling the SR. Catch 22, or better, deadlock.

It would help if all of these analysts had some on-site experience. For all the money customers pay for support from Oracle, this is not asking too much.

Before i end this flow of thoughts, let me stress too that some analysts simply do their job very well, and just play their role as intermediate between customer and development.

After a while, you start knowing them by name. One hint, if your SR is randomly assigned to one of these that think that collecting 10 Giga of data is necessary before contacting dev, try to escalate untill a knowledgable analyst takes over.

Mar 30, 2007

retropay, i hate it, i love it

I scanned my blog for retropay. I found back a post of september 2003. At that time we worked out in the Netherlands a solution around reversals. Standard retropay was not an option at that time, since the specifications of the customer were too specific, volumes were huge, and the NL localisation and core solution were not yet 100% finished.

Q: Would i do it again, more then 3 years later?
A: Yes.

Main reason is performance. Retropay is designed to recalculate exceptions. When massive retropay is needed, you can start it very early in the payroll cycle. And run it an other time to process the last minute exceptional cases.

Mar 29, 2007

key flex fields

It is not the first time they ask me to "decode" a flex structure. Till now, i havent found a generic way of doing that, but the supported package fnd_flex_ext does the trick nicely for key flexfields. The function get_segs returns the concatenated display value off all segments.

Please drop me a line when you can point me to a similar function for descriptive flexfields.

a passionate user has gone

There will always be a few psychos around. But one can be enough to ruin your life.

Mar 23, 2007

We do not use custom.pll

Why do people still enhance the Apps forms via custom.pll coding?

Are forms personalizations not enough? Maybe, but apply the 80/20 principle, and don't code custom anymore.

Are we not shifting towards self service? So every business logic you add in custom.pll, you can do again in for those lovely web pages.

But my first try anyway is always user hooks.

Feb 20, 2007

Salary updates via Web ADI

The standard integrator 'HR Update Salary Proposals' is showing only seeded US salary components, the columns to change the amount or percentage by component are missing, and the headers are not meaningfull.

Showing other components then the seeded once was solved by changing the view hru_salary_proposal. This is a documented change. Searching online help or metalink by the name of the view of peupl01.v.sql will explain you. How to find these docs without knowing these details already is an other story. But Oracle is marketing now a search solution.

Adding additional columns was done by enabling hidden columns in the Web ADI layout of the 'HR Update Salary Proposals' integrator.

Note 389624.1 on CWB was helpfull in explaining how the change column names. Once the 'Web ADI - Interface Columns Integrator' was enabled and unsecured, we could download the interface and do the modifications.

But the end user was not happy with the order of the columns. With an update statement (on bne_layout_cols) we could work around that, but we have still not found a documented way to realize that. Feel free.

Feb 17, 2007

Release 12

I guess R12 will be the most stable release ever, since
1. there are no new functionalities in it for HCM
2. the technology stack is simplified

(1) It seems all new functionalites have been released already on previous 11i family packs and RUPs. I only found some changes on the new financial legal entities, operating units and business groups (based on hr security profiles!) and checklist Self Service functionality.

(2) No 9 database anymore. Only a few Oracle Homes. Fusion middleware.

apologies

I was not realizing it was so long ago i was not blogging. How do you find time to do it anyway?

I was very busy the last months, so sorry, but i'm afraid the next months will be even worse.

Some things i was working on, since the last post, so far i remember:
- serving a payroll customer in the Netherlands having issue after issue. There is light at the end of the tunnel.
- Implementing a payroll upgrade from 11.0.3 to 11.5.10. Nasty NLS issues, and the volume test was challenging.
- Self service implementation (with AME).
- upgrading Documentool
- creating an extention on the Dutch payroll for foreign payments (bic/iban/btl91)
- Compensation Workbench. Oracle using their own OAB framawork.

Aug 11, 2006

element sets within Payroll

Is it possible to prevent users from updating particular element entries? Well, today i learned that a profile option can be set to specify an element set which defines the 'do not touch me' element types.

An overview of the different types of element sets:

Customization set, for element entries

  • Limit the elements that can be seen on a configured version of the Element Entries window
  • List the elements to be entered for assignments using BEE
  • Prevent users updating entry values in the Element Entries form for a set of elements. (set the element set in the profile option HR:Non-Updateable Element Set)

Run set, for payroll processing

  • Use a run set to specify the elements to be processed in a payroll run.

Distribution set, for costing

  • Use a distribution set to define the elements over which the costs of other elements are to be distributed.

Jun 6, 2006

Bye bye family packs, welcome Rollups

Oracle released the first rollup patch for Hrms.

One of the new features is the FastFormula Assistant. She let's you

  • choose multiple FastFormulas to compile
  • show line numbers for formula text to locate easily errors
  • upload/download a formula for integration with your favorite text editor
  • generate FastFormula text templates

Feb 5, 2006

fusion = Ebusiness Suite 12

I read a blarticle about fusion that is not just repeating the messages oracle spreads, but is trying to read in between the lines. And funny.

Jan 3, 2006

Calculate absence duration

When you create the fast formula BG_ABSENCE_DURATION (probably a copy from TEMPLATE_ABSENCE_DURATION), this formula is used to calculate the duration of the absences entered in your business group (BG). What's in a name.

Good to known is that this formula can have as extra parameters
  • assignment_id (context)
  • element_type_id (context)
  • absence_attendance_type_id

The last one allows you to implement calculation rules per absence type.

Nov 2, 2005

Online Sql Trace

When you have long running processes (like payroll PUYGEN), you do not need a sql trace file to find the top sql consumers.

Some sql statements can give you the same result.

select module, sql_hash_value, s.*
from v$session s
where module = 'PUYGEN'
order by 1, 2

select sql_text, s.executions, buffer_gets, s.*
from v$sql s
where hash_value =

select *
from v$sql_plan
where hash_value =
order by id

But this set of statements will not give you the waits.

Aug 7, 2005

Htmldb gives pls-00103

A customer wanted to have a decentralized application, based on the positions of Oracle Hrms.

Since self-service is non-existing for positions, we had to explore other options. At the end we opted for HtmlDb.

Installation went smooth, and the workspace was created in a snap. But when creating a first test application, we had several errors, but without error messages.

At the end we were able to see the error message, together witha piece of code. pls-00103 was popping up, together with a select in a select, dynamically generated by htmldb.

We brought the problem down to:
declare
n number;
begin
select nvl( 1, (select 2 from dual))
into n
from dual;
end;

This snippet executed fine on my laptop database (9.2.0.1) ,but not on the apps database (9.2.0.5).

We were sure we had discovered a new bug in the database software, but a lucky metalink hit brought us further.

Event 10933 mimics old plsql-sql behavior, and this event was set in our upgraded oracle apps instance.

We unset the event, and voila.

Summary: oracle apps ; htmldb ; pls-00103 ; event 103999

Mar 29, 2005

List all request launched via a request set

This query shows all request related to a master request with timing and dependecies.

select
level,
status_code,
(
select nvl( description, concurrent_program_name)
from fnd_concurrent_programs p
where p.concurrent_program_id = r.concurrent_program_id
and p.application_id = r.program_application_id
) prog,
trunc( ( actual_completion_date - actual_start_date) * 24 * 60, 2) minuten,
request_id,
argument_text,
priority
from fnd_concurrent_requests r
where 1 = 1
start with r.request_id = :p_top_request_id
connect by prior request_id = parent_request_id
order siblings by request_id;

Feb 22, 2005

See more concurrent output.

It is possible to see someone other's concurrent output, when you are linked to the same responsibility the user submitted the concurrent.

You do that by setting the profile option Concurrent:Report Access Level to Responsibility instead of the default or implicit value User.

This feature can become very handy for operational people to share each others output.

Feb 21, 2005

the organizational payment methods api

The update api for organizational payment methods (pay_org_payment_method_api / update_org_payment_method) shows some unpredictable effects.

In order to overcome that, i had
  • to pass a null value for the p_sets_of_book_id, instead of the default value.
  • to pass a value for a random pmeth_information column, instead of defaulting them all (and leave them out of the api call).