Specifying a Client Binding for the Oracle E-Business Suite
After you have generated the WCF client class, you can create a WCF client (instance) and invoke its methods to consume the Oracle E-Business adapter. For information about how to generate the WCF client class and helper code for operations that the Microsoft BizTalk Adapter for Oracle E-Business Suite exposes, see Specifying a Client Binding for the Oracle E-Business Suite.
To create the WCF client, you must specify an endpoint address and a binding. The endpoint address must contain a valid Oracle E-Business Suite connection URI, and the binding must be an instance of an Oracle E-Business Suite binding (OracleEBSBinding). For more information about the Oracle E-Business Suite connection URI, see Establishing a Connection to the Oracle E-Business Suite. We recommend that you do not specify the user credentials as part of the connection URI. You may instead use the ClientCredentials property of the WCF client, as explained in this topic.
You can specify the Oracle E-Business Suite binding and the endpoint address in your code or in a configuration file. When you use the Add Adapter Service Reference Visual Studio Plug-in to generate the WCF client class, a configuration file (app.config) is also created for your project. This file contains configuration settings that reflect the binding properties and connection information (except credentials) that you specified when you connected to the Oracle E-Business Suite with the Add Adapter Service Reference Plug-in.
The following code shows how to create a WCF client by specifying the binding and endpoint address in code using the ClientCredentials property of the WCF client.
//Create an Oracle EBS binding and set the binding properties OracleEBSBinding binding = new OracleEBSBinding(); binding.OracleUserName = "myOracleEBSUser"; binding.OraclePassword = "myOracleEBSPassword"; binding.OracleEBSResponsibilityName = "Responsibility"; binding.OracleEBSOrganizationId = "204"; //Create the client endpoint EndpointAddress address = new EndpointAddress("oracleebs://<oracleebs_instance_name>/"); //Create the client and specify the credentials ConcurrentPrograms_ARClient client = new ConcurrentPrograms_ARClient(binding,address); client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword"; //Open the client client.Open();
The following code shows how to create a WCF client by specifying the binding and endpoint address in an app.config file.
//Create the client by specifying the endpoint name in the app.config. In this case, the binding properties //must also be specified in the app.config. ConcurrentPrograms_ARClient client = new ConcurrentPrograms_ARClient("OracleEBSBinding_ConcurrentPrograms_AR"); //Specify the credentials client.ClientCredentials.UserName.UserName = "myuser"; client.ClientCredentials.UserName.Password = "mypassword"; client.Open();
The following XML shows the configuration file created for the Customer Interface concurrent program by the Add Adapter Service Reference Plug-in. This file contains the client endpoint configuration referenced in the preceding example.
<?xml version="1.0" encoding="utf-8"?> <configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0"> <system.serviceModel> <bindings> <oracleEBSBinding> <binding openTimeout="00:05:00" name="OracleEBSBinding" closeTimeout="00:01:00" receiveTimeout="00:10:00" sendTimeout="00:01:00" clientCredentialType="Database" inboundOperationType="Polling" metadataPooling="true" statementCachePurge="false" statementCacheSize="10" pollWhileDataFound="false" pollingInterval="30" useOracleConnectionPool="true" minPoolSize="1" maxPoolSize="100" incrPoolSize="5" decrPoolSize="1" connectionLifetime="0" acceptCredentialsInUri="false" useAmbientTransaction="true" notifyOnListenerStart="true" notificationPort="-1" dataFetchSize="65536" longDatatypeColumnSize="32512" skipNilNodes="true" maxOutputAssociativeArrayElements="32" enableSafeTyping="false" insertBatchSize="20" useSchemaInNameSpace="true" enableBizTalkCompatibilityMode="true"> <mlsSettings language="" dateFormat="" dateLanguage="" numericCharacters="" sort="" territory="" comparison="" currency="" dualCurrency="" iSOCurrency="" calendar="" lengthSemantics="" nCharConversionException="true" timeStampFormat="" timeStampTZFormat="" timeZone="" /> </binding> </oracleEBSBinding> </bindings> <client> <endpoint address="oracleebs://ebs-70-12/" binding="oracleEBSBinding" bindingConfiguration="OracleEBSBinding" contract="ConcurrentPrograms_AR" name="OracleEBSBinding_ConcurrentPrograms_AR" /> </client> </system.serviceModel> </configuration>
If a project has more than one WCF client, there will be multiple client endpoint entries defined in the configuration file. Each WCF client entry will have a unique name based on its binding configuration and target Oracle E-Business Suite artifact. If you connect multiple times to create the WCF clients in your project, multiple binding configuration entries will be created, one for each connection. These binding configuration entries will be named in the following manner: OracleEBSBinding, OracleEBSBinding1, and so on. Each client endpoint entry created during a specific connection will reference the binding entry created during that connection.