| |
 | Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für Creo |
| |
 | Extended Maintenance & Support I Abkündigung der Abas ERP Version ERP 20, eine Pressemitteilung
|
Autor
|
Thema: Lisp- Makro Teilename (1183 mal gelesen)
|
edgar Mitglied Dipl. Ing. Maschinenbau
 
 Beiträge: 386 Registriert: 06.06.2001 ME10 8.7F OSDM 11.50A OSDD 11.5 HPUX 10.20 C3600
|
erstellt am: 24. Jul. 2003 10:15 <-- editieren / zitieren --> Unities abgeben:         
Hallo, habe angefangen ein Lisp Programm zu schreiben, um PKG-Dateien aus einer Liste automatisch zu laden, und diese dann weiterzuverarbeiten. Der Ladevorgang funktioniert, nur beim Umbenennen haperts noch. Die Syntax im OSD dazu ist: change_name_pa art_asmb "/part1" :name "part2" Die Syntax in Lisp? Meine Versuche scheiterten alle. z.B. k-action '(sd-call-cmds (change_name_pa art_asmb namealt1 :name nameneu)) wobei namealt1 laut Displayausgabe "/10100269_ZYLINDERSCHRAUBE_M16X150" und nameneu "10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg" beträgt. Kann mir jemand weiterhelfen? Gruß Edgar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 24. Jul. 2003 10:30 <-- editieren / zitieren --> Unities abgeben:          Nur für edgar
Zitat:
...wobei namealt1 laut Displayausgabe "/10100269_ZYLINDERSCHRAUBE_M16X150" und nameneu "10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg" beträgt.
CHANGE_NAME_PA verlangt für beide Namen den ganzen Pfad, in deinem Beispiel müsste nameneu also "/10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg" heissen! ------------------ Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
edgar Mitglied Dipl. Ing. Maschinenbau
 
 Beiträge: 386 Registriert: 06.06.2001 ME10 8.7F OSDM 11.50A OSDD 11.5 HPUX 10.20 C3600
|
erstellt am: 24. Jul. 2003 10:57 <-- editieren / zitieren --> Unities abgeben:         
Funktioniert leider auch nicht. Hab das ganze mal als funktion1 defeniert: (setq namealt1 (concatenate 'string "\"/" namealt "\"")) (setq nameneu (concatenate 'string "\"" next-line "\"")) (setq funktion (concatenate 'string "  art_asmb " namealt1 " :name " nameneu)) (setq funktion1 (concatenate 'string "change_name_pa " funktion " complete"))  k-action '(sd-call-cmds (funktion1)) wobei funktion1 laut Displayausgabe change_name_pa art_asmb "/10100269_ZYLINDERSCHRAUBE_M16X150" : name "10100269_ZYLINDERSCHRAUBE_ISO_4762_M16_X_150_-_10.9.pkg" complete beinhaltet Wenn ich den Ausdruck in die Befehlszeile eingebe, klappt die Umbenennung problemlos. Nur leider nicht im Macro. Wie bekomme ich funktion1 zur Ausführung im Makro? Gruß Edgar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 24. Jul. 2003 11:13 <-- editieren / zitieren --> Unities abgeben:          Nur für edgar
|
edgar Mitglied Dipl. Ing. Maschinenbau
 
 Beiträge: 386 Registriert: 06.06.2001 ME10 8.7F OSDM 11.50A OSDD 11.5 HPUX 10.20 C3600
|
erstellt am: 24. Jul. 2003 12:19 <-- editieren / zitieren --> Unities abgeben:         
Habe wieder was dazugelernt, aber das Programm läuft immer noch nicht. Hab jetzt die Eingabe aufs Wesentliche beschränkt. Dazu im OSD ein Teil test angelegt. (defun datname1 () (setq namealt (format nil "/~a" "\"test\"")) (setq nameneu (format nil "~a" "\testneu\"")) k-action '(sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt :NAME nameneu complete)) wobei namealt laut Displayausgabe "/test" nameneu "testneu" Leider keine Reaktion bei der Programmausführung. Befehlszeileneingabe funktioniert aber. CHANGE_NAME_PA :PART_ASMB "/test" :NAME "testneu" complete Kann man sich über trace zeilenweise anzeigen lassen was bei der Programmausführung passiert? Gruß Edgar Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 24. Jul. 2003 12:57 <-- editieren / zitieren --> Unities abgeben:          Nur für edgar
So, jetzt mal ganz von Adam und Eva angefangen. Wie rufst du denn diese Funktion auf? Interaktiv aus der Benutzeroberfläche kann man LISP-Funtionen nur über einen Dialog aufrufen! Die ganze Geschichte mit den Backslashes stimmt auch nicht: (setq namealt (format nil "/~a" "test")) ------------------ Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
edgar Mitglied Dipl. Ing. Maschinenbau
 
 Beiträge: 386 Registriert: 06.06.2001 ME10 8.7F OSDM 11.50A OSDD 11.5 HPUX 10.20 C3600
|
erstellt am: 24. Jul. 2003 13:28 <-- editieren / zitieren --> Unities abgeben:         
Nach deiner Beschreibung sollte das Programm so aussehen (defun datname1 () (setq namealt (format nil "/~a" "test")) (setq nameneu (format nil "/~a" "testneu")) k-action '(sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt :NAME nameneu complete)) Leider keine Reaktion bei der Programmausführung.
Das Programm ruf ich in der Befehlszeile auf über (datname1)
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Walter Geppert Moderator Frank und Frei
     

 Beiträge: 2166 Registriert: 12.12.2000
|
erstellt am: 24. Jul. 2003 14:05 <-- editieren / zitieren --> Unities abgeben:          Nur für edgar
Und genau das geht eben nicht, du brauchst einen Dialog: (sd-defdialog 'datname1 :dialog-title "Datei umbenennen" :dialog-control :sequential :toolbox-button nil :ok-action '(progn (setq namealt (format nil "/~a" "test")) (setq nameneu (format nil "/~a" "testneu")) (sd-call-cmds (CHANGE_NAME_PA :PART_ASMB namealt :NAME nameneu)) );;progn );;end-of-dialog
Das kannst du dann mit datname1 (ohne Klammern!) in der Befehlszeile aufrufen. Das obenstehende Beispiel ist "quick and dirty" geschrieben, wie man richtig mit Dialogen umgeht steht hier: installdir\help\Common\documentation\integration_kit\reference\dg_manual.html------------------ Grüße aus Wien Walter DC4 Technisches Büro GmbH Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |