![]() |
AW: Webservice
Zitat:
ja genau diese Parameter muss ich ausfüllen, das ist ja meine Problem seit 2 Wochen, diese Parameter zu übergeben. |
AW: Webservice
Zitat:
Ja das mit den Eigenschaften wusste ich ja auch, das ist genau das Gleiche, wenn ich einen Punkt hinter das Objekt mache, dann macht er automatisch die das Fenster mit der Scroll-Bar auf. Wie gesagt genau diese Eigenschaften sind aber nicht dabei, da meckert der Compiler. |
AW: Webservice
Zitat:
Ohne genaue Fehler- und Problembeschreibung werden wir dir hier nicht helfen können. Man kann die Fehlermeldungen vom Compiler im kopieren und hier einfügen. Wenn du bspw. das oben gezeigte Konsolenprogramm nicht ausprobierst, dann können wir dir hier nicht weiterhelfen. Weil das nämlich so wie es da steht, und man die Pascal-Unit mit der Dateiendung: *.pas dem Projekt hinzufügt, definitiv kompiliert. Die Eigenschaften der Request- und Response-Klasse sind in der Unit "Lot_1.pas" vorhanden. |
AW: Webservice
Hallo TiGü,
ja okay also nachfolgend der Code. Ich habe es jetzt soweit hinbekommen, dass keine Fehlermeldung mehr beim Ausführen erscheint. Jetzt fehlt mir nur noch dass die Response in einem Memo Fenster erscheint. Der ganze Schmarrn soll einfach nur in dem Fenster erscheinen wie mache ich das am besten?! Die Eingabe Parameter akzeptiert der Server so anscheinend. Warum hattest du mir das mit diesem SOAP Response und Request vorher aus kommentiert, da sieht man doch immer ganz schön die Anfrage des Clients in einem Memo? Hatte das einen bestimmten Grund?
Delphi-Quellcode:
unit Main;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Soap.InvokeRegistry, Vcl.StdCtrls, Lot_1, Soap.Rio, Soap.SOAPHTTPClient; type TForm1 = class(TForm) Button1: TButton; Request: TMemo; Respo: TMemo; Result: TMemo; HTTPRIO1: THTTPRIO; Label1: TLabel; Label2: TLabel; Label3: TLabel; (* procedure HTTPRIO1AfterExecute(const MethodName: string; SOAPResponse: TStream); procedure HTTPRIO1BeforeExecute(const MethodName: string; SOAPRequest: TStream); *) procedure Button1Click(Sender: TObject); private FLot: ILot; { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; sResult:string; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); // HTTPRIO1.URL:='http://tst-rbg14:8019/Lot.svc'; // URL := 'http://tst-rbg14:8019/Lot.svc'; // EquipmentValidation:=True; // (HTTPRIO1 as ILot).GetLotInfoByLotName(LotName); //if not Assigned(Response) then var LoT: ILot; Request: GetLotInfoByLotNameRequest2; Response: GetLotInfoByLotNameResponse2; begin LoT := GetILot(); if Assigned(LoT) then begin HTTPRIO1.URL:='http://tst-rbg14:8019/Lot.svc'; Request := GetLotInfoByLotNameRequest2.Create; try Request.CheckSlotPos := False; Request.EquipmentValidation := False; Request.LotName := 'R173419P'; Request.ReturnBrokenWafers := True; Request.UseSlotPosition := False; Request.ToolCode := '1ELAM3'; Response := LoT.GetLotInfoByLotName(Request); if Assigned(Response) then begin // Writeln(Response.Facility); // Writeln(Response.LotName); // Writeln(Response.Operation); // usw. // //Response.Free; end; finally Request.Free; end; end; end; end. (* procedure TForm1.HTTPRIO1AfterExecute(const MethodName: string; SOAPResponse: TStream); begin SoapResponse.Position:= 0; Respo.Lines.LoadFromStream(SoapResponse); end; procedure TForm1.HTTPRIO1BeforeExecute(const MethodName: string; SOAPRequest: TStream); begin SoapRequest.Position:= 0; Request.Lines.LoadFromStream(SoapRequest); end; *) |
AW: Webservice
Zitat:
Delphi-Quellcode:
Prinzip verstanden?
Respo.Lines.Add('Facility: ' + Response.Facility);
Respo.Lines.Add('LotName: ' + Response.LotName); Respo.Lines.Add('LotName: ' + Response.LotName); Respo.Lines.Add('NumberOfWafers: ' + Response.NumberOfWafers.DecimalString); Respo.Lines.Add('IsEDCRequired ' + BoolToStr(Response.IsEDCRequired, True)); Bei den komplexeren Datentypen wie die Eigenschaften ActualCSA, EdcEpaEquipmentList und LotAttributes wird es natürlich schwierig mit deinem Vorwissen. Zitat:
|
AW: Webservice
Zitat:
Das wäre jetzt erstmal nicht so wild, das würde ich dann vielleicht auch noch hinbekommen, habe noch ein paar Monate Zeit, die Anbindung in die vorhandene GUI einzubinden. Das WICHTIGSTE ist jetzt erstmal mit einer bestimmten Anfrage überhaupt eine Antwort vom Sever zu bekommen, da die ganze Geschichte noch über einen VPN läuft der auch bestimmte Zertifikate benötigt. Aber diese Verbindung habe ich ja schon über meinen Browser aufgebaut. |
AW: Webservice
Zitat:
Insofern du eine TMemo-Klasse mit den Namen Respo auf dem Formular hast, kompiliert die Zeile
Delphi-Quellcode:
ohne Probleme.
Respo.Lines.Add('NumberOfWafers: ' + Response.NumberOfWafers.DecimalString);
DecimalString ist schon vom geforderten Typ
Delphi-Quellcode:
.
string
|
AW: Webservice
Sollte TXSDecimal.DecimalString nicht in D2010 vorhanden sein - das kann ja gut sein - dann bitte einfach schreiben:
Delphi-Quellcode:
Respo.Lines.Add('NumberOfWafers: ' + string(Response.NumberOfWafers.AsBcd));
|
AW: Webservice
Zitat:
Jetzt ist es Zeit für die Belohnung.... |
AW: Webservice
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 20:47 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz