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/HCMDataLoader
importAndLoadDataメソッドについて
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バージョンで使用するには、必要なバージョンに固有のライブラリを使用してコードをテストします。