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"> </div>
내가 잘못하고있는 부분에 대한 모든 설명/맞습니까?