Boro Geschrieben 9. November 2005 Geschrieben 9. November 2005 Hallo, Achtung, viel Text, aber trotzdem interessant. Außerdem brauche ich wirklich Hilfe. Ich stehe momentan vor der für mich schwierigen Aufgabe das ich eine Webseite um eine eigene Funktion erweitern möchte. Ich habe hier nach verschiedenen Möglichkeiten gesucht und bin auf ein OCX-Steuerelemt als mögliche Lösung gekommen, wobei das nicht die beste Möglichkeit sein muss, Kritik ist willkommen. Vorab der technische Hintergrund: Ich möchte eine Schnittstelle für eine CRM Software und eine CTI-Software erstellen, die CTI-Software ist webbasierend , hat aber clientseitig einen eigenen Agent der auf eingehende Anrufe am Server horcht und die ggf. rüberholt. Dabei zeigt er z.B. den Anruf mit Telefonnumer in einem Textfeld in einer Webseite des IE an. Die CRM Software selber ist als normale Applikation auf dem Windowsclient installiert und deren API kann ich bereits gut ansprechen. Die Anforderung ist nun das bei einen eingehenden Anruf nicht nur der Anruf auf der Webseite angezeigt wird, sondern automatisch auch der entsprechende Kontakt in der CRM-Software gefunden wird. Den Algorthymus dafür habe ich bereits fertig, es ist eine (zum testen) EXE-Datei, die als Parameter die Telefonnummer nimmt und den Kontakt aufruft. Jetzt das Problem: Der Agent erzeugt auf dieser Webseite verschiedene Events, die dann wiederrum Methoden von einen eigenen OCX-Steuerelement der CTI-Software abarbeitet. (Die CTI-Software macht noch vieles mehr, daher verschiedene Events). Meine Idee war daher mich einfach an diese Events mit noch einem OCX für die Steuerung der CRM-Software dran zuhängen. Die Events werden scheinbar mit Javascript abgefangen. Hier ist ein kleiner Ausschnitt des HTML-Codes: <object id=showcaller style="LEFT: 0px; VISIBILITY: hidden; TOP: 0px classid=" id="Showcaller" width="81" height="24" align="center" clsid:3C4AB2D0-49D7-4B0E-B717-620995FFA57D"> <param name="_ExtentX" value="2143"> <param name="_ExtentY" value="635"> </object> <OBJECT id=WRAPPER style="LEFT: 0px; VISIBILITY: hidden; TOP: 0px" classid=clsid:0ADF4C8D-1A7E-4D04-BDD1-34A242E49B46 VIEWASTEXT width="201" height="40"> <param name="_ExtentX" value="5318"> <param name="_ExtentY" value="1058"></OBJECT> <script> var arrCallcenter; var arrTZ; var arrYear; var ValueToPopup; var callcenterFlag=true; // stas: var IsFlashingScreen=true; var IsFlashingScreen=true; var IsConnected=false; alert("Hallo") showcaller.sagHallo() function OnConsultCall(val) { WRAPPER.Consult(val); } </script> <SCRIPT FOR="WRAPPER" EVENT="OnDelivered(a,b,c,d,e,f,g,h)"> /* a = ConnID b = OriginalConnID c = CallType d = CalledNumber e = CallingNumber f = CampaignNumber g = AcdNumber h = UserData */ callcenterFlag=true; XpressoTest(h); /*arrTZ = arrCallcenter[1].split("="); arrYear = arrCallcenter[2].split("="); GX_form.TZ_callcenter.value=arrTZ[arrTZ.length-1];// <- if -= user=id=1234; =- GX_form.YYYY_callcenter.value=arrYear[1]; GX_form.PHONE_callcenter.value=e; //GX_form.METAPEL_callcenter.value=arrCallcenter[3]; */ DebugPrint("OnDelivered, UserData :" + h); </SCRIPT> In den ersten beiden Absätzen seht ihr die beiden eingebetten OCX-Objekte. "WRAPPER" ist von der CTIsoftware, "showcaller" ist von mir. Meine Komponente habe ich mit Hilfe des Regsvr32.exe im System bekannt gemacht und die ClassId ist auch dafür vergeben. Nach dem Deklarationbereich der Variablen seht ihr einmal den JS-Befehl "Alert" (zur Kontrolle ob das auch angesprungen wird) und außerdem mein verzweifelter Versuch eine Methode meines OCX-Steuerelements aufzurufen. Die Zeile -->showcaller.sagHallo() Die Function "sagHallo" habe ich in einem Basis-Modul in dem OCX-Projekt hinterlegt und sollte zumindest theroretisch einfach "Hallo" sagen. ABER: Ich bekomme ständig diese Fehlermeldung: "Das Objekt unterstützt diese Eigenschaft oder Methode nicht" Kann mir jemand helfen ? Hat eventuell jemand eine Beispiel OCX bzw. deren Code damit ich mal testen kann ? Danke & Gruss Jens Zitieren
Boro Geschrieben 11. November 2005 Autor Geschrieben 11. November 2005 Ok, hier ist die Lösung, der (mein) Fehler war das ich die Methode "SagHallo" einfach als Public deklariert habe und davon ausgegangen bin das die dann ganz normal aus dem OCX-Steuerelement aufrufen kann. Tatsächlich muss man in VB 6.0 im Menü unter Add-ins gehen und dort mit dem ActiveX-Steuerelement-Assistenten die Schnittstellen genau deklarieren. (indem man im dritten Dialog "eigene" anlegt). Macht auch Sinn, hat nur gedauert bis mir ein Licht aufging. Wenn ich Methoden oder Eigenschaften direkt aus dem Steuerelement ansprechen könnte wäre jede Sicherheitseinstellung oder sogar die Ablaufsteuerung selbst sinnlos. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.