Kaavat ja skriptit kirjoitetaan Python-skriptikielellä. 

Varatut sanat

SyntaksiSelitysEsimerkki
customerPalauttaa tilauksen asiakkaan.
customer.HomePage
productPalauttaa tuotteen, johon komponentti kuuluu.
product.Z
settings[<Asetuksen avain>]Asetustaulukko.
settings["Common.Database.Version"]
thisViittaa itseensä.
this.X
rootPalauttaa rakenteen juuri komponentin.
root.Y
vars[<Muuttujan koodi>]Tilausmuuttujataulukko.
vars["SOKKELIN_KORKEUS"].Value

Hakufunktiot

SyntaksiSelitysEsimerkki
GetAllByComponentType(componentTypeName)Palauttaa kaikki alikomponentit, joiden komponenttityypin nimi on componentTypeName.root.GetAllByComponentType("Kalustelevy")
GetAllByUsage(usageCode)Palauttaa kaikki alikomponentit, joiden käyttönumero vastaa koodia usageCode.root.GetAllByUsage("VASEN_SIVU")
GetAncestors()Palauttaa nimikkeen vanhemmat.this.GetAncestors()
GetComponentTypeAncestors()Palauttaa nimikkeen komponenttityypin vanhemmat.this.GetComponentTypeAncestors()
GetDeepestByCode(code)Etsii syvimmällä rakenteessa olevan alikomponentin, jonka koodi on code.root.GetDeepestByCode("RUNKO")
GetDeepestByComponentType(componentTypeName)Etsii syvimmällä rakenteessa olevan alikomponentin, jonka komponenttityypin nimi on componentTypeName.root.GetDeepestByComponentType("Kalustelevy")
GetDeepestByUsage(usageCode)Etsii syvimmällä rakenteessa olevan alikomponentin, jonka käyttönumero vastaa koodia usageCode.root.GetDeepestByUsage("VASEN_SIVU")
GetDeepestByTag(tag)Etsii syvimmällä rakenteessa olevan alikomponentin, jolla on tagi tag.root.GetDeepestByTag("Porauskoodi")
GetFirstByCode(code)Etsii ensimmäisen alikomponentin, jonka koodi on code.root.GetFirstByCode("RUNKO")
GetFirstByComponentType(componentTypeName)Etsii ensimmäisen alikomponentin, jonka komponenttityypin nimi on componentTypeName.root.GetFirstByComponentType("Kalustelevy")
GetFirstById(nodeId)Etsii ensimmäisen alikomponentin, jonka ID on nodeId.root.GetFirstById(23)
GetFirstByPlaceholderCode(code)Etsii ensimmäisen alikomponentin, jonka paikkavaruksen koodi on code.
root.GetFirstByPlaceholderCode("RUNKOP")
GetFirstByUsage(usageCode)Etsii ensimmäisen alikomponentin, jonka käyttönumero vastaa koodia usageCode.root.GetFirstByUsage("VASEN_SIVU")
GetFirstByTag(tag)Etsii ensimmäisen alikomponentin, jolla on tagi tag.root.GetFirstByTag("Porauskoodi")
GetProduct()Palauttaa tuotteen, johon ko. nimike kuuluu.this.GetProduct()
GetRoot()Palauttaa rakenteen juuren.this.GetRoot()
GetSubItems()Palauttaa kaikki alikomponentit.root.GetSubItems()
GetThisAndSubItems()Palauttaa itsensä ja kaikki alikomponentit.root.GetThisAndSubItems()
TryGetWorkflow()

Palauttaa reitin, johon komponentti kuuluu, jos mihinkään (None). Tarkastelee myös vanhempiensa reittiä, jos ei ole itselleen asetettuna.

this.TryGetWorkflow()
GetColor(colorCode)Palauttaa annetun värikoodin colorCode mukaisen värin. Funktiota voidaan kutsua suoraan ilman instanssia.vari = GetColor("VALKOINEN")
GetQty()Palauttaa komponentin kokonaismäärän ottaen huomioon vanhempien lukumäärät. Rivin lukumäärä ei vaikuta.this.GetQty()
GetTotalQty(QtyScope)Palauttaa komponentin kokonaismäärän. Parametri kertoo mihin tasoon tarkasteltuna määrä lasketaan. Mahdolliset arvot QtyScope:lle ovat: ParentComponent, ProductionComponent, Product, Row, Room ja Transaction. HUOM! Vaatii skriptin alkuun rivin: from FuturaPlan.Script import *

from FuturaPlan.Script import *

this.GetTotalQty(QtyScope.Room)

TryGetStockItemSuffix()Palauttaa komponentin nimikelistasta sopivan nimikkeen tarkenteen. Nimikettä yritetään hakea kutsun hetkellä olevilla arvoilla.tarkenne = this.TryGetStockItemSuffix()
TryGetPredictedCostPrice()Palauttaa nykyisen kustannushinnan. HUOM! Mittamuutokset ja kaikki muut mitä myöhemmät skriptit voivat tehdä saattavat muuttaa lopullista kustanushintaa.hinta = this.TryGetPredictedCostPrice()
GetOrder()Palauttaa tilauksen.tilaus = this.GetOrder()
GetSpecialColorToneQty() (2020.4+)Voidaan kutsua vain tilaukselle, kts. GetOrder(). Palauttaa manuaalisesti lisättyjen värien määrän tilauksessa. Näitä värejä ei siis ole listattuna tuotehallinnassa.maara = this.GetOrder().GetSpecialColorToneQty()
GetStandardColorToneQty() (2020.4+)Voidaan kutsua vain tilaukselle, kts. GetOrder(). Palauttaa standardi värien määrän tilauksessa. Sisältää kaikki FuturaPlanissa määritellyt värit poislukien GetSpecialColorToneQty() kohdassa kuvatut värit.maara = this.GetOrder().GetStandardColorToneQty()
GetQty(componentTypeCode) (2020.4+)Voidaan kutsua vain tilaukselle, kts. GetOrder(). Palauttaa annetun komponenttityyppi koodin mukaisten komponenttien määrän. Ei sisällä alikomponenttityyppejä.maara = this.GetOrder().GetQty("OVI")

Apufunktiot

SyntaksiSelitysEsimerkki
AddChild(code)Lisää komponentin ilman mittoja. Lisättävä komponentti haetaan code-parametrin perusteella.this.AddChild("VS")
AddChild(code, x, y, z, amount)Lisää komponentin, jonka koodi on code, mitat (xyz) ja lukumäärä amount.this.AddChild("VS", 1000, 800, 600, 1)
AddChild(code, x, y, z, amount, usageCode)Lisää komponentin, jonka koodi on code, mitat (xyz), lukumäärä amount ja käyttönumero usageCode.this.AddChild("VS", 1000, 800, 600, 1, "VASEN_SIVU")
AddChild(code, workAmount)Lisää työajan, jonka koodi on code ja työmäärä yksiköinä workAmount.this.AddChild("PORAUS", 2)
AddError(reason, isUnrecoverable)Lisää yleisen virheen komponentille. Parametreina annetaan virheen syy (reason) ja tieto, onko virhe kuitattavissa (isUnrecoverable, oletusarvo False).this.AddError("Virhe, jonka voi kuitata.", False)
AddError(reason, message, isUnrecoverable)Lisää virheen, varoituksen tai informaation komponentille. Parametreina annetaan virheen syy numerona (reason), viesti (message) ja tieto, onko virhe kuitattavissa (isUnrecoverable, oletusarvo False). Virheet välillä 1-100, varoitukset välillä 101-200 ja informaatiot välillä 201-300.this.AddError(102, "Tämä on WarningSizeNotMatch-varoitus, jota ei voi kuitata.", True)
Change(newCode, keepTags, keepDiscount, keepColor)Vaihtaa ko. komponentin komponenttiin, jonka koodi on newCode. Funktio palauttaa uuden objektin, koska this-muuttuja on käyttökelvoton vaihdon jälkeen. Parametrina annetaan koodin lisäksi tieto (keepTags, oletusarvo True) halutaanko alkuperäisen komponentin tagit säilyttää. Vaihtoehtoisena parametrina voi asettaa keepDiscount (oletusarvo False) joka määrittää pidetäänkö edelliselle komponentille määritetty alennus. Funktio säilyttää oletuksena edellisen komponentin värin, mutta tähän voi vaikuttaa lisäämällä keepColor=False skriptiin.uusi = this.Change("A10")
tai esim: this.Change("A10", keepDiscount=True)
IsStockItemAvailable()Palauttaa true, jos komponentin nimikelistasta löytyy nimike kutsun hetkellä olevilla arvoilla.
this.IsStockItemAvailable()
Remove()Poistaa ko. komponentin rakenteesta.this.Remove()
SetColor(colorCode)Asettaa komponentin värin. Parametrina colorCode annetaan halutun värin koodi.this.SetColor("VALKOINEN")
SetStockItem(suffix)Asettaa komponentin nimikkeen. Nimike haetaan liitteen suffix perusteella.this.SetStockItem("MAALATTU")
SetWorkFlow(int index)Asettaa komponentin reitin indeksin perusteella.this.SetWorkFlow(10)

Ominaisuudet

Kaikille yhteiset

SyntaksiSelitysEsimerkki
CodeKomponentin koodi.
CommentKomponentin kommentti merkkijonona.
DesciptionKomponentin kuvaus.
DiscountMultiplierAlennus kerroin.
ErrorKomponentin virheobjekti (vain luku).
FactoryMultiplierKomponentin tehtaan hinnan kerroin.
FusionIndexPathKomponentin indeksipolku Fusionissa (vain luku).
IndeksiKomponentin indeksi (vain luku).
IsFusionItemPalauttaa tosi, jos komponentti on luotu Fusion-rakenteen perusteella (vain luku).
IsRemovedPalauttaa tosi, jos komponentti on poistettu (vain luku).
IsRootPalauttaa tosi, jos komponentti on juuri (vain luku).
IsSelectedAccessoryPalauttaa tosi, jos komponentti on valittu lisävaruste.
NameKomponentin nimi.
NodeIdKomponentin ID (vain luku).
LevelKomponentin taso (vain luku, juurelle taso on 0).
ParentKomponentin vanhempi (vain luku).
ProductionInfoKomponentin tuotanto info.
ProfitMultiplierKomponentin kate kerroin
TagsKomponentin tagi-lista (vain luku).

Artikkelille, osalle ja tuotteelle

SyntaksiSelitysEsimerkki
QtyLukumäärä
Color.CodeVärin koodi
Color.NameVärin nimi
Color.GroupCode (2021.6: Color.Group.Code)Väriryhmän koodi, johon väri kuuluu (vain luku).Lisäkentät tyylillä Color.Group.CF.Kiiltoaste
Color.GroupName (2021.6: Color.Group.Name)Väriryhmän nimi, johon väri kuuluu (vain luku).
Color.ColorBaseVärin pohjaväri.
Color.ColorMapNameVärikartan nimi.
Color.ColorMapCodeVärikartan koodi.
Color.IsSpecialColorOnko erikoisväri.
Color.ColorDirectionVärin suunta. Value kertoo suunnan numerona (0 = ei mitään, 1 = pysty, 2 = vaaka) ja ToString() antaa suunnan käännettynä tekstinä.
Color.SplittedCodesJos värejä on useita, palauttaa koodit listana (vain luku). Esim. "X105/X106/X107" --> { "X105", "X106", "X107" }. Komponentilla voi olla useita värejä, jos se on siirretty Fusionista.
Color.SplittedNames

Jos värejä on useita, palauttaa nimet listana (vain luku). Esim. "Punainen/Harmaa/Ruskea" --> { "Punainen", "Harmaa", "Ruskea" }. Komponentilla voi olla useita värejä, jos se on siirretty Fusionista.


ComponentTypeNameKomponenttityypin nimi.
CustomFields[customFieldCode]Palauttaa lisäkentän koodin perusteella.

this.CustomFields["PAKSUUS"].Value
this.CustomFields["PAKSUUS"].ValueCode

CF.customFieldCodePalauttaa lisäkentän koodin perusteella.this.CF.PAKSUUS.Value
this.CF.PAKSUUS.ValueCode
FusionPriceFusionista mahdollisesti komponentille tullut hinta.
HandednessCodeKätisyys numerona (0 = ei mitään, 1 = vasen, 2 = oikea, 4 = yläsaranoitu, 8 = alasaranoitu, 16  = tuotteelta, 32 = vanhemmalta, 64 = ei porausta, 128 = vasen ja oikea, 256 = etupaneeli, 512 = leikkuulauta)
if this.HandednessCode == 2:
    this.ProductionInfo = "Vasen"
IsDefaultSizedPalauttaa tosi, jos komponentti on oletusmittainen (vain luku).

IsListedPriceAdditional

Palauttaa tosi, jos komponentin hinta lisätään tuotteen hintaan.
IsProductionComponentOnko nimike tuotantokomponentti.
IsSpecialSizedOnko nimike erikoismittainen (vain kirjoitus).
IsSpecialComponentOnko nimike erikoinen (vain kirjoitus).
IsStockItemSelectionSkipped

Jos tosi, ohittaa automaattisen nimikevalinnan rakenteen viimeistelyvaiheessa.

Tuotantokomponentista tulee erikoisia, jos arvo on tosi ja jos komponentin erikoisuus on automaatti-tilassa.


this.IsStockItemSelectionSkipped = True
ListedPriceHinnastohinta (vain kirjoitus).
PlaceholderMessageValinnaisen paikkavarauksen viesti (vain luku).
PriceUnitCodeHinnoitteluyksikkö (vain luku, mahdollisia arvoja ovat mm2m3lpcspair ja box)
PricingGroupNameKomponenttityyppi pohjaisen hinnoitteluryhmän nimi.
OC.ComponentsPerLabelKertoo kuinka monta seurattavaa komponenttia mahtuu yhteen tarraan. Jos arvo on esim. 3, tulostuu kolmesta samanlaisesta komponentista vain yksi tarra, jonka lukumäärä kentässä on arvo 3.
OC.IdSeurattavan komponentin ID (vain luku).
OC.IsFramePalauttaa true, jos seurattava komponentti on runko, eli tarra tulostetaan "runkolinjalta".
OC.NumberOfLabelsTulostettavien tarrojen lukumäärä.
OC.ParcelTypeKollin tyyppi (merkitsevä vain yhdistelmätarroille).this.OC.ParcelType = "Ovia"
OC.TypeCodeSeurattavan komponentin tyyppi (0 = ei tarraa, 1 = yhdistelmätarra (kolli), 2 = komponenttitarra, 3 = helatarra).
OC.WorkstationIndexKertoo mistä tulostuspisteeltä seurattava komponentti eli tarra on määrä tulostaa (arvot määritellään asetuksissa).
StockUnitCodeVarasto- ja ostotilausyksikkö (vain luku, mahdollisia arvoja ovat mm2m3lpcspair ja box)
UsageCodeKäyttönumeron koodi.
XLeveys
YKorkeus
ZSyvyys
VolumeSeurattavan komponentin tilavuus (m³).this.Volume = (this.X/1000) * (this.Y/1000) * (this.Z/1000)
WeightSeurattavan komponentin paino (kg).this.Weight = this.Volume * 50
RealComponentInstructionsVoidaan hallinnoida komponentilla olevia ohjeita. Lista tyyppinen (Add, Remove, jne. käytettävissä). RealComponentInstructions Add ja Remove vaativat parametriksi listan sisältämän tyypin.RealComponentInstructions.Remove(ohje)
RealComponentInstructions.WorkstationTyöohjeen työpiste.
RealComponentInstructions.WorkTimeTyöohjeen työvaihe.
RealComponentInstructions.DbFileSisältää tiedostoviittauksen työohjeeseen.

Osalle ja tuotteelle

SyntaksiSelitysEsimerkki
ActiveChildrenPalauttaa vain aktiiviset (IsRemoved = false) lapset (vain luku).
ChildrenPalauttaa myös poistetut lapset (vain luku).
IsAssembledPalauttaa tosi, jos osa tai tuote kasataan tehtaalla (vain luku).

Artikkelille

SyntaksiSelitysEsimerkki
CalcUnitCodeLaskentayksikkö (vain luku, mahdollisia arvoja ovat mm2m3lpcspair ja box)
CostPriceKustannushinta (vain kirjoitus)
MaterialFixedCostFactorKiinteän kulun kerroin (vain luku)
TargetProfitPercentageTavoitekateprosentti (vain luku)
UnitRatioMuuntokerroin
WastePercentageHukkaprosentti

Osalle

SyntaksiSelitysEsimerkki
IsReusablePalauttaa tosi, jos osa on uudelleenkäytettävä

Tuotteelle

SyntaksiSelitysEsimerkki
InstallationUnitsAsennusyksiköt

Tilaukselle

tilauksen tiedot saadaan tilaus = this.GetOrder()

SyntaksiSelitysEsimerkki
TitleTilauksen otsikko

tilaus = this.GetOrder()
otsikko = tilaus.Title

IsReclamationOnko reklamaatio
CFTilauksen lisäkentätsamalla lailla kuin komponenteille


Työajalle

SyntaksiSelitysEsimerkki
CostPriceKustannushinta (vain kirjoitus)
DurationTyövaiheen kesto (palauttaa TimeSpanobjektin, vain luku)
DurationMsecTyövaiheen kesto millisekunteina (ms, vain luku)
GroupNameTyöryhmän nimi (vain luku)
HourPriceTuntihinta
MeasureUnitCodeYksikkö (vain luku, mahdollisia arvoja ovat mm2m3lpcspair ja box)
SupportTimeFactorApuaikakerroin
WorkAmountTyön määrä yksikköinä (vain kirjoitus)
WorkFixedCostFactorKiinteän kulun kerroin (vain luku)

Lisähinnalle

SyntaksiSelitysEsimerkki
thisLisähinta
TransactionTilaus, johon lisähinta kuuluu
Transaction.CustomerTilauksen asiakas
Transaction.DeliveryMethodTilauksen toimitustapa

Transaction.DeliveryMethod.MinPrice

Transaction.DeliveryMethod.MaxPrice

Transaction.DeliveryMethod.CargoFactor

Transaction.DeliveryMethod.InsuranceFactor

Transaction.DeliveryAddress.IsConsumerAddressOnko osoite kuluttajaosoite
Transaction.IsFrameAssembledOnko tilauksella kasattuja runkoja
CustomerPriceAsiakkaan hinta
CustomerAgreedPriceSovittu hinta

AccumulatedDeliveryCosts

Aiemmat päiväkohtaiset toimituskulut summattuna jos toiminto on asetettu päälle.

Skripti suoritetaan jokaiselle tilaukselle erikseen tilausnumeron mukaan nousevassa järjestyksessä.

Muuttujan arvona on aiempien tilausten toimituskulut yhteensä, ensimmäisella tilauksella

luonnollisesti arvo on 0. Toisella tilauksella on ensimmäisen tilauksen kulut. Kolmannella tilauksella

1. ja 2. tilauksen kulut yhteensä jne.


Muuttuja on "vain luku"-tyyppinen.


(asetus "OrderManager.Scripting.BundleRelatedTransactions" pitää olla päällä, jotta

toimituskuluja summataan ja päivitetään useammalle tilaukselle)

#Esimerkissä 50 on kiinteä hinta kuluille
#Jos mennään päiväkohtaisen maksimin yli, arvoksi tulee jäljelle jäänyt osuus tai 0

if AccumulatedDeliveryCosts + 50 >= Transaction.DeliveryMethod.MaxPrice:
    value = Transaction.DeliveryMethod.MaxPrice - AccumulatedDeliveryCosts
else:
    value = 50    
value


IndexOfSameDayOrdersMonesko käsiteltävistä saman päivän tilausksista tämä tilaus on.
Toimii jos asetus OrderManager.Scripting.BundleRelatedTransactions on ruksittuna.

TotalCountOfSameDayOrdersMontako saman päivän tilausta on käsiteltävissä yhteensä.
Toimii jos asetus OrderManager.Scripting.BundleRelatedTransactions on ruksittuna.

FactoryPriceTilauksen tehdashintahinta = FactoryPrice * 0.1