HCMデータ・ローダー統合Webサービスの使用
HCMデータ・ローダーSOAP Webサービスを使用して、WebCenterコンテンツ・サーバーにステージングされたデータ・ファイルをインポートおよびロードできます。これらのデータファイルは、Oracle Cloud HCMユーザー・インタフェースの「データのインポートおよびロード」ページから手動で処理できます。
SOAP WebサービスをOracle Cloud HCMから起動するために必要なライブラリを取得するには、最初にOracle JDeveloper 11.1.1.9をインストールする必要があります。
HCMデータ・ローダー統合サービスについて
Oracle Cloud HCM SOAP Webサービスを使用して、SOAP APIを使用してファイルをアップロードできます。
データ・ローダー・サービスWebサービスの詳細は、他のSOAP Webサービスと同様に、「ナビゲータ」メニューの「ツール」の下にある「開発者接続」リンクのOracle Fusion Cloud Human Resourcesから取得できます。
DATファイルを含むZIPファイルをWebCenter Contentサーバーに配置した後で、SOAP Webサービスを起動できます。その後、hcm/dataloader/importアカウントで保護できます。このWebサービスを使用して、Oracle Cloud HCMにデータをインポートおよびロードできます。
HCMデータ・ローダーを起動するためのSOAPエンベロープについて
HCMDataLoader SOAP Webサービスに対するリクエストを作成できます。 http://{Host}/hcmCommonDataLoader/HCMDataLoaderimportAndLoadDataメソッドについて
importAndLoadDataメソッドは、WebCenter Contentサーバーでホストされているデータファイルの処理を開始します。これは、発行されたプロセスのProcessIdのみを返す非同期ジョブです。
このエンベロープを使用して、SOAP WebサービスのimportAndLoadData関数を呼び出します。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:importAndLoadData xmlns:ns1="http://xmlns.oracle.com/apps/hcm/common/dataLoader/core/dataLoaderIntegrationService/types/">
<ns1:ContentId></ns1:ContentId>
<ns1:Parameters></ns1:Parameters>
</ns1:importAndLoadData>
</soap:Envelope>エンベロープとともに送信されるimportAndLoadDataメソッドのパラメータは次のとおりです。
ContentId: WebCenter Contentサーバー上のファイルのコンテンツID (WebCenter Content JavaコールのdDocNameパラメータと同じ値)。
パラメータ: 名前と値のペア。次のパラメータ名を使用できますが、必須ではありません。
-
ImportMaximumErrors:インポート・プロセスが停止する前にビジネス・オブジェクトに対して発生する可能性があるエラーのあるファイル行のパーセンテージ。 -
LoadMaximumErrors:検証およびロード・プロセスが停止する前にビジネス・オブジェクトに対して発生する可能性があるエラーのあるビジネス・オブジェクト・インスタンスのパーセンテージ。 -
LoadConcurrentThreads:検証またはロード時のコンカレント・スレッドの数。 -
LoadGroupSize:コンカレント・スレッドにより単一の作業ユニットとして処理されるビジネス・オブジェクトの数。 -
FileEncryption:ファイル暗号化のタイプ。たとえば、パスワード・ベース暗号化(PBE)です。 -
DeleteSourceFile:YまたはNの値。Yに設定するか、空白のままにすると、ファイル・コンテンツがHCMデータ・ローダー・ステージ表に転送された後、WebCenter Contentサーバーからソース・ファイルが削除され、不要になります。
たとえば、<ns1:Parameters>タグには、次の名前と値のペアを含めることができます:<ns1:Parameters>ImportMaximumErrors=100,LoadMaximumErrors=100,LoadConcurrentThreads=4,FileEncryption=PGPSIGNED,DeleteSourceFile=N</ns1:Parameters>
<env:Envelope xmlns:env="http://schemas.xmlsoap.org/soap/envelope/" xmlns:wsa="http://www.w3.org/2005/08/addressing">
<env:Header> <wsa:To>http://www.w3.org/2005/08/addressing/anonymous</wsa:To>
<wsa:Action>http://xmlns.oracle.com/apps/hcm/common/dataLoader/core/dataLoaderIntegrationService/HCMDataLoader/importAndLoadDataResponse</wsa:Action>
<wsa:MessageID>urn:uuid:ab36195f-775b-4688-a0e4-8a4e531e904c</wsa:MessageID>
<wsa:RelatesTo>urn:uuid:74c7b631-c20a-4d49-bf36-1f483f3dc43e</wsa:RelatesTo>
</env:Header>
<env:Body> <ns0:importAndLoadDataResponse xmlns:ns0="http://xmlns.oracle.com/apps/hcm/common/dataLoader/core/dataLoaderIntegrationService/types/"> <result xmlns="http://xmlns.oracle.com/apps/hcm/common/dataLoader/core/dataLoaderIntegrationService/types/">7958</result> </ns0:importAndLoadDataResponse>
</env:Body>
</env:Envelope>getDataSetStatusメソッドについて
getDataSetStatusメソッドは、指定されたデータファイルの現在のステータスを返します。
このエンベロープを使用して、SOAP WebサービスのgetDataSetStatus関数を呼び出します。
<soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
<soap:Body>
<ns1:getDataSetStatus xmlns:ns1="http://xmlns.oracle.com/apps/hcm/common/dataLoader/core/dataLoaderIntegrationService/types/">
<ns1:Parameters></ns1:Parameters>
</ns1:getDataSetStatus>
</soap:Envelope>エンベロープとともに送信されるgetDataSetStatusメソッドのパラメータは次のとおりです。
ContentId: WebCenter Contentサーバー上のファイルのコンテンツID (WebCenter Content JavaコールのdDocNameパラメータと同じ値)。
ProcessId: importAndLoadDataメソッドによって開始および返されるプロセスのID。
HCM DataLoaderを呼び出すためのプロキシ・クラスの生成
Oracle Cloud HCM SOAP Webサービスを呼び出すオプションの1つは、生成されたプロキシ・クラスを使用することです。
選択したジェネレータにサービスWSDLファイルのURLを指定することで、プロキシ・クラスを生成できます。これらのプロキシ・クラスは、Webサービスの起動に使用されます。
ノート:
Oracle Cloud HCM SOAP Webサービスは、Oracle Web Services Manager (OWSM)セキュリティ・ポリシーによって保護されます。HCMデータ・ローダーを使用する際のセキュリティ上の意味について
クライアントがHCMデータ・ローダーSOAP Webサービスをコールする場合、ペイロードが暗号化された方法で転送されるか、SSLトランスポート・レイヤーを介して転送されるように、後でメッセージ保護ポリシーを満たす必要があります。
HCMDataLoader Webサービスは、次のOracle Web Services Managerポリシーを使用して保護されます: oracle/wss11_saml_or_username_token_with_message_protection_service_policy。
クライアント側では、次のOracle Web Services Managerポリシーを使用できます:oracle/wss11_username_token_with_message_protection_client_policy。
このポリシーを使用するには、サーバーによって提供される公開鍵を使用してメッセージを暗号化する必要があります。メッセージがサーバーに到達すると、サーバーの秘密キーによってメッセージを復号化できます。KeyStoreを作成して、サービスWSDLファイルに指定された証明書をインポートできますが、セキュリティ上の理由から、コードを実行するたびにOracle Cloud HCMパスワードの入力をユーザーに求める必要があります。
Keystore情報にアクセスするためにコード内で解析できるプロパティ・テキスト・ファイルを作成できます。次に例を示します。
FUSION_USERNAME=<Your Oracle Global Human Resources Cloud User Name>
DATAPATH=C:\\My\\Assets\\cloud.asset.hcm.java-dataload-example\\data\\
HCM_DATA_LOADER_SERVICE_WSDL_LOCATION=https://<<FusionURL>/hcmCommonDataLoader/HCMDataLoader?wsdl
UCM_IDC_WEBSERVICE_LOCATION=https://<FusionURL>/idcws/GenericSoapPort
KEYSTORE_LOCATION=<Your Keystore trust location>
KEYSTORE_PASSWORD=<YourTrustPassword>
KEYSTORE_ALIAS=orakey
GETDATASETSTATUS_DELAY=5
OK=OK
ERROR=Error
WARNING=Warning
CSV_FILE_ENCODING=UTF-8
DATA_SEPERATOR=;
次を使用して、ユーザーにOracle Cloud HCM資格証明の入力を求めます:
// Accept password from user
Scanner scanReader = new Scanner(System.in); // Reading from System.in
System.out.println("Enter password for user "+propertiesFile.getProperty("FUSION_USERNAME")+" :");
fusionUserPass= scanReader.next(); // Scans the next token of the input as an int.
scanReader.close();この例では、fusionUserPassは、ユーザーのOracle Cloud HCMパスワードを格納し、HCMデータ・ローダーSOAP Webサービスに渡すために使用できる変数です。
HCM DataLoader SOAP Webサービスの起動
JavaクラスからHCMデータ・ローダーSOAP Webサービスを使用して、ZIPファイルからOracle Cloud HCMにデータをロードできます。
最初にZIPファイルを作成し、手動またはプログラムでWebCenter Contentサーバーにアップロードします。その後、importAndLoadData Webサービスを使用してデータをロードできます。
ノート:
このソリューションで提供されるコード・サンプルは、Oracle WebLogic Server 12cでWebサービスを呼び出すためのJDKバージョン8でテストされました。他のJDKおよびOracle WebLogic Serverバージョンで使用するには、必要なバージョンに固有のライブラリを使用してコードをテストします。