I spent 2 weeks in Senegal. One week of holidays in the South, Casamance, and one week work on an internal Popay project.
We ordered a take away sandwich, and great was my surprise that the sandwich was wrapped within printed paper. My first reflex was about health.
Then i had a closer look into the paper, and i saw a listing, dating from September 2002.
An old style print, listing bank account numbers, employee names, employee numbers, net amount.
Doudou Sonko, 114816 cfa net à payer, based in Ziguinchor. The relaxed, quiet town we were one week ago. How twisted can a souvenir be for a payroll consultant.
Payroll, Oracle Apex, data visualizations.
Aug 17, 2008
Jul 30, 2008
Why Apex is there to stay
Some people asked me recently how sure it is Oracle will continue support and developement of Apex. Never say never, but the fact that it comes pre-installed with XE and the 11g database tells already something.
But the most striking fact for me is that Oracle development uses Apex themselves as part of their database solutions. Oracle Vault, the build-in auditing tool, uses Apex as reporting layer. Just have a look into the online documentation. Interactive reports, someone?
But the most striking fact for me is that Oracle development uses Apex themselves as part of their database solutions. Oracle Vault, the build-in auditing tool, uses Apex as reporting layer. Just have a look into the online documentation. Interactive reports, someone?
Jul 24, 2008
One click slip
We just implemented a solution, based on Forms Personalizations, so you can launch a payslip for a given employee and given period, by one single click.
The Forms Personalization adds an entry to the menu, and starts two more actions. The first action launches a plsql program that starts the actual concurrent program of the payslip, stealing the parameters from the Quickpay form or the Assignment Actions form.
The second action launches an url that opens the pdf payslip in the browser. The url is generated via plsql, and i blogged about that some time ago.
The Forms Personalization adds an entry to the menu, and starts two more actions. The first action launches a plsql program that starts the actual concurrent program of the payslip, stealing the parameters from the Quickpay form or the Assignment Actions form.
The second action launches an url that opens the pdf payslip in the browser. The url is generated via plsql, and i blogged about that some time ago.
Jun 25, 2008
ohug blog silence
OHUG is on the final day, and i was not attending this year. I expected to see a lot of blogs talking about it, but silence as far as I can see euh hear. This tells a lot about the 2.0-ness of the people attending and expecting in the feature set of their HCM solution.
And what about Fusion and ready to market. Did I used the word silence already?
By the way, holistic talent management was the talk of the town.
And what about Fusion and ready to market. Did I used the word silence already?
By the way, holistic talent management was the talk of the town.
Jun 14, 2008
Launch an Apex page from your forms
This article describes the steps to launch an html page from an Apps form, using Forms Personalizations. In this example, the html is an Apex (Application Express) page.
The first step is to navigate into the form from which you want to launch an html page. Then you navigate further via the menu ::Help::Diagnostics::Custom::Forms Personalizations.
Create an additional menu entry, as shown:

and specify for example Special16 as the menu entry.

Then define the real action, linked to this menu entry:

and define the html call

The call here is dynamic, since it starts with the equal (=) sign.
= 'http://apps12.popay.be:7777/pls/apex/f?'
|| 'p=103:8:::NO::P8_PERSON_ID:'
|| :PERSON.PERSON_ID
The :PERSON reference is filled in from the forms variables and block, which you can examine.
If you want to try first with an easier, static html call example, then simply put there
http://www.popay.be
An other example of an url (via mod plsql) is:
fnd_profile.value( 'APPS_WEB_AGENT')
|| '/popay_htp_hr_org?p_org_id='
|| :HOU1.ORGANIZATION_ID
Quit the original form, enter the form again, and you should see the new meny entry:

You are now one click away from the html page.

This article is not exploring how the create the Apex page, how to setup the Apex Apps security integration, and so forth, and will be nice topics for the future.
The first step is to navigate into the form from which you want to launch an html page. Then you navigate further via the menu ::Help::Diagnostics::Custom::Forms Personalizations.
Create an additional menu entry, as shown:

and specify for example Special16 as the menu entry.

Then define the real action, linked to this menu entry:

and define the html call

The call here is dynamic, since it starts with the equal (=) sign.
= 'http://apps12.popay.be:7777/pls/apex/f?'
|| 'p=103:8:::NO::P8_PERSON_ID:'
|| :PERSON.PERSON_ID
The :PERSON reference is filled in from the forms variables and block, which you can examine.
If you want to try first with an easier, static html call example, then simply put there
http://www.popay.be
An other example of an url (via mod plsql) is:
fnd_profile.value( 'APPS_WEB_AGENT')
|| '/popay_htp_hr_org?p_org_id='
|| :HOU1.ORGANIZATION_ID
Quit the original form, enter the form again, and you should see the new meny entry:

You are now one click away from the html page.

This article is not exploring how the create the Apex page, how to setup the Apex Apps security integration, and so forth, and will be nice topics for the future.
May 29, 2008
calling balances via plsql in fast formula
We all know you can call plsql functions within fast formula. The way to go when it becomes really complicated.
When you need the last 9 months of a particular balance (a running total), you can fix that by calling the seeded pay_balance_pkg.get_value plsql function.
You can even use it to retrieve balance values from the actual period. But in that case you sometimes run into the issue that the data is still in memory of the payroll engine, and not yet flushed into the Oracle tables. So the balance call returns zero, while you know very well it is not.
A trick to force the engine to flush the data (and to guarantee that he balance function call comes with the right values) is to call a YTD balance just before your function call. Since the YTD spans multiple periods, the engine realizes he needs database access, and flushes his memory structures.
When you need the last 9 months of a particular balance (a running total), you can fix that by calling the seeded pay_balance_pkg.get_value plsql function.
You can even use it to retrieve balance values from the actual period. But in that case you sometimes run into the issue that the data is still in memory of the payroll engine, and not yet flushed into the Oracle tables. So the balance call returns zero, while you know very well it is not.
A trick to force the engine to flush the data (and to guarantee that he balance function call comes with the right values) is to call a YTD balance just before your function call. Since the YTD spans multiple periods, the engine realizes he needs database access, and flushes his memory structures.
May 20, 2008
RUP 5 for Hrms
2300 fixes for Hrms available right now on Release 12.
Since the Hrms functionalities of 11i and R12 do not differ that much, i wonder when these fixes will be downgraded.
Will they come back as the July pack we were getting used too, or will oracle skip 11i on this, to push all of us gently towards the 12 version? Apps unlimited or limited Apps?
Since the Hrms functionalities of 11i and R12 do not differ that much, i wonder when these fixes will be downgraded.
Will they come back as the July pack we were getting used too, or will oracle skip 11i on this, to push all of us gently towards the 12 version? Apps unlimited or limited Apps?
Mar 31, 2008
Metalink down, planned
I had to read that twice, and checked if it was not planned on the first of April. But no, Metalink will go dark for a few hours. Oracle the high availability database. And anyone knows when Google plans the upgrade their search site?
Mar 16, 2008
Fusion = Apps 13
This article by Tim Dexter of BI Publisher name and fame just tells in between the lines that all eBusiness Suite reports will be ported to Fusion. What is in fact the same as saying that Fusion is Apps 13, an evolution from R12, not a new game.
So the good old per_all_assignments_f will still exists. Maybe with a good looking UI on top of it, which passed for the first time an usability lab. Skip the last part, I'm asking too much.
SOA only matters at the back end side, not at the front end, despite the Web 2.0 vague.
So the good old per_all_assignments_f will still exists. Maybe with a good looking UI on top of it, which passed for the first time an usability lab. Skip the last part, I'm asking too much.
SOA only matters at the back end side, not at the front end, despite the Web 2.0 vague.
Mar 7, 2008
My Virtual Apps
Since a few days I run APPS via a VMWARE virtual machine on my little laptop. Vision 11.5.10. And all data on an external disk.
With 1G of memory it is slow, but not too slow. Anyway, I ordered already an extra Giga RAM.
Summary till now: i love it, but it needs to be seen how handy this setup will be when i have to restore the virtual machine, a heafty 40G of unzipping.
Next step is to run Documentool on it. And publish the output. But we discovered some data corruptions in the Vision database, which needs to be worked around in Documentool.
I expected these corruptions. You see them on any project, and the Vision database is a very old, ongoing project.
With 1G of memory it is slow, but not too slow. Anyway, I ordered already an extra Giga RAM.
Summary till now: i love it, but it needs to be seen how handy this setup will be when i have to restore the virtual machine, a heafty 40G of unzipping.
Next step is to run Documentool on it. And publish the output. But we discovered some data corruptions in the Vision database, which needs to be worked around in Documentool.
I expected these corruptions. You see them on any project, and the Vision database is a very old, ongoing project.
Mar 3, 2008
Oracle Fusion Capable
Documentool is Oracle Fusion Capable.
Do you need an additional save harbor statement?
Do you need an additional save harbor statement?
Feb 22, 2008
A license for one LOV?
The very excited people contact form has two fields to store the begin and end reason of a contact relationship.
These lists of values are standard empty, but when you create some Personal life events, they show up nicely in the relationship reason fields.
Too bad that both List of Values show identical reasons. A divorce is not the most straightforward reason to start a relationship. Or maybe it is, but then in the other way.
Even worse is that you need a license for OAB (Oracle Advanced Benefits) to create these personal life events. So far the integrated solution.
Forms personalizations can eventually overcome both issues.
These lists of values are standard empty, but when you create some Personal life events, they show up nicely in the relationship reason fields.
Too bad that both List of Values show identical reasons. A divorce is not the most straightforward reason to start a relationship. Or maybe it is, but then in the other way.
Even worse is that you need a license for OAB (Oracle Advanced Benefits) to create these personal life events. So far the integrated solution.
Forms personalizations can eventually overcome both issues.
Feb 5, 2008
Distributed costing, again
First of all, the input value over which you want to distribute must be Pay Value. Any other name will not do, even if the uom is Money.
And it seems that distribution over distribution seems to work (by accident, or by purpose?). When setting up the element link for distributed costing, it will tell you the element is not eligible for distributed costing since it is part of a distributed element set.
Remove it from ther element set, configure the element link, and add it back to the element set.
And it seems that distribution over distribution seems to work (by accident, or by purpose?). When setting up the element link for distributed costing, it will tell you the element is not eligible for distributed costing since it is part of a distributed element set.
Remove it from ther element set, configure the element link, and add it back to the element set.
Feb 3, 2008
Desupport of 11.5.9
As you can read on Schan's excellent blog , 11.5.9 Premier Support ends by June 2008. This is almost tomorrow. There is no Extended Support offered, but Sustaining Support is there to stay.
By the way, Sustaining Support is not giving you any new updates.
So if you are on 11.5.9 with a localized payroll, you simply need these patches and fixes, due to statutory legislative changes. So Sustaining Support is not an option. So you have to upgrade to 11.5.10. By tomorrow.
By the way, Sustaining Support is not giving you any new updates.
So if you are on 11.5.9 with a localized payroll, you simply need these patches and fixes, due to statutory legislative changes. So Sustaining Support is not an option. So you have to upgrade to 11.5.10. By tomorrow.
Jan 31, 2008
my fast formula editor
I used several years the free ConText editor to edit fast formulas. Recently Paolo suggested me Notepad++, which is open source, and does a great job in syntax highlighting and brace matching.
I used it today for the whole day, and even when i have to get used to shortcuts and menu options, i would not be surprised to stick with it.
By the way, i used the sql language as syntax style.
I used it today for the whole day, and even when i have to get used to shortcuts and menu options, i would not be surprised to stick with it.
By the way, i used the sql language as syntax style.
Jan 28, 2008
Oracle acquires BEA
The first thought is that this is a pure middleware play.
Buy installed base and generate support revenue.
Or has it to do something with Fusion Apps. I do not think so. The architecture is defined right now, and BEA will only play a role later on in the life cycle of Fusion Apps. If any.
But the hidden gem could be Tuxedo. Oracle wants to position itself in the primary processes. Think banking processes for banks. And these transactions are handled by Tuxedo, already for years.
And there is the big money. Compared to SAP that hunts for the little cents with Business By Design.
Inovation. Nope. Smart. Yes.
Any link with HR. Nope.
Buy installed base and generate support revenue.
Or has it to do something with Fusion Apps. I do not think so. The architecture is defined right now, and BEA will only play a role later on in the life cycle of Fusion Apps. If any.
But the hidden gem could be Tuxedo. Oracle wants to position itself in the primary processes. Think banking processes for banks. And these transactions are handled by Tuxedo, already for years.
And there is the big money. Compared to SAP that hunts for the little cents with Business By Design.
Inovation. Nope. Smart. Yes.
Any link with HR. Nope.
Jan 19, 2008
HR 2.0
Every HR implementation tries to structure all kinds of employee related data within the venders shoebox. We just make it fit, but a lot of data and processes are not structured at all.
Why not load all employees within a social network, tag them with competences, positions, domains of interest, ... from the corporate HR system? And then let the employees connect to their peers, discuss issues, create communities within the enterprise, learn from collegues the other side of the world. Free flow versus structure.
From a technical point of view, it is easy. But which organisation will be ready to give this a try?
Why not load all employees within a social network, tag them with competences, positions, domains of interest, ... from the corporate HR system? And then let the employees connect to their peers, discuss issues, create communities within the enterprise, learn from collegues the other side of the world. Free flow versus structure.
From a technical point of view, it is easy. But which organisation will be ready to give this a try?
gross up rounding error
One of the outputs generated by the gross up formula is the remainder. We noticed that we missed a few eurocents in costing, due to these remainders.
First we set the "to within" input value to 1 eurocent, but gross up still was coming up with a few remainders of one cent.
And we could not decrease the value of "to within", since the unit of measure was money.
So we changed the unit of measure to Number, filled 0.009 as the "to within" tollerance, and grossup did a perfect job, leaving 0 as remainder. We still have to see if this perfect job has no performance consequences.
We opted not to create an additional element to store the remainder, and cost it.
First we set the "to within" input value to 1 eurocent, but gross up still was coming up with a few remainders of one cent.
And we could not decrease the value of "to within", since the unit of measure was money.
So we changed the unit of measure to Number, filled 0.009 as the "to within" tollerance, and grossup did a perfect job, leaving 0 as remainder. We still have to see if this perfect job has no performance consequences.
We opted not to create an additional element to store the remainder, and cost it.
Sep 17, 2007
Gross up, out of the box
This article describes the configuration steps for the grossup or gross to net functionality. The seeded fast formulas are used, but you could implement your own variations on them.
1. define an element type.
3. Define an element link, and happy testing.
Yes you can change the names of the input values, since a mapping is foreseen by the payroll engine, and also the fast formulas can be used as a template for your custom solution, although i would not advise that.
1. define an element type.
- In the Advance tab, set Gross up (which activates the iterative flag and the process seperate)
- define input values, based on the inputs of the seeded fast formula default_grossup.
- Pay Value
- Amount
- Additional amount
- Low gross
- High gross
- Remainder
- To within
- Method (defaulted to interpolation)
- Grossup balance
- map the input values to the inputs of the fast formula (which is in this case a 1-1) via the iterative rules button.
- (optional) exclude grossup balances, via the exclude balances button. Only those balances that are defined as grossup show up in the list to be excluded.
3. Define an element link, and happy testing.
Yes you can change the names of the input values, since a mapping is foreseen by the payroll engine, and also the fast formulas can be used as a template for your custom solution, although i would not advise that.
Grossup only works from an element entry, so you can not activate it from an indirect run result.
result name | type | input value | severity |
ADDITIONAL_AMOUNT | Adjust | Additional amount | |
CHANGER | Adjust | Changer | |
GROSSUP_BALANCE | Adjust | Grossup balance | . |
HIGH_GROSS | Adjust | High gross | |
LOW_GROSS | Adjust | Low gross | . |
MESG | Message | _ | Information |
REMAINDER | Adjust | Remainder | . |
STOPPER | Stop | _ | . |
Sep 5, 2007
BEE Spreadsheet Interface
We wanted to load BEE batch element lines via Excel. And we remembered somehow it was described as new standard functionality a few family packs ago.
So just search metalink and there we go. At least, that was the plan. Metalink came with a lot of results, pointing to web ADI, error messages and how to work around them, but a simple doc that describes how to activate the functionality was not found.
I guess Google set the search standards too high.
But ok, a new try the next day on some slightly different keywords, and all of a sudden "BEE Spreadsheet Interface" docs showed up within the top 40 list. So that was the magic search string.
And from that moment on we found some docs, and one hour later a first xls (sorry spreadsheet) was loaded.
Before you ask it: note 341427.1 did the trick.
So just search metalink and there we go. At least, that was the plan. Metalink came with a lot of results, pointing to web ADI, error messages and how to work around them, but a simple doc that describes how to activate the functionality was not found.
I guess Google set the search standards too high.
But ok, a new try the next day on some slightly different keywords, and all of a sudden "BEE Spreadsheet Interface" docs showed up within the top 40 list. So that was the magic search string.
And from that moment on we found some docs, and one hour later a first xls (sorry spreadsheet) was loaded.
Before you ask it: note 341427.1 did the trick.
Subscribe to:
Comments (Atom)