Posts

Process and read xlsx from PL/SQL

To read a XLSX-file from PL/SQL can be a bit challenging. One option is to rename the file to .ZIP and then process it from from there. An XLSX-file is actually ZIP archiv es internally. Microsoft Office formats after 2007 (the "Open XML" formats) are structured as a collection of XML files and resources (like images, styles, and document parts) bundled inside a ZIP archive. When you rename file.xlsx → file.zip , you can then: Open it with a ZIP program (like WinRAR, 7-Zip, or even Windows Explorer). Browse its contents — you'll see folders like xl/ , docProps/ , and _rels/ , and files like [Content_Types].xml . Extract parts — e.g., images, embedded objects, raw XML data. But, if you are going to process a single tab document it easier to save the document as CSV and then process it as an external table. How do you then save the XLSX-file as CSV with PL/SQL and read it? Below is instructions on how to do it on Linux. Create a java stored procedure that can ...

Oracle Open World - Presentations

Now all presentations are available for download at this LINK .

Oracle Open World - Conclusions

If I should summarize this years conference in one word it will be CLOUD . They already talked about cloud last year but this year it was mentioned in all the sessions and key notes I attended. Other observations: Fusion Applications is really coming and it looks really good. Based on the latest technology and standards with the user experience in focus this looks like a fantastic product. Exadata version 3 - this machine, packed with hardware and software from Oracle (the Red Stack) takes Exadata to the next level with 26 TB of  fast memory.  New database version 12c - optimized to run in the cloud and have the new "pluggable" concept. Big Data - term that popped up here and there. Big data is all the unstructured data found in social media. If we can collect and process this data we will find better opportunities and have a stronger posistion in the market place.

Oracle Open World day 5

Image
Personalize and extend eBusiness Suite with Rich Mashups In this session the presenter described different ways to extend eBusiness Suite in a supported manner. BC4J-substitution to external business logic. OAF to build new components. Web ADI to build custom integrators (included in the standard license). Oracle Forms to build new extensions and applications. ADF to build new extensions and applications (use EBS SDK to use specific EBS methods). APEX to build new extensions and applications. mod_plsql to build new extensions and applications (not recommended, does not work in R12) Possible to plug in Endeca in 12.1.3 (license for Endeca needed). Coming in 0-12 months Model Personalizations: make it possible to create view objects (VO) within personalization Support for undo personalization: today we need to delete them manually from the database using scripts Support for copy personalization: make it possible to deploy the changes to other environment, today it needs...

Oracle Open World day 4

Image
Fusion Applications: Functional Deep Dive In this session the presenter talked about the highlights of Fusion Apps in the functional areas. - FND_USER is no longer used; all security related actions will be performed in Oracle Identity Management. - Business Groups are replaced by the new object Enterprise. - Operating Units does not exist anymore; the new term is Business Unit. Some setup data that were before connected to the Operating Unit are now decoupled and no redundant set up is needed. One example is payment terms that are set up once and then copied to where it’s needed. - Legal Entity Timezone; auto adjust the date to the correct timezone. - Chart of Account: - Separate the CoA structure from the value set. - Using trees to separate hierarchies from value sets. - Allow range of accounts to be specified using a node in a hierarchy. - Date effectively: - Allow users to change attributes of an object and store an older object version of that object - Applica...

Oracle Open World day 3

Image
Optimize and Extend Oracle Applications: the path to Fusion Apps In this session it was discussed what customers could do to make the transformation to Fusion as smoth as posssible. Three key areas where mentioned: - keep you applications on the latest version - optimize tools and technologies - coexistence If you follow the upgrade path and stays on the latest versions it will be much easier to upgrade. For example, in R12 the Financial architecture (with subbledger accouting etc) is the same as in Fusion. What you also can do to make the road to Fusion less bumpy is to start use some of the tools and technologies already today. Example of this are Oracle Identity Management (OID, used in Fusion Apps for security), Oracle BI Apps and Oracle BI Publisher. It’s possible to use all of these tools already today in your R12 environment. One other possibility to get ready for Fusion is to implement new modules using Fusion Apps. If you want to start use the HR module it’s recomm...

Oracle Open World day 2

Image
Today the conference was in full swing with 100s of sessions. Below you will find what I attended. Keynote: Shift Complexity On Mondays keynote they started to state that OOW is celebrating its 35th anniversary. The conference has 50.000 attendants and about 1 million views online, impressive. In this keynote Mike Hurd talked about simplify IT, Oracle offers complete stack and complete choice - the Red Stack. You can now run on servers from Oracle, Database from Oracle, Middleware from Oracle and Applications from Oracle, the complete red stack. With Oracle Engineered System you will get all the benefits of software and hardware. It made me think, isn’t this exactly what Apple is doing? There target consumers are completely different but they also offer hardware and software in their products. When you can control both hardware and software you will have a better optimized product. As simple as that. Oracle Fusion Applications: Overview, Strategy and Roadmap Today 400 customer...

Oracle Open World day 1

Image
Today the conference started with alot of special interest group meetings and the welcome keynote. The welcome keyknote was devided by some bigshot from Fujitsu and Larry Elison. I would guess that about 99% of the people were there to listen to Larry. The Japanese Fujitsu guy had a long uninspired talk about big data (all unstructured data from social media) and how there new chip Athena would be great to do all this processing. Oracle is working together with Fujitsu to optimize the usage of their technology. Then Larry came on. Larry hade 4 announcements. Announcement 1 Oracle will start to sell infrastructure as service (IaaS). IaaS is VM, OS Services etc. This together with what they already have, SaaS and PaaS will make them complete in the cloud business. Announcement 2 Oracle Private Cloud. I think he talked about this last year so I was a little surprised that it came up again. With Orcale Private Cloud you can run the cloud behind your firewall with the same service...

Oracle Open World day 0

Image
After a 22 hour trip we finally reach our hotel in San Francisco last night. As expected we woke up early and went out to explore the city. Open World starts first on Sunday but you can register and make yourself ready for the conferance already today. We pickuped our badge at Hilton Hotel in downtown SF. Tomorrow the fun will begin! View of downtown San Francisco Oracle is taking over the city This years welcome pack

Index on WF_DEFERRED

If you have a lot of events and other logic that triggers the use of the que WF_DEFERRED there could be a need of create an additional index on the que table. When you have many rows in WF_DEFERRED the deque process is so slow that it blocks other incoming messages. Follow note CPU Intensive Querries Due To FTS on WF_DEFERRED [ID 463242.1] . Our scenario: We had about 3.5 million rows in WF_DEFERRED that where dequeuing very slowly, about 2 per minute. After creation of the index all records where dequed in about 30 minutes.

Show message dialog

To show a message dialog in Oracle Forms (in EBS) use fnd_message.debug('your message here') By using this built-in there is no need to create your own alerts.

R12 AP Payments

In R12 the AP payments are completely redone. The logic is now using java to create a XML-file and XML Publisher to create the specific payment file which you send to the bank. Some key information: The table IBY_TRXN_DOCUMENTS includes the created XML in the column DOCUMENT . Use the responsibility Payments Setup Administrator to setup the payments. If you want to add XML tags to the standard XML file this could be done by using the package IBY_FD_EXTRACT_EXT_PUB (more info can be found at  http://imdjkoch.wordpress.com/ tag/iby_fd_extract_ext_pub/ ).

Business Event - download/upload

Using FNDLOAD is possible to transfer a lot of objects between instances. It's also possible to transfer Business Events but not with FNDLOAD, to accomplish this we need to use a java program called WFXLoad. Download - Event java oracle.apps.fnd.wf.WFXLoad -d apps appspwd host:port:sid thin US download_file .wfx EVENTS event_name Example java oracle.apps.fnd.wf.WFXLoad -d apps password bigboy:1521:demo thin US xx_demo_EVENT.wfx EVENTS xx.oracle.apps.demo Download - Subscription java oracle.apps.fnd.wf.WFXLoad -d apps appspwd host:port:sid thin US download_file .wfx SUBSCRIPTIONS event_name Example java oracle.apps.fnd.wf.WFXLoad -d apps password bigboy:1521:demo thin US xx_demo_SUBSR.wfx SUBSCRIPTIONS xx.oracle.apps.demo Upload - Event java oracle.apps.fnd.wf.WFXLoad -u apps appspwd host:port:sid thin US upload_file .wfx Example java oracle.apps.fnd.wf.WFXLoad -u apps password bigboy:1521:demo thin US xx_demo_EVENT.wfx Upload - Subscription java oracle.app...

Sending concurrent request output by e-mail - part II

If the database and apps.server are not installed on the same machine the first proposed solution may not work. The database user will not be able to read concurrent request output files if they are not located in a common directory which can be reached from both the servers. In my case no such common directory existed. There was one common directory which could be reached from both machines and the code below takes advantage by that. The code is a SQL-script which is fired by a concurrent request. --+=======================================================================+ --| FILENAME | --| XXXFND_SUBMIT_AND_EMAIL.sql | --| | --| VERSION | --| 1.0 | --| ...

Sending concurrent request output by e-mail

This post describes how to send a request output using e-mail. First, create two directories. The first one should point to the output directory. CREATE DIRECTORY xx_output AS '/u02/oracle/VISION/inst/apps/VISION/logs/appl/conc/out'; GRANT ALL ON DIRECTORY xx_output TO PUBLIC; The second one should be any directory that the database user can access. CREATE DIRECTORY xx_maildir AS '/home/oracle/tmp'; GRANT ALL ON DIRECTORY xx_maildir TO PUBLIC; Then create a generic procedure that can send mail with attachments. create or replace PROCEDURE xx_send_mail_file(p_subject IN VARCHAR2, p_message IN VARCHAR2, p_recipient IN VARCHAR2, p_max_size IN NUMBER DEFAULT 9999999999, p_filename1 IN VARCHAR2 DEFAULT NULL, p_filename2 IN VARCHAR2 DEFAULT NULL, p_filename3 IN VARCHAR2 DEFAULT NULL, ...

FNDLOAD

This post describes how to down- and upload different components using FNDLOAD. Value set Download FNDLOAD apps/ appspwd O Y DOWNLOAD $FND_TOP/patch/115/import/afffload.lct download_file .ldt VALUE_SET FLEX_VALUE_SET_NAME=" VALUE_SET_NAME " Upload FNDLOAD apps/ appspwd 0 Y UPLOAD $FND_TOP/patch/115/import/afffload.lct download_file .ldt CUSTOM_MODE=FORCE Note: Use the optional FNDLOAD parameter P_VSET_DOWNLOAD_CHILDREN set to N if you do not want the value set values to be downloaded. Concurrent Request Download FNDLOAD apps/ appspwd O Y DOWNLOAD $FND_TOP/patch/115/import/afcpprog.lct download_file .ldt PROGRAM APPLICATION_SHORT_NAME= " APPL_SHORT_NAME " CONCURRENT_PROGRAM_NAME= " REQUEST_NAME " Upload FNDLOAD apps/ appspwd 0 Y UPLOAD $FND_TOP/patch/115/import/afcpprog.lct download_file .ldt CUSTOM_MODE=FORCE Note: If value sets are used by the request parameters the set up for them will also be included in the ldt-file. If the va...

Diagnostics -> Examine

Image
To be able to use the menu Help -> Diagnostics -> Examine you have to set the profile value Utilities:Diagnostics to Yes.

Remove OAF Customization

First, list your customization to get the exact path: begin jdr_utils.listdocuments('/oracle/apps/ar/hz/components/search/server',TRUE); end; Then, remove it: begin jdr_utils.deletedocument(p_document => '/oracle/apps/ar/hz/components/search/server/customizations/site/0/HzPuiDQMSrchResultsVO'); COMMIT; end;

Compiling Form in R12 env

1. FTP your form to $AU_TOP/forms/US 2. Compile using: frmcmp_batch userid=USERNAME/PASSWORD module=XXXXX.fmb output_file=XXXXX.fmx module_type=form 3. Move the fmx to the correct folder, ex mv XXXXX.fmx $AP_TOP/forms/US/XXXXX.fmx 4. Done

DBMS_SCHEDULER

Image
When you back in the day wanted to schedule or run something in the backgound you used DBMS_JOB. With  the beginning of release 10g of the database new functionality was introduced to accomplish this, the DBMS_SCHEDULER. DBMS_SCHEDULER is so much more flexible the DBMS_JOB and makes everything easier, some examples: To set up your intervals you just specify the parameter repeat_interval. MON-FRI 22.00: repeat_interval=> 'FREQ=DAILY; BYDAY=MON,TUE,WED,THU,FRI; BYHOUR=22;' Every hour, every day: repeat_interval => 'FREQ=HOURLY;INTERVAL=1' Every monday, 05:00: repeat_interval=> 'FREQ=DAILY; BYDAY=MON; BYHOUR=5;' You will not get the problem with shifting start times that you have with DBMS_JOB. Possible to create chains of jobs that are dependent of each other. Possible to schedule:   - Execution of host scripts.  - E-mail notifications.  - Execute host scripts on remote servers (requires an agent on the remote server).  - Execute jo...