Datei HTML Code austauschen

  • Folgendes Problem bei Anmelden wird jedesmal eine neue ID vergeben leider kann ich kein PHP oder so im HTML Text benutzten. Deshalb muß ich den Start überwachen und dann aus der SQL Datenbank den Wert in einen Link schreiben.

    http://server/klaus/ie50/CRM…px?ClientID=xxx

    (Wert xxx ist z.B.: 'wfb52c8df2-6082-48aa-8839-13df380a4dc3') (wfb ist immer gleich auch die Länge)

    Raus lesen aus Datenbank mit warten geht.

    1. Problem ich bekomme zwar den Wert aus der Datenbank in die Datei aber nicht noch die Information des Link es.

    2. Problem ich muß den Link austauschen also nicht anhängen sondern ändern.

    3. Problem mein Programm muß mit dem Rechner starten und erst beim runterfahren sich schließen. (sprich Schleife)
    4.Problem nicht ganz so wichtig Programm sollte im Hintergrund ablaufen ohne das man es sieht (nur Taskmanger)

    [autoit]


    #include "mssql.au3"

    [/autoit][autoit][/autoit][autoit]

    WinWaitActive("Anmeldung")
    WinWaitClose("Anmeldung")

    [/autoit][autoit][/autoit][autoit]

    Sleep(15000)

    [/autoit][autoit][/autoit][autoit]

    $sql = _SQLCon("192.168.1.200", "sa", "master", "wfGlobal")
    $var = _SQLQuery($sql, "Select * From dbo.tsClients WHERE UserInitials='ST001'")

    [/autoit][autoit][/autoit][autoit]

    With $var
    While Not .EOF
    FileWriteLine("c:\test.txt",.Fields("ClientID").value & @CRLF)
    MsgBox(0, 'Output', .Fields("ClientID").value)
    .MoveNext
    WEnd
    EndWith
    _SQLEnd($sql)

    [/autoit]

    Herzlichen Dank schon einmal vorne weg.

    Gruß Steffen

    P.S.: die Datei mit dem html Code kann ich auch zurverfügung stellen.

    Einmal editiert, zuletzt von SCCSSF (27. Oktober 2008 um 21:43)

    • Offizieller Beitrag

    Hi!

    Zum Ersetzen: StringReplace
    Zum Starten: Forumssuche, Registry-Schlüssel in CurrentVersion\Run
    Zum Beenden bei Runterfahren:

    [autoit]

    Func OnAutoItExit()
    ; was auch immer, SQL schließen
    EndFunc

    [/autoit]


    Zu Hintergrund: Das, was hier steht, ist silent, oder? Bis auf die Test-MsgBox...

    peethebee

  • Herzlich Dank schonmal für die schnelle Info :thumbup:

    1/2/3 werde ich ausprobieren

    Ja silent ist es msg Box ist nur zur Kontrolle. (Ging mir hier ob ich es auch aus der Taskleiste rausnehmen kann)

  • Genau das habe ich gemeint ! (1 Problem weniger)

    Kein TrayIcon:
    #NoTrayIcon

    Problem was ich noch nicht gelöst habe und auch nicht so ganz verstehe.
    Wenn es das erstmal durch gelaufen ist endet das Programm, soll es aber nicht

    Func OnAutoItExit()
    ; was auch immer, SQL schließen
    EndFunc

    geht nicht da ein syntax Error in der mssql.au3 erzeugt wird.

    mit StringReplace habe ich auch so meine Probleme in der Datenbank steht ebend nicht der komplette Link und auch nicht welche ID der User vorher hatte. (entweder tauche ich den Link komplett aus oder ersetzte die ID! Nur wie kome ich nicht genau dahinter.

  • Habe mal die HTML Datei hier reingeschrieben liegt unter C:\programme\call\blubble.htm

    Man meldent sich an das CRM Programm an und bekommt eine neue ID (deshalb die SQL Abfrage)
    es wird dann eine INFO Blase bei neuem Anruf geöffnet mit einem Statischem Link und man hat sofort den passen Kunden auf.

    [autoit]

    <html>
    <head>
    <!--
    <WindowWidth>250</WindowWidth>
    <WindowHeight>160</WindowHeight>
    <Scrollbar>1</Scrollbar>
    -->
    <style TYPE="text/css">
    <!--
    td { font-size: 8pt; font-family: verdana, arial, helvetica, sans-serif; }
    body { font-size: 8pt; font-family: verdana, arial, helvetica, sans-serif; margin-top:0; margin-left:0; margin-bottom:0; margin-right:0; background-color:COLORREFBACK; }
    -->

    [/autoit][autoit][/autoit][autoit]

    </head>

    [/autoit][autoit][/autoit][autoit]

    <body>

    [/autoit][autoit][/autoit][autoit]

    <table>

    [/autoit][autoit][/autoit][autoit]

    <tr>
    <FirstName> <LastName>
    </tr>
    <tr>
    <td>AD-ID:</td><td><Custom0></td>
    </tr>
    <tr>
    <td>Zahlung:</td><td><Custom1></td>
    </tr>
    <tr>
    <td>Tour:</td><td><strong><Custom2></strong></td>
    </tr>
    <tr>
    <td><LBLCOMPANY>:</td><td><Company> <Department> <JobTitle></td>
    </tr>
    <tr>
    <td><LBLADDRESS>:</td><td><AddressStreet> <AddressPostalCode>&nbsp;<AddressCity> <AddressCountry></td>
    </tr>
    <tr>
    <td><a href="http://server/meier/ie50/CRM/crmmain/crmmain.aspx?Type=Address&RecordID=<Custom7>&ClientID=wff8864863-30c3-4a46-a101-cf708f5a7adb">CRM</a></td>
    <td><a href="http://server/meier/ie50/Sales/SalesOrders/SalesOrdersMain.aspx?ClientID=wff8864863-30c3-4a46-a101-cf708f5a7adbOrderType=4&AddressID=<Custom7>&ProjectID=0">Angebot</a></td>
    <td><a href="http://server/meier/ie50/Sales/SalesOrders/SalesOrdersMain.aspx?ClientID=wff8864863-30c3-4a46-a101-cf708f5a7adb&OrderType=2&AddressID=<Custom7>&ProjectID=0">Auftrag</a></td>
    </tr>
    </table>
    </body>
    </html>

    [/autoit][autoit][/autoit][autoit][/autoit]

    4 Mal editiert, zuletzt von SCCSSF (28. Oktober 2008 um 09:25)

  • Leider komme ich immer noch nicht mit meinem Project weiter. Der austausch und das das Programm in einer Schleife laufen soll. Falls mir jemand noch einen Denk anstoß geben könnte?

    • Offizieller Beitrag

    Hi!

    Ich habe nur grob gelesen, meinst du hier die Client-ID tauschen?

    Code
    http://server/meier/ie50/CRM/crmmain/crmmain.aspx?Type=Address&RecordID=<Custom7>&ClientID=wff8864863-30c3-4a46-a101-cf708f5a7adb


    Dann wäre es ja einfach dies hier:

    [autoit]

    $text = StringReplace("http://server/meier/ie50/CRM/crmmain/crmmain.aspx?Type=Address&RecordID=<Custom7>&ClientID=wff8864863-30c3-4a46-a101-cf708f5a7adb", "wff8864863-30c3-4a46-a101-cf708f5a7adb", "neueIDhier")

    [/autoit]

    peethebee

  • Aktuelle Version noch immer ohne Daten Austausch

    Spoiler anzeigen
    [autoit]


    #include "mssql.au3"

    [/autoit] [autoit][/autoit] [autoit]

    ; kein Icon in der Taskleiste
    ; #NoTrayIcon

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    ; Estos Datein werden überprüft
    If FileExists("C:\programme\estos\bubble.htm") Then

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(4096,"Fehler 1", "ESTOS nicht installiert!")
    Exit
    EndIf
    If FileExists("C:\programme\estos\contact.htm") Then

    [/autoit] [autoit][/autoit] [autoit]

    Else
    MsgBox(4096,"Fehler 2", "ESTOS nicht installiert!")
    Exit
    EndIf
    Do

    [/autoit] [autoit][/autoit] [autoit]

    ; Anmeldung myfactory
    WinWaitActive("Anmeldung")
    WinWaitClose("Anmeldung")

    [/autoit] [autoit][/autoit] [autoit]

    Sleep(3000)
    ; Ini Datei Prüfen ob da ist
    If FileExists("C:\programme\estos\userid.ini") Then

    [/autoit] [autoit][/autoit] [autoit]

    Else
    $userIn = InputBox("UserID", "Bitte geben Sie Ihre 6stellige USERID von My-Factory ein! (z.B.: AB0001)", "", " M6")
    if @error then
    MsgBox(4096,"Fehler 3", "Abbruch")
    Exit
    Endif
    EndIf

    [/autoit] [autoit][/autoit] [autoit]

    $userIn = IniRead("C:\programme\estos\userid.ini", "UserID", "user", "test")

    [/autoit] [autoit][/autoit] [autoit]

    MsgBox(4096, "test",$userIn)

    [/autoit] [autoit][/autoit] [autoit]

    $sql = _SQLCon("192.168.1.200", "sa", "master", "wfGlobal")
    ; geht so nicht auch noch ein Problem !!!
    $var = _SQLQuery($sql, "Select * From dbo.tsClients WHERE UserInitials= & $userIn")

    [/autoit] [autoit][/autoit] [autoit]

    With $var
    While Not .EOF
    FileDelete ("c:\programme\estos\test.txt")
    FileWriteLine("c:\programme\estos\test.txt",.Fields("ClientID").value & @CRLF)
    MsgBox(0, 'Output', .Fields("ClientID").value)
    .MoveNext
    WEnd
    EndWith
    _SQLEnd($sql)
    Until $var =10

    [/autoit]


    Ok das Problem ist nur das ich den alten Wert dann auch erst auslesen müßte, denn den habe ich nirgens sonst ab "WF" das muß auch immer wieder ausgetauscht werden und das ist eigentlich der ganze Sinn des Programmes !

    Ich hoffe ich drücke mich richtig aus wenn nicht versuche ich es gerne noch mal mit anderen Worten.

    2 Mal editiert, zuletzt von SCCSSF (2. November 2008 um 18:46)

  • Habe ein CTI Monitor der HTML Code kann (Bubble.htm)

    eine SQL-Datenbank
    einen LDAP Server <customer1> (das geht alles)
    habe dann noch eine Webbassierte Warenwirtschaft die auf die SQL Datenbank zugreift.
    dort wird beim Anmelden eine USER-ID erzeugt und in der Datenbank abgelegt.

    Das Anmelden überwache ich und will die USER ID haben damit ich in der Bubble.htm / Contact.htm dann einen Statischen Link auf rufen kann das Problem ist nur die User ID die ändert sich bei jeder Anmeldung.

    Also muß ich die Anmeldung abwarten die Daten aus der Datenbank auslesen und in den "statischen" Link rein packen. Feritg Ruft nun ein Kunde an kann man sofort die Kundendatenbank öffnen oder auch Auftrag/Angebot.

    Man kann den User in einer INI-Datei fest einstellen oder erwerd einfach beim Anmelden nochmals Manuell für die Session abgefragt.

    Erweiterungen habe ich dann auch noch in Plannung wenn es mal geht.

    Ich hoffe du verstehst mich! (mit PHP kann ich nicht arbeiten weil es alles lokal ausgeführt wird. Mit Javaskript kann ich nicht arbeiten weil man damit keine Datenbank abfragen kann. klar könnte ich Autoit und Javaskript kombinieren aber ich dachte mir alles mit einem ist übersichtlicher. man startet die exe direkt mit dem PC und beendet sie auch erst wenn der PC runterfährt, weil man kann sich ja öfters Anmelden.