Login
Register

Home

Trainings

Fusion Blog

EBS Blog

Authors

CONTACT US

Functional Documents
  • Register

Oracle Gold Partners, our very popular training packages, training schedule is listed here
Designed by Five Star Rated Oracle Press Authors & Oracle ACE's.

webinar new

Search Courses

In one of the previous articleslinked here, we learnt how the state of the Self ServiceHRMSsession 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 datais notstored in the base tables i.e PER_OBJECTIVES. Instead the objectives data entered by the user is dumped into a columnCLOBnamed TRANSACTION_DOCUMENT within table HR_API_TRANSACTIONS. ThisCLOBcolumn contains the data in XML format. The entered data remains in this XMLCLOBuntil 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 ServiceHRMSXML column. In this article, you will see the sample working code inSQLthat 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 ServiceHRMS.

 



The image below shows how the two objectives appear in the screen, immediately after the data entry, prior to approval of objectives.

 



Data appears in the XML. Please make a note of transaction_id=66074 and Objective Names for the two records.
Data entered as per previous image in the screen is visible in the transation_doument column within XML
 
Then the data has been captured inScoreCardtable, which is the parent record for objectives. However the subsequent image shows that PER_OBJECTIVES is yet to be populated for this scorecard id. Effectively this means that data entered by the user has gone to XML
 

PER_OBJECTIVES still does not have the two objectives added by us 

 

Next the result of XML parsing. Forreusability, you can copy paste the XML ParsingSQLcode from below 


SQL Code for Parsing in this example

SELECTextractvalue(VALUE(xx_row), '/ObjectiveEORow/Name') AS objective_name,

      extractvalue(VALUE(xx_row), '/ObjectiveEORow/StartDate') AS objective_start_date,
       decode(extractvalue(VALUE(xx_row),
                           '/ObjectiveEORow/WeightingPercent'),
              '(null)',
              0,
              '',
              0,
              extractvalue(VALUE(xx_row), '/ObjectiveEORow/WeightingPercent')) ASweightingpercent,
      extractvalue(VALUE(xx_row), '/ObjectiveEORow/GroupCode') ASgroupcode,
       decode(extractvalue(VALUE(xx_row), '/ObjectiveEORow/ObjectiveId'),
              '(null)',
              0,
              extractvalue(VALUE(xx_row), '/ObjectiveEORow/ObjectiveId')) ASobjectiveid
  FROM HR_API_TRANSACTIONS xx_api,
       TABLE(xmlsequence(extract(xmlparse(document transaction_document
                                          wellformed),
                                 '/Transaction/TransCache/AM/TXN/EO/ObjectiveEORow'))) xx_row
 WHERE xx_api.transaction_ref_id = 15791



Finally, lets see how the data moves from temporary XML location to base tables after approval.

After calling hr_transaction_swi.commit_transaction the data then becomes available in PER_OBJECTIVES. TheHRSSAworkflowcalls this API after the transaction has been approved. Subsequent to this API call, the data from HR_API_TRANSACTIONS is removed. Therefore TRANSACTIONS is merely a temporary table. It must be noted that HR_TRANSACTION_SWIis a generic API that parses the XML against transaction_id, and populates the base table. 
 
 

 


Anil Passi

Comments   

0 #1 Talluri Ajay 2010-02-13 04:52
Anil,

That was a wonderful Article. Thank you very much.

I would like to know more on the syntax

TABLE(xmlsequ ence(extract(xm lparse(document transaction_doc ument
wellformed),
'/Transaction/T ransCache/AM/TX N/EO/ObjectiveE ORow')))

Even a reference on this will be of great help.

Thank you
Ajay
Quote
0 #2 Anil Passi- 2010-02-13 13:40
Hi Ajay

This was done to create an array of records. You see, CLOB is contained within a single row. However we want to return multiple rows within the results of SQL statement. Therefore we create one single record instance for objective row within the CLOB column

You can do further reading on download-uk.oracle.com/docs/cd/B19306_01/server.102/b14200/functions226.htm

Thanks,
Anil Passi
Quote
0 #3 talluri Ajay 2010-02-14 05:11
Hi Anil,

Thanks for your reference. It was quite useful.
I was getting an error while running the above query 'Missing right Parenthesis'

H owever after looking at your reference I happen to use the below syntax for building the XML table and it worked.

TABLE(xmlsequen ce(EXTRACT(XMLT YPE(transaction _document),
'/Transaction/T ransCache/AM/TX N/EO/ObjectiveE ORow')))


We have a column named 'STATUS' in HR_API_TRANSACT IONS having values of 'Y','D','W' does these values have any significance.
Quote
0 #4 Anita Koukuntla 2010-03-03 23:53
Hi Anil,

Any idea on equivalent api call for hr_transaction_ swi.commit_tran saction for 11.5.10 version .

Thanks
Quote
0 #5 Anil Passi- 2010-03-04 02:44
Hi Anita, I have seen this API work in 11.5.10 as well, RUP 4
Quote
0 #6 Bader 2010-06-21 07:20
talluri Ajay,

You can use the following query to get the meaning of STATUS column in HR_API_TRANSACT IONS table:

SELECT * FROM HR_LOOKUPS WHERE LOOKUP_TYPE = 'PQH_SS_TRANSAC TION_STATUS'

R egards,
Quote
0 #7 Oracle Expert 2010-07-06 11:19
For Real Life project codes and queries and technical help go to http://www.oracle-expert.co.cc
Quote
0 #8 Arunachalam 2010-07-11 13:55
Dear Anil,

In one of our client place their is an requirement to externalize the Talent Management - Objective Creation/ Updation through web services. The idea is to bring the objective creation functionality into .Net Portal application (without compromising the functionality of Oracle Talent Management - Objective Creation/ Updation).

We did the painfull excercise of generation XML document as required by the TRANSACTION_DOC UMENT format. And by using HR_TRANSACTION_ API to populate

HR_AP I_TRANSACTION.c reate_transacti on and HR_API_TRANSACT ION.create_tran saction_step and I updated the column TRANSACTION_DOC UMENT (I populated all necessary elements as expected by the application), but even after this, when I login into application, the OAF - UI is not showing the objectives (it gives JDO error).

Any help will be useful.

Thanks and Regards
Arunach alam.C
Dubai.
Quote
0 #9 Anil Passi- 2010-07-11 18:00
What is the error that you get? Please paste the complete JBO error.

By the way, you could simply use the API for loading records straight into PER_OBJECTIVES. You do not need to use HR_API_TRANSACT IONS route at all. I have myself created objectives straight into base tables via PL/SQL APIs
If you wish, I will send you source code

Thanks,
Anil Passi :)
Quote
+1 #10 Arunachalam 2010-07-12 03:30
Dear Anil,

Yes I agree with you, and sorry for not explaining the requirement in full.

Requirem ent is: Use .Net UI instead of Oracle UI for Objective creation, and facilitate review/ approval of objectives by the supervisor through service calls (Oracle BPEL).

So If I use HR_OBJECTIVES_A PI.CREATE_OBJEC TIVE it directly put the transaction into PER_OBJECTIVES, by the way I am planning to use this API once the supervisor approves the objective.

So I created following services to achieve the same

1. createObjective - which calls a custom pkg. procedure inturn calls HR_TRANSACTION_ API (create_transac tion and create_transact ion_steps)
2. retriveObjectiv es - which calls a custom pkg. procedure reads the records from table HR_API_TRANSACT IONS - column TRANSACTION_DOC UMENT
3. submitforReview - which calls a custom pkg. procedure which sets the status to 'APPROVAL' in PER_PERSONAL_SC ORECARDS. And call notification using send_notificati on
4. requestFurtherA ction - which call a custom pkg. procedure which sets status to 'WKR' in PER_PERSONAL_SC ORECARDS. And call notification using send_notificati on
5. finalizeObjecti ve - which calls the pkg. procedure to read the records from HR_API_TRANSACT IONS - column TRANSACTION_DOC UMENT and calls HR_OBJECTIVES_A PI.CREATE_OBJEC TIVE to push the transaction into PER_OBJECTIVES. And it
sets status to 'PUBLISHED' in PER_PERSONAL_SC ORECARDS. And call notification using send_notificati on and remove transaction from HR_API_TRANSACT IONS and HR_API_TRANSACT ION_STEPS.

Tha nks and Regards
Arunach alam.Chidambara m
Dubai.
Quote
0 #11 Arunachalam 2010-07-12 03:33
Dear Anil,

Thank you for your response.

In addition to above, the .Net Client suppose to consume these series of BPEL services and to simulte workflow, this way the business logic/ notification logics remains in APPS, where in we could externalize the UI part (in the portal).


Than ks and Regards
Arunach alam.Chidambara m
Quote
0 #12 Arunachalam 2010-07-12 09:05
Dear Anil,

Please find the error stack.

oracle. apps.fnd.framew ork.OAException : oracle.jbo.JboE xception: JBO-29000: Unexpected exception caught: java.io.EOFExce ption, msg=null
at oracle.apps.fnd .framework.OAEx ception.wrapper InvocationTarge tException(OAEx ception.java:97 5)
at oracle.apps.fnd .framework.serv er.OAUtility.in vokeMethod(OAUt ility.java:211)
at oracle.apps.fnd .framework.serv er.OAUtility.in vokeMethod(OAUt ility.java:153)
at oracle.apps.fnd .framework.serv er.OAApplicatio nModuleImpl.inv okeMethod(OAApp licationModuleI mpl.java:750)
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.initTra nsaction(PerTra nsactionTopCOIm pl.java:346)
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.init(Pe rTransactionTop COImpl.java:226 )
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.process Request(PerTran sactionTopCOImp l.java:279)
at oracle.apps.per .selfservice.ar ch.webui.PerOAC ontrollerImpl.p rocessRequest(P erOAControllerI mpl.java:530)
at oracle.apps.per .wpm.objectives .webui.Objectiv esPageCO.proces sRequest(Object ivesPageCO.java :69)
at oracle.apps.per .wpm.objectives .webui.SetObjec tivesPageCO.pro cessRequest(Set ObjectivesPageC O.java:60)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:587)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.OAPageLayoutH elper.processRe quest(OAPageLay outHelper.java: 1136)
at oracle.apps.fnd .framework.webu i.beans.layout. OAPageLayoutBea n.processReques t(OAPageLayoutB ean.java:1569)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:959)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:926)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:646)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.beans.form.OA FormBean.proces sRequest(OAForm Bean.java:385)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:959)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:926)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:646)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.beans.OABodyB ean.processRequ est(OABodyBean. java:353)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr ocessRequest(OA PageBean.java:2 360)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:1759 )
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:511)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:432)
at _oa__html._OA._ jspService(_OA. java:84)
at oracle.jsp.runt ime.HttpJsp.ser vice(HttpJsp.ja va:119)
at oracle.jsp.app. JspApplication. dispatchRequest (JspApplication .java:417)
at oracle.jsp.JspS ervlet.doDispat ch(JspServlet.j ava:267)
at oracle.jsp.JspS ervlet.internal Service(JspServ let.java:186)
at oracle.jsp.JspS ervlet.service( JspServlet.java :156)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:588)
at oracle.jsp.prov ider.Jsp20Reque stDispatcher.fo rward(Jsp20Requ estDispatcher.j ava:162)
at oracle.jsp.runt ime.OraclePageC ontext.forward( OraclePageConte xt.java:187)
at _oa__html._OA._ jspService(_OA. java:94)
at oracle.jsp.runt ime.HttpJsp.ser vice(HttpJsp.ja va:119)
at oracle.jsp.app. JspApplication. dispatchRequest (JspApplication .java:417)
at oracle.jsp.JspS ervlet.doDispat ch(JspServlet.j ava:267)
at oracle.jsp.JspS ervlet.internal Service(JspServ let.java:186)
at oracle.jsp.JspS ervlet.service( JspServlet.java :156)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:588)
at org.apache.jser v.JServConnecti on.processReque st(JServConnect ion.java:456)
at org.apache.jser v.JServConnecti on.run(JServCon nection.java:29 4)
at java.lang.Threa d.run(Thread.ja va:534)



Than ks and Regards
Arunach alam.Chidambara m.
Quote
0 #13 Arunachalam 2010-07-12 09:07
Dear Anil,

## Detail 0 ##
java.io.EOFE xception
at java.io.DataInp utStream.readIn t(DataInputStre am.java:448)
at oracle.jbo.Key. parseBytes(Key. java:436)
at oracle.jbo.Key. (Key.java:176)
at oracle.jbo.serv er.Serializer.a ctivateEntity(S erializer.java: 565)
at oracle.jbo.serv er.Serializer.a ctivateTxn(Seri alizer.java:512 )
at oracle.jbo.serv er.Serializer.a ctivate(Seriali zer.java:256)
at oracle.jbo.serv er.DOMSerialize r.activateRootA MFromDOM(DOMSer ializer.java:49 )
at oracle.apps.per .common.server. PerTransactionR ootAMImpl.activ atePerTxn(PerTr ansactionRootAM Impl.java:750)
at oracle.apps.per .common.server. PerTransactionR ootAMImpl.initT ransaction(PerT ransactionRootA MImpl.java:704)
at sun.reflect.Nat iveMethodAccess orImpl.invoke0( Native Method)
at sun.reflect.Nat iveMethodAccess orImpl.invoke(N ativeMethodAcce ssorImpl.java:3 9)
at sun.reflect.Del egatingMethodAc cessorImpl.invo ke(DelegatingMe thodAccessorImp l.java:25)
at java.lang.refle ct.Method.invok e(Method.java:3 24)
at oracle.apps.fnd .framework.serv er.OAUtility.in vokeMethod(OAUt ility.java:190)
at oracle.apps.fnd .framework.serv er.OAUtility.in vokeMethod(OAUt ility.java:153)
at oracle.apps.fnd .framework.serv er.OAApplicatio nModuleImpl.inv okeMethod(OAApp licationModuleI mpl.java:750)
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.initTra nsaction(PerTra nsactionTopCOIm pl.java:346)
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.init(Pe rTransactionTop COImpl.java:226 )
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.process Request(PerTran sactionTopCOImp l.java:279)
at oracle.apps.per .selfservice.ar ch.webui.PerOAC ontrollerImpl.p rocessRequest(P erOAControllerI mpl.java:530)
at oracle.apps.per .wpm.objectives .webui.Objectiv esPageCO.proces sRequest(Object ivesPageCO.java :69)
at oracle.apps.per .wpm.objectives .webui.SetObjec tivesPageCO.pro cessRequest(Set ObjectivesPageC O.java:60)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:587)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.OAPageLayoutH elper.processRe quest(OAPageLay outHelper.java: 1136)
at oracle.apps.fnd .framework.webu i.beans.layout. OAPageLayoutBea n.processReques t(OAPageLayoutB ean.java:1569)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:959)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:926)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:646)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.beans.form.OA FormBean.proces sRequest(OAForm Bean.java:385)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:959)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:926)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:646)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.beans.OABodyB ean.processRequ est(OABodyBean. java:353)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr ocessRequest(OA PageBean.java:2 360)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:1759 )
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:511)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:432)

Thanks and Regards
Arunach alam.Chidambara m
Quote
0 #14 Arunachalam 2010-07-12 09:10
Dear anil,

continue s.

at _oa__html._OA._ jspService(_OA. java:84)
at oracle.jsp.runt ime.HttpJsp.ser vice(HttpJsp.ja va:119)
at oracle.jsp.app. JspApplication. dispatchRequest (JspApplication .java:417)
at oracle.jsp.JspS ervlet.doDispat ch(JspServlet.j ava:267)
at oracle.jsp.JspS ervlet.internal Service(JspServ let.java:186)
at oracle.jsp.JspS ervlet.service( JspServlet.java :156)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:588)
at oracle.jsp.prov ider.Jsp20Reque stDispatcher.fo rward(Jsp20Requ estDispatcher.j ava:162)
at oracle.jsp.runt ime.OraclePageC ontext.forward( OraclePageConte xt.java:187)
at _oa__html._OA._ jspService(_OA. java:94)
at oracle.jsp.runt ime.HttpJsp.ser vice(HttpJsp.ja va:119)
at oracle.jsp.app. JspApplication. dispatchRequest (JspApplication .java:417)
at oracle.jsp.JspS ervlet.doDispat ch(JspServlet.j ava:267)
at oracle.jsp.JspS ervlet.internal Service(JspServ let.java:186)
at oracle.jsp.JspS ervlet.service( JspServlet.java :156)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:588)
at org.apache.jser v.JServConnecti on.processReque st(JServConnect ion.java:456)
at org.apache.jser v.JServConnecti on.run(JServCon nection.java:29 4)
at java.lang.Threa d.run(Thread.ja va:534)
java.io .EOFException
at java.io.DataInp utStream.readIn t(DataInputStre am.java:448)
at oracle.jbo.Key. parseBytes(Key. java:436)
at oracle.jbo.Key. (Key.java:176)
at oracle.jbo.serv er.Serializer.a ctivateEntity(S erializer.java: 565)
at oracle.jbo.serv er.Serializer.a ctivateTxn(Seri alizer.java:512 )
at oracle.jbo.serv er.Serializer.a ctivate(Seriali zer.java:256)
at oracle.jbo.serv er.DOMSerialize r.activateRootA MFromDOM(DOMSer ializer.java:49 )
at oracle.apps.per .common.server. PerTransactionR ootAMImpl.activ atePerTxn(PerTr ansactionRootAM Impl.java:750)
at oracle.apps.per .common.server. PerTransactionR ootAMImpl.initT ransaction(PerT ransactionRootA MImpl.java:704)
at sun.reflect.Nat iveMethodAccess orImpl.invoke0( Native Method)
at sun.reflect.Nat iveMethodAccess orImpl.invoke(N ativeMethodAcce ssorImpl.java:3 9)
at sun.reflect.Del egatingMethodAc cessorImpl.invo ke(DelegatingMe thodAccessorImp l.java:25)
at java.lang.refle ct.Method.invok e(Method.java:3 24)
at oracle.apps.fnd .framework.serv er.OAUtility.in vokeMethod(OAUt ility.java:190)
at oracle.apps.fnd .framework.serv er.OAUtility.in vokeMethod(OAUt ility.java:153)
at oracle.apps.fnd .framework.serv er.OAApplicatio nModuleImpl.inv okeMethod(OAApp licationModuleI mpl.java:750)
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.initTra nsaction(PerTra nsactionTopCOIm pl.java:346)
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.init(Pe rTransactionTop COImpl.java:226 )
at oracle.apps.per .common.webui.P erTransactionTo pCOImpl.process Request(PerTran sactionTopCOImp l.java:279)
at oracle.apps.per .selfservice.ar ch.webui.PerOAC ontrollerImpl.p rocessRequest(P erOAControllerI mpl.java:530)
at oracle.apps.per .wpm.objectives .webui.Objectiv esPageCO.proces sRequest(Object ivesPageCO.java :69)
at oracle.apps.per .wpm.objectives .webui.SetObjec tivesPageCO.pro cessRequest(Set ObjectivesPageC O.java:60)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:587)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.OAPageLayoutH elper.processRe quest(OAPageLay outHelper.java: 1136)
at oracle.apps.fnd .framework.webu i.beans.layout. OAPageLayoutBea n.processReques t(OAPageLayoutB ean.java:1569)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:959)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:926)

Thanks and Regards
Quote
0 #15 Arunachalam 2010-07-12 09:11
Dear Anil,

The final page of error stack.

at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:646)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.beans.form.OA FormBean.proces sRequest(OAForm Bean.java:385)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:959)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque stChildren(OAWe bBeanHelper.jav a:926)
at oracle.apps.fnd .framework.webu i.OAWebBeanHelp er.processReque st(OAWebBeanHel per.java:646)
at oracle.apps.fnd .framework.webu i.OAWebBeanCont ainerHelper.pro cessRequest(OAW ebBeanContainer Helper.java:247 )
at oracle.apps.fnd .framework.webu i.beans.OABodyB ean.processRequ est(OABodyBean. java:353)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr ocessRequest(OA PageBean.java:2 360)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:1759 )
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:511)
at oracle.apps.fnd .framework.webu i.OAPageBean.pr eparePage(OAPag eBean.java:432)
at _oa__html._OA._ jspService(_OA. java:84)
at oracle.jsp.runt ime.HttpJsp.ser vice(HttpJsp.ja va:119)
at oracle.jsp.app. JspApplication. dispatchRequest (JspApplication .java:417)
at oracle.jsp.JspS ervlet.doDispat ch(JspServlet.j ava:267)
at oracle.jsp.JspS ervlet.internal Service(JspServ let.java:186)
at oracle.jsp.JspS ervlet.service( JspServlet.java :156)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:588)
at oracle.jsp.prov ider.Jsp20Reque stDispatcher.fo rward(Jsp20Requ estDispatcher.j ava:162)
at oracle.jsp.runt ime.OraclePageC ontext.forward( OraclePageConte xt.java:187)
at _oa__html._OA._ jspService(_OA. java:94)
at oracle.jsp.runt ime.HttpJsp.ser vice(HttpJsp.ja va:119)
at oracle.jsp.app. JspApplication. dispatchRequest (JspApplication .java:417)
at oracle.jsp.JspS ervlet.doDispat ch(JspServlet.j ava:267)
at oracle.jsp.JspS ervlet.internal Service(JspServ let.java:186)
at oracle.jsp.JspS ervlet.service( JspServlet.java :156)
at javax.servlet.h ttp.HttpServlet .service(HttpSe rvlet.java:588)
at org.apache.jser v.JServConnecti on.processReque st(JServConnect ion.java:456)
at org.apache.jser v.JServConnecti on.run(JServCon nection.java:29 4)
at java.lang.Threa d.run(Thread.ja va:534)

Thanks and Regards
Arunach alam.Chidambara m
Quote
0 #16 Anil Passi- 2010-07-12 10:27
Hi Arunachalam

Ok , I got your requirement and I can see what you are doing.

Can you compare the XML that gets generated by standard application against your XML?
Your error is being generated from which means a string exists where a number was meant to be within the data.
at java.io.DataInp utStream.readIn t(DataInputStre am.java:44

A comparison of standard transaction_doc ument versus your XML will give you the insight of why your XML is not getting parsed

Alterna tely, consider the option of populating per_objectives via API, populate some attribute column to capture whether it is approved or not. Then using row level security, hide that record from the system unless approved. The Row level security however should show unapproved records from objective setting set objective screen. However the process that converts scorecard objectives into appraisal objectives must not see the objective records that are unapproved. This will need a lot of regression testing though. Therefore your first option should be to ensure that XML document created via your custom processes is well formed as per
Thanks,
Anil Passi
Quote
0 #17 Arunachalam 2010-07-14 03:40
Dear Anil,

Finally after a long fight the problem resolved.

The funny part is (for me it’s funny, but actually idea behind this not known); the CDATA value generated by the system is 20 characters long
For e.g. . Wherein when I generate it through API it was 15 characters long (of course running sequence as suffix).

So after suspecting all other attribute values, finally my friend suggest to try the CDATA value with similarly length, and once we do so; the error disappears; now it shows the data in Oracle UI properly.

Note : I am still not convenience on this; your thought on this will be of great help.

Thanks and Regards
Arunach alam.Chidambara m
Quote
0 #18 Arunachalam 2010-10-15 04:52
Dear Anil,

Yes, the first cycle of Objective creation is done, but now we are facing some integrity issue once the (Objective) score card get reset.

As I explained above, we done with our API development to persist XML in TRANSACTION_DOC UMENT column of HR_API_TRANSACT IONS table and it goes well till it get approved (and it goes to PER_OBJECTIVES once approved by Manager).

But, for mid year review purpose if they reset the score card (in Plan setup), then the CDATA pattern which is being generated by our API is not working with Application module.

To elaborate where I struck, pls find below:

if we create/ update/ delete Objectives using API; it works fine, even through Application OAF page, we could see the change and it allows to change the values from Application screen (and the XML Document is perfect in Transaction_Dou ment column).

But once we reset scorecard, the change we do API is not working properly on the consistency side (as required by OAF page).

In short what I understand is the CDATA sequence being generated by the OAF page is being stored in one more table (other than HR_API_TRANSACT ION_STEPS column OBJECT_IDENTIFI ER and HR_API_TRANSACT IONS - part of XML CDATA tag).

How I am telling this is, when I do the entire flow through Application OAF page, the OBJECT_IDENTIFI ER value generated by OAF for the Objective_id get retained back to HR_API_TRANSACT ION_STEPS ; after doing change any of the previous approved objective; I mean after scorecard reset.

But we don't know where else this OBJECT_IDENTIFI ER value being stored?
Because once you approve the objectives; the records from HR_API_TRANSACT IONS and HR_API_TRANSACT ION_STEPS are being removed.
So on reset scorecard time, any amendment to the objective, retains the OBJECT_IDENTIFI ER from some table.

Please help us on this to find the table where they store the OBJECT_IDENTIFI ER value.

Thanks and Regards
Arunach alam.
Dubai
Quote
+1 #19 Arunachalam 2010-10-16 12:39
Dear Anil,

Yes after a long struggle, we find the solution, in short the OBJECT_IDENTIFI ER is not being stored elseware except (Transacation and transaction steps - XML),
but its basically being generated through below logic. i.e.

prefix: 000100000004 || RAWTOHEX(object ive_id)

for example 000100000004+ RAWTOHEX(59113) = 000100000004C30 65C0E

So what I did I used the same logic to my CDATA structure, then all goes fine


Thanks and Regards
Arunach alam.Chidambara m
Quote
0 #20 Anil Passi- 2010-10-17 15:33
Thanks a ton Arunachalam for sharing this information
Quote
0 #21 Ramkumar_nov19 2011-08-18 06:32
Hi
i'm creating the objectives using hr _objectives_api and when the status has been changed to published in per_scorecards table.the data in transaction table is not deleted.

regar ds
ram
Quote
0 #22 Arunachalam 2011-08-18 08:32
Dear Ram,

From my knowledge hr_objectives_a pi will move the data directly to per_objectives, pls check

Thanks
Arunac halam.C
Quote
0 #23 pooja gupta 2012-06-13 11:12
Hi Anil,

I have a requirement to update data values present in transaction_doc ument column to munj data in non prod instances.
As given in this article , for e.g. data 'Test Anil Objective 001' need to be changed to 'X_Test Anil Objective xyz' .
Is it recommended to directly use update command or please suggest any alternate way.

Regards,
Pooja
Quote
+1 #24 Ajay_Sharma 2014-01-31 05:00
Hello Arunachalam.C / Anil,

I have a requirement to apply for a leave from a IOS mobile application. We have created Web services and PL/SQL code. Our problem is inserting record in TRANSACTION_DOC UMENT column as it is in XML format.

I searched on it and found that Application Module stated is getting stored here but as we have mobile application there is no Application Module will be there.

Can you please guide us.

@Arunachal am.C; can you please share your code.
Quote
0 #25 Sushil 2014-04-16 09:53
Hi Anil/Arunachalam,

I have created the transaction document by writing the SQL query to generate the XML with neccessary attributes and triggered the workflow from backend.

I am able to see the notification in the supervisor and creator queue.But when I open the notification of Supervisor it is giving me NULL Pointer Exception.

Did you encouter this before. Please help it been stuck for long time now.

Kindly let me know if any inputs are required.

Thanks.
Quote
0 #26 Asif Khan 2015-02-09 11:13
Thank you so much... for the clob solution...:)
Quote
0 #27 SriA 2015-10-13 15:49
Hi Ajay,

Are you able to develop the ios application of Leave of absence.

Can you let me know how did solve the issue.

Thanks
Srinivas
Quote

Add comment


Security code
Refresh

Search Trainings

Fully verifiable testimonials

Apps2Fusion - Event List

<<  Apr 2024  >>
 Mon  Tue  Wed  Thu  Fri  Sat  Sun 
  1  2  3  4  5  6  7
  8  91011121314
15161718192021
22232425262728
2930     

Enquire For Training

Fusion Training Packages

Get Email Updates


Powered by Google FeedBurner