p$TDV:SMPAPI:S_WposPd_Dat
p$TDV:SMPAPI:S_WposPd_Dat
Anlegen einer neuen Warenkorbposition. Es können Artikel aus dem Produktkatalog kopiert oder freie Positionen angelegt werden.
Falls mehrere Positionen angelegt werden sollen, kann statt dessen die Funktion p$TDV:SMPAPI:X_BauGrp eingesetzt werden
Soll eine Position oder eine ganze Baugruppe kopiert werden, kann dies am besten mit der Funktion p$TDV:SMPAPI_K_Bgrp p$TDV:SMPAPI:K_BGrperreicht werden.
Die Anordnungsposition im Warenkorb wird über die übergeordnete Position (gegeben über deren MaterialID) und über die Positionsnummer in der Stufe bestimmt.
Wenn nach dem Anlegen der Position noch Daten geändert werden sollen, können dieser Funktion noch Parametergruppen für die Materialdaten sowie für die Merkmale übergeben werden. Die Materialdaten werden zum einen verwendet, um Daten der angelegten Position zu schreiben, als auch werden am Ende der Funktion die Daten der angelegten Position zurückgegeben. Es muss darauf geachtet werden, dass die Parametergruppe zuvor auf LEER gesetzt wurde, und dann gezielt die Parameter gesetzt werden, die geschrieben werden sollen. Parameter, die den Zustand UNDEF haben, sorgen dafür, dass das entsprechende Feld auf NULL gesetzt wird.
Die Merkmale sind reine Ausgabe, sie werden nach dem Anlegen der Position gefüllt.
Die Materialnummer der neuen Position wird evtl. für weitere Zugriffe benötigt. Sie wird im Parameter MaterialID der Parametergruppe der Materialdaten zurückgegeben.
Bitte beachten: Die Parametergruppen, die in ProdPG und in MatPG übergeben werden, sowie die Merkmals-PGn werden indirekt in einer Zeichenkette übergeben, also in Anführungszeichen eingeschlossen. Außerdem müssen die PGn global sein!
Syntax: | Status = p$TDV:SMPAPI:S_WposPd_Dat( MaterialID, PosTyp, PosNr, ProdPG, MatPG, MerkmalPG ) | |||
| Argument | Typ | Bedeutung | |
| MaterialID | Zeichenkette | Identifikation der übergeordneten Warenkorbposition in der Tabelle V_Warenpos, unterhalb der die neue Position angelegt werden soll | |
| PosTyp | Zeichenkette | Typ der neuen Position (1 Zeichen): | |
| PosNr | Zeichenkette | Positionsnummer der neuen Position (auf der gewünschten Stufe). Der Inhalt des Textes muss numerisch sein. Bei Übergabe eines leeren Textes ('', nicht LEER) wird die Position hinten angefügt. | |
| ProdPG | Zeichenkette | Name einer Parametergruppe, die die Warenkorb-Produktidentifikation enthält; die PG muss vom Typ WPosProd sein, sie kann einen festen Index haben. | |
| MatPG | Zeichenkette | Name einer Parametergruppe mit Materialdaten. Die Materialdaten werden auf die Tabellen TM_Warenpos und TS_Warenpos geschrieben und nach dem Anlegen der Position aus der Sicht V_Warenpos gefüllt. Nicht belegte Daten müssen LEER gesetzt sein, UNDEF ist nur dann zu verwenden, wenn ein Wert auf NULL gesetzt werden soll. Eine indizierte PG mit festem Index ist möglich. Die Übergabe einer PG ist nicht erforderlich! | |
| MerkmalPG | Zeichenkette | a) der Name einer Parametergruppe, die nach dem Aufruf die Merkmale zu dieser Position enthält Merkmals-Parametergruppen dürfen nicht indiziert sein. c) ein LEERString (‚'). | |
Ergebnis: | Ganzzahl | Status der Operation | ||
Beispiel: | Anlegen eines Motors mit Änderung eines Merkmals: Festlegen des Katalogartikels: f$PGLeer( 'Prod' ) f$PGLeer( ' MatDaten ' ) MatDaten.Menge = 2 Anlegen als letzte Position unterhalb der aktuellen Position. Status = p$TDV:SMPAPI:S_WPosPd( MaterialID, 'P', '', 'Prod', 'MatDaten', '') | |||