Benutzer-Werkzeuge

Webseiten-Werkzeuge


tipps:compas:compass

Compass


DEX

Ablage Ort fürs DEX Log :

C:\ProgramData\Autodesk\Productstream Data Export Utility\DataExportUtility.log


Filelinkname mit Pad belegen

___Selection ( enumerate __MARK__ ___XdwCmd "update DOCUMENT set FILE_LINKNAME=##(DOCNAME0) where AIMKEY=##(AIMKEY)" );

___read() #DOCNAME0

Seletierte Daten ins DEX


___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)

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

Invexp SOURCE      ...xzy.ipt
Invexp DESTINATION ...xzy.stp
Invexp PARAMETER   ...stp.ini
Invexp STP 

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 )

<setting name="COUNTER_MAX" serializeAs="String">
   <value>100</value>
</setting>

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

<setting name="LOG" serializeAs="String">
    <value>True</value>
</setting>

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

<setting name="DEBUG" serializeAs="String">
    <value>False</value>
</setting>

Beispiel Batchdatei

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

Kommandos für die Ausführung

Es stehen die folgenden Befehle zur Verfügung :

PRT

drucken einer IDW

Invexp SOURCE      ...xzy.idw
Invexp PARAMETER   ...my.settings
Invexp PRT

PDF

Export einer PDF aus einer IDW. Die Parameter kommen aus der INI Datei

Invexp SOURCE      ...xzy.idw
Invexp DESTINATION ...xzy.pdf
Invexp PARAMETER   ...myPDF.ini
Invexp PDF

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

Invexp SOURCE      ...xzy.ipt / ...xyz.iam
Invexp DESTINATION ...xzy.sat / ...xzy.zip
Invexp PARAMETER   ...mySAT.ini
Invexp SAT

JT

—-

JPG

—–

BMP

—–

PNG

—-

TIFF

—-

XLS

—–

CSV

—-

ERSATZ

Erzeugen eines Ersatzmodels

Invexp SOURCE      ...xyz.iam
Invexp DESTINATION ...xyz.ipt
Invexp PARAMETER   ...mySet.ini
Invexp ERSATZ

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

Invexp SOURCE      ...xyz.ipt
Invexp ERSUPD

—–

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

Invexp SOURCE      ...xzy.idw / xyz.ipt / xyz.iam
Invexp MIG

—–

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


  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' )

Finden doppelter Datensätze:

select ident,revision, count(*) from compass_pro_textar.history_document
group by ident,revision
having count(*)>1

????

SQL Script

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

????

select count(*) from (select count(*) num from part group by ident) where num > 1

????

select sum(num-1) from (select count(*) num from part group by ident) where num > 1

alles übertragen von ALT nach NEU (gleiche Struktur)

INSERT into NEU select * from ALT

????

</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

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
)

Liste aller Komponenten die in einer Baugruppe verbaut sind mit Statuskey00003:

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')

Alles was NULL (Leer) Ist aus der REVISION Aufliste

   SELECT REVISION FROM DOCUMENT   
      WHERE REVISION IS NULL
         ORDER BY REVISION 

Und auf Startwert 00 setzen

   UPDATE DOCUMENT 
      SET REVISION = '00' 
         WHERE REVISION IS NULL

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

????

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%'

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 !!

--  (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 '#######################################################################################################################################################################################'

Tabelle erweitern

-- 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

Abgleich IDW in DOCUMENT

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]

Abgleich IDW in ELEMENT

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]

}}

====Trigger Update Status

end_catch_end

====SET_FILE_SHARE_WITH

00_20070531_file

====InsertDocumentsIntoAllLocations

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

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

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

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 );

tipps/compas/compass.txt · Zuletzt geändert: 2025/03/06 11:15 von uwe-handzik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki