Skip to main content
Skip table of contents

p$TDV:SMPAPI:S_MrkPos


p$TDV:SMPAPI:S_MrkPos

Schreiben bzw. Ändern der Merkmale (freie Parameter) zu einer gegebenen Warenkorb-Position aus der Tabelle V_Merkmale. Der Warenkorb wird über die Warenkorb-Positionsidentifikation (Parameter MaterialID) aus der Tabelle V_Warenpos identifiziert. Diese MaterialID steht beispielsweise bei der Funktion „Position bearbeiten" aus dem SalesManager NG-Warenkorb-Formular im Parameter Auftrag.ObjektID direkt zur Verfügung. Weitere Informationen dazu können dem SalesManager NG Systemhandbuch entnommen werden.

Mit dieser Funktion kann eine einzelne Merkmals-PG geschrieben werden. Dann wird im Parameter MerkmalPG der Name dieser PG als Text übergeben. Weicht der Name der PG der zu speichernden Parameter in der Datenbank von dem PG-Namen in der Logik ab, so können die Parameter zum Schreiben auch „umbenannt" werden. Dies wird bei der Übergabe des Parameters MerkmalPG wie folgt festgelegt:

’{<PGName in der Datenbank>}<PGName in der Logik>’


d.h. der PG-Name für die Datenbank wird in geschweifte Klammern eingeschlossen (siehe Beispiel). Diese Technik kann z.B. dann sinnvoll sein, wenn Daten verschiedener Artikelgruppen in individuellen Parametergruppen gespeichert werden, aber dennoch allgemeine Merkmale gleichen Parameternamens existieren, die gemeinsam verarbeitet werden können.

Ebenso können auch mehrere PGn gleichzeitig geschrieben werden. Dann muss im Parameter MerkmalPG ein Name eines globalen Feld-Parameters übergeben werden, der dann wiederum die Namen der Merkmals-Parametergruppen enthält (siehe Beispiel). Den Abschluss dieser Liste bildet ein Feldelement im Zustand LEER. Ein Umbenennen der Merkmals-PG-Namen ist hier nicht möglich.

Ein Parameter im Zustand UNDEF bewirkt ein Löschen des Merkmals in der Datenbank. Siehe auch den Datenaustausch mit SalesManager NG über Parametergruppen.

Bitte beachten: Die Parametergruppe bzw. das PG-Feld, die in MerkmalPG übergeben werden, werden jeweils indirekt in einer Zeichenkette übergeben, also in Anführungszeichen eingeschlossen. Außerdem müssen das Feld bzw. die Merkmals-PGn global sein!

Syntax:

Status = p$TDV:SMPAPI:S_MrkPos( MerkmalPG, MaterialID )

 

Argument

Typ

Bedeutung

 

MerkmalPG

Zeichenkette

a) Name der zu schreibenden Parametergruppe mit den Merkmalswerten
b) Name der Merkmals-PG in der Datenbank (eingeschlossen in geschweifte Klammern), gefolgt vom Namen der Merkmals-PG in der Logik (ohne Leerzeichen). Beispiel: '{Motor}Konfig'
c) Name eines Feldes mit den Namen der zu lesenden Parametergruppen (das Listenende ist durch einen Eintrag mit LEER hinter der letzten PG gekennzeichnet)

 

MaterialID

Zeichenkette

Identifikation der Warenkorbposition in der Tabelle V_Merkmale

Ergebnis:

Ganzzahl

Status der Operation
0: Daten erfolgreich geschrieben
<0: Fehler gemäß ePOS-Fehler-Liste
>0: Fehler gemäß SMP-Fehlerstatus-Liste
Der Rückgabestatus in SalesManager NG-Funktionen


Beispiel: Gegeben sei eine Warenkorb-Position mit folgenden Merkmalen:

Merkmal

Wert

a.x

10

a.y

20

a.z

30

b.x

40


Beispiel 1: Schreiben der Merkmals-Parametergruppe "a"

a.x = 111
a.y = LEER
a.z = UNDEF
Status = p$TDV:SMPAPI:S_MrkPos( ’a’, Auftrag.ObjektID )

Dann sind folgende Werte in der Datenbank vorhanden:

Parameter

Wert

Erklärung

a2.x

111

Geschrieben

a2.y

20

unverändert, da LEER übergeben

b.x

40

Unberücksichtigt


Das Merkmal "a.z" wurde gelöscht, da mit UNDEF übergeben.

Beispiel 2: Setzen von bestimmten Werten in den Merkmals-Parametergruppen
"a" und "b"

Nur belegte Parameter sollen geändert werden:

f$PGLeer( ’a’ )
f$PGLeer( ’b’ )

a.x = 111
b.y = 222

Festlegen zu ändernden Parametergruppen:

Merkmale[1] = ’a’
Merkmale[2] = ’b’

Es sind 2 Parametergruppen zu ändern:

f$Leer( ’Merkmale[3]’ )

Status = p$TDV:SMPAPI:S_MrkPos( ’Merkmale’, Auftrag.ObjektID )

Beispiel 3: Ändern der Merkmals-Parametergruppen "a" und "b" mit vorherigem Lesen

Alle vorhandenen Daten lesen:

f$PGLeer( ’a’ )
f$PGLeer( ’b’ )

Ändern von Parametergruppe "a" und "b":

Merkmale[1] = ’a’
Merkmale[2] = ’b’
f$Leer( ’Merkmale[3]’ )

Status = p$TDV:SMPAPI:L_MrkPos( ’Merkmale’, Auftrag.ObjektID )

Ändern der Merkmalswerte:

a.??? = ???
b.??? = ???

Status = p$TDV:SMPAPI:S_MrkPos( ’Merkmale’, Auftrag.ObjektID )

Beispiel 4: Schreiben der Merkmals-Parametergruppe "a2"
unter dem Namen "a"

Initialisieren der Merkmalswerte:

f$PGLeer( ’a’ )
a2.??? = ???

Schreiben unter dem Namen "a":

Status = p$TDV:SMPAPI:S_MrkPos( ’{a}a2’, Auftrag.ObjektID )

JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.