Tuesday, November 3, 2015

Implementing SIF (Service Invocation Framework)

To invoke all integration services from Oracle E-Business Suite, Oracle E-Business Suite Integrated SOA Gateway uses service invocation framework (SIF) that leverages Oracle Workflow Java Business Event System (JBES) and a seeded Java rule function to allow any WSDL-described service to be invoked.

Note: To have the Web service invocation feature work properly, Oracle E-Business Suite Integrated SOA Gateway has dependency on the Oracle Application Server WSIF and Oracle Workflow Java Business Event System.

By using this service invocation framework, developers or implementors can interact with Web services through WSDL descriptions instead of working directly with SOAP APIs, the usual programming model. This approach lets you use WSDL as a normalized description of disparate software, and allows you to access this software in a manner that is independent of protocol or location.

This invocation framework used in Oracle E-Business Suite allows updated implementations of a binding to be plugged into WSIF at run time. As a result, it not only facilitates a stubless or completely dynamic Web service invocation, but also allows the calling service to defer choosing a service binding until run time. More importantly, this enhances the seamless business integration between loosely coupled applications and accelerates service execution and consumption.

https://docs.oracle.com/cd/E18727_01/doc.121/e12169/T511175T513090.htm

the picture is described in the document text




Wednesday, September 9, 2015

ORA-06508: Could not find program unit being called wf_xml.generate for oracle.apps.wf.notification.send

Solution: Verified invalids and found 248. Asked DBA to recompile APPS schema and restart workflow services. After recompile of APPS schema there were 28 invalids and issue got resolved

Thursday, July 30, 2015

OAF challenges and tips

D2K <-> OAF
Call D2K form from oaf using syntax: pageContext.forwardImmediatelyToForm(String); String should be in format of form:APPLICATION_SHORT_NAME:RESPONSIBILITY_KEY:DATA_GROUP_NAME:FORM_FUNCTION_NAME

Example: String d2k = "form:FND:APPLICATION_DEVELOPER:STANDARD:FND_FNDPOMPO";
Call OAF from D2K using fnd_function.execute API

Import data from Excel to Oracle Table using OAF:
For this we need jxl.jar to download and place it in myprojects folder in local and place it in

Deployment of JAR Files
Till R12.1.
JAR file by placing in server and add below entry in orion-application.xml at $ORA_CONFIG_HOME/10.1.3/j2ee/oacore/application-deployments/oacore/ Remember to run auto-config bounce middle tier as well. This works upto R12.1, since OCJ4 understands orion-application.xml file. After R12.1 its different procedure.
       
From R12.2, it works like this.
 Deploy JAR file into $FND_TOP/java/jar in R12.2, WLS understands a file $FND_TOP/admin/template/ebsProductManifest_xml.tmp and run auto-config and bounce middle-tier services.
    customprod.jar
1. if you modify file in standard folder--> unjar using jar -xvf, unzip, modify, zip, jar using  jar -cvf and then execute 'regenerate product jar' from adadmin
2. if you modify file in non-oracle standard custom i,e $JAVA_TOP/oracle/apps/xxe --> create customprod.zip using below and then run adjava command as sample below
zip -r customprod.zip $JAVA_TOP/oracle/apps/xxe

adjava oracle.apps.ad.jri.adjmx -areas $JAVA_TOP/customprod.zip -outputFile $JAVA_TOP/customprod.jar -jar $CONTEXT_NAME 1 CUST jarsigner -storePass apps -keyPass apps

3. if you modify file in oracle standard custom i,e $JAVA_TOP/xxe/oracle/apps --> Run adcgnjar utility from $AD_TOP/bin, which will create and sign-in customall.jar

Bit map index

This type of indexes normally used to create on low cardinality columns. Low cardinality column means, which is going to have very less type of values. For example: Supplier type would be internal or external. These indexes would be created in Data warehouse tables to improve the performance. We can create this index on column or joining of tables also.

http://www.orafaq.com/wiki/Bitmap_index

Thursday, July 23, 2015

Deployment changes from 12.2 onwards

Please refer to:
1.Oracle® E-Business Suite Developer's Guide Release 12.2 (Part No. E22961-09)
2.Deploying Customizations in Oracle E-Business Suite Release 12.2 (MOS Doc ID 1577661.1)
3.Using the Online Patching Readiness Report in Oracle E-Business Suite Release 12.2 (MOS Doc ID 1531121.1)
4.Oracle E-Business Suite Release 12.2: Online Patching FAQ (MOS Doc ID 1583902.1)

Edition based Redefination ( EBR) - Run Edition and Patch Edition

EBR in DB: Editionable objects are synonym, views and all plsql objects.
In Linux:
echo $FILE_EDITION
 In DB:
select ad_zd.GET_EDITION_TYPE,
ad_zd.GET_EDITION
from dual;

How to set your Edition?
OS:
source /oracle/ebs122/EBSapps.env run or
source /oracle/ebs122/EBSapps.env patch
echo $RUN_BASE - the run filesystem
echo $PATCH_BASE - the patch filesystem
DB:
ad_zd.SET_EDITION(‘RUN’)
or
ad_zd.SET_EDITION(‘PATCH’)

Check Edition Status:
•How to check the status of patching
•In the OS:
adop –status
•From the DB:
sqlplus apps @ADZDSHOWED.sql

EBR and Data:
•Table Data is maintained through triggers
•Seed Data is handled by striping it with an Edition column









Oracle MAF (Mobile Application Framework)

Need to install Jdeveloper 12c.

http://multikoop.blogspot.in/2014/07/adf-mobile-rebrands-to-oracle-maf.html
http://www.oracle.com/technetwork/developer-tools/maf/overview/index.html
http://download.oracle.com/otn_hosted_doc/maf/academy/DevelopingApplicationsWithMAF/presentation.html


Develop your own free IM(Instant Messaging) tool for your website or organization

Openfire server --> Install this at linux server. This is open source and written in java. This uses XMPP (Extensible Messaging and Presence Protocal)

Spark client --> Clients should install this at their local machines

http://www.tecmint.com/create-your-own-instant-messagingchat-server-using-openfire-in-linux/

We can also integrate IM(XMPP) with Oracle Apex. Please check below

https://technology.amis.nl/2012/10/01/how-to-build-an-im-xmpp-solution-with-oracle-apex-and-websockets/

Wednesday, May 27, 2015

Useful scripts

--Script to reset password of application user with APPS password
declare
v_user_name varchar2(30):=upper('&Enter_User_Name');
v_new_password varchar2(30):='&Enter_New_Password';
v_status boolean;
begin
v_status:= fnd_user_pkg.ChangePassword (
    username => v_user_name,
    newpassword => v_new_password
);
if v_status =true then
dbms_output.put_line ('The password reset successfully for the User:'||v_user_name);
commit;
else
DBMS_OUTPUT.put_line ('Unable to reset password due to'||SQLCODE||' '||SUBSTR(SQLERRM, 1, 100));
rollback;
END if;
end;
 List of responsibilities a application user has
------------------------------------------------------------------ ------------------------------------------------------------------
SELECT frt.RESPONSIBILITY_NAME, furg.end_date
FROM
fnd_user_resp_groups fur,
FND_RESPONSIBILITY fr,
fnd_responsibility_tl frt,
fnd_user fu
WHERE fu.user_name = '&username'
AND fu.user_id = fur.user_id
AND furg.responsibility_id = fr.RESPONSIBILITY_ID
AND frt.responsibility_id = fr.RESPONSIBILITY_ID
ORDER BY 1

 How to activate user by setting end_date as Null

 ----------------------------------------------------------------- ------------------------------------------------------------------

DECLARE
   CURSOR usercur
   IS
      SELECT fu.user_name
        FROM apps.fnd_user fu
       WHERE user_name = 'TEST_ACCOUNT';
BEGIN

   FOR myuser IN usercur
   LOOP
      fnd_user_pkg.updateuser(
         x_user_name      => myuser.user_name
       , x_owner          => 'CUST'

        ---- This is 1/2/4712. Oracle keeps end date as null
        , x_end_date       =>  to_date('2', 'J')
      );
   END LOOP;

END;

Saturday, January 10, 2015

How to resolve ORA-22288 ORA-06512 File or LOB operation GETLENGTH failed

ORA-22288: file or LOB operation GETLENGTH failed
No such file or directory
ORA-06512: at "SYS.DBMS_LOB", line 850
ORA-06512: at line 99
22288. 00000 -  "file or LOB operation %s failed\n%s"
*Cause:    The operation attempted on the file or LOB failed.
*Action:   See the next error message in the error stack for more detailed
           information.  Also, verify that the file or LOB exists and that
           the necessary privileges are set for the specified operation. If
           the error still persists, report the error to the DBA.

Solution: Make sure you uploaded file into proper DB Server.