- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
API-Frage zur Klasse FileSystem
Hallo,
ich mรถchte fรผr eine Log-Ausgabe wissen, welcher absolute Pfad (Dateisystemebene) sich hinter einem Object der Klasse de.espirit.firstspirit.io.FileSystem verbirgt. An das FileSystem-Object komme ich รผber ProjectAppManager.
ProjectAppManager projectAppManager = ((ManagerProvider) userService.getConnection()).getManager(ProjectAppManager.class);
FileSystem configDir = projectAppManager.getConfDir(MODUL_COMPONENT_NAME, MODULE_NAME, projectId);
Es handelt sich um FS 4.2.
In der API-Doku habe ich dazu nichts gefunden
Viele Grรผรe,
Sebastian Barszczewski
- Labels:
-
Developers
-
Knowledgebase
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
der absolute Pfad hรคngt davon ab, ob es sich bei der Modulkomponente um eine projektspezifische ProjectApp oder Webapp oder um eine serverweite Komponente handelt.
In Deinem Fall entspricht der Pfad des FileSystem-Objekts dem Konfigurationsverzeichnis Deiner Projekt-Modulkomponente, welches auf Dateisystemebene folgendem Pfad entspricht:
<Pfad zur FirstSpirit-Installation>\data\projects\project_<id>\modules\<MODULE_NAME>.<MODUL_COMPONENT_NAME>
Viele Grรผรe
Donato
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Donato,
vielen Dank fรผr die Antwort! Ich hatte gehofft, dass man diese Information auch irgendwie abfragen kann sowas wie:
"configDir.getAbsolutePath()"
Ich hรคtte allerdings noch ein damit zusammenhรคngendes Problem. Die API
ProjectAppManager projectAppManager = ((ManagerProvider) userService.getConnection()).getManager(ProjectAppManager.class);
FileSystem configDir = projectAppManager.getConfDir(MODUL_COMPONENT_NAME, MODULE_NAME, projectId);
kommt aus der Developer-API. Unsere FS-Version ist dabei 4.2.446
In dieser Version is die Aufrufreihenfolge
getConfDir(MODUL_COMPONENT_NAME, MODULE_NAME)
Wir habe hier jetzt auch einen Fall fรผr FS 4.2.461. Da ist der Aufruf genau andersherum.
getConfDir(MODULE_NAME, MODUL_COMPONENT_NAME)
Wie kann man das projektspezifische Modulverzeichnis 4.2er-versionsunabhรคngig auslesen?
Viele Grรผรe,
Sebastian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
ProjectAppManager projectAppManager = ((ManagerProvider) userService.getConnection()).getManager(ProjectAppManager.class);
FileSystem configDir = projectAppManager.getConfDir(MODUL_COMPONENT_NAME, MODULE_NAME, projectId);
> kommt aus der Developer-API. Unsere FS-Version ist dabei 4.2.446
> In der API-Doku habe ich dazu nichts gefunden
Das ist auch gut so, denn ProjectAppManager ist ganz und gar KEINE API, weder Developer noch Access-API und sollte in keinem Fall verwendet werden. Es ist nicht sichergestellt, dass solche Zugriffe in zukรผnftigen Versionen รผberhaupt noch funktionieren.
Deshalb findet sich die Klasse hier auch nicht:
http://www.e-spirit.com/odfs42/dev/
> Wie kann man das projektspezifische Modulverzeichnis 4.2er-versionsunabhรคngig auslesen?
Es gibt API-Wege um an das Konfig-Verzeichnis zu kommen. Du hast leider nicht geschrieben innerhalb welchen du dich befindest.
Hier ein paar Einstiegspunkte:
- รผber eine Spezialisten #getProjectAppConfig()
- innerhalb einer ProjectApp (Modulimplementierung) รผber das ProjectEnvironment, welches รผber die #init injeziert wird und dort รผber die Methode #getConfDir()
Gruร
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo Sebastian,
danke fรผr die Antwort. Eine Mรถglichkeit, die ich auch gefunden habe ist:
LegacyModuleAgent agent = context.requireSpecialist(LegacyModuleAgent.TYPE);
FileSystem configDir = agent.getProjectAppConfig(MODULE_NAME, COMPONENT_NAME, projectId);
Das funktioniert solange ich mich nicht im ScheduleContext befinde, dort bekomme ich dann eine Exception:
(de.espirit.firstspirit.server.scheduler.ScriptTaskExecutor): error during script execution : java.lang.IllegalStateException: No specialist found for 'de.espirit.firstspirit.agency.LegacyModuleAgent$1@b5b1afa1'!
Kannst du mir da noch einen Tipp geben?
Vielen Dank,
Sebastian
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Der genannte Fehler sollte eigentlich nicht mehr auftreten seit 4.2.436 Die interne ID dazu ist #96877.
Wende dich doch bitte hierfรผr an unseren Helpdesk um das zu verifizieren.
Update:
Wie wird das Skritp ausgefรผhrt? Mit einer speziellen Benutzer-Verbindung?
Gruร
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Das script wird รผber keine eigene Benutzer-Verbindung ausgefรผhrt. Es ist Bestandteil (Aktion) eines Auftrags, der durch eine executable class gestartet wird.
Die executable class wiederum wird in einem script im JavaClient aufgerufen, welches an einen Arbeitsablauf gebunden ist.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hallo,
das genannte interne Ticket (#96877) wurde ja wie bereits erwรคhnt gelรถst und der Fix sollte ab den FirstSpirit Versionen 4.2.436.44498 und 5.0.3.44401 verfรผgbar sein.
Hattest Du Dich fรผr die Verifizierung nochmal an den Helpdesk gewendet? Konnte die Frage gelรถst werden oder sind noch weitere Antworten gewรผnscht?
Viele Grรผรe
Michaela

