wiki-spaces-s1-pages-109314067-aufruf-plus-einer-plus-vba-methode-plus-des-plus-applikations-service.md
By Andreas Langmaack (Unlicensed)
Jan 29, 2020
4 min
Add a reaction
|
Beschreibung
|
Aufruf einer Methode in einem AddIn mit Übergabe des aktuellen Belegobjektes aus der neuen Erfassung
| | --- | --- | |
Funktionsaufruf
|
Sage.Wawi.gsAppServiceCall
| |
Parameter 1 Funktionsaufruf
|
<AddIn-Name>:<Funktionsname> (String)
| |
Parameter 2 Funktionsaufruf
|
Lese-/Schreib-Optionen in der Form [Lese-Option] : [Schreib-Option] (String)
Lese-Optionen
Schreib-Optionen
Ersetzen = Ersetzt den kompletten Datensatz mit allen Unterobjekten
Neu = wie Ersetzen, aber es werden neu initialisierte Daten zurückgegeben (z. B. für die Beleg-Vorgangsübernahme)
Ignorieren = Die Rückgabe wird ignoriert. Ermöglicht damit einen schreibgeschützten Dienst-Aufruf in Bezug auf die Daten im Client
| |
Parameter 3 Funktionsaufruf
|
Leerzeichen oder Argumentliste, kann im AddIn mit oBag.sItem("sAppInfo") abgerufen werden (String)
| |
Parameter 4 Funktionsaufruf
|
| |
Parameter 5 Funktionsaufruf
|
| |
Parameter 6 Funktionsaufruf
|
| |
Bemerkungen
|
Auftretende Fehler müssen mit oBag.sItem("Result") zurückgegeben werden. Erfolgt der Aufruf innerhalb eines Makros via "AufrufenKontextMenu", kann die lokale Variable [_Canceled] abgefragt werden (ist bei oBag.sItem("Result") <> "" und oBag.sItem("Result") <> "0" gleich True).
|
Beispiel
Der Belegmatchcode soll mittels einer AddIn-Funktion erzeugt werden.
Folgende Metadaten sind anzulegen (AddIn- und Funktionsname nach Ihren Bedürfnissen, hier für das Template-AddIn implementiert).
Folgende Metadaten sind anzulegen:
Anlegen des Kontextmenüs „VKBelegErfassung“ mit „Anhängen an Kontextmenü der Partner-Kennung“ = „Sage.Wawi“
Anlegen des Kontextmenüeintrags „BPKMatchcodeGenerieren“ mit folgenden Eigenschaften
Anlegen des Kontextmenüeintrags „BPKBelegmatchcode“ mit folgenden Eigenschaften
Hinweis für Developer Partner
WDB-Eintrag 203334:
Anhang ADID.AppServiceCall.VkBeleg.Generic.rar und OLAppDesignerImDetail80.rar
Wie im VBA-Code ersichtlich, erfolgt die Übergabe des Objektes mittels ClientParameterbag. Auch das „Result“ wird nach Beendigung des Aufrufes aus diesem Objekt gelesen. Das bedeutet, dass dieses Objekt nicht zerstört werden darf. Ruft man also andere Funktionen auf, die den ClientParameterbag neu initialisieren (goStack.oBag), bzw. man ruft Funktionen auf, die einen ClientParameterbag als Parameter verwenden, muss der übergeben ClientParameterbag gesichert werden. Dazu benutzt man die Funktion goStack.Push (Sichern) und goStack.Pull (Rücksichern).
|
Beschreibung
|
Aufruf einer Methode in einem AddIn mit Übergabe des aktuellen Buchungssatzobjektes aus der neuen Erfassung
| | --- | --- | |
Funktionsaufruf
|
Sage.Rewe.gsAppServiceCall
| |
Parameter 1 Funktionsaufruf
|
<AddIn-Name>:<Funktionsname> (String)
| |
Parameter 2 Funktionsaufruf
|
Lese-/Schreib-Optionen in der Form [Lese-Option] : [Schreib-Option] (String)
Lese-Optionen
Schreib-Optionen
Ersetzen = Ersetzt den kompletten Datensatz mit allen Unterobjekten
Neu = wie Ersetzen, aber es werden neu initialisierte Daten zurückgegeben (z. B. für die Beleg-Vorgangsübernahme)
Ignorieren = Die Rückgabe wird ignoriert. Ermöglicht damit einen schreibgeschützten Dienst-Aufruf in Bezug auf die Daten im Client
| |
Parameter 3 Funktionsaufruf
|
Leerzeichen oder Argumentliste, kann im AddIn mit oBag.sItem("sAppInfo") abgerufen werden (String)
| |
Parameter 4 Funktionsaufruf
|
| |
Parameter 5 Funktionsaufruf
|
| |
Parameter 6 Funktionsaufruf
|
| |
Bemerkungen
|
Auftretende Fehler müssen mit oBag.sItem("Result") zurückgegeben werden. Erfolgt der Aufruf innerhalb eines Makros via "AufrufenKontextMenu", kann die lokale Variable [_Canceled] abgefragt werden (ist bei oBag.sItem("Result") <> "" und oBag.sItem("Result") <> "0" gleich True).
Die Codierung in Access erfolgt analog dem obigen Beispiel. Das COM-Objekt, welches übergeben wird, ist „Buchungssatz“.
|
|
Beschreibung
|
Aufruf einer Methode in einem AddIn mit Übergabe des aktuellen Fertigungsauftragsobjektes aus der neuen Erfassung
| | --- | --- | |
Funktionsaufruf
|
Sage.Pps.gsAppServiceCall
| |
Parameter 1 Funktionsaufruf
|
<AddIn-Name>:<Funktionsname> (String)
| |
Parameter 2 Funktionsaufruf
|
Lese-/Schreib-Optionen in der Form [Lese-Option] : [Schreib-Option] (String)
Lese-Optionen
Schreib-Optionen
Ersetzen = Ersetzt den kompletten Datensatz mit allen Unterobjekten
Neu = wie Ersetzen, aber es werden neu initialisierte Daten zurückgegeben (z. B. für die Beleg-Vorgangsübernahme)
Ignorieren = Die Rückgabe wird ignoriert. Ermöglicht damit einen schreibgeschützten Dienst-Aufruf in Bezug auf die Daten im Client
| |
Parameter 3 Funktionsaufruf
|
Leerzeichen oder Argumentliste, kann im AddIn mit oBag.sItem("sAppInfo") abgerufen werden (String)
| |
Parameter 4 Funktionsaufruf
|
| |
Parameter 5 Funktionsaufruf
|
| |
Parameter 6 Funktionsaufruf
|
| |
Bemerkungen
|
Auftretende Fehler müssen mit oBag.sItem("Result") zurückgegeben werden. Erfolgt der Aufruf innerhalb eines Makros via "AufrufenKontextMenu", kann die lokale Variable [_Canceled] abgefragt werden (ist bei oBag.sItem("Result") <> "" und oBag.sItem("Result") <> "0" gleich True).
Die Codierung in Access erfolgt analog dem obigen Beispiel. Das COM-Objekt, welches übergeben wird, ist „FaBeleg“.
|
|
Beschreibung
|
Aufruf einer Methode in einem AddIn mit Übergabe des aktuellen Datensatzes aus den neuen Stammdaten
| | --- | --- | |
Funktionsaufruf
|
Sage.System.gsAppServiceCallGeneric
| |
Parameter 1 Funktionsaufruf
|
<AddIn-Name>:<Funktionsname> (String)
| |
Parameter 2 Funktionsaufruf
|
Lese-/Schreib-Optionen in der Form [Lese-Option] : [Schreib-Option] (String)
Lese-Optionen
Schreib-Optionen
Ersetzen = Ersetzt den kompletten Datensatz mit allen Unterobjekten
Neu = wie Ersetzen, aber es werden neu initialisierte Daten zurückgegeben (z. B. für die Beleg-Vorgangsübernahme)
Ignorieren = Die Rückgabe wird ignoriert. Ermöglicht damit einen schreibgeschützten Dienst-Aufruf in Bezug auf die Daten im Client
| |
Parameter 3 Funktionsaufruf
|
Leerzeichen oder Argumentliste, kann im AddIn mit oBag.sItem("sAppInfo") abgerufen werden (String)
| |
Parameter 4 Funktionsaufruf
|
| |
Parameter 5 Funktionsaufruf
|
| |
Parameter 6 Funktionsaufruf
|
| |
Bemerkungen
|
Auftretende Fehler müssen mit oBag.sItem("Result") zurückgegeben werden. Erfolgt der Aufruf innerhalb eines Makros via "AufrufenKontextMenu", kann die lokale Variable [_Canceled] abgefragt werden (ist bei oBag.sItem("Result") <> "" und oBag.sItem("Result") <> "0" gleich True).
Die Übergabe des aktuellen Datensatzes erfolgt in einem XML-String.
|
Beispiel
Aus dem Artikelstamm soll ein Aufruf erfolgen, der die Eigenschaften „Länge“, „Breite“ und „Höhe“ setzt. Wurden die Daten von dem Programm geändert, dann soll der aktuelle Datensatz ohne Rückfrage gespeichert werden.
Zusatz: die Funktionalität der Ermittlung und Übergabe ist komplett in Access implementiert.
Folgende Metadaten sind anzulegen:
Anlegen des Kontextmenüs „Artikelstamm“ mit „Anhängen an Kontextmenü der Partner-Kennung“ = „Sage.Wawi“
Anlegen des Kontextmenüeintrags „BPKDimensionenSetzen“ mit folgenden Eigenschaften
Anlegen des Kontextmenüeintrags „BPKDimensionen“ mit folgenden Eigenschaften
Zu hinterlegende Makros:
|
Zeile
|
Befehl
|
Parameter 1
|
Parameter 2
| | --- | --- | --- | --- | |
1
|
FestlegenLokaleVar
|
[_BPKDatensatzSpeichern]
|
False
| |
2
|
AufrufenKontextMenu
|
BPKDimensionenSetzen
|
| |
3
|
#Kommentar
|
[_BPKDatensatzSpeichern] wird im Accessaufruf gesetzt
|
| |
4
|
Wenn
|
[_BPKDatensatzSpeichern] = True
|
| |
5
|
#Kommentar
|
Parameter 1 = False, da keine Abfrage kommen soll
|
| |
6
|
DatensatzSpeichern
|
False
|
| |
7
|
EndeWenn
|
|
|
Im Addin ist folgender Verweis zu setzen: Microsoft XML, v6.0
Hinweis für Developer Partner
WDB-Eintrag 203334:
Anhang ADID.AppServiceCall.VkBeleg.Generic.rar und OLAppDesignerImDetail80.rar
Wie im VBA-Code ersichtlich, erfolgt die Übergabe des Objektes mittels ClientParameterbag. Auch das „Result“ wird nach Beendigung des Aufrufes aus diesem Objekt gelesen. Das bedeutet, dass dieses Objekt nicht zerstört werden darf. Ruft man also andere Funktionen auf, die den ClientParameterbag neu initialisieren (goStack.oBag), bzw. man ruft Funktionen auf, die einen ClientParameterbag als Parameter verwenden, muss der übergeben ClientParameterbag gesichert werden. Dazu benutzt man die Funktion goStack.Push (Sichern) und goStack.Pull (Rücksichern).
Collapse action bar
View all comments
Open Details Panel
Create page
Open Rovo Chat
Add a reaction
Anonymous
Oct 28, 2021
Eine Frage zum Parameter 1: <AddIn-Name>:<Funktionsname> (String)
Muss die Versionsnummer auch Teil des AddIn-Namens sein oder gilt nur der VBA-Projektname des AddIns?
Bisher haben wir die Versionsnummer immer mit angegeben: OLAbfFerkinghoffAddIn81:gINOEtikettendruckEK
Bei Übernahme auf Version. 9.0 müsste man dann die Parameterwerte überarbeiten.
Oder hat man hier die Möglichkeit einen Platzhalter für die Sage-Versionsnummer (ähnl. wie früher im AC-Scripting) zu verwenden?
Anonymous
Oct 28, 2021
Ergänzung: Das AddIn heißt OLAbfFerkinghoffAddIn81.mde, der VBA-Projektname lautet jedoch nur “OLAbfFerkinghoffAddIn”.
ReplyHide reply
Add a comment