Seite 1 von 2

Datenübergabe in eigene Erweiterung mit Python

Verfasst: So 7. Jan 2024, 12:45
von MoinMoin
Hi,

ich experimentiere gerade mit meiner ersten Erweiterung für Calc auf Basis von https://github.com/arachan/getrest/blob ... getrest.py

Ich versuche gerade neben der URL einen weiteren Parameter zu übergeben

Code: Alles auswählen

    def GetRest(self, url, path='') -> str:
        """
        Get JSON Data from REST API
        :rtype:object
        :param:url REST API url
        :param:path XPath like path - separate with dots
        :return:json_file
        """
        return str(url) + ' - ' + str(path)

mit

Code: Alles auswählen

=GETREST("https://test.com")
erhalte ich den String der URL zurück aber mit

Code: Alles auswählen

=GETREST("https://test.com", "meinPath")
kommt "Fehler:508"

Wie übergebe ich mehr als einen Parameter?

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: So 7. Jan 2024, 16:25
von gogo

Code: Alles auswählen

=GETREST("https://test.com"; "meinPath")
finde den Fehler ;)

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: So 7. Jan 2024, 17:16
von karolus
Hallo

Die dazugehörige …idl scheint nicht auf optionale Argumente vorbereitet zu sein:

Code: Alles auswählen

#include <com/sun/star/uno/XInterface.idl>

module org { module openoffice { module addin { module sample {

    interface XGetRest : com::sun::star::uno::XInterface
        {
            /** swaps the content of the incoming array */
            string GetRest( [in] string str );
        };

}; }; }; };
der Kommentar ist anscheinend auch von irgendenwo anders mit kopiert worden, ohne jeden Bezug zur aktuellen Funktion

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: So 7. Jan 2024, 19:28
von MoinMoin
gogo hat geschrieben:
So 7. Jan 2024, 16:25

Code: Alles auswählen

=GETREST("https://test.com"; "meinPath")
finde den Fehler ;)
hatte ich auch probiert - ohne Erfolg

wo steht das, dass Parameter immer mit Semikolon getrennt werden?

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: So 7. Jan 2024, 19:38
von MoinMoin
karolus hat geschrieben:
So 7. Jan 2024, 17:16
Hallo

Die dazugehörige …idl scheint nicht auf optionale Argumente vorbereitet zu sein:

Code: Alles auswählen

#include <com/sun/star/uno/XInterface.idl>

module org { module openoffice { module addin { module sample {

    interface XGetRest : com::sun::star::uno::XInterface
        {
            /** swaps the content of the incoming array */
            string GetRest( [in] string str );
        };

}; }; }; };
der Kommentar ist anscheinend auch von irgendenwo anders mit kopiert worden, ohne jeden Bezug zur aktuellen Funktion
uff - öhmmm IDL?!? die Infos bei Tante Google sind überschaubar https://www.google.com/search?q=libreoffice+IDL

Ich bin bei den Thema eher aus "akademischem Interesse" unterwegs und weil ich von 20 Jahren einiges mit Python gemacht habe ... die Doku zu dem Thema scheint mir im Vergleich zu anderen Projekten recht "rudimentär"

Was macht die Datei? was für eine "Programmiersprache" ist das? sieht wie C oder sowas aus..
wie müsste die für zwei Parameter aussehen?

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: Mo 8. Jan 2024, 08:48
von MoinMoin
zu IDL habe ich nun was gefunden https://wiki.openoffice.org/wiki/IDL_Files_and_Cpp und https://wiki.openoffice.org/wiki/Counter_Example

die IDL müsste so aussehen - oder?

Code: Alles auswählen

#include <com/sun/star/uno/XInterface.idl>

module org { module openoffice { module addin { module sample {

    interface XGetRest : com::sun::star::uno::XInterface
        {
            string GetRest( [in] string url,
                            [in] string path);
        };

}; }; }; };

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: Mo 8. Jan 2024, 09:07
von karolus
Hallo

Falls »path« optional sein soll? :

Code: Alles auswählen

                           [in] any path);
!Ein »any« darf nur einmal und als letztes Argument definiert werden!!

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: Mo 8. Jan 2024, 10:09
von MoinMoin
karolus hat geschrieben:
Mo 8. Jan 2024, 09:07
Hallo

Falls »path« optional sein soll? :

Code: Alles auswählen

                           [in] any path);
!Ein »any« darf nur einmal und als letztes Argument definiert werden!!
o.k. - werde ich testen... hast Du ggf. eine Idee, wo ich das als Doku hätte finden können?

Dank für die Infos!

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: Mo 8. Jan 2024, 10:35
von karolus
Hallo
hast Du ggf. eine Idee, wo ich das als Doku hätte finden können?
Das ist ne gute Frage… :(
eine konkrete, zusammenhängende und vollständige Dokumentation gibts eigentlich nirgends, du musst dich von einem Schnipsel zum nächsten hangeln…

https://www.openoffice.org/api/docs/com ... AddIn.html

Re: Datenübergabe in eigene Erweiterung mit Python

Verfasst: Mo 8. Jan 2024, 10:53
von karolus