Hallo,
ich möchte Daten an einen Server schicken über SOAP/XML. Nach mehren Versuchen bin im am Ende bei MsXML gelandet.
Ein Beispielanfrage, wie mir von der Firma zugeschickt wurde, soll so aussehen:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36:
| <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:lab="http://lab.services.rewe.de" xmlns:bean="http://beans.lab.services.rewe.de"> <soapenv:Header/> <soapenv:Body> <lab:findListRIS_QSLabTasks> <lab:institut> <bean:name>xxxxxxxxx</bean:name> <bean:number>xxxxxxxxxx</bean:number> <bean:password>xxxxxxxxxx</bean:password> </lab:institut> <lab:criterias> <bean:criteriaElement> <bean:dataSourceName>BusRel</bean:dataSourceName> <bean:fieldName>AVA_SAPAccountNum</bean:fieldName> <bean:operator>Equal</bean:operator> <bean:value1>xxxxxxxxxx</bean:value1> <bean:value2></bean:value2> </bean:criteriaElement> <bean:criteriaElement> <bean:dataSourceName>Task</bean:dataSourceName> <bean:fieldName>RIS_QSTaskClosed</bean:fieldName> <bean:operator>Equal</bean:operator> <bean:value1>No</bean:value1> <bean:value2></bean:value2> </bean:criteriaElement> <bean:criteriaElement> <bean:dataSourceName>Task</bean:dataSourceName> <bean:fieldName>TaskType</bean:fieldName> <bean:operator>Equal</bean:operator> <bean:value1>None</bean:value1> <bean:value2></bean:value2> </bean:criteriaElement> </lab:criterias> </lab:findListRIS_QSLabTasks> </soapenv:Body> </soapenv:Envelope> |
Mein aktueller Test-Script sieht so aus:
Delphi-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27:
| var req : IXMLHTTPRequest; anfrage: OleVariant; RequestStrm: TStream; begin MemoHeaders.Clear; MemoData.Clear;
req := CoXMLHTTP.Create; req.open('POST', EdtURL.Text, False, EmptyParam, EmptyParam);
req.setRequestHeader('LimsU', 'Test V1.0'); req.setRequestHeader('name', 'user'); req.setRequestHeader('nummer', 'usernummer'); req.setRequestHeader('password', 'password');
req.send(EmptyParam); MemoHeaders.Lines.Text := req.getAllResponseHeaders; MemoData.Lines.Text := req.responseText;
Caption.lines.Text := req.statusText; |
mein Problem ist einfach, mir ist nicht klar, wie ich die Parameter übergeben soll. Und vor allem, werden die ja noch mal gekapselt
also immer
<bean:criteriaElement>
dann die Parameter für eine Anfrage oder auch ein Datensatz der übermittelt werden soll und am ende kommt dann immer:
</bean:criteriaElement>
und das ganze wird dann ja noch mal gekapselt durch <lab:criterias> und </lab:criterias>.
Wäre echt dankbar für jede Hilfe, sehe einfach den Wald nicht mehr vor lauter Bäumen
Chaosworld
Moderiert von
Narses: Code- durch Delphi-Tags ersetzt