解析云代码中的SOAP请求

时间:2016-01-22 16:25:16

标签: javascript soap parse-platform cloud-code

我需要在解析云代码中发出SOAP请求。然后我将返回的数据保存到解析类。我是javascript的新手。我尝试用Parse.Cloud.httpRequest做到这一点,但它没有用。

这是SOAP请求:

var elPlanliTable = $('#planliTable');
var filterPlanliKesintiler = true;

function getAllPlanliKesintiler(){

    var listName = "PlanliKesintiler";

    var where = (filterPlanliKesintiler) ?
    "<And><Geq><FieldRef Name='Tarih' /><Value Type='DateTime'><Today OffsetDays='-30' /></Value></Geq><Eq><FieldRef Name='Aktif' /><Value Type='Boolean'>1</Value></Eq></And>" :
    "<Eq><FieldRef Name='Aktif' /><Value Type='Boolean'>1</Value></Eq>";

    var soapEnv =
    "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
    <soapenv:Body> \
    <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
    <listName>"+listName+"</listName> \
    <query> \
    <Query> \
    <OrderBy> \
    <FieldRef Name='Tarih' Type='DateTime' IncludeTimeValue='FALSE' Ascending='False' /> \
    </OrderBy> \
    <Where> \
    " + where + " \
    </Where> \
    </Query> \
    </query> \
    <viewFields> \
    <ViewFields> \
    <FieldRef Name='Tarih' /> \
    <FieldRef Name='BaslangicSaat' /> \
    <FieldRef Name='BitisSaat' /> \
    <FieldRef Name='Planl_x0131__x0020_Kesinti_x0020' /> \
    <FieldRef Name='Bolgeler' /> \
    <FieldRef Name='KesintiNedeni' /> \
    <FieldRef Name='Aktif' /> \
    <FieldRef Name='AboneSayisi' /> \
    </ViewFields> \
    </viewFields> \
    <rowLimit>0</rowLimit> \
    </GetListItems> \
    </soapenv:Body> \
    </soapenv:Envelope>";


    var load = '<div class="spinner" style="position:absolute; width:100%; height:100%; background-color:rgba(255,255,255,.8); top:-100px;  "><h4 style="display:block; text-align:center; margin:28% auto;">Yükleniyor, Lütfen Bekleyiniz...<h4><div class="rect1"></div><div class="rect2"></div><div class="rect3"></div><div class="rect4"></div><div class="rect5"></div></div>';
    elPlanliTable.html(load);

    var urlAdres = null;
    var culture = _spPageContextInfo.currentCultureName;


    $.ajax({
           url:"http://www.sedas.com/tr-tr/Bilgi_Danisma/_vti_bin/lists.asmx",
           type: "POST",
           dataType: "xml",
           data: soapEnv,
           complete: processPlanliKesintilerResult,
           contentType: "text/xml; charset=\"utf-8\""
           });

}

1 个答案:

答案 0 :(得分:0)

我根据问题解决了问题:

Parse.com to communicate with WSDL

这里是:

Parse.Cloud.define("Uedas", function(request, response) {

                   var filterPlanliKesintiler = false;

                   var listName = "PlanliKesintiler";

                   var where = (filterPlanliKesintiler) ?
                   "<And><Geq><FieldRef Name='Tarih' /><Value Type='DateTime'><Today OffsetDays='-30' /></Value></Geq><Eq><FieldRef Name='Aktif' /><Value Type='Boolean'>1</Value></Eq></And>" :
                   "<Eq><FieldRef Name='Aktif' /><Value Type='Boolean'>1</Value></Eq>";

                   var Buffer = require('buffer').Buffer;

                   buffer = new Buffer(
                                       "<soapenv:Envelope xmlns:soapenv='http://schemas.xmlsoap.org/soap/envelope/'> \
                                       <soapenv:Body> \
                                       <GetListItems xmlns='http://schemas.microsoft.com/sharepoint/soap/'> \
                                       <listName>"+listName+"</listName> \
                                       <query> \
                                       <Query> \
                                       <OrderBy> \
                                       <FieldRef Name='Tarih' Type='DateTime' IncludeTimeValue='FALSE' Ascending='False' /> \
                                       </OrderBy> \
                                       <Where> \
                                       " + where + " \
                                       </Where> \
                                       </Query> \
                                       </query> \
                                       <viewFields> \
                                       <ViewFields> \
                                       <FieldRef Name='Tarih' /> \
                                       <FieldRef Name='BaslangicSaat' /> \
                                       <FieldRef Name='BitisSaat' /> \
                                       <FieldRef Name='Planl_x0131__x0020_Kesinti_x0020' /> \
                                       <FieldRef Name='Bolgeler' /> \
                                       <FieldRef Name='KesintiNedeni' /> \
                                       <FieldRef Name='Aktif' /> \
                                       <FieldRef Name='AboneSayisi' /> \
                                       </ViewFields> \
                                       </viewFields> \
                                       <rowLimit>0</rowLimit> \
                                       </GetListItems> \
                                       </soapenv:Body> \
                                       </soapenv:Envelope>"

                                       );



                   Parse.Cloud.httpRequest({
                                           method: 'POST',
                                           url: 'http://www.sedas.com/tr-tr/Bilgi_Danisma/_vti_bin/lists.asmx',
                                           headers: {
                                           'Content-Type': 'text/xml; charset=utf-8'
                                           },
                                           body: buffer
                                           }).then(function(httpResponse) {
                                                   // success
                                  response.success(httpResponse.text);

                                                   },function(httpResponse) {
                                                   // error
                                                   response.error(httpResponse.text);
                                                   });


                   });