Gelöst EK Belegübernahme: DLL mit Dialog in neuer Belegerfassung?

LFranz

Mitglied
Hallo zusammen,

bei der Übernahme von Belegen zeigen wir (abhängig von Belegarten) einen Dialog an, bei dem Benutzer auswählen können, ob Sie Kopf- und/oder Fußtext des Vorgänger Beleges übernehmen möchten.

Das hat mit der alten Belegerfassung (unter der OL 2016) und den DCMs EK-/VKBelegTransform problemlos funktioniert. Die DCMs werden aber mittlerweile auf dem ApplicationServer ausgeführt, wodurch ein Userinput an der Stelle nicht mehr möglich ist.

Für die VK Belegerfassung ist das auch kein Problem, weil wir uns an das Element "ediVKBelegerfassung" anhängen können, dort im Makro das Feld "IstBeleguebernahme" abfragen und per "AufrufenKontextmenü" + "AppLibraryCall" die gleiche Funktionalität wie zuvor realisieren können.

Das Feld ist jedoch leider in der EK Belegerfassung nicht vorhanden.

Wie löst man das Problem für Einkaufsbelege?
 
Das klingt jetzt komisch, aber wenn es früher nicht gegangen wäre, dann hätten wir eine BeforeTransform-CM für die alte Erfassung und hätten diese dann auch in der neue Erfassung integriert. Das Flag, welches Sie ansprechen ist eine internes Flag. Verwenden Sie es bitte nicht.
Der richtige Weg wäre über das Developer Programm eine Schnittstelle zu beantragen: eine Schnittstelle , um vor der Belegübernahme auf dem Client einzugreifen.
 
Aktuell sieht das bei uns so aus (mit den o. g. DCMs):
Beleg-Uebernahme_alte_Belegerfassung.gif



Im Sage 100 Entwicklerhandbuch finde ich nur bei der frmAbfMainErfassung die CMs BeforeTransform/AfterTransform. Dort gab es für die EK Belegerfassung wohl auch keine CM.

Sie schlagen vor, dafür eine Schnittstelle zu beantragen. Das dauert aber logischerweile, bis zur Implementierung (sollte dies geschehen), eine ganze Weile. Gibt es denn aktuell eine andere Möglichkeit (als Workaround), um die gleiche Funktionalität mit der neuen Belegerfassung abzubilden?
 
Hallo,

Sie können bei Anzeige des Belegs prüfen, ob der Beleg neu ist (BelID = 0) aber einem Vorgang zugeordnet ist (VorID <> 0).
 
Danke für den Tipp!

Wäre es auf diesem Wege auch möglich, die vorherige Belegart zu ermitteln?
Aktuell ist nämlich die Vorbelegung (Kopftext übernehmen: Ja/Nein, Fußtext übernehmen: Ja/Nein) abhängig von den beteiligten Belegarten.
Bspw. kann sich die Vorbelegung bei der Übernahme einer Bestellung in eine Bestellung unterscheiden zu der Übernahme einer Preisanfrage in eine Bestellung.
 
Ich will mich nicht 100% festlegen, aber ich meine es gab auch in der alten Erfassung immer nur eine CM/DCM nach dem Transform. Wie auch immer. Aktuell kommen Sie nicht "vor" dem Transform in den Geschäftsprozess, da mit der Belegauswahl direkt der Daten-Service (Serverseite) zur Belegübernahme ausgeführt wird.
Wie Herr @bbusch schon angedeutet hat, muss es ohne neue Schnittstelle nach der Belegübernahme erfolgen. Und auch das Ereignis OnCurrent wäre richtig. Nur die Abfrage VorID<>0 funktioniert zumindest bei Angebot in Auftrag nicht.

Sie brauchen:
ein Feld (boolsches Flag, z.B. IstTransform) an die jeweilige Struktur, Data-Edit anhängen
ein Feld (String, z.B. QuellKennzeichen) an die jeweilige Struktur, Data-Edit anhängen
Transfer der Felder zwischen Client und Server sicherstellen (Beispiel im Wiki, Belegerfassung Zusatzdaten)
In der DCM EK/VKBelegProxyAfterTransform IstTransform=True und QuellKennzeichen = QuellBeleg.Kennzeichen (bitte genaue Syntax im Developer Handbuch nachschauen) setzen.
Flag in OnCurrent abfragen (anhängen an Data-Edit) und Formular anzeigen
Sollen andere Texte genommen werden, dann einen Daten-Service aufrufen und an die entsprechende DCM (Developer Handbuch) anhängen und dort die Text ändern/anpassen.

Eventuell könnten Sie sogar den AppLibraryCall durch ein Selektionselement und Makro AufrufenDll ersetzten, hängt aber natürlich davon ab, wie komplex das Formular werden kann.
 
Danke für die Antworten und möglichen Lösungen!
Ich probiere mal ein bisschen rum und melde mich dazu noch einmal.
 
Zurück
Oben