FndManageImportExportFiles Webサービスを使用して、関連する値セットをアプリケーションにインポートできます。 このWebサービスでは、内部的にprocessRelatedSetValueDataメソッドを使用して関連する値セットをインポートし、メタデータ表に格納します。
関連する値セットをインポートする際の留意事項をいくつか示します。
-
関連値セットおよび関連値セット値は、既存の独立値セットである必要があります。
-
FND_VS_RELATED_SETS表の両方の値セットの間に既存の関係が存在する必要があります。
-
これら2つの値セット間の関係が存在しない場合は、FND_VS_RELATED_VALUES表に新しい関係が作成されるか、ENABLED_FLAG列が更新されます。
前提条件
WebサービスFndManageImportExportFilesServiceが「アプリケーション・フレックスフィールド値セットの管理」資格に追加されていることを確認します。 セキュリティ・コンソールを使用して、Oracle Fusion Cloud 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ページにアクセスします。
-
関連するセキュリティ証明書をエクスポートして保存します。
-
次のコマンドを使用して、保存した証明書をクライアント・コンピュータのトラスト・ストアにインポートします。
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 relatedvaluesetfileID = invokeUploadFiletoUCMMethod(fndManageImportExportFilesService, "relatedvaluesetfilename");
String relatedvaluefileID = invokeUploadFiletoUCMMethod(fndManageImportExportFilesService, "relatedvaluefilename");
if (relatedvaluesetfileID != null) {
invokeRelatedValueSetValuesDataLoader(fndManageImportExportFilesService, new Long(relatedvaluesetfileID), new Long(relatedvaluefileID));
}
}
static String invokeUploadFiletoUCMMethod(FndManageImportExportFilesService fndManageImportExportFilesService, String fileName) {
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 'relatedvaluesetfile.txt' which contains ValueSet values data in prescribed format
byte[] content =
org.apache.commons.io.FileUtils.readFileToByteArray(new File("/home/user1/" + fileName));
//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 invokeRelatedValueSetValuesDataLoader(FndManageImportExportFilesService fndManageImportExportFilesService,
Long relatedvaluesetfileID, Long relatedvaluefileID) {
String response;
try {
response = fndManageImportExportFilesService.processRelatedSetValueData(relatedvaluesetfileID, relatedvaluefileID);
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