Problem mit Anbindung factura und PostgreSQL

Wir haben leider ein Problem mit der Anbindung.

Wir verwenden PostgreSQL 8.3 auf einem Windows 2003 SBS.

Beim drücken einer Schaltfläche (Angebot, Rechnung, usw.) wird der Vorgang
im factura ordnungsgemäß erstellt, nur leider funktioniert das Autoscript
nicht! Er meldet „Es konnte keine Kundenverknüpfung ermittelt werden.“

Es handelt sich um die Fehlermeldung in der 212 Zeile.

Ich habe auch schon versucht das Problem selbst zu beheben. Er scheint ein
Problem mit dem Setzen des Filters zu haben.

Ab der Zeile 204


If bFilter Then

Set oRec = ocRMViewRecordSet.CurrentRecord

Else

MsgBox CStr(„Es konnte keine Kundenverknüpfung ermittelt werden.“),
vbInformation, CStr(„combit factura manager“) WScript.Quit

End If


bFilter ist also nicht TRUE. An was kann das liegen? Ich habe geprüft ob die
ID des Kunden auch in das factura übergeben wird. Sie steht im Feld „KUND“.

Auch der Maskenname wird ins Feld „KUNDENDBF“ übergeben.

Das einzige was ich am Script verändert habe, ist dass ich nicht über die
Personen den Vorgang erstelle, sondern über Firmen. Das dürfte aber kein
Problem geben, da ich die Relationen im CRM richtig gesetzt habe!

Bitte also um Hilfe!

Vielen Dank!

David Farkas

Hi David,

Beim drücken einer Schaltfläche (Angebot, Rechnung, usw.) wird der Vorgang
im factura ordnungsgemäß erstellt, nur leider funktioniert das Autoscript
nicht! Er meldet „Es konnte keine Kundenverknüpfung ermittelt werden.“

Es handelt sich um die Fehlermeldung in der 212 Zeile.

d.h. es ist def. nicht die aus Zeile 125?

bFilter ist also nicht TRUE. An was kann das liegen? Ich habe geprüft ob die
ID des Kunden auch in das factura übergeben wird. Sie steht im Feld „KUND“.

ich geh mal von einem Tippfehler aus, du meinst „KUNDE“, oder?

Wie lautet der Primärschlüssel-Feldname in der Ansicht „Firmen“? Wenn er
nicht „RecordID“ lautet, musst du Zeile 34 anpassen.

Notier die mal die ID und gehe in die Ansicht Firmen, wähle „Filter >
Allgemein“, selektiere dort das Feld „RecordID“ wähle als Operator „=“
und tippe (besser Einfügen aus Zwischenablage) die ID ein. Findet der
cRM denn dann genau diesen Kunden? Wenn nein, ist das Problem, dass die
ID „falsch“ ist, und der Fehler liegt irgendwo in der Kopplung und gar
nicht im Autoprotokoll-Script, dort kommt das Problem nur zu Tage.

Gruß

Alex.


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Hallo Alex,

vielen Dank für die schnelle Antwort!
„Alexander Scholz“ <alexander.scholz@xmai…> schrieb im Newsbeitrag
news:552073200812591@combit.net…

Hi David,

Beim drücken einer Schaltfläche (Angebot, Rechnung, usw.) wird der
Vorgang
im factura ordnungsgemäß erstellt, nur leider funktioniert das Autoscript
nicht! Er meldet „Es konnte keine Kundenverknüpfung ermittelt werden.“

Es handelt sich um die Fehlermeldung in der 212 Zeile.

d.h. es ist def. nicht die aus Zeile 125?
Nein, da ich das prüfe, in dem ich einfach in den Ausgabetext (also msgbox
„1…“) eine 1 für die Zeile 125 und eine 2 für die Zeile 212 eingebe!

bFilter ist also nicht TRUE. An was kann das liegen? Ich habe geprüft ob
die
ID des Kunden auch in das factura übergeben wird. Sie steht im Feld
„KUND“.

ich geh mal von einem Tippfehler aus, du meinst „KUNDE“, oder?
Ja, stimmt, sorry!

Wie lautet der Primärschlüssel-Feldname in der Ansicht „Firmen“? Wenn er
nicht „RecordID“ lautet, musst du Zeile 34 anpassen.
Es ist RecordID! Genau die gleiche Schreibweise.

Notier die mal die ID und gehe in die Ansicht Firmen, wähle „Filter >
Allgemein“, selektiere dort das Feld „RecordID“ wähle als Operator „=“ und
tippe (besser Einfügen aus Zwischenablage) die ID ein. Findet der cRM denn
dann genau diesen Kunden? Wenn nein, ist das Problem, dass die ID „falsch“
ist, und der Fehler liegt irgendwo in der Kopplung und gar nicht im
Autoprotokoll-Script, dort kommt das Problem nur zu Tage.

Funktioniert! Er findet den Datensatz ohne Probleme.

Hast du noch eine Idee?

Danke

David

Gruß

Alex.


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Also mit Funktioniert meinte ich, dass der Filter funktioniert. Die
Anbindung geht nach wie vor nicht :frowning:
Das gleiche Problem immernoch!

Hast du noch eine Idee?

„David Farkas“ <dfarkas@andreedent…> schrieb im Newsbeitrag
news:2750573200814298@combit.net…

Hallo Alex,

vielen Dank für die schnelle Antwort!
„Alexander Scholz“ <alexander.scholz@xmai…> schrieb im Newsbeitrag
news:552073200812591@combit.net…

Hi David,

Beim drücken einer Schaltfläche (Angebot, Rechnung, usw.) wird der
Vorgang
im factura ordnungsgemäß erstellt, nur leider funktioniert das
Autoscript
nicht! Er meldet „Es konnte keine Kundenverknüpfung ermittelt werden.“

Es handelt sich um die Fehlermeldung in der 212 Zeile.

d.h. es ist def. nicht die aus Zeile 125?
Nein, da ich das prüfe, in dem ich einfach in den Ausgabetext (also msgbox
„1…“) eine 1 für die Zeile 125 und eine 2 für die Zeile 212 eingebe!

bFilter ist also nicht TRUE. An was kann das liegen? Ich habe geprüft ob
die
ID des Kunden auch in das factura übergeben wird. Sie steht im Feld
„KUND“.

ich geh mal von einem Tippfehler aus, du meinst „KUNDE“, oder?
Ja, stimmt, sorry!

Wie lautet der Primärschlüssel-Feldname in der Ansicht „Firmen“? Wenn er
nicht „RecordID“ lautet, musst du Zeile 34 anpassen.
Es ist RecordID! Genau die gleiche Schreibweise.

Notier die mal die ID und gehe in die Ansicht Firmen, wähle „Filter >
Allgemein“, selektiere dort das Feld „RecordID“ wähle als Operator „=“
und tippe (besser Einfügen aus Zwischenablage) die ID ein. Findet der cRM
denn dann genau diesen Kunden? Wenn nein, ist das Problem, dass die ID
„falsch“ ist, und der Fehler liegt irgendwo in der Kopplung und gar nicht
im Autoprotokoll-Script, dort kommt das Problem nur zu Tage.

Funktioniert! Er findet den Datensatz ohne Probleme.

Hast du noch eine Idee?

Danke

David

Gruß

Alex.


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Hi David,

das ist ja seltsam.

Mit welchem Benutzer (Zeilen 27+28) geht das Script in den cRM? Hat
dieser Benutzer evtl. keine Rechte auf die Ansicht? Oder hat diesre
Benutzer irgendwelche Datensatz- oder Feldrechte eingestellt, die einen
Zugriff auf die zur Suche nötigen Felder oder auf den
„Treffer-Datensatz“ verhindern?

Gib mal per MsgBox in Zeile 203 (bevor SetFilter aufgerufen wird!) die
Variablen sFilter und scRMView aus, sowie ocRMViewRecordSet.RecCount.
Ich bin gespannt… :slight_smile:

Gruß

Alex.


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Hallo Alex,

erst einmal möchte ich mich bedanken dass du mir so ausführlich hilfst!

Also das mit dem Benutzer habe ich auch schon probiert. Ursprünglich habe
ich Administrator drin, dann habe ich es mit meinem Benutzer (auch
Adminrechte) versucht. Jetzt habe ich wieder Administrator eingestellt.

Hier die Ausgabe des Scripts:
sFilter: RecordID = ‚3602375F-DB00-404C-93F0-0E494540A3D6‘
scRMView: Firmen
ocRMViewRecordSet.RecCount: 46

NACH „bFilter = ocRMViewRecordSet.SetFilter(sFilter)“
ocRMViewRecordSet.RecCount: 46
Müsste da nicht 1 stehen? Ich dachte wenn er den Filter ausführt, dann ist
die Anzahl der Datensätze 1?
Danach kommt im Script:
If bFilter Then

Set oRec = ocRMViewRecordSet.CurrentRecord

Else

MsgBox CStr(„Es2 konnte keine Kundenverknüpfung ermittelt werden.“),
vbInformation, CStr(„combit factura manager“)
WScript.Quit

End If

Der 2er bei „Es konnte keine…“ wurde von mir eingefügt um die Meldung zu
identifizieren.

Ich habe auch schon mit Zeile 26 scRMProject herumexperimentiert. Habe es
mal leer gelassen, dann den Namen des Projekts aus dem cRM eingetragen, dann
den Namen der Datenbank. Es muss dort der Name aus
cRM-Konfiguration-Projekt-Eigenschaften stehen, oder?
Außerdem habe ich geprüft ob unter Belegverwaltung-Adress Kopplung im
factura das richtige Projekt steht und die richtigen Felder verknüpft sind.
Was mich noch wundert: Wenn ich den Dialog mit OK bestätige und dann später
wieder in Adress Kopplung gehe, steht bei dem DropDownFeld „Feldstruktur aus
Ansicht“: Belegtypen. Könnte das der Fehler sein?

„Alexander Scholz“ <alexander.scholz@xmai…> schrieb im Newsbeitrag
news:4485775200893526@combit.net…

Hi David,

das ist ja seltsam.

Mit welchem Benutzer (Zeilen 27+28) geht das Script in den cRM? Hat dieser
Benutzer evtl. keine Rechte auf die Ansicht? Oder hat diesre Benutzer
irgendwelche Datensatz- oder Feldrechte eingestellt, die einen Zugriff auf
die zur Suche nötigen Felder oder auf den „Treffer-Datensatz“ verhindern?

Gib mal per MsgBox in Zeile 203 (bevor SetFilter aufgerufen wird!) die
Variablen sFilter und scRMView aus, sowie ocRMViewRecordSet.RecCount. Ich
bin gespannt… :slight_smile:

Gruß

Alex.


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Hi David,

Hier die Ausgabe des Scripts:
sFilter: RecordID = ‚3602375F-DB00-404C-93F0-0E494540A3D6‘
scRMView: Firmen
ocRMViewRecordSet.RecCount: 46

Komisch, dass da „-“ in der ID mit drinnen sind. Der cRM erzeugt die
definitiv nicht mit „-“. Naja, egal.

Nur nochmal zur Sicherheit: Wenn du in Filter > Allgemein reingehst und
das Feld „RecordID“ anklickst und als Wert
„3602375F-DB00-404C-93F0-0E494540A3D6“ per Copy/Paste so einfügst, dann
findet er die betreffende Firma?!

Wenn ja:
Ersetze mal die Zeile 199 (du hast doch Postgres, richtig?) via
Copy/Paste durch:

sFilter = „“"" & CStr(ocRMViewConfig.DBTableName) & „“"."""&
CStr(sPrimaryKey) & „“" = ‚" & CStr(scRMRecNo) & "‘"

(hab es nicht auf Syntax gecheckt, sondern nur blind hier hingeschrieben)

Jetzt wird dem Feldnamen noch der Tabellenname als Prefix vorangestellt
und alles jeweils in doppelte Anführungszeichen eingeschlossen, d.h. die
Test-Ausgabe sollte nun
sFilter: „Firmen“.„RecordID“ = ‚3602375F-DB00-404C-93F0-0E494540A3D6‘
lauten. (Wenn nicht, dann „bastel“ es halt mal so hin)

Geht es jetzt? Wenn nein, dann klingt das für mich nach einem Fall für
den combit Support. :slight_smile:

NACH „bFilter = ocRMViewRecordSet.SetFilter(sFilter)“
ocRMViewRecordSet.RecCount: 46
Müsste da nicht 1 stehen? Ich dachte wenn er den Filter ausführt, dann ist
die Anzahl der Datensätze 1?

Weil der Filter ja nicht geklappt hat, haste (immer noch) alle
Datensätze als Treffer. Wenn der Filter klappt (s.o.), dann sollte
tatsächlich nur noch 1 ausgegeben werden.

Gruß

Alex


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Hallo Alex,

vielen Dank für die schnelle Antwort!

„Alexander Scholz“ <alexander.scholz@xmai…> schrieb im Newsbeitrag
news:38291772008125413@combit.net…

Hi David,

Hier die Ausgabe des Scripts:
sFilter: RecordID = ‚3602375F-DB00-404C-93F0-0E494540A3D6‘
scRMView: Firmen
ocRMViewRecordSet.RecCount: 46

Komisch, dass da „-“ in der ID mit drinnen sind. Der cRM erzeugt die
definitiv nicht mit „-“. Naja, egal.

Ich verwende die Testsolution! Ich habe soweit nichts erstellt. Es handelt
sich um „Smith Real Estate“ - „KundenNr:: 10075“

Nur nochmal zur Sicherheit: Wenn du in Filter > Allgemein reingehst und
das Feld „RecordID“ anklickst und als Wert
„3602375F-DB00-404C-93F0-0E494540A3D6“ per Copy/Paste so einfügst, dann
findet er die betreffende Firma?!

Ja :slight_smile:

Wenn ja:
Ersetze mal die Zeile 199 (du hast doch Postgres, richtig?) via Copy/Paste
durch:

sFilter = „“"" & CStr(ocRMViewConfig.DBTableName) & „“"."""&
CStr(sPrimaryKey) & „“" = ‚" & CStr(scRMRecNo) & "‘"

(hab es nicht auf Syntax gecheckt, sondern nur blind hier hingeschrieben)

Jetzt wird dem Feldnamen noch der Tabellenname als Prefix vorangestellt
und alles jeweils in doppelte Anführungszeichen eingeschlossen, d.h. die
Test-Ausgabe sollte nun
sFilter: „Firmen“.„RecordID“ = ‚3602375F-DB00-404C-93F0-0E494540A3D6‘
lauten. (Wenn nicht, dann „bastel“ es halt mal so hin)

ES FUNKTIONIERT!!! Super!!! So gehts! Er erzeugt einen neuen Datensatz in
FM_Verweise im cRM!!!

Beschreibung: Angebot (1) wurde am 07.07.2008 erstellt.
Link: fmw://mandantname/AN/1
LinkID: (lange ID ohne Bindestriche)
FirmenID: 3602375F-DB00-404C-93F0-0E494540A3D6

Vielen Vielen Dank!!!

Meinst du der Fehler lag bei den Bindestrichen? Oder hat er doch in der
falschen Tabelle gesucht?

David

Geht es jetzt? Wenn nein, dann klingt das für mich nach einem Fall für den
combit Support. :slight_smile:

NACH „bFilter = ocRMViewRecordSet.SetFilter(sFilter)“
ocRMViewRecordSet.RecCount: 46
Müsste da nicht 1 stehen? Ich dachte wenn er den Filter ausführt, dann
ist die Anzahl der Datensätze 1?

Weil der Filter ja nicht geklappt hat, haste (immer noch) alle Datensätze
als Treffer. Wenn der Filter klappt (s.o.), dann sollte tatsächlich nur
noch 1 ausgegeben werden.

Gruß

Alex


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink:

Hi David,

ES FUNKTIONIERT!!! Super!!! So gehts! Er erzeugt einen neuen Datensatz in
FM_Verweise im cRM!!!

Beschreibung: Angebot (1) wurde am 07.07.2008 erstellt.
Link: fmw://mandantname/AN/1
LinkID: (lange ID ohne Bindestriche)
FirmenID: 3602375F-DB00-404C-93F0-0E494540A3D6

Vielen Vielen Dank!!!

Meinst du der Fehler lag bei den Bindestrichen? Oder hat er doch in der
falschen Tabelle gesucht?

Ich glaub das Problem liegt darin, dass Postgres möglicherweise den
Tabellen und Feldnamen in „“ eingeschlossen erwartet hat. (Sowas hängt
evtl. von Installationsoptionen, Versionen oder-was-weiss-ich ab) -> Ich
hab es auf jeden fall mal an combit weitergegeben…

Gruss

Alex


CRM-Leitsatz: „Das einzige, was wirklich stört, ist der Kunde!“ :wink: