Webservice den dönen dataset???

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Cevapla
Kullanıcı avatarı
baypipox
Üye
Mesajlar: 122
Kayıt: 16 Eki 2006 04:23
İletişim:

Webservice den dönen dataset???

Mesaj gönderen baypipox »

Merhaba arkadaşlar,
Bir webservice entegrasyonunda daha öne hiç görmediğim dataset nesnesiyle karşılaştım, normalde daha önce arraylerle çok çalıştım ama arraylerdeki mantık bunda kesinlikle yemiyor. serviceden dönen dataset nesnesini bir türlü parse edemedim, xml mapping ile xtr dosyası oluşturarak çekmeyi denedim fakat o da olmadı.

Gelen XML aşağıdaki gibi, Serviceden dönen dataset i nasıl parse edebilirim? yardımlarınızı bekliyorum.

Kod: Tümünü seç


  <?xml version="1.0" encoding="utf-8" ?> 
- <soap:Envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
- <soap:Body>
- <getPatientResultsResponse xmlns="http://www.duzen.com.tr/WSs">
- <getPatientResultsResult>
  <resultCode>0000</resultCode> 
  <resultClass>Onay: İşlem Başarıyla Tamamlandı!</resultClass> 
  <resultMessage>İşlem başarıyla tamamlandı! Hasta Test Sonucu başarıyla gönderildi...</resultMessage> 
- <resultDataSet>
- <xs:schema id="NewDataSet" xmlns="" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
- <xs:element name="NewDataSet" msdata:IsDataSet="true" msdata:MainDataTable="getPResults" msdata:UseCurrentLocale="true">
- <xs:complexType>
- <xs:choice minOccurs="0" maxOccurs="unbounded">
- <xs:element name="getPResults">
- <xs:complexType>
- <xs:sequence>
  <xs:element name="TESTNO" type="xs:int" minOccurs="0" /> 
  <xs:element name="PANELTESTNO" type="xs:int" minOccurs="0" /> 
  <xs:element name="BUTCEKODU" type="xs:int" minOccurs="0" /> 
  <xs:element name="TESTADI" type="xs:string" minOccurs="0" /> 
  <xs:element name="SONUC" type="xs:string" minOccurs="0" /> 
  <xs:element name="BIRIM" type="xs:string" minOccurs="0" /> 
  <xs:element name="REF_MIN" type="xs:string" minOccurs="0" /> 
  <xs:element name="REF_MAX" type="xs:string" minOccurs="0" /> 
  <xs:element name="SONUCTURU" type="xs:string" minOccurs="0" /> 
  <xs:element name="ACIKLAMA" type="xs:string" minOccurs="0" /> 
  </xs:sequence>
  </xs:complexType>
  </xs:element>
  </xs:choice>
  </xs:complexType>
  </xs:element>
  </xs:schema>
- <diffgr:diffgram xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:diffgr="urn:schemas-microsoft-com:xml-diffgram-v1">
- <NewDataSet xmlns="">
- <getPResults diffgr:id="getPResults1" msdata:rowOrder="0">
  <TESTNO>16</TESTNO> 
  <BUTCEKODU>901500</BUTCEKODU> 
  <TESTADI>GLUKOZ (Aclik Kan Sekeri)</TESTADI> 
  <SONUC>15</SONUC> 
  <BIRIM>mg/dL</BIRIM> 
  <REF_MIN>20</REF_MIN> 
  <REF_MAX>60</REF_MAX> 
  <SONUCTURU>S</SONUCTURU> 
  </getPResults>
- <getPResults diffgr:id="getPResults2" msdata:rowOrder="1">
  <TESTNO>34</TESTNO> 
  <BUTCEKODU>900200</BUTCEKODU> 
  <TESTADI>ALT (Alanin Aminotransferaz)</TESTADI> 
  <SONUC>85</SONUC> 
  <BIRIM>IU/L</BIRIM> 
  <REF_MIN>10</REF_MIN> 
  <REF_MAX>90</REF_MAX> 
  <SONUCTURU>S</SONUCTURU> 
  </getPResults>
  </NewDataSet>
  </diffgr:diffgram>
  </resultDataSet>
  </getPatientResultsResult>
  </getPatientResultsResponse>
  </soap:Body>
  </soap:Envelope>
Kullanıcı avatarı
SimaWB
Üye
Mesajlar: 1316
Kayıt: 07 May 2009 10:42
Konum: İstanbul
İletişim:

Re: Webservice den dönen dataset???

Mesaj gönderen SimaWB »

Burada çok güzel bir şekilde anlatılmış.
There's no place like 127.0.0.1
Kullanıcı avatarı
baypipox
Üye
Mesajlar: 122
Kayıt: 16 Eki 2006 04:23
İletişim:

Re: Webservice den dönen dataset???

Mesaj gönderen baypipox »

teşekkür ederim, saolun varolun hocam.
XML Mapper da öyle bir bug olacağını hiç tahmin etmemiştim...
direk olarak xtr dosyamı açıp, ilk satırı aşağıdaki değişikliği yaptım projem çalıştı.

Kod: Tümünü seç

<SelectEach dest="DATAPACKET\ROWDATA\ROW" from="\soap:Envelope\soap:Body\GetTitleAuthorsResult\diffgr:diffgram\NewDataSet\Titles">
 [Change To]
<SelectEach dest="DATAPACKET\ROWDATA\ROW" from="\Envelope\Body\GetTitleAuthorsResult\diffgram\NewDataSet\Titles">
Cevapla