Weiss zufällig jemand, wie man von einem Business Objekt eine Instanz erzeugt?
Ich habe nämlich folgendes Problem:
Ein Workflow soll durch ein Ereignis getstartet werden. Dieses Ereignis erzeuge ich mithilfe des SAP FB 'SAP_WAPI_CREATE_EVENT'. Diesem FB muss ich den Business-Objekttyp, den Objekt-Schlüssel und das zu erzeugende Ereignis mitgeben.
Ich erzeuge das Ereignis also für eine konkrete Instanz eines Business Objekts (identfiziert durch Objekttyp und Objektschlüssel).
Zuvor muss ich doch aber diese Instanz irgendwie erzeugen. Allerdings habe ich keine Ahnung wie.
Du gibst keine Objekt-Instanz mit, sondern ein Business-Objekt! Das ist ein elementarer Unterschied, denn ein Business-Objekt hat mit Objekten im Sinne Instanzen von Klassen erstmal nichts zu tun.
Der Objekttyp eines Business-Objekts ist ein interner Schlüssel im Business Object Repository,
z.B.: BUS2032.
Die Objekttypen finden sich in der Tabelle TOJTB
Der Objektschlüssel ist dann der Schlüssel, der ein bestimmtes Objekt spezifiziert (z.B. eine Guid, oder eine Auftragsnummer).
ich habe ein business-object-typ mit verschiedenen methoden, attributen und ereignissen angelegt.
und in meinem workflow greife ich auf diese methoden und ereignisse zurück.
dieser workflow soll nun durch ein ereignis gestartet werden.
dazu verwende ich die funktion 'SAP_WAPI_CREATE_EVENT' mit
---
object_type = 'test_typ'
object_key = ''
event = 'Webseite_aufgerufen'.
---
wenn nun der object-key einen schlüssel ist, der ein bestimmtes objekt spezifiziert. wie belege ich dann die variable beim aufruf der funktion?
die startet ja erst den workflow und der hat bis dahin ja noch keinen schlüssel...
an wen richtet sich der event, wenn kein schlüssel angegeben ist?
Hmmm. Ein Event wird z.B. ausgelöst bspw., wenn ein Objekt (z.B. eine Bestellung) erzeugt worden ist und dann hat man ja den entsprechenden Key dazu.
Ich denke, ein Business-Objekt ist nicht dazu geeignet, Events in WebApplikationen auszulösen. Dafür gibt es andere Mechanismen.
Ein Business-Objekt drückt immer ein 'quasi' betriebswirtschaftliches Objekt aus. Daraus leiten sich auch die Methoden und Attribute ab, die ein Business-Objekt aufweist (bspw. Anzeigen, Ändern, Anlegen, etc.). Es ist somit nicht als gänzlich abstraktes Objekt zu sehen, sondern hat eine gewissen 'Bezug zur Realität'.
Wenn es darum geht, Events einer WebApplikation auszulösen bzw. darauf zu reagieren, dann solltest Du Dir das BSP-Framework und evtl. die Unterstützung für MVC ansehen. Da gibt es genügend Events, die ausgelöst werden (auch welche die man definieren kann), auf die man dann reagieren kann.
bitte lass dich nicht von dem event "webseite aufrufen" verwirren.
ich arbeite mit dem was 6.30 und webdynpros.
dort kann man einen button mit einem rfc-funktionsbaustein "hinterlegen".
dieser feuert dann mein event für den workflow ab.
mir geht es nur darum, die richtige instanz des workflows zu "treffen", da mehrere instanzen des workflows gleichzeitig laufen.
Ok. Muß mal etwas 'forschen', melde mich dann wieder. Soweit ich weiß gibt es auch eine OO-Erweiterung im Rahmen des Workflows (das ist was Du benötigst). Ein Business-Objekt hilft Dir hier nicht weiter.