Exempel på skript för Maximo Business Rules (MBR)

Flera exempel tillhandahålls för att illustrera hur du använder språket Maximo Business Rules (MBR) i flera vanliga skriptscenarier.

Exempel: Lägga till ett MBO till ett MBOSet

När en ny inventarie läggs till med inventarietypen GASENG, läggs två mätare till mätar-MBOSet för inventarien. Mätarna är O-PRESSUR och IN-PRESSUR.

Procedur
  1. Skapa ett skript som har en objektstartpunkt i applikationen Automatiseringsskript.
  2. Ange startpunktsnamnet och välj ASSET-objektet.
  3. I avsnittet Händelser väljer du händelsen Spara .
  4. I avsnittet Spara anger du kontexten för händelsen och väljer Lägg till och Före sparande.
  5. I skriptavsnittet väljer du alternativet att lägga till ett skript och går vidare till nästa sida.
  6. Ange ett skriptnamn och ange loggnivån som ska felsökas. Gå vidare till nästa sida.
  7. Klistra in källkoden nedan i fältet Källkod och klicka på Skapa för att lägga till skriptet.
    #my first MBR code for asset
    setvar("isgaseng",(assettype == "GASENG" && countf("assetmeter")==0))
    if(getvar("isgaseng"),invokescript(":createmeters"))
    
    #my MBR function that will add the two meter MBOs to the asset MBO
    :createmeters
    newmbo("opressure","assetmeter")
    setvaluetombo("opressure","metername","O-PRESSUR")
    newmbo("inpressure","assetmeter")
    setvaluetombo("inpressure","metername","IN-PRESSUR")

Analys

Skriptet innehåller två rader med huvudkod och en funktion. Skriptet körs när en användare sparar ändringar till en inventariepost. I huvudkoden implementeras följande logik:

  1. Skapa en lokal variabel och ange TRUE för variabeln om båda följande villkor är uppfyllda:
    • Inventarietypen är GASENG.
    • Mätar-MBOSet för inventarien är tom.
  2. Utvärdera den lokala variabeln. Om den lokala variabeln är TRUE, anropar du en funktion för att lägga till MBOer på mätar-MBOSet för inventarien. I funktionen createmeters implementeras följande logik:
    1. Lägg till ett MBO till mätar-MBOSet för inventarien.
    2. Ange namnet O-PRESSUR för MBOn.
    3. Lägg till ett MBO till mätar-MBOSet för inventarien.
    4. Ange namnet IN-PRESSUR för det andra MBOet.

Skriptet använder två interna variabler, assettype och assetmeter, för att härleda inventarietypen och innehållet i mätar-MBOSet för inventarien.

Eftersom det här skriptet körs när en användare sparar sina ändringar, sparar och bekräftar transaktionsramverket för applikationen de nyskapade MBOerna som en del av huvudtransaktionen.

Du kan flytta funktionskoden för createmeters till ett biblioteksskript. Exempel: Du kan flytta createmeters-funktionskoden till ett biblioteksskript som också kallas createmeters och sedan anropa biblioteksskriptet i följande sats:

if(getvar("isgaseng"),invokescript("createmeters"))

Exempel: Manipulera datum

Om en inventarie har typen BUS vidtar du följande åtgärder:
  • Sätt slutdatum för livstiden till installationsdatumet plus ett år. Om inventarien inte har något installationsdatum, ställer du in slutdatumet på det aktuella datumet plus ett år.
  • Gör prioritetsattributet obligatoriskt.
Procedur
  1. Skapa ett skript som har en attributstartpunkt i applikationen Automatiseringsskript.
  2. Ange startpunktsnamnet och välj ASSET-objektet och ASSETTYPE-attributet.
  3. I avsnittet Händelser väljer du händelsen Validera.
  4. I skriptavsnittet väljer du alternativet för ett nytt skript och går vidare till nästa sida.
  5. Ange ett skriptnamn och ange loggnivån som ska felsökas. Gå vidare till nästa sida.
  6. Klistra in källkoden nedan i fältet Källkod och klicka på Skapa för att lägga till skriptet.
    if(assettype=="BUS",setvalue("estendoflife",nvl(installdate,now())+duration(1,0,0,0,0,0)))
    if(assettype=="BUS",setrequired("priority",TRUE),setrequired("priority",FALSE))

Analys

Skriptet körs när inventarietypen ändras. I skriptet implementeras följande logik:

  • Om inventarien har typen BUS ställer du in slutdatumet för livstiden:
    1. Utvärdera installationsdatumet för inventarien.
    2. Om installationsdatumet är tomt, ställer du in slutdatumet för livstiden på det aktuella datumet plus ett år.
    3. Om installationsdatumet är ifyllt, ställer du in slutdatumet för livstiden till installationsdatumet plus ett år.
  • Om inventarien har typen BUS gör du prioritetsattributet obligatoriskt. Om inventarien inte har typen BUS gör du prioritetsattributet valfritt.
För båda dessa åtgärder kontrollerar skriptet om inventarien har typen BUS, vilket är ineffektivt. Du kan förbättra skriptet genom att definiera en funktion, flytta båda åtgärderna till funktionen, och anropa funktionen om inventarien har typen BUS. Följande kod visar dessa förbättringar:
if(assettype=="BUS",invokescript(":seteol"),setrequired("priority",FALSE)) 
:seteol
setvalue("estendoflife",nvl(installdate,now())+duration(1,0,0,0,0,0))
setrequired("priority",TRUE)

Skriptet använder de interna variablerna assettype, estendoflife och installdate för att härleda värdena för typen, slutdatum för livstiden och installationsdatum för inventarien.

Exempel: Ange attribut på duplicerade objekt

När en arbetsorder dupliceras kopierar du det ursprungliga arbetsordernumret till ett anpassat attribut i den duplicerade arbetsordern.

Procedur
  1. Skapa ett skript som inte har en startpunkt i applikationen Automatiseringsskript.
  2. Ange skriptnamnet WORKORDER.DUPLICATE.
  3. Ange MBR som skriptspråk om det inte anges.
  4. Klistra in följande källkod i fältet Källkod och klicka på Skapa för att lägga till skriptet:
    setvaluetombo("dupmbo","copiedfrom", wonum)

Analys

Skriptnamnet ser till att skriptet körs när en arbetsorder är duplicerad. Skriptet kopierar det ursprungliga arbetsordernumret till ett anpassat attribut i den duplicerade arbetsordern.

Skriptet använder de interna variablerna wonum, dupmbo och copiedfrom för att härleda värdena för det ursprungliga arbetsordernumret, dubblettarbetsordernumret och det anpassade attributet på den duplicerade arbetsordern.