p$TDV:SMPAPI:S_MrkAns
p$TDV:SMPAPI:S_MrkAns
Schreiben der Merkmale (freie Parameter) für eine gegebene Anschrift.
Die Anschrift wird über die Anschriftsidentifikation (Parameter AnschrID) aus der Tabelle V_Anschrift übergeben.
Die Merkmale werden in Form von zwei getrennten Parametergruppen übergeben, und zwar in einer Parametergruppe, die die Merkmalswerte enthält (MrkWertPG), und einer Parametergruppe, die steuert, welche Merkmale bei der Anschrift hinterlegt werden (MrkDefPG).
Die Parametergruppe der Merkmalswerte (MrkWertPG) kann Merkmale auch für andere Tabellen enthalten, z.B. für eine Person. Die PG kann einfach indiziert sein, der Index muss aber in diesem Fall angegeben werden. Der Name dieser Parametergruppe wird für den PG-Namen in der Datenbank verwendet, allerdings ohne Index.
Um ein Merkmal in der Datenbank zu löschen, kann der Parameter im Zustand UNDEF übergeben werden.
Die Parametergruppe der Merkmalsdefinitionen (MrkDefPG) muss alle Parameter (Merkmale) enthalten, die an der Anschrift gespeichert werden sollen. Die PG darf nicht indiziert sein. Zum Schreiben der Merkmale wird die PG der Merkmalswerte zunächst auf die Merkmalsdefinitions-PG kopiert. Dadurch werden alle Merkmale, die nicht zur Anschrift gehören, ausgefiltert. Danach werden die Werte der Merkmalsdefinitions-PG zum Schreiben der Merkmale verwendet. Stehen in der Datenbank weitere Merkmale, denen kein Parameter in der PG entspricht, so bleiben diese unverändert erhalten.
Bitte beachten:
Die Parametergruppen für die Merkmalswerte und für die Merkmalsdefinition dürfen keinesfalls dieselben sein, da die Merkmalsdefinitions-PG vor dem Schreiben initialisiert wird.
Nach dem Schreiben der Merkmale werden siein die durch MrkWertPG übergebene PG zurückgelesen. Dadurch werden Merkmalswerte, die zum Schreiben mit LEER übergeben wurden, mit den evtl. vorhandenen Werten aus der Datenbank belegt (siehe dazu auch den Datenaustausch mit SalesManager NG über Parametergruppen)
Das Lesen der Merkmale erfolgt automatisch mit dem Lesen der Anschrift (p$TDV:SMPAPI:L_Anschr oder p$TDV:SMPAPI:L_PerAns)
Bitte beachten: Die Parametergruppen, die in MrkDefPG und MrkWertPG übergeben werden, 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_MrkAns( MrkWertPG, AnschrID, MrkDefPG ) | ||
| Argument | Typ | Bedeutung |
| MrkWertPG | Zeichenkette | Name der Parametergruppe mit den Merkmalswerten; bei indizierter PG muss der Index angegeben werden. |
| AnschrID | Zeichenkette | Identifikation des Anschrift-Datensatzes in der Tabelle V_Anschrift |
| MrkDefPG | Zeichenkette | Name der Parametergruppe mit den Merkmalsdefinitionen (darf nicht indiziert sein). |
Ergebnis: | Ganzzahl | Status der Operation | |
Beispiel: Ändern von Anschriftsmerkmalen
Gegeben sei folgende Werte-PG mit den Parameter-Werten:
Parameter | Wert |
Adr.Par1 | ’a’ |
Adr.Par2 | ’b’ |
Adr.Par3 | ’c’ |
Adr.Par4 | UNDEF |
Adr.Par5 | LEER |
Die Merkmalsdefinitions-PG enthalte die Parameter
Anschr.Par2, Anschr.Par3, Anschr.Par4 und Anschr.Par5
In der Datenbank seien bereits folgende Merkmale vorhanden:
Merkmal | Wert |
Adr.Par2 | ’x’ |
Adr.Par4 | ’y’ |
Adr.Par5 | ’z’ |
Adr.Par6 | ’Zusatzmerkmal’ |
Dann ergibt ein Aufruf von
Status = p$TDV:SMPAPI:S_MrkAns( ’Adr’, ’4711’, ’Anschr’ )
folgende Merkmale in der Datenbank:
Merkmal | Wert |
|
Adr.Par2 | ’b’ | àgeändert |
Adr.Par3 | ’c’ | àneues Merkmal |
Adr.Par5 | ’z’ | àunverändert, da LEER |
Adr.Par6 | ’Zusatzmerkmal’ | àunverändert, da nicht übergeben |
Das Merkmal Adr.Par4 wurde gelöscht und Adr.Par1 wurde nicht übertragen, da nicht Bestandteil der Definitions-PG.
Die Parametergruppen enthalten jetzt folgende Daten:
Parameter | Wert |
|
Adr.Par1 | ’a’ |
|
Adr.Par2 | ’b’ |
|
Adr.Par3 | ’c’ |
|
Adr.Par4 | UNDEF |
|
Adr.Par5 | ’z’ | àneu aus der Datenbank gelesen |
Anschr.Par2 | ’b’ |
|
Anschr.Par3 | ’c’ |
|
Anschr.Par4 | UNDEF |
|
Anschr.Par5 | LEER | àWert aus Adr.Par5 |