Hallo,
Bin mir nicht ganz sicher ob ich richtig bin mit meiner SmarTeam-Programmier frage.
Vorgang:
-------
+ Ich mache ein "CATIA Part"
+ Ich hole ein "CATIA Drawing" (Vorlage vom Kunden)
+ Das "CATIA Drawing" bekommt eine 2D-Zeichnungsableitung von dem "CATIA Part"
+ Das ganze wir in SmarTeam gespeichert
Wenn ich nun auf die Profilkarte (CATIA Drawing) "Verknüpfungen/CATIA-Verknüpfungen" und "CATIA Downstream Anwendung" wähle sehe ich das "CATIA Part" bzw "CATIA Teil"
Wenn ich nun auf die Profilkarte (CATIA Part) "Verknüpfungen/CATIA-Verknüpfungen" und "CATIA Downstream Anwendung - umgekehrt" wähle sehe ich das "CATIA Drawing" bzw "CATIA Zeichnung"
Natürlich sehe ich die Verknüpfungen mit "<Alle>" auch.
Ich habe:
---------
=> CurObj.SmClass.Name ["CATIA Drawing"]
=> CurObj.SmClass.ExternalName ["CATIA Zeichnung"]
=> CurObj.SmClass.ClassId [684]
=> CurObj.SmClass.Name ["CATIA Part"]
=> CurObj.SmClass.ExternalName ["CATIA Teil"]
=> CurObj.SmClass.ClassId [687]
=> CurObj.SmClass.Name ["Documents Documents Relation"]
=> CurObj.SmClass.ExternalName ["Dokumente-Dokumente-Beziehung"]
=> CurObj.SmClass.ClassId [5]
=> ClassId habe ich mit Code #1 (siehe unten) ermittelt
Ich brauche:
------------
Ich brauche die **ObjektID** vom "CATIA Part" während des Programmablaufes.
Das Ausgangsobjekt ist ein "CATIA Drawing"
Was ich nicht verstehe:
---------------------
(Ausgangsobjekt ist ein CATIA-Drawing)
+ In der Smartem Profilkarte "Verknüpfungen/CATIA-Verknüpfungen" bekomme ich wenn ich den
Verknüpfungstypen "CATIA Downstream Anwendung" wähle das gewünschte "CATIA-Part"
angezeigt
+ Wenn ich per Code (Code #1, siehe unten) mir die Verknüpfung zweier Objekte hole bekomme
ich das Objekt "Documents Documents Relation" mit der ClassId 7
=> Wie sind den CATIA-Drawing und CATIA-Part verbunden ???
+ Wenn ich per Code nach Relation und Links suche, bekomme ich keine Objekt zurück ?
=> info :: ich bekomme mit Code #2 das Gewünschte Objekt jedoch nur wenn ich die ID kenne.
Infos:
------
+ Das ist das 3. kleine Tool das ich schreiben möchte.
Bin um jeden Tipp Dankbar
MfG. Karl
Anhang:
======
Code #1
--------
Option Explicit On
Imports System
Imports System.IO
Imports SmarTeam.Std.Interop.SmarTeam
Function GetLink(ByVal ses As SmApplic.SmSession) As SmApplic.ISmClass
Dim PartClass As SmApplic.ISmClass = ses.MetaInfo.SmClassByName("CATIA Part")
Dim DrawingClass As SmApplic.ISmClass = ses.MetaInfo.SmClassByName("CATIA Drawing")
GetLink = DrawingClass.GeneralLinks.GetLinkClasses(PartClass.ClassId).Item(0)
End Function
End Module
Code #2
--------
Function Testomat( _
ByVal obj As SmApplic.ISmObject, _
ByVal Session As SmApplic.SmSession, _
ByVal recli As SmRecList.SmRecordList) As String
Dim QueryDefinition As SmApplic.ISmQueryDefinition
' Define query
QueryDefinition = Nothing
'rückgabewert für die funktion
Return obj.RetrieveParents(QueryDefinition).Item(0).RetrieveChildren(QueryDefinition).Item(1).Value("TDM_DESCRIPTION")
End Function
Code #3
---------
Sub RetrieveRelationsAndLinks( _
ByVal obj As SmApplic.ISmObject, _
ByVal LinkClassId As Integer) 'LinkClassId hole ich mit Code #1'
Dim QueryDefinition As SmApplic.ISmQueryDefinition
Dim RelationsAndLinks As SmApplic.ISmCompositeObjects ' collection of objects
Dim Roles As ISmQueryRoles ' query roles
Dim QueryResultAttributes As SmApplic.ISmQueryResultAttributes
' Define query - see query definition examples
QueryDefinition = obj.ObjectStore.NewQueryDefinition()
QueryResultAttributes = QueryDefinition.Select
Roles = QueryDefinition.Roles
Roles.Add(obj.SmClass.SuperClassId, "S")
Roles.Add(LinkClassId, "L")
QueryResultAttributes.Add("CN_ID", "S", False)
QueryDefinition.RecordLimit = 4
' Retrieve up to 4 relations and links
RelationsAndLinks = obj.RetrieveRelationsAndLinks(QueryDefinition)
' Check if there are relations and links for object
If RelationsAndLinks.Count = 0 Then
MsgBox("No relatations found")
Else
MsgBox("Number of relatations: " & CStr(RelationsAndLinks.Count))
End If
End Sub
[Diese Nachricht wurde von Schmidberger Karl am 10. Jul. 2008 editiert.]
Eine Antwort auf diesen Beitrag verfassen (mit Zitat/Zitat des Beitrags) IP