Parse the XML in SSHR that contains Attached Documents in HR_API_TRANSACTIONS
Friday, 12 February 2010 01:54
Anil Passi
In the previous article linked here, we saw how we can parse the Self Service HRMS XML data in HR_API_TRANSACTIONS's CLOB column. That approach will work fine in most of the cases. I am saying in "most" of the cases because it will not work perfectly fine in all the cases. This is due to the inherent limitation of parsing large XML Clob object size in SQL layer. Before we get into the resolution to that limitation, let us first see the exact nature of this limitation. This limitation is about the size of the XML column. Due to the design methodology implemented by Self Service HRMS product development team, if you upload document against performance objectives in Self Service HRMS, then even the uploaded binary document will get encoded within the XML data itself in HR_API_TRANSACTIONS. Logically this is fine because in Self Service HR, when the entered data goes for approval, and if the data gets rejected, then the entire contents within the HR_API_TRANSACTIONS gets rejected. If the document was uploaded against such SSHR transaction, then the attached document along with the underlying transaction data goes for approval[via XML column] and either gets applied to base tables[if approved] or gets deleted [if rejected]. Unfortunately lot of customers do not like this design feature from SSHR. For example, almost every customer faces an issue in Appraisal Management which is when they capture an appraisal which is a very lengthy process and it sometime takes the end users hours to enter their Appraisal details and if this goes for Appraisal Approval process via AME, if Manager rejects the Appraisal then the whole appraisal data gets deleted from the system. Ideally if the Approver rejects the data, then initiating user should be able to make further modifications to their appraisal. Given that SSHR product maps the "appraisal rejection" to "dropping the contents within XML", then entire Appraisal data entered by the user is lost during Appraisal rejection [Note Issue fixed in R12.1.1 or R12.2. For now you can use Return for Correction mode to avoid losing data]. Now coming back to attachments, one can argue that if Appraisal's XML data gets rejected, it seems logical that even the Attached documents against that transaction should get rejected. Therefore to keep their design consistent the SSHR team designed for the attachments to be encoded and captured within the XML itself. I do not think such design is ideal because there is already an attachment framework in Oracle that should be leveraged out of the box, and provision should be made to remove the attachments when the transaction referenced by primary key get deleted. Anyway, given that attachments get loaded within the XML, we can hit 64K size limitation for XML parsing within SQL Layer. Its only after you have upgraded to Database 11g, you will be able to parse XML data containing attachments in SQL Layer. Therefore the only solution left with you to parse the XML that contains large attachments is to write a piece of code in Java to parse such XML. In this article you will see a sample code from a live project that I did in past, for parsing the XML that contains encoded binary objects making the XML size greater than 64K.
If you wish to use this code, simply copy paste and amend as needed. The key method in this code is processClobData() that takes TransactionId as parameter, and executes query on View Object named xxHRApiClobVO.
Read more...
|
Parse the XML in HR_API_TRANSACTIONS via SQL in Self Service HRMS - SSHR
Wednesday, 10 February 2010 02:07
Anil Passi
In one of the previous articles linked here, we learnt how the state of the Self Service HRMS session is serialized in other words dumped into a table named HR_API_TRANSACTIONS. For example in talent management, during the objective setting process, when the user enters the objectives in the screen, the data is not stored in the base tables i.e PER_OBJECTIVES. Instead the objectives data entered by the user is dumped into a column CLOB named TRANSACTION_DOCUMENT within table HR_API_TRANSACTIONS. This CLOB column contains the data in XML format. The entered data remains in this XML CLOB until the objectives are approved by the manager. Until the approval happens, the data stays in XML format. However, what is more interesting is that subsequent updates or deletes to objective records are also captured within the XML column. The XML contents in transaction_document is nothing but the dump of the root application module of that page in XML format. The idea behind this XML dump is that, when user re-queries the data, XML is parsed by Self Service engine and presented to the user as if the data was queried from the base tables itself. Sometimes during implementation projects it becomes important to parse the values in this Self Service HRMS XML column. In this article, you will see the sample working code in SQL that parses the XML contents and prints the objective records from XML. You will also learn the life cycle of this data as to how this XML gets transferred to the base tables, i.e. PER_OBJECTIVES.
Even though talent management is being used in this example, the principles of this example can be applied to other kinds of transaction parsing in Self Service HRMS.
Read more...
Attachments using OA Framework Personalizations - Part 2
Tuesday, 09 February 2010 01:16
Anil Passi
In the previous article we saw how personalizations were used to embed attachment functionality into standard self service OA Framework pages. In the Part 1, we uploaded attachments against the Employee via "Update Employee page". Lets say that now we want to make those attached documents visible from the Employee search page. We know that every attachment can be identified using an Entity Name and Primary. The entity name in this example is XXFT_EMP_ATTACHMENT. The image below depicts how the attachments from Part-1 exist in the database. The subsequent image shows where the attachments will be displayed when performing search on employees. Effectively in this video demo you will learn the steps for displaying the attachments within a tabular region against each record, by performing OA Framework personalizations.
Read more...
Self Service HRMS Setup Document sample
Tuesday, 09 February 2010 02:17
Anil Passi
Please find a sample BR100 setup document on Self Service HRMS. This document was prepared on 11i, however could be used as a template for R12 SSHR implementations as well. This is a sample document to be used as a template, and therefore is not a training document The document can be downloaded from the link below
Read more...
Attachments using OA Framework Personalizations - Part 1
Monday, 08 February 2010 01:19
Anil Passi
Adding attachment section using personalization to self service page
In this article you will understand the basic concepts of uploading attachments in Self Service E-Business Suite Application. This article also contains an audio-visual tutorial that explains the steps for incorporating attachments using personalizations in OA Framework.
What is attachment in E-Business Suite? Using attachment functionality you can upload documents, files etc against any specific transaction in E-Business Suite and thereafter retrieve them at will. For example, lets assume you have a screen for Absence Entry in Self Service HRMS. It is possible that Oracle may not provide an out of the box facility for uploading an attachment against the Absences being created. However given your business requirements, you may want the users to upload medical certificates against the absence entries that are related to health. Using simple personalizations, you can add an attachment section to the Self Service HRMS Absence screen.
Read more...
Professional Buyer Work Center
Thursday, 28 January 2010 00:15
Puneet Kakkar
Professional Buyer Work Center is an interactive web based interface added in Release 12. It brings Requisitions, Orders, Sourcing, Procurement Contracts, Deliverables and Suppliers together in one stop shop for buyers and now users need not to shell out to different forms to access these functional areas. Additionally, Oracle has provided a powerful search mechanism (along with seeded search queries) to query as well as save result sets as per individual's own requirements like Column totaling, sorting, renaming etc. This new tool provides increased throughput derived from a higher degree of functional integration and information availability.
The pdf in link as shown below explains this functionality in detail
Read more...
Calling webservice from PL/SQL
Wednesday, 27 January 2010 23:59
Sonia Kamra
In this article, you will find a powerpoint presentation that depicts the step by step approach to call a webservice from pl/sql The presentation can be downloaded using the link as shown below Calling webservice from PL/SQL
Converting string with varying formats to a Date value
Monday, 23 November 2009 22:53
Anil Passi
There is a beauty of an FND API that resides in the apps schema to convert a string into DATE. This API can take a string value in various formats and convert them into Oracle Date. Many times we have to parse a piece of plain text and convert that to date. This is very true when it comes to converting date values from flat file into a proper date column. In this article we will convert a date value from various possible string formats into a "Date Value". Why use the FND API ? For example, if you run these SQLs, you can get the following error if you do not explicitly specify the format of the date in to_date SQL> select to_date( '21-12-2009') as date_value from dual ; ORA-01843: not a valid month
For example, if you run this SQL, you can get the following error SQL> select to_date( '21-12-09') as date_value from dual ; ORA-01843: not a valid month SQL> select to_date( '2009/12/21') as date_value from dual ; ORA-01861: literal does not match format string Now lets try these with fnd_conc_date.string_to_date
Read more...
Calling an API at specific point in time in future
Tuesday, 17 November 2009 21:18
Anil Passi
Oracle Apps professionals that are experienced are called "experienced" because they usually have a variety of ideas up their sleeves when it comes to troubleshooting an issue or when designing a solution/extension. Some of their ideas are self invented and some are inspired from others. In my case, a substantial part of experience that I gained is by inspiration from the ideas that are perhaps not mine. The source of those ideas is not a single individual but the Oracle eBusiness suite product code base itself.
Many times we reverse engineer the code in Oracle Apps when troubleshooting an issue or in an attempt to gain in-depth knowledge of the inner working of a module/functionality. In the event of doing so, we unearth the design methodologies implemented by the specific programmer in Oracle product development team. With time we learn that each product development team in Oracle Apps has their own unique style and mindset that is reflected in the design approach of respective module. Being consultant, we are able to grasp the ideas from various design/methodologies of thousands of Oracle product development team members. These tricks/ideas then inspire us when it comes to developing our own extensions. Of course the beauty of being a consultant is that we are able to cherry pick the ideas from the product, those ideas which are elegant from our perspective.
Anyways, coming back to the point, this article is about another one of those ideas that was inspired by Oracle product itself. Let us say your requirement is that when certain event occurs, you then wish to raise yet another event that executes at a specific point in time/hour/minute in future.
Read more...
Learning from failed ERP Implementations
Monday, 09 November 2009 23:55
Ranu Srivastava
Learning from failed ERP Implementations While Enterprise Systems have the potential to offer benefits beyond Traditional legacy systems, many organizations report that these have been less successful than originally anticipated. The difficulties of successfully implplementing Enterprise system implementation & it’s dependence on critical success factors is what we are attempting to find out in this paper.
At the outset it’s apparent that Enterprise Systems are perceived as more effective and efficient ways of business processes by means of pre-engineered packaged software application, the stated goals of adopting Enterprise Systems are to obtain organizational benefits such as lower inventory costs and shorter cycle times Thus, Enterprise Systems tend to impose a specific logic of doing business, which is particularly shaped by the "best practices" By adopting a process orientation and consequently integrating it with the system Business ‘Hope’ that it would work. Too often, project managers focus on the technical and Financial aspects of a project and neglect to take into account the non-technical issues the ‘Critical Success factors’ & also the interrelationships leading to project success or failure. Overall problem is to understand why even best of breed ERP implementations fail, despite of best minds & best planners spending years to implement the state of the art systems at various businesses. So the question remains…..
Read more...
Integration testing of Part 1-8 in SSHR AME - Part 9
Tuesday, 10 November 2009 00:19
Anil Passi
In this article, you will find an audio video demo that shows the integration testing of Self Service HRMS Part 1 to Part 7. Effectively in this demonstration you will see the end result of the solution that we designed in Part 1 of this series.
Read more...
Test workbench in AME - Testing SSHR AME - Part 8
Saturday, 24 October 2009 12:27
Anil Passi
Oracle provides a wonderful utility for testing your AME. This is called AME Test Workbench. What is AME Test Workbench? This is a screen using which you can simulate the calls to AME engine by passing some parameters. For example, Self Service HRMS passes transaction_id from hr_api_transactions to the AME. In this article, you will see an audio video demo that explains how you can use the test workbench in AME for testing and debugging your AME customizations. For this specific example, we will be using transaction_id of Self Service HRMS to simulate an AME call from the AME test workbench.
Read more...
Oracle Apps Book is shipping now
Thursday, 22 October 2009 00:10
Anil Passi
Finally the book is shipping from amazon.com website priced at USD 37/- This book is the result of an effort from me and Vladimir Ajvaz to condense the Oracle Applications development concepts and best practices in an organized manner.
Read more...
Creating the AME Rule in Self Service HRMS - Part 7
Tuesday, 20 October 2009 23:51
Anil Passi
Thanks for your patience while I explained the basics behind AME's integration in Self Service HRMS. In this article, you will find a video demo that brings the knowledge from Part 1 to Part 6 together, to create an AME Rule in Self Services Human Resources.
Read more...
Self Service HRMS - Design and Unit test AME - Part 6
Sunday, 18 October 2009 23:56
Anil Passi
In this article, we will see the steps for implementing the AME solution, so that the data changes made from "Holiday Rejection Complaint Screen" will be sent for approval to your manager's manager. Before reading this article, you must read the following articles 2. Understanding AME Concepts
This article also contains a video demo to demonstrate integration of AME,HRSSA Workflow, Screen and HR_API_TRANSACTIONS.
Read more...
Self Service HRMS and AME Part 5 - Understanding HR_API_TRANSACTIONS
Saturday, 17 October 2009 11:42
Anil Passi
When a Self Service HRMS user creates any data from the screens, such data goes and resides in some temporary tables. This data is retained within the temporary tables until the transaction is Completed. A transaction in this example gets completed when Holiday Rejection complaint is either Rejected or Approved. These temporary table names begin with name HR_API%. In reality, the data entered by the user is either stored within just one table i.e. HR_API_TRANSACTIONS or within HR_API_TRANSACTION_VALUES. When the data is stored in just the HR_API_TRANSACTIONS then the entire data entered by the user is captured in a CLOB column. This feature was introduced couple of years ago, whereby for performance reasons the temporary data is captured in a clob column named HR_API_TRANSACTIONS within HR_API_TRANSACTIONS. This CLOB column contains XML contents. By now, you might have the following questions 1. What exactly is captured in CLOB column hr_api_transactions.transaction_document 2. How does Self Service HRMS decide whether the transaction data which is in-transit goes into CLOB or HR_API_TRANSACTION_VALUES. 3. How is this temporary data used by AME 4. How is the data transferred from temporary tables to base tables in HRMS.
In this article I will answer these questions, so that you can proceed with the AME bits that depends upon this information. In addition to this, you will also learn how the "SAVE FOR LATTER" feature works in HRMS.
Read more...
BPEL Scheduling Processes
Sunday, 11 October 2009 22:10
Veeresh Hawalkhod
BPEL: Scheduling Processes  Introduction All we know that, Oracle BPEL process instance can be initiate in number of ways. Like Passive: BPEL engine receives a call (BPEL console or some other web service) Active: BPEL engine looks for events to be occur that should trigger new instance of process.( Polling for file in particular folder and polling for new record in database table) There is intermediate option where BPEL engine will start process instance at specific time (schedule). This document talks more about scheduling BPEL process using various methods like Quartz scheduler and Wait activity.
Read more...
|
|