Webサービスを使用した値セットの値のインポート
「値セットの管理」ページでインポート・オプションを使用するかわりに、FndManageImportExportFilesService Webサービスを使用して、値セットの値をアプリケーションにインポートすることもできます。Webサービスでは、valueSetValuesDataLoaderメソッドを使用します。
前提条件
WebサービスFndManageImportExportFilesService
が「アプリケーション・フレックスフィールド値セットの管理」資格に追加されていることを確認します。セキュリティ・コンソールを使用して、Oracle Entitlements Serverでこの構成を実行します。Webサービスの構成時に、次の詳細を入力します。
-
リソース・タイプ: WebserviceResourceType
-
表示名: ImportExport
-
名前: http://xmlns.oracle.com/oracle/apps/fnd/applcore/webservices/FndManageImportExportFilesService#*
-
資格/権利(デフォルト・ポリシー・ドメイン内): アプリケーション・フレックスフィールド値セットの管理
-
セキュリティ・ポリシー: oracle /wss11_saml_or_username_token_with_message_protection_service_policy
値セットの値のインポート
値セットの値をインポートするには:
-
次のサブステップを実行して、「oracle/wss11_saml_or_username_token_with_message_protection_service_policy」というセキュリティ・ポリシー用のキーストアを生成します。
-
コマンド
keytool -genkeypair -keyalg RSA -alias mycompkey -keypass <password> -keystore mycompclient-keystore.jks -storepass <password> -validity 3600
を使用して、キーストアを生成します。 -
Webブラウザを介してURL
http://<host>:<port>/fndAppCoreServices/FndManageImportExportFilesService?wsdl
を使用してWSDLにアクセスし、公開キー<wsdl:service>/<wsdl:port>/<wsa:EndpointReference>/<wsid:Identity>/<dsig:keyInfo>/<dsig:X509Data>/<dsig:X509Certificate>
を取得します。次に、それを---- BEGIN CERTIFICATE ----
と---- END CERTIFICATE ----
で囲み、cdrmpk.cerという名前でファイルに保存します。 -
コマンド
keytool -importcert -alias cdrmkey -file cdrmpk.cer -keystore mycompclient-keystore.jks -storepass <password>
を使用して、トラスト・ストアにキー情報を格納します。
-
-
任意のブラウザを使用して、WSDLページにアクセスします。
-
関連するセキュリティ証明書Verisign Class 3 Public Primary Certification Authority - G5およびVerisign Secure Server CA - G3をエクスポートして保存します。
-
次のコマンドを使用して、保存した証明書をクライアント・コンピュータのトラスト・ストアにインポートします。
keytool -importcert -keystore <truststore> -storepass <truststorepassword> -file <file location where the mentioned certificate is stored> -alias <alias for certificate>
-
次のコマンドを実行して、
FndManageImportExportFilesService
Webサービス用のJAX-WSプロキシを生成します。C:\Program Files\Java\jdk1.7.0_04\bin>wsimport -s "d:\wsimport\FndManageImportExport" -d "d:\wsimport\FndManageImportExport" http://<host>:<port>/fndAppCoreServices/FndManageImportExportFilesService?wsdl parsing WSDL... Generating code... Compiling code...
-
生成されたコードをJARファイルとして保存し、FndManageImportExportProxy.jarという名前を付けます。
-
次のコードを使用して、Webサービスを開始するための別のJARファイルを作成します。
package com.oracle.xmlns.oracle.apps.fnd.applcore.webservices; import com.sun.xml.ws.developer.WSBindingProvider; import java.io.File; import java.io.IOException; import java.util.List; import java.util.Map; import javax.xml.ws.BindingProvider; import javax.xml.ws.WebServiceRef; import javax.xml.ws.handler.Handler; import oracle.webservices.ClientConstants; import weblogic.wsee.jws.jaxws.owsm.SecurityPoliciesFeature; // !THE CHANGES MADE TO THIS FILE WILL BE DESTROYED IF REGENERATED! // This source file is generated by Oracle tools // Contents may be subject to change // For reporting problems, use the following // Version = Oracle WebServices (11.1.1.0.0, build 130224.1947.04102) public class FndManageImportExportFilesServiceSoapHttpPortClient { @WebServiceRef private static FndManageImportExportFilesService_Service fndManageImportExportFilesService_Service; public static void main(String [] args) { System.setProperty("javax.net.ssl.trustStore","<location of truststore which is used in II) to import the certificates>"); System.setProperty("javax.net.ssl.trustStorePassword", "<truststore password>"); fndManageImportExportFilesService_Service = new FndManageImportExportFilesService_Service(); SecurityPoliciesFeature securityFeatures = new SecurityPoliciesFeature(new String[] { "oracle/wss11_username_token_with_message_protection_client_policy", }); FndManageImportExportFilesService fndManageImportExportFilesService = fndManageImportExportFilesService_Service.getFndManageImportExportFilesServiceSoapHttpPort (securityFeatures); // Add your code to call the desired methods. WSBindingProvider wsbp = (WSBindingProvider) fndManageImportExportFilesService; Map<String, Object> requestContext = wsbp.getRequestContext(); requestContext.put(ClientConstants.WSSEC_KEYSTORE_TYPE,"jks"); // Provide location of 'mycompclient-keystore.jks' which was created during Step I) requestContext.put(ClientConstants.WSSEC_KEYSTORE_LOCATION,"/home/user1/mycompclient-keystore.jks"); requestContext.put(ClientConstants.WSSEC_KEYSTORE_PASSWORD,"<password>"); requestContext.put(ClientConstants.WSSEC_RECIPIENT_KEY_ALIAS,"cdrmkey"); //Provide user who is having permission to initiate the service requestContext.put(WSBindingProvider.USERNAME_PROPERTY,"<username>"); requestContext.put(WSBindingProvider.PASSWORD_PROPERTY, "<password>"); String id = invokeUploadFiletoUCMMethod(fndManageImportExportFilesService); if (id != null) { invokevalueSetValuesDataLoader(fndManageImportExportFilesService, new Long(id)); } } static String invokeUploadFiletoUCMMethod(FndManageImportExportFilesService fndManageImportExportFilesService) { String response = null; DocumentDetails document = new DocumentDetails(); ObjectFactory objfactory = new ObjectFactory(); document.setFileName(objfactory.createDocumentDetailsFileName("import_data.txt")); // Provide UCM repository - if repository is fin/tax/import then suffix each value with $ as mentioned here document.setDocumentAccount(objfactory.createDocumentDetailsDocumentAccount("fin$/tax$/import$")); document.setDocumentTitle(objfactory.createDocumentDetailsDocumentTitle("VS")); document.setContentType(objfactory.createDocumentDetailsContentType("plain/text")); try { // Provide location of 'VS.txt' which contains ValueSet values data in prescribed format byte[] content = org.apache.commons.io.FileUtils.readFileToByteArray(new File("/home/user1/VS.txt")); //System.out.println("File content:" + new String(content, "UTF-8")); document.setContent(objfactory.createDocumentDetailsContent(content)); } catch (IOException e) { System.out.println(e.getMessage()); } catch(Exception e) { System.out.println("Exception: "+e.getMessage()); } try { response = fndManageImportExportFilesService.uploadFiletoUCM(document); System.out.println("Response: " + response); } catch (ServiceException e) { System.out.println(e.getMessage()); } return response; } static void invokevalueSetValuesDataLoader(FndManageImportExportFilesService fndManageImportExportFilesService, Long id) { String response; try { response = fndManageImportExportFilesService.valueSetValuesDataLoader(id); System.out.println("Response: " + response); } catch (ServiceException e) { System.out.println(e.getMessage()); } } }
-
生成された出力をJAVAファイルとして保存し、FndManageImportExportFilesServiceSoapHttpPortClient.javaという名前を付けます。
-
JAVAファイルを使用してJARファイルを作成し、FndManageImportExportClient.jarという名前を付けます。
-
次のコマンドを使用して、Webサービスを実行します。
java -cp ./FndManageImportExportProxy.jar:./ws.api_1.1.0.0.jar:./FndManageImportExportClient.jar FndManageImportExportFilesServiceSoapHttpPortClient