| |
| Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX |
| |
| Teamcenter Active Workspace, ein Seminar am 18.11.2024
|
Autor
|
Thema: NULL or not a NULL (855 / mal gelesen)
|
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006 Intel Xeon 3,2GHz 12GB DDR3 NVIDIA Quadro 4000 Win 7 (64bit) SE ST8 MP10 SE ST10 (Test) TC 10.1.5
|
erstellt am: 05. Apr. 2016 14:24 <-- editieren / zitieren --> Unities abgeben:
Hallo, im Access Management kann ich mit "Has Form Attribute" steuern wer welches Recht bekommt wenn ein Attribut nen bestimmten Wert hat. Das geht auch bis hierhin. Jetzt habe ich den Anwendungsfall das ich die Rechtevergabe benötige wenn ein Stringattribut befüllt ist (mit was auch immer). Ich bekomme es hin, die Regel so aufzubauen das ich Rechte zuweisen kann, wenn das Attribut leer ist. "=NULL" Ich bekomme es nicht hin, die Regel so aufzubauen das ich rechte zuweisen kann, wenn das Attribut nicht leer ist! --> HILFE! Habe schon folgendes Erfolgslos versucht: =IS_NOT_NULL =NOT_NULL =* ="*" >0 >NULL ....und ein paar Teile die mir jetzt zu peinlich wären sie hier zu Posten.... Die Doku gibt leider auch nichts her Grüße Corax ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung [Diese Nachricht wurde von InvCorax am 05. Apr. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 05. Apr. 2016 14:57 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
>>"Has Form Attribute" >>wenn das Attribut nicht leer ist! Aus der Hilfe zu TC10.1.2: Input Arguments form-storage-class:attribute=value value The value for which the attribute is evaluated. Das verstehe ich so, dass hier nur ein konkreter Wert abgefragt werden kann, keine Vergleichsoperation.
------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006 Intel Xeon 3,2GHz 12GB DDR3 NVIDIA Quadro 4000 Win 7 (64bit) SE ST8 MP10 SE ST10 (Test) TC 10.1.5
|
erstellt am: 05. Apr. 2016 15:04 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Rainer Schulze: >>"Has Form Attribute" >>wenn das Attribut nicht leer ist!Aus der Hilfe zu TC10.1.2: Input Arguments form-storage-class:attribute=value value The value for which the attribute is evaluated. Das verstehe ich so, dass hier nur ein konkreter Wert abgefragt werden kann, keine Vergleichsoperation.
Also wir benutzen NOCH 8.3, und hier kann ich versichern das --> NULL <-- funktioniert, und wenn das eine funktioniert, muss es doch auch nen Wert für das andere geben, man muss ihn nur finden, und genau das schaff ich gerade nicht ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 05. Apr. 2016 15:24 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
>>und hier kann ich versichern das --> NULL <-- funktioniert, Ein Null-String ist nach allgemeiner Lesart ein leerer String. Oder schreibst Du wie beim Query Builder "IS_NULL" und "IS_NOT_NULL"? >>Also wir benutzen NOCH 8.3 Dann schau doch mal dort in die Beschreibung des Access Managers. >>und wenn das eine funktioniert, muss es doch auch nen Wert für das andere geben, man muss ihn nur finden, Ich lerne gerne dazu. Teamcenter mit seinen vielen Details bringt auch mich immer wieder an meine Grenzen. ------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006 Intel Xeon 3,2GHz 12GB DDR3 NVIDIA Quadro 4000 Win 7 (64bit) SE ST8 MP10 SE ST10 (Test) TC 10.1.5
|
erstellt am: 06. Apr. 2016 07:43 <-- editieren / zitieren --> Unities abgeben:
Zitat: Ein Null-String ist nach allgemeiner Lesart ein leerer String.
Joa, das geht ja auch... ich benutze nur "NULL". Zitat: Dann schau doch mal dort in die Beschreibung des Access Managers.
--> Zitat: Die Doku gibt leider auch nichts her
Zitat: Ich lerne gerne dazu.
Ist das nicht die Logische Konsequenz das wenn es 0 als Wert für nen String gibt, es auch 1 geben muss? Ich sehe das als Grundprinzip in der Digitalen Welt an, wenn Teamcenter, bzw. Siemens das anders sieht bekommen die bald ein wirkliches Problem mit mir Hat noch jemand nen Vorschlag den ich Probieren könnte? Nutzt denn keiner dieses Has Form Attribute mit nem unbestimmten String? ....OK vieleicht geh ich da falsch ran, dann hab ich ne alternative frage:
Ich unterbinde im Access Management das eine bestimmte Gruppe CAD-Datasets Kopieren darf. Das geht soweit auch. Wenn jetzt einer aus der Gruppe einen Artikel im Rich Client kopieren will, kommt auch die entsprechende Fehlermeldung. Leider wird aber trotzdem ein neuer Artikel angelegt - ohne CAD-Dataset. Jemand ne ahnung wie ich verhindern kann das der leere Artikel angelegt wird? Oder wie ich es auch schaffe das die BOMViewRevision auch nicht mit Kopiert wird? Die scheint da nämlich genau so wenig raus zu nehmen zu sein wie in den DeepCopyRules Grüße Corax ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Moderator cadadmin
Beiträge: 5441 Registriert: 19.05.2000 (12-2023) --------------------------------------------- [stable] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, SEEC, Multi-CAD BCT-Inspector Neutral v22R2 --------------------------------------------- [testing] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 BCT-Inspector Neutral v22R2 @M7720 Win10 (21H2)
|
erstellt am: 06. Apr. 2016 08:43 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
Zitat: Original erstellt von InvCorax: Ist das nicht die Logische Konsequenz das wenn es 0 als Wert für nen String gibt, es auch 1 geben muss?
Nein. Es _kann_ ihn geben, genauso wie er den Wert "wauwau" haben könnte. Und ein String wird im AM nur anhand des Werts verglichen. 0 und 1 trifft bei einem Attribut von Datentyp Bool zu.
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Moderator cadadmin
Beiträge: 5441 Registriert: 19.05.2000 (12-2023) --------------------------------------------- [stable] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, SEEC, Multi-CAD BCT-Inspector Neutral v22R2 --------------------------------------------- [testing] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 BCT-Inspector Neutral v22R2 @M7720 Win10 (21H2)
|
erstellt am: 06. Apr. 2016 08:53 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
Zitat: Original erstellt von InvCorax: ....OK vieleicht geh ich da falsch ran, dann hab ich ne alternative frage:Ich unterbinde im Access Management das eine bestimmte Gruppe CAD-Datasets Kopieren darf. Das geht soweit auch. Wenn jetzt einer aus der Gruppe einen Artikel im Rich Client kopieren will, kommt auch die entsprechende Fehlermeldung. Leider wird aber trotzdem ein neuer Artikel angelegt - ohne CAD-Dataset.
Mit "Kopieren" ist "SpeichernUnter" gemeint, oder. Und die User die das machen, sollen das auch generell dürfen, aber nur im Fall dass eine bestimmte Property einen Wert xy bzw. irgendeinen Wert ausser "null" hat soll das verweigert werden ? Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006
|
erstellt am: 06. Apr. 2016 09:27 <-- editieren / zitieren --> Unities abgeben:
genau... sie dürfen immer Kopieren außer, möglichkeit 1: ein CAD Dataset ist vorhanden möglichkeit 2: wenn ein CAD Dataset vorhanden ist, gibt es auch immer ein CAD gewicht, also hätte ich das property abgefragt - wenn befüllt dann kein Zugriff. Mit NULL gehts ja wie gesagt, aber so rum muss ich generell Kopieren verbieten und es für die Gruppe öffnen wenn das Gewicht leer ist. Theroretisch geht das auch, aber funktioniert aus irgendeinem Grund nicht. Ich denke das "Working" am "POM_application_object" wiegt irgendwie mehr als die neue Regel - egal wo ich die platziere... Möglichkeit 1 wäre mir die liebste, aber da bin ich gefühlt weiter weg von ner Lösung, da ich Denke das es schwieriger ist schon das zuweisen der ID zu untersagen wenn ein Dataset vorhanden ist.
Ja ich meine "Speichern unter" wenn ich Kopieren schreibe ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Moderator cadadmin
Beiträge: 5441 Registriert: 19.05.2000 (12-2023) --------------------------------------------- [stable] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, SEEC, Multi-CAD BCT-Inspector Neutral v22R2 --------------------------------------------- [testing] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 BCT-Inspector Neutral v22R2 @M7720 Win10 (21H2)
|
erstellt am: 06. Apr. 2016 10:29 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
Zitat: Original erstellt von InvCorax: genau... sie dürfen immer Kopieren außer,möglichkeit 1: ein CAD Dataset ist vorhanden
Wie schaut das aus ? Gibts in derselben Relation auch noch andere Datasets ? Wenn nein kannst du wie ursprünglich angedacht dieses reference attribute mit "Has Attribute" abfragen, da ist 0/1 null_tag/nonnull value. Wenn ja, brauchst du eine Runtime Property die eben true/false für den Umstand "CAD Dataset vorhanden" liefert die dann verwendet werden kann. Oder eine CompoundProperty auf der Revision: ItemRevision:meineRelation:meinCadDatasetType:object_type befragen. Da kann man dann den String vergleichen. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
Rainer Schulze Ehrenmitglied V.I.P. h.c. Dipl.-Ing. im Ruhestand
Beiträge: 4419 Registriert: 24.09.2012
|
erstellt am: 06. Apr. 2016 11:38 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
>>Leider wird aber trotzdem ein neuer Artikel angelegt - ohne CAD-Dataset. Die klassische Lösung für dieses Problem liegt in der Deklaration unterschiedlicher Item-Typen. Da wären mal auf Anhieb Fertigungsteil, Kaufteil, eigenes technisches Dokument, Organisationsdokument, Dokumente von Kunden und Lieferanten. Über unterschiedliche Item-Typen können die je nach Bedarf unterschiedlich behandelt werden.
------------------ Rainer Schulze Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006 Intel Xeon 3,2GHz 12GB DDR3 NVIDIA Quadro 4000 Win 7 (64bit) SE ST8 MP10 SE ST10 (Test) TC 10.1.5
|
erstellt am: 06. Apr. 2016 12:23 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von Rainer Schulze: >>Leider wird aber trotzdem ein neuer Artikel angelegt - ohne CAD-Dataset.Die klassische Lösung für dieses Problem liegt in der Deklaration unterschiedlicher Item-Typen. Da wären mal auf Anhieb Fertigungsteil, Kaufteil, eigenes technisches Dokument, Organisationsdokument, Dokumente von Kunden und Lieferanten. Über unterschiedliche Item-Typen können die je nach Bedarf unterschiedlich behandelt werden.
Da hast du ansich Recht, aber..... es geht hier um die Problematik Elektro-Konstruktion und Mech-Kon. Jetzt haben wir Mech, Elo und Mechatronische Bauteile.... Die Lösung ist entweder 3 Itemtypen, dafür Killen mich die Leute wenn ich dennen erkläre das sie das vorher wissen und festlegen müssen... Oder "eins mit allem" (like Buddha) ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Moderator cadadmin
Beiträge: 5441 Registriert: 19.05.2000 (12-2023) --------------------------------------------- [stable] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, SEEC, Multi-CAD BCT-Inspector Neutral v22R2 --------------------------------------------- [testing] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 BCT-Inspector Neutral v22R2 @M7720 Win10 (21H2)
|
erstellt am: 06. Apr. 2016 12:34 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
|
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006
|
erstellt am: 06. Apr. 2016 13:03 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von ThomasZwatz:
Wie schaut das aus ? Gibts in derselben Relation auch noch andere Datasets ? Wenn nein kannst du wie ursprünglich angedacht dieses reference attribute mit "Has Attribute" abfragen, da ist 0/1 null_tag/nonnull value. Wenn ja, brauchst du eine Runtime Property die eben true/false für den Umstand "CAD Dataset vorhanden" liefert die dann verwendet werden kann. Oder eine CompoundProperty auf der Revision: ItemRevision:meineRelation:meinCadDatasetType bject_type befragen. Da kann man dann den String vergleichen.
Danke Thomas, in der Richtung werd ich mal n bischen was versuchen....ist vermutlich das aussichtsreichste.... ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006 Intel Xeon 3,2GHz 12GB DDR3 NVIDIA Quadro 4000 Win 7 (64bit) SE ST8 MP10 SE ST10 (Test) TC 10.1.5
|
erstellt am: 06. Apr. 2016 15:19 <-- editieren / zitieren --> Unities abgeben:
|
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006
|
erstellt am: 06. Apr. 2016 16:36 <-- editieren / zitieren --> Unities abgeben:
Zitat: Original erstellt von ThomasZwatz:
Oder eine CompoundProperty auf der Revision: ItemRevision:meineRelation:meinCadDatasetType bject_type befragen. Da kann man dann den String vergleichen.
kann es sein das der Wert kein String ist? Habe jetzt ein Compound entsprechend gemacht. Bekomme im Formular als Ergebnis "SE Part" im entsprechenden Attribut. Aber irgendwie packt es Access Management des nich.... Habs wieder mit Has Form Attribute versucht, wie folgt: =SE Part =SE* =*Part =* greift leider nichts davon.... Das Compound wird im Form auch blau angezeigt...mit Link zum Part. Bin da ja vieleicht nicht so fit das richtig einzuschätzen, aber wie ein String sieht das nicht aus. Muss ich da noch ein Compound zum Compound anlegen?! OMG! Wenns Funktioniert muss ich das für jedes SE Dataset machen aber wenigstens könnte es Funktionieren wenn ich das noch schaffe.... ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
ThomasZwatz Moderator cadadmin
Beiträge: 5441 Registriert: 19.05.2000 (12-2023) --------------------------------------------- [stable] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, SEEC, Multi-CAD BCT-Inspector Neutral v22R2 --------------------------------------------- [testing] NX2007(2027.5020) + SE2023 U6 + TC13.3.0.3, RAC +AWC6.2.2 BCT-Inspector Neutral v22R2 @M7720 Win10 (21H2)
|
erstellt am: 06. Apr. 2016 20:15 <-- editieren / zitieren --> Unities abgeben: Nur für InvCorax
Es wäre hilfreich zu wissen um welche Dataset(s) und welche Relation(s) es geht ... Aber um eine CompoundProperty zu checken musst du Has Property verwenden, nicht Has Attribute, das löst es vielleicht schon auf. Und die CompoundProperty würde ich auf der ItemRevision machen, nicht in einer Form. Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006
|
erstellt am: 07. Apr. 2016 07:47 <-- editieren / zitieren --> Unities abgeben:
AH! Danke Thomas, ja wenn ich nicht Has Form Attribute nehmen muss brauch ich das auch nicht aufs Form mappen.... Es geht um alle Solid Edge Datasets, als Beispiel um für Tests hab ich mich erst mal aufs "SE Part" beschränkt. Ich seh jetzt auch das Problem mitm Attribut im Form, das ist kein String sondern ne TypedReference, schätze das wird nicht unterstützt. Dann werd ich das mal auf die ItemRevision umbauen und mit Has Property probieren. Grüße ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung [Diese Nachricht wurde von InvCorax am 07. Apr. 2016 editiert.] Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006 Intel Xeon 3,2GHz 12GB DDR3 NVIDIA Quadro 4000 Win 7 (64bit) SE ST8 MP10 SE ST10 (Test) TC 10.1.5
|
erstellt am: 07. Apr. 2016 08:10 <-- editieren / zitieren --> Unities abgeben:
|
InvCorax Mitglied Systembetreuer / Konstrukteur
Beiträge: 454 Registriert: 21.03.2006
|
erstellt am: 07. Apr. 2016 08:56 <-- editieren / zitieren --> Unities abgeben:
nochn Tipp wie ich im Access management nen Compound benutz ohne "Has Property"? Ich bin schon wieder auf der Schiene das ich versuch es mit "Has Type" hin zu bekommen, aber das hat wieder keine auswirkung auf die ItemRevision, scheinbar egal wo im regelbaum ich es rein setze, wirkt sich immer nur direkt aufs Dataset aus ------------------ Schreibfehler sind beabsichtigt und dienen der allgemeinen Belustigung Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP |