Wednesday, September 5, 2018

HCM Extracts : How to find ESS job id for a scheduled extract to be cancelled

Hi ,

Many times we may not find the exact ESS job to be cancelled, when we want to cancel an already scheduled extract.

In that case we can use below SQL to identify the ESS job ID. Here we just need to key in the extract run name which we have entered while scheduling the extract :


select pfi1.INSTANCE_NAME , pfi1.flow_instance_id , essrh1.requestid  from
pay_flow_instances pfi1 ,
pay_requests pr1,
ess_request_history essrh1
where pfi1.INSTANCE_NAME like '<Extract Run Name>'
and pfi1.flow_instance_id = pr1.flow_instance_id
and pr1.call_id = essrh1.requestid

Hope this helps.

Thanks,
Srikanth

Monday, April 23, 2018

Fusion BIP : How to get current logged in user in report

I would like to share a very small topic, yet very useful in Fusion reports space.

Many times we want to query records/ transactions related to the logged in user. (i.e, the user who is currently running the report ).

For this we can use the below query :

SQL>> select SYS_CONTEXT( 'USERENV', 'CLIENT_IDENTIFIER' )  from dual;


Happy learning and sharing,
Srikanth

Wednesday, March 21, 2018

HCM Extracts : How to specify dynamic date in HCM Extracts Schedule


It is very rare that the HCM Extracts would be developed to be run on ad-hoc basis.
Most of the times the extracts are scheduled on a periodic basis.

Saying so, we might need to pass dynamic value for its parameters for ex: effective date. ( in place of SYSDATE which is by default )

Lets say we want the extract to run with date range of 15 days in future. ( i.e EffectiveDate is SYSDATE+15 )

To achieve this, we need to go to Data Exchange ==> HCM Extracts ==> Refine Extracts ==>
Search for the extract and click on edit.



Select the Effective Date parameter and click on edit. Enter below values :
a. Parameter Basis : Post SQL Bind
b. Basis Value : select sysdate+15 from dual
c. Save and then Submit.
 


Bingo, now whenever the extract runs the effective date would be Todays date + 15.

Thanks for reading,
Srikanth






Tuesday, March 20, 2018

Fusion BIP : How to view the report output submitted by any user.

Many times we need to view the report outputs submitted by others. This might be to debug an issue or just for data validation.

We can achieve this from the same BIP login of the Fusion Apps, from where we generally create the reports.

Navigation :
a. Open the URL : https://< FusionApps hostname>/xmlpserver
b. Click on the Home link.
c. Click on the "Report Job History" on the bottom left.


d. This opens a search window, enter the Report Job Id and click on Search.
    (  In case of HCM Extracts, the ESS JobID of the BIP Job can be entered in the ReportJobName field ).
     The search results will be shown which is irrespective of the user who has submitted them.
     The output can also be downloaded from the same.
   

             
Now click on the "Report Job Name" and this takes us to the page where we can download the report output.

Thanks for reading,
Srikanth

Monday, February 12, 2018

What to do if we are unable to build a JET app and getting unexpected token issue.

Sometimes when we try to build or deploy the JET application with the below two commands ..
a. ojet build --release
b. grunt build:release

..we get the below error stack.

node_modules\uglify-js\tools\node.js:27:1), <anonymous>
:86:23)
    at formatError (util.js:642:16)
    at formatValue (util.js:544:18)
    at inspect (util.js:324:10)
    at format (util.js:191:12)
    at Console.log (console.js:127:21)
    at tooling.build.then.catch.error (C:\Users\AppData\Roaming\npm\nod
e_modules\@oracle\ojet-cli\lib\tooling\build.js:29:27)
    at <anonymous>
  message: 'Unexpected token: name (binary)',
  filename: 0,
  line: 239,
  col: 22,
  pos: 11651 }

At the first glance we might not be able to decide if the error is from the
a. Our developed source code
b. node_modules libraries
c. or the files in the directory structure : C:\Users\AppData\Roaming\npm\nod
e_modules

However by doing the modifying the below function in the file : /node-modules/uglify-js/lib/parse.js ...


  1. function unexpected(token) {  
  2.   console.trace()  //  HERE THE DIAGNOSTIC CHANGE TO DETERMINE THE FAILURE  
  3.    if (token == null)  
  4.   token = S.token;  
  5.   token_error(token, "Unexpected token: " + token.type + " (" + token.value + ")");  
  6. };  

.. we can get hold of token that is causing the issue.

{ SyntaxError: Unexpected token: name (binary)
    at JS_Parse_Error.get (eval at <anonymous> (D:\node_modules\uglify-js\tools\node.js:27:1), <anonymous>
:86:23)

Here binary is the culprit and we can search this keyword in our entire application and fix the issue.

In my case I was using an expression like below.. where in let keyword was not being identified by the build tools.

let binary = '';

Thanks,
Srikanth

Courtesy : Oracle community thread

Tuesday, January 30, 2018

How to identify the correct JDeveloper version for your JCS / PaaS

Working in JCS / PaaS, many times we would be in cross roads as to which JDeveloper version needs to be picked up for the development.

I was recently made aware of the perils of choosing the wrong JDev version by my teammates, before which I slightly turned a blind eye on what might become a grave mistake.

However it is always recommented to verify the version from the JCS itself, before proceeding to downloading the appropriate JDeveloper.

Simply login into your JCS console ( i.e, Weblogic console ) and verify the version at the bottom left corner.



Also to check if your JDev is at the correct version level. Check the version from Help --> About.





Though this seems to be a trivial matter, if advanced version Jdev ( more than current JCS version ) is used to develop an application, it can never be downgraded to a lower version.
This would mean a complete re-work of the application in a lower version JDev.

Thanks for reading,
Srikanth

Friday, January 19, 2018

"To JET or not to JET !! " : How to choose between ADF and JET

In the beginning of a Oracle based/ scoped Web project we have to take a decision whether to go the conventional ADF path or tread the now trending JET path.

Many a times we get lured by the latest cutting edge technologies and incline towards that. However I would like to share my learnings in this scenario.

I feel JET is more apt choice :

a. If the application is accessed from mobile devices ( responsive applications ).

b. If it is not a very data intensive application. We can tap the full power of JET if user acts on limited set of data. That is the data is already fetched and the data is manipulated in the ViewModel layer.

c. If application uses third party Javascript libraries. Ex: cordova plugins, Camera feature, QR code scanning etc

d. The Oracle JET community is very proactive and we can expect help whenever we are in an issue.


I feel JET is not a appropriate in below scenarios : 

a. If the UI needs to show data from multiple sources. In such cases we need to go with Master-Detail screens, Cascading LOVs. 
                This becomes timetaking specially when all the sections are based on different sources ( Ex: REST services ) and the onus is on developer to handle the dependencies, filtering, sorting, searching. etc. I wish if JET could also come up with the 

b. If we need Search region, Advance search region, table level filtering, table level sorting etc there needs to be extensive coding to be done. If the project timelines provide enough bandwidth then this additional task can be compensated.

c. Even though there are a vast number of  JET Visualizations are available in JET, to feed these components with the data in appropriate format, it needs lot of data massaging which means more time obviously.

d. If the OAuth needs to be implemented more time needs to be pumped in, as it is different from SSO or weblogic based authentication.



        Finally as ADF is around for a long long time, all the features are matured enough and in a tight time lined project this allways proves to be a better choice.
Given the extensive documentation, Blogs and Support we are not stuck at particular issue.

Though I have shared my experiences, it is upto the requirement of the project and ofcourse the client preferences !! :)

Thanks for reading,
Srikanth




Fusion BIP : How to show one parameter in report and pass different value to the datamodel

Hi All, There can be a scenario where we might need to show one value in the report and a different value to the actual query. Lets say a...