Ips_variablemessage

Kann es sein, dass ich keine Messages aus der IPS_VARIABLEMESSAGE Gruppe provozieren kann? Ich verstehe

VM_UPDATE //On Variable Update

so, dass diese Message bei Variablenänderung gefeuert wird. Empfangen kann ich aber nur

KL_MESSAGE //Normal Message
VariableManager, [Testerierung\Booltest] = False, 40444, 4009098611, NULL

Soll das so? Hab ich da ein Verständnis-Problem oder ist das ein Bug? Kann ich das als gegeben hinnehmen oder warte ich nen fix ab?

Gruß,

Toni

Hast du dir die SOAP Demo angesehen? Dort kommen alles Messages an :wink:

paresy

Klar hab ich… Aber „alle“ ist wohl relativ, oder? Ist immer die Gleiche. Daher meine Frage. Soll das so? Was muss ich für eine IPS_VARIABLEMESSAGE tun?

Gruß,

Toni
(Zurück von der IAA)

Aufzeichnen.PNG

Hast du die Hinweise hier gelesen: SDK/Tools: IP-Symcon :: Automatisierungssoftware

Die 2 QC Reports musst du manuell einbasteln… der SOAP Kollege bei Delphi ist ziemlich buggy :slight_smile:

paresy

PS: Teste es mal direkt mit der SoapDemo.exe aus der ZIP

Okay, den 2. Tip konnte ich nachvollziehen. Bringt aber nix. Der Erste ist mir vollkommen rätselhaft. Es gibt zwar die beschriebene Funktion aber den Punkt wo ich den Code erweitern/ersetzen soll kann ich nicht lokalisieren. Allerdings verwende ich ein Indy-Tiburon-gepimptes Turbodelphi (D2006). Ein Original Delphi-Tiburon hätt ich auch, aber mein letzter Stand ist, dass ich das nicht verwenden sollte wegen Unicode… :confused:

Bin nen Schritt weiter. sagt dir „Unknown Type: 8204“ etwas? Das ist die Value eines Boolean, der über SOAP übertragen wurde.

Die TTypeTranslator.CastSoapToVariant Änderung hab ich eingebaut. Den Float-Fix auch. Aber den Part in ConvertSoapToVariant kann ich nach wie vor nicht nachvollziehen.

Toni

ConvertSoapToVariant ist falsch ;). Mein Fehler. Es sind 2 Änderungen in CastSoapToVariant Funktionen. Es gibt die eine die ich im Comment beschreibe und noch eine die die folgende Signatur hat:


function TTypeTranslator.CastSoapToVariant(SoapInfo: PTypeInfo; const SoapData: WideString): Variant;

Vergiss nicht die Pfade in deinen Suchpfad einzubauen. Wenn du es im Debugger startest, muss er dort am Breakpoint anhalten können.

paresy

Alles klar. Hab ich intuitiv beide schon durchgewühlt. Hatte mir schon sowas gedacht als ich herausgefunden hab, dass der Code unter Tiburon dem unter TurboDelphi gleicht. Wär schon seltsam, wenn du unter D2k7 (verwendest du doch, oder?) was völlig anderes hast.

Mein Ist-Zustand schaut folgendermaßen aus:
Ich hab mir selbst ein „IPS-SOAP-Essentials-SDK“ aus dem Offiziellen gebaut. Dies hab ich umgebaut auf D2k9. Damit bekomme ich auch VM_UPDATE Messages. Nur bei Booleans bekomm ich die Values nicht. Bekomm ich aber auch bei der SOAPDemo EXE aus dem SDK download nicht. Darum hab ich auch unter D2k9 deine Änderungen aus dem QC vorgenommen und natürlich auch DCUs draus erzeugt und eingebunden. Ohne Grundlegende Verbesserung.

Ich lass es an dieser Stelle nun darauf beruhen und schreib das als „known-Bug“ in die TRIXI-Doku, wofür ich den MessageReader verwenden wollte.

Gruß,

Toni

Einfacher als gedacht, aber ist das nicht eigendlich immer so? :rolleyes:

unit UIPSMessageReader


function ToString(Value: Variant): String;
begin
  case TVarData(Value).VType of
    varByte,
    varWord,
    varShortInt,
    varSmallInt,
    varLongWord,
    varInt64,
    varInteger   : Result := IntToStr(Value);
    varSingle,
    varDouble,
    varCurrency  : Result := FloatToStr(Value);
    varDate      : Result := DateTimeToStr(Value);
    varBoolean   : BoolToStr(Value, True);
    varString,
    varOleStr    : Result := Value;
    varNull      : Result := 'NULL';
    else
     Result := 'Unknown Type: '+IntToStr(Ord(TVarData(Value).VType));
  end;
end;

sollte so aussehen:

varBoolean   : Result := BoolToStr(Value, True);

Gruß,

Toni

Hab ich fürs nächste SDK Release behoben. Danke.

paresy

Ein SDK für D2009? Da warte ich schon lange drauf. Momentan ist mein Turbodelphi nur noch lauffähig, weil ich es in eine W2k-VM eingesperrt habe. Aber auch dort bleibt immer noch das Problem, das mein keine Komponenten nachinstallieren darf (und kann).

Tommi

Ganz so weit bin ich noch nicht. aber TRIXI wird zukünftig unter D2k9 entwickelt. Wenn du SOAP-Applikationen schreiben willst lass ichs dir gern zukommen. Schließlich rudern wir alle das selbe Boot ;). Beim Rest des SDK muss ich noch schauen ob sich das auch umbauen lässt.

Toni

Ich habe die Hoffnung immer noch nicht aufgegeben, das Michael seine Entwicklungsumgebung umstellt und uns dann auch mit einem Unicode-kompatiblen SDK versorgt.

Dieses Jahr ist die letzte Upgrademöglichkeit für D2006, nächstes Jahr dann wahrscheinlich für D2007. Wenn das kein Anlass ist … :wink:

Tommi