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)

Allgemeines

Compass 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 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 !! <file> – – © 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 </file> <file> – 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 '#######################################################################################################################################################################################' </file> }} — ====Tabelle erweitern collapse_sql_script_..._file_--_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 — ====Abgleich IDW in DOCUMENT 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 — ====Abgleich IDW in ELEMENT 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 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: 2024/06/30 12:50 von uwe-handzik

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki