Benutzer-Werkzeuge

Webseiten-Werkzeuge


firma:compas:compass

Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
firma:compas:compass [2025/10/17 09:43] – gelöscht - Externe Bearbeitung (Unbekanntes Datum) 127.0.0.1firma:compas:compass [2025/10/17 11:55] (aktuell) – ↷ Links angepasst, weil Seiten im Wiki verschoben wurden 47.128.31.176
Zeile 1: Zeile 1:
 +=====Compass=====
 +
 +----
 +
 +
 +====DEX====
 +
 +Ablage Ort fürs DEX Log : 
 +
 +C:\ProgramData\Autodesk\Productstream Data Export Utility\DataExportUtility.log
 +
 +-----
 +
 +Filelinkname mit Pad belegen 
 +
 +<file>
 +___Selection ( enumerate __MARK__ ___XdwCmd "update DOCUMENT set FILE_LINKNAME=##(DOCNAME0) where AIMKEY=##(AIMKEY)" );
 +
 +___read() #DOCNAME0
 +</file>
 +
 +Seletierte Daten ins DEX
 +
 +----
 +
 +<file>
 +___Selection ( enumerate __MARK__ ___XdwCmd "INSERT INTO PSP2VLT ( AIMKEY ) VALUES ( ##AIMKEY )"  );
 +
 +
 +CREATE TABLE [dbo].[PSP2VLT](
 + [AIMKEY] [numeric](17, 5) NULL,
 + [ID] [numeric](18, 0) IDENTITY(1,1) NOT NULL
 +) ON [PRIMARY]
 +GO
 +
 +
 +SELECT * FROM VIEW_ALL_DOCUMENT WHERE AIMKEY IN (  SELECT AIMKEY FROM PSP2VLT )
 +SELECT * FROM VIEW_ALL_PROJECT WHERE AIMKEY IN (  SELECT AIMKEY FROM PSP2VLT )
 +
 +
 +DELETE FROM PSP2VLT
 +WHERE ID NOT IN 
 + (SELECT min(ID) 
 + FROM PSP2VLTxx Tab1 
 + GROUP BY AIMKEY)
 +
 +</file>
 +
 +-----
 +
 +=====COMPASS JObserver =====
 +
 +====Allgemeines====
 +
 +Der Compass Jobserver stellt für die Bearbeitung von Inventor Dateien nur rudimentäre Funktionen zur Verfügung.
 +Mit dem Tools INVEXP.EXE werden diese etwas erweitert. 
 +Damit ist eine wesentlich bessere Kontrolle der Konvertierung / Druck Vorgänge möglich.
 +
 +Die aktuelle Version unterstützt 
 +
 +Inventor 2012 - 2018
 +AutoCAD 2012 - 2016
 +.Net Version : 4.0
 +
 +Der aktuelle Stand ist 4.7.40.1134 
 +
 +----
 +
 +====Parameter====
 +
 +INVEXP.EXE ist eine Kommandozeilen Applikation, die über Parameter gesteuert wird.
 +
 +Die Parameter sind: 
 +  Befehl <- Was soll gemacht werden
 +  Eingabe Datei <- Quell Datei 
 +  Ausgabe Datei ( wenn Notwendig )
 +  Parameter Datei ( wenn Notwendig )
 +   
 +Zur Übergabe stehen zwei Verfahren zur Verfügung :
 +
 +Jeder Parameter einzeln
 +
 +<file>
 +Invexp SOURCE      ...xzy.ipt
 +Invexp DESTINATION ...xzy.stp
 +Invexp PARAMETER   ...stp.ini
 +Invexp STP 
 +</file>
 +
 +Alle Parameter gleichzeitig
 +
 +  InvExp MODUS QUELLE ZIEL INI
 +
 +z.b.
 +
 +  Invexp STP xzy.ipt xzy.stp stp.ini
 +
 +-----
 +
 +====Einstellungen====
 +
 +Die Einstellung erfolgen in der Datei **InvExp.exe.config**
 +Hierbei handelt es sich im eine XML Datei. 
 +Bitte nur mit dem Notepad bearbeiten.
 +Bei Änderungen eine Sicherung der Ausgangsdatei anlegen !
 +
 +-----
 +
 +====Inventor====
 +
 +Gibt die Anzahl der Inventor Verwendungen an. 
 +Nach x Benutzungen wird der Inventor beendet, aus dem Speicher entfernt und neu gestartet. 
 +Defaultwert = 100, 
 +0 - Inventor läuft ständig ( nicht empfohlen )
 +
 +<file>
 +<setting name="COUNTER_MAX" serializeAs="String">
 +   <value>100</value>
 +</setting>
 +</file>
 +
 +
 +-----
 +
 +
 +
 +
 +====Log Datei ====
 +
 +Bei der INVEXE.EXE wird eine Logdatei erstellt, in der alle Bildschirmausgaben geschrieben werden.
 +z.b. **Log-10_01_2014.txt** \\
 +Werte sind true / false
 +
 +<file>
 +<setting name="LOG" serializeAs="String">
 +    <value>True</value>
 +</setting>
 +</file>
 +
 +-----
 +
 +====Debug=====
 +
 +Im Debug Mode wird nach Ausführung eines Befehls auf ein **RETURN** des Anwenders gewartet. 
 +Damit kann der Ablauf besser verfolgt werden.
 +
 +Werte sind true / false
 +
 +<file>
 +<setting name="DEBUG" serializeAs="String">
 +    <value>False</value>
 +</setting>
 +</file>
 +
 +-----
 +
 +====Beispiel Batchdatei=====
 +
 +<file>
 +SET      PRG=d:\Jobs\InvExp
 +SET  DATA_IN=d:\Jobs\Testdaten
 +SET DATA_OUT=d:\Jobs\temp
 +cls
 +"%PRG%\Invexp" SOURCE        "%DATA_IN%\Fraese.iam"
 +"%PRG%\InvExp" DESTINATION   "%DATA_OUT%\Fraese.stp"
 +"%PRG%\InvExp" PARAMETER     "%PRG%\stp.ini"
 +"%PRG%\InvExp" STP
 +</file>
 +
 +-----
 +
 +=====Kommandos für die Ausführung=====
 +
 +Es stehen die folgenden Befehle zur Verfügung :
 +
 +====PRT====
 +
 +drucken einer IDW
 +
 +<file>
 +Invexp SOURCE      ...xzy.idw
 +Invexp PARAMETER   ...my.settings
 +Invexp PRT
 +</file>
 +
 +----
 +
 +====PDF=====
 + 
 +Export einer PDF aus einer IDW. Die Parameter kommen aus der INI Datei 
 +
 +<file>
 +Invexp SOURCE      ...xzy.idw
 +Invexp DESTINATION ...xzy.pdf
 +Invexp PARAMETER   ...myPDF.ini
 +Invexp PDF
 +</file>
 +
 +----
 +
 +====DWG====
 +
 +Export einer DWG aus einer IDW. Die Parameter kommen aus der INI Datei 
 +Exportiert eine IDW als DWG
 +
 +  Invexp SOURCE      ...xzy.idw
 +  Invexp DESTINATION ...xzy.dwg
 +  Invexp PARAMETER   ...myDWG.ini
 +  Invexp DWG
 +
 +----
 +
 +====DXF====
 +
 +Export einer DXF aus einer IDW. Die Parameter kommen aus der INI Datei 
 +
 +  Invexp SOURCE      ...xzy.idw
 +  Invexp DESTINATION ...xzy.dxf  / ...xzy.zip
 +  Invexp PARAMETER   ...myDXF.ini
 +  Invexp DXF
 +
 +
 +----
 +
 +
 +====STP====
 +
 +  Invexp SOURCE      ...xzy.ipt / ...xyz.iam
 +  Invexp DESTINATION ...xzy.stp / ...xzy.zip 
 +  Invexp PARAMETER   ...msSTP.ini
 +  Invexp STP 
 +
 +----
 +
 +====STL====
 +
 +Export einer IPT oder IAM in STL Format. Empfehlung : immer nur IPTs !
 +
 +  Invexp SOURCE      ...xzy.ipt / ...xyz.iam
 +  Invexp DESTINATION ...xzy.stl / ...xzy.zip
 +  Invexp PARAMETER   ...mySTL.ini
 +  Invexp STL
 +
 +Die Parameter für den Export liegen in der myStl.ini
 +
 +  [STL]
 +  ; ============================================
 +  ; 0 = Binär   1 = Ascii  
 +  OutputFileType=0
 +  ; 2 = INCH   
 +  ; 3 = FOOT   
 +  ; 4 = CENTIMETER   
 +  ; 5 = MILLIMETER   
 +  ; 6 = METER   
 +  ; 7 = MICRON  
 +  ExportUnits=5  
 +  ; 0 = ONE FILE 
 +  ; 1 = ONE FILE PER PART INSTANCE 
 +  ExportFileStructure=0
 +  ; 0 = HIGH 
 +  ; 1 = MEDIUM
 +  ; 2 = LOW
 +  ; 3 = CUSTOM
 +  Resolution=1
 +  ; Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.  
 +  ;SurfaceDeviation=20  
 +  ; Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.  
 +  ;NormalDeviation=20  
 +  ; Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.  
 +  ;MaxEdgeLength=20  
 +  ; Range 1 to 100. Value is used if Resolution is CUSTOM (3), otherwise value is ignored.  
 +  ;AspectRatio=20  
 +  ; nicht in der Hilfe ....
 +  AllowMoveMeshNode=False
 +  ExportColor = Wahr
 +
 +----
 +
 +====IGS====
 +
 +  Invexp SOURCE      ...xzy.ipt / ...xyz.iam
 +  Invexp DESTINATION ...xzy.igs / ...xzy.zip
 +  Invexp PARAMETER   ...myIGS.ini
 +  Invexp IGS
 +
 +----
 +  
 +====DWF====
 +
 +  Invexp SOURCE      ...xyz.idw / ...xzy.ipt / ...xyz.iam
 +  Invexp DESTINATION ...xzy.dwf
 +  Invexp PARAMETER   ...myDWF.ini
 +  Invexp DWF
 +
 +----
 +
 +====DWFX====
 +
 +Wie DWF
 +
 +----
 +
 +====SAT====
 +
 +<file>
 +Invexp SOURCE      ...xzy.ipt / ...xyz.iam
 +Invexp DESTINATION ...xzy.sat / ...xzy.zip
 +Invexp PARAMETER   ...mySAT.ini
 +Invexp SAT
 +</file>
 +
 +----
 +
 +====JT====
 +  
 +----
 +
 +==== JPG====
 +  
 +-----
 +
 +====BMP====
 +  
 +-----
 +
 +
 +
 +====PNG====
 +  
 +----
 +
 +====TIFF====
 +  
 +----
 +
 +====XLS====
 + 
 +
 + 
 +-----
 +
 +
 +
 +====CSV====
 +  
 +  
 +----
 +
 +
 +====ERSATZ====
 +
 +Erzeugen eines Ersatzmodels
 +
 +<file>
 +Invexp SOURCE      ...xyz.iam
 +Invexp DESTINATION ...xyz.ipt
 +Invexp PARAMETER   ...mySet.ini
 +Invexp ERSATZ
 +</file>
 +
 +Aufbau der INI Datei 
 +
 +  [ERSATZ]
 +  ; Steuerdatei für die erstellung eines Ersatzmodells
 +  ; Stand 28.08.2012 
 +  ; ============================================
 +  ; IncludeAllSketches
 +  ; Method that includes all sketches from the source assembly.
 +  ; This includes top level sketches in the source assembly as well as sketches in sub-assemblies and parts.
 +  IncludeAllSketches=False
 +  ; ============================================
 +  ; DeriveStyle
 +  ; kDeriveAsMultipleBodies      = 80643  - as multiple bodie
 +  ; kDeriveAsSingleBodyNoSeams   = 80642  - as a single body with no seams
 +  ; kDeriveAsSingleBodyWithSeams = 80641  - as a single body with seams
 +  ; kDeriveAsWorkSurface         = 80644  - as work surfaces
 +  DeriveStyle=kDeriveAsSingleBodyNoSeams  
 +  ; ============================================
 +  ; IncludeAllTopLeveliMateDefinitions
 +  ; IncludeAllTopLevelWorkFeatures
 +  ; IncludeAllTopLevelSketches
 +  ; IncludeAllTopLevelParameters 
 +  ;
 +  ; kDerivedBoundingBox = 27141        -  the bounding box of the component will be used for the derivation
 +  ;                                       die Bounding Box der Komponente wird für die Ableitung verwendet
 +  ;  
 +  ; kDerivedExcludeAll = 27138          all occurrences in the assembly will be ignored
 +  ;                                       alle Vorkommen in der Baugruppe werden ignoriert 
 +  ;
 +  ; kDerivedIncludeAll = 27137          all occurrences in the assembly will be used and will 
 +  ;                                       add material to the solid body
 +  ;                                       alle Vorkommen in der Baugruppe werden verwendet 
 +  ;                                       und wird zum Material des Festkörpers hinzufügen
 +  ;
 +  ; kDerivedIndividualDefined = 27140  -  the suboccurrences define their behavior
 +  ;                                       die sub Vorkommen definieren ihr Verhalten    
 +  ;
 +  ; kDerivedIntersect = 27142          -  the intersection of the component will be used for the derivation
 +  ;
 +  ;
 +  ; kDerivedSubtractAll = 27139        -  all occurrences in the assembly will be used and will 
 +  ;                                       remove material from the solid body
 +  ;
 +  IncludeAllTopLeveliMateDefinitions=kDerivedIndividualDefined
 +  IncludeAllTopLevelWorkFeatures=kDerivedIncludeAll
 +  IncludeAllTopLevelSketches=kDerivedIncludeAll
 +  IncludeAllTopLevelParameters=kDerivedExcludeAll  
 +  ; ============================================
 +  ; ReducedMemoryMode
 +  ; Beim Erstellen eines Bauteils weniger Speicher verbraucht,
 +  ; indem Quellkörper aus dem Cache ausgeschlossen werden. Es werden
 +  ; keine Quellkörper im Browser angezeigt. Beim Auflösen oder Unterdrücken
 +  ; der Verknüpfung entfallen die Speichereinsparungen.
 +  ReducedMemoryMode=True
 +  ; ============================================
 +  ; SetHolePatchingOptions
 +  ; kDerivedPatchAll = 88322     - all holes will be patched
 +  ; kDerivedPatchNone = 88321    - no holes will be patched
 +  ; kDerivedPatchRange = 88323   - holes within specified range will be patched ( Wird nicht unterstützt )
 +  SetHolePatchingOptions=kDerivedPatchAll
 +  ; ============================================
 +  ; SetHolePatchingOptions
 +  ; kDerivedRemoveNone = 88577           - no geometry will be removed
 +  ; kDerivedRemovePartsAndFaces = 88579  - invisible parts and faces will be removed
 +  ; kDerivedRemovePartsOnly = 88578      - whole invisible parts will be removed only
 +  ;
 +  ; Zahlenwert fest auf 25
 +  ; Call oDerivedAssemblyDef.
 +  ;             SetRemoveByVisibilityOptions(DerivedGeometryRemovalEnum.kDerivedRemovePartsAndFaces, 25)
 +  ;
 +  SetRemoveByVisibilityOptions=kDerivedRemovePartsAndFaces 
 +
 +  
 +  
 +-----
 +
 +
 +====ERSUPD====
 +
 +Update eines Ersatzmodels
 +
 +<file>
 +Invexp SOURCE      ...xyz.ipt
 +Invexp ERSUPD
 +</file> 
 +  
 +  
 +  
 +-----
 +
 +
 +====MIG====
 +
 +Die angegeben Datei wird migriert, wenn notwendig ( needsmigration = true )
 +
 +Ein ev. vorhandener Schreibschutz wird für die Migration entfernt und im Anschluss wieder gesetzt
 +
 +<file>
 +Invexp SOURCE      ...xzy.idw / xyz.ipt / xyz.iam
 +Invexp MIG
 +</file>
 +  
 +-----
 +
 +====Kundenspezifische Befehl====
 +
 +Mit dem Befehl DLL wird die INVEXP.EXE um Kundenspezifische Befehle erweitert.
 +
 +Replikator
 +
 +-----
 +
 +=====Compass Replikator=====
 +
 +==== START.CMD ====
 +
 +  NET STOP "SQL Server-Agent (MSSQLSERVER)"
 +  PING 127.0.0.1 > NUL
 +  REM 
 +  NET START "SQL Server-Agent (MSSQLSERVER)"
 +  PING 127.0.0.1 > NUL
 +  REM
 +  NET START "Autodesk Productstream Professional Replicator Service 2011"
 +  PING 127.0.0.1 > NUL
 +
 +==== STOP.CMD ====
 +
 +  NET STOP "Autodesk Productstream Professional Replicator Service 2011"
 +  REM
 +  PING 127.0.0.1 > NUL
 +  PING 127.0.0.1 > NUL
 +  PING 127.0.0.1 > NUL
 +  REM
 +  KILL /IM /F COMPASS.EXE
 +  REM
 +  PING 127.0.0.1 > NUL
 +  REM
 +  NET STOP "SQL Server-Agent (MSSQLSERVER)"
 +  REM
 +  PING 127.0.0.1 > NUL
 +  PING 127.0.0.1 > NUL
 +
 +
 +====== RESTART.CMD ======
 +
 +  REM ######
 +  REM 
 +  REM  Alles Stoppen
 +  REM
 +  REM ######
 +  REM
 +  cd \
 +  REM
 +  NET STOP "Autodesk Productstream Professional Replicator Service 2011"
 +  PING 127.0.0.1  > NULL
 +  REM
 +  NET STOP "SQL Server-Agent (MSSQLSERVER)"
 +  PING 127.0.0.1  > NULL
 +  REM
 +  KILL /IM /F COMPASS.EXE
 +  REM
 +  REM ######
 +  REM 
 +  REM repl Logs Speichern
 +  REM
 +  REM ######
 +  REM
 +  DEL "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Productstream Professional 2011\*.log"   /s
 +  DEL "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Productstream Professional 2011\*.Err"   /s
 +  DEL "C:\Dokumente und Einstellungen\All Users\Anwendungsdaten\Productstream Professional 2011\*.trace" /s
 +  REM
 +  REM ######
 +  REM 
 +  REM Alles wieder speichern
 +  REM
 +  REM ######
 +  REM
 +  NET START "SQL Server-Agent (MSSQLSERVER)"
 +  PING 127.0.0.1  > NULL
 +  REM
 +  NET START "Autodesk Productstream Professional Replicator Service 2011"
 +  PING 127.0.0.1  > NULL
 +  PING 127.0.0.1  > NULL
 +  PING 127.0.0.1  > NULL
 +
 +------
 +
 +
 +=====Compass SQL - Scripte=====
 +
 +Anbei eine Auflistung nützlicher SQL Scripte im Compass Umfeld.
 +Die Scripte sind als Beispiel anzusehen ! 
 +Der Einsatz erfolgt aus eigenen Gefahr !!
 +
 +
 +====Papierkorb löschen====
 +
 +
 +<file>
 +
 +
 +  select ENTITY_TYPE,count(*) from ELEMENT
 +      where DELETE_DATE is not null
 +          group by ENTITY_TYPE
 +  --
 +  --
 +  -- purge all deleted document
 +  --
 +  delete from HISTORY_DOCUMENT 
 +       where PARENT_AIMKEY in  
 +           (select AIMKEY from ELEMENT
 +                where DELETE_DATE is not null 
 +                      and ENTITY_TYPE in ('AIM.DOC.ENG','AIM.DOC.OFF','AIM.DOC.SECONDARY') and (CHANGE_USER = 'Username') )
 +  GO
 +  --
 +  --
 +  --
 +  delete from XREF_ELEMENT
 +      where PARENT_AIMKEY in 
 +          (select AIMKEY from ELEMENT
 +               where DELETE_DATE is not null 
 +                     and ENTITY_TYPE in ('AIM.DOC.ENG','AIM.DOC.OFF','AIM.DOC.SECONDARY')and (CHANGE_USER = 'Username'))
 +  GO
 +  --
 +  --
 +  --
 +  delete from XREF_ELEMENT
 +      where CHILD_AIMKEY in 
 +         (select AIMKEY from ELEMENT
 +             where DELETE_DATE is not null 
 +                   and ENTITY_TYPE in ('AIM.DOC.ENG','AIM.DOC.OFF','AIM.DOC.SECONDARY')and (CHANGE_USER = 'Username'))
 +  GO
 +  --
 +  --
 +  --
 +  delete from DOCUMENT
 +     where AIMKEY in 
 +         (select AIMKEY from ELEMENT
 +              where DELETE_DATE is not null 
 +               and ENTITY_TYPE in ('AIM.DOC.ENG','AIM.DOC.OFF','AIM.DOC.SECONDARY') and (CHANGE_USER = 'Username' ))
 +  GO
 +  --
 +  --
 +  --
 +  delete from ELEMENT
 +  where DELETE_DATE is not null 
 +    and ENTITY_TYPE in ('AIM.DOC.ENG','AIM.DOC.OFF','AIM.DOC.SECONDARY') and (CHANGE_USER = 'Username' )
 +
 +</file>
 +
 +-----
 +
 +====Finden doppelter Datensätze:====
 +
 +<file>
 +
 +select ident,revision, count(*) from compass_pro_textar.history_document
 +group by ident,revision
 +having count(*)>1
 +</file>
 +
 +------
 +
 +
 +
 +==== ????====
 +
 +SQL Script
 +
 +<file>
 +
 +select * from VIEW_DOCUMENT_ENGINEERING d
 +where PART_NUMBER like '412%'
 +and FILE_TYPE='A'
 +and FILE_UTC>07/07/2004
 +and CUSTOM_1_SHORT like '\\CAD1%'
 +and d.CUSTOM_1_SHORT in (select CUSTOM_1_SHORT from VIEW_DOCUMENT_ENGINEERING group by CUSTOM_1_SHORT having count(*) >1)
 +order by d.CUSTOM_1_SHORT
 +
 +</file>
 +
 +
 +-----
 +
 +
 +
 +
 +==== ????====
 +
 +
 +select count(*) from (select count(*) num from part group by ident) 
 +where num > 1
 +
 +---
 +
 +
 +==== ????====
 +
 +
 +<file>
 +select sum(num-1) from (select count(*) num from part group by ident) where num > 1
 +</file>
 +
 +---
 +
 +
 +====alles übertragen von ALT nach NEU (gleiche Struktur)====
 +
 +<file>
 +INSERT into NEU select * from ALT
 +</file>
 +
 +-----
 +
 +
 +
 +==== ???? ====
 +
 +</file>
 +exec sp_changeobjectowner '[COMPASS].[aim_RPF_element]','dbo'
 +exec sp_changeobjectowner '[COMPASS].[aim_RPF_xref_element]','dbo'
 +</file>
 +
 +-----
 +
 +
 +
 +====Finden aller (mehrfachen) IDENT mit REVISION = 1 oder 01====
 +
 +<file>
 +
 +SELECT * FROM 
 +DOCUMENT
 +WHERE
 +IDENT IN (
 + SELECT d.IDENT 
 + FROM DOCUMENT d
 + WHERE ISNUMERIC(d.REVISION)=1
 + AND IDENT IN (
 + SELECT IDENT
 + FROM DOCUMENT
 + GROUP BY IDENT
 + HAVING COUNT(1)>1
 +
 + GROUP BY IDENT, CAST(d.REVISION AS NUMERIC)
 + HAVING count(1)>1
 +)
 +
 +</file>
 +
 +-----
 +
 +
 +==== Liste aller Komponenten die in einer Baugruppe verbaut sind mit Statuskey00003:====
 +
 +<file>
 +
 +select * from VIEW_DOCUMENT_ENGINEERING where STATUSKEY<>'00003' and AIMKEY in (select X_CHILD_AIMKEY from VIEW_XREF_PARENT_DOCUMENT where X_RELATIONSHIP_ID='AIM.XREF.DOC.ENG' and STATUSKEY='00003')
 +
 +select PART_NUMBER, STATUSKEY 
 +   from VIEW_DOCUMENT_ENGINEERING 
 +      where STATUSKEY<>'00003' and AIMKEY in (select X_CHILD_AIMKEY 
 +       from VIEW_XREF_PARENT_DOCUMENT 
 +           where X_RELATIONSHIP_ID='AIM.XREF.DOC.ENG' and STATUSKEY='00003')
 +</file>
 +
 +-----
 +
 +
 +
 +====Alles was NULL (Leer) Ist aus der REVISION Aufliste====
 +
 +<file>
 +   SELECT REVISION FROM DOCUMENT   
 +      WHERE REVISION IS NULL
 +         ORDER BY REVISION 
 +</file>
 +
 +-----
 +
 +==== Und auf Startwert 00 setzen ====
 +
 +<file>
 +   UPDATE DOCUMENT 
 +      SET REVISION = '00' 
 +         WHERE REVISION IS NULL
 +</file>
 +
 +------
 +
 +
 +==== Datenbak reparieren ====
 +
 +Folgenden Script ermitteln Sie die fehlerverdächtige Datenbank(en) auf dem Server:
 + 
 +SELECT DBName=NAME, [Status]=state_desc  
 +FROM master.sys.databases  
 +WHERE state_desc='SUSPECT'  
 + 
 +Im nächsten Schritt setzen Sie bringen Sie die Datenbank in den Notfallmodus, setzen dann
 +Zugriff auf EInzelbenutzermodus und führen ein Prüfung der Datenbank durch:
 + 
 +
 +USE master;  
 +GO  
 +  
 +ALTER DATABASE [DATABASENAME] SET EMERGENCY  
 +GO  
 +  
 +ALTER DATABASE [DATABASENAME] SET SINGLE_USER  
 +GO  
 +  
 +DBCC CHECKDB ([DATABASENAME], REPAIR_ALLOW_DATA_LOSS) WITH NO_INFOMSGS;  
 +GO  
 + 
 +Anschließend wird nochmals eine Prüfung der Datenbank durchgeführt:
 + 
 + 
 +USE [DATABASENAME]  
 +GO  
 +  
 +DBCC CHECKDB WITH NO_INFOMSGS;  
 +GO  
 + 
 +Wenn diese letzte Prüfung fehlerfrei ausgeführt wurde, befindet sich die Datenbank immer
 +noch im Einzelbenutzermodus. Die Modus Umschaltung auf den Mehrfachbenutzermodus wird mit
 +folgendem Script durchgeführt:
 + 
 +
 +USE master;  
 +GO  
 +  
 +ALTER DATABASE [DATABASENAME] SET MULTI_USER   
 +GO 
 +
 +---
 +
 +
 +==== ????====
 +
 +<file>
 +update ELEMENT set ENTITY_TYPE='AIM.DOC.ENG.STD' where AIMKEY in (
 +select AIMKEY from DOCUMENT where upper(FILE_LINKNAME) like '\\DATENCAD-SRV\COMPASS\DATA\INVENTOR_NORMTEILE%')
 +update DOCUMENT set FILE_LINKNAME = replace(upper(FILE_LINKNAME),'\\DATENCAD-SRV\COMPASS\DATA\INVENTOR_NORMTEILE','#(INI:Inventor:StdPartPath_1)') where upper(FILE_LINKNAME) like '\\DATENCAD-SRV\COMPASS\DATA\INVENTOR_NORMTEILE%'
 +</file>
 +
 +
 +-----
 +
 +
 +
 +====CheckCompass====
 +
 +Check aller Tabellen gegen die ELEMENT
 +
 +Für alle Tabellen ( DOCUMENT / PART /.... )  muss es einen Eintrag auf in der ELEMENT geben
 +oder
 +Für alle Einträge in ELEMENT mit AIM.XXX.* muß es einen Eintrag in der entsprechenden Tabelle geben
 +Die gelistet Einträge müssen aus der ELEMENT, XREF_ELEMENT, DOCUMENT, HISTORY_DOCUMENT raus ( AIM_SAVE Error ) 
 +
 +Wenn Replikator auch REPL prüfen !!
 +
 +<code>
 +--  (c) CAD Team Handzik
 +--
 +--  COMPASS Integritäs Check  
 +--
 +--  V 0.9   Stand 13.02.2008 Hz - Start Version 
 +--  V 0.91  Stand 22.02.2008 Hz - Prüfen, was in der DOCUEMNT und nicht in der ELELEMT
 +-- 
 +--  Name der Kundeumgebung
 +--
 +
 +USE compass_pro_cth
 +--
 +-- Check aller Tabellen gegen die ELEMENT
 +--
 +-- Für alle Tabellen ( DOCUMENT / PART /.... )  muss es einen Eintrag auf in der ELEMENT geben
 +-- oder
 +-- Für alle Einträge in ELEMENT mit AIM.XXX.* muß es einen Eintrag in der entsfile___chenden Tabelle geben
 +-- 
 +-- Die gelistet Einträge müssen aus der ELEMENT 
 +--                                      XREF_ELEMENT
 +--                                      DOCUMENT
 +--                                      HISTORY_DOCUMENT raus ( AIM_SAVE Error ) 
 +-- Wenn Replikator auch REPL prüfen !!
 +--
 +--
 +DECLARE @DEL AS INTEGER 
 +DECLARE @REPL AS INTEGER 
 +
 +SET @REPL = 0 
 +-------------------ACHTUNG
 +SET @DEL = 0   --- ACHTUNG Bei 1 wird gelöscht
 +-------------------ACHTUNG
 +
 +PRINT 'DOCUMENTE  nicht  ELEMENT >> Was ist in der DOCUMENT und nicht in der ELEMENT'
 +                                                                    SELECT E.AIMKEY, T.AIMKEY FROM ELEMENT AS E RIGHT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.AIMKEY IS NULL  
 +PRINT '';PRINT '';
 +
 +PRINT 'DOCUMENTE  gegen  ELEMENT >> Was ist in der ELEMENT und nicht in der DOCUMENT'
 +                                                                    SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL  
 +PRINT '';PRINT '';
 +
 +PRINT 'DOCUMENTE  gegen  ELEMENT dann in die XREF_ELEMENT >> PARENT_AIMKEY abgeleichen'
 +SELECT PARENT_AIMKEY FROM XREF_ELEMENT WHERE PARENT_AIMKEY     IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE PARENT_AIMKEY     IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +PRINT 'DOCUMENTE  gegen  ELEMENT dann in die XREF_ELEMENT >> CHILD_AIMKEY abgeleichen'
 +SELECT CHILD_AIMKEY FROM XREF_ELEMENT  WHERE CHILD_AIMKEY      IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +IF @DEL = 1
 +   BEGIN
 +             DELETE FROM XREF_ELEMENT  WHERE CHILD_AIMKEY      IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +   END
 +PRINT '';PRINT '';
 +
 +PRINT 'DOCUMENTE  gegen  ELEMENT dann in die HISTORY_DOCUMENT AIMKEY abgleichen'
 +SELECT PARENT_AIMKEY FROM HISTORY_DOCUMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM HISTORY_DOCUMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +   END
 +PRINT '';PRINT '';
 +
 +IF @REPL = 1
 +BEGIN
 +PRINT 'DOCUMENTE  gegen  ELEMENT dann in die REPL_DOCUMENT AIMKEY abgleichen'
 +SELECT AIMKEY FROM REPL_DOCUMENT WHERE AIMKEY IN                  ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +PRINT '';PRINT ''
 +
 +PRINT 'DOCUMENTE  gegen  ELEMENT dann in die REPLICATORQ abgleichen'
 +SELECT AIMKEY FROM REPLICATORQ WHERE AIMKEY IN                    ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +PRINT ''
 +END
 +
 +
 +
 +-- Zuletzt alles aus der ELEMENT raus
 +IF @DEL = 1
 +BEGIN
 +PRINT 'DOCUMENT gegen ELEMENT löschen ...'
 +DELETE FROM ELEMENT WHERE AIMKEY IN                               ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.AIMKEY IS NULL )  
 +
 +PRINT 'ELEMENT gegen DOCUMENT löschen ...'
 +DELETE FROM DOCUMENT WHERE AIMKEY IN                              ( SELECT T.AIMKEY FROM ELEMENT AS E RIGHT OUTER JOIN DOCUMENT AS T ON E.AIMKEY = T.AIMKEY WHERE E.AIMKEY IS NULL  )  
 +
 +END 
 +PRINT '';PRINT '';
 +
 +PRINT '#######################################################################################################################################################################################'
 +
 +PRINT 'ADDRESS  gegen  ELEMENT'
 +                                                                SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN ADDRESS AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.ADR%' AND T.AIMKEY IS NULL 
 +PRINT '';PRINT '';
 +
 +PRINT 'ADDRESS  gegen  ELEMENT  in die XREF_ELEMENT >> PARENT'
 +SELECT PARENT_AIMKEY FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN ADDRESS AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.ADR%' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN ADDRESS AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.ADR%' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +PRINT 'ADDRESS  gegen  ELEMENT  in die XREF_ELEMENT >> CHILD'
 +SELECT CHILD_AIMKEY FROM XREF_ELEMENT WHERE CHILD_AIMKEY  IN  ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN ADDRESS AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.ADR%' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +             DELETE FROM XREF_ELEMENT WHERE CHILD_AIMKEY  IN  ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN ADDRESS AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.ADR%' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +-- Zuletzt alles aus der ELEMENT raus
 +IF @DEL = 1
 +BEGIN
 +PRINT 'ADDRESS  gegen  ELEMENT löschen ...'
 +DELETE FROM ELEMENT WHERE AIMKEY IN                           ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN ADDRESS AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.ADR%' AND T.AIMKEY IS NULL )  
 +END 
 +PRINT '';PRINT '';
 +
 +PRINT '#######################################################################################################################################################################################'
 +
 +PRINT 'CONTACT  gegen  ELEMENT'
 +                                                                SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN CONTACT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.CON%' AND T.AIMKEY IS NULL
 +PRINT '';PRINT '';
 +</file>
 +<file>
 +
 +PRINT 'CONTACT  gegen  ELEMENT  in die XREF_ELEMENT >> PARENT'
 +SELECT PARENT_AIMKEY FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN CONTACT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.CON%' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN CONTACT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.CON%' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +PRINT 'CONTACT  gegen  ELEMENT  in die XREF_ELEMENT >> CHILD'
 +SELECT CHILD_AIMKEY FROM XREF_ELEMENT  WHERE CHILD_AIMKEY IN (  SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN CONTACT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.CON%' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE CHILD_AIMKEY IN (  SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN CONTACT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.CON%' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +-- Zuletzt alles aus der ELEMENT raus
 +IF @DEL = 1
 +BEGIN
 +PRINT 'CONTACT  gegen  ELEMENT löschen ...'
 +DELETE FROM ELEMENT WHERE AIMKEY IN                           ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN CONTACT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.CON%' AND T.AIMKEY IS NULL )  
 +END 
 +PRINT '';PRINT '';
 +
 +PRINT '#######################################################################################################################################################################################'
 +
 +PRINT 'PART  gegen  ELEMENT'
 +                                                                SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL
 +PRINT '';PRINT'';
 +
 +PRINT 'PART  gegen  ELEMENT dann  in die XREF_ELEMENT >> PARENT'
 +SELECT PARENT_AIMKEY FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +PRINT 'PART  gegen  ELEMENT dann in die XREF_ELEMENT >> CHILD'
 +SELECT CHILD_AIMKEY FROM XREF_ELEMENT  WHERE CHILD_AIMKEY IN (  SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE CHILD_AIMKEY IN (  SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT'';
 +
 +PRINT 'PART  gegen  ELEMENT dann in die HISTORY_PART AIMKEY abgleichen'
 +SELECT PARENT_AIMKEY FROM HISTORY_PART WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )  
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM HISTORY_PART WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )  
 +   END
 +PRINT '';PRINT '';
 +
 +-- Zuletzt alles aus der ELEMENT raus
 +IF @DEL = 1
 +BEGIN
 +PRINT 'PART  gegen  ELEMENT löschen ...'
 +DELETE FROM ELEMENT WHERE AIMKEY IN                           ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PART AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PART' AND T.AIMKEY IS NULL )  
 +END 
 +PRINT '';PRINT '';
 +
 +
 +PRINT '#######################################################################################################################################################################################'
 +
 +PRINT 'PROJECT  gegen  ELEMENT'
 +                                                                SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PROJECT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PRO' AND T.AIMKEY IS NULL
 +PRINT '';PRINT'';
 +
 +PRINT 'PROJECT  gegen  ELEMENT dann in die XREF_ELEMENT >> PARENT'
 +SELECT PARENT_AIMKEY FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PROJECT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PRO' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE PARENT_AIMKEY IN ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PROJECT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PRO' AND T.AIMKEY IS NULL )  
 +   END 
 +PRINT '';PRINT '';
 +
 +PRINT 'PROJECT  gegen  ELEMENT dann in die XREF_ELEMENT >> CHILD'
 +SELECT CHILD_AIMKEY FROM XREF_ELEMENT  WHERE CHILD_AIMKEY IN (  SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PROJECT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PRO' AND T.AIMKEY IS NULL )
 +IF @DEL = 1
 +   BEGIN
 +              DELETE FROM XREF_ELEMENT WHERE CHILD_AIMKEY IN (  SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PROJECT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PRO' AND T.AIMKEY IS NULL )  
 +   END
 +PRINT '';PRINT'';
 +</file>
 +<file>
 +
 +-- Zuletzt alles aus der ELEMENT raus
 +IF @DEL = 1
 +BEGIN
 +PRINT 'PROJECT  gegen  ELEMENT löschen ...'
 +DELETE FROM ELEMENT WHERE AIMKEY IN                           ( SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN PROJECT AS T ON E.AIMKEY = T.AIMKEY WHERE E.ENTITY_TYPE LIKE 'AIM.PRO' AND T.AIMKEY IS NULL )  
 +END 
 +PRINT '';PRINT '';
 +PRINT '#######################################################################################################################################################################################'
 +
 +--
 +--
 +--#############################################################################################
 +--#############################################################################################
 +--
 +-- Hier ist der Ausgangswert REVISION wichtig 
 +-- Im Standard ist der Wert leer
 +--
 +PRINT 'HISTORY_DOCUMENT  gegen  ELEMENT'
 +SELECT E.AIMKEY FROM ELEMENT AS E LEFT OUTER JOIN HISTORY_DOCUMENT AS T ON E.AIMKEY = T.PARENT_AIMKEY   WHERE E.ENTITY_TYPE LIKE 'AIM.DOC%' AND T.REVISION IS NOT NULL AND T.PARENT_AIMKEY IS NULL
 +PRINT '';PRINT'';
 +
 +PRINT '#######################################################################################################################################################################################'
 +
 +</code>
 +
 +
 +
 +====Tabelle erweitern====
 +
 +<code>
 +
 +-- Tabelle DOCUMENT
 +BEGIN TRANSACTION
 +ALTER TABLE dbo.DOCUMENT ADD
 +TEMPKOMNR  varchar(30) NULL,
 +TEMPGETRTYP  varchar(30) NULL
 +
 +
 +GO
 +COMMIT
 +GO
 +
 +
 +-- Erweiterung der Sichten
 +IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id=OBJECT_ID('tempdb..#tmpErrors')) DROP TABLE #tmpErrors
 +CREATE TABLE #tmpErrors (ERROR INT, MODULE VARCHAR(30), OBJECT VARCHAR(128), POSITION INT, DESCRIPTION VARCHAR(256))
 +SET XACT_ABORT ON
 +IF EXISTS (SELECT * FROM sysobjects WHERE id=object_id('VIEW_DOCUMENT') AND OBJECTPROPERTY(id, 'IsView')=1)
 +  BEGIN
 +    IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id=OBJECT_ID('tempdb..#AIM_UPD_VIEWS')) DELETE FROM #AIM_UPD_VIEWS
 +    ELSE
 +    CREATE TABLE #AIM_UPD_VIEWS (ALIAS sysname NULL, PCOLUMN sysname NULL, CHANGE_REQUEST VARCHAR(3))
 +    INSERT INTO #AIM_UPD_VIEWS (ALIAS, PCOLUMN, CHANGE_REQUEST) VALUES ('TEMPKOMNR', 'D.TEMPKOMNR', 'ADD')
 +    INSERT INTO #AIM_UPD_VIEWS (ALIAS, PCOLUMN, CHANGE_REQUEST) VALUES ('TEMPGETRTYP', 'TEMPGETRTYP', 'ADD')
 +
 +    EXECUTE aim_update_view 'VIEW_ALL_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_DOCUMENT_ENGINEERING'
 +    EXECUTE aim_update_view 'VIEW_XREF_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_XREF_PARENT_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_XREF_CHILD_DOCUMENT'
 +    
 +  END
 +GO
 +
 +</code>
 +
 +-----
 +
 +====Abgleich IDW in DOCUMENT=====
 +
 +
 +<code>
 +USE [compass_pro]
 +GO
 +/****** Objekt:  Trigger [dbo].[CTH_UpdateDocumentIdw]    Skriptdatum: 04/22/2009 10:45:40 ******/
 +SET ANSI_NULLS ON
 +GO
 +SET QUOTED_IDENTIFIER ON
 +GO
 +-- =============================================
 +-- Author: Uwe Handzik
 +-- Create date: 14.08.2007
 +-- Description: Abgleichen der IDW
 +-- =============================================
 +
 +ALTER TRIGGER [dbo].[CTH_UpdateDocumentIdw] ON [dbo].[DOCUMENT] FOR UPDATE NOT FOR REPLICATION 
 +
 +AS 
 +
 +BEGIN
 +
 + SET NOCOUNT ON;
 +
 + BEGIN TRY
 +
 +            -- Alles über den AIMKEY
 + DECLARE @newAIMKEY     numeric(17,5)
 +            -- Ist das Doument eine IDW
 + DECLARE @newIDW        nvarchar(10)
 +
 +            -- Abzugleichenden WERTE Start
 + DECLARE @newCPR_ZEICHNR   nvarchar(255)
 + DECLARE @newCPR_ARTIKEL   nvarchar(255)
 + DECLARE @newCPR_ANLAGE    nvarchar(255)
 + DECLARE @newCPR_AUFTRAG   nvarchar(255)
 + DECLARE @newCPR_VTEIL     nvarchar(255)
 + DECLARE @newCPR_ERS_DURCH nvarchar(255)
 + DECLARE @newMATERIAL      nvarchar(255)
 + DECLARE @newCPR_CFELD_11  nvarchar(255)
 + DECLARE @newCPR_LOGOCAD   nvarchar(255)
 + DECLARE @newCPR_FARBE     nvarchar(255)
 + DECLARE @newCPR_FTEIL     nvarchar(255)
 + DECLARE @newCPR_ERS_FUER  nvarchar(255)
 + DECLARE @newCPR_MSTAB     nvarchar(255)
 + DECLARE @newCPR_TOLERANZ  nvarchar(255)
 +
 +            -- Die Englische Einträge 
 + DECLARE @newCPR_SHORT_ENU nvarchar(255)
 + DECLARE @newCPR_LONG_ENU  nvarchar(255)
 + DECLARE @newCPR_MAT_ENU   nvarchar(255)
 + DECLARE @newCPR_STICH_ENU nvarchar(255)
 + DECLARE @newCPR_FARBE_ENU nvarchar(255)
 + DECLARE @newCPR_CFELD_19  nvarchar(255)
 +           
 +            -- Abzugleichenden WERTE Start
 +
 + SELECT @newAIMKEY        =  AIMKEY        FROM Inserted
 +
 + SELECT @newCPR_ZEICHNR    CPR_ZEICHNR   FROM Inserted
 + SELECT @newCPR_ARTIKEL    CPR_ARTIKEL   FROM Inserted
 + SELECT @newCPR_ANLAGE    =  CPR_ANLAGE    FROM Inserted
 + SELECT @newCPR_AUFTRAG    CPR_AUFTRAG   FROM Inserted
 + SELECT @newCPR_VTEIL      CPR_VTEIL     FROM Inserted
 + SELECT @newCPR_ERS_DURCH =  CPR_ERS_DURCH FROM Inserted
 + SELECT @newMATERIAL      =  MATERIAL      FROM Inserted
 + SELECT @newCPR_CFELD_11  =  CPR_CFELD_11  FROM Inserted
 + SELECT @newCPR_LOGOCAD    CPR_LOGOCAD   FROM Inserted
 + SELECT @newCPR_FARBE      CPR_FARBE     FROM Inserted
 + SELECT @newCPR_FTEIL      CPR_FTEIL     FROM Inserted
 + SELECT @newCPR_ERS_FUER  =  CPR_ERS_FUER  FROM Inserted
 + SELECT @newCPR_MSTAB      CPR_MSTAB     FROM Inserted
 + SELECT @newCPR_TOLERANZ  =  CPR_TOLERANZ  FROM Inserted
 +
 +            -- Die Englische Einträge 
 + SELECT @newCPR_SHORT_ENU =  CPR_SHORT_ENU FROM Inserted
 + SELECT @newCPR_LONG_ENU  =  CPR_LONG_ENU  FROM Inserted
 + SELECT @newCPR_MAT_ENU    CPR_MAT_ENU   FROM Inserted
 + SELECT @newCPR_STICH_ENU =  CPR_STICH_ENU FROM Inserted
 + SELECT @newCPR_FARBE_ENU =  CPR_FARBE_ENU FROM Inserted
 + SELECT @newCPR_CFELD_19  =  CPR_CFELD_19  FROM Inserted
 +            
 + IF @newAIMKEY         IS NULL   SELECT  @newAIMKEY         = 11.11
 + IF @newCPR_ZEICHNR    IS NULL   SELECT  @newCPR_ZEICHNR    = ''
 + IF @newCPR_ARTIKEL    IS NULL   SELECT  @newCPR_ARTIKEL    = ''
 + IF @newCPR_ANLAGE     IS NULL   SELECT  @newCPR_ANLAGE     = ''
 + IF @newCPR_AUFTRAG    IS NULL   SELECT  @newCPR_AUFTRAG    = ''
 + IF @newCPR_VTEIL      IS NULL   SELECT  @newCPR_VTEIL      = ''
 + IF @newCPR_ERS_DURCH  IS NULL   SELECT  @newCPR_ERS_DURCH  = ''
 + IF @newMATERIAL       IS NULL   SELECT  @newMATERIAL       = ''
 + IF @newCPR_CFELD_11   IS NULL   SELECT  @newCPR_CFELD_11   = ''
 + IF @newCPR_LOGOCAD    IS NULL   SELECT  @newCPR_LOGOCAD    = ''
 + IF @newCPR_FARBE      IS NULL   SELECT  @newCPR_FARBE      = ''
 + IF @newCPR_FTEIL      IS NULL   SELECT  @newCPR_FTEIL      = ''
 + IF @newCPR_ERS_FUER   IS NULL   SELECT  @newCPR_ERS_FUER   = ''
 + IF @newCPR_MSTAB      IS NULL   SELECT  @newCPR_MSTAB      = ''
 + IF @newCPR_TOLERANZ   IS NULL   SELECT  @newCPR_TOLERANZ   = '' 
 +
 +            -- Die Englische Einträge 
 + IF @newCPR_SHORT_ENU  IS NULL   SELECT  @newCPR_SHORT_ENU  = '' 
 + IF @newCPR_LONG_ENU   IS NULL   SELECT  @newCPR_LONG_ENU   = '' 
 + IF @newCPR_MAT_ENU    IS NULL   SELECT  @newCPR_MAT_ENU    = '' 
 + IF @newCPR_STICH_ENU  IS NULL   SELECT  @newCPR_STICH_ENU  = '' 
 + IF @newCPR_FARBE_ENU  IS NULL   SELECT  @newCPR_FARBE_ENU  = '' 
 + IF @newCPR_CFELD_19   IS NULL   SELECT  @newCPR_CFELD_19   = '' 
 +
 + ---
 + --- AIMKEY ermittelt, - In XREF_ELEMENT Child(er) Suchen   
 + ---
 +
 + declare @ChildAimKey   numeric(17,5)
 + declare @ParentAimKey  numeric(17,5)
 +
 + DECLARE Document_Cursor CURSOR FOR
 + SELECT PARENT_AIMKEY, CHILD_AIMKEY
 + FROM XREF_ELEMENT WHERE CHILD_AIMKEY = @newAIMKEY
 +
 + OPEN Document_Cursor
 +
 + FETCH NEXT FROM Document_Cursor INTO @ChildAimKey, @ParentAimKey 
 +
 + WHILE @@FETCH_STATUS = 0
 +
 + BEGIN
 +                    -- Nachschauen ob IDW  
 +                    SELECT @newIDW        = (SELECT FILE_EXT FROM DOCUMENT WHERE AIMKEY = @ChildAimKey )
 +
 +                    IF upper(@newIDW) = 'IDW'   
 +                       UPDATE DOCUMENT SET 
 +                           CPR_ZEICHNR   = @newCPR_ZEICHNR  ,
 +                           CPR_ARTIKEL   = @newCPR_ARTIKEL  ,
 +                           CPR_ANLAGE    = @newCPR_ANLAGE   ,
 +                           CPR_AUFTRAG   = @newCPR_AUFTRAG  ,
 +                           CPR_VTEIL     = @newCPR_VTEIL    ,
 +                           CPR_ERS_DURCH = @newCPR_ERS_DURCH,
 +                           MATERIAL      = @newMATERIAL     ,
 +                           CPR_CFELD_11  = @newCPR_CFELD_11 ,
 +                           CPR_LOGOCAD   = @newCPR_LOGOCAD  ,
 +                           CPR_FARBE     = @newCPR_FARBE    ,
 +                           CPR_FTEIL     = @newCPR_FTEIL    ,
 +                           CPR_ERS_FUER  = @newCPR_ERS_FUER ,
 +                           CPR_MSTAB     = @newCPR_MSTAB    ,
 +                           CPR_TOLERANZ  = @newCPR_TOLERANZ ,
 +                           CPR_SHORT_ENU = @newCPR_SHORT_ENU,
 +                CPR_LONG_ENU  = @newCPR_LONG_ENU ,
 +                CPR_MAT_ENU   = @newCPR_MAT_ENU  ,
 +                CPR_STICH_ENU = @newCPR_STICH_ENU, 
 +                CPR_FARBE_ENU = @newCPR_FARBE_ENU,
 +                CPR_CFELD_19  = @newCPR_CFELD_19
 +                       WHERE AIMKEY = @ChildAimKey
 +
 + FETCH NEXT FROM Document_Cursor INTO @ChildAimKey, @ParentAimKey 
 +
 + END
 +
 + CLOSE Document_Cursor 
 + DEALLOCATE Document_Cursor  
 +
 + END TRY
 +
 + BEGIN CATCH
 +
 +      INSERT dbo.cth_errorlog ( ERRORNUMBER,    
 +                                ERRORSEVERITY,    
 +                                ERRORSTATE,    
 +                                ERRORPROCEDURE,    
 +                                ERRORLINE,    
 +                                ERRORMESSAGE    ) 
 +          VALUES       ( CAST ( Error_NUMBER()   AS VARCHAR(5)) , 
 +                         CAST ( Error_SEVERITY() as VARCHAR(2)) , 
 +                         CAST ( Error_STATE()    AS VARCHAR(3)) , 
 +                                Error_PROCEDURE(), 
 +                         CAST ( Error_LINE()     AS VARCHAR(3)), 
 +                                Error_MESSAGE() );
 +   END CATCH
 +
 +END
 +
 +--USE [compass_pro]
 +--GO
 +--/****** Objekt:  Table [dbo].[cth_errorlog]  /
 +--SET ANSI_NULLS ON
 +--GO
 +--SET QUOTED_IDENTIFIER ON
 +--GO
 +--CREATE TABLE [dbo].[cth_errorlog](
 +-- [ERRORNUMBER] [nvarchar](50) NULL,
 +-- [ERRORSEVERITY] [nchar](10) NULL,
 +-- [ERRORSTATE] [nchar](10) NULL,
 +-- [ERRORPROCEDURE] [nchar](255) NULL,
 +-- [ERRORLINE] [nchar](10) NULL,
 +-- [ERRORMESSAGE] [nchar](255) NULL
 +--) ON [PRIMARY]
 +
 +</code>
 +
 +-----
 +
 +====Abgleich IDW in ELEMENT====
 +
 +
 +<file>
 +USE [compass_pro]
 +GO
 +/****** Objekt:  Trigger [dbo].[CTH_UpdateElementIdw]    Skriptdatum: 04/22/2009 10:46:43 ******/
 +SET ANSI_NULLS ON
 +GO
 +SET QUOTED_IDENTIFIER ON
 +GO
 +
 +-- =============================================
 +-- Author: Uwe Handzik
 +-- Create date: 14.08.2007
 +-- Description: Abgleichen der IDW
 +-- =============================================
 +
 +ALTER TRIGGER [dbo].[CTH_UpdateElementIdw] ON [dbo].[ELEMENT] FOR UPDATE NOT FOR REPLICATION 
 +
 +AS 
 +
 +BEGIN
 +
 + SET NOCOUNT ON;
 +
 + BEGIN TRY
 +
 +            -- Alles über den AIMKEY
 + DECLARE @newAIMKEY     numeric(17,5)
 +            -- Ist das Doument eine IDW
 + DECLARE @newIDW        nvarchar(10)
 +
 +            -- Abzugleichenden WERTE Start
 + DECLARE @newSHORT_DESC      nvarchar(255)
 + DECLARE @newLONG_DESC       nvarchar(255)
 + DECLARE @newCATEGORY        nvarchar(255)
 + DECLARE @newCUSTOM_1_SHORT  nvarchar(255)
 +            -- Abzugleichenden WERTE Start
 +
 + SELECT @newAIMKEY          = AIMKEY         FROM Inserted
 +
 + SELECT @newSHORT_DESC      = SHORT_DESC     FROM Inserted
 + SELECT @newLONG_DESC       = LONG_DESC      FROM Inserted
 + SELECT @newCATEGORY        = CATEGORY       FROM Inserted
 + SELECT @newCUSTOM_1_SHORT  = CUSTOM_1_SHORT FROM Inserted
 +            
 + IF @newAIMKEY         IS NULL   SELECT  @newAIMKEY         = 11.11
 + IF @newSHORT_DESC     IS NULL   SELECT  @newSHORT_DESC     = ''
 + IF @newLONG_DESC      IS NULL   SELECT  @newLONG_DESC      = ''
 + IF @newCATEGORY       IS NULL   SELECT  @newCATEGORY       = ''
 + IF @newCUSTOM_1_SHORT IS NULL   SELECT  @newCUSTOM_1_SHORT = ''
 + ---
 + --- AIMKEY ermittelt, - In XREF_ELEMENT Child(er) Suchen   
 + ---
 +
 + declare @ChildAimKey   numeric(17,5)
 + declare @ParentAimKey  numeric(17,5)
 +
 + DECLARE Document_Cursor CURSOR FOR
 + SELECT PARENT_AIMKEY, CHILD_AIMKEY
 + FROM XREF_ELEMENT WHERE CHILD_AIMKEY = @newAIMKEY
 +
 + OPEN Document_Cursor
 +
 + FETCH NEXT FROM Document_Cursor INTO @ChildAimKey, @ParentAimKey 
 +
 + WHILE @@FETCH_STATUS = 0
 +
 + BEGIN
 +                    -- Nachschauen ob IDW  
 +                    SELECT @newIDW        = (SELECT FILE_EXT FROM DOCUMENT WHERE AIMKEY = @ChildAimKey )
 +
 +                    IF upper(@newIDW) = 'IDW'   
 +                       UPDATE ELEMENT SET 
 +                            SHORT_DESC     = @newSHORT_DESC, 
 +                            LONG_DESC      = @newLONG_DESC,
 +                            CATEGORY       = @newCATEGORY,
 +                 CUSTOM_1_SHORT = @newCUSTOM_1_SHORT
 +                       WHERE AIMKEY = @ChildAimKey
 +
 + FETCH NEXT FROM Document_Cursor INTO @ChildAimKey, @ParentAimKey 
 +
 + END
 +
 + CLOSE Document_Cursor 
 + DEALLOCATE Document_Cursor  
 +
 + END TRY
 +
 + BEGIN CATCH
 +
 +      INSERT dbo.cth_errorlog ( ERRORNUMBER,    
 +                                ERRORSEVERITY,    
 +                                ERRORSTATE,    
 +                                ERRORPROCEDURE,    
 +                                ERRORLINE,    
 +                                ERRORMESSAGE    ) 
 +          VALUES       ( CAST ( Error_NUMBER()   AS VARCHAR(5)) , 
 +                         CAST ( Error_SEVERITY() as VARCHAR(2)) , 
 +                         CAST ( Error_STATE()    AS VARCHAR(3)) , 
 +                                Error_PROCEDURE(), 
 +                         CAST ( Error_LINE()     AS VARCHAR(3)), 
 +                                Error_MESSAGE() );
 +   END CATCH
 +
 +END
 +
 +--USE [compass_pro]
 +--GO
 +--/****** Objekt:  Table [dbo].[cth_errorlog]  /
 +--SET ANSI_NULLS ON
 +--GO
 +--SET QUOTED_IDENTIFIER ON
 +--GO
 +--CREATE TABLE [dbo].[cth_errorlog](
 +-- [ERRORNUMBER] [nvarchar](50) NULL,
 +-- [ERRORSEVERITY] [nchar](10) NULL,
 +-- [ERRORSTATE] [nchar](10) NULL,
 +-- [ERRORPROCEDURE] [nchar](255) NULL,
 +-- [ERRORLINE] [nchar](10) NULL,
 +-- [ERRORMESSAGE] [nchar](255) NULL
 +--) ON [PRIMARY]
 +
 +</file>
 +
 +}}
 +
 +
 +---
 +
 +====Trigger Update Status
 +
 +{{collapse(SQL Script ...)
 +
 +<file>
 +USE [professional_easy]
 +GO
 +/****** Objekt:  Trigger [dbo].[CTH_UpdateStatus]    Skriptdatum: 08/31/2009 07:51:47 ******/
 +SET ANSI_NULLS ON
 +GO
 +SET QUOTED_IDENTIFIER ON
 +GO
 +CREATE TRIGGER [dbo].[CTH_UpdateStatus] ON [dbo].[ELEMENT] FOR UPDATE NOT FOR REPLICATION 
 +
 +AS
 +
 +DECLARE @oldStatus VARCHAR(5) 
 +DECLARE @newStatus VARCHAR(5)
 +
 +declare @keySec numeric (17,5)
 +declare @keyDoc numeric (17,5)
 +
 +declare @IDENT Varchar(50)
 +declare @FILE Varchar(50)
 +
 +declare @IDENT_SEC Varchar(50)
 +declare @FILE_SEC Varchar(50)
 +
 +declare @CREATE_DATE datetime     
 +declare @CREATE_USER varchar(30) 
 +
 +declare @CMP_ROOT       varchar(255) 
 +declare @MONAT          varchar(2)
 +declare @JAHR           varchar(4)
 +declare @DOCNAME        varchar(255) 
 +declare @DOCNAME_SEC    varchar(255) 
 +declare @ANZ            varchar(3) 
 +
 +declare @OWNER varchar(255)     
 +declare @OWNER_GROUP varchar(255) 
 +
 +declare @SHORT_DESC  varchar(255) 
 +
 +
 +BEGIN
 +
 + -- Keinerlei Rückgabe von Resultsets
 + SET NOCOUNT ON
 +
 + BEGIN TRY
 +   
 + IF NOT UPDATE(STATUSKEY)  
 + BEGIN 
 +   RETURN 
 + END
 + ELSE
 + BEGIN
 +
 + SELECT @oldStatus  = (SELECT STATUSKEY FROM Deleted) 
 + SELECT @newStatus = (SELECT STATUSKEY FROM Inserted)
 +      SELECT @KeyDoc  = (SELECT AIMKEY FROM Inserted)
 +
 + IF @oldStatus IS NULL   SELECT  @oldStatus =  '-ERR-'
 + IF @newStatus IS NULL   SELECT  @newStatus =  '-ERR-'
 + IF @KeyDoc IS NULL   SELECT  @KeyDoc = 50000.22222
 + --
 + -- Status auf zum Prüfen
 + --
 + IF @newStatus = '00001' 
 + BEGIN
 +                   UPDATE ELEMENT SET RIGHTS = 15375  WHERE AIMKEY = @KeyDoc
 + END
 + --
 + -- Status auf zum Prüfen
 + --
 + IF @newStatus = '00002' 
 + BEGIN
 +                   UPDATE ELEMENT SET RIGHTS = 1057801 WHERE AIMKEY = @KeyDoc
 + END
 + --
 + -- Status auf Freigegeben
 + --
 + IF @newStatus = '00003' 
 + BEGIN
 +                   UPDATE ELEMENT SET RIGHTS = 1057801 WHERE AIMKEY = @KeyDoc
 + END
 + --
 + -- Status auf 
 + --
 + IF @newStatus = '00005' 
 + BEGIN
 +                   UPDATE ELEMENT SET RIGHTS = 9225   WHERE AIMKEY = @KeyDoc
 + END
 + --
 + -- Status auf 
 + --
 + IF @newStatus = '00006' 
 + BEGIN
 +                   UPDATE ELEMENT SET RIGHTS = 15375  WHERE AIMKEY = @KeyDoc
 + END
 + --
 + --
 + --
 + IF @newStatus = '00004' 
 + BEGIN
 +
 +                    UPDATE ELEMENT SET RIGHTS = 15375 WHERE AIMKEY = @KeyDoc
 +
 + SELECT @CMP_ROOT     = 'E:\DATEN\Compass\data\'
 + --
 + -- 
 + --
 + SELECT @OWNER        = (SELECT OWNER       FROM ELEMENT WHERE AIMKEY = @KeyDoc)
 + SELECT @OWNER_GROUP = (SELECT OWNER_GROUP FROM ELEMENT WHERE AIMKEY = @KeyDoc)
 + SELECT @CREATE_DATE     = (SELECT CREATE_DATE FROM ELEMENT WHERE AIMKEY = @KeyDoc)
 + SELECT @CREATE_USER = (SELECT CREATE_USER FROM ELEMENT WHERE AIMKEY = @KeyDoc)
 + SELECT @SHORT_DESC      = (SELECT SHORT_DESC  FROM ELEMENT WHERE AIMKEY = @KeyDoc)
 +
 + SELECT @JAHR            = ( SUBSTRING  (CONVERT(varchar(20), @CREATE_DATE,102),1,4))
 + SELECT @MONAT           = ( SUBSTRING  (CONVERT(varchar(20), @CREATE_DATE,102),6,2))
 +
 + SELECT @FILE            = (SELECT FILE_NAME  FROM DOCUMENT WHERE AIMKEY = @KeyDoc)
 + SELECT @IDENT           = (SELECT IDENT      FROM DOCUMENT WHERE AIMKEY = @KeyDoc)
 +
 + select @ANZ             = (SELECT COUNT(*) FROM DOCUMENT WHERE FILE_NAME LIKE '%'+@FILE+'%' ) + 1
 +
 + SELECT @FILE_SEC        = 'X' + @FILE  + '-' + @ANZ
 + SELECT @IDENT_SEC       = 'X' + @IDENT + '-' + @ANZ
 +
 + SELECT @DOCNAME         = @CMP_ROOT + @JAHR + '\' + @MONAT  + '\1\' + @FILE     + '.PDF'
 + SELECT @DOCNAME_SEC     = @CMP_ROOT + @JAHR + '\' + @MONAT  + '\0\' + @FILE_SEC + '.PDF'
 + --
 + --  00001 - in Arbeit
 + --  00002 - zum prüfen
 + --  00003 - freigegeben
 + -- 00004 - in Änderung
 + --  00005 - Ungültig
 +
 + exec aim_generate_aimkey @keySec OUTPUT
 + --
 + -- Einfügen in Tabelle ELEMENT
 + --
 + INSERT into ELEMENT 
 + (
 + AIMKEY, -- 01
 + ENTITY_TYPE, -- 02
 + STATUSKEY, -- 03
 + CREATE_DATE, -- 04
 + CREATE_USER, -- 05
 + CHANGE_DATE, -- 06
 + CHANGE_USER, -- 07
 + OWNER, -- 08
 + OWNER_GROUP, -- 09
 + RIGHTS, -- 10
 +                        SHORT_DESC          -- 11
 + )
 + VALUES 
 + (
 + @keySec,            -- 01
 + 'AIM.DOC.SECONDARY',-- 02
 + '00001',            -- 03
 + @CREATE_DATE,       -- 04 
 + @CREATE_USER,       -- 05
 + @CREATE_DATE,       -- 06
 + @CREATE_USER,       -- 07
 + @OWNER,             -- 08
 + @OWNER_GROUP,       -- 09
 + '1063951',          -- 10
 +                        @SHORT_DESC         -- 11
 + )
 + --
 + -- Einfügen in Tabelle DOCUMENT
 + -- 
 + INSERT into DOCUMENT
 + (
 + AIMKEY,            -- 01
 + IDENT,             -- 02 ****
 + FILE_NAME,         -- 03 **** 
 + FILE_EXT,          -- 04
 + FILE_TYPE          -- 05
 + )
 + VALUES
 + (
 + @keySec,           -- 01
 + @IDENT_SEC,        -- 02 ***
 + @FILE_SEC,         -- 03 ***
 + 'pdf',             -- 04
 + 'PDF'              -- 05
 + )
 + --
 + -- Verknüpfung erstellen
 + -- 
 + INSERT into XREF_ELEMENT
 + (
 + PARENT_AIMKEY,     -- 01 Key der IDW 
 + CHILD_AIMKEY,      -- 02 Key des SEC DOc
 + RELATIONSHIP_ID,   -- 03 
 + OWNER,             -- 04
 + OWNER_GROUP        -- 05
 + )
 + VALUES
 + (
 + @keyDoc,       -- 01
 + @keySec, -- 02
 + 'AIM.XREF.DOC.SECONDARY', -- 03
 + @CREATE_USER,               -- 04
 + 'ENGINEERING_EMPLOYEES'     -- 05
 + )
 +
 + DECLARE @Mach   VARCHAR(255)
 + SELECT @MACH = 'copy ' + @DOCNAME + ' ' + @DOCNAME_SEC
 +
 + EXEC xp_cmdshell @MACH ;
 +
 + RETURN
 + END
 + END
 +
 + END TRY
 +
 + BEGIN CATCH
 +          ROLLBACK TRANSACTION
 +   INSERT dbo.cth_errorlog ( ERRORNUMBER,    
 + ERRORSEVERITY,    
 + ERRORSTATE,    
 + ERRORPROCEDURE,    
 + ERRORLINE,    
 + ERRORMESSAGE    ) 
 +   VALUES       ( CAST ( Error_NUMBER()   AS VARCHAR(5)) , 
 + CAST ( Error_SEVERITY() as VARCHAR(2)) , 
 + CAST ( Error_STATE()    AS VARCHAR(3)) , 
 + Error_PROCEDURE(), 
 + CAST ( Error_LINE()     AS VARCHAR(3)), 
 + Error_MESSAGE() );
 +    END CATCH
 +
 +END
 +--
 +--########################################################################
 +--
 +
 +
 +
 +
 +</file>
 +
 +}}
 +
 +
 +
 +---
 +
 +====SET_FILE_SHARE_WITH
 +
 +{{collapse(SQL Script ...)
 +
 +<file>
 +UPDATE DOCUMENT set FILE_SHARE_WITH=DATEDIFF(s, '19700101 00:00:00', '20070531')
 +</file>
 +
 +}}
 +
 +
 +
 +---
 +
 +====InsertDocumentsIntoAllLocations
 +
 +{{tipps:compas:collapse_sql_script_..._file_file_--_--_number_of_documents_with_missing_links_---_select_count_from_view_all_document_where_select_count_from_xref_element_where_relationship_id_aim.xref.doc.location_2_--_--_--_link_all_documents_to_all_locations_--_--_declare_alldocs_cursor_local_forward_only_for_select_aimkey_from_document_declare_doc_aimkey_numeric_17_5_open_alldocs_fetch_next_from_alldocs_into_doc_aimkey_while_fetch_status_0_begin_declare_dest_loc_cursor_local_forward_only_for_select_aimkey_from_location_declare_loc_aimkey_numeric_17_5_open_dest_loc_fetch_next_from_dest_loc_into_loc_aimkey_while_fetch_status_0_begin_if_select_count_from_xref_element_where_parent_aimkey_doc_aimkey_and_child_aimkey_loc_aimkey_0_begin_insert_into_xref_element_parent_aimkey_child_aimkey_relationship_id_owner_owner_group_values_doc_aimkey_loc_aimkey_aim.xref.doc.location_administrator_engineering_employees_end_fetch_next_from_dest_loc_into_loc_aimkey_end_close_dest_loc_deallocate_dest_loc_fetch_next_from_alldocs_into_doc_aimkey_end_close_alldocs_deallocate_alldocs_go
 +
 +
 +}}
 +
 +
 +
 +---
 +
 +====Repl Status
 +
 +{{tipps:compas:collapse_sql_script_..._file_print_anzahl_aktueller_pushauftraege_pro_ziel-standort_--_--_--_select_destlocation_count_from_replicatorq_where_replication_type_like_4_group_by_destlocation_--_--_--_print_print_anzahl_aktueller_pushauftraege_pro_quell-standort_--_select_sourcelocation_count_from_replicatorq_where_replication_type_like_4_group_by_sourcelocation_--_--_--_print_print_anzahl_aktueller_pushauftraege_pro_quell-standort_--_select_destlocation_count_from_replicatorq_where_replication_type_like_8_and_destlocation_sourcelocation_group_by_destlocation_file
 +
 +}}
 +
 +----
 +
 +====Einsame IPTs
 +
 +{{tipps:compas:collapse_sql_script_..._file_select_from_view_document_engineering_where_aimkey_not_in_select_parent_aimkey_from_xref_element_where_relationship_id_aim.xref.doc.eng_and_aimkey_not_in_select_child_aimkey_from_xref_element_where_relationship_id_aim.xref.doc.eng_and_file_type_like_i_file
 +
 +}}
 +
 +----
 +
 +====Aufheben der Replikation
 +
 +{{tipps:compas:collapse_sql_script_..._file_--_aufheben_der_replikation_--_drop_rowguid_indexes_select_drop_index_sysobjects.name_._sysindexes.name_from_sysindexes_inner_join_sysobjects_on_sysindexes.id_sysobjects.id_where_objectproperty_object_id_sysobjects.name_ismsshipped_0_and_sysindexes.indid_0_and_sysindexes.indid_255_and_sysindexes.status_64_0_and_index_col_sysobjects.name_sysindexes.indid_1_rowguid_order_by_sysindexes.indid_--_remove_rowguid_default_constraints_select_alter_table_b.name_drop_constraint_a.name_from_sysobjects_a_inner_join_syscolumns_on_syscolumns.id_a.parent_obj_inner_join_sysobjects_b_on_syscolumns.id_b.id_where_syscolumns.name_rowguid_and_objectproperty_object_id_b.name_ismsshipped_0_and_a.xtype_d_--_remove_rowguid_columns_select_alter_table_sysobjects.name_drop_column_rowguid_from_syscolumns_inner_join_sysobjects_on_syscolumns.id_sysobjects.id_where_syscolumns.name_rowguid_and_objectproperty_object_id_sysobjects.name_ismsshipped_0_file
 +
 +}}
 +
 +----
 +
 +====Abgleich Karten 1.1
 +
 +{{collapse(SQL Script ...)
 +
 +<file>
 +
 +--
 +-- Installation für Kartenabgleich IPT / IAM /IPN mit IDW
 +--
 +-- (C) by CAD Team Handzik - Dipl. Ing. Uwe Handzik
 +--
 +-- Version 2.1 Stand 30.04.2011
 +--
 +
 +USE compass_easy
 +GO
 +
 +SET ANSI_NULLS ON
 +GO
 +
 +SET QUOTED_IDENTIFIER ON
 +GO
 +
 +--##############################################################################################################################
 +--
 +-- Error Tabelle anlegen
 +--
 +
 +IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'cth_errorlog') DROP TABLE cth_errorlog;
 +GO
 +
 +CREATE TABLE [dbo].cth_errorlog(
 +[pkErrorHandlingID] [int] IDENTITY(1,1) NOT NULL,
 +[Error_Number] [int] NOT NULL,
 +[Error_Message] [varchar](4000) COLLATE Latin1_General_BIN NULL,
 +[Error_Severity] [smallint] NOT NULL,
 +[Error_State] [smallint] NOT NULL DEFAULT ((1)),
 +[Error_Procedure] [varchar](200) COLLATE Latin1_General_BIN NOT NULL,
 +[Error_Line] [int] NOT NULL DEFAULT ((0)),
 +[UserName] [varchar](128) COLLATE Latin1_General_BIN NOT NULL DEFAULT (''),
 +[HostName] [varchar](128) COLLATE Latin1_General_BIN NOT NULL DEFAULT (''),
 +[Time_Stamp] datetime NOT NULL,
 +PRIMARY KEY CLUSTERED
 +(
 +[pkErrorHandlingID] ASC
 +)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY]
 +) ON [PRIMARY]
 +GO
 +
 +Print 'CREATE TABLE cth_errorlog'
 +GO
 +
 +--##############################################################################################################################
 +-- Store Procedure  für CthErrorHandling löschen
 +
 +IF OBJECT_ID ('CthErrorHandling', 'P') IS NOT NULL
 +   DROP PROCEDURE CthErrorHandling
 +GO
 +
 +Print 'DROP PROCEDURE CthErrorHandling'
 +GO
 +
 +--##############################################################################################################################
 +-- =============================================
 +-- Author      : Uwe Handzik
 +-- Ersellt am  : 24.09.2009
 +-- Version     : 1.0
 +-- Description : Error Handling für den Rest
 +-- Aufruf mit EXEC  dbo.CthErrorHandling
 +-- =============================================
 +
 +CREATE procedure dbo.CthErrorHandling AS 
 +
 +BEGIN
 + -- Declaration statements
 + DECLARE @Error_Number int
 + DECLARE @Error_Message varchar(4000)
 + DECLARE @Error_Severity int
 + DECLARE @Error_State int
 + DECLARE @Error_Procedure varchar(200)
 + DECLARE @Error_Line int
 + DECLARE @UserName varchar(200)
 + DECLARE @HostName varchar(200)
 + DECLARE @Time_Stamp datetime
 +
 + -- Initialize variables
 + SELECT @Error_Number = isnull(error_number(),0),
 + @Error_Message = isnull(error_message(),'NULL Message'),
 + @Error_Severity = isnull(error_severity(),0),
 + @Error_State = isnull(error_state(),1),
 + @Error_Line = isnull(error_line(), 0),
 + @Error_Procedure = isnull(error_procedure(),''),
 + @UserName = SUSER_SNAME(),
 + @HostName = HOST_NAME(),
 + @Time_Stamp = GETDATE();
 +
 + -- Insert into the dbo.ErrorHandling table
 + INSERT INTO dbo.cth_errorlog (Error_Number, Error_Message, Error_Severity, Error_State, Error_Line, Error_Procedure, UserName, HostName, Time_Stamp)
 +
 + SELECT @Error_Number, @Error_Message, @Error_Severity, @Error_State, @Error_Line, @Error_Procedure, @UserName, @HostName, @Time_Stamp
 +END
 +GO
 +
 +Print 'CREATE PROCEDURE CthErrorHandling'
 +GO
 +
 +
 +--##############################################################################################################################
 +--
 +-- LOG Tabelle anlegen
 +--
 +-- Handhabung :  INSERT dbo.cth_log ( POS, MESSAGE    )  VALUES 'Pos der MSG', 'Wert'
 +--
 +IF EXISTS(SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME = 'cth_log') DROP TABLE cth_log;
 +GO
 +
 +Print 'DROP TABLE cth_log'
 +GO
 +
 +CREATE TABLE [dbo].[cth_log](  
 + [POS] [nVARCHAR] (50) NULL,
 + [MESSAGE] [nchar] (255) NULL
 +    ) ON [PRIMARY]
 +GO
 +
 +Print 'CREATE TABLE cth_log'
 +GO
 +
 +
 +--##############################################################################################################################
 +--
 +-- Sync Felder in der DOCUMENT anlegen
 +
 +if not exists (select * from syscolumns  where id=object_id('DOCUMENT') and name='CTH_SYNC'    alter table DOCUMENT add CTH_SYNC     varchar(4) NULL
 +if not exists (select * from syscolumns  where id=object_id('DOCUMENT') and name='CTH_SYNC_AT' alter table DOCUMENT add CTH_SYNC_AT  varchar(30) NULL
 +if not exists (select * from syscolumns  where id=object_id('DOCUMENT') and name='CTH_SYNC_JN' alter table DOCUMENT add CTH_SYNC_JN  varchar(4) NULL
 +GO
 +
 +Print 'Sync Felder in der DOCUMENT anlegen'
 +GO
 +
 +-- Erweiterung der Sichten
 +
 +IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id=OBJECT_ID('tempdb..#tmpErrors')) DROP TABLE #tmpErrors
 +CREATE TABLE #tmpErrors (ERROR INT, MODULE VARCHAR(30), OBJECT VARCHAR(128), POSITION INT, DESCRIPTION VARCHAR(256))
 +SET XACT_ABORT ON
 +
 +IF EXISTS (SELECT * FROM sysobjects WHERE id=object_id('VIEW_DOCUMENT') AND OBJECTPROPERTY(id, 'IsView')=1)
 +  BEGIN
 +    IF EXISTS (SELECT * FROM tempdb..sysobjects WHERE id=OBJECT_ID('tempdb..#AIM_UPD_VIEWS')) DELETE FROM #AIM_UPD_VIEWS
 +    ELSE
 +    CREATE TABLE #AIM_UPD_VIEWS (ALIAS sysname NULL, PCOLUMN sysname NULL, CHANGE_REQUEST VARCHAR(3))
 +
 +    INSERT INTO #AIM_UPD_VIEWS (ALIAS, PCOLUMN, CHANGE_REQUEST) VALUES ('CTH_SYNC',      'D.CTH_SYNC',      'ADD')
 +    INSERT INTO #AIM_UPD_VIEWS (ALIAS, PCOLUMN, CHANGE_REQUEST) VALUES ('CTH_SYNC_AT',   'D.CTH_SYNC_AT',   'ADD')
 +    INSERT INTO #AIM_UPD_VIEWS (ALIAS, PCOLUMN, CHANGE_REQUEST) VALUES ('CTH_SYNC_JN',   'D.CTH_SYNC_JN',   'ADD')
 +
 +    EXECUTE aim_update_view 'VIEW_ALL_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_DOCUMENT_ENGINEERING'
 +    EXECUTE aim_update_view 'VIEW_DOCUMENT_OFFICE'
 +    EXECUTE aim_update_view 'VIEW_XREF_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_XREF_PARENT_DOCUMENT'
 +    EXECUTE aim_update_view 'VIEW_XREF_CHILD_DOCUMENT'
 +    
 +  END
 +GO
 +
 +Print 'Erweiterung der Sichten'
 +GO
 +
 +--##############################################################################################################################
 +-- Store Procedure  für DOCUMENT löschen
 +
 +IF OBJECT_ID ('CTH_Sync_IDW', 'P') IS NOT NULL
 +   DROP PROCEDURE CTH_Sync_IDW
 +GO
 +
 +Print 'DROP PROCEDURE CTH_Sync_IDW'
 +GO
 +
 +--##############################################################################################################################
 +-- =============================================
 +-- Author      : Uwe Handzik
 +-- Ersellt am  : 24.09.2009
 +-- Version     : 1.1
 +-- Description : Abgleichen der IDW
 +-- Trigger für die DOCUMENT
 +-- Gleicht IDW ab wenn änderung in DOCUMENT
 +--
 +-- 1.1 Alter Tabel raus 
 +-- =============================================
 +
 +CREATE PROCEDURE [dbo].[CTH_Sync_IDW] @argAIMKEY NUMERIC(17,5)
 +
 +AS
 +
 +DECLARE @newAIMKEY     NUMERIC(17,5)
 +DECLARE @ChildAimKey   NUMERIC(17,5)
 +DECLARE @ParentAimKey  NUMERIC(17,5)
 +DECLARE @newIDW        nVARCHAR(255)
 +    
 +BEGIN
 +
 + SET @newAIMKEY = @argAIMKEY
 + SET NOCOUNT ON;
 +
 + BEGIN TRY
 +
 + --- AIMKEY ermittelt, - In XREF_ELEMENT Child(er) Suchen   
 +
 + DECLARE Document_Cursor CURSOR FOR
 + SELECT PARENT_AIMKEY, CHILD_AIMKEY
 + FROM XREF_ELEMENT WHERE CHILD_AIMKEY = @newAIMKEY AND RELATIONSHIP_ID = 'AIM.XREF.DOC.ENG' 
 +
 + OPEN Document_Cursor
 +
 + FETCH NEXT FROM Document_Cursor INTO @ChildAimKey, @ParentAimKey 
 +
 + WHILE @@FETCH_STATUS = 0
 + BEGIN
 + -- Nachschauen ob IDW  
 + SELECT @newIDW        = (SELECT FILE_TYPE FROM DOCUMENT WHERE AIMKEY = @ChildAimKey )
 +
 + IF upper(@newIDW) = 'IDW'   
 +                  BEGIN
 +                    --
 +                    -- Debug Info
 +                    --
 +                    --INSERT dbo.cth_log ( POS, MESSAGE    )  VALUES ( 'CTH_Sync_IDW UPDATE', CAST ( @ChildAimKey AS VARCHAR(30)))
 +
 +                    -- Sync Flag setzen
 +             UPDATE DOCUMENT SET CTH_SYNC = 'SYNC',
 + CTH_SYNC_AT = CONVERT(varchar(20), GetDate())
 + WHERE AIMKEY = @ChildAimKey
 +
 +                  -- Stored Proc ist Kundenabhängig
 +                  EXECUTE  CTH_SYNC_KUNDEN_FELDER @ParentAimKey, @ChildAimKey  
 +
 +                 END -- IS IDW
 + FETCH NEXT FROM Document_Cursor INTO @ChildAimKey, @ParentAimKey 
 + END -- WHILE 
 + CLOSE Document_Cursor 
 + DEALLOCATE Document_Cursor  
 +
 + END TRY
 +
 + BEGIN CATCH
 +        ROLLBACK TRANSACTION
 +        EXEC  dbo.CthErrorHandling
 +    END CATCH
 +  RETURN
 +END 
 +
 +GO
 +
 +Print 'CREATE PROCEDURE CTH_Sync_IDW'
 +GO
 +
 +--##############################################################################################################################
 +--
 +-- Trigger für XREF löschen
 +
 +IF OBJECT_ID ('CTH_InsertDocIdw', 'TR') IS NOT NULL
 +   DROP TRIGGER CTH_InsertDocIdw
 +GO
 +
 +Print 'DROP TRIGGER CTH_InsertDocIdw'
 +GO
 +
 +
 +--##############################################################################################################################
 +-- 
 +-- Author      : Uwe Handzik
 +-- Ersellt am  : 24.09.2009
 +-- Version     : 1.0
 +-- Description : Abgleichen der IDW
 +-- Trigger für die XREF_ELEMENT 
 +-- Gleicht IDW ab, die mit kopiert wird 
 +-- 
 +
 +CREATE TRIGGER [dbo].[CTH_InsertDocIdw] ON [dbo].[XREF_ELEMENT] FOR INSERT NOT FOR REPLICATION 
 +AS 
 +BEGIN
 +
 + SET NOCOUNT ON;
 +
 + BEGIN TRY
 + DECLARE @PARENT_AIMKEY     NUMERIC(17,5)
 + DECLARE @CHILD_AIMKEY      NUMERIC(17,5)
 +        DECLARE @FILE_TYPE         VARCHAR(10) 
 +      
 + SELECT  @PARENT_AIMKEY  = ( SELECT PARENT_AIMKEY FROM Inserted )
 + SELECT  @CHILD_AIMKEY   = ( SELECT CHILD_AIMKEY  FROM Inserted )
 +        SELECT  @FILE_TYPE      = ( SELECT FILE_TYPE     FROM DOCUMENT WHERE AIMKEY = @PARENT_AIMKEY )
 +
 +        IF UPPER( @FILE_TYPE ) = 'IDW'
 +           BEGIN
 +              --
 +              -- Debug Info
 +              --
 +              --INSERT dbo.cth_log ( POS, MESSAGE    )  VALUES ('CTH_InsertDocIdw', 'TRIGGER IDW' )
 +              EXECUTE CTH_Sync_IDW @CHILD_AIMKEY
 +           END 
 + END TRY
 +
 + BEGIN CATCH
 +        ROLLBACK TRANSACTION
 +        EXEC  dbo.CthErrorHandling
 +    END CATCH
 +END
 +GO
 +
 +Print 'CREATE TRIGGER CTH_InsertDocIdw'
 +GO
 +
 +--##############################################################################################################################
 +-- Trigger für ELEMENT löschen
 +
 +IF OBJECT_ID ('CTH_UpdateEleIdw', 'TR') IS NOT NULL
 +   DROP TRIGGER CTH_UpdateEleIdw
 +GO
 +
 +Print 'DROP TRIGGER CTH_UpdateEleIdw'
 +GO
 +
 +--##############################################################################################################################
 +-- 
 +-- Author      : Uwe Handzik
 +-- Ersellt am  : 24.09.2009
 +-- Version     : 1.0
 +-- Description : Abgleichen der IDW
 +-- Trigger für die ELEMENT 
 +-- Gleicht IDW ab wenn änderung in ELEMENT
 +-- 
 +
 +CREATE TRIGGER [dbo].[CTH_UpdateEleIdw] ON [dbo].[ELEMENT] FOR UPDATE NOT FOR REPLICATION 
 +AS 
 +BEGIN
 + SET NOCOUNT ON;
 +
 + BEGIN TRY
 + DECLARE @AIMKEY      NUMERIC(17,5)
 + DECLARE @FILE_TYPE   VARCHAR(10)
 +
 + SELECT  @AIMKEY      = (SELECT AIMKEY     FROM Inserted)
 +        SELECT  @FILE_TYPE   = (SELECT FILE_TYPE  FROM DOCUMENT WHERE AIMKEY = @AIMKEY)
 +
 +        IF @FILE_TYPE IS NOT NULL
 +           BEGIN
 +              IF UPPER(@FILE_TYPE) = 'IPT' OR UPPER(@FILE_TYPE) = 'IAM' OR UPPER(@FILE_TYPE) = 'IPN'
 +                 BEGIN
 +                    --
 +                    -- Debug Info
 +                    --
 +                    --INSERT dbo.cth_log ( POS, MESSAGE    )  VALUES ('CTH_UpdateEleIdw', 'TRIGGER' )
 +                    EXECUTE CTH_Sync_IDW @AIMKEY
 +                 END
 +           END  
 + END TRY
 +
 + BEGIN CATCH
 +        ROLLBACK TRANSACTION
 +        EXEC  dbo.CthErrorHandling
 +   END CATCH
 +
 +END
 +GO
 +
 +Print 'CREATE TRIGGER CTH_UpdateEleIdw'
 +GO
 +
 +--##############################################################################################################################
 +-- Trigger für DOCUMENT löschen
 +
 +IF OBJECT_ID ('CTH_UpdateDocIdw', 'TR') IS NOT NULL
 +   DROP TRIGGER CTH_UpdateDocIdw
 +GO
 +
 +Print 'DROP TRIGGER CTH_UpdateDocIdw'
 +GO
 +
 +--##############################################################################################################################
 +-- 
 +-- Author      : Uwe Handzik
 +-- Ersellt am  : 24.09.2009
 +-- Version     : 1.0
 +-- Description : Abgleichen der IDW
 +-- Trigger für die DOCUMENT
 +-- Gleicht IDW ab wenn änderung in DOCUMENT
 +-- 
 +
 +CREATE TRIGGER [dbo].[CTH_UpdateDocIdw] ON [dbo].[DOCUMENT] FOR UPDATE NOT FOR REPLICATION 
 +AS 
 +BEGIN
 +
 + SET NOCOUNT ON;
 +
 + BEGIN TRY
 + DECLARE @AIMKEY     NUMERIC(17,5)
 + DECLARE @FILE_TYPE  VARCHAR(10)
 +
 + SELECT  @AIMKEY      = (SELECT AIMKEY     FROM Inserted )
 + SELECT  @FILE_TYPE   = (SELECT FILE_EXT   FROM Inserted )
 +
 +        IF UPPER(@FILE_TYPE) = 'IPT' OR UPPER(@FILE_TYPE) = 'IAM' OR UPPER(@FILE_TYPE) = 'IPN'
 +           BEGIN
 +              --
 +              -- Debug Info
 +              --
 +              --INSERT dbo.cth_log ( POS, MESSAGE    )  VALUES ('CTH_UpdateDocIdw', 'TRIGGER IPT/IAM/IPN' )
 +              EXECUTE CTH_Sync_IDW @AIMKEY
 +           END
 + END TRY
 +
 + BEGIN CATCH
 +        ROLLBACK TRANSACTION
 +        EXEC  dbo.CthErrorHandling
 +    END CATCH
 +
 +END
 +GO
 +
 +Print 'CREATE TRIGGER CTH_UpdateDocIdw'
 +GO
 +
 +--##############################################################################################################################
 +
 +
 +}}
 +
 +<file>
 +
 +----
 +
 +=====Compass Tipps und Tricks=====
 +
 +----
 +
 +====Compass Password====
 +
 +bis 2009
 +
 +EASYcompass
 +  
 +DBPASSWORD=CCRY00104709B69CDE85DB8529EC0312D5C5B30EC9
 +
 +ab 2009
 +
 +ADSKpspro5!
 +
 +DBPASSWORD=CCRY001015CE7934194891D6D49B8EC529380A33FA  
 +
 +----
 +
 +====Compass Inventor ADDin====
 +
 +Die ClsId für das Compass Inventor ADDin: 
 +
 +<file>
 +
 +2008
 +  {A8EE8583-8E6D-4042-9A89-1015560D3331} ?
 + 
 +2011   
 +  {02CCE528-B046-49BA-96F9-F6CDCF5F9B07}
 +
 +2012  
 +  {0B874991-1A5B-4D21-B156-DF288BD8424A}
 +
 +2013  
 +  {DFDECA20-9329-4E10-97E6-FF7AF0AD942E}
 +
 +2014  
 +  {DFDECA20-9329-4E10-97E6-FF7AF0AD942E}
 +  
 +2015
 +  {DFDECA20-9329-4E10-97E6-FF7AF0AD942E}
 +  
 +2015
 +  {DFDECA20-9329-4E10-97E6-FF7AF0AD942E}
 +</file>
 +
 +  
 +===== Compass Jobserver =====
 +
 +==== VBA ====
 +
 +<file>
 +ApplCall AIMDOpenVBAProject "$CTH_IVBPATH\Export.ivb"
 +ApplCall AIMDExecuteVBAMacro Export mod_STP PublishSTP
 +
 +</file>
 +
 +====Property Update====
 +
 +Mit Inventor :  
 +
 +  JBSPropUpdate;
 +
 +Mit Apfile___ntice
 +
 +<file>
 +___forceunlock;
 +ApplCall AIMDUpdateProps2 #DOCNAME0 2;
 +___forceunlock;
 +
 +</file>
 +
 +Wenn Dirty Steuerung
 +
 +  ___XDWCMD("UPDATE DOCUMENT SET CTH_DIRTY_H=#SYSDATE WHERE AIMKEY=#AIMKEY");
 +
 +==== User Name bei der Ausführung ==== 
 +Unter Befehle bei der Anlage: 
 +
 +  set MY_USER=$USERID;
 +  JBSSubstJobField (CMD_file____JOB);
 +  ....
 +
 +Unter Befehle vor der Ausführung:
 +  ...
 +  ___SHELL( md("\\Server\Export\$(MY_USER)\#(SYSDATE:s0.4)-#(SYSDATE:s4.2)-#(SYSDATE:s6.2)"
 +  ...
 +
 +==== Anbindung INVEXP ==== 
 +
 +
 +in der Compass INI
 +
 +  ;;; 
 +  ;;; Einstellungen CTH für JobServer
 +  ;;; 
 +  ;;; CTH_INVEXP : Kompletter Pfad incl. name der EXE Datei
 +  ;;; CTH_INVINI : Verzeichnis mit den INI Dateien
 +  ;;;
 +  CTH_INVEXP=D:\Compass\InvExp\InvExp.exe
 +  CTH_INVINI=D:\Compass\InvExp
 +  CTH_INVDST=C:\CompassExport
 +
 +
 +  systemx(  "$(CTH_INVEXP)" SOURCE       "#DOCNAME0"   );
 +  systemx(  "$(CTH_INVEXP)" DESTINATION  "#DOCNAME1"   );
 +  systemx(  "$(CTH_INVEXP)" PARAMETER     "$(CTH_INVINI)\PDF.INI"   );
 +  systemx(  "$(CTH_INVEXP)"  PDF  );
 +
  

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki