• úvod
  • témata
  • události
  • tržiště
  • diskuze
  • nástěnka
  • přihlásit
    registrace
    ztracené heslo?
    OBRIENBPM & RBMS systemy v praxi
    OBRIEN
    OBRIEN --- ---
    eval() je nejhorsi moznost. Jsem ted byl u klienta resit nejake potize, tak jsem se k tomu jeste nedostal.Vetsina problemu, ktere mam takove charakteru, je v tom, ze mam spatne zorganizovane fakta. Premyslel jsem o tom tvem reseni s moznosti ty fakt vlozit jako jednotlive a rozdelit to na vic pravidel, ale jak rikam, musim to vyzkouset.

    Pouzivam Drools teprve rok, a pokazde kdyz uz si myslim, ze to zvladam, tak potkam nekoho z JBossu a ty me ukazou kouzla, o kterych jsem ani netusil.
    KTV
    KTV --- ---
    jo. no tak to radsi nez eval tak to necham takhle no... a nejde aspon nekam vytahnou tenhle kousek aby ho nemuseli lidi co tam pak budou psat ty pravidla dycky opisovat? navic je to blby i z navrhovyho hlediska zejo ... pak se zmeni zpusob jakym se pocita groupsize a vsichni si to budou ve svejch pravidlech muset opravovat a bude to sileny ....
    OBRIEN
    OBRIEN --- ---
    reseni na to je vzdycky revidovat co mas ve working memory. nejsem ted u pocitace s eclipse, tak to nemuzu vyzkouset.

    jeste muzes vzdycky dat eval() a volat primo java kod, ale to neni doporuceny postup
    KTV
    KTV --- ---
    ale zas mi prijde uchylny tam pokazdy vypisovat ten accumulate kterej je dlouhej jak lovosice:
    Number($groupSize: doubleValue) 
    			from accumulate ( $li: LineItem($qty : quantity, item memberOf $groupItems), 
    				init(double ret = 0;),
    				action(if($li.isFromOneOfContexts($childContexts)) ret += $qty;),
    				reverse(if($li.isFromOneOfContexts($childContexts)) ret -= $qty;),
    				result(ret)
    			);
    
    KTV
    KTV --- ---
    jedinej zpusob na kterej sem prisel je s accumulate ale to mi prijde dost znacnej overkill ... ja bych chtel neco jako ten operator nebo tak nejak... Jestli je to lehky tak si ho tam klidne doprogramuju sam (ehm ... teda nevim co musi takovej operator splnovat a jak moc sou ty dialekty v drools rozsiritelny)
    OBRIEN
    OBRIEN --- ---
    vecer se na to mrknu
    KTV
    KTV --- ---
    cau mam otazku z drools. Potrebuju v drools zjistit jestli kolekce A obsahuje aspon jeden prvek z kolekce B. Priklad:
    class Context{
    ...
        getChildContexts() {
            ... vrati v kolekci vsechny subkontexty a samo sebe ( _this_ )
        }
    }
    
    class LineItems {
        List<Context> parentContext; ... kolekce urcujici do kterejch vsech kontextu ten lineItem patri
    }
    
    no a ted samozrejme bych rad udelal v pravidle "dej mi lineItemy ktery alespon castecne patrej do tohodle kontextu a jeho subkontextu" (tj. maji alespon jeden parentContext kterej patri do toho podstromu). V jave jsem to delal tak, ze normalne for cyklus. Kazdopadne jak to prepisu do drools? zkousel jsem:
        when
    		LineItem($contexts: contexts)
    		Context(childContexts contains $contexts)
    	then
    		System.out.println("kuku");
    

    ale problem je zrejmej - jak childContexts tak $contexts jsou ArrayListy takze on ceka ze v tom Listu childContext bude jako jeden jeho prvek celej list $contexts ... potreboval bych to nejak splostit nebo dodat operator containsAtLeastOneFrom
    OBRIEN
    OBRIEN --- ---
    Nevim jak siroke publikum tady na NYXu bude, ale proc to nezkusit. Pouzivate nekdo BPM nebo RBMS systemy? Osobne pouzivam jBPM a Drools jedna pro svuj soukromy projekt a pak jako konzultant pro dve organizace (finance a logistika).
    Kliknutím sem můžete změnit nastavení reklam