Seit Framework V2.32 liefern [%G;...]-Parameter falsche Werte
Frank Romeni
In den Optimizer eingebundene SQL-Abfragen die zuvor perfekt funktionierten, funktionieren seit meinem Upgrade auf Framework Version 2.32 nicht mehr!Meine Analysen haben ergeben, daß die Parameter in den Abfragen andere Werte liefern als zuvor (zuvor hatte ich Framework Version 2.27 installiert).
Wie ist es möglich, daß diese Schnittstelle ohne jeden Kommentar und Dokumentation geändert wird? Soll man jetzt alle bisher funktionierenden Abfragen durchgehen und umschreiben?
Hier zwei Auszüge aus einer Abfrage die einem Feld im Artikelstamm zugeordnet ist:
-- Artikeltyp: z.B. Code: 202 / Name:Mietartikel
--
DECLARE @type AS integer
SET @type = [%G;PIT_ITMT]-- UID PIT_ITMT : U_itmTyp
U_itmTyp ist ein UDF, daß mit einer benutzerdefinierten Tabelle @ITMTYP verknüpft ist. In der Tabelle nutzen wir die vorgegebene Spalte Code für einen numerischen Code, die vorgegebene Spalte Name für den Klartext.
Der o.a. SQL-Code lief bei uns, da wie erwartet der numerische Code zurückgegeben wurde, z.B. 202. Jetzt wird der Klartext, z.B. 'Mietartikel' zurückgegeben.
Natürlich ist hier die Rückgabe des Codes richtig, da bei Tabellenzugriffen immer mit einem Code gearbeitet wird, da der Klartext sich ändern kann und nicht bei jeder Textänderung alle zugreifenden Abfragen geändert werden sollen!
Außerdem ist das auch die Verhaltensweise von SAP, daß bei Zugriff auf U_itmTyp der Code geliefert wird - selbst bei Zugriffen auf das Formularfeld über $[OITM.U_itmTyp]!
-- kennzeichnet "Mutterartikel von Einzelartikeln"
--
DECLARE @mother AS nvarchar(1)
SET @mother = '[%G;PIT_ITMM]'-- UID PIT_ITMM : U_itmMain
Hier ist U_itmMain ein UDF mit definierten Werten:
Y / ja
N / nein
In unserer zuvor laufenden Abfrage wurde erwartungsgemäß 'Y'. Jetzt wird als Wert 'ja' (bei Zuweisung an unsere Variable bleibt natürlich nur noch 'j') geliefert - da muß natürlich jede Überprüfung schief gehen!
Wer hat ähnliche Erfahrungen gemacht?
Kann ich davon ausgehen, daß die Schnittstelle diesbezüglich korrigiert wird?
Frank Romeni
Michael Egloff
Hallo Frank,mit der Absicht, die grösstmöglichste Flexibilität zu bieten, haben wir auf Kundenwunsch die Parameterauslese erweitert.
Dabei ging es vor allem darum, dass bei einer ComboBox (eine Liste von möglichen Werten bestehend aus einem Text und einem Code) der Text und der Code ausgelesen werden kann.
In der vorherigen Version haben wir uns ganz auf das SDK von SAP gestützt, welches uns aber nicht konsequent den gleichen Wert zurückgegeben hat.
Neu wird für die Auslese des Codes (Wert, welcher auf der Datenbank abgespeichert wird) folgende Syntax verwendet:
[%G;PIT_ITMM;;;K]
Mit
[%G;PIT_ITMM]
bekommt man den Wert (den sichtbaren Text)
Weitere Beispiele dazu findet man unter http://help.coresystems.ch/help/customize/de/index.html?cor_customizeparameter_auslesen.htm
Für die schlechte Kommunikation unsereseits entschuldige ich mich! Normalerweise werden die bestehenden Funktionaliäten nur erweitert und nicht abgeändert. Dies reichte aber in diesem Fall nicht. Deshalb mussten wir das so abändern. Grössere Veränderungen werden normalerweise im http://www.coresuite.ch/index.php?id=315 aufgelistet.
Falls du noch Fragen hast, melde dich nochmals!
Gruss,
Michael
Frank Romeni
Hallo Michael, vielen Dank für Deine Hinweise!Ich werde die neue Syntax gleich ausprobieren. Wenn's funktioniert ist es natürlich eine erhebliche Steigerung der Flexibilität und die Änderung zu begrüßen.
Wäre es doch nur besser kommuniziert worden ...
Sollten sich Probleme ergeben, werde ich diese in einer neuen Anfrage melden.
Gruß
Frank Romeni
0
Please sign in to leave a comment.
Comments
0 comments