tag:blogger.com,1999:blog-87180534573349731882024-03-17T20:01:03.470-07:00Enterprise Application IntegrationCloud TechnologiesVijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.comBlogger106125tag:blogger.com,1999:blog-8718053457334973188.post-71025182230138044182023-06-04T13:47:00.002-07:002023-06-04T13:48:38.807-07:00Docker - Container Cheat Sheet<p>Basic and advanced docker commands for reference. Use them as a cheat sheet</p><p style="text-align: left;"></p><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Commands to install docker on Linux </span></b></li></ul><p></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="text-align: left;">curl -fsSL https://get.docker.com -o get-docker.sh</div></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="text-align: left;">sudo sh get-docker.sh</div></blockquote></blockquote><p></p><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to start the Docker daemon </span></b></li></ul><p></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div>sudo service --status-all </div></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div><div>sudo service docker start</div></div></blockquote></blockquote><p></p><ul style="text-align: left;"><li> <b><span style="color: #2b00fe;">Command to Pull the docker images from Docker hub</span></b> - https://hub.docker.com/</li></ul><p></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><div style="text-align: left;">docker <b>pull </b>image_name:version<br /><span>version : default value is latest</span> </div></blockquote></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px;"><p style="text-align: left;">docker pull mysql</p></blockquote></blockquote><p></p><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to pull and install the docker image</span></b></li></ul><p></p><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;">docker <b>run </b>image_name</blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;">docker <b>run </b>mysql</blockquote></blockquote><p> docker <b>run </b>-d image_name => To run the command in background mode. </p><p> docker <b>run </b>-d --name webapp_vk -d image_name => To assign a name to the docker container</p><p><span> </span><span> </span><span> </span><span> docker run -d image_name command ==> We will override the CMD statement in the image or append the value to ENTRYPOINT command. </span> </p><p></p><ul><li> <b><span style="color: #2b00fe;">Command to List the running containers</span></b>. </li></ul><div><span> </span><span> </span><span> </span><span> </span><span> docker ps <span> =</span>=> List all the running containers. </span><br /></div><div><span><span> </span><span> </span><span> </span><span> </span><span> docker ps -a ==> List both running and stopped containers. </span><br /></span></div><div><span><span><br /></span></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to List the images present on the host</span>. </b></li></ul><div><span> </span><span> </span><span> </span><span> </span><span> docker images ==> List all the images. </span><br /></div></div><div><ul><li><b><span style="color: #2b00fe;">Command to Stop the containers.</span></b></li></ul><div><span> </span><span> </span><span> </span><span> </span><span> docker stop container_id / container_name. </span><br /></div></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to Remove the containers. </span></b></li></ul><div><span> </span><span> </span><span> </span><span> </span><span> docker rm container_id ==> Make sure containers are stopped before running the command. </span><br /></div></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to delete or remove the images.</span> </b></li></ul><div><span> </span><span> </span><span> </span><span> </span><span> docker rmi image_id ==> We can specify first few characters of the Id. </span><br /></div></div><div><span><br /></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to run and execute Unix command. </span></b></li></ul><div><span> </span><span> </span><span> </span><span> docker run ubuntu cat /etc/*releases* ==> This will install a ubuntu on a container and run the command. </span><br /></div></div><div><span><br /></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to execute the scripts</span></b></li></ul><div><span> </span><span> </span><span> docker exec container_id cat /etc/*release*</span><br /></div></div><div><span><br /></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to build a docker image</span></b></li></ul><div><span> </span><span> docker build . ==> provided the Dockerfile is in the same directory from where we are running this command. </span><br /></div></div><div><span><span> </span><span> docker build -f DockerFile -t vijaya/image_name ==> Providing tag/name to the image</span><br /></span></div><div><span><br /></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to push the docker image to Hub</span></b></li></ul><div><span> </span><span> Before we push the image , we need to login </span><br /></div></div><div><span><span> </span><span> docker login ==> This will prompt docker hub credentials. After successful login</span><br /></span></div><div><span><span><span> </span><span> docker push vijaya/image_name ==> Push the image to Hub</span><br /></span></span></div><div><span><br /></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command to pass the environment values</span></b></li></ul><div><span> </span><span> docker run -d -e ENV_VARIABLE_NAME=VALUE --name vijaya_container image_name ==> This will supply the environment values. </span><br /></div></div><div><span><br /></span></div><div><ul style="text-align: left;"><li><b><span style="color: #2b00fe;">Command for Port Mapping to access the applications using Docker Host IP. </span></b></li></ul><div><span> </span><span> </span><span> docker run -d -p host_port : container_port image_name</span><br /></div></div><div><span> </span><span> </span><span> docker run -d -p 8306:3306 mysql </span><br /></div><div><span><br /></span></div><div><span><br /></span></div><div><span><br /></span></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-3961638045159805602023-06-03T05:23:00.004-07:002023-06-04T04:13:57.642-07:00OPENSSL Commands<p><b><span style="color: #2b00fe;"> Command to get the SSL certificate from the server.</span></b> </p><p><span> </span>openssl s_client -showcerts -connect ip:port</p><p><br /></p><p><span style="color: #2b00fe;"><b>Command to import certificate to custom truststore.</b> </span></p><p>keytool -import -alias alias_name -file certificate.cer -storetype JKS -keystore CustomTrustStore</p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-22602947985664585192023-04-03T04:48:00.002-07:002023-04-03T04:48:42.655-07:00SOA Integration with IDCS<p style="text-align: left;"></p><ul style="text-align: left;"><li> SCIM - System for Cross-Domain Identity Management</li><ul><li>Standard for Identity Managers API's</li><li>Used by multiple Identity Provider. </li></ul><li>SOA Roles will be mapped to IDCS groups. </li><li>Set up Federated SSO through SAML on IDCS and SOA</li></ul><div><br /></div><div><b><u>High-Level Steps. </u></b></div><div><ul style="text-align: left;"><li><b>Create IDCS groups for SOA</b></li></ul><ul style="text-align: left;"><li><b>Create a Confidential Application in IDCS</b></li><ul><li>Register as Client</li><li>Select client as Confidential</li><li>Allow following grants types</li><ul><li>Client Credentials</li><li>JWT assertion</li><li>Token Refresh</li><li>SAML2 Assertion. </li></ul><li>Granted Roles</li><ul><li>Identity Domain Administration</li><li>Cloud Gate</li></ul><li>Assign groups to this application. </li></ul></ul><ul style="text-align: left;"><li><b>Configure Identity Provider in SOA weblogic Console. </b></li><ul><li>Weblogic Console</li><li>Security Realms</li><li>Myrealm</li><li>Providers</li><ul><li>Select New</li><li>Name - IDCS Provider</li><li>Type - OracleDentityCloudIntegrator</li><li>Click Okay</li><li>Open IDCS provide</li><ul><li>Common</li><ul><li>Control Flag - SUFFICENT : Meaning dont have to check other provider if the IDCS authentication is successful. </li><li>Active Type</li><ul><li>Authorization</li><li>REMOTE_USER</li></ul></ul><li>Provider Specific:</li><ul><li>Provide the IDCS details. </li><ul><li>Host</li><li>Port - 443</li><li>SSL - Enabled</li><li>IDCS Tenant Name</li><li>Client Id</li><li>Secret. </li><li>Save</li></ul></ul></ul><li>Reorder the provider to check IDCS first and then go for default providers. </li><li>Select DefaultAuthenticator</li><ul><li>Common</li><li>Control Flag - SUFFICIENT</li><li>Save</li></ul></ul><li>Activate the changes. </li></ul></ul><ul style="text-align: left;"><li><b>Import IDCS Certificates to Trust Store. </b></li><ul><li>Get the IDCS certificates using following URL</li><ul><li>https://$IDCS_HOST_PORT/ui/v1/adminconsole</li></ul><li>Import Certificates into System/Trust using EM console. </li><li>Add the following property to SetDomainEnv.sh to support wild card certificates using common names.</li><ul><li>-Dweblogic.security.SSL.hostnameverifier=weblogic.security.utils.sslwlswildcardhostnameverifier</li></ul></ul></ul><ul style="text-align: left;"><li><b>Manual OPSS Configurations. </b></li><ul><li>Edit following file in domain dir</li><ul><li>/config/fmwconfig/jps-config.xml</li><li>Search for idstore.ldap and replace it with idstore.scim under jpsContexts</li><li>Create a IDCS property file and run the script as per the following doc-id : 2916662.2</li></ul></ul></ul><ul style="text-align: left;"><li><b>Configure SSO:</b></li><ul><li>Create a SAML application in IDCS.</li><li>Give a name.</li><li>Entity Id - Give any value</li><li>Consumer URL - https://$SOA_LB_URL/saml2/sp/acs/post</li><li>NameIdFormat - Unspecified. </li><li>Can add attributes.</li><ul><li>Name - Groups</li><li>Format - Basic</li><li>Value - Group Membership </li><li>Condition</li><ul><li>equals</li><li>Value - All groups</li></ul><li>Add Groups</li><li>Activate</li></ul><li>Download the idcs metadat.xml from the SAML application created above.</li></ul></ul><div><br /></div><ul style="text-align: left;"><li>RDBMS Setup for Weblogic LB </li><ul><li>Refer the below link for more details. </li></ul><li>Configure SAML Asserter.</li><ul><li>Refer the below link for more details. </li></ul></ul><div><br /></div></div><div><br /></div><div>Oracle Reference : https://support.oracle.com/epmos/faces/DocumentDisplay?_afrLoop=111700059898561&id=2916662.2&_afrWindowMode=0&_adf.ctrl-state=nbcwpoz12_4</div><div><br /></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-38650151476203363032023-02-09T15:49:00.001-08:002023-02-09T15:49:18.656-08:00Provisioning Oracle Integration Cloud Service<p><b><u> <span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">OIC Provisioning.</span></u></b></p><ul style="text-align: left;"><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>Provision Identity Cloud Service domain.</b></span></li><ul><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Login into the OCI console.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Go to Identity and Security Menu</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select Domains under Identity. This option will be available for the OCI accounts created after December 2018</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Click Create Domains</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Provide Name. Example - Development</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Provide Description. Example - Development Domains</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select Domain Type. Example - Free / Premium /etc.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">If we want to create a new administrator for the domain then we can provide the user name and password.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Otherwise we can use the OCI admin user credentials by un-selecting Create Admin User option.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select the compartment - Development . If not created then create a new compartment and use it.</span></li></ul></ul><ul style="text-align: left;"><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>Create an IAM group in the IDCS domain.</b></span></li><ul><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Go to the IDCS console.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select the groups menu</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Create a new group called Administrator group</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Provide a description.</span></li></ul></ul><ul style="text-align: left;"><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>Create an IAM policy in the IDCS domain.</b></span></li><ul><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Go to the OCI console.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select Identity and Security</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select Policies under Identity</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Click Create policy.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Provide a name - OICIntegrationGroupPolicy</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Use the policy builder to create policy.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>Sample </b>: allow group Development/Administrator to manage integration-instance in compartment Development</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Development/Administrator - DomainName/GroupName</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">If we don't provide the Domain Name then it will take the default domain present in the root compartment.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>NOTE</b>: User Federation refers to linking user's identity and attributes across multiple identity management systems.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Oracle Integration Federation means that identities are linked in IDCS and Oracle Identity And Access Management(IAM).</span></li></ul></ul><ul style="text-align: left;"><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>Create an Oracle Integration Instance</b></span></li><ul><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>NOTE </b>: Instance will be associated with the IDCS instance to which we login while provisioning the OIC.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Use the proper Identity domain while login.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">In this case , use the Development domain to login.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">After Signing into the OCI console, select the region.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Got to Developer Service Menu on OCI console</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Under Application Integration select Integration</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select the Compartment in which you want to provision the OIC. In this case it will be the Development compartment.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Click CREATE.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Provide Name.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Select Version - Gen 2 or Gen 3</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Consumption Model -- Universal Credit Limit</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Edition -- Standard or Enterprise.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Shape -- Development or Production</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>NOTE </b>: Based on the shape patches will be applied. Development shapes will receive the patches two weeks early.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Production shapes will receive the patches two weeks after the Development shapes.</span></li><li>Advance Options :</li><ul><li>Network Access :</li><ul><li>Only Gen 2 version will allow us to define and configure Allow list.</li></ul><li>Custom Endpoint :</li><ul><li>Available only for Gen 2</li><li>We can provide the custom endpoint.</li><li>It must already be registered on a DNS provider.</li><li>Its SSL certificates must be stored as secret in an OCI vault.</li></ul></ul></ul></ul><ul style="text-align: left;"><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b>Email Configurations.</b></span></li><ul><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">Sender Policy Framework (SPF) :</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">It lets domain owners (InfiniteCloud) identify servers (External Servers) they have approved to send emails on behalf of their domain.</span></li><li><span style="background-color: white; color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;">In Oracle Integration's case, domain owners(InfiniteCloud) need to approve OCI as an approved sender and to add a record for it in their domain.</span></li></ul></ul>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com1tag:blogger.com,1999:blog-8718053457334973188.post-79261282645996437452022-12-22T03:53:00.003-08:002023-10-05T05:11:57.890-07:00OCI - WAF - Web Application Firewall<p>Oracle OCI WAF helps us to protect our web applications or internet facing applications from threats such as OWASP defined vulnerabilities. </p><p>WAF can be used to restrict access based on the Geo location. It can also be used to apply the rate limiting. It also support protection rules , access control and Bot management. </p><p>WAF helps us to protect OCI based applications , On-premise and Multi cloud applications. </p><p>WAF supports two types of Enforcements. </p><p></p><ul style="text-align: left;"><li>WAF on OCI Load Balancer</li><li>WAF Edge Enforcement </li><ul><li>For On-Prime Applications</li><li>Multi Cloud , Multi Region Applications. </li></ul></ul><div><br /></div><div><b><u><span style="color: red;">WAF Demo:</span></u></b></div><div><ul style="text-align: left;"><li><span>Access OCI Console. </span></li><li><span>Select Identity and Security from the Menu</span></li><li><span>Select Web Application Firewall</span></li><li><span>Select Create WAF Policy</span></li><ul><li>Provide a unique name </li><li>Select the compartment</li><li>Use Legacy Workflow Option to create an Edge Policy</li><ul><li>New Window will open</li><li>Provide the following details. </li><ul><li>Domain Name : connect.vijaya.in</li><li>Additional Domain : oic.dvp.connect.vijaya.in</li><li>WAF Origin : Target application to be Protected </li><ul><li>Origin Name : sample-origin-name</li><li>URI : oic.svn-dvp.connect.vijaya.in</li><li>Create Policy</li></ul><li>In case of Edge Policy, once the WAF is activated , OCI console will display the CNAME to be added in DNS Zone. </li><ul><li>Go to DNS zone and add the CNAME.</li><ul><li>Add a CNAME record</li><ul><li>Domain Name : oic.dvp.connect.vijaya.in</li><li>RDATA : WAF-CNAME from the OCI console.</li><li>TTL : Time to live.</li></ul></ul></ul></ul></ul></ul></ul><div><br /></div><ul style="text-align: left;"><ul><li>In case of WAF for LB continue to the next page. </li><li>Add Access Control Rules</li><ul><li>Add Access Rules</li><li>Example:</li><ul><li>Geo restrictions</li><li>Source IP List</li><li>HTTP request Methods</li><li>HTTP Request Headers</li><li>Cookies</li><li>Path Check</li><li>Etc</li></ul><li>For Each access control rule select the action to be performed. </li><ul><li>You can create your own action.</li><li>Select the pre configured actions</li><ul><li>Check and Allow</li><li>Allow</li><li>Check and Block </li><ul><li>Send Error Response Back to the client. </li></ul></ul></ul></ul><li>Go to Next Page </li><li>Apply rate limiting rules if required</li><li>Go to next page</li><li>Apply protect rules. </li><ul><li>Select predefined OWASP rules to block the malicious requests. </li><ul><li>Example :</li><ul><li>Cross Site Scripting</li><li>SQL Injections</li><li>Etc </li></ul></ul></ul><li>Go to the Next page</li><li>Select the OCI LoadBalncer to which WAF needs to be applied. </li><li>Review</li><li>Create WAF Policy</li></ul></ul></div><div><br /></div><div><br /></div><div>Reference for more details: https://www.ateam-oracle.com/post/enhance-security-with-oracle-cloud-infrastructures-web-application-firewall</div><div><br /></div><div>https://www.ateam-oracle.com/post/using-oci-waf-web-application-firewall-with-oracle-e-business-suite</div><div><br /></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-12412583632927828002022-12-21T07:59:00.000-08:002022-12-21T07:59:27.054-08:00DNS Resolution<p><span style="background-color: white;"> Following diagram illustrates how the DNS resolution works in the background. </span></p><p><br /></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTLdj3EB3a9hQZuQb19ZsYPrZmXMw1XInpKbzO3tpfEovy7fdx0R5ZxSg20FgPGPUaUxGm9Oanh4SQK8Z46QQFE1NyrubvtKtZ8DtYI7tqqQDAf5F8oueOzhkzO7E_iIWM1qCtr0Z4cRC6KKU4Z4CcgMpyiZjtGpKmWpMVQOb4tDx2usbNBMJ8Nc8F/s1000/untitled-1.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="1000" data-original-width="1000" height="572" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhTLdj3EB3a9hQZuQb19ZsYPrZmXMw1XInpKbzO3tpfEovy7fdx0R5ZxSg20FgPGPUaUxGm9Oanh4SQK8Z46QQFE1NyrubvtKtZ8DtYI7tqqQDAf5F8oueOzhkzO7E_iIWM1qCtr0Z4cRC6KKU4Z4CcgMpyiZjtGpKmWpMVQOb4tDx2usbNBMJ8Nc8F/w572-h572/untitled-1.png" width="572" /></a></div><br /><p><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-43135101036591715932022-12-17T05:46:00.002-08:002022-12-17T05:46:39.538-08:00SOA - Capture Authentication Details <p>Add the following property in composite.xml file </p><p> <service name="InvAdjOnline_ep" ui:wsdlLocation="XxScmInvProcessMaterialTransaction_01.wsdl"></p><p> <interface.wsdl interface="http://www.xxxxx.xx/erp/inv/wsdl#wsdl.interface(XxScmInvProcessMaterialTransaction)"/></p><p> <binding.ws port="http://www.xxxx.xx/erp/inv/wsdl#wsdl.endpoint(InvAdjOnline_ep/XxScmInvProcessMaterialTransaction_pt)"></p><p> <b> <property name="oracle.webservices.http.headers">Authorization</property></b></p><p> </binding.ws></p><p> </service></p><p><br /></p><p>Use the following property in the receive activity to capture the authentication details. </p><p><bpelx:fromProperties></p><p> <bpelx:fromProperty name="Authorization" variable="authTokenVar"/></p><p> </bpelx:fromProperties></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-35740775369643776432022-10-18T05:56:00.008-07:002022-10-18T06:34:36.469-07:00Fusion - BICC Configuration<p style="text-align: left;">Oracle ERP provides an another offering called BICC - Business Intelligence Cloud Connector to extract the data from Fusion table and publish the data to UCM or OCI Object Storage. </p><p style="text-align: left;">It also provides an option to publish the data to OAC - Oracle Analytics Cloud. BICC contains list of Public View Objects (PVO) which are custom SQL views written to extract the data from Fusion database. <br /></p><p style="text-align: left;">Oracle will keep updating this PVO list and the View Objects as part of each patch updates. We can get the PVO list and corresponding table and column details from an excel sheet published by Oracle. <a href="https://community.oracle.com/customerconnect/discussion/47652/r13-x-fscm-bi-cloud-adapter-bi-view-object-to-database-lineage-mapping-spreadsheet/p1">Oracle Link</a> </p><p style="text-align: left;">In this blog I will let you know what all configurations we need to perform to extract and process the data using BICC. <br /><br /></p><p style="text-align: left;">Before we start , we need to have <b>BIACM_ADMIN</b> and <b>BICC_UCM_CONTENT_ADMIN</b> role assigned to our user-id. </p><p></p><ul style="text-align: left;"><li>We can access the BICC console using following URL - https://hostinstance.fa.ocs.oraclecloud.com/biacm/</li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkmlb3kKsM8e5c0-1eidtgrMEYjiXGMP5YbnWtBOjMPZWTo5R4rEVUcucLPaG1wcXJFevYpdl3UQ7BExWhbreN_KeDNZvaQvl7hP9GzyVDqocTkfmPeJpmfOPuzilEr0PRCJ8LVFDD7VGyylawdNmiso9chFsVTnuvEZR5Zel5Kdqx8WbR79O2JufX/s1920/BICC_Main_Page.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="448" data-original-width="1920" height="128" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhkmlb3kKsM8e5c0-1eidtgrMEYjiXGMP5YbnWtBOjMPZWTo5R4rEVUcucLPaG1wcXJFevYpdl3UQ7BExWhbreN_KeDNZvaQvl7hP9GzyVDqocTkfmPeJpmfOPuzilEr0PRCJ8LVFDD7VGyylawdNmiso9chFsVTnuvEZR5Zel5Kdqx8WbR79O2JufX/w547-h128/BICC_Main_Page.PNG" width="547" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><ul style="text-align: left;"><li>On the right side , select the settings menu and select "Manage Offerings and Data Stores" to find the predefined offerings (Grouped Entities - SCM, Order Management , HCM etc.). </li><li>Each offering will contain the PVO's related to a particular entity - SCM, HCM etc.</li></ul><b>Create Custom Offering</b><br /><ul style="text-align: left;"><li>We can create a custom offering to select specific PVO and group it. </li><ul><li>Select Actions and then select create offering option</li><li>Select the required PVO and create a custom offering. </li></ul></ul><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6SS57USL74tDKvdXi3dnRcNGYYXwW4d4UhhymvyIwBjRWK7YwyWjjBoFuUc5jhZ3MW5DoF_2PLrV2-0Xooguh-qEIBwPh4TwQwhYfDOnVMB0MQq9i6NWmhhCVCF_p8SOQYTTM4y5mFCA2ZIXqyBdwPfUMlsPmfBh5zHZaqiJL4C_OqSFIVumAACuy/s1808/Offering.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="232" data-original-width="1808" height="63" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg6SS57USL74tDKvdXi3dnRcNGYYXwW4d4UhhymvyIwBjRWK7YwyWjjBoFuUc5jhZ3MW5DoF_2PLrV2-0Xooguh-qEIBwPh4TwQwhYfDOnVMB0MQq9i6NWmhhCVCF_p8SOQYTTM4y5mFCA2ZIXqyBdwPfUMlsPmfBh5zHZaqiJL4C_OqSFIVumAACuy/w494-h63/Offering.PNG" width="494" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmscwe7ZzdDwWWA8ozTmZhjwdMDWw9Y7El3hfid7PdeV4wjbqpxw3V106HpLE92fVjAjPJFGPVTUzBFKTIJrA_XoN-Gih76djM22ekz3Ca8Rf0prF26SogLg-WfcFT0oTk97sDBa_a-SDhjaLU7OaCyu9vSh2SN6aYHc0A0MMD3injOkigG-qKZXH2/s1866/Offering2.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="671" data-original-width="1866" height="193" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhmscwe7ZzdDwWWA8ozTmZhjwdMDWw9Y7El3hfid7PdeV4wjbqpxw3V106HpLE92fVjAjPJFGPVTUzBFKTIJrA_XoN-Gih76djM22ekz3Ca8Rf0prF26SogLg-WfcFT0oTk97sDBa_a-SDhjaLU7OaCyu9vSh2SN6aYHc0A0MMD3injOkigG-qKZXH2/w538-h193/Offering2.PNG" width="538" /></a></div><ul style="text-align: left;"><li>We can select and deselect the columns from PVO to restrict the data access. </li><li>We can select the PVO and select "Select Columns" option to select or deselect the column. </li><li>These customizations which we are applying for each PVO can be extracted and imported into other instances. </li></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-sWz6xs-g-5BYtpkZ55iTNvV0j9xTQfGl6bIDQPoNTw6WXCLGHNeD1EopaMLCvjRUOgn1gLExD8fVE0Yy1-TwVwo-UX0wcZ56RonCBWCpmsjwikzjaATQG_bQs_xwImRWxIhCtl_GNpd-7QjSk9lIuIY5vNHGkog54xv1vXhTz8sjl36uaVeuOq0F/s1848/SelctPVO.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="691" data-original-width="1848" height="179" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEh-sWz6xs-g-5BYtpkZ55iTNvV0j9xTQfGl6bIDQPoNTw6WXCLGHNeD1EopaMLCvjRUOgn1gLExD8fVE0Yy1-TwVwo-UX0wcZ56RonCBWCpmsjwikzjaATQG_bQs_xwImRWxIhCtl_GNpd-7QjSk9lIuIY5vNHGkog54xv1vXhTz8sjl36uaVeuOq0F/w476-h179/SelctPVO.PNG" width="476" /></a></div><div><br /></div><div><b>Configure External Storage: </b></div><div><ul style="text-align: left;"><li>Select Configure External Storage option to configure UCM , OCI Object Storage and OAC configurations. </li><li>We can specify which storage to use while executing the PVO using BICC webservice. </li></ul></div><div><br /></div><div>Schedule BICC Extract: </div><div><ul style="text-align: left;"><li>We can execute PVO to extract the data using SOAP Service or by scheduling it manually. </li><li>We can use the scheduling option to Schedule the PVO or Submit the Extract manually. </li><li>Use "Manage Extract Schedules" to submit it manually or check the status of the previous runs. </li><li>Select Add action</li><ul><li>Provide a name</li><li>Select the schedule time</li><li>Select Next</li><li>Select the offering</li><li>Select the PVO</li><li>Select the External Storage</li><li>Save the schedule</li></ul></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr1wGT0Ciy69aqVhEDIDLrsKyd_3ZmHVMjq45314Qse3yyyw1PgLVDEoZRybk1DlWOK4LlzNwBtU1JT3vxLnYlTQatxcqNGGT5MmM6fG0zLOcMYyEAI8a_rkzXXR4mzcWnuXCl5sOSjpMS3Drds_7sAjA59tIKz55YzShlLnNfFqxWUv8b9smlyDZP/s1375/Schedule1.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="343" data-original-width="1375" height="112" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgr1wGT0Ciy69aqVhEDIDLrsKyd_3ZmHVMjq45314Qse3yyyw1PgLVDEoZRybk1DlWOK4LlzNwBtU1JT3vxLnYlTQatxcqNGGT5MmM6fG0zLOcMYyEAI8a_rkzXXR4mzcWnuXCl5sOSjpMS3Drds_7sAjA59tIKz55YzShlLnNfFqxWUv8b9smlyDZP/w450-h112/Schedule1.PNG" width="450" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMb1nyiUjGNnUFEUuBCZlZ_jUoolmsOkJSj9yskpM3-ItEfE7RQDyra5wfRMrq96relxS0nL8HyAysMpZOEfTewfX3d_65oY9t68RWyx2SchfLQQ0ZnJ0rWYTEGt12msa0YKfYzqzEi5ej8JMTG_WdWESv_qpLWTSANq4vwKpKUTiz2CLbeSztR0Hg/s1443/Schedule2.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="238" data-original-width="1443" height="74" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhMb1nyiUjGNnUFEUuBCZlZ_jUoolmsOkJSj9yskpM3-ItEfE7RQDyra5wfRMrq96relxS0nL8HyAysMpZOEfTewfX3d_65oY9t68RWyx2SchfLQQ0ZnJ0rWYTEGt12msa0YKfYzqzEi5ej8JMTG_WdWESv_qpLWTSANq4vwKpKUTiz2CLbeSztR0Hg/w450-h74/Schedule2.PNG" width="450" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBvqQ2PtUdePsME2nIKTqWWF2hViExSLQgH2jacHrppjb8SlFPiRlsXWAT9EyK4vc1C__N0Ipo3V1SNNTgUs9bIgupr_FBgtIWdTZ3BS55KuqfCUCBymo7Sdd8SAazQL7-7JzV-d_V2kgFJtb90DuxOA3kFDpoSWsHTnEhPqZJUQXY-vEuZgbTI_Cr/s1361/Schedule3.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="659" data-original-width="1361" height="215" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjBvqQ2PtUdePsME2nIKTqWWF2hViExSLQgH2jacHrppjb8SlFPiRlsXWAT9EyK4vc1C__N0Ipo3V1SNNTgUs9bIgupr_FBgtIWdTZ3BS55KuqfCUCBymo7Sdd8SAazQL7-7JzV-d_V2kgFJtb90DuxOA3kFDpoSWsHTnEhPqZJUQXY-vEuZgbTI_Cr/w443-h215/Schedule3.PNG" width="443" /></a></div><br /><div><br /></div></div><b>Extract Files: </b><p></p><ul style="text-align: left;"><li>Every time when we execute the PVO , it will generate 3 files. </li><ul><li><b>JSON File</b> : This will hold the execution and output file details. </li><li><b>Manifest File</b> : This will have the data file details. </li><li><b>Data File</b> : Actual Data File</li></ul></ul><div><br /></div><div><b>Jobs and Jobs Schedule:</b></div><div><ul style="text-align: left;"><li>We can execute multiple PVO's together by using Jobs</li><li>We can create Job by giving name and description</li><ul><li>Select the offerings</li><li>Select the PVO's to be executed in parallel</li><li>Save the Job</li></ul><li>Schedule Jobs by using Job Schedule option. </li></ul><div><br /></div><div><br /></div><ul style="text-align: left;"><li><br /></li></ul></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-75525473861943027802022-10-17T13:58:00.004-07:002022-10-17T14:01:24.071-07:00Fusion - BICC - SOAP Service Details<p> Use the following SOAP service to execute the BICC PVO and publish the data to Object Storage. </p><p>https://servername.fa.us2.oraclecloud.com/bi/ess/esswebservice?wsdl</p><p><br /></p><p><b>SubmitRequest Operation</b></p><p><submitRequest xmlns:nstrgmpr="http://xmlns.oracle.com/types/submitbiacm/1654097574293/OutboundSOAPRequestDocument" xmlns:nsmpr0="http://www.w3.org/2005/08/addressing" xmlns:tns="http://xmlns.oracle.com/scheduler" xmlns:ns33="http://xmlns.oracle.com/scheduler/types" > <nstrgmpr:Headers></p><div style="text-align: left;"> <nstrgmpr:SOAPHeaders><br /> <nsmpr0:MessageID>112233</nsmpr0:MessageID><br /> <nsmpr0:Action>submitrequest</nsmpr0:Action><br /> </nstrgmpr:SOAPHeaders><br /> </nstrgmpr:Headers><br /> <nstrgmpr:Body><br /> <tns:submitRequest> <br /><span style="white-space: pre;"> </span><!-- Can be Any Value--><br /> <tns:description>VIJAYA_BICC_EXTRACT</tns:description><br /> <tns:jobDefinitionId><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:name>BICloudConnectorJobDefinition</ns33:name><br /><span style="white-space: pre;"> </span><!-- Constant Value--><br /> <ns33:packageName>oracle.apps.ess.biccc</ns33:packageName><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:type>JOB_DEFINITION</ns33:type><br /> </tns:jobDefinitionId><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <tns:application>oracle.biacm</tns:application><br /> <tns:requestedStartTime/><br /> <tns:requestParameters><br /> <ns33:parameter><br /> <ns33:dataType>STRING</ns33:dataType><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:name>SYS_className</ns33:name><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:value>oracle.esshost.impl.CloudAdaptorJobImpl</ns33:value><br /> </ns33:parameter><br /> <ns33:parameter><br /> <ns33:dataType>STRING</ns33:dataType><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:name>SYS_application</ns33:name><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:value>BI Cloud Adaptor</ns33:value><br /> </ns33:parameter><br /> <ns33:parameter><br /> <ns33:dataType>STRING</ns33:dataType><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:name>EXTRACT_JOB_TYPE</ns33:name><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:value>VO_EXTRACT</ns33:value><br /> </ns33:parameter><br /> <ns33:parameter><br /> <ns33:dataType>STRING</ns33:dataType><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:name>DATA_STORE_LIST</ns33:name><br /><span style="white-space: pre;"> </span><!-- Required : PVO Name --><br /> <ns33:value>FscmTopModelAM.PrcPozPublicViewAM.SupplierPVO</ns33:value><br /> </ns33:parameter><br /> <ns33:parameter><br /> <ns33:dataType>STRING</ns33:dataType><br /><span style="white-space: pre;"> </span><!-- Required : Constant Value--><br /> <ns33:name>EXTERNAL_STORAGE_LIST</ns33:name><br /><span style="white-space: pre;"> </span><!-- Required : Variable Value : Configured Object Storage Name --><br /> <ns33:value>VIJAYA_BICC</ns33:value><br /> </ns33:parameter><br /> </tns:requestParameters><br /> </tns:submitRequest><br /> </nstrgmpr:Body><br /></submitRequest></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>Get Completion Status Async:</b></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><div><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sch="http://xmlns.oracle.com/scheduler"></div><div> <nstrgmpr:Headers></div><div> <nstrgmpr:SOAPHeaders><br /> <nsmpr0:MessageID>112233</nsmpr0:MessageID><br /> <nsmpr0:Action>getCompletionStatus</nsmpr0:Action></div><div><span> </span><span> </span><span> </span><nsmpr0:ReplyTo><div><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><span> </span><nsmpr0:Address>Callback_URL</nsmpr0:Address></div><div><span> </span><span> </span><span> </span></nsmpr0:ReplyTo></div> </nstrgmpr:SOAPHeaders><br /> </nstrgmpr:Headers></div><div> <soapenv:Body></div><div> <sch:getCompletionStatus></div><div> <sch:requestId>12345</sch:requestId></div><div> </sch:getCompletionStatus></div><div> </soapenv:Body></div><div></soapenv:Envelope></div><div><br /></div><div><br /></div><div>Reference : https://docs.oracle.com/en/cloud/saas/applications-common/22d/biacc/soap-api.html#u00180699</div><div><br /></div><div><br /></div></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-41287879895612327892022-10-14T04:31:00.004-07:002022-10-14T04:31:43.804-07:00Angular - Validate Required Element Value<p>Use the following code to check the value of the required element. </p><p><br /></p><div style="background-color: #1e1e1e; color: #d4d4d4; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: grey;"><</span><span style="color: #569cd6;">div</span> <span style="color: #9cdcfe;">*ngIf</span>=<span style="color: #ce9178;">"fname.touched && fname.invalid"</span> <span style="color: #9cdcfe;">class</span>=<span style="color: #ce9178;">"alert"</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">p</span> <span style="color: #9cdcfe;">*ngIf</span>=<span style="color: #ce9178;">"fname.errors?.['required']"</span><span style="color: grey;">></span>FirstName is mandatory<span style="color: grey;"></</span><span style="color: #569cd6;">p</span><span style="color: grey;">></span></div><div> <span style="color: grey;"><</span><span style="color: #569cd6;">p</span> <span style="color: #9cdcfe;">*ngIf</span>=<span style="color: #ce9178;">"fname.invalid"</span><span style="color: grey;">></span>Invalid First Name<span style="color: grey;"></</span><span style="color: #569cd6;">p</span><span style="color: grey;">></span></div><div> <span style="color: grey;"></</span><span style="color: #569cd6;">div</span><span style="color: grey;">></span></div></div><p><br /></p><p><br /></p><p><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-12277112641518520692022-09-12T13:53:00.000-07:002022-09-12T13:53:35.088-07:00iCal Expressions<p> </p><p><br /></p><p><span style="font-family: arial;">FREQ=DAILY;BYHOUR=4,5,6,7,8,9,10,11,12,13,14,15,16,17,18;BYMINUTE=0,10,20,30,40,50;BYSECOND=0;</span></p><p><span style="font-family: arial;">FREQ=MONTHLY;BYMONTHDAY=1,10,15;BYHOUR=5,10,15,20;BYMINUTE=15;</span></p><p><span style="font-family: arial;">FREQ=YEARLY;INTERVAL=3;BYMONTH=3;BYDAY=2,22;</span></p><p><span style="font-family: arial;"><Every Three years on May 2nd and 22nd ></span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">BYYEARDAY</span></p><p><span style="font-family: arial;">BYWEEKNO</span></p><p><span style="font-family: arial;">BYMONTH</span></p><p><span style="font-family: arial;">BYSETPOS</span></p><p><span style="font-family: arial;">WKST</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;">FREQ= “SECONDLY” / “MINUTELY” / “HOURLY” / “DAILY”/ “WEEKLY” / “MONTHLY” / “YEARLY”</span></p><p><span style="font-family: arial;">hour = 1DIGIT / 2DIGIT ;0 to 23</span></p><p><span style="font-family: arial;">weekday = “SU” / “MO” / “TU” / “WE” / “TH” / “FR” / “SA”</span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;"><br /></span></p><p><span style="font-family: arial;"><br /></span></p><p><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-52980932517083459772022-09-12T12:57:00.004-07:002022-09-12T13:44:54.941-07:00Mule - API Designer - RAML - API First Development<p>Mulesoft support API First development method by using API Designer and Exchange server. This feature help the organizations are define and publish standard and reusable API's. </p><p>As part of API first development strategy, we can define API's , get it reviewed by different LOB, stake holders and publish the final API for discovery and consumption. </p><p>This will help the organization to streamline the development process by reusing existing API's and speedup the delivery process. </p><p>Mulesoft provides API Designer to design and develop API definitions. API Designer will use RAML specifications to define an API. </p><p>API designer will provide mock service capabilities to test the API definition. We can use the Public endpoints to test the API definitions from Postman or Advanced Rest Client.</p><p>We can publish the API definition to Mulesoft Exchange server and this will create an API portal . API portal provides a console for documentation, mock service and sharing capabilities. </p><p>We can share the API definition with users within our organizations and with public users (Client applications) .</p><p>User can discover API definition , verify using mock service and consume the API for processing requests. </p><p>Follow below steps to access, design and develop API's using Mulesoft. </p><p></p><ul style="text-align: left;"><li>Access following any-point URL by providing login credentials - https://anypoint.mulesoft.com/</li><li>Click the burger menu (Left side) to access the Mulesoft offerings. </li><ul><li>Design Center - API designer</li><li>Exchange Server</li><li>Management Centre. </li></ul><li>Use Design Center to design API's</li><ul><li>Select Create New to create </li><ul><li>API Specification </li><li>New Mule App - Flow design</li><li>New Fragment</li><li>New Async API</li></ul><li>We will API Specification to create New API</li><ul><li>Provide a Project Name - Example Common Integration Pattern</li><li>Select Comfortable designing on my own option with RAML 1.0 option</li><li>This will create - Common-Integration-Pattern.raml file</li><li>RAML uses YAML standards to define API</li><li>You will see four windows</li><ul><li>Left - File Browser </li><li>Right - API Console</li><li>Center - Editor Window</li><li>Bottom - Shelf </li></ul><li>RAML is indent based definition. Make sure we will follow the right indentation. </li><li>Based on the indentation , Shelf will display the corresponding tags we can add. </li><li>Center window will display the RAML version which we have selected and the project name which we have provided. </li><li>Under this we can add Root elements . </li><ul><li>baseUri - To specify the base URL</li><li>Protocol - HTTP/HTTPS</li><li>Version </li><li>etc</li></ul><li>I will provide the baseUri: <span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">https://svn-ics-enterprise.com</span></li><li><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">Under this provide the context URL</span></li><ul><li><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">/submitIntegration :</span></li></ul><li><span style="font-family: Consolas, Courier New, monospace;"><span style="font-size: 14px; white-space: pre;">Under the context URL , provide the HTTP methods</span></span></li><ul><li><span style="font-family: Consolas, Courier New, monospace;"><span style="font-size: 14px; white-space: pre;">get</span></span></li><li><span style="font-family: Consolas, Courier New, monospace;"><span style="font-size: 14px; white-space: pre;">post</span></span></li></ul><li><span style="font-family: Consolas, Courier New, monospace;"><span style="font-size: 14px; white-space: pre;">We can provide URL parameter under base context URL. Make a note of indentation. </span></span></li></ul></ul></ul><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #bf4c01;">/submitIntegration :</span></div></div></blockquote></blockquote></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div> <span style="color: #6c7e00;">get:</span></div></div></blockquote></blockquote></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div> <span style="color: #6b6fc7;">post:</span></div></div></blockquote></blockquote></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div> </div></div></blockquote></blockquote></blockquote><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div> <span style="color: #bf4c01;">/{IntegrationRunId}:</span></div></div></blockquote></blockquote></blockquote></blockquote><ul style="text-align: left;"><ul><ul><li>We can provide the http methods allowed for each context URL paths </li><li>Under each HTTP method we can mention the content type and query parameters. </li><li>We can create a Folder and add data model (Data Type)</li><li>Left side under file browser select +</li><li>Select Folder</li><li>Provide a name - DataModel</li><li>Under DataModel select +</li><ul><li>Add Data Type file to define the Request and Response Structure. </li><ul><li>Select File Type as Data Type from the list. </li><li>Add the data type object </li><li>Refer below sample </li></ul><li>Add Example file to define sample request and response Message. </li><ul><li>Select file type as Example</li><li>Add Sample Values</li><li>Refer below sample</li></ul></ul><li>Publish the API definition to Exchange Server. </li><ul><li>Use the publish option on the right corner</li><li>Provide the version number</li></ul></ul></ul></ul><div><br /></div><div><br /></div><div><br /></div><div><b>Sample RAML File: </b></div><div><br /></div><div><br /></div><div><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div><span style="color: #6c7e00;">#%RAML 1.0</span></div><div><span style="color: #917202;">title: </span><span style="color: #5d5f6e;">Common Integration Pattern</span></div><div><span style="color: #526e75;">#baseUri: https://svn-ics-enterprise.com</span></div><br /><div><span style="color: #917202;">types:</span></div><div> <span style="color: #917202;">RequestMessage : </span><span style="color: #20a198;">!include</span> <span style="color: #5d5f6e;">/DataModel/IntegrationRequestType.raml</span></div><br /><div><span style="color: #bf4c01;">/submitIntegration : </span> </div><div> <span style="color: #6b6fc7;">post:</span></div><div> <span style="color: #917202;">body:</span></div><div> <span style="color: #917202;">application/json:</span></div><div> <span style="color: #917202;">type: </span><span style="color: #5d5f6e;">RequestMessage</span></div><div> <span style="color: #917202;">examples:</span></div><div> <span style="color: #917202;">input: </span><span style="color: #20a198;">!include</span> <span style="color: #5d5f6e;">/DataModel/IntegrationRequestExample.raml</span></div><div> <span style="color: #917202;">responses:</span></div><div> <span style="color: #917202;">200:</span></div><div> <span style="color: #917202;">body:</span></div><div> <span style="color: #917202;">application/json:</span></div><div> <span style="color: #917202;">type: </span><span style="color: #5d5f6e;">object</span></div><div> <span style="color: #917202;">example:</span></div><div> <span style="color: #917202;">Message: </span><span style="color: #a31515;">"</span>Successfully Submitted<span style="color: #a31515;">"</span></div><br /><div> <span style="color: #6c7e00;">get:</span></div><div> <span style="color: #917202;">queryParameters:</span></div><div> <span style="color: #917202;">IntegrationCode:</span></div><div> <span style="color: #917202;">required: </span><span style="color: #bf4c01;">true</span></div><div> <span style="color: #917202;">responses:</span></div><div> <span style="color: #917202;">200:</span></div><div> <span style="color: #917202;">body:</span></div><div> <span style="color: #917202;">application/json:</span></div><div> <span style="color: #917202;">type: </span><span style="color: #5d5f6e;">RequestMessage</span></div><div> <span style="color: #917202;">examples:</span></div><div> <span style="color: #917202;">output: </span><span style="color: #20a198;">!include</span> <span style="color: #5d5f6e;">/DataModel/IntegrationRequestExample.raml</span></div><br /><div> <span style="color: #bf4c01;">/{IntegrationRunId}:</span></div><div> <span style="color: #6c7e00;">get:</span></div><div> <span style="color: #917202;">responses:</span></div><div> <span style="color: #917202;">200:</span></div><div> <span style="color: #917202;">body:</span></div><div> <span style="color: #917202;">application/json:</span></div><div> <span style="color: #917202;">type: </span><span style="color: #5d5f6e;">RequestMessage</span></div><div> <span style="color: #917202;">examples:</span></div><div> <span style="color: #917202;">output: </span><span style="color: #20a198;">!include</span> <span style="color: #5d5f6e;">/DataModel/IntegrationRequestExample.raml</span></div><br /><div> </div><br /><b>Sample Data Type: </b></div></div><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><br /></div><div style="background-color: #fffffe; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 19px; white-space: pre;"><div style="line-height: 19px;"><div><span style="color: #6c7e00;">#%RAML 1.0 DataType</span></div><br /><div><span style="color: #917202;">type: </span><span style="color: #5d5f6e;">object</span></div><div><span style="color: #917202;">properties:</span></div><div> <span style="color: #917202;">"IntegrationCode": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"RunBy": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"Status": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"RunId": </span><span style="color: #5d5f6e;">integer</span></div><div> <span style="color: #917202;">"TransactionId": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"Output": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"ErrorCode": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"ErrorMessage": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"Parameters": </span></div><div> <span style="color: #917202;">type: </span><span style="color: #5d5f6e;">array</span></div><div> <span style="color: #917202;">items: ---> Mandatory for adding array of elements. Array Type should have items under it. </span></div><div> <span style="color: #917202;">properties:</span></div><div> <span style="color: #917202;">"ParameterName": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"ParameterValue": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"ParameterScope": </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"ParameterType" : </span><span style="color: #5d5f6e;">string</span></div><div> <span style="color: #917202;">"ParameterSequence": </span><span style="color: #5d5f6e;">integer</span></div><div><span style="color: #5d5f6e;"><br /></span></div><div><span style="color: #5d5f6e;"><br /></span></div><div><span style="color: #5d5f6e;"><br /></span></div><div><b>Sample Example Value File: </b></div><div><span style="color: #5d5f6e;"><br /></span></div><div><div style="line-height: 19px;"><div><span style="color: #6c7e00;">#%RAML 1.0 NamedExample</span></div><br /><div><span style="color: #917202;">value:</span></div><div> <span style="color: #917202;">IntegrationCode: </span><span style="color: #5d5f6e;">ProcessInvoice</span></div><div> <span style="color: #917202;">RunBy: </span><span style="color: #5d5f6e;">VijayaKumar</span></div><div> <span style="color: #917202;">Status: </span><span style="color: #5d5f6e;">Start</span></div><div> <span style="color: #917202;">RunId: </span><span style="color: #ad0073;">1234</span></div><div> <span style="color: #917202;">TransactionId: </span><span style="color: #5d5f6e;">abc1234</span></div><div> <span style="color: #917202;">Output: </span><span style="color: #5d5f6e;">Success</span></div><div> <span style="color: #917202;">ErrorCode: </span><span style="color: #5d5f6e;">XXXX</span></div><div> <span style="color: #917202;">ErrorMessage: </span><span style="color: #5d5f6e;">Sampl Error</span></div><div> <span style="color: #917202;">Parameters:</span></div><div> <span style="color: #5d5f6e;">-</span></div><div> <span style="color: #917202;">ParameterName: </span><span style="color: #5d5f6e;">InvoiceType</span></div><div> <span style="color: #917202;">ParameterValue: </span><span style="color: #5d5f6e;">CreditMemo</span></div><div> <span style="color: #917202;">ParameterScope: </span><span style="color: #5d5f6e;">Step</span></div><div> <span style="color: #917202;">ParameterType: </span><span style="color: #5d5f6e;">BIP</span></div><div> <span style="color: #917202;">ParameterSequence: </span><span style="color: #ad0073;">1</span></div><div> <span style="color: #5d5f6e;">-</span></div><div> <span style="color: #917202;">ParameterName: </span><span style="color: #5d5f6e;">Supplier</span></div><div> <span style="color: #917202;">ParameterValue: </span><span style="color: #5d5f6e;">SaanviNihal</span></div><div> <span style="color: #917202;">ParameterScope: </span><span style="color: #5d5f6e;">Step</span></div><div> <span style="color: #917202;">ParameterType: </span><span style="color: #5d5f6e;">BIP</span></div><div> <span style="color: #917202;">ParameterSequence: </span><span style="color: #ad0073;">2</span></div><div> </div></div></div><div><span style="color: #5d5f6e;"><br /></span></div></div></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-24426622874299559462022-09-12T03:53:00.002-07:002022-09-12T13:47:18.374-07:00Database Admin CommandsUse the following commands to test the connection and configurations. <div><br /></div><div><ul style="text-align: left;"><li>Check the listener status</li><ul><li>lsnrctl status <Alias_FROM_listener_Or_TNSnames_ORA></li></ul><li>iSQL command to access Postgres database.</li><ul><li>isql <alias_name> -v</li></ul></ul></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-72208267042804516402022-08-20T04:31:00.002-07:002022-09-12T13:47:02.392-07:00Sample JAX-RS REST API Implementation<p> We can use different tools and technologies to create and expose a REST API. In this blog I will explain how to create a simple JAX-RS REST API using JDeveloper. </p><p></p><ul style="text-align: left;"><li>Open Jdeveloper and create a new ADF REST Web Application</li><li>Provide an application name - JaxRsSampleApp</li><li>Provide a package name - xxvk.svn</li><li>Select Next and Keep the default Project Name </li><li>Select Finish</li><li>This will generate two projects. </li><ul><li>RESTModel</li><li>RESTWebservice</li></ul><li>Delete the RESTModel project</li><li>Right click the RESTWebservice project and select new</li><li>Select Java Class and provide a name. - HelloService</li><li>Add following @Path("/services") before the class definition // Note : Path can be anything</li><li>Select the warning/error next to Path and select add JaxRs package to the project. </li><li>As soon as you add the JAX RS package to the project it will generate the main application Java class - GenericApplication with an extend jax.rs.core.Application</li><li>Delete the default method and add the following sample method to return sample plain text. </li><li>Right click the project and select project properties</li><ul><li>Got to Java EE Application</li><li>Context Root to a meaning full value. -- HelloService</li></ul><li>Save changes </li><li>Right click the Java service and select RUN. </li><li>This will deploy the application to Integrated server and provide the sample URL</li><ul><li>http://127.0.0.1:7101/xxvk-service/resources/services</li></ul><li>Take the URL and paste in a browser. It will display the result. </li></ul><div><span> </span>package xxvk.svn;</div><div><div><span> </span>import javax.ws.rs.GET;</div><div><span> </span>import javax.ws.rs.Path;</div><div><span> </span>import javax.ws.rs.Produces;</div><div><span> </span>import javax.ws.rs.core.MediaType;</div></div><div><br /></div><div><div>@Path("/services")</div><div>public class HelloService {</div><div> @GET // This will import the Get package</div></div><div style="text-align: left;"> @Produces(MediaType.TEXT_PLAIN) // This will produce the out put in plain text format<br /> <span> </span> public String Sayhello(){<br /> <span> </span> return "Hello Welcome";<br /> <span> </span>}</div><div style="text-align: left;">}</div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEh7ZNHSYaJ1dwo_laOS3tXEFSa8qMTpRSAb1hBldOfpGAdxHlSSbvwgV14MTJ3BMuWZh8J5hz5fOMpf3wYmQYkxCeFcHvJ5DDDXgjypXbXmck2abjRZdj8ceE4x-bN7YAxtVo28tmFRDmUiBoWreJ7i4V8XUG2M9cLkNOWanYUzE23VDbePA2_eWrMk" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="876" data-original-width="1063" height="466" src="https://blogger.googleusercontent.com/img/a/AVvXsEh7ZNHSYaJ1dwo_laOS3tXEFSa8qMTpRSAb1hBldOfpGAdxHlSSbvwgV14MTJ3BMuWZh8J5hz5fOMpf3wYmQYkxCeFcHvJ5DDDXgjypXbXmck2abjRZdj8ceE4x-bN7YAxtVo28tmFRDmUiBoWreJ7i4V8XUG2M9cLkNOWanYUzE23VDbePA2_eWrMk=w564-h466" width="564" /></a></div><br /><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-6650047909110112192022-08-19T15:09:00.000-07:002024-02-22T14:25:48.460-08:00SOA - Receive Message From EJB <p> We can use EJB service to receive message from locally deployed EJB applications. We can use the following steps to create a SOA application to consume message from an EJB.</p><p style="text-align: left;"></p><ul style="text-align: left;"><li>Create a SOA application </li><li>Create an empty SOA project</li><li>Select the SOA project created above , right click and select New option </li><li>Select Java class and provide class name and package name and select ok</li><li>If you get a prompt to select the folder then select project_name/src folder</li><li>Overwrite the generated class with below sample interface code. </li></ul><div style="text-align: left;"><span> </span><span> <span> </span></span>package svn.com.callback;<br /><span> </span><span> </span>import java.util.List;<br /><span> </span><span> </span>import svn.com.model.XxComStatus;<span><span> </span> // POJO class representing incoming message structure.<br /></span><span> </span><span> </span>public interface class_name<br /><span> </span><span> </span><span> </span>{<br /> <span> </span><span> </span><span> </span> public String exec(XxComStatus status);<br /><span> </span><span> </span><span> </span>}</div><p style="text-align: left;"></p><ul style="text-align: left;"><ul></ul></ul><ul style="text-align: left;"><ul></ul></ul><ul style="text-align: left;"><ul></ul></ul><ul style="text-align: left;"><li>Go to SOA composite add select EJB service</li><li>Provide Service Name - ConsumeEJBMessage</li><li>Provide a meaningful JNDI Name - ConumeCallbackMessageEJB</li><li>Provide Java Interface Name as - svn.com.callback.class_name // Taken from above Java code. </li><li>Open the composite SOURCE tab and add the missing values. </li></ul><div><div> <service name="ConsumeEJBMessage"></div><div> <interface.java interface="svn.com.callback.class_name"/></div><div> <binding.ejb uri="ConumeCallbackMessageEJB" ejb-version="EJB3" javaInterface="svn.com.callback.class_name"/></div><div> </service></div></div><div><ul style="text-align: left;"><li>Create a BPEL process without service definition</li><li>Now wire EJB service and BPEL. This will generate the service WSDL</li><li>Now you can update the SOA composite as per the business requirement. </li></ul><br /></div><div><br /></div><div>Sample Composite:</div><div><br /></div><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEg5oQ30Q53UDC8jGDNrGL23FMSfOReUr3nOB0EiNLEfut1y_hoGnDkwK85AhmgFQSHRB0dE_EqgGPKACbMMwUkvD6dc0RD76TzSsuVLGrnag-83cldYfENLMR0X1gqhTvG5-V6NvgUf4H-zgm9kZJGmxT_5Q4Q_z8E6CFY0P36id5NAiZyCeG4y0rnI" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="429" data-original-width="1762" height="122" src="https://blogger.googleusercontent.com/img/a/AVvXsEg5oQ30Q53UDC8jGDNrGL23FMSfOReUr3nOB0EiNLEfut1y_hoGnDkwK85AhmgFQSHRB0dE_EqgGPKACbMMwUkvD6dc0RD76TzSsuVLGrnag-83cldYfENLMR0X1gqhTvG5-V6NvgUf4H-zgm9kZJGmxT_5Q4Q_z8E6CFY0P36id5NAiZyCeG4y0rnI" width="503" /></a></div><br /><br /></div><div>Reference : https://technology.amis.nl/it/publish-soa-composite-application-as-ejb-to-be-invoked-from-java-applications-using-ejb-binding/</div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-52276903757805698702022-07-04T12:53:00.000-07:002022-09-12T13:47:41.756-07:00Oracle Fusion - Enable Federated SSO with Oracle Identity Cloud Service (IDCS) as Identity Provider<p>In this blog , I will explain what all configurations we need to perform to establish a federated SSO between IDCS which will act as IdP and Oracle Fusion - SaaS which will act as Service Provider - SP</p><p><b>Pre - Configurations : </b></p><p></p><ul style="text-align: left;"><li><b>IDCS : </b></li><ul><li>Get the Oracle IDCS - IDP Metadata XML using this link: https://<IDCS-Service-Instance>.identity.oraclecloud.com/fed/v1/metadata</li><li>Save the file - IDP_Metadata.xml</li><li>Note: In case if you get an error like Page Not Working then follow the below instructions to enable certificate access. </li><ul><li>Login to IDCS admin console. </li><li>Go to Settings</li><li>Select Default Settings option</li><li>Enable - "Access Signing Certificate"</li><li>Save the changes. </li><li>Now access the metadata URL. </li></ul></ul></ul> <ul><li><b>Fusion-SaaS:</b></li><ul><li>Get Service Provider Meta Data.</li><ul><li>Use the following URL and download the SP_MetaData.xml</li><li>https://login-ics-dev1-saasfaprod1.fa.ocs.oraclecloud.com/fed/sp/metadata</li><ul><li>domain_name : ics-dev1</li></ul></ul><li>Get Tenant and Domain Names:</li><ul><li>Example Fusion URL - https://fa-ics-dev1-saasfaprod1.fa.ocs.oraclecloud.com/fscmUI/</li><li>Tenant or POD Name : ics-dev1</li><li>Domain Name : saasfaprod1.fa.ocs.oraclecloud.com</li></ul></ul></ul><div><b><br /></b></div><div><b>Main Configurations: </b></div><div><b><br /></b></div><div><b>Fusion-SaaS:</b><br /><ul style="text-align: left;"><li>Login to SaaS application using Security Admin User. </li><li>Go to Security Console</li><li>Select Single Sign-On on left Menu</li><li>Click + Create Identity Provider.</li><ul><li>Select Edit On Top</li><li>Provide following details. </li><ul><li>Name : IDCS-IDP</li><li>Description : IDCS Identity Provider.</li><li>Name Id Format - Unspecified - Select from drop down. </li><li>Select Default Identifier Option. </li><li>Upload the Meta data file downloaded from IDCS - Refer Above Pre-config steps. </li><li>Save and Close</li></ul></ul></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_BZGJhtGH1rPk7R1ykyQ56hxyeamQ59900NZ1fBzpSroa5hUz55hjhLcgyGp3yDr3meBHqS4SF-LcKUHtaX2x0hyphenhyphenh4hoYvBEE_Ed5GUAYxBSKMsswEU7ux3IrriY5bzVBzAJp_kJbtCI/s433/SSO_Page1.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="433" data-original-width="188" height="421" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEg_BZGJhtGH1rPk7R1ykyQ56hxyeamQ59900NZ1fBzpSroa5hUz55hjhLcgyGp3yDr3meBHqS4SF-LcKUHtaX2x0hyphenhyphenh4hoYvBEE_Ed5GUAYxBSKMsswEU7ux3IrriY5bzVBzAJp_kJbtCI/w183-h421/SSO_Page1.PNG" width="183" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeG9vHrtIunKNdVXznmECnW4ZYPCQ3oNP-BRE50qylHIopMED7HfY0O2I8egrtYLiXBLOt-E3ePb3v7skhyphenhyphenvIzHlcjeHiEWM3G60A7u77_Re7bIrcUtHzi0u5zrOwUH372n_6_4bQ7ro/s1401/SSO_Page2.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="1401" height="142" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiFeG9vHrtIunKNdVXznmECnW4ZYPCQ3oNP-BRE50qylHIopMED7HfY0O2I8egrtYLiXBLOt-E3ePb3v7skhyphenhyphenvIzHlcjeHiEWM3G60A7u77_Re7bIrcUtHzi0u5zrOwUH372n_6_4bQ7ro/w568-h142/SSO_Page2.PNG" width="568" /></a></div><br /><div class="separator" style="clear: both; text-align: center;"><br /></div><br /><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYLafLI_Dx9Lh3oxX5GpFYMPekq8YAhyphenhyphenBSP2XJ9_i23oklYPm3Y6628GxQ5iKT6lS2mLhYi93QMWhb41dVju5crjRoC56IzyrVOQSbJEuZTxd6PjuDfEoAUGJ817gdG03VO13jaAgMG24/s1401/SSO_Page2.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="350" data-original-width="1401" height="134" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhYLafLI_Dx9Lh3oxX5GpFYMPekq8YAhyphenhyphenBSP2XJ9_i23oklYPm3Y6628GxQ5iKT6lS2mLhYi93QMWhb41dVju5crjRoC56IzyrVOQSbJEuZTxd6PjuDfEoAUGJ817gdG03VO13jaAgMG24/w537-h134/SSO_Page2.PNG" width="537" /></a></div><br /><div><br /></div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghAOx9hM4zWVacH4fFiW67aZ5A-g4WSD8dPqxgTvJd2oL1opNGzv0teuP_WVbOXGvwkjMfV2EWhYCPp68XS4Xp0vaePjWDrks6ImkmFdlXS7XpgGyUtY3PfaLJRqiG1mgsA9WKTnEqUNo/s982/SSO_IDP_CONFIG.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="553" data-original-width="982" height="286" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEghAOx9hM4zWVacH4fFiW67aZ5A-g4WSD8dPqxgTvJd2oL1opNGzv0teuP_WVbOXGvwkjMfV2EWhYCPp68XS4Xp0vaePjWDrks6ImkmFdlXS7XpgGyUtY3PfaLJRqiG1mgsA9WKTnEqUNo/w508-h286/SSO_IDP_CONFIG.PNG" width="508" /></a></div><ul style="text-align: left;"><ul><ul><ul><li>Select Service Provider Tab</li><li>Download the Service Provider Signing Certificate. </li></ul></ul></ul></ul><div><br /></div><ul><ul></ul></ul><ul><ul></ul></ul><p></p><p><br /></p><h4><b>IDCS Configurations: </b></h4><p></p><ul><li><b>Create Fusion Application :</b></li><ul><li>Login to IDCS</li><li>Go to Applications</li><li>Select Add ( + )</li><li>Select App Catalog</li><li>Search for Oracle Fusion </li><li>Select R13 app</li></ul></ul><div><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqmNODCfWL0xNZtGOQXmG8__TrsJ5udi8duIB9fRITJEE48U8L96xzB3Yh4it4m7l4G1rYWsTquWE-WJxLKwQGZGWN0Ftn2PJERyHoLcUkJPwS9rBEz1jpKgN9Asb9GF3C6XUa268Atdc/s1258/Fed_ERP_App.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="372" data-original-width="1258" height="190" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiqmNODCfWL0xNZtGOQXmG8__TrsJ5udi8duIB9fRITJEE48U8L96xzB3Yh4it4m7l4G1rYWsTquWE-WJxLKwQGZGWN0Ftn2PJERyHoLcUkJPwS9rBEz1jpKgN9Asb9GF3C6XUa268Atdc/w648-h190/Fed_ERP_App.PNG" width="648" /></a></div><div class="separator" style="clear: both; text-align: center;"><ul><li style="text-align: left;">Provide following details to the App - </li><ul><li style="text-align: left;">Name : Fusion ERP SSO App</li><li style="text-align: left;">Description : Fusion ERP SSO App</li><li style="text-align: left;">Select required SaaS Applications</li><li style="text-align: left;">Go to Next Page</li><li style="text-align: left;">Open the SP_Metadata.xml file downloaded as part of pre-config step. </li><li style="text-align: left;">Get EntityId value</li><ul><li style="text-align: left;">entityID="https://login-ics-dev1-saasfaprod1.fa.ocs.oraclecloud.com:443/oam/fed"</li></ul><li style="text-align: left;">Assertion Consumer Value:</li><ul><li style="text-align: left;"><md:AssertionConsumerService Binding="urn:oasis:names:tc:SAML:2.0:bindings:HTTP-POST" Location="<b>https://login-ics-dev1-saasfaprod1.fa.ocs.oraclecloud.com/oam/server/fed/sp/sso</b>" index="1"/></li></ul><li style="text-align: left;">Upload the signing certificate that was downloaded from Fusion apps during SSO configuration. Refer Above Fusion activity . </li><li style="text-align: left;">Download Signing Certificate and Identity Provider Metadata and save as file and click “Next”</li><li style="text-align: left;">On the Provisioning tab DO NOT Enable Provisioning and click the Finish button to complete the application setup</li><li style="text-align: left;">Activate the application. </li></ul></ul><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>TEST and ENABLE SSO :</b></div><div style="text-align: left;"><ul style="text-align: left;"><li>Login to SaaS application using Security Admin User. </li><li>Make sure the user is present in IDCS and updated as Federated. Same User is present in SaaS as well --- <b>Note</b></li><li>Go to Security Console</li><li>Select Single Sign-On on left Menu</li><li>Select the IDCS-IDP created earlier. </li><ul><li>Select Diagnostics and Activation </li><li>Select TEST</li><li>Select IDCS-IDP and Click Start SSO</li><li>It will take you to IDCS login Page. </li><ul><li>Provide SSO credentials. </li><li>After Successful authentication Status will get updated as Success. </li><li>Enable Identity Provider. </li></ul></ul></ul><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC7HRDoB8TIqpqrM24SiKe8nuqCrPdx9yd1Jr8Gd_ZohqBmFWb_VQxArMni_lCtYbtBWIS6QBy7FDsa8IFEywmfPUogObvSbSpoMbmbSimy3KykDcrvQu3RJMIGfqxEJdyFvj0KKPF96M/s1566/SSO_Page3.PNG" style="margin-left: 1em; margin-right: 1em;"><img border="0" data-original-height="512" data-original-width="1566" height="155" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgC7HRDoB8TIqpqrM24SiKe8nuqCrPdx9yd1Jr8Gd_ZohqBmFWb_VQxArMni_lCtYbtBWIS6QBy7FDsa8IFEywmfPUogObvSbSpoMbmbSimy3KykDcrvQu3RJMIGfqxEJdyFvj0KKPF96M/w476-h155/SSO_Page3.PNG" width="476" /></a></div><br /><div><br /></div></div></div></div></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-77621009383060746912022-07-04T07:11:00.003-07:002023-10-05T02:50:07.053-07:00OCI - OGW - Oracle Gateway Configurations<p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">Oracle offers multiple API management tools. API Platform Cloud Service and Oracle Native Gateway or OCI Gateway are the prominent ones. </p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">API Platform Cloud Service will be managed by customers. Customer is responsible for managing API security and Infrastructure. Customer needs to provision API PCS and then provision gateway server (Weblogic Server) to deploy all the application API. </p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">API PCS provides a management console to create and manage APIs . API's will be published to gateway servers. Gateway servers will connect and poll the changes and deploy them on to the server. </p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">Following network flow diagram will show how the traffic flow can be configured and how the gateway servers will interact with management servers and backend applications. </p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><br /></p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><b><u>API PCS</u></b></p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/a/AVvXsEiTGNzArW9b1ka_QLKEoSO3q_qtQEU-MrQtaFL2oaFpIQ9aPy75Bq3Zb48INEbx3MGLfZp_zsxC0RevBJd9PXblJ94KKKS4OVBvoRcaAxCvHPD6Uup7h9WMPrH5xtB_xxNsiiRdHpW5YpURnPx-yEFGQ2mq3s1nafRqwll-geTYcNg0l8Rw8v1V1mV4" style="margin-left: 1em; margin-right: 1em;"><img alt="Network Flow Diagram" data-original-height="739" data-original-width="1425" height="332" src="https://blogger.googleusercontent.com/img/a/AVvXsEiTGNzArW9b1ka_QLKEoSO3q_qtQEU-MrQtaFL2oaFpIQ9aPy75Bq3Zb48INEbx3MGLfZp_zsxC0RevBJd9PXblJ94KKKS4OVBvoRcaAxCvHPD6Uup7h9WMPrH5xtB_xxNsiiRdHpW5YpURnPx-yEFGQ2mq3s1nafRqwll-geTYcNg0l8Rw8v1V1mV4=w639-h332" title="Network Flow Diagram" width="639" /></a></div><br /><br /><p></p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif; font-size: small;"><br /></p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">Oracle offers Gateway - a fully managed service to manage APIs. Here the customer is responsible for creating and managing API definition and security. Underlying infrastructure is managed by Oracle. </p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">As part of OCI gateway configurations, we need to create a gateway and then deployments (API definitions). Gateway will be created on a specific Compartment , VCN and Subnet. </p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;">Specific security groups can be added or can be used to control access to the gateway. We can use custom certificates while creating a gateway to enable mTLS connection. </p><p style="color: #222222;"><span style="font-family: arial;"><b>Create a deployment/API</b></span></p><div style="text-align: left;"><ul style="text-align: left;"><li style="color: #222222;"><span style="font-family: arial;"><span> Provide a name</span>. -- xxapi</span></li><li style="color: #222222;"><span style="font-family: arial;"> Provide a path prefix -- ogw</span></li><li style="color: #222222;"><span style="font-family: arial;"> Select create from Scratch Option</span></li><li style="color: #222222;"><span><span style="font-family: arial;"> Select Authentication Policy to restrict access using JWT or Custom Authentication.</span></span></li><ul><li style="color: #222222;"><span><span style="font-family: arial;">JWT</span></span></li><ul><li style="color: #222222;"><span><span style="font-family: arial;">Authentication Token - Header</span></span></li><li style="color: #222222;"><span><span style="font-family: arial;">Header Name - Authorization</span></span></li><li style="color: #222222;"><span><span style="font-family: arial;">Authentication Schema -- Bearer</span></span></li><li><span style="color: #222222; font-family: arial;">Issuer - https://identity.oraclecloud.com/ </span></li><li><span style="color: #222222; font-family: arial;">Audience - Add the scopes to be allowed. </span></li><li><span style="color: #222222; font-family: arial;">Public Keys</span></li><ul><li><span style="color: #222222; font-family: arial;">In this example , we will use the static key</span></li><li><span style="color: #222222; font-family: arial;">Static Key</span></li><ul><li><span style="color: #222222; font-family: arial;">Provide a Key Id</span></li><li><span style="color: #222222; font-family: arial;">Format - JSON Web Key</span></li><li><span style="color: #222222; font-family: arial;">Get the Json Webkey from IDCS. Use the following endpoint to get the key - https://idcs-.identity.oraclecloud.com/admin/v1/SigningCert/jwk</span></li></ul></ul></ul></ul></ul><div><span style="color: #222222; font-family: arial;"><b>Note :</b> Before accessing the key make sure access certificate is enabled in IDCS . Settings -> Default Settings and Toggle ON the Access Signing Certificate</span></div><div><span style="color: #222222; font-family: arial;"><br /></span></div><div><span style="color: #222222; font-family: arial;"><b>Sample WebKey : </b></span></div><div><span style="color: #222222; font-family: arial;">{"format":"JSON_WEB_KEY","kid":"SIGNING_KEY","kty":"RSA","key_ops":["verify"],"alg":"RS256","n":"giU9t2dMPM_c_XXXXXXXXXXXXXXXXXXXXUrfr4iyqz7ULr67uAWiJl5ETjE-FMQIMqRtrtbcnXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXKAPTpQj85ZM_8uzLdqvwr713IbNa0HEJ-Cia4jadNxVSiFNDWP-tUiX-M6yEq9CHL26vngNpDCvJ1-vf9hfwO0TQ","e":"AQAB"}</span></div><div><span style="color: #222222; font-family: arial;"><br /></span></div><ul style="text-align: left;"><ul><ul><ul><li><span style="color: #222222; font-family: arial;">Remote JWKS : To retrieve the keys at run time. </span></li></ul></ul></ul><li><span style="color: #222222; font-family: arial;">Create Routes</span></li><ul><li><span style="color: #222222; font-family: arial;">Provide the incoming path</span></li><ul><li><span style="color: #222222; font-family: arial;">Sample : </span></li><ul><li><span style="color: #222222; font-family: arial;">/target/services/default/{contextRoot}/{client_ep*}</span></li></ul></ul><li><span style="color: #222222; font-family: arial;">Select the methods to be allowed from Source. </span></li><li><span style="color: #222222; font-family: arial;">Select the backend Type</span></li><ul><li><span style="color: #222222; font-family: arial;">HTTP</span></li><li><span style="font-family: arial;">Oracle Function</span></li></ul><li><span style="color: #222222; font-family: arial;">Incase of HTTP backend provide the backend URL</span></li><ul><li><span style="font-family: arial;">https:/target_hostname/target/services/default/${request.path[contextRoot]}/${request.path[client_ep]}</span></li></ul><li><span style="font-family: arial;">Can define multiple routes pointing to multiple target applications. </span></li></ul></ul><div><span style="font-family: arial;"><br /></span></div><ul style="text-align: left;"><li><span style="font-family: arial;">Save changes. </span></li></ul></div><div style="color: #222222; font-family: Arial, Helvetica, sans-serif; text-align: left;"><span><br /></span></div><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;"><b>OCI Command </b>: </p><p><span style="color: #222222; font-family: Arial, Helvetica, sans-serif;">oci api-gateway deployment create --compartment-id ocid1.compartment.oc1..id_value --display-name dvpc2s --gateway-id ocid1.apigateway.oc1.eu-frankfurt-1.oci_id --path-prefix /dvpc2s --specification file:////home/VijayaKuma/tlndvpc2s.json</span></p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;"><br /></p><p style="color: #222222; font-family: Arial, Helvetica, sans-serif;"><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-48973771463123096362022-07-01T08:24:00.000-07:002022-09-12T13:47:59.121-07:00Weblogic Maven Deployment<p>Use the following sample POM template for ADF deployment. </p><p>Maven Command for deployment: </p><p><b>Deploy Using SSL/T3S port and custom Keystore. </b></p><p><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">mvn </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dbuild</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">properties</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">file</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="color: #001188; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">${property}</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">keyStoreType</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">JKS </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dweblogic</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">security</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">SSL</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ignoreHostnameVerification</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">true </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dweblogic</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">security</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">TrustKeyStore</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">CustomTrust </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">trustStore</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="color: #001188; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">${trustStoreFile}</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dweblogic</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">security</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">CustomTrustKeyStoreType</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">JKS </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dweblogic</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">security</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">CustomTrustKeyStoreFileName</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="color: #001188; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">${trustStoreFile}</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dweblogic</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">security</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">CustomTrustKeyStorePassPhrase</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">welcome1 </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">trustStorePassword</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">welcome1 pre</span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-integration-test</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span></p><p><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"><br /></span></p><p><b>Deploy Using HTTP/T3 port </b></p><p><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">mvn </span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Dbuild</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">properties</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">file</span><span style="color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="color: #001188; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">${property}</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">pre</span><span style="color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-integration-test</span><span style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span></p><p><b>WAR Deployment</b></p><p><project xmlns="http://maven.apache.org/POM/4.0.0"></p><div style="text-align: left;"> <modelVersion>4.0.0</modelVersion><br /> <groupId>vk.services</groupId><br /> <artifactId>VKUAssertion</artifactId><br /> <version>1.0</version><br /> <description>Super POM for VKUAssertion</description><br /> <packaging>pom</packaging><br /> <build><br /> <resources><br /> <resource><br /> <directory>src/</directory><br /> <includes><br /> <include>**</include><br /> </includes><br /> </resource><br /> </resources><br /> <plugins><br /> <plugin><br /> <groupId>org.codehaus.mojo</groupId><br /> <artifactId>properties-maven-plugin</artifactId><br /> <version>1.0-alpha-2</version><br /> <executions><br /> <execution><br /> <phase>initialize</phase><br /> <goals><br /> <goal>read-project-properties</goal><br /> </goals><br /> <configuration><br /> <files><br /> <file>${build.properties.file}</file><br /> </files><br /> </configuration><br /> </execution><br /> </executions><br /> </plugin><br /> <plugin><br /> <groupId>com.oracle.adf.plugin</groupId><br /> <artifactId>ojmake</artifactId><br /> <configuration><br /> <ojmake>${oracleHome}/jdeveloper/jdev/bin/ojmake</ojmake><br /> <files>${basedir}/VKUAssertion.jws</files><br /> </configuration><br /> <executions><br /> <execution><br /> <phase>compile</phase><br /> <goals><br /> <goal>compile</goal><br /> </goals><br /> </execution><br /> </executions><br /> </plugin><br /> <plugin><br /> <groupId>com.oracle.adf.plugin</groupId><br /> <artifactId>ojdeploy</artifactId><br /> <configuration><br /> <ojdeploy>${oracleHome}/jdeveloper/jdev/bin/ojdeploy</ojdeploy><br /> <workspace>${basedir}/VKUAssertion.jws</workspace></div><div style="text-align: left;"><b> <!-- Project Name ---></b><br /> <project>WebService</project></div><div style="text-align: left;"> <b><!-- Project Deployment Profile --> </b><br /> <profile>VKUAssertion</profile><br /> <outputfile>${project.build.directory}/${project.build.finalName}.war</outputfile><br /> </configuration><br /> <executions><br /> <execution><br /> <phase>package</phase><br /> <goals><br /> <goal>deploy</goal><br /> </goals><br /> </execution><br /> </executions><br /> </plugin><br /> <plugin><br /> <groupId>com.oracle.weblogic</groupId><br /> <artifactId>weblogic-maven-plugin</artifactId><br /> <version>12.2.1-3-0</version><br /> <executions><br /> <execution><br /> <id>wls-deploy</id><br /> <phase>pre-integration-test</phase><br /> <goals><br /> <goal>redeploy</goal><br /> </goals><br /> <configuration><br /> <adminurl>${SERVER_URL}</adminurl><br /> <user>${USER_NAME}</user><br /> <password>${PASSWORD}</password><br /> <!--<source>${project.build.directory}/${project.build.finalName}.ear</source>--><br /> <source>${project.build.directory}/${project.build.finalName}.war</source><br /> <targets>${TARGET_SERVER}</targets><br /> <verbose>true</verbose><br /> <remote>true</remote><br /> <upload>true</upload><br /> <name>${project.build.finalName}</name><br /> </configuration><br /> </execution><br /> </executions><br /> </plugin><br /> </plugins><br /> </build><br /> <parent><br /> <groupId>com.oracle.adf</groupId><br /> <artifactId>adf-parent</artifactId><br /> <version>12.2.1-4-0</version><br /> <relativePath/><br /> </parent><br /> <repositories><br /> <repository><br /> <name>OracleMaven</name><br /> <id>maven.oracle.com</id><br /> <url>https://maven.oracle.com</url><br /> </repository><br /> </repositories><br /> <pluginRepositories><br /> <pluginRepository><br /> <name>OracleMaven</name><br /> <id>maven.oracle.com</id><br /> <url>https://maven.oracle.com</url><br /> </pluginRepository><br /> </pluginRepositories><br /></project></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><b>EAR Deployment: </b></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><br /></div><div style="text-align: left;"><div><?xml version="1.0" encoding="UTF-8" ?></div><div><project xmlns="http://maven.apache.org/POM/4.0.0"></div><div> <modelVersion>4.0.0</modelVersion></div><div> <groupId>vk.services</groupId></div><div> <artifactId>VKUApplication1</artifactId></div><div> <version>1.0</version></div><div> <description>Super POM for VKUApplication1</description></div><div> <packaging>pom</packaging></div><div> <build></div><div> <resources></div><div> <resource></div><div> <directory>src/</directory></div><div> <includes></div><div> <include>**</include></div><div> </includes></div><div> </resource></div><div> </resources></div><div> <plugins></div><div><span style="white-space: pre;"> </span><plugin></div><div> <groupId>org.codehaus.mojo</groupId></div><div> <artifactId>properties-maven-plugin</artifactId></div><div> <version>1.0-alpha-2</version></div><div> <executions></div><div> <execution></div><div> <phase>initialize</phase></div><div> <goals></div><div> <goal>read-project-properties</goal></div><div> </goals></div><div> <configuration></div><div> <files></div><div> <file>${build.properties.file}</file></div><div> </files></div><div> </configuration></div><div> </execution></div><div> </executions></div><div> </plugin></div><div> <plugin></div><div> <groupId>com.oracle.adf.plugin</groupId></div><div> <artifactId>ojmake</artifactId> </div><div> <configuration></div><div> <ojmake></div><div> ${oracleHome}/jdeveloper/jdev/bin/ojmake</div><div> </ojmake></div><div> <files></div><div> ${basedir}/VKUApplication1.jws</div><div> </files></div><div> </configuration></div><div> <executions></div><div> <execution></div><div> <phase>compile</phase></div><div> <goals></div><div> <goal>compile</goal></div><div> </goals></div><div> </execution></div><div> </executions></div><div> </plugin></div><div> <plugin></div><div> <groupId>com.oracle.adf.plugin</groupId></div><div> <artifactId>ojdeploy</artifactId></div><div> <configuration></div><div> <ojdeploy></div><div> ${oracleHome}/jdeveloper/jdev/bin/ojdeploy</div><div> </ojdeploy></div><div> <workspace></div><div> ${basedir}/VKUApplication1.jws</div><div> </workspace></div><div><b><!-- Application Deployment Profile --> </b></div><div> <profile></div><div> VKUApplication1</div><div> </profile></div><div> <outputfile></div><div> ${project.build.directory}/${project.build.finalName}.ear</div><div> </outputfile></div><div> </configuration></div><div> <executions></div><div> <execution></div><div> <phase>package</phase></div><div> <goals></div><div> <goal>deploy</goal></div><div> </goals></div><div> </execution></div><div> </executions></div><div> </plugin></div><div> <plugin></div><div><span style="white-space: pre;"> </span> <groupId>com.oracle.weblogic</groupId></div><div><span style="white-space: pre;"> </span> <artifactId>weblogic-maven-plugin</artifactId></div><div><span style="white-space: pre;"> </span> <version>12.2.1-3-0</version></div><div><span style="white-space: pre;"> </span> <executions></div><div><span style="white-space: pre;"> </span> <execution></div><div><span style="white-space: pre;"> </span> <id>wls-deploy</id></div><div><span style="white-space: pre;"> </span> <phase>pre-integration-test</phase></div><div><span style="white-space: pre;"> </span> <goals></div><div><span style="white-space: pre;"> </span><goal>redeploy</goal></div><div><span style="white-space: pre;"> </span> </goals></div><div><span style="white-space: pre;"> </span> <configuration></div><div><span style="white-space: pre;"> </span><adminurl>${SERVER_URL}</adminurl></div><div><span style="white-space: pre;"> </span><user>${USER_NAME}</user></div><div><span style="white-space: pre;"> </span><password>${PASSWORD}</password></div><div><span style="white-space: pre;"> </span><source>${project.build.directory}/${project.build.finalName}.ear</source></div><div><span style="white-space: pre;"> </span><targets>${TARGET_SERVER}</targets></div><div><span style="white-space: pre;"> </span><verbose>true</verbose></div><div><span style="white-space: pre;"> </span><remote>true</remote></div><div><span style="white-space: pre;"> </span><upload>true</upload></div><div><span style="white-space: pre;"> </span><name>${project.build.finalName}</name></div><div><span style="white-space: pre;"> </span> </configuration></div><div><span style="white-space: pre;"> </span> </execution></div><div><span style="white-space: pre;"> </span> </executions></div><div><span style="white-space: pre;"> </span></plugin></div><div> </plugins></div><div> </build></div><div> <parent></div><div> <groupId>com.oracle.adf</groupId></div><div> <artifactId>adf-parent</artifactId></div><div> <version>12.2.1-4-0</version></div><div> <relativePath></relativePath></div><div> </parent></div><div> <repositories></div><div> <repository></div><div> <name>OracleMaven</name></div><div> <id>maven.oracle.com</id></div><div> <url>https://maven.oracle.com</url></div><div> </repository></div><div> </repositories></div><div> <pluginRepositories></div><div> <pluginRepository></div><div> <name>OracleMaven</name></div><div> <id>maven.oracle.com</id></div><div> <url>https://maven.oracle.com</url></div><div> </pluginRepository></div><div> </pluginRepositories></div><div></project></div><div><br /></div></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-91038848826146054412022-07-01T07:45:00.000-07:002022-09-12T13:48:07.631-07:00SOACS Maven Deployment<div><b>Maven Setup:</b></div><div>First we need to download and install Maven. </div><div><ul style="text-align: left;"><li>Download maven from this site - https://maven.apache.org/download.cgi</li><li>Unzip the downloaded file. </li><li>Add MAVEN_HOME system variable / Environment Variable</li><ul><li>MAVEN_HOME = C:\Vijaya\SW\Maven\apache-maven-3.8.6</li></ul><li>Add Maven bin folder to PATH variable. </li><ul><li>PATH = C:\Vijaya\SW\Maven\apache-maven-3.8.6/bin</li></ul><li>Run mvn --version to check the setup</li></ul><div><b>Update local repository: </b></div></div><div>We need to set up a local maven repository for deploying applications using maven. </div><div>First we need to install SOACS on our local machine. Download the SOA installer jars from Oracle and install it on a local machine. </div><div><br /></div><div><b>Update Local Repository with SOA plugins: </b> Follow the below steps to configure a local repository with SOA plugins. </div><div><br /></div><div style="text-align: left;"><ul style="text-align: left;"><li>Go to the following Oracle installation path . </li></ul> cd C:\Oracle\Middleware\Oracle_Home\oracle_common\plugins\maven\com\oracle\maven\oracle-maven-sync\12.2.1</div><div><ul style="text-align: left;"><li>Execute the following maven commands. </li></ul></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div>mvn install:install-file -Dfile=oracle-maven-sync-12.2.1.jar -DpomFile=oracle-maven-sync-12.2.1.pom</div><div><br /></div><div>mvn com.oracle.maven:oracle-maven-sync:push -DoracleHome=C:/Oracle/Middleware/Oracle_Home -DoverwriteParent=true</div><div><br /></div><div>mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=C:/Oracle/Middleware/Oracle_Home</div></blockquote><div style="text-align: left;"><br /></div><blockquote style="border: none; margin: 0px 0px 0px 40px; padding: 0px; text-align: left;"><div style="text-align: left;">mvn com.oracle.maven:oracle-maven-sync:push -Doracle-maven-sync.oracleHome=C:/Oracle/Middleware/Oracle_Home -Doracle-maven-sync.testonly='true'</div><div style="text-align: left;"><br /></div><div style="text-align: left;">mvn archetype:crawl -Dcatalog=C:\Users\vijaya\.m2\archetype-catalog.xml </div></blockquote><p><br /></p><p><b>Create a Maven SOA Project and update the POM files.</b></p><p>Use the following POM files as a template.</p><div><b>Application POM:</b></div><div><br /></div><div><div><project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://maven.apache.org/POM/4.0.0" xsi:schemalocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"></div><div> <modelversion>4.0.0</modelversion></div><div> <groupid>SampleApplicationSOA</groupid></div><div> <artifactid>SampleApplicationSOA</artifactid></div><div> <version>1.0</version></div><div> <packaging>pom</packaging></div><div> <modules></div><div> <!--Add project modules--></div><div> <module>SampleProject1</module></div><div> <module>SampleProject2</module></div><div> </modules></div><div></project></div></div><div><br /></div><div><b>Project POM:</b></div><div><br /></div><div><div><?xml version="1.0" encoding="UTF-8" ?></div><div><project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"</div><div> xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"></div><div> <modelVersion>4.0.0</modelVersion></div><div> <groupId>SampleProject1</groupId></div><div> <artifactId>SampleProject1</artifactId></div><div> <version>1.0</version></div><div> <packaging>sar</packaging></div><div> <parent></div><div> <groupId>com.oracle.soa</groupId></div><div> <artifactId>sar-common</artifactId></div><div> <version>12.2.1-3-0</version></div><div> <relativePath></relativePath></div><div> </parent></div><div> <properties></div><div> <!-- These parameters are used by the compile goal --> </div><div> <scac.input.dir>${project.basedir}/SOA/</scac.input.dir></div><div> <scac.output.dir>${project.basedir}/target</scac.output.dir></div><div> <scac.input>${scac.input.dir}/composite.xml</scac.input></div><div> <scac.output>${scac.output.dir}/out.xml</scac.output></div><div> <scac.error>${scac.output.dir}/error.txt</scac.error></div><div> <scac.displayLevel>1</scac.displayLevel></div><div> <composite.name>${project.artifactId}</composite.name></div><div> <composite.revision>1.0</composite.revision></div><div> <composite.partition>default</composite.partition></div><div> <overwrite>true</overwrite></div><div> <forceDefault>true</forceDefault></div><div> <regenerateRulebase>false</regenerateRulebase></div><div> <keepInstancesOnRedeploy>false</keepInstancesOnRedeploy></div><div> <scatest.result>${scac.output.dir}/testResult</scatest.result></div><div> <input>${project.artifactId}</input></div><div> </properties></div><div> <build></div><div> <plugins></div><div> <!-- Plugin to read the propery file</file>--></div><div> <plugin></div><div> <groupId>org.codehaus.mojo</groupId></div><div> <artifactId>properties-maven-plugin</artifactId></div><div> <version>1.0-alpha-2</version></div><div> <executions></div><div> <execution></div><div> <phase>initialize</phase></div><div> <goals></div><div> <goal>read-project-properties</goal></div><div> </goals></div><div> <configuration></div><div> <files></div><div> <file>${build.properties.file}</file></div><div> </files></div><div> </configuration></div><div> </execution></div><div> </executions></div><div> </plugin></div><div><span style="white-space: pre;"> </span> <!-- Plugin to replace the tokens </file>--></div><div> <plugin></div><div> <groupId>com.google.code.maven-replacer-plugin</groupId></div><div> <artifactId>replacer</artifactId></div><div> <version>1.5.3</version></div><div> <executions></div><div> <execution></div><div> <id>replace-schema-file</id></div><div> <phase>prepare-package</phase></div><div> <goals></div><div> <goal>replace</goal></div><div> </goals></div><div> <configuration> </div><div><span style="white-space: pre;"> </span><file> ${scac.input.dir}/wsm-assembly.xml</file> </div><div> <replacements></div><div> <replacement></div><div> <token>@@TARGET_SERVER1@@</token></div><div> <value>${TARGET_SERVER1}</value></div><div> </replacement></div><div> <replacement></div><div> <token>@@TARGET_SERVER2@@</token></div><div> <value>${TARGET_SERVER2}</value></div><div> </replacement></div><div> </replacements></div><div> </configuration></div><div> </execution></div><div> </executions></div><div> </plugin></div><div> <plugin></div><div> <groupId>com.oracle.soa.plugin</groupId></div><div> <artifactId>oracle-soa-plugin</artifactId></div><div> <version>12.2.1-3-0</version></div><div> <configuration></div><div> <compositeName>${project.artifactId}</compositeName></div><div> <composite>${scac.input}</composite></div><div> <sarLocation>${scac.output.dir}/sca_${project.artifactId}_rev${project.version}.jar</sarLocation></div><div> <serverUrl>${SOACS_HOST_NAME}</serverUrl></div><div> <user>${SOACS_USER_NAME}</user></div><div> <password>${SOACS_PASSWORD}</password></div><div> <!-- Note: compositeRevision is needed to package, revision is needed to undeploy --></div><div> <compositeRevision>${composite.revision}</compositeRevision></div><div> <revision>${composite.revision}</revision></div><div> <scacInputDir>${scac.input.dir}</scacInputDir></div><div> <appHome>${project.basedir}/..</appHome></div><div> <oracleHome>${ORACLE_HOME}/soa</oracleHome></div><div> <input>${input}</input></div><div> </configuration></div><div> <extensions>true</extensions></div><div> </plugin></div><div> </plugins></div><div> </build></div><div><!-- To download the plugins from Oracle maven repo </file>--></div><div> <repositories></div><div> <repository></div><div> <name>OracleMaven</name></div><div> <id>maven.oracle.com</id></div><div> <url>https://maven.oracle.com</url></div><div> </repository></div><div> </repositories></div><div> <pluginRepositories></div><div> <pluginRepository></div><div> <name>OracleMaven</name></div><div> <id>maven.oracle.com</id></div><div> <url>https://maven.oracle.com</url></div><div> </pluginRepository></div><div> </pluginRepositories></div><div></project></div></div><div><br /></div><div><br /></div><div><b>Note:</b> If we are using MDS resources (wsdl/xsd) then we need to provide the local mds path details for compilation and packaging. </div><div><br /></div><div>Use the following <b>adf-config.xml</b> file </div><div><br /></div><div><div><?xml version="1.0" encoding="windows-1252" ?></div><div><adf-config xmlns="http://xmlns.oracle.com/adf/config" xmlns:adf="http://xmlns.oracle.com/adf/config/properties"</div><div> xmlns:sec="http://xmlns.oracle.com/adf/security/config"></div><div> <adf:adf-properties-child xmlns="http://xmlns.oracle.com/adf/config/properties"></div><div> <adf-property name="adfAppUID" value="XxScmSDTLightAppSOA-8435"/></div><div> </adf:adf-properties-child></div><div> <sec:adf-security-child xmlns="http://xmlns.oracle.com/adf/security/config"></div><div> <CredentialStoreContext credentialStoreClass="oracle.adf.share.security.providers.jps.CSFCredentialStore"</div><div> credentialStoreLocation="../../src/META-INF/jps-config.xml"/></div><div> </sec:adf-security-child></div><div> <adf-mds-config xmlns="http://xmlns.oracle.com/adf/mds/config"></div><div> <mds-config xmlns="http://xmlns.oracle.com/mds/config"></div><div> <persistence-config></div><div> <metadata-namespaces></div><div> <namespace path="/apps" metadata-store-usage="mstore-usage_2"/></div><div> <namespace path="/soa/shared" metadata-store-usage="mstore-usage_3"/></div><div> </metadata-namespaces></div><div> <metadata-store-usages></div><div> <metadata-store-usage id="mstore-usage_2"></div><div> <metadata-store class-name="oracle.mds.persistence.stores.file.FileMetadataStore"></div><div> <property name="metadata-path" value="<b>${soamds.apps.home}</b>"/></div><div> </metadata-store></div><div> </metadata-store-usage></div><div> <metadata-store-usage id="mstore-usage_3"></div><div> <metadata-store class-name="oracle.mds.persistence.stores.file.FileMetadataStore"></div><div> <property name="partition-name" value="seed"/></div><div> <property name="metadata-path" value="<b>${soa.oracle.home}</b>/integration"/></div><div> </metadata-store></div><div> </metadata-store-usage></div><div> </metadata-store-usages></div><div> </persistence-config></div><div> </mds-config></div><div> </adf-mds-config></div><div></adf-config></div></div><div><br /></div><div><b>${soamds.apps.home} : </b> Pass local MDS path while running Maven command.</div><div><b>${soa.oracle.home} : </b> Pass either local MDS or SOA install directory path where seeded resources are present. </div><div><br /></div><div><br /></div><div><b>Maven Command to Deploy:</b></div><div><br /></div><div><p class="MsoNormal" style="background: white; line-height: 12.0pt;"><span style="font-family: Consolas; font-size: 10.5pt;">mds_path</span><span style="color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="color: #001188; font-family: Consolas; font-size: 10.5pt;">$(pwd)</span><span style="color: #161513; font-family: Consolas; font-size: 10.5pt;">/</span><span style="font-family: Consolas; font-size: 10.5pt;">soamp</span><span style="color: #161513; font-family: Consolas; font-size: 10.5pt;">/</span><span style="font-family: Consolas; font-size: 10.5pt;">mds</span></p><p class="MsoNormal" style="background: white; line-height: 12.0pt;"><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">MIDDLEWARE</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">HOME</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">SOA= </span><span style="background-color: transparent; font-size: 14px;"><span style="color: #001188; font-family: Consolas;">C:\Oracle\Middleware\Oracle_Home\ (</span></span><span style="background-color: transparent;"><span style="color: #001188; font-family: Consolas;"><span style="font-size: 10.5pt;">SOA </span><span style="font-size: 14px;">installation</span><span style="font-size: 10.5pt;"> path)</span></span></span></p><p class="MsoNormal" style="background: white; line-height: 12.0pt;"><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">mvn </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas; font-size: 10.5pt;">-Dbuild</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">properties</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">file</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">${property}</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;"> </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas; font-size: 10.5pt;">-Dsoa</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">oracle</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">home</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">${MIDDLEWARE</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">HOME</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">SOA}</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">/</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">soa
</span><span style="background-color: transparent; color: #0e7295; font-family: Consolas; font-size: 10.5pt;">-Dsoamds</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">apps</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">home</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">${mds</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">path}</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;"> pre-integration-test</span></p><p class="MsoNormal" style="background: white; line-height: 12.0pt;"><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;"><br /></span></p><p class="MsoNormal" style="background: white; line-height: 12.0pt;">In case if we have to use an SSL port for the deployment and if we need to use a custom trust store to connect then we can use the following maven command. </p><p class="MsoNormal" style="background: white; line-height: 12.0pt;"><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">mvn </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas; font-size: 10.5pt;">-Dbuild</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">properties</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">file</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">${property}</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;"> </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas; font-size: 10.5pt;">-Dsoa</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">oracle</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">home</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">${MIDDLEWARE</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">HOME</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">SOA}</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">/</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">soa </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas; font-size: 10.5pt;">-Dsoamds</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">apps</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">.</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">home</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">${mds</span><span style="background-color: transparent; color: #161513; font-family: Consolas; font-size: 10.5pt;">_</span><span style="background-color: transparent; color: #001188; font-family: Consolas; font-size: 10.5pt;">path}</span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;"> </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">keyStoreType</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">JKS </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">trustStore</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">${trustStoreFile}</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">trustStorePassword</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">**** </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">keyStore</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="background-color: transparent; color: #001188; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">${trustStoreFile}</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;"> </span><span style="background-color: transparent; color: #0e7295; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">-Djavax</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">net</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">ssl</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">.</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">keyStorePassword</span><span style="background-color: transparent; color: #161513; font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">=</span><span style="font-family: Consolas, "Courier New", monospace; font-size: 14px; white-space: pre;">*** </span><span style="background-color: transparent; font-family: Consolas; font-size: 10.5pt;">pre-integration-test</span></p><div style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 16px; white-space: pre;"><br /></div></div><div style="background-color: white; font-family: Consolas, "Courier New", monospace; font-size: 14px; line-height: 16px; white-space: pre;"><br /></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-73714022824907826342022-01-19T08:32:00.003-08:002022-09-12T13:48:22.371-07:00VBCS Deployment CommandsWe can create a separate Git repository for each VBCS applications and we can use the following NPM command (Node JS) to install the application. <div><br /></div><div>We can use Jenkins or Oracle Developer Cloud Service to Get the code from repository and install the application. </div><div><br /></div><div>Create a respective build parameters and use them in the script. <br /><div><br /></div><div><div>#!/bin/bash</div><div><br /></div><div><br /></div><div>cd $(pwd)/vbcs/application/${APPLICATION_NAME}</div><div><br /></div><div>npm install</div><div><br /></div><div>./node_modules/.bin/grunt vb-build --url=https://${VBCS_HOST_NAME}/ic/builder/ --username=${USER_NAME} --password=${PASSWORD} --id=${APPLICATION_ID} --ver=${VERSION} --schema=live</div><div><br /></div><div><br /></div><div><br /></div><div><br /></div></div></div>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-4267453467816007752022-01-04T13:49:00.002-08:002022-09-12T13:48:42.072-07:00Proxy Servers<p> <b style="font-family: arial;">Forward Proxy :</b><span style="font-family: arial;"> This will hide the source details and forward the requests to target server. Forward proxy will acts like VPN - Virtual Private Network. </span></p><ul style="text-align: left;"><ul><li><span style="font-family: arial;">This can be used where there is Geo restrictions. We can hide the source location and access the server. </span></li><li><span style="font-family: arial;">This will<b> anonymize client IP address.</b> </span></li><li><span style="font-family: arial;">Servers will receive the requests from Proxy Server and respond back to same proxy server. </span></li><li><span style="font-family: arial;">Both VPN and Forward proxy will perform the same action. Both have advantage and disadvantage. </span></li><li><span style="font-family: arial;">Depending on the Proxy Server performance your end to end performance will vary. </span> </li><li><span style="font-family: arial;">Always go for VPN.</span></li></ul></ul><div><span style="font-family: arial;"><br /></span></div><div><span style="font-family: arial;"><b>Reverse Proxy: </b>Reverse proxy acts like a front for Servers. Like a load balancers. This will anonymize the server IP address. </span></div><div><ul style="text-align: left;"><ul><li><span style="font-family: arial;">Reverse proxy can acts like a Load Balancer and distribute the traffic to multiple servers. </span></li><li><span style="font-family: arial;">Acts like Global Server Load Balancer . Advanced load balancer concept to distribute the traffic to multiple servers deployed across the world. </span></li><li><span style="font-family: arial;">Provides enhanced security to secure the servers. Avoid DDoS attacks. </span></li><li><span style="font-family: arial;">Provides caching capabilities. </span></li><li><span style="font-family: arial;">Provides SSL encryption and termination. </span></li></ul></ul><div><span style="font-family: arial;"><br /></span></div><ul style="text-align: left;"><li><span style="font-family: arial;">Main Reverse Proxies</span></li><ul><ul><li><span style="font-family: arial;">Nginx</span></li><li><span style="font-family: arial;">Varnish</span></li><li><span style="font-family: arial;">Apache Traffic Server</span></li></ul></ul></ul></div><div><span style="font-family: arial;"><br /></span></div><div><span style="font-family: arial;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD8am1w0nUFRb3hUQX9JVTSuaFuhXcyJXMUBR0OQfBVxvbcDvEz-n7jpwm8PSTMgGXa56bsJ6XXd5Wkc3_Oi4WwkcB5U6-tnx38sStVW6QBjocpfDipTQ6r82q0sa8PcujBY2aPCGpuUk/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="406" data-original-width="851" height="153" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiD8am1w0nUFRb3hUQX9JVTSuaFuhXcyJXMUBR0OQfBVxvbcDvEz-n7jpwm8PSTMgGXa56bsJ6XXd5Wkc3_Oi4WwkcB5U6-tnx38sStVW6QBjocpfDipTQ6r82q0sa8PcujBY2aPCGpuUk/" width="320" /></a></div><br /><br /></span></div><div><span style="font-family: arial;"><br /></span></div><div><span style="font-family: arial;"><br /></span></div><div><span style="font-family: arial;">Root Domain: snvvijaya.com</span></div><div><span style="font-family: arial;">Blog Hosted On Sub Domain : blog.</span><span style="font-family: arial;">snvvijaya</span><span style="font-family: arial;">.com</span></div><div><span style="font-family: arial;">Blog Hosted on Sub Folder : snvvijaya.com/blog</span></div><div><span style="font-family: arial;"><br /></span></div><div><span style="font-family: arial;"><br /></span></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-77420131527179576742021-12-31T03:10:00.002-08:002021-12-31T03:10:19.490-08:00Oracle Fusion ERP - Update Event Subscriber URL<p> </p><p><br /></p><p>/server:port/soa-infra/PublicEvent/subscriptions/{id}</p><p>HTTP Method: PUT</p><p>Sample Input:</p><p>{</p><p>"id": 102,</p><p>"name": "{http://schemas.oracle.com/events/edl/Bpel20EssJobEvents}EssJobRequest",</p><p>"filter": "/ns2:a/ns2:b < 200",</p><p>"endpointURL": "http://my.service.com:9000/EssJob",</p><p>"state" : true</p><p>}</p><p><br /></p><p><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com1tag:blogger.com,1999:blog-8718053457334973188.post-21604855202091457842021-12-08T07:20:00.003-08:002022-09-12T13:48:55.210-07:00Oracle Fusion - Callback using Event Subscription<p><span style="font-family: arial;">When we design a callback integration using ERP Adapter, we can select the </span><b style="font-family: arial;">Receive Callback Message upon completion</b><span style="font-family: arial;"> of FBDI bulk import job submitted via another integration option on the Request page.</span></p><p><span style="font-family: arial;">After selecting this option, we must select the specific bulk data import process for which the callback event is received. <b>When this callback integration is activated, event subscription automatically occurs.</b></span></p><p><span style="font-family: arial;">Once the import job completes, the event is raised by the Oracle ERP Cloud application. The Oracle ERP Cloud application then <b>invokes</b> the Oracle Integration endpoint that is the callback integration.</span></p><p><span style="font-family: arial;">Since it follows event subscription mechanism , we need to configure CSF key in ERP to invoke the integration.</span></p><p><span style="font-family: arial;">In order to generate the CSF key , we need to capture identity domain details. These details will be available in OCI console. </span></p><p></p><ul style="text-align: left;"><li><span style="font-family: arial;">Login into OIC console.</span></li><li><span style="font-family: arial;">Click on the user icon on the right corner. </span></li><li><span style="font-family: arial;">Click on about</span></li><li><span style="font-family: arial;">Get the Service Instance Name - <b>vijaya-dvp-oic</b></span></li><li><span style="font-family: arial;">Get the Identity Domain Details - <b>idcs-xxxxxxxx62941exxxxxxxvvvvvv</b></span></li><li><span style="font-family: arial;"><b>CSF-KEY = </b><b>idcs-xxxxxxxx62941exxxxxxxvvvvvv</b><b>vijaya-dvp-oic</b></span></li></ul><p></p><p><span style="font-family: arial;"><br /></span></p><p></p><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSxJplzIbRDRP_L919Rwf0xsPNifoADTaPSwVwWNdaU5MhE7lcalRT4P3D9vgfQk0WtNuXr6ySZ31ZJY8FBeftXFxIbMjZ8klHiKbbxr8RgFrJnA_2vW4YIhasvjYcZ20CcXXkiE4c4iw/" style="margin-left: 1em; margin-right: 1em;"><span style="font-family: arial;"><img alt="" data-original-height="370" data-original-width="732" height="162" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjSxJplzIbRDRP_L919Rwf0xsPNifoADTaPSwVwWNdaU5MhE7lcalRT4P3D9vgfQk0WtNuXr6ySZ31ZJY8FBeftXFxIbMjZ8klHiKbbxr8RgFrJnA_2vW4YIhasvjYcZ20CcXXkiE4c4iw/" width="320" /></span></a></div><span style="font-family: arial;"><br /></span><ul style="text-align: left;"><li><span style="font-family: arial;">Login into SaaS page using following soa composer URL.</span></li><ul><li><span style="font-family: arial;"> https://xx-vijaya.fa.ocs.oraclecloud.com/soa/composer</span></li></ul><li><span style="font-family: arial;">Click on the Manage Security from right side of the page and enter value as below and click on the Register button</span></li><ul><li><span style="font-family: arial;">csf-key: Enter the csf-key which we created above</span></li><li><span style="font-family: arial;">Username: Enter OIC username</span></li><li><span style="font-family: arial;">Password: Enter OIC password</span></li><li><span style="font-family: arial;">Confirm Password: Enter OIC password</span></li></ul></ul><div><span style="font-family: arial;"><span> </span><span> </span><span> </span><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2yE36X13xvJThmkaGjXuI38Ybqfngl9C713tkDcC3-5lhAY5enqts8lUc9pQiTxrNdGo0PgHLlJNLUYv9V7p1M0BRiQem62uY6X0PIxXct48sGGq43gpXgcLqwkWxxqbFNnx6GDJ40eY/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="73" data-original-width="327" height="71" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEj2yE36X13xvJThmkaGjXuI38Ybqfngl9C713tkDcC3-5lhAY5enqts8lUc9pQiTxrNdGo0PgHLlJNLUYv9V7p1M0BRiQem62uY6X0PIxXct48sGGq43gpXgcLqwkWxxqbFNnx6GDJ40eY/" width="320" /></a></div><div class="separator" style="clear: both; text-align: center;"><br /></div><div class="separator" style="clear: both; text-align: center;"><div class="separator" style="clear: both; text-align: center;"><a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnoIk-uG_uOGe95p-GqeuoBrihUPdLEyvMRKIxto-3NNP7adaO8D4TiWtLeRawPH63ss2JyfKJ3tzGfsY143ChlnY9V9A6aFD6zoPb_j6G321yqCNZhGBNqEUNLU9y3VHsOaPuyT1oY9g/" style="margin-left: 1em; margin-right: 1em;"><img alt="" data-original-height="288" data-original-width="519" height="178" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgnoIk-uG_uOGe95p-GqeuoBrihUPdLEyvMRKIxto-3NNP7adaO8D4TiWtLeRawPH63ss2JyfKJ3tzGfsY143ChlnY9V9A6aFD6zoPb_j6G321yqCNZhGBNqEUNLU9y3VHsOaPuyT1oY9g/" width="320" /></a></div><br /><br /></div><br /><br /></span></div><p></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-69512350375530880652021-12-02T08:16:00.000-08:002022-09-12T13:49:09.197-07:00Oracle API Platform Cloud Service - Groovy Script to Check Payload and SOAP Header<p><b>Steps to Get Payload Data: </b></p><p>def apiRequestBody = context.<b>ApiRequest</b>.getBody().asString()</p><p>def soapEnv = new XmlSlurper().parseText(apiRequestBody)</p><p>def clientSystem = soapEnv['Header']['XXHeader']['XXSystem'].toString()</p><p><br /></p><p>if ( clientSystem != 'SNV-Vijaya' )</p><p>{</p><p> throw new oracle.apiplatform.policies.sdk.exceptions.PolicyProcessingException('Forbidden', 403, 'Access Denied')</p><p>}</p><p><br /></p><p>def sourceEnv = soapEnv['Header']['XXHeader']['XXEnvironment'].toString()</p><p>def corrId = soapEnv['Header']['XXHeader']['XXId'].toString()</p><p><br /></p><p><b>Set Custom Header Values: </b></p><p>context.ServiceRequest.setHeader("x-intg-source-system", clientSystem )</p><p>context.ServiceRequest.setHeader("x-intg-source-env", sourceEnv)</p><p>context.ServiceRequest.setHeader("x-intg-corrid", corrId)</p><p><br /></p><p><b><u>Sample Payload : </u></b></p><p><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xxs="http://xmlns.oracle.com/svn/ics/SampleService"></p><div style="text-align: left;"> <soapenv:Header><br /> <xxintegration:XXHeader xmlns:xxintegration="http://xmlns.oracle.com/svn/ics/types/base/XXHeader/v001"><br /> <xxintegration:XXUserInfo><br /> <xxintegration:IdentityId>12345</xxintegration:IdentityId><br /> <xxintegration:User>VijayaKumar</xxintegration:User><br /> </xxintegration:XXUserInfo><br /> <xxintegration:XXEnvironment>development</xxintegration:XXEnvironment><br /> <xxintegration:XXSystem>SNV-Vijaya</xxintegration:XXSystem><br /> <xxintegration:XXId>Id-0f218d61d48c3a8c8b46afe5</xxintegration:XXId><br /> </xxintegration:XXHeader><br /> </soapenv:Header><br /> <soapenv:Body><br /> <xxs:SalesTransactionMessage><br /> <xxs:TransactionType>ICSSales</xxs:TransactionType><br /> <xxs:TransactionID>123459</xxs:TransactionID><br /> <xxs:CustomerOrderMode/><br /> <xxs:BusinessDate/><br /> <xxs:ReceiptNo/><br /> <xxs:SalesId/><br /> <xxs:CustomerId/><br /> <xxs:Sales><br /> <xxs:SalesTrans><br /> <xxs:ItemId/><br /> <xxs:ItemCategory/><br /> <xxs:Quantity/><br /> <xxs:Serial/><br /> <xxs:NetAmount/><br /> <xxs:SalesTaxAmount/><br /> <xxs:GrossAmount/><br /> <xxs:SalesTaxPercentage/><br /> <xxs:DiscountAmount/><br /> <xxs:Price/><br /> <xxs:LineNumber/><br /> </xxs:SalesTrans><br /> </xxs:Sales><br /> <xxs:Payment><br /> <xxs:PaymentTrans><br /> <xxs:PaymentType/><br /> <xxs:Amount/><br /> <xxs:Currency/><br /> </xxs:PaymentTrans><br /> </xxs:Payment><br /> </xxs:SalesTransactionMessage><br /> </soapenv:Body><br /></soapenv:Envelope></div><p><br /></p><p><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0tag:blogger.com,1999:blog-8718053457334973188.post-6113357825131044522021-12-02T07:55:00.000-08:002022-09-12T13:49:19.023-07:00Unix - Command Execution Status Check<p> #!/bin/bash</p><p>mvn deploy</p><p>STATUS=$?</p><p>if [ $STATUS -eq 0 ]; then</p><p>echo "Deployment Successful"</p><p>else</p><p>echo "Deployment Failed"</p><p>fi</p><p><br /></p>Vijaya Kumar KVhttp://www.blogger.com/profile/01904446287217279999noreply@blogger.com0