設定 Oracle E-Business Suite 的用戶端系結
產生 WCF 用戶端類別之後,您可以建立 WCF 用戶端 (實例) ,並叫用其方法來取用 Oracle E-Business 配接器。
若要建立 WCF 用戶端,您必須指定端點位址和系結。 端點位址必須包含有效的 Oracle E-Business Suite 連線 URI,而且系結必須是 Oracle E-Business Suite 系結的實例, (OracleEBSBinding) 。 如需 Oracle E-Business Suite 連線 URI 的詳細資訊,請參閱 建立 Oracle E-Business Suite 的連線。 我們建議您不要將使用者認證指定為連線 URI 的一部分。 您可以改用 WCF 用戶端的 ClientCredentials 屬性,如本主題所述。
您可以在程式碼或組態檔中指定 Oracle E-Business Suite 系結和端點位址。 當您使用 [新增配接器服務參考 Visual Studio 外掛程式] 來產生 WCF 用戶端類別時,也會為您的專案建立組態檔 (app.config) 。 此檔案包含組態設定,這些組態設定會反映系結屬性和連接資訊 (,但當您使用 [新增配接器服務參考外掛程式] 連接到 Oracle E-Business Suite 時所指定的) 認證除外。
在程式碼中指定系結和端點位址
下列程式碼示範如何使用 WCF 用戶端的 ClientCredentials 屬性,在程式碼中指定系結和端點位址,以建立 WCF 用戶端。
//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();
在組態檔中指定系結和端點位址
下列程式碼示範如何在 app.config 檔案中指定系結和端點位址,以建立 WCF 用戶端。
//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();
下列 XML 顯示由新增配接器服務參考外掛程式為 客戶介面 並行程式所建立的組態檔。 此檔案包含上述範例中所參考的用戶端端點組態。
<?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>
如果專案有多個 WCF 用戶端,組態檔中會定義多個用戶端端點專案。 每個 WCF 用戶端專案都會根據其系結組態和目標 Oracle E-Business Suite 成品,擁有唯一的名稱。 如果您多次連線以在專案中建立 WCF 用戶端,將會建立多個系結組態專案,每個連線各建立一個。 這些系結組態專案會以下列方式命名:OracleEBSBinding、OracleEBSBinding1 等等。 在特定連接期間建立的每個用戶端端點專案都會參考在該連接期間建立的系結專案。