2013-11-27 5 views
0

InfoPath 양식의 반복 테이블에서 데이터를 가져 와서 보고서에 넣을 수 있어야한다는 요구 사항이 있습니다. Codeplex에서 반복 테이블의 데이터를 읽고 SOAP 쿼리를 통해 XML로 출력 할 솔루션 파일을 찾았습니다. SOAP 쿼리를 읽고 CEWP에서 JQuery를 통해 웹 페이지로 출력하려고합니다. 나는 이것을 시도하는 것에 상당히 익숙하며, 나는이 문제에 접근하는 방법에 관해서 조금 길다. 웹 서비스는 다음 예제 코드를 제공합니다.SharePoint 2010에서 사용자 지정 웹 서비스 읽기

POST /_vti_bin/InfoPathDB/InfoPathDB.asmx HTTP/1.1 
Host: 10.158.2.5 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 
<?xml version="1.0" encoding="utf-8"?> 

<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
<soap12:Body> 
    <QueryFormLibrary xmlns="http://infopathdb.codeplex.com/"> 
     <SiteURL>string</SiteURL> 
     <FormLibraryTitle>string</FormLibraryTitle> 
     <OptionalContentType>string</OptionalContentType> 
     <OptionalCAMLFilter>string</OptionalCAMLFilter> 
     <OptionalBooleanIncludeAttachments>string</OptionalBooleanIncludeAttachments> 
    </QueryFormLibrary> 
    </soap12:Body> 
</soap12:Envelope> 

HTTP/1.1 200 OK 
Content-Type: application/soap+xml; charset=utf-8 
Content-Length: length 

<?xml version="1.0" encoding="utf-8"?> 
<soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
    <soap12:Body> 
    <QueryFormLibraryResponse xmlns="http://infopathdb.codeplex.com/"> 
     <QueryFormLibraryResult>xml</QueryFormLibraryResult> 
    </QueryFormLibraryResponse> 
    </soap12:Body> 
</soap12:Envelope> 

일부는 JQuery 코드의 어느 부분으로 가야하는지 혼란 스럽습니다. 내가 적응하려고하는 코드 블록은 다음과 같습니다.

<script src="/Site_Assets/jquery-1.10.2.min.js"></script> 
<script type="text/javascript"> 

    $(document).ready(function() { 
     var soapEnv = 
      <soap12:Envelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:soap12="http://www.w3.org/2003/05/soap-envelope"> 
    <soap12:Body> 
    <QueryFormLibrary xmlns="http://infopathdb.codeplex.com/"> 
     <SiteURL>http://255.255.255.1</SiteURL> 
     <FormLibraryTitle>List Entries</FormLibraryTitle> 
     <OptionalContentType></OptionalContentType> 
     <OptionalCAMLFilter></OptionalCAMLFilter> 
     <OptionalBooleanIncludeAttachments></OptionalBooleanIncludeAttachments> 
    </QueryFormLibrary> 
    </soap12:Body> 
</soap12:Envelope>"; 

     $.ajax({ 
      url: "/_vti_bin/InfoPathDB/InfoPathDB.asmx HTTP/1.1", 
      type: "POST", 
      dataType: "xml", 
      data: soapEnv, 
      complete: processResult, 
      contentType: "text/xml; charset=\"utf-8\"" 
     }); 
    }); 

function processResult(xData, status) { 
    $(xData.responseXML).find("z\\:row").each(function() { 
          var iDesc=$(this).attr("FieldOne"); 
          var iResp=$(this).attr("FieldTwo"); 
      var iID=$(this).attr("ows_ID"); 
      var liHtml = "<div class='question' id='"+iID+"'>" + iDesc + "</div><div class='answer' id='a"+iID+"'>"+ iResp +"</a></div>"; 
          $("#entries").append(liHtml); 
}</script> 

<div id="entries">&#160;</div> 

내가 잘못하고있는 부분에 대한 모든 설명/맞습니까?

답변

0

오케이 - 웹 서비스 제작자의 도움과 많은 도움을 얻은 것으로 나타났습니다. JSON을 사용하여 데이터를 가져옵니다.

<script> 
function getJSON(SiteURL, FormLibraryTitle, OptionalContentType, OptionalCAMLFilter, OptionalBooleanIncludeAttachments) { 
var test; 
    $.ajax({ 
     type: "POST", 
     url: "/_vti_bin/InfoPathDB/InfoPathDB.asmx/QueryFormLibraryAsJSON", 
     data: "{'SiteURL': '" + SiteURL + "', 'FormLibraryTitle': '" + FormLibraryTitle + "', 'OptionalContentType':'" + OptionalContentType + "', 'OptionalCAMLFilter':'" + OptionalCAMLFilter + "', 'OptionalBooleanIncludeAttachments':'" + OptionalBooleanIncludeAttachments + "'}", 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: function (msg) { 
     // Save for F15 Developer Tools to see 
      test = JSON.parse(msg.d); 
      outputJSON(test); 
     }, 
     error: function (xhr) { 
      alert(xhr); 
     } 
    }); 
}; 
</script> 

이것은 (시험) 오브젝트를하고 HTML 테이블로 선택된 요소 피드 내 출력 기능 피드 무엇인가

여기서 코드의 성공적인 블록이다.

관련 문제