Aufruf einer VBA-Methode des Applikations-Service
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
|
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
- „Position in Sortierung“ und „Schaltflächenposition“ = „0“
- „Funktionsaufruf“ = „gsAppServiceCall.Sage.Wawi“
- „Parameter Funktionsaufruf 1“ = „OLAppDesignerImDetail:gEntryErfassung“
- „Parameter Funktionsaufruf 2“ = „Vollstaendig : Ersetzen“
- „Parameter Funktionsaufruf 3“ = „"Mode:=1"“
- „für Wawi?“ aktivieren
- Anlegen des Kontextmenüeintrags „BPKBelegmatchcode“ mit folgenden Eigenschaften
- „Funktionstitel“ und „Funktionskurztitel“ = „Belegmatchcode“
- „Position in Sortierung“ = „1“
- „Festlegung Aktivierung durch Feld“ = „([IstBearbeitbar]=True) AND (NOT IsEmpty([A0Konto]))“
- „Funktionsaufruf“ = „MakroStarten.Sage.System“
- „Ausführen Makro“ = „AufrufenKontextMenu“ mit Parameter 1 = „BPKMatchcodeGenerieren“
- „für Wawi?“ aktivieren
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
|
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
|
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
|
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
- „Position in Sortierung“ und „Schaltflächenposition“ = „0“
- „Funktionsaufruf“ = „gsAppServiceCallGeneric.Sage.System“
- „Parameter Funktionsaufruf 1“ = „OLAppDesignerImDetail:gEntryStammdaten“
- „Parameter Funktionsaufruf 2“ = „Vollstaendig : Ersetzen“
- „Parameter Funktionsaufruf 3“ = „"Mode:=1;Artikelnummer:=" & [Artikelnummer] & ";AuspraegungID:=" & [AuspraegungID]“ (damit wir uns den Key nicht aus dem XML-Dokument holen müssen)
- „für Wawi?“ aktivieren
- Anlegen des Kontextmenüeintrags „BPKDimensionen“ mit folgenden Eigenschaften
- „Funktionstitel“ und „Funktionskurztitel“ = „Dimensionen“
- „Position in Sortierung“ = „1“
- „Funktionsaufruf“ = „MakroStarten.Sage.System“
- „Ausführen Makro“ Anlage laut Tabelle
- „für Wawi?“ aktivieren
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).