SOA Gateway is an integral part of Ebusiness Suite R12. IT can expose EBS Functionality as SOAP based webservices which includes XML gateway, Business Service Objects, Concurrent Programs, PL/SQL API's, Business Events, E Commerce Gateway, Open Interface Tables/Views etc.
The steps to be followed to expose a PL/SQL script as SOA Gateway webservice is shown below:
It is not required to physically place the file in that path.
The steps to be followed to expose a PL/SQL script as SOA Gateway webservice is shown below:
1. Include the annotations at the package level and procedure/function level to the PL\SQL Spec.
Example:
create or replace <Package_Name> AS
/* $Header: $ */
/*#
* @rep:scope public
* @rep:product <Object Name>
* @rep:lifecycle active
* @rep:displayname <Name of the package>
* @rep:compatibility S
* @rep:category BUSINESS_ENTITY <Object>
*/
PROCEDURE <procedure_name>(
Input1 IN VARCHAR2,
output1 OUT VARCHAR2,
)
/*#
* @param Input1 <description of input>
* @param output1 Return <output1 details>
* @rep:displayname <procedure_name> */;
END <procedure_name>;
/
SHOW ERRORS
EXIT
- Move the PL\SQL Package(.pls files) to the Unix Machine using winscp or putty.
- Ensure to have irep_parser.pl to be present in Unix Machine.
- Execute the following command to create an iLdt file for package
$IAS_ORACLE_HOME/perl/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=<admin username> <Object name>:patch/115/sql:<Package Name>.pls:12.0=<pls file location>/< Package Name.pls>
Where
Object name is the name of the object where the services will be registered.
patch/115/sql: stands for the path
<package_name>.pls: file name
<package_name>.pls: file name
It is not required to physically place the file in that path.
<pls file location>/< Package Name.pls> - Physical file path
5. Execute the following command to upload the iLdt file to Intergrated SOA Gateway Responsibility:
$FND_TOP/bin/FNDLOAD <UNAME>/<PWD> 0 Y UPLOAD $FND_TOP/patch/115/import/wfirep.lct <pls file name>.ildt CUSTOM_MODE=FORCE
6. To generate and deploy the service in multi node environment please login to each node and execute the following commands (with admin privileges)
$FND_TOP/bin/soagenerate.sh irepname=<internal name or package name>
7. Check the ServiceGenerator.log file for service generated successfully or not. (with admin priveleges)
$FND_TOP/bin/soadeploy.sh irepname=<internal name or package name>
8. Check the ServiceDeploy.log file for service is deployed successfully or not.
9. In R12 front End Application select Intergrated SOA Gateway Responsibility, search for the object where this API was deployed.
10. Select the Deployed Service and open the details of the same. Now give the grant for the Procedure listed. Select the checkbox for the procedure listed and select “Create Grant”. In the next screen we can give the individual grant access or to all the users.
11. Click on view WSDL and check if the WSDL is accessible.
This comment has been removed by the author.
ReplyDeleteHi,
ReplyDeleteWhen validating the annotation file, the below command is used
$IAS_ORACLE_HOME/perl/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin cocar:/patch/115/sql:ABC_A:12.0=path of ABC_A where ABC_A is the annotation file
But in our unix box, there is no 'perl' folder within bin. Is it because i don't have access to that folder or anything else?
When i execute the above command, i am getting error as" can't locate strict.pm "
Any Ideas?
Please check if you have permission to access perl folder within bin
DeleteHi Vyshali,
DeleteThanks for your reply. I am able to see perl(file) within bin. I don't see any folder named perl. In the command , is it referring to a file or a folder?
I have read and execute permissions on that perl file, irep_parser.pl as well as the annotation file.
But, I am getting the following error while creating iLDT for the package:
Can't locate strict.pm in @INC. BEGIN failed--compilation aborted at line 13.
Command I am using is:(I am running this from the path /home/ABC)
$IAS_ORACLE_HOME/perl/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=sysadmin gl:/patch/115/sql:A:12.0=/home/ABC/A.pls
Hi RK,
DeleteLooks like this issue is with perl installed in your system. Please check all the perl env variables especially PERL5LIB which should point to lib folder and file permissions are correct. Strict pm is a perl module which is not found hence check if this module exists in your installation.
For your query:I am able to see perl(file) within bin. I don't see any folder named perl. In the command , is it referring to a file or a folder?
perl is a command which you would run within bin folder.
I have created webservice as per given steps . I can see this webservice as generated and deployed from "SOA integration repository" responsibility, but when I click on "View WSDL" link. it gives me {HTTP:404 error --The webpage cannot be found.} error, Any idea on this issue? Please share .
ReplyDeleteHi,i have a problem, when i tried to donwload iLDT, i got this:
ReplyDelete[proyecto@lapebs31 ~]$ $IAS_ORACLE_HOME/perl/bin/perl $FND_TOP/bin/irep_parser.pl -g -v -username=SYSADMIN gl:/patch/115/sql:xx_test_soagway.pls:12.0=/tmp/xx_test_soagway.pls
Can't locate Class/MethodMaker.pm in @INC (@INC contains: /dev150/apps/apps_st/appl/fnd/12.0.0/perl /dev150/apps/apps_st/appl/fnd/12.0.0/xml/orc115 /dev150/apps/apps_st/appl/fnd/12.0.0/perl/FND/irep/repo /dev150/apps/apps_st/appl/fnd/12.0.0/bin/ /dev150/apps/tech_st/10.1.3/perl/lib/5.8.3/i686-linux-thread-multi /dev150/apps/tech_st/10.1.3/perl/lib/5.8.3 /dev150/apps/tech_st/10.1.3/perl/lib/site_perl/5.8.3/i686-linux-thread-multi /dev150/apps/tech_st/10.1.3/perl/lib/site_perl/5.8.3 /dev150/apps/apps_st/appl/au/12.0.0/perl /dev150/apps/tech_st/10.1.3/Apache/Apache/mod_perl/lib/site_perl/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/5.8.3 /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl/5.8.3/i686-linux-thread-multi /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl/5.8.3 /ade/smayer_perl58_main_linux/perl58/bin/Linux/Opt/lib/site_perl .) at /dev150/apps/apps_st/appl/fnd/12.0.0/perl/FND/irep/repo/Rep/Parser.pm line 24.
BEGIN failed--compilation aborted at /dev150/apps/apps_st/appl/fnd/12.0.0/perl/FND/irep/repo/Rep/Parser.pm line 24.
Compilation failed in require at /dev150/apps/apps_st/appl/fnd/12.0.0/bin/irep_parser.pl line 37.
BEGIN failed--compilation aborted at /dev150/apps/apps_st/appl/fnd/12.0.0/bin/irep_parser.pl line 37.
any idea of this? how i can solve this? me i miss something?
Did You get an answer for the error , I m getting the same error tooo please help if u have any idea
Delete