سؤال

, ولست بحاجة لبناء شيء (باستخدام حل سندبوإكسد?) لإثبات أن شاريبوانت لديه القدرة للمستخدمين لنسخ مستند (مع سماته) من مكتبة وثيقة في موقع واحد إلى مكتبة وثيقة في موقع آخر (نفس مجموعة الموقع ، إذا كان يهم) دون تطبيق خارجي.سيكون هذا حتى يتمكن المستخدمون عبر مواقع متعددة من الانتقال إلى مكتبتي واختيار قالب كلمة ثم نسخ أي عدد منها إلى مكتبتهم الخاصة.

أفهم أن هذا قد يصبح معقدا مع منتقي الأشخاص وحقول البحث ، ولكن حتى أبسط الوظائف مناسبة الآن.كنا نفكر في الأصل أن هناك ميزة أوتب التي قد تكون قادرة على القيام بذلك ، ولكن هذا لا يبدو أن يكون من الكثير من المساعدة لذلك أنا على استعداد لتعلم أي شيء في هذه المرحلة.

أنا أبحث فقط عن توصية بأفضل طريقة للقيام بذلك قبل التفكير في الحل.

تحرير:تم استبعاد المستكشف والمصمم كخيارات للمستخدمين النهائيين لدينا.أقرب مثال على ما أبحث عنه هو خيار" إرسال إلى موقع آخر " الذي يسمح لك بنسخ الملفات مع البيانات الوصفية الخاصة بهم إلى مكتبة أخرى.ولكن أود أن يكون المستخدمون قادرين على القيام بذلك بكميات كبيرة (على سبيل المثال ، جعل 20 نسخة من قالب معين في حالة واحدة).هل يمكنني تعديل هذه الأداة على الإطلاق أم أنني بحاجة إلى إنشاء أداة خاصة بي?شكراً!

هل كانت مفيدة؟

المحلول


أنا لا في مشاركتك قلت "بدون تطبيق خارجي" ولكن هل يشمل ذلك مكتبات شبيبة?
يوجد أدناه حل بسيط يقوم بنسخ مستند من مكتبة سب واحدة إلى أي مكتبة سب أخرى.لم أتحقق من قدرات البرمجة النصية عبر المواقع ولكن من الناحية النظرية يجب أن تعمل عبر المزارع والمجالات وإصدارات سب مختلفة.(يعمل بنسبة 100 ٪ عبر الشبكات في نفس مجموعة الموقع)
ببساطة نسخ هذا الرمز إلى .ملف هتمل ، استبدال المسار / إلى / مسج* مع المسار إلى مسج و سبسرفيسز الملفات ، وإضافة جزء ويب محرر المحتوى إلى أي صفحة من أي وقت مضى كنت ترغب في استضافة واجهة وتعيين رابط المحتوى الخاص به إلى موقع.ملف هتمل الذي قمت بإنشائه.

نظرا لأنك تريد السماح بالإرسال إلى وجهات متعددة ، فإنني أوصي باستخدام منطقة نصية بدلا من عنوان ورل (عناوين) الوجهة ثم تحليلها حسب السطر أي: $("textarea").val().split("\n").each(myfunc);

يمكنك أيضا تمديد هذا للاستفادة من محدد حاليا المستند كمصدر أو حتى استخدام قائمة منسدلة لعنصر القائمة مع رموز ورل لإرسال معلمة سلسلة استعلام إلى صفحة أخرى ستمنحك قيمتها(قيمها) المعلومات اللازمة لاستعادة معلومات المستند المصدر.

ملاحظة: يستخدم هذا المثال مسج و الخدمات
المراجع: باستخدام جس في سوب

<label>Copy From:</label><input type="text" value="" id="copyFrom" maxlength="255">
<label>Copy To:</label><input type="text" value="" id="copyTo" maxlength="255">
<input type="button" onclick="copyItem();" value="Copy">
<script type="text/javascript" src="/path/to/jquery.ver"></script>
<script type="text/javascript" src="/path/to/jquery.SPServices.ver"></script>
<script type="text/javascript">
    function copyItem(){
        var itemurl = $("#copyFrom").val();
        var dst = $("#copyTo").val();
        $().SPServices({
            operation: "GetItem",
            Url: itemurl,
            async: false,
            completefunc: function (xData, Status) {
                itemstream = $(xData.responseXML).find("Stream").text();
                       console.log(itemstream);
                itemfields = "";
                $(xData.responseXML).find("FieldInformation").each(function(){
                    itemfields+=$(this).get(0).xml;
                });

            }
        });
        $().SPServices({
            operation: "CopyIntoItems",
            SourceUrl: itemurl,
            async: false,
            DestinationUrls: [dst],
            Stream: itemstream,
            Fields:itemfields,
            completefunc: function (xData, Status) {
                var error = $(xData.responseXML).find("CopyResult").first().attr("ErrorCode");
                       console.log(error);
            }
        });
    }
    //to run in console uncomment line below
    //copyItem();
</script>

تحديث

بدلا من تحليل عنوان ورل الوجهة في وقت واحد يمكنك تخزينها في الواقع في صفيف وتمريرها إلى DestinationUrls المعلمة التي تقبل مجموعة من عناوين المواقع الوجهة.

أيضا ، لقد اختبرت هذه الوظيفة بنجاح في وحدة التحكم على صفحة تحتوي على سبسرفيسز ومكتبة مسج باستخدام عناوين ورل المطلقة ضمنية ل dst و itemurl المتغيرات.

تحديث 2

لقد نسيت أن أذكر أن لدي مشكلات في نسخ الحقول.ما انتهى بي الأمر به هو استرداد حقول قائمة المصدر وإزالة أي حقول للقراءة فقط باستخدام الوظيفة أدناه.
أنا أهملت أن أذكر هذا لأن بلدي تنفيذ معين يعطيني سهولة الوصول إلى ليستغويد المصدر عبر كيريسترينغ.إذا كنت بحاجة إلى العثور على لك تحقق من $().SPServices.SPListNameFromUrl الوظيفة التي حققت نجاحا مختلطا معها.

var fieldstocopy = '';
    var itemfieldsxml = $.parseXML(itemfields);
    $().SPServices({
      operation: "GetList",
      listName: ListGUID,
      async: false,
      completefunc: function(xData, Status) {
        $(xData.responseXML).find("Fields > Field").not("[ReadOnly='TRUE']").each(function() {
          var $node = $(this);
          fieldstocopy+=$(itemfieldsxml).find("FieldInformation[InternalName='"+$node.attr("Name")+"']").first().get(0).xml;
        });
      }
    });

نصائح أخرى

يمكنني التفكير في 2 خيارات بسيطة للغاية:

1) يمكن للمستخدمين نسخ العناصر مع القوائم / المكتبات المفتوحة في مستكشف Windows

2) يمكن للمستخدمين نسخ المستندات باستخدام "المحتوى والهيكل": giveacodicetagpre.

الخيار واحد لن يحضر كل بيانات تعريف المستند إلى الموقع الجديد (E.G. تم إنشاؤه، تعديل، إلخ.).

قد أكون في عداد المفقودين شيئا ما، ولكن لماذا لا إعداد المستندات الأصلية كأنواع محتوى الموقع؟من خلال تعيينها كوعي محتوى، يمكنك تضمين حقول البيانات الوصفية وتعيين قالب افتراضي (المستند الأصلي الخاص بك) إلى النوع.بمجرد إعداد نوع المحتوى، يمكنك تضمينه في مكتبة مستندات المستخدمين لذلك لا يجب أن يكون هناك أي نسخ ذهابا وإيابا.

أيضا، إذا حدثت تغيير المستند الأصلي، فيمكنك فقط تحديث نوع المحتوى وسيتم تغيير القالب في كل مكان تم تضمينه، بدلا منك يجب عليك إعادة نسخ المستند إلى كل وجهة منفصلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى sharepoint.stackexchange
scroll top