Usar o Serviço Web de Integração do Carregador de Dados do HCM
É possível usar um serviço Web SOAP do Carregador de Dados do HCM para importar e carregar os arquivos de dados preparados no servidor WebCenter Content. Você pode processar esses arquivos de dados manualmente na página Importar e Carregar Dados na interface do usuário do Oracle Cloud HCM.
Primeiro instale o Oracle JDeveloper 11.1.1.9 para obter as bibliotecas necessárias para chamar web services SOAP do Oracle Cloud HCM.
Sobre o Serviço de Integração do Carregador de Dados do HCM
Você pode usar um serviço Web SOAP do Oracle Cloud HCM para fazer upload de arquivos usando a API SOAP.
Você pode obter os detalhes do serviço Web Data Loader Service do Oracle Fusion Cloud Human Resources no link Developer Connect, em Ferramentas no menu Navegador, da mesma forma que qualquer outro serviço Web SOAP.
Você pode chamar o web service SOAP depois de colocar o arquivo ZIP que contém os arquivos DAT no servidor WebCenter Content. Em seguida, você pode protegê-lo com a conta hcm/dataloader/import
. Este serviço Web pode ser usado para importar e carregar dados no Oracle Cloud HCM.
Sobre os Envelopes SOAP para Invocar o Carregador de Dados do HCM
HCMDataLoader
: http://{Host}/hcmCommonDataLoader/HCMDataLoader
Sobre o método importAndLoadData
O método importAndLoadData
inicia o processamento de um arquivo de dados hospedado no servidor WebCenter Content. É um job assíncrono que retorna somente o ProcessId
do processo enviado.
Use esse envelope para fazer uma chamada para a função importAndLoadData
no serviço Web SOAP.
<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>
Os parâmetros do método importAndLoadData
que são enviados com o envelope são:
ContentId: ID do Conteúdo do arquivo no servidor WebCenter Content (o mesmo valor do parâmetro dDocName
na chamada Java WebCenter Content).
Parâmetros: pares nome-valor. Os seguintes nomes de parâmetro estão disponíveis, mas não são obrigatórios:
-
ImportMaximumErrors
: Porcentagem das linhas de arquivo em um erro que pode ocorrer para um objeto de negócios antes que o processo de importação seja interrompido. -
LoadMaximumErrors
: Porcentagem de instâncias de objetos de negócios em um erro que pode ocorrer em um objeto de negócios antes que a validação e o processo de carregamento sejam interrompidos. -
LoadConcurrentThreads
: Número de threads concorrentes ao validar ou carregar. -
LoadGroupSize
: Número de objetos de negócios processados como uma única unidade de trabalho por um thread simultâneo. -
FileEncryption
: Tipo de criptografia de arquivo. Por exemplo, Criptografia Baseada em Senha (PBE). -
DeleteSourceFile
: valorY
ouN
. Se definido comoY
ou deixado em branco, exclui o arquivo de origem do servidor WebCenter Content depois que o conteúdo do arquivo é transferido para as tabelas temporárias do Carregador de Dados do HCM e não é mais necessário.
Por exemplo, a tag <ns1:Parameters>
pode conter os seguintes pares de nome e valor:<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>
Sobre o método getDataSetStatus
O método getDataSetStatus
retorna o status atual do arquivo de dados especificado.
Use esse envelope para fazer uma chamada para a função getDataSetStatus
no serviço Web SOAP.
<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>
Os parâmetros do método getDataSetStatus
que são enviados com o envelope são:
ContentId: ID do Conteúdo do arquivo no servidor WebCenter Content (o mesmo valor do parâmetro dDocName
na chamada Java WebCenter Content).
ProcessId: O ID do processo iniciado e retornado pelo método importAndLoadData
.
Gerar uma Classe de Proxy para Chamar o HCM DataLoader
Uma opção para chamar um web service SOAP do Oracle Cloud HCM é usar classes de proxy geradas.
Você pode gerar classes de proxy fornecendo o URL do arquivo WSDL de serviço para seu gerador de escolha. Essas classes de proxy são usadas para chamar o serviço Web.
Observação:
Os web services SOAP do Oracle Cloud HCM são protegidos pelas políticas de segurança do Oracle Web Services Manager (OWSM).Sobre as Implicações de Segurança ao Usar o Carregador de Dados do HCM
Quando um cliente chama um serviço Web SOAP do Carregador de Dados do HCM, ele deve atender à política de proteção de mensagens para garantir que o payload seja transportado de forma criptografada ou pela camada de transporte SSL.
O serviço Web HCMDataLoader
é protegido usando a seguinte política do Oracle Web Services Manager: oracle/wss11_saml_or_username_token_with_message_protection_service_policy
.
No lado do cliente, você pode usar a seguinte política do Oracle Web Services Manager:oracle/wss11_username_token_with_message_protection_client_policy
.
Para usar esta política, a mensagem deve ser criptografada usando uma chave pública fornecida pelo servidor. Quando a mensagem atingir o servidor, ela poderá ser descriptografada pela chave privada do servidor. Você pode criar um KeyStore
para importar o certificado fornecido no arquivo WSDL de serviço. No entanto, por motivos de segurança, você deve solicitar ao usuário a senha do Oracle Cloud HCM sempre que executar seu código.
Você pode criar um arquivo de texto de propriedades que possa ser analisado dentro do código para acessar as informações de Keystore
, por exemplo:
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=;
Solicite ao usuário suas credenciais do Oracle Cloud HCM usando o seguinte:
// 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();
No exemplo, fusionUserPass
é uma variável que pode ser usada para armazenar a senha do Oracle Cloud HCM do usuário e, em seguida, passada para o serviço Web SOAP do Carregador de Dados do HCM.
Chamar o Serviço Web SOAP HCM DataLoader
Você pode carregar dados de um arquivo ZIP para o Oracle Cloud HCM usando o serviço Web SOAP do Carregador de Dados do HCM de uma classe Java.
Primeiro crie um arquivo ZIP e faça upload dele para o servidor WebCenter Content manualmente ou programaticamente. Em seguida, você pode carregar os dados usando o serviço Web importAndLoadData
.
Observação:
As amostras de código fornecidas nesta solução foram testadas com o JDK versão 8 para chamar serviços Web no Oracle WebLogic Server 12c. Para uso com outras versões do JDK e do Oracle WebLogic Server, teste o código com bibliotecas específicas das versões desejadas.