Hot News:

Unser Angebot:

  Foren auf CAD.de (alle Foren)
  ENOVIA SmarTeam
  CATIA / SmarTeam DirtyFlag

Antwort erstellen  Neues Thema erstellen
CAD.de Login | Logout | Profil | Profil bearbeiten | Registrieren | Voreinstellungen | Hilfe | Suchen

Anzeige:

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen nächster neuer Beitrag | nächster älterer Beitrag
Autor Thema:  CATIA / SmarTeam DirtyFlag (1888 mal gelesen)
loop2
Mitglied
Softwareentwickler ERP/PLM


Sehen Sie sich das Profil von loop2 an!   Senden Sie eine Private Message an loop2  Schreiben Sie einen Gästebucheintrag für loop2

Beiträge: 21
Registriert: 12.10.2004

erstellt am: 12. Jan. 2005 14:01    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Hallo!

In der SmarTeam DB gibt es ein Feld "TDM_CAD_DIRTYFLAG". Ich kann damit nichts anfangen und muss feststellen, dass CATIA beim Checkin und Release dieses Flag setzt.

Wenn ich einen Checkin über die SmarTeam API mache, wird dieses "Flag" (wohl eher ein Zähler oder sowas) hingegen nicht automatisch gesetzt. Tatsache ist, dass meine Teile nur ReadOnly geladen werden - während die von CATIA freigegeben Teile auch als freigegeben (grüner Hacken) geladen werden. Da ich sonst keinen Unterschied finden kann vermute ich hier einen Zusammenang.

Kann mir jemand sagen, worum es hier geht - respektive wie ich es (ohne CATIA) richtig setzten kann???


Danke und Gruß

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 12. Jan. 2005 17:00    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für loop2 10 Unities + Antwort hilfreich

Hi,

in dem Dirty Flag wird ein Wert (ich glaube das ist der absolute Zeitzähler seit Meschengedenken :-)) abgelegt.
Mit diesem Wert kann das SmCADInterface agieren um z.B. zu entscheiden ob die Strukturen von untergeordneten Baugruppen in ST aktualisiert werden müssen oder nicht.

Dieses dirty Flag taucht meines Wissens auch in den Dateien irgentwo auf. Kurz gesagt, ist der Wert in der Datei gleich dem Wert in dem SMARTEAM Dirty Flag, dann braucht nichts gemacht zu werden.

Sobald du ein File phys. speicherst ändert sich dieses Flag und somit ist beim nächsten SMARTEAM Save auch ein Unterschied zwischen ST und File Dirty Flag vorhanden und die Routinen für Update der Strukturen laufen in ST durch, das Dirty Flag in ST wird auf den Wert der Datei gesetzt.

Wenn Du eine Freigabe durch die API machst, muß das DirtyFlag auch nicht verändert werden, da du ja kein phys. speichern des Files vornimmst und sich in dem File auch keine Strukturen geändert haben können.


Mit dem Status und dem späteren öffnen hat das Dirty Flag jedoch nichts zu tun.

Was machst Du denn in Deiner API ?
Wenn Du eine Freigabe durchführst, dann muß der Status in ST auch auf Freigegeben gesetzt sein. Da es sich hierbei um einen internen Prozess handelt und das Feld STATE ein Systemfeld ist, gibt es meines erachtens nur schwarz/weiß.
Wenn über CAD oder API eine Freigabe erfolgreich durchgeführt wurde, dann steht das Feld State auch auf Released.... wenn nicht erfolgreich dann keine Änderung des Feldes.

Welche (Haupt-) Methode verwendest Du denn in Deiner API um die Teile freizugeben ?
Wenn ich Dich richtig Verstehe wird das Teil dann in CATIA wieder geöffnet und zeigt da seinen Status nicht richtig an ?... wie öffnest Du es denn in CATIA ?... einfach über "Öffnen zum..." über SAMRTEAM oder auch über API ?

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

loop2
Mitglied
Softwareentwickler ERP/PLM


Sehen Sie sich das Profil von loop2 an!   Senden Sie eine Private Message an loop2  Schreiben Sie einen Gästebucheintrag für loop2

Beiträge: 21
Registriert: 12.10.2004

erstellt am: 12. Jan. 2005 18:34    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Erst mal danke für die (sehr gute) Antwort. Deine Erklärungen decken sich schon mal sehr gut mit dem beobachteten Verhalten.

Zitat:
Wenn Du eine Freigabe durch die API machst, muß das DirtyFlag auch nicht verändert werden, da du ja kein phys. speichern des Files vornimmst und sich in dem File auch keine Strukturen geändert haben können.


Ich mache den ersten Save (vor CATIA) und evtl. auch gleich das Release dazu. Und da ich bis dato vom Dirty-Flag nichts wusste, ist es auch noch nicht gesetzt.
Wenn ich das Teil später in CATIA öffne, sollte die SmarTeam Integration selbständig erkennen, dass es ein freigegebenes Bauteil ist (grüner Haken). Tut es aber nicht - und behauptet, dass Teil wäre verändert worden (mit Deinen Infos ist das Verhalten ja erklärbar).


Zitat:

Was machst Du denn in Deiner API ?
Wenn Du eine Freigabe durchführst, dann muß der Status in ST auch auf Freigegeben gesetzt sein. Da es sich hierbei um einen internen Prozess handelt und das Feld STATE ein Systemfeld ist, gibt es meines erachtens nur schwarz/weiß.
Wenn ich Dich richtig Verstehe wird das Teil dann in CATIA wieder geöffnet und zeigt da seinen Status nicht richtig an ?


Ich rufe die API über das CADInterface(init, vorbereitung und CADInterface.save() oder approve()) auf. Über SmObject habe ich auch getestet (ohne CADInterface) - mit selbem Verhalten:

Wenn ich die Teile mit SmarTeam ansehe ist alles in Ordnung (also "weiß"). Wenn ich aber in Catia gehe dann ist es nicht in Ordnung (also "schwarz").


Zitat:

... wie öffnest Du es denn in CATIA ?... einfach über "Öffnen zum..." über SAMRTEAM oder auch über API ?


I.d.R. einfach durch einen Doppelklick auf die Datei (durch den User). Oder über Doppelklick in SmarTeam.


Ob ich aber mit dem Dirty-Flag wirklich auf der richtigen Spur bin weiß ich nicht 100%ig. Wenn ich den ganzen Vorgang nicht über API mache, sondern über die CATIA-GUI, dann funktioniert alles und das Dirty-Flag wird gesetzt.
Wenn ich nun aber per SQL mal das Dirty-Flag falsch setze, dann funktioniert die Datei trotzdem noch... ???


Ich werde das Dirty Flag auf jeden Fall mal genauer unter die Lupe nehmen. Über weitere Tipps wäre ich sehr froh (u.a. wie ich es automatisch setzen könnte)!!
Ach ja, und danke nochmal - ich finde es immer wieder überaschend, auf exklusive Fragen solch kompetente Antworten zu erhalten!

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 13. Jan. 2005 08:42    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für loop2 10 Unities + Antwort hilfreich

Hi,

kannst Du das Teil aus CATIA heraus denn lokalisieren und öffnet sich dann die Profilkarte des (freigegebene) Bauteiles ?

Hast Du das Behavior beim Anlegen des Datensatzes gesetzt ?

Seit der 13er wird ein Behavior Attribut im Datensatz mit herangezogen um zu erkennen ob das Object durch das CAD oder durch den Anwender (RMB) angelegt wurde.
Vielleicht wertet die CATIA Integration dieses ebenfalls mit aus.

Noch kurz zur API :
Das SmCadInterface für die eigenen Programmierung zu nutzen kann unter Umständen zu ungeahnten Problemen führen, wenn Du es mit einer schon existierenden Integration verwendest.

Wenn Du eine eigenen Instanz vom SmCad aufmachst und diese mit der Integration 'CATIA' initialisierst, gleichzeitig aber auch noch ein initialisiertes CATIA hast, dann kann so einiges passieren, was unter normal umständen nicht passieren würde.
Bei mir hat z.B. die Programmierung für Excel (in meiner eigenen DLL) anschließend die Integration in Excel zerschossen obwohl es getrennt Tasks waren.
Mein Fazit daraus war, das ich das SmCadInterface nur für eigenen Integrationen (z.B. 'ne Outlook Integration die ich geschrieben habe) nutze und für die Programmierung auf ST Seite meistens die SmUtils und SmObject verwende.


Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

loop2
Mitglied
Softwareentwickler ERP/PLM


Sehen Sie sich das Profil von loop2 an!   Senden Sie eine Private Message an loop2  Schreiben Sie einen Gästebucheintrag für loop2

Beiträge: 21
Registriert: 12.10.2004

erstellt am: 13. Jan. 2005 13:26    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

Zitat:
kannst Du das Teil aus CATIA heraus denn lokalisieren und öffnet sich dann die Profilkarte des (freigegebene) Bauteiles ?

Ja, das funktioniert. Im SmarTeam Menü ist unter "Lebenszyklus" nur "NewRelease" und "Obsolete" markiert (also auch das klappt).
Nur ist CATIA der Meinung das Teil hat sich geändert - was aber nicht der Fall ist. Es ist das Einbahnstraßen Symbol zu sehen.

Zitat:
Hast Du das Behavior beim Anlegen des Datensatzes gesetzt ?

Ich verwende die R12. Welches Behavior meintest Du denn? Der Begriff taucht ja in der API öfters aus. Beim Checkin über das CADInterface gebe ich das "TDM_CATIA_PART" als "INTEGRATION_BEHAVIOR" mit. Die ISmIxfClassesBehaviors "Scherze" habe ich nicht angeschaut.


Zitat:
Noch kurz zur API :
Das SmCadInterface für die eigenen Programmierung zu nutzen kann unter Umständen zu ungeahnten Problemen führen, wenn Du es mit einer schon existierenden Integration verwendest.

Ich habe eine Version mit und eine ohne (nur SmObject, etc.). Beides mal das selbe Ergebnis.


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 13. Jan. 2005 13:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für loop2 10 Unities + Antwort hilfreich

Hi,

schau mal in dem Object nach  TDM_SUPPORTED_CLB ;  TDM_INTEGRATION_MANAGED und nach TDM_FILE_VERSION.

Wenn die Sachen auch ausgefüllt sind (sofern vorhanden, ich habe gerade die R13 und bin dabei die R14 zu installieren) so wie bei nativ CATIA gespeicherten Doc's dann ist es tatsächlich so, dass die im Interface das DIRTY_FLAG wesentlich mehr auswerten als in anderen CAD's (Im SW, SE und IV habe ich so ein Verhalten noch nicht gesehen)

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

loop2
Mitglied
Softwareentwickler ERP/PLM


Sehen Sie sich das Profil von loop2 an!   Senden Sie eine Private Message an loop2  Schreiben Sie einen Gästebucheintrag für loop2

Beiträge: 21
Registriert: 12.10.2004

erstellt am: 13. Jan. 2005 15:31    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities

TDM_SUPPORTED_CLB: OK
Wird nur beim Checkin über's CAD Interface gesetzt. Dann aber gleich (171).

TDM_INTEGRATION_MANAGED: nicht vorhanden
(zumindest nicht in TN_DOCUMENTATION)

TDM_FILE_VERSION: anders
Checkin über CATIA: 0
Checkin über SmarTeam-API: -2147483647

Die Korrektur per SQL im Nachhinein zeigt hier aber keine Veränderung.
-->?


Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

ChristianS
Moderator
Leiter Kundenbetreuung


Sehen Sie sich das Profil von ChristianS an!   Senden Sie eine Private Message an ChristianS  Schreiben Sie einen Gästebucheintrag für ChristianS

Beiträge: 635
Registriert: 27.09.2000

erstellt am: 14. Jan. 2005 12:13    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für loop2 10 Unities + Antwort hilfreich

Hi,

sieht so aus als sollte die CATIA Integration schlauer sein als alle anderern  :-)

Ich vermute dann, dass für die Anzeige in CATIA tatsächlich noch das Dirty_Flag mit herangezogen wird.

Ich mach mich mal schlau welcher Wert dieses Dirty Flag denn nun genau ist und ob man den auch selber herausfinden / ändern kann.

Gruß
Christian

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

KleinerMuck
Mitglied



Sehen Sie sich das Profil von KleinerMuck an!   Senden Sie eine Private Message an KleinerMuck  Schreiben Sie einen Gästebucheintrag für KleinerMuck

Beiträge: 111
Registriert: 12.08.2002

erstellt am: 14. Jan. 2005 21:49    Editieren oder löschen Sie diesen Beitrag!  <-- editieren / zitieren -->   Antwort mit Zitat in Fett Antwort mit kursivem Zitat    Unities abgeben: 1 Unity (wenig hilfreich, aber dennoch)2 Unities3 Unities4 Unities5 Unities6 Unities7 Unities8 Unities9 Unities10 Unities Nur für loop2 10 Unities + Antwort hilfreich

Hallo loop2,

kann das Problem evtl. einfach im Parameter Mapping liegen? Wenn bspw. beim save und checkin durch Dein script ein gemappter Wert in SMARTEAM geändert wird, würde dies durch CATIA als Änderung der Datei betrachtet werden - so bspw. bei dem Revision Attribut.

Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP

Anzeige.:

Anzeige: (Infos zum Werbeplatz >>)

Darstellung des Themas zum Ausdrucken. Bitte dann die Druckfunktion des Browsers verwenden. | Suche nach Beiträgen

nächster neuerer Beitrag | nächster älterer Beitrag
Antwort erstellen


Diesen Beitrag mit Lesezeichen versehen ... | Nach anderen Beiträgen suchen | CAD.de-Newsletter

Administrative Optionen: Beitrag schliessen | Archivieren/Bewegen | Beitrag melden!

Fragen und Anregungen: Kritik-Forum | Neues aus der Community: Community-Forum

(c)2023 CAD.de | Impressum | Datenschutz