استخدم خدمة ويب SOAP العامة WebCenter Content لتحميل ملف ZIP لمحمل بيانات HCM

يعرض خادم Oracle WebCenter Content واجهة خدمة ويب SOAP (GenericSoapPort) التي يمكنك استخدامها لتحميل الملفات.

استدعاء WebCenter Content خدمة ويب SOAP العامة مع محتوى مضمن

يمكنك إرسال محتوى مضمن إلى جانب استدعاءات خدمة الويب GenericSoapPort.

إحضار ملف WSDL لخدمة الويب من الموقع التالي:

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

المضيف هو عنوان URL لـ تطبيقات Oracle Fusion Cloud.

يشتمل نص الطلب على المعلمات التالية:

المعلمة المعنى تعليق لمُحمّل بيانات HCM
IdcService

الخدمة المطلوب استدعاؤها.

CHECKIN_UNIVERSAL لتحميل الملفات

dDocName

معرف المحتويات لعنصر المحتويات.

القيمة التي تم إدخالها إلى HcmDataLoader

dDocAuthor

مؤلف عنصر المحتويات (المساهم).

 
dDocTitle

عنوان عنصر المحتويات.

عنوان الملف كما يظهر في واجهة مستخدم الاستيراد/التصدير

dDocType

نوع عنصر المحتوى.

المستند

dSecurityGroup

مجموعة التأمين، مثل Public أو Secure.

FAFusionImportExport

dDocAccount

حساب عنصر المحتوى. هذه القيمة مطلوبة فقط في حالة تمكين الحسابات.

hcm$/dataloader$/import$

primaryFile

المسار المطلق لموقع الملف كما يظهر من الخادم.

 

تعد القيمة dDocName جزءًا من الاستجابة وتمثل معرف المحتوى المطلوب استخدامه لمعالجة HCM Data Loader الإضافية.

يمكنك اختياريًا استخدام مظروف عند إرسال الطلب، على سبيل المثال:

<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>

ومع ذلك، نظرًا لأن ملفات محمل بيانات HCM كبيرة عادةً، يوصى باستدعاء خدمة الويب باستخدام آلية تحسين نقل الرسائل (MTOM) مع التعبئة المحسنة الثنائية بتنسيق XML (XOP). يوضح مثال الطلب التالي حمولة الطلب التي تقوم بتحميل ملف ZIP لمحمل بيانات HCM باستخدام 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--

حول WebCenter المحتوى أداة تحميل الأدوات المساعدة لنقل المستندات

يمكنك استخدام البرنامج المساعد لنقل المستندات WebCenter المحتوى برمجيًا لتحميل ملفات ZIP إلى خادم WebCenter المحتوى.

oracle.ucm.idcws.client.UploadTool المضمن في oracle.ucm.fa_genericclient_11.1.1.jar، هو البرنامج المساعد العام المفضل للنقل المستند إلى SOAP. وهي تتطلب خدمة ويب Oracle JRF التي تدعم المكتبات وتستخدم JAX/WS عبر HTTPS للاتصال بخادم WebCenter Content. يتم استخدام oracle.ucm.idcws.client.UploadTool لتحميل ملف إلى WebCenter المحتوى المتدفق من ملف محلي.

تقوم الأداة المساعدة العامة للنقل المستندة إلى SOAP بالوصول إلى خادم WebCenter Content من خلال خدمة الويب GenericSoapPort الخاصة بها (/idcws/GenericSoapPort) وتتطلب من العميل تحديد نظام عميل أمان Oracle Web Services Manager قائم على UsernameToken.

حول متطلبات Java Runtime Environment

يعد الإصدار 1.6.0_20 من Oracle Java 6 SE هو الإصدار الأول من Oracle Java Runtime Environment الذي تم اختباره بنجاح باستخدام أدوات الأداة المساعدة لنقل المستندات WebCenter Content. توصي Oracle باستخدام أحدث إصدار من Java 6 SE أو Java 7 SE لضمان تطبيق أحدث إصلاحات الأخطاء والتحديثات الأمنية.

حول معلمات أداة التحميل

عند استدعاء oracle.ucm.idcws.client.UploadTool، يجب إدخال المعلمات التالية:

  • url: موقع خدمة الويب لخادم WebCenter Content GenericSoapPort، على سبيل المثال: https://<Your_Oracle_WebCenter_Content_Server_URL>/idcws/GenericSoapPort

  • السياسة: نظام عميل تأمين Oracle Web Services Manager المناسب المستند إلى UsernameToken والذي يطابق نظام الخدمة المكون للخادم مثل سياسات oracle/wss_username_token_over_ssl_client_policy أو oracle/wss_username_token_client_policy.

  • اسم المستخدم: اسم المستخدم Oracle Cloud HCM الخاص بك.

  • كلمة السر: كلمة سر Oracle Cloud HCM الخاصة بك.

  • primaryFile: المسار المؤهل بالكامل لملف محلي لتحميله.

  • dDocAccount: حساب أمان الوجهة.

  • dDocTitle: عنوان المستند.

  • dDocName: استخدم هذه المعلمة إذا أردت إصدار ملف موجود، عن طريق إدخال قيمة الملف dDocName.

  • السحب: إجراء السحب أولاً، إذا كنت تقوم بإضافة مراجعة جديدة. يمكن أن تكون قيم هذه المعلمة true أو false (افتراضي).

يمكنك أيضًا تمرير بعض المعلمات الاختيارية لتصحيح الأخطاء أو حالات استخدام الاستدعاء التلقائية:

  • الإصدار: لطباعة مراجعة وإصدار UploadTool.

  • ping: لإجراء اختبار PING_SERVER لتدقيق عنوان URL وصلاحيات الاتصال.

  • مطول: لتكوين مخرجات مطولة لتسجيل ملفات بيانات الطلبات والاستجابات الكاملة.

  • هادئ: لتكوين الحد الأدنى لمخرجات السجل.

  • خالٍ: لتعطيل رسائل السجل.

  • log_file_name: لإرسال معلومات السجل إلى ملف خارجي مختلف عن System.out.

  • log_file_append: لتكوين ما إذا كان يتم إلحاق السجل مقابل الكتابة فوقه.

تحميل ملفات محمل بيانات HCM برمجيًا باستخدام خدمة ويب SOAP العامة

أحد الخيارات البرمجية لديك عند تحميل ملفات ZIP لمحمل بيانات HCM هو استخدام واجهة برمجة تطبيقات خدمة ويب SOAP العامة باستخدام لغة برمجة Java.

  1. قم باستيراد هذه المكتبات في برنامج 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. تكوين دالة لتحميل الملفات إلى خادم WebCenter Content باستخدام خدمة ويب SOAP العامة:
    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. في نص الدالة، أنشئ كائن List يحتوي على url وusername وpassword والوسائط الأساسية مثل نظام تأمين OWSM. على سبيل المثال:
    		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. أنشئ كائن UploadTool، وقم بإعداد التكوين الأولي الخاص به باستخدام مصفوفة uploadArgs. على سبيل المثال:
    		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. أضف معلمات خدمة الويب وقم بالطلب:
    	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	

    عند تشغيل الطلب، تتم معالجة كل إدخال على حدة. تظهر كل العناصر الفاشلة المرسلة إلى كائن مسجل على جانب واحد. يتم التحقق من كل العناصر الناجحة من الاستجابة وتسجيل الدخول على الجانب الآخر. يتم إرجاع dDocName وهو معرف المحتوى في الاستجابة ويشير إلى أنه تم تحميل الملف بنجاح إلى خادم WebCenter Content.