Use el servicio web SOAP genérico WebCenter Content para cargar un archivo ZIP del cargador de datos de HCM.

El servidor de Oracle WebCenter Content muestra una interfaz de servicio web SOAP (GenericSoapPort) que puede utilizar para cargar archivos.

Llamar al servicio web SOAP genérico WebCenter Content con contenido en línea

Puede enviar contenido en línea junto con las llamadas al servicio web GenericSoapPort.

Obtenga el archivo WSDL para el servicio web desde la siguiente ubicación:

https://{host}/idcws/GenericSoapPort?wsdl

El host es la URL de Oracle Fusion Cloud Applications.

El cuerpo de la solicitud incluye los siguientes parámetros:

Parámetro Significado Comentario para cargador de datos de HCM
IdcService

Servicio que se va a llamar.

CHECKIN_UNIVERSAL para cargar archivos

dDocName

Identificador de contenido para el elemento de contenido.

Valor transferido a HcmDataLoader

dDocAuthor

Autor del elemento de contenido (contribuyente).

 
dDocTitle

Título del elemento de contenido.

Título del archivo tal y como aparece en la interfaz de usuario de importación/exportación

dDocType

El tipo de elemento de contenido.

Documento

dSecurityGroup

Grupo de seguridad, como Public o Secure.

FAFusionImportExport

dDocAccount

Cuenta del elemento de contenido. Este valor solo se necesita si las cuentas están activadas.

hcm$/dataloader$/import$

primaryFile

Ruta de acceso absoluta a la ubicación del archivo como se ve desde el servidor.

 

El valor dDocName forma parte de la respuesta y representa el ID de contenido que se utilizará para el procesamiento posterior del cargador de datos de HCM.

Opcionalmente, puede utilizar un sobre al enviar la solicitud, por ejemplo:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ucm="http://www.oracle.com/UCM" xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext">
    <soapenv:Header />
    <soapenv:Body>
        <ucm:GenericRequest webKey="cs">
            <ucm:Service IdcService="CHECKIN_UNIVERSAL">
                <ucm:User />
                <ucm:Document>
                    <ucm:Field name="dDocTitle">Department Load File</ucm:Field>
                    <ucm:Field name="dDocType">Document</ucm:Field>
                    <ucm:Field name="dDocAuthor">YOUR_HCM_USER_NAME</ucm:Field>
                    <ucm:Field name="dSecurityGroup">FAFusionImportExport</ucm:Field>
                    <ucm:Field name="dDocAccount">hcm$/dataloader$/import$</ucm:Field>
                    <ucm:Field name="primaryFile">YourZipFile.zip</ucm:Field>
                    <ucm:File href="YourZipFile.zip" name="primaryFile">
                        <ucm:Contents>hQEMA+8YN513c6VEAQf9EstURU0V2erP9hNIP34P6cvwdi2G8hmtTY4dj+jpjSBiBwF28SzOGO5Q T/S6LDM1lAd9fHDFO4CFTEUkiMiAfa4jCpkh2kjvrV05GYiy9rlYGbgjRa38t0Boj0G8dkZia4kw lD5zloegTb4k9dp2ZXtAkJjVPTlmaVs7wPjqHJOk1Dtj+zUL/Dvq/X+rcmBtnvZ6+gX1r/PSBYsI ANiUK36pUac916p1wrYbePtmLs9rLB8dZTIdKE3pbi3aIKECnqnfXN3Rx8BT3afI2kWA9xEsEBwL XSgD4EUlYY2lWKM0wQrSCIfz1jit4zK+vs1Jp3zP3kSFfMH9h5b70ATYCNLpAXTmolmJxhvg9nPN RbgWGM0jWuVE7tXEVL66s2XJuV6HCyJ+3QDTSS/hEzUorpbaH7gOPdd2d9uIJayseWmgkCLhpgNM Ml4dGGDEL7ISZNKbu39MWvptFC5wrFX/VyB0E3kZF3xJ9dHz5UzVN3hiji6/ZLnUKRI+mpY41gEQ BdLm/WehWRLkF9yWhdkKOK1imBa+oLCeZg2YcCPNVqMaf42atoix9kSR+PCdB46SGnyQ2kvx0z9V t+4A/70psaMEOgPmUciQ/CNoC3vPdDs/G+p8Run/9MHoZoW5o2KpGC1M4j593BulKnfE7JZdYopG b1MS9Vrd6e4Oj3ZD7ISyrf8gEsEhvRu4se0CnAA8W2Fj2u88TOBn/rX+9NMffGwwO040a00N4upV 70xY0I0mvMzPKh4u4kHHQLaV7+fChTHIRCXFjvN2ziyGdSCYxiZ9tfhms39jPp2LxJKPnsV5GgC8 XSqpzxipYjbZjpqvKAu0k9VhIF4vHlGjTbzZuhz/CETs5Aj2LXvJksIBpDq6whUK7/LKR3hmfKXi e4xng6B4TwSEvhvRDY0+V2np1RMxzlqW0W3XNpKYqkS2kjO7vQM65CBAqeQjYAW9p1tE1k1S5G2N 1whW46eYIQvN68SzkCQIsafzoAtgKKYClEwJuxGE004i6AluJ0keWx+ZzXohyIxx8eTiw7vp5PIS tm2WTriBJ/x0gMB9CWfdymOFK9Mf</ucm:Contents>
                    </ucm:File>
                </ucm:Document>
            </ucm:Service>
        </ucm:GenericRequest>
    </soapenv:Body>
</soapenv:Envelope>

Sin embargo, como los archivos del cargador de datos de HCM suelen ser grandes, se recomienda llamar al servicio web mediante el mecanismo de optimización de transmisión de mensajes (MTOM) con el empaquetado optimizado binario-XML (XOP). El siguiente ejemplo de solicitud muestra una carga útil de solicitud que carga un archivo ZIP del cargador de datos de HCM con MTOM/XOP:

POST http://{host}/idcws/GenericSoapPort HTTP/1.1 
Accept-Encoding: gzip,deflate
Content-Type: multipart/related; type="application/xop+xml"; start="<rootpart@example.com>"; start-info="text/xml"; boundary="----=_Part_7_163289738.1476693003095" 
SOAPAction: "urn:GenericSoap/GenericSoapOperation"
Authorization: Basic YOUR_AUTHORIZATION_TOKEN 
MIME-Version: 1.0 
Content-Length: 4030385
Host: {host} User-Agent: Apache-HttpClient/4.1.1 (java 1.5) 
Connection: close 

------=_Part_7_163289738.1476693003095 
Content-Type: application/xop+xml; charset=UTF-8; type="text/xml" 
Content-Transfer-Encoding: 8bit 
Content-ID:<rootpart@example.com>


        <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ucm="http://www.oracle.com/UCM" xmlns:wsse="http://schemas.xmlsoap.org/ws/2003/06/secext">
            <soapenv:Header>
                <wsse:Security xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
                    <wsse:UsernameToken wsu:Id="UsernameToken-12345">
                        <wsse:Username>YOUR_HCM_USER_NAME</wsse:Username>
                        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">YOUR_HCM_ACCOUNT_PASSWORD</wsse:Password>
                        <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">ckNXKVpwBU01PD2ENXg5nw==</wsse:Nonce>
                        <wsu:Created>2018-07-01T08:30:03.094Z</wsu:Created>
                    </wsse:UsernameToken>
                </wsse:Security>
            </soapenv:Header>
            <soapenv:Body>
                <ucm:GenericRequest webKey="cs">
                    <ucm:Service IdcService="CHECKIN_UNIVERSAL">
                        <ucm:User/>
                        <ucm:Document>
                            <ucm:Field name="dDocTitle">Department Load File</ucm:Field>
                            <ucm:Field name="dDocType">Document</ucm:Field>
                            <ucm:Field name="dDocAuthor">HCM_IMPL</ucm:Field>
                            <ucm:Field name="dSecurityGroup">FAFusionImportExport</ucm:Field>
                            <ucm:Field name="dDocAccount">hcm$/dataloader$/import$</ucm:Field>
                            <ucm:Field name="primaryFile">YourZipFile.zip</ucm:Field>
                            <ucm:File href="YourZipFile.zip" name="primaryFile">
                                <ucm:Contents>
                                    <inc:Include href="cid:YourZipFile.zip" xmlns:inc="http://www.w3.org/2004/08/xop/include" />
                                </ucm:Contents>
                            </ucm:File>
                        </ucm:Document>
                    </ucm:Service>
                </ucm:GenericRequest>
            </soapenv:Body>
        </soapenv:Envelope> 
------=_Part_7_163289738.1476693003095 
Content-Type: application/zip; name=YourZipFile.zip 
Content-Transfer-Encoding: binary 
Content-ID:<YourZipFile.zip> 
Content-Disposition: attachment; name="YourZipFile.zip"; filename="YourZipFile.zip"

 <<< binary content ommitted for brevity>>> 
 	
------=_Part_7_163289738.1476693003095--

Acerca de la herramienta de carga de la utilidad de transferencia de documentos WebCenter Content

Puede utilizar la utilidad de transferencia de documentos WebCenter Content mediante programación para cargar archivos ZIP en el servidor de WebCenter Content.

oracle.ucm.idcws.client.UploadTool incluido en oracle.ucm.fa_genericclient_11.1.1.jar es la utilidad de transferencia basada en SOAP genérica preferida. Necesita el servicio web Oracle JRF que soporta bibliotecas y utiliza JAX/WS a través de HTTPS para comunicarse con el servidor WebCenter Content. oracle.ucm.idcws.client.UploadTool se utiliza para cargar un archivo en WebCenter Content que se transmite desde un archivo local.

La utilidad de transferencia basada en SOAP genérica accede al servidor de WebCenter Content a través del servicio web GenericSoapPort (/idcws/GenericSoapPort) y requiere que el cliente especifique una política de cliente de seguridad de Oracle Web Services Manager basada en UsernameToken adecuada.

Acerca de los Requisitos de Java Runtime Environment

Oracle Java 6 SE versión 1.6.0_20 es la primera versión de Oracle Java Runtime Environment que se ha probado correctamente con las herramientas de la utilidad de transferencia de documentos de WebCenter Content. Oracle recomienda utilizar la última versión de Java 6 SE o Java 7 SE para asegurarse de que tiene aplicadas las últimas correcciones de bugs y actualizaciones de seguridad.

Acerca de los parámetros de la herramienta de carga

Al llamar a oracle.ucm.idcws.client.UploadTool, debe proporcionar los siguientes parámetros:

  • url: ubicación del servicio web GenericSoapPort del servidor WebCenter Content, por ejemplo: https://<Your_Oracle_WebCenter_Content_Server_URL>/idcws/GenericSoapPort

  • política: política de cliente de seguridad de Oracle Web Services Manager basada en UsernameToken adecuada que coincide con la política de servicio configurada del servidor, como las políticas oracle/wss_username_token_over_ssl_client_policy o oracle/wss_username_token_client_policy.

  • nombre de usuario: nombre de usuario de Oracle Cloud HCM.

  • contraseña: contraseña de Oracle Cloud HCM.

  • primaryFile: ruta completa de un archivo local que se va a cargar.

  • dDocAccount: cuenta de seguridad de destino.

  • dDocTitle: título del documento.

  • dDocName: utilice este parámetro si desea versionar un archivo existente proporcionando el valor dDocName del archivo.

  • desproteger: primero realice la desprotección si va a agregar una nueva revisión. Los valores de este parámetro pueden ser true o false (valor por defecto).

También puede transferir algunos parámetros opcionales para casos de uso de depuración o llamada silenciosa:

  • version: para imprimir la versión y la revisión UploadTool.

  • ping: para realizar una prueba PING_SERVER para validar la URL de conexión y las credenciales.

  • detallado: para configurar una salida detallada para registrar enlaces de datos de solicitud y respuesta completos.

  • quiet: para configurar una salida de log mínima.

  • silent: para desactivar los mensajes de log.

  • log_file_name: para enviar la información de log a un archivo externo diferente de System.out.

  • log_file_append: para configurar si el log se agrega o se sobrescribe.

Cargar archivos del cargador de datos de HCM mediante programación mediante el servicio web SOAP genérico

Una de las opciones programáticas que tiene al cargar archivos ZIP del cargador de datos de HCM es usar la API de servicio web SOAP genérica con el lenguaje de programación Java.

  1. Importe estas bibliotecas en el programa Java:
    import java.io.ByteArrayInputStream;
    import java.io.File;
    import java.io.IOException;
    import java.io.InputStream;
    import java.nio.charset.Charset;
    import java.util.ArrayList;
    
    import java.util.List;
    import java.util.Map;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import oracle.stellent.ridc.IdcClientException;
    import oracle.ucm.idcws.client.UploadTool;
    import oracle.ucm.idcws.client.UploadTool.UploadResults;
    import oracle.ucm.idcws.client.bulk.UploadException;
    import oracle.ucm.idcws.client.model.content.CheckinSource;
    import oracle.ucm.idcws.client.model.content.TransferFile;
    import oracle.ucm.idcws.client.model.response.CheckinResponse;
  2. Cree una función para cargar archivos en el servidor de WebCenter Content mediante el servicio web SOAP genérico:
    public static String uploadFileToUCMwithSOAP(String url, String username, String password, File uploadFile, 
    			String identifier, String dDocName, String dDocTitle, String dSecurityGroup, String dDocAccount, String dDocType) throws Exception {
    		//Insert all the code in the next steps in the body of this function		
    	}
  3. En el cuerpo de la función, cree un objeto List que contenga url, username, password y los argumentos principales como la política de seguridad de OWSM. Por ejemplo:
    		List<String> coreArgs = new ArrayList<String>();
    		coreArgs.add("url=" + url);
    		coreArgs.add("policy=oracle/wss_username_token_over_ssl_client_policy");
    		
    		
    		coreArgs.add("username=" + username);
    		coreArgs.add("password=" + password);
    		coreArgs.add("silent=false"); // minimal log output
    		coreArgs.add("verbose=true"); // verbose log output
    
    		List<String> argsList = new ArrayList<String>();
    		argsList.addAll(coreArgs);
    
    		argsList.add("threads=3");
    		argsList.add("throwOnThreadException=false"); // run() will not throw an exception should a thread error
    		
    		String[] uploadArgs = argsList.toArray(new String[0]);
  4. Cree un objeto UploadTool y configure su configuración inicial mediante la matriz uploadArgs. Por ejemplo:
    		UploadTool uploadTool = new UploadTool();
    
    		// Setup the tool's initial configuration from the supplied arguments.
    		boolean terminateEarly = uploadTool.setup(uploadArgs);
    		if (terminateEarly) {
    			throw new Exception("Error with the UCM UploadTool's initial configuration from the supplied arguments, please check arguments and try again.");
    		}
  5. Agregue los parámetros del servicio web y realice la solicitud:
    	List < CheckinSource > items = new ArrayList < CheckinSource > ();
    	items.add(new LocalFileSource(identifier, dDocName, dDocTitle, dSecurityGroup, dDocAccount, dDocType,
    	    uploadFile.getAbsolutePath()));
    
    	uploadTool.setCheckinItems(items);
    	UploadResults uploadResults = uploadTool.run();
    	if (uploadResults != null) {
    	    Map < Integer, Exception > failedCheckins = uploadResults.getAllFailedCheckinsKeyedByTaskNum();
    	    Map < Integer, UploadException > failedCheckinsDetailed = uploadResults.getFailedCheckinsKeyedByTaskNum();
    	    for (Map.Entry < Integer, Exception > entry: failedCheckins.entrySet()) {
    	        if (failedCheckinsDetailed.containsKey(entry.getKey())) {
    	            UploadException e = failedCheckinsDetailed.get(entry.getKey());
    	            logger.info("Checkin with task number " + e.getTaskNumber() + " and identifier " +
    	                e.getIdentifier() + " failed with message " + e.getMessage());
    	        } else {
    	            logger.info("Checkin with task number " + entry.getKey() + " failed with message " +
    	                entry.getValue().getMessage());
    	        }
    	    }
    
    	    Map < Integer, CheckinResponse > successfulCheckins = uploadResults.getSuccessfulCheckinsKeyedByTaskNum();
    	    for (Map.Entry < Integer, CheckinResponse > entry: successfulCheckins.entrySet()) {
    	        CheckinResponse response = entry.getValue();
    	        logger.info("Checkin with task number " + response.getTaskNumber() + " and identifier " +
    	            response.getIdentifier() + " succeeded. dID=" + response.getDId() + " dName=" + response.getDDocName());
    
    
    
    	    }
    	}
    	return dDocName; // dDocName is whats used by HDL Import	

    Cuando la solicitud ejecuta cada entrada se procesa por separado. Todos los elementos con fallos enviados a un objeto de registrador aparecen en un lado. Todos los elementos correctos se verifican a partir de la respuesta y se registran en el otro lado. El dDocName, que es el ID de contenido, se devuelve en la respuesta e indica que el archivo se ha cargado correctamente en el servidor de WebCenter Content.