Fischer-Bayern.de
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Aufruf eines Shell Scripts aus Filemaker

 
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
skybluenova
•->
•->


Anmeldedatum: 04.07.2007
Beiträge: 6

BeitragVerfasst am: 04.07.2007 - 17:46    Titel: Aufruf eines Shell Scripts aus Filemaker Antworten mit Zitat

Hallo alle,

diese Frage ist bestimmt einfach, ich habe aber trotz laengerer Suche nicht das gewuenschte gefunden ... wie ist es moeglich, per AS ein Shell Script (.sh) auszufuehren? Der Hintergrund ist der, dass ich ein AS aus Filemaker ausfuehren will - aber dazu spaeter evtl. mehr. Kann mir jemand mit der Loesung des ersten Problems behilflich sein?

Viele Gruesse
Dennis
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 04.07.2007 - 18:01    Titel: Antworten mit Zitat

set mein_script to "/pfad/zu/Deinem/script.sh"
do shell script quoted form of mein_script
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
skybluenova
•->
•->


Anmeldedatum: 04.07.2007
Beiträge: 6

BeitragVerfasst am: 04.07.2007 - 18:19    Titel: Antworten mit Zitat

Vielen Dank!

Interessanterweise fuehrt das Script seine Aktionenn scheinbar immer in "/" aus ... auch wenn die FM-Datei in einem anderen Verzeichnis liegt. Ich muss dem Shell Script explizit einen Pfad geben.

Das Shell Script sieht z.B. so aus:

Code:

touch "/AStest/testdone"
exit 0


and the calling Apple Script

Code:

do shell script "/AStest/AStest.sh"


(macht scheinbar das gleiche wie Dein Vorschlag, Skeeve)

Abgesehen von dem Problem, dass das Shell script scheinbar im Wurzelverzeichnis arbeitet (laesst sich ja, wie oben, umgehen) -- wie haenge ich den Inhalt eines Felds -z.B. "Testtabelle::testfeld" als Parameter an den Shell Script - Aufruf dran (so dass das Shell Script z.B. ausfuehrt "touch testfile$1" - also ein File mit dem Namen testfileFELDINHALT erstellt...?

Hat DAZU jemand einen Rat??

Appreciate any suggestions Smile

Dennis
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 04.07.2007 - 18:34    Titel: Antworten mit Zitat

do shell script "/AStest/AStest.sh" & " " & quoted form of ("tesfile" & feldinhalt)

"quoted form" sorgt übrigens dafür, daß um die Dteinamen ' gestzt werden und enthaltene ' rinchtig behandelt werden. Solltest Du immer verwenden, wenn Du nicht 100% sicher bist, was da an die Shell übergeben werden könnte.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
skybluenova
•->
•->


Anmeldedatum: 04.07.2007
Beiträge: 6

BeitragVerfasst am: 04.07.2007 - 18:42    Titel: Antworten mit Zitat

...hm, klappt leider nicht ganz. Als Fehlermeldung kommt "Variable testfield1 not defined" - wenn ich das Feld als absoluten wert uebergebe (AppleScriptTest::testfield1), meckert gleich der Apple Script Editor. WOHLGEMERKT: Ich gebe das Script direkt in den "Native Script Editor" innerhalb von Filemaker ein... (Perform Apple Script / Specify / Native Apple Script) ... die Loesung liegt wahrscheinlich zum Greifen nah...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Skeeve
•---->
•---->


Anmeldedatum: 20.04.2006
Beiträge: 1068

BeitragVerfasst am: 04.07.2007 - 19:28    Titel: Antworten mit Zitat

skybluenova hat Folgendes geschrieben:
die Loesung liegt wahrscheinlich zum Greifen nah...

Wahrscheinlich Wink Aber da muß Dir jemand mit Filemaker weiterhelfen.
_________________
"All problems are solved in slightly less than half an hour" (Chumbawamba, "Hey Hey We're The Junkies")
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 04.07.2007 - 21:30    Titel: Antworten mit Zitat

für do shell script:
http://developer.apple.com/technotes/tn2002/tn2065.html

für FileMaker:
- bitte FM-Version angeben und das Ziel der Aufgabe
- ist das Erzeugen einer Datei aus FM nur ein Beispiel, oder ist es schon das Problem
- man muß nicht in FM AS aufrufen, um ein Shellscript aufzurufen, um eine Datei zu erzeugen; die FM-Mittel sind bescheiden, das stimmt, aber es kommt auf die Aufgabe an
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
skybluenova
•->
•->


Anmeldedatum: 04.07.2007
Beiträge: 6

BeitragVerfasst am: 05.07.2007 - 09:24    Titel: Antworten mit Zitat

Hallo,

die FM Version ist 8.5v1 auf OS X.4.10

Das Erzeugen der Datei funktioniert (im Shell Script mit "touch"), aber den Feldinhalt als Parameter an das Bash Script zu uebergeben, leider nicht. Geht das vielleicht mit "Bordmitteln" von Filemaker?

Das "grosse" Ziel ist es, Datensaetze als tab separated file zu exportieren und dieses File an ein Templatefile (das einen Header enthaelt) anzuhaengen ... klappt im Shell Script mit "cat file >> template" auch wunderbar. Allerdings soll das endgueltige File den Inhalt eines bestimmten Felds der exportierten Datensaetze erhalten (ist bei allen exportierten DS gleich). Ich hoffe ich habe mich verstaendlich ausgedrueckt...

Herzliche Gruesse
Dennis
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 05.07.2007 - 09:39    Titel: Antworten mit Zitat

Geht ganz ohne AS und Shellscript:
Du kannst aus FM sehr gut XML exportieren. Mit einem entsprechenden XSLT kannst Du den FM-Export praktisch in jede beliebige Struktur bringen. Ich habe das zur Erzeugung von Dateien für LOAD DATA INFILE benutzt; zehtausende Datensätze, ausreichend schnell.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
skybluenova
•->
•->


Anmeldedatum: 04.07.2007
Beiträge: 6

BeitragVerfasst am: 05.07.2007 - 09:44    Titel: Antworten mit Zitat

Danke fuer den Tipp ... allerdings muss es jetzt seehr schnell gehen und mein Shell Script sthet halt schon ... wie bekomme ich denn den Feldinhalt als Parameter uebergeben??
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 05.07.2007 - 10:00    Titel: Antworten mit Zitat

Das steht doch alles in der technote?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 05.07.2007 - 10:41    Titel: Antworten mit Zitat

Nicht, daß ich nicht helfen wollte, aber bei FM & AS ist schlecht helfen:
1. Ich keine Deine DB nicht
2. Es gibt ja schon mal drei verschiedene Arten, wie Du Dein AS in FM erzeugst/aufrufst. (Auch wenn fast alle der Meinung sind, AS sollte wegen der Geschwindigkeit nativ in FM laufen, mache ich das nicht so. Das debugging eines AS in FM ist einfach Sch… und die Wartung der Scripte auch.)

Und das Grundprinzip hat Dir Skeeve ja gezeigt: Zuerst mußt Du den Feldinhalt in eine AS-Variable packen und die übergibst Du dann als Parameter.
Eine Falle ist halt, wenn der AS-Code in FM läuft, dann kannst Du den Inhalt der Parameter-Variablen wahscheinlich zu Laufzeit nicht sehen. Du siehst nicht, ob z.B. Zeilenenden, quotas, Sonderzeichen usw. die Ausführung abbrechen.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
skybluenova
•->
•->


Anmeldedatum: 04.07.2007
Beiträge: 6

BeitragVerfasst am: 05.07.2007 - 10:50    Titel: Antworten mit Zitat

Danke Dir schonmal vielmals Smile Durch den Rest finde ich schon irgendwie selber durch. Bisher habe ich die Sache als natives AS in FM laufen ... ich schaue mal, ist nur ein sehr kleiner Task der damit erledigt werden muss.

Viele Gruesse
Dennis
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
hweber
•--->
•--->


Anmeldedatum: 01.02.2004
Beiträge: 397

BeitragVerfasst am: 05.07.2007 - 10:53    Titel: Antworten mit Zitat

Und noch weiter:
Ich nehme mal an, Du testest Deine Shell-Scripts im Terminal, also in der Bash.
do shell script ruft aber immer eine Subshell auf und das ist normal eine sh. Entweder mußt Du also angeben, daß do shell script in der bash laufen soll (technote), oder Du mußt im Terminal mit der sh testen.
Voraussetzung ist halt, daß Du sehen und debuggen kannst, was von der Parameter-Variablen wirklich auf der jeweiligen shell, bash oder sh, ankommt.
Seeeehr schnell hat das bei mir noch nie geklappt - aber vielleicht, weil ich es zu selten übe.
;-)
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Fischer-Bayern.de Foren-Übersicht -> AppleScript X Alle Zeiten sind GMT + 2 Stunden
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.


Powered by phpBB © 2001, 2002 phpBB Group
Deutsche Übersetzung von phpBB.de


AppleScript für absolute Starter