문제

가 필요 뭔가를 구축(를 사용하여 샌드박스 솔루션?) 을 입증하는 SharePoint 는 능력이 있는 사용자를 위한 복사하는 문서를(특성)에서 문서 라이브러리에서 하나의 사이트 문서 라이브러리에서 다른 사이트에(같은 사이트 컬렉션,중요한 경우)없이 외부 응용 프로그램입니다.이 될 것입니다 그래서 그 사용자가 여러 사이트에서 갈 수 있는 라이브러리를 선택하는 단어 템플릿 및 그 후 복사본을 어떤 숫자의 사람들을 자신의 라이브러리입니다.

이 될 수 있습니다 복잡한 사람들과 선택하고 필드를 조회하지만,심지어 가장 기본적인 기능의 적절한 지금입니다.우리는 원래 생각하고 있었다는 것 OOTB 기능을 할 수 있습니다,그러나 그것을 보이지 않는 훨씬 도움이 될 그래서 내가 기꺼이 아무것도 배우 이 시점에서.

나는 그냥을 찾고의 권고에 대해 이동하는 가장 좋은 방법은 이 일을 하기 전에 가능한 지나친 솔루션입니다.

편집:탐험과 디자이너가 배제되어 있으로 옵션에 대한 우리의 최종 사용자에게 제공합니다.가장 가까운 예 내가 찾는 것은"보내는 다른 위치에"옵션이 있는 파일을 복사할 수 있습와 그들의 메타데이터를 다른 라이브러리입니다.그러나 나는 것 같은 사용자가를 할 수 있는 이 대량으로(예를 들어,20 복사본의 특정 템플릿에서 하나 인스턴스).정할 수 있습니다 이 도구에서 또는 모든 것을 만들 필요가요?감사합니다!

도움이 되었습니까?

해결책


나는 아무에서 당신의 게시물은 당신이 말한 "없이 외부 프로그램" 하지만 포함하는 js 라이브러리?
아래 간단한 솔루션입니다본 문서에서 하나 SP 라이브러리를 다른 SP 라이브러리입니다.확인하지 않았습의 교차 사이트 스크립팅 기능을 하지만 그것을 이론적으로 작동해야에서 농장,도메인,및 다른 SP 버전입니다.(100%에서 작동이 거미줄 같은 사이트 컬렉션)
단순히 이 코드를 복사로.html 파일,교체 path/to/jquery*와의 경로를 jquery 및 spservices 파일에 추가 콘텐츠를 편집기 Web 부분은 무엇이 페이지 당신이 원하는 호스트 인터페이스 설정의 콘텐츠에 대한 링크의 위치.html 파일을 만들어집니다.

이후 보낼 수 있도록 여러 곳 내가 사용하는 것이 좋 textarea 대신에 대한 대상 url 을(s)다음 구문 분석하는 라인으로 즉: $("textarea").val().split("\n").each(myfunc);

당신은 또한 이를 활용하는 현재 선택 문서의 원본이나 심지어 목록을 사용하여 항목을 드롭 다운로 url 토큰 을 쿼리를 보내는 문자열을 매개변수를 다른 페이지의 값(s)를 제공할 것입하는 데 필요한 정보를 가져올의 소스 문서는 정보입니다.

참고: 이 예제에서는 사용 및 Jquery SPServices
참고: 사용 JS 에 CEWP

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

업데이트

구문 분석하는 대신 URL 의 대상 중 하나에서 시간이할 수 있습니다 실제로 매장에서 그들을 배열 전달 DestinationUrls 매개 변수는 배열을 받 목적지의 url 이 있습니다.

또한,나이 테스트 기능에서 성공적으로 콘솔에 포함된 페이지 spservices 및 jquery 라이브러리를 사용하여 하드 절대 url 이 dstitemurl 변수입니다.

업데이트 2

내가 잊을 언급했다는 문제에 복사하는 분야 끝났습니다.내가 무슨 일을 했었 검색하는 근원 목록을 필하고 제거하는 모든 읽기만을 사용하는 함수다.
나는 무시했기 때문에 이것을 언급한 내 특정 구현게 쉬운 소스에 액세스 할 listguid 를 통해 쿼리 문자열.필요하신 경우에는 당신을 찾아인 $().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) 사용자는 "내용 및 구조"로 문서를 복사 할 수 있습니다.

http://yoursite/_Layouts/sitemanager.aspx?Source={WebUrl}_layouts/settings.aspx
.

옵션은 모든 문서의 메타 데이터를 새 위치 (예 : 생성, 수정 등)에 가져 오지 않습니다.

나는 뭔가를 놓칠 수 있지만, 원래의 문서를 사이트 콘텐츠 형식으로 설정 한 것만으로?콘텐츠 유형으로 설정하면 메타 데이터 필드를 포함하고 기본 템플리트 (원본 문서)를 유형에 할당 할 수 있습니다.컨텐츠 유형이 설정되면 사용자의 문서 라이브러리에 포함시켜 왔는데 왔는지 없으므로 앞뒤로 복사 할 필요가 없습니다.

또한 원래 문서를 변경하는 경우 콘텐츠 형식을 업데이트 할 수 있으며 각 별도의 대상에 문서를 다시 복사 해야하는 대신에 컨텐츠 형식을 업데이트 할 수 있으며 템플리트가 포함 된 모든 곳에서 변경됩니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 sharepoint.stackexchange
scroll top