Autor
|
Thema: API : setproperty funktioniert nicht (390 mal gelesen)
|
Ulf_K Mitglied Elektrotechniker
Beiträge: 204 Registriert: 20.02.2002
|
erstellt am: 01. Mrz. 2002 13:54 <-- editieren / zitieren --> Unities abgeben:
An alle API-User: Habe Schwierigkeiten beim Schreiben von Properties. Wir tauschen die Artikelnummer von einiger BMK automatisch. Wenn ich dies über "setproperty" mache und den Wert dann wieder lese scheint er diesen auch übernommern zu haben. Schau ich dann im Plan nach ist bei den meisten vorher bearbeiteten BMKs der alte Wert wieder drin. Zum Testen habe ich die Funktion zweimal gestartet und dann sind wirklich alle Artikelnummern getauscht. Kann mir dies Verhalten jemand erklären? Gruß, Ulf
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: E21 V4.3 BL2399 E21 V4.3 API Electric P8 Prof. 2.2.5 HF1 Electric P8 Prof. 2.3.5 Eplan Fluid Addon Eplan ProPanel Addon Electric P8 API <P>Systeme: MS WINDOWS W7 MS Windows Server 2008
|
erstellt am: 12. Mrz. 2002 12:48 <-- editieren / zitieren --> Unities abgeben: Nur für Ulf_K
Hallo Ulf, ich glaub da kann ich Dir helfen. Über das Kommando "setproperty" kannst Du das nicht lösen, das geht nicht! Die Devices bestehen aus einem Component und einem Part. Deshashalb must Du Dir das entsprechende BMK mit einem Iterator EPL_ITERTYPE_DEVICETAGS suchen und dann über das Eplan Kommando EPLAN.EPLAN21.PART.CREATE die Artikelnummer erzeugen. Achtung das C Beispiel in der API Hilfe ist fehlerhaft! Mittels EPLAN.EPLAN21.PART.DELETE kannst Du auch Artikelnummern auf dem selben Weg löschen. Du kannst aber auch noch einfacher eine Variable im Betriebsmittel Dialog des Bauteils in der Reiterkarte Artikel setzen. Artikelnummer z.B. ein "$1" über Kontextmenü "Neu" eintragen und dann wie gewohnt per API die Variable setzen. Das geht auch ist aber nicht so sauber wie die erste Methode. Gruß Fritz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulf_K Mitglied Elektrotechniker
Beiträge: 204 Registriert: 20.02.2002
|
erstellt am: 12. Mrz. 2002 13:29 <-- editieren / zitieren --> Unities abgeben:
Hallo Fritz, das Eigentümliche an der Funktion ist, dass sie funktioniert. Man muss sie nur mehrfach (min 2x) durchführen. Zur Vorgehensweise: Wir müssen an bestimmten BMKs die Artikelnummer tauschen. Wir haben definiert, dass jedes BMK nur eine Artikelnummer beinhaltet (sonst verschluckt sich unser PPS-System). Ich bilde erst einen Iterator über die ITERTYPE_DEVICETAGS und suche nach den BMKs. Habe ich es gefunden so bilde ich den Iterator über die ITERTYPE_PARTS. Hier tausche ich die Artikelnummer (8001) des ersten Parts über SETPROPERTY. Lese ich anschließend das Property aus, so ist es ok. Schaue ich mir nach dem kompletten Programmablauf das BMK unter EPLAN an, so kann es sein (muss nicht) dass die alte Artikelnummer wieder drinsteht. Starte ich mein Programm jedoch zweimal hintereinander so sind dann alle Artikelnummern sicher getauscht. Bist du der Meinung es wäre sicherer zuerst die Artikelnummer zu löschen und dann die neue wieder zu laden? By the way: auf die Beispiele von EPLAN könnte ich bisher verzichten. Gruß Ulf p.s. Wie sieht es eigentlich mit noch undokumentierten (indirekten) Zugriffen aus? Weisst du, ob sich dort bei EPLAN was tut? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: E21 V4.3 BL2399 E21 V4.3 API Electric P8 Prof. 2.2.5 HF1 Electric P8 Prof. 2.3.5 Eplan Fluid Addon Eplan ProPanel Addon Electric P8 API <P>Systeme: MS WINDOWS W7 MS Windows Server 2008
|
erstellt am: 12. Mrz. 2002 16:02 <-- editieren / zitieren --> Unities abgeben: Nur für Ulf_K
Hallo Ulf, also Du hast es eigentlich richtig gemacht mit den Iteratoren. Wie ich Dir schon sagte ist das Setzen der Artikelnummer 8001 aufgrund des objektorientierten Aufbaus der Objekte eigentlich über part_create vorgesehen. In der Api Doku gleich zu Beginn ist eine gute Übersicht über die Verknüpfungen/Verwandtschaften der Objekte. Dort kannst Du die Abhängigkeit erkennen. Warum das über setproperty beim 2 mal geht weiss ich nicht, ich würd mich aber auf Dauer nicht drauf verlassen!!! Ich weiss auch nicht ob das part-Objekt dann vollständig und korrekt gesetzt ist??? Zu Deiner Frage mit dem vorherigen Löschen. Meine Meinung ist dass es eh besserer(sicherer) Stil ist zuerst die Trümmer wegzuräumen wenn sie nicht mehr gebraucht werden und dann wieder neu zu setzen. Ich mach das eigentlich immer so. Sicher können wir noch drüber diskutieren warum es eben an manchen Stellen nicht mittels setproperty geht Properties zu setzen!! Zu Deiner letzten Frage: Man bekommt schon Auskunft über undokumentierte Funktionen von Eplan aber halt ohne Gewähr!!! Mal ehrlich willst Du Dich auf solche Spielchen einlassen und das Risiko eingehen, dass es nach Murphy beim nächsten Release sicher nicht mehr so funktioniert? Die von Dir erfragte Funktion zum Setzen der P-Hierarchie ist z.B. so ein Fall. Aber das muss jeder für sich entscheiden!! Bei der Größe meiner API Anwendungen werde ich es jedenfalls nicht mal versuchen. Es tut sich schon was bei Eplan auch im API Bereich doch leider nicht immer so schnell wie wir uns das wünschen. Deshalb je mehr gleiche Forderungen und Druck von Anwenderseite kommt umso eher wird auch was realisiert. Gruß Fritz Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulf_K Mitglied Elektrotechniker
Beiträge: 204 Registriert: 20.02.2002
|
erstellt am: 12. Mrz. 2002 16:22 <-- editieren / zitieren --> Unities abgeben:
Hallo Fritz, die Sache werde ich mir mal genauer ansehen. Mein (lösbares) Problem ist die Tatsache, dass ich aus unserem PPS-System nur die Referenz zwischen BMK und Artikelnummer bekomme. Dann müsste ich, bevor ich den Artikel lösche, die Stückzahl vorher auslesen. Ja, möglich ist es. Werde es demnächst mal testen. Übrigens, nutzt ihr als PPS-System SAP R3? Habt ihr online- oder offline-Schnittstellen? Wie konfiguriert ihr die Generierungparameter? Unser PPS-Sytem ist eine IBM mit einer DB aus der ersten Steinzeit. Aus diesem Grunde habe ich mich (fast) komplett abgekoppelt und eine ACCESS-DB zum für die Konfiguration hinterlegt die über eine Software gefüllt wird. Grüsse Ulf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
FML Mitglied
Beiträge: 491 Registriert: 11.03.2002 Aktuell: E21 V4.3 BL2399 E21 V4.3 API Electric P8 Prof. 2.2.5 HF1 Electric P8 Prof. 2.3.5 Eplan Fluid Addon Eplan ProPanel Addon Electric P8 API <P>Systeme: MS WINDOWS W7 MS Windows Server 2008
|
erstellt am: 13. Mrz. 2002 08:21 <-- editieren / zitieren --> Unities abgeben: Nur für Ulf_K
Hallo Ulf, mit part.delete musst Du die Stückzahl vorab nicht auslesen. Schau Dir mal die API-Doku zum Kommando an. SAP/R3 nutzen wir nicht. Wir sind PPS seitig momentan in der Umbruchphase un niemand kann gerade so genau sagen wo der Weg hinführt. Ich vermute mal nach SAP, weil wir es in Teilbereichen schon einsetzen. Deshalb wird es bei uns eine Offline Ankopplung an unser PPS geben welche die EPLAN-Artikelverwaltung mit Access verwendet. Diese Schnittstelle ist aber so konfiguriert, dass wir jederzeit auf SAP schwenken können. Momentan bin ich in der Testphase. Ich glaube wir haben doch einige Gemeinsamkeiten in der Anbindung von Eplan. Bei dem genannten PPS von IBM sprichst Du nicht zufälligerweise von COPICS/CICS ?? Das haben wir auch noch!!! Grüße Fritz
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Ulf_K Mitglied Elektrotechniker
Beiträge: 204 Registriert: 20.02.2002
|
erstellt am: 13. Mrz. 2002 11:27 <-- editieren / zitieren --> Unities abgeben:
Hallo Fritz, unser jetziges PPS-System ist selbstgestrickt. Die Artikeldatenbank unter EPLAN habe ich zu Fuss angelegt, da die Klassifizierung der für uns relevanten Teile seit 10 Jahren nicht mehr gepflegt wurde. Zudem fehlen die logischen Informationen für Kabel und Schütze. Doch trotzdem können wir uns gerne über dieses Thema unterhalten. Zudem wir im Moment auch gerade das PPS-System wecheln und höchtwahrscheinlich SAP zum Tragen kommt. Grüsse Ulf Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |