We wanted to extend the Dutch localization so that the mandatory assignment extra info fields where defaulted automatically when entering a new employee.
First step was to cook up some plsql, based on api's, that creates the assignment extra infos. Easy.
Now we only need to fire that code when they create a new employee.
So a user hook would be nice, but since the assignment screen is still not using an api, that was not an option.
Ok, so let's go dynamic triggers, which in this case corresponds to a real database trigger.
Oops, mutating table errors. Oops, cannot perform rollback/commit in a trigger (hidden in the api calls).
Ok, so let's transform the original piece of plsql into an autonomous transaction.
Oops, no data found. Sure, since it operates as a separate transaction, it does not yet sees the assignment that fired the trigger.
Finally we changed the dynamic trigger into an Update trigger, and pieces felt together.
Payroll, Oracle Apex, data visualizations.
Nov 22, 2008
Nov 12, 2008
Apps doesn't like the Apex datepicker
The default DatePicker of Apex was throwing a security error when we were testing our Apex application. We had to pass a user/password for a call on the wwv_flow_utilities package.
Just registering that package as secure plsql as System Administrator in Apps solved the issue (table: fnd_enabled_plsql).
But when we changed the month in the DatePicker, the same error popped up again.
Seems Apex adds the schema name to the package call, and as such the secured plsql scan can not handle the call.
So we were forced to go for a custom DatePicker.
A pity we can not wait for Apex 4.0 were jQuery will be included by default. Demostuff.
Just registering that package as secure plsql as System Administrator in Apps solved the issue (table: fnd_enabled_plsql).
But when we changed the month in the DatePicker, the same error popped up again.
Seems Apex adds the schema name to the package call, and as such the secured plsql scan can not handle the call.
So we were forced to go for a custom DatePicker.
A pity we can not wait for Apex 4.0 were jQuery will be included by default. Demostuff.
Nov 8, 2008
Use the Organization on the User's Assignment(s) as the Top Oganization
We ran in a small HR security issue, where it seems that future hires are not visible for a manager, when using a security profile that lists all employees in and under the manager's organization.
When digging into the Oracle code, we understood why.
Please enjoy the comments and the trunc( sysdate) piece of magic, found in the hr_security_internal package.
FUNCTION get_effective_date RETURN DATE
IS
BEGIN
--
-- Default the effective date to sysdate. This could potentially
-- be used in the future to set the effective date to the
-- date-track effective date, but as it stands now, security
-- is also determined as of sysdate.
--
RETURN trunc(sysdate);
END get_effective_date;
When digging into the Oracle code, we understood why.
Please enjoy the comments and the trunc( sysdate) piece of magic, found in the hr_security_internal package.
FUNCTION get_effective_date RETURN DATE
IS
BEGIN
--
-- Default the effective date to sysdate. This could potentially
-- be used in the future to set the effective date to the
-- date-track effective date, but as it stands now, security
-- is also determined as of sysdate.
--
RETURN trunc(sysdate);
END get_effective_date;
Oct 26, 2008
Apex on Apps
The Apex statement of direction mentions for the 4.0 version a j2ee Apex listener, as an alternative for mod/plsql, and additional Authentication schemes.
Knowing that R12 doesn't support anymore mod plsql, i read in the tea leaves that the 4.0 release will add an Apps EBS Authentication scheme connecting via the new listener.
In the mean time, some more posts will follow that describe how we integrated Apex with Oracle's eBusiness suite.
Knowing that R12 doesn't support anymore mod plsql, i read in the tea leaves that the 4.0 release will add an Apps EBS Authentication scheme connecting via the new listener.
In the mean time, some more posts will follow that describe how we integrated Apex with Oracle's eBusiness suite.
Documentool for Forms personalizations
Tired of creating your setup documentation by copy/paste? Or via print screens? Me too.
So we added a new module to the Documentool family. Payroll, Hr, Flexfields and Alerts welcome Forms Personalisations.
Documentool for Forms Personalisations is now in beta, and you can participate in the beta program by simply sending a mail request to documentool@popay.be.
Some people asked also for a solution to generate documentation for Framework Personalizations. Thanks for the suggestion.
Sep 22, 2008
Lasagna with french fries, welcome in the Netherlands
Oracle NL invited me to conduct a 2 days Fast Formula training, so far so good.
Found a nice family run hotel nearby, so far so good.
Went to a restaurant nearby, by far no good. Ordered tuna, got Lasagna. With French Fries. Skipped the menu dessert, had to pay the whole bill.
It's really not the first time I'm in the Netherlands, but this was an Olympic top, by far.
Found a nice family run hotel nearby, so far so good.
Went to a restaurant nearby, by far no good. Ordered tuna, got Lasagna. With French Fries. Skipped the menu dessert, had to pay the whole bill.
It's really not the first time I'm in the Netherlands, but this was an Olympic top, by far.
Sep 6, 2008
Documentool - JavaScript - Chrome
The html output of Documentool renders a tree via Java Script. A little slow sometimes for huge trees, really slow on Internet Explorer 6.
So i was curious to see how Chrome would do, and was simply blown away. The new JS implementation does make a difference. And this is only a start, knowing that Firefox and Safari also have new stuff on their way. Microsoft has to follow. Browser War 2.0.
But why i see on the workfloor only IE6?
Sep 3, 2008
One click slip, part II
The payslip solution we developed over here is a concurrent program based on BI Publisher. So adding an optional PROFORMA watermark in the rtf template was not that hard with the latest Word in place. Also, we show the Pay Advice Message from the Quickpay form on the One Click Slip.
Aug 17, 2008
Data security in the streets of Dakar
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.
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.
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.
Subscribe to:
Posts (Atom)