You are on page 1of 5

OUTFITTING

TRACE OFF
INCH BORE
!todate = '00-00-00'
!todate = !!shidate(!todate)
!todate = !todate.replace('/', '-').trim() + '.TXT'

--VAR !PIPELST COLL ALL BOX FOR /COG_VOLUME


--!infile=OBJECT FILE('c:/temp/cog/list.txt')
--!PIPELST=!INFILE.READFILE()
--VAR !PIPELST COLL ALL PIPE WITH ISNAMED EQ TRUE AND MATCHW(NAME OF
SITE,'*STUDY*') EQ FALSE AND MATCHW(NAME OF SITE,'*PN*') EQ FALSE AND DBNUM LE 5000
and PURP OF SITE EQ 'L' or PURP OF SITE EQ 'K'
--VAR !PIPELST COLL ALL PIPE WITH PURP OF SITE EQ 'L' AND ISNAMED EQ TRUE AND
MATCHW(NAME OF SITE,'*PN*') EQ TRUE AND DBNUM LE 5000
--VAR !PIPELST COLL ALL PIPE WITH PURP OF SITE EQ 'L' AND ISNAMED EQ TRUE for ce
--VAR !PIPELST EVAL(NAME) FOR ALL PIPE with MATCHW(NAME,'*FPU*') EQ TRUE FOR CE
--/LPD4
--VAR !PIPELST EVAL(NAME) FOR ALL PIPE FOR CE

--var !PIPELST coll all pipe with (matchw(name of site,'*N') eq true OR matchw(name
of site,'*5') eq true or matchw(name of site,'*6') eq true or matchw(name of
site,'*S') eq true OR matchw(name of site,'*C') eq true OR matchw(name of
site,'*T') eq true OR matchw(name of site,'*B') eq true OR matchw(nam of
site,'*F')) and dbnum LT 3100

var !PIPELST coll all pipe with (purp of site eq 'L' or purp of site eq 'K')

VAR !TOTAL (ARRAYSIZE (!PIPELST))


DO !A FROM 1 TO (ARRAYSIZE (!PIPELST))
WRITE |PROCESSING $!A OUT OF $!TOTAL|
CE $!PIPELST[$!A]
!PNAM = NAMN
-- To assign the plot file name
VAR !DSGDRG namn
IF OCCURS(|$!DSGDRG|,|"|) EQ 1 THEN
!DSGDRG = !DSGDRG.REPLACE(|"|,||)
ENDIF
IF OCCURS(|$!DSGDRG|,|/|) EQ 1 THEN
!DSGDRG = !DSGDRG.REPLACE(|/|,||)
IF OCCURS(|$!DSGDRG|,|/|) EQ 1 THEN
!DSGDRG = !DSGDRG.REPLACE(|/|,||)
ENDIF
ENDIF
VAR !ISONO |$!DSGDRG|
IF (|$!ISONO| EQ |unset|) THEN
GOLABEL /NEXTFILE
ENDIF
VAR !FILENAME |$!ISONO|
!filename = !filename.replace('_','-')
!filename = !filename.replace('/','-')
!sitnam = namn of SITE
!ANAM = SUBSTR(!SITNAM,2,2)
!FPIPE = SUBSTR(!SITNAM,4,1)
!oufile2 = object file('C:\TEMP\COG\PIPEWEIERROR.LOG')
!oufile2.open('append')
if ('$!FPIPE' EQ 'F') THEN
!oufile1 = object file('C:\TEMP\COG\PipeCOG-FUTURE_$!todate')
!oufile1.open('append')
if !A eq 1 then
--HEADER OUTPUT FILE
!oufile.writerecord(| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Centre of Gravity|)
!oufile.writerecord(|Line Number ~ Spec ~ WBS ~ Type ~ Description ~
Size1(inch) ~ Size2(inch) ~ Quantity ~ Unit Weight(kg) ~ Total Weight(kg) ~
East(mm) ~ North(mm) ~ Up(mm) ~ Status|)
endif
ELSE

-- OUTPUT FILENAME IS HERE


!oufile = object file('C:\TEMP\COG\PipeCOG_$!todate')
!oufile.open('append')
if !A eq 1 then
--HEADER OUTPUT FILE
!oufile.writerecord(| ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ ~ Centre of Gravity|)
!oufile.writerecord(|Line Number ~ Spec ~ WBS ~ Type ~ REFNO ~
Description ~ Size1(inch) ~ Size2(inch) ~ Quantity ~ Unit Weight(kg) ~ Total
Weight(kg) ~ East(mm) ~ North(mm) ~ Up(mm) ~ Status|)
endif

ENDIF

--VAR !BRANMEM COLL ALL BRAN MEM with TYPE NE 'ATTA' AND TYPE NE 'INST' AND
TYPE NE 'WELD' AND TYPE NE 'GASK' EXCLUSIVE WITHIN VOL CE
VAR !BRANMEM COLL ALL BRAN MEM with TYPE NE 'INST' AND TYPE NE 'WELD' AND
TYPE NE 'ATTA' FOR CE
DO !I FROM 1 TO (ARRAYSIZE (!BRANMEM))
CE $!BRANMEM[$!I]
$(
if (matchw('$!sitnam','*STUDY*') EQ TRUE) THEN
SKIP
ENDIF
$)

var !mtoc mtoc


var !mtot mtot
if(|$!mtoc| EQ 'OFF' or |$!mtoc| EQ 'DOTD' or |$!mtot| EQ 'OFF' or |$!
mtot| EQ 'DOTD') THEN
WRITE |Some components have MTOC off in this pipe $!PIPELST[$!A]|
!OUFILE2.WRITERECORD(|Some components have MTOC off in this pipe $!
PIPELST[$!A]|)
SKIP
ENDIF

!PIPSPEC = NAME OF SPEC OF SPRE


HANDLE(2,115)(2,107)
WRITE |$!PNAM SPEC REF PROBLEM|
!OUFILE2.WRITERECORD(|$!PNAM SPEC REF PROBLEM|)
SKIP
ENDHANDLE

VAR !REFNO REFNO

--if (matchw('$!ZONnam','*FUTURE') EQ TRUE) OR (matchw('$!Pnam','*FTR')


EQ TRUE)THEN
if ('$!FPIPE' EQ 'F') THEN
!FFLAG = |YES|
ELSE
!FFLAG = |NO|
ENDIF
!SPWLNAM = NAME OF SPWL OF SPRE

VAR !TYPE TYPE


VAR !ISONO |$!PLOTFILE|
HANDLE ANY
VAR !ISONO |unset|
ENDHANDLE
VAR !DTXR DTXR
HANDLE ANY
VAR !DTXR |DETAIL NOT FOUND|
ENDHANDLE
-- VAR !MTXX MTXX
-- HANDLE ANY
-- VAR !MTXX |MATERIAL NOT FOUND|
-- ENDHANDLE
PREC VAR 2 DP VAR !ARRSZ PA BORE
handle(2,201)
WRITE |$!FILENAME .....|
--skip
endhandle
PREC VAR 2 DP VAR !LEASZ PL BORE
HANDLE ANY
VAR !LEASZ |$!ARRSZ|
IF (|$!TYPE| EQ |TUBI|) THEN
PREC VAR 1 DP VAR !QTY ITLE OF $!BRANMEM[$!I]
-- PREC VAR 1 DP VAR !QTY ($!QTY / 1000)
ELSE
VAR !LEASZ |PROB|
ENDIF
ENDHANDLE

IF (|$!TYPE| EQ |TUBI|) THEN


PREC VAR 1 DP VAR !QTY ITLE OF $!BRANMEM[$!I]
!TQTY = !QTY.REAL()
if (!TQTY lt 1) then
WRITE |$!PIPELST[$!A] has 0 mm spools .....|
!OUFILE2.WRITERECORD(|$!PIPELST[$!A] has 0 mm spools .....|)
skip
endif
VAR !TWEIGHT UWEIGHT OF CMPREF OF SPREF

HANDLE(2,222) (2,201) (2,102) (2,114) (2,107)


-- SKIP
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE

-- !CWEIGHT = (UWEIGHT OF CMPREF OF SPREF) * (!TQTY)


IF (OCCURS('$!TWEIGHT','(') EQ 1) THEN
!TWEIGHT = !TWEIGHT.AFTER('(').BEFORE(')')
ENDIF
--IF OCCURS(|$!SPWLNAM|,|220800|) EQ 1 THEN
--<AF 2019> include merakes spwl
IF ( OCCURS(|$!SPWLNAM|,|220800|) EQ 1 or OCCURS(|$!SPWLNAM|,|
220810|) EQ 1) THEN
!CWEIGHT = (!TWEIGHT.REAL() / 1000) * (!TQTY)
HANDLE(2,441)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE
ELSE
!CWEIGHT = !TWEIGHT.REAL() * (!TQTY)
HANDLE(2,441)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE
ENDIF

!cuweight = !TWEIGHT.REAL()
HANDLE(2,441)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CUWEIGHT = 0
ENDHANDLE
ELSE
VAR !COWEIGHT CWEIGHT OF CMPREF OF SPREF

HANDLE(2,222) (2,201) (2,102) (2,114) (2,107) (2,441) (2,751)


-- SKIP
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE

!CWEIGHT = !COWEIGHT.AFTER('(').BEFORE(')').real()

HANDLE(2,441) (2,751)
!OUFILE2.WRITERECORD(|$!BRANMEM[$!I] UNIT WEIGHT NOT SET|)
!CWEIGHT = 1
ENDHANDLE

!cuweight = !cweight

ENDIF
IF ((|$!TYPE| EQ |TEE|) OR (|$!TYPE| EQ |OLET|)) THEN
VAR !LEASZ P3 BORE
HANDLE ANY
VAR !LEASZ P2 BORE
ENDHANDLE
VAR !ARR ARRIVE
IF (|$!ARR| EQ |3|) THEN
VAR !ARRSZ P1 BORE
ENDIF
ENDIF
IF (|$!TYPE| NE |TUBI|) THEN
VAR !COFG GCOFG WRT /*
HANDLE ANY
WRITE |$!FILENAME .....|
-- SKIP
ENDHANDLE
VAR !QTY (1)
ELSE
VAR !REFNO REFNO
CE $!REFNO
VAR !PLPOS PL POS WRT /*
HANDLE ANY
VAR !PLPOS HPOS WRT /*
HANDLE(2,201)
WRITE |$!PNAM SPEC REF PROBLEM|
SKIP
ENDHANDLE
ENDHANDLE
!J = ($!I + 1)
VAR !PANEXPOS PA POS OF NEXT WRT /*
HANDLE(2,252)
VAR !PANEXPOS PA POS OF $!BRANMEM[$!J] WRT /*
ELSEHANDLE(2,201)
VAR !PANEXPOS TPOS WRT /*
ELSEHANDLE(2,113)
VAR !NEWTP TYPE
IF (|$!NEWTP| EQ |BRAN|) THEN
VAR !PANEXPOS PA POS OF $!BRANMEM[$!J] WRT /*
HANDLE(2,752)
VAR !PANEXPOS TPOS WRT /*
ENDHANDLE
ELSE
VAR !PANEXPOS TPOS OF OWN WRT /*
ENDIF
ELSEHANDLE ANY
VAR !PANEXPOS TPOS OF OWN WRT /*
ENDHANDLE
!MIDPOINT = !PLPOS.POSITION().MIDPOINT(!PANEXPOS.POSITION())
VAR !COFG |$!MIDPOINT|
!COFG = !COFG.BEFORE(| WRT|)
ENDIF
-- WRITEFILE $!COFGFILE |$!ISONO ~ $!ANAM ~ $!TYPE ~ $!ARRSZ ~ $!
LEASZ ~ $!DTXR ~ $!QTY ~ $!COFG ~ $!CWEIGHT|
IF($!FFLAG EQ FALSE) THEN
!oufile.writerecord(|$!PNAM ~ $!PIPSPEC ~ $!ANAM ~ $!TYPE ~ $!REFNO ~
$!DTXR ~ $!ARRSZ ~ $!LEASZ ~ $!QTY ~ $!CUWEIGHT ~ $!CWEIGHT~ $!COFG|)
ELSE
!oufile1.writerecord(|$!PNAM ~ $!PIPSPEC ~ $!ANAM ~ $!TYPE ~ $!REFNO ~
$!DTXR ~ $!ARRSZ ~ $!LEASZ ~ $!QTY ~ $!CUWEIGHT ~ $!CWEIGHT~ $!COFG|)
ENDIF
ENDDO
-- CLOSEFILE $!COFGFILE

if ('$!FPIPE' EQ 'F') THEN


!oufile1.close()
ELSE
!oufile.close()
ENDIF
!oufile2.close()
LABEL /NEXTFILE
ENDDO

FINISH

You might also like