Hot News:

Mit Unterstützung durch:

  Foren auf CAD.de (alle Foren)
  Teamcenter
  Über CommandLine erfragen ob Item existiert

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
  
Gut zu wissen: Hilfreiche Tipps und Tricks aus der Praxis prägnant, und auf den Punkt gebracht für NX
Autor Thema:  Über CommandLine erfragen ob Item existiert (1778 mal gelesen)
ThomasZwatz
Moderator
cadadmin




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

Beiträge: 5397
Registriert: 19.05.2000

(10-2022)
---------------------------------------------
[stable]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, Multi-CAD
BCT-Inspector Neutral v22R2
---------------------------------------------
[testing]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
BCT-Inspector Neutral v22R2
@M7720 Win10 (1909)

erstellt am: 03. Mrz. 2016 23:37    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

Ich habe einen Einsatzfall wo
bei Freigabe einer ItemRevision ein Dataset erzeugt wird und ins Filesystem exportiert wird.
Dieses Dataset kann nun von (Nicht-TC-)Anwendern geändert werden.
In diesem Fall ist ein Mechanismus eingerichtet der das geänderte File zurück nach TC importiert und das Original "aktualisiert".
( Änderungshoheit ist nur am Filesystem, nicht in TC ).
Das geschieht via ( item_id, item_revision_id entstehen aus dem FileName )
Code:
import_file.exe  -u=*** -g=*** -p=*** -f=<Pfad> -relationType=<Relation> -type=<Type> -d=<DatasetName> -ref=<RefType> -de=r -item<item_id> -revision=<item_revision_id> -ie=y

Das funktioniert auch.
Was ich aber nicht verhindern kann:
Ein Anwender erzeugt ein neues File am Filesystem und ändert es: Dann wird auch dieses nach TC importiert.
Das will ich verhindern denn nur wenn es ein Original in TC gibt, soll ein ReImport erfolgen.
Im ungünstigsten Fall gibt es nicht einmal ein Item das zu dem Dataset "gehört" - dann wird eines angelegt.

Ich suche nun nach einer einfachen Möglichkeit, in dem Script das den Import durchführt eine Prüfung zu machen
a) gibt es zu item_id, item_revision_id ein Dataset eines bestimmten Typs mit einem bestimmten Namen ?
oder zumindest
b) gibt es eine ItemRevision mit der Ziel item_id, item_revision_id ?

und erst dann das import_file loszulassen.

Was würde sich dazu anbieten ?

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

Thomas-Z
Mitglied
PLM-Administration


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

Beiträge: 74
Registriert: 22.02.2011

erstellt am: 04. Mrz. 2016 09:02    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 ThomasZwatz 10 Unities + Antwort hilfreich

Hallo Thomas, ich hatte mir mal was gestrickt um vor dem Import den Revision Status abzufragen und nachher das Dataset mit dem richtigen Status zu importieren.
Das kannst du auch verwenden um zu schauen ob es das Item oder die Revision überhaupt gibt.
Es wird eine Liste mit Item-IDs + Revisions durchlaufen um zuerst einen plmxml_export anzustoßen welcher dann ausgewertet wird.

Code:

rem Liste einzeln durchlaufen
SETLOCAL ENABLEEXTENSIONS ENABLEDELAYEDEXPANSION
for /F "tokens=1,2,3 delims=-." %%a in (%LISTE%) do (

set id=%%a
set format=%%b
set rev=%%c

rem PLMXML Export für Status
if exist "%xmlexport%" del "%xmlexport%"
set x=
plmxml_export -xml_file="%xmlexport%" -item=!id! -rev=!rev! -transfermode=dein_TC_Transfermode

for /f "tokens=2 delims=^=^" %%i in ('findstr /n "latest_rel_status" %xmlexport%') do set "x=%%i"
set status=!x:~1,3!
set "status=!status:"=%!"

IF "!x!" equ "" echo ItemRevisionStatus ist nicht da

IF not "!x!" equ "" echo ItemRevisionStatus ist da

)



------------------
Gruß Thomas

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

ThomasZwatz
Moderator
cadadmin




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

Beiträge: 5397
Registriert: 19.05.2000

(10-2022)
---------------------------------------------
[stable]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, Multi-CAD
BCT-Inspector Neutral v22R2
---------------------------------------------
[testing]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
BCT-Inspector Neutral v22R2
@M7720 Win10 (1909)

erstellt am: 04. Mrz. 2016 12:22    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

Danke,
das werd ich mal ausprobieren.
In dem Fall würde ich einfach einen plmxml_export ausführen und je nach ERRORLEVEL der da rauskommt entscheiden ...

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

matthias-p
Mitglied
Konstruktion / Anwenderbetreuung


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

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 04. Mrz. 2016 19:44    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 ThomasZwatz 10 Unities + Antwort hilfreich

Hi Thomas,

du kannst auch per SQL über den install-Befehl eine Query schreiben, die schaut, ob das Item existiert.

Das wäre auch eine Möglichkeit.

Gruß

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

ThomasZwatz
Moderator
cadadmin




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

Beiträge: 5397
Registriert: 19.05.2000

(10-2022)
---------------------------------------------
[stable]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, Multi-CAD
BCT-Inspector Neutral v22R2
---------------------------------------------
[testing]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
BCT-Inspector Neutral v22R2
@M7720 Win10 (1909)

erstellt am: 06. Mrz. 2016 19:19    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:
Original erstellt von matthias-p:
...du kannst auch per SQL über den install-Befehl eine Query schreiben, die schaut, ob das Item existiert.

Wenn ich mir die Manpage zu install so anschaue seh ich nicht so recht wie das geht ... hast du da noch mehr Details dazu ?

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

matthias-p
Mitglied
Konstruktion / Anwenderbetreuung


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

Beiträge: 501
Registriert: 09.06.2006

Teamcenter 11.3 / NX 11
Windows 10

erstellt am: 07. Mrz. 2016 08:43    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 ThomasZwatz 10 Unities + Antwort hilfreich

Der Befehl sieht so aus:

Zitat:
install -acg user password %ORACLE_SID% < %SCL_Script%[QUOTE]

und ein Beispiel SQL Script so:

[QUOTE]
select wod.pobject_name
from infodba.pitem i, infodba.pitemrevision ir, infodba.pimanrelation rel, infodba.pimantype relt, infodba.pdataset ds, infodba.pdatasettype dst, infodba.pworkspaceobject wod
where i.puid = ir.ritems_tagu
and ir.puid = rel.rprimary_objectu
and rel.rrelation_typeu = relt.puid
and relt.ptype_name = 'IMAN_specification'
and ds.puid = rel.rsecondary_objectu
and ds.puid = wod.puid
and ds.rdataset_typeu = dst.puid
and dst.pdatasettype_name = 'UGPART'
-- and i.pitem_id = '$1'
-- and ir.pitem_revision_id = '$2'


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

Brauburger
Mitglied
CAD-SystemIngenieur


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

Beiträge: 387
Registriert: 05.04.2001

NX_12.0.2
TC_11.4.0.5

erstellt am: 10. Mai. 2016 08:09    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 ThomasZwatz 10 Unities + Antwort hilfreich

Hallo Thomas,

ich würde das auch per SQL versuchen. Wir haben ORACLE mit sqlplus.

SELECT I.PITEM_ID| |'/'| |R.PITEM_REVISION_ID from PITEM I, PITEMREVISION R where I.PUID = R.RITEMS_TAGU and I.PITEM_ID = 'deine_itemid' and R.PITEM_REVISION_ID = 'deine_itemrevisionid';

Anschließend musst Du den Output auf stdout analysieren.

Dirk

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

DoppNor
Mitglied
Systemadmin, Konstrukteur

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

Beiträge: 4
Registriert: 28.05.2014

NX7.5.4.4
TC8.3.3.9

erstellt am: 05. Aug. 2016 07:56    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 ThomasZwatz 10 Unities + Antwort hilfreich

Ich hab den Export in einer Shell nun einmal versucht:

plmxml_export -u=dcproxy -g=dba -p=**** -xml_file=c:\TEMP\SPOOLDIR\XmlExport.xml -item=109.703 -rev=0 -type=BctInspectorProject -transfermode=ConfiguredDataFilesExportDefault

Dabei wird nicht nur das Item von 109.703 Rev. 0 exportiert sondern alle vom "type" BctInspectorProject.

Welches Argument muss man noch angeben, damit nicht "alle" exportiert werden?

[Diese Nachricht wurde von DoppNor am 05. Aug. 2016 editiert.]

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

ThomasZwatz
Moderator
cadadmin




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

Beiträge: 5397
Registriert: 19.05.2000

(10-2022)
---------------------------------------------
[stable]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
SingleSite 4Tier, DocMgt, Client4Office, MRO, ReqMgt, SchedMgt, T4S, TcVis Mockup, TcSSO, Multi-CAD
BCT-Inspector Neutral v22R2
---------------------------------------------
[testing]
NX2007(2027.3701) + TC13.3.0.3, RAC +AWC6.0.3
BCT-Inspector Neutral v22R2
@M7720 Win10 (1909)

erstellt am: 05. Aug. 2016 08:53    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:
Original erstellt von DoppNor:
...
Dabei wird nicht nur das Item von 109.703 Rev. 0 exportiert sondern alle vom "type" BctInspectorProject.

Welches Argument muss man noch angeben, damit nicht "alle" exportiert werden?
...


Laut Doku zu plmxml_export macht der "-type" Switch genau das, d.h. der muss weg.

In der Doku ist auch von -transfermode=justDatasetsOut zu lesen, das dürfte für den geplanten Einsatzzweck wohl auch gehen.

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