Archiv des Intrexx Live! Forums

Hier sehen Sie die Foreneinträge aus dem Intrexx Live! Forum. Bis November 2016 war es das Forum für alle Fragen rund um die Software Intrexx von United Planet.
Seit November 2016 gibt es ein neues moderiertes Forum, das Intrexx Community Forum. Nutzen Sie bitte unbedingt dieses für aktuelle Fragen, Antworten und Informationen.

Wichtig: Dieses Forum dient als Archiv. Die Einträge beziehen sich oft auf ältere Versionen von Intrexx und entsprechen nicht mehr den aktuellen technischen Gegebenheiten.
Daher sollten alle Inhalte ausschließlich von Experten genutzt werden. Bei unsachgemäßer Anwendung kann es zu zeitaufwändigen Problemen oder Datenverlust kommen.
Übersicht > Intrexx Professional: General Questions > Dublettenabgleich unter INTREXX7

Dublettenabgleich unter INTREXX7

Hallo INTREXXler,

ich habe hier: https://www.intrexx.com/de/werkstatt/datensatzkonflikt
einen interessanten Werkstattbeitrag zum Thema Datensatzüberprüfung beim Abspeichern eines Datensatzes gefunden.

Es geht hier um die Vermeidung von Dubletten. Leider bezieht sich der Beitrag nur bis INTREXX Versionen <5.2. Ich möchte es aber für INTREXX 7 einsetzen.
Ich habe aber das notwendige VM-Script "getconflictBySysidentAndObject.vm" im Verzeichnis ...\org\\internal\system\vm\html\misc in INTREXX 7 gefunden.

Auch das JS-Script ist in der ...\org\\external\htmlroot\include\custom\samples.js in dieser Version vorhanden. Den Code habe ich in die custom.js übertragen.

Ich habe eine kleine Anwendung danach aufgebaut. Leider funktioniert die Anwendung nicht.

Beim Speichern eines Dokuments erhalte ich folgende Fehlermeldung:

Es ist ein Fehler aufgetreten!
12: FIELD NOT AVAILABLE

Den Ausdruck "12: FIELD NOT AVAILABLE" habe ich auch in der "getconflictBySysidentAndObject.vm" gefunden, verstehe aber nicht den Fehler.

Hat jemand den Werkstattbericht unter INTREXX 7 zum Laufen gebracht. Muss ich ggfs. das js.script des oncklick - Events für INTREXX 7 noch anpassen?

Viele Grüße

Michael
21.10.2016 12:30 von Tamago
ich habe mir das Skript jetzt nict im Detail angeschaut aber das erste PRoblem ist schon dass hier noch IDs abgefragt werden und nicht GUIDs so wie es unterhalb des Werkstattbeitrags steht.
Es gibt ja jetzt nur och GUIDs und das müsste man dann schon anpassen.

abgesehen davon ist die Frage ab man das ganze nicht einfach per PRimary Key Kombination nicht schon lösen kann, da können dann auch keine doppelten Einträge vorkommen oder aber das ganze nicht anders gelöst werden kann, meiner Meinung nach braucht man da nicht so viel Code dazu.
Warum nicht einfach das entsprechende Feld das nicht doppelt sein darf als Filter für eine Tabelle auf die Datensätze wählen, das die onKeyUp z.B. die Tabelle filtert und dann beim Speichern ein Script ausführen, das prüft ob in der Tabelle ein Wert vorhanden ist und wenn ja dann eben als return ein false zurückgeben, dass nicht gespeichert wird.
21.10.2016 12:50 von falkh
Hallo,



das in INTREXX 7 enthalte VM-Script wurde von UP anscheinend schon angepasst. Dort stehen schon die "...guids". Falls das aber jemand bereits mit weniger Code oder ganz anders gelöst hat, kann mir das gern mal hier im Forum zukommen lassen.






$Response.setIgnoreWrite(true)



#set( $l_bError = false )
#set( $l_iErrorId = "" )
#set( $l_strErrorDesc = "" )

#if( !$Request.containsKey("fr_sysident") || !$Request.containsKey("fr_sysident") || !$Request.containsKey("fr_appguid") || $Request.get("fr_appguid")=="" || !$Request.containsKey("fr_fupguid") || $Request.get("fr_fupguid")=="" )
#set( $l_bError = true )
#set( $l_iErrorId = 10 )
#set( $l_strErrorDesc = "MISSING VALUES IN REQUEST!" )
#end

#if(!$l_bError)
#set( $l_bError = true )

#set ($l_strReturn = $ConflictBySysIdentFinder.getConflicts($DbConnection, $Request.get("fr_sysident"), $Request.get("fr_searchvalue"), $Request.get("fr_fupguid"),$Request.get("fr_recid")))
#set( $l_strErrorDesc = $l_strReturn )

#if($l_strReturn == "DATAGROUP NOT AVAILABLE")
#set( $l_iErrorId = 16 )
#elseif($l_strReturn == "FIELD NOT AVAILABLE")
#set( $l_iErrorId = 12 )
#elseif($l_strReturn == "COMPARE NOT POSSIBLE")
#set( $l_iErrorId = 17 )
#elseif($l_strReturn == "NO RESULT")
#set( $l_iErrorId = 15 )
#elseif($l_strReturn == "ERROR OCCURRED")
#set($l_iErrorId = 15 )
#else
#set( $l_bError = false )
#end
#end

$Response.setHeader("Cache-Control","no-cache")
$Response.setHeader("Content-Type","text/xml; charset=$charset")
$Response.setIgnoreWrite(false)<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<response>
#if($l_bError)<error code="${l_iErrorId}"><![CDATA[${l_strErrorDesc}]]></error>
#elseif(1==1)<checkupresults><result sysident="$l_strSysIdent" appguid="$Request.get("fr_appguid")">$l_strReturn</result></checkupresults>#end
</response>

21.10.2016 13:07 von Tamago
Zurück | Alles über Intrexx | Impressum | Datenschutzerklärung

Über United Planet
© 2019 United Planet GmbH
Schnewlinstraße 2
79098 Freiburg