Ich möchte einen Funktionsbaustein zur Laufzeit generieren bzw. den Inhalt eines existierenden ändern / füllen. Ist sowas möglich? Kann mir jemand einen Tipp geben?
Ich habe gesehen, dass sowas für Reports möglich ist (z.B. durch das Schlüsselwort "GENERATE REPORT" oder über Funktionsbausteine...), gibt es sowas auch für FuBas?
einen bestehenden Funktionsbaustein kann man mit INSERT REPORT ändern. Der Programmname ist dann identisch mit dem Includenamen des FuBas. Ein GENERATE REPORT ist vor einem dynamischen Aufruf nicht erforderlich.
Ich weis ja nicht was Sie vorhaben, aber FuBas zur Laufzeit ändern ist heikel und kann zu Abbrüchen wie "Lost Programm" usw. führen
Danke für die Antwort. Ich bin gerade dabei mir den FuBa 'RS_FUNCTIONMODULE_INSERT' anzuschauen und zu testen...anscheinend ist es genau dafür da, meine Problemstellung zu lösen...
Hat jemand von euch gute Erfahrungen mit dem FuBa 'RS_FUNCTIONMODULE_INSERT' gemacht? Ich teste gerade auf meinem $TMP Package und es will nicht funktionieren. Ich habe eine Funktionsgruppe erstellt und darin möchte ich einen neuen Funktionsbaustein reingenerieren. Ich habe dem o.g. FuBa die nötigen Daten (FuBa Name, Gruppe, Beschreibung und dazu noch import params, export params und source code) übergeben. Er erstellt zwar den neuen FuBa mit der RFC Einstellung, mit Import und Export Parameter, aber ohne SourceCode und mit Exceptions ( 2 = ERROR_MESSAGE ), die aber nicht interpretiert werden kann. Ein Debug Lauf kann nur bis zum Aufruf des FuBas "FUNCTION_EXISTS" geführt werden, dort wird die Exception ausgegeben, aber aus irgendeinem Grund kann ich nicht innerhalb dieses FuBas Debuggen... Wenn ich dort F5 drücke hat es die Wirkung eines F6 druck. Komische Sache!
Kann mir da jemand helfen? Vielen Dank im Voraus!
zuerst mit 'FUNCTION_EXISTS' prüfen ob der Baustein schon vorhanden ist,
falls Löschen gewünscht mit FB 'FUNCTION_DELETE' Baustein löschen,
dann mit FB 'FUNCTION_CREATE' den neuen Baustein anlegen,
als Rückgabe bekommst in 'function_include' den Includenamen zurückgeliefert, jetzt musst Du nur noch mit 'INSERT REPORT' <incl_name>
'FROM' <sourcetabelle> 'PROGRAM TYPE I' die Source dazu anlegen.
(PROGRAM TYPE I geht aber erst ab R > 4.7)