1. | 2. | 3. | 4. | 5. | 6. | 7. | // Imported PMML Model Theory 8. | // Trained with : 9. | // Creation timestamp : 2014.09.15 at 22:00:54 CEST 10. | // Description : generated by the drools-scorecards module 11. | // Copyright : null 12. | 13. | 14. | 15. | 16. | package pl.com.best; 17. | 18. | import org.drools.pmml.pmml_4_1.*; 19. | import org.drools.core.factmodel.traits.Traitable; 20. | 21. | 22. | 23. | 24. | 25. | 26. | 27. | 28. | 29. | 30. | 31. | 32. | 33. | 34. | 35. | 36. | 37. | 38. | 39. | 40. | 41. | 42. | 43. | declare PMML4AbstractField 44. | end 45. | 46. | declare DataField extends PMML4AbstractField 47. | @role(event) 48. | valid : boolean = false @position(3) 49. | missing : boolean = false @position(4) 50. | context : String @key @position(2) 51. | name : String 52. | // cyclic = (false) : boolean 53. | // continuous = (false) : boolean 54. | // categorical = (false) : boolean 55. | // ordinal = (false) : boolean 56. | end 57. | 58. | declare OutputField extends DataField 59. | @role(event) 60. | 61. | warning : String = "No Warning" 62. | target : boolean = false 63. | 64. | end 65. | 66. | 67. | 68. | 69. | 70. | 71. | 72. | 73. | 74. | 75. | 76. | 77. | 78. | 79. | 80. | 81. | 82. | 83. | 84. | // Display Name : null 85. | 86. | declare Scorecard__calculatedScore extends DataField 87. | @role(event) 88. | @Traitable 89. | 90. | value : double @key @position(1) 91. | displayValue : String = "Scorecard__calculatedScore" 92. | 93. | weight : double = 1.0 @key 94. | 95. | 96. | end 97. | 98. | 99. | 100. | 101. | 102. | 103. | 104. | 105. | 106. | 107. | 108. | 109. | 110. | 111. | 112. | 113. | 114. | 115. | 116. | rule "Input_Scorecard__calculatedScore" 117. | when 118. | $in : java.lang.Double() from entry-point "in_Scorecard__calculatedScore" 119. | not Scorecard__calculatedScore( value == $in, context == null ) 120. | then 121. | // java.lang.Double 122. | Scorecard__calculatedScore input = new Scorecard__calculatedScore(); 123. | input.setValue( $in ); 124. | input.setName("Scorecard__calculatedScore"); 125. | input.setMissing(false); 126. | input.setValid(true); 127. | input.setContext(null); 128. | //System.out.println("Rule " + drools.getRule().getName() + " for input " + $in + " : will insert " + input.toString()); 129. | retract( $in ); 130. | insert( input ); 131. | end 132. | 133. | 134. | rule "OverrideInput_Scorecard__calculatedScore" 135. | salience 2 136. | when 137. | $new: java.lang.Double() from entry-point "in_Scorecard__calculatedScore" 138. | $old: Scorecard__calculatedScore( value != $new ) 139. | then 140. | //System.out.println(" Overriding previous values " + $old + " because of " + $new ); 141. | retract( $old ); 142. | end 143. | 144. | 145. | 146. | 147. | 148. | 149. | 150. | 151. | 152. | 153. | 154. | 155. | 156. | 157. | 158. | 159. | 160. | 161. | // Display Name : null 162. | 163. | declare IntField2 extends DataField 164. | @role(event) 165. | @Traitable 166. | 167. | value : double @key @position(1) 168. | displayValue : String = "IntField2" 169. | 170. | weight : double = 1.0 @key 171. | 172. | 173. | end 174. | 175. | 176. | 177. | 178. | 179. | 180. | 181. | 182. | 183. | 184. | 185. | 186. | 187. | 188. | 189. | 190. | 191. | 192. | 193. | rule "Input_IntField2" 194. | when 195. | $in : java.lang.Double() from entry-point "in_IntField2" 196. | not IntField2( value == $in, context == null ) 197. | then 198. | // java.lang.Double 199. | IntField2 input = new IntField2(); 200. | input.setValue( $in ); 201. | input.setName("IntField2"); 202. | input.setMissing(false); 203. | input.setValid(true); 204. | input.setContext(null); 205. | //System.out.println("Rule " + drools.getRule().getName() + " for input " + $in + " : will insert " + input.toString()); 206. | retract( $in ); 207. | insert( input ); 208. | end 209. | 210. | 211. | rule "OverrideInput_IntField2" 212. | salience 2 213. | when 214. | $new: java.lang.Double() from entry-point "in_IntField2" 215. | $old: IntField2( value != $new ) 216. | then 217. | //System.out.println(" Overriding previous values " + $old + " because of " + $new ); 218. | retract( $old ); 219. | end 220. | 221. | 222. | 223. | 224. | 225. | 226. | 227. | 228. | 229. | 230. | 231. | 232. | 233. | 234. | 235. | 236. | 237. | 238. | // Display Name : null 239. | 240. | declare IntField1 extends DataField 241. | @role(event) 242. | @Traitable 243. | 244. | value : double @key @position(1) 245. | displayValue : String = "IntField1" 246. | 247. | weight : double = 1.0 @key 248. | 249. | 250. | end 251. | 252. | 253. | 254. | 255. | 256. | 257. | 258. | 259. | 260. | 261. | 262. | 263. | 264. | 265. | 266. | 267. | 268. | 269. | 270. | rule "Input_IntField1" 271. | when 272. | $in : java.lang.Double() from entry-point "in_IntField1" 273. | not IntField1( value == $in, context == null ) 274. | then 275. | // java.lang.Double 276. | IntField1 input = new IntField1(); 277. | input.setValue( $in ); 278. | input.setName("IntField1"); 279. | input.setMissing(false); 280. | input.setValid(true); 281. | input.setContext(null); 282. | //System.out.println("Rule " + drools.getRule().getName() + " for input " + $in + " : will insert " + input.toString()); 283. | retract( $in ); 284. | insert( input ); 285. | end 286. | 287. | 288. | rule "OverrideInput_IntField1" 289. | salience 2 290. | when 291. | $new: java.lang.Double() from entry-point "in_IntField1" 292. | $old: IntField1( value != $new ) 293. | then 294. | //System.out.println(" Overriding previous values " + $old + " because of " + $new ); 295. | retract( $old ); 296. | end 297. | 298. | 299. | 300. | 301. | 302. | 303. | 304. | 305. | 306. | 307. | 308. | 309. | 310. | 311. | declare org.drools.pmml.pmml_4_1.ScoreCard 312. | @propertyReactive 313. | modelName : String @key 314. | score : double 315. | holder : org.drools.pmml.pmml_4_1.ScoreCardData 316. | enableRC : boolean 317. | pointsBelow : boolean 318. | ranking : java.util.Map 319. | end 320. | 321. | 322. | declare org.drools.pmml.pmml_4_1.ScoreRank 323. | scoreCard : org.drools.pmml.pmml_4_1.ScoreCard 324. | rank : java.util.Map 325. | end 326. | 327. | declare org.drools.pmml.pmml_4_1.ScoreCardData 328. | @propertyReactive 329. | modelName : String @key 330. | end 331. | 332. | declare org.drools.pmml.pmml_4_1.Score 333. | scoreCard : String @key 334. | value : double @key 335. | end 336. | 337. | declare org.drools.pmml.pmml_4_1.InitialScore extends org.drools.pmml.pmml_4_1.Score 338. | end 339. | 340. | declare org.drools.pmml.pmml_4_1.BaselineScore extends org.drools.pmml.pmml_4_1.Score 341. | characteristic : String @key 342. | end 343. | 344. | declare org.drools.pmml.pmml_4_1.PartialScore extends org.drools.pmml.pmml_4_1.Score 345. | characteristic : String @key 346. | reasonCode : String 347. | weight : Double 348. | end 349. | 350. | declare org.drools.pmml.pmml_4_1.ScoreRow extends org.drools.pmml.pmml_4_1.Score 351. | characteristic : String @key 352. | reasonCode : String 353. | id : String 354. | end 355. | 356. | declare org.drools.pmml.pmml_4_1.CodeScore 357. | scoreCard : ScoreCard @key 358. | code : String @key 359. | score : double @key 360. | end 361. | 362. | 363. | 364. | 365. | 366. | 367. | 368. | 369. | rule "Mark_TestGSC" 370. | salience 9999 371. | no-loop 372. | when 373. | // not ModelMarker( "TestGSC" ; ) 374. | then 375. | // System.out.println( "Marking TestGSC" ); 376. | ModelMarker mark = new ModelMarker( "TestGSC", "Scorecard" ); 377. | insertLogical( mark ); 378. | end 379. | 380. | rule "Enable/Disable Model_TestGSC" 381. | when 382. | $flag : Boolean() from entry-point "enable_TestGSC" 383. | $mark : ModelMarker( modelName == "TestGSC", enabled != $flag ) 384. | then 385. | retract( $flag ); 386. | modify ( $mark ) { 387. | setEnabled( $flag ); 388. | } 389. | end 390. | 391. | 392. | 393. | 394. | 395. | 396. | 397. | 398. | 399. | 400. | 401. | 402. | 403. | rule "Score Card TestGSC" 404. | salience -10 // after data are stable 405. | when 406. | $card : org.drools.pmml.pmml_4_1.ScoreCard( $ctx : modelName ) 407. | org.drools.pmml.pmml_4_1.InitialScore( scoreCard == $ctx, $zero : value ) 408. | accumulate( 409. | org.drools.pmml.pmml_4_1.PartialScore( scoreCard == $ctx, $val : value, $wgt : weight ), 410. | $tot : sum( $val ); 411. | $tot.doubleValue() + $zero != $card.getScore() ) 412. | then 413. | modify ( $card ) { 414. | setScore( $zero + $tot.doubleValue() ); 415. | } 416. | end 417. | 418. | 419. | rule "Cumulate Code Scores" 420. | salience -11 421. | when 422. | $card : org.drools.pmml.pmml_4_1.ScoreCard( $ctx : modelName, enableRC == true, $below : pointsBelow ) 423. | accumulate( org.drools.pmml.pmml_4_1.PartialScore( scoreCard == $ctx, $rc : reasonCode != null ), 424. | $set : collectSet( $rc ) ) 425. | $code : String() from $set 426. | accumulate( org.drools.pmml.pmml_4_1.PartialScore( scoreCard == $ctx, reasonCode == $code, $val : value, $char : characteristic ) 427. | and 428. | org.drools.pmml.pmml_4_1.BaselineScore( scoreCard == $ctx, characteristic == $char, $base : value ), 429. | $sum : sumBD( $below ? ($base - $val) : ($val - $base) ) ) 430. | then 431. | // System.out.println( "The CUMULATED score for code " + $code + " from set " + $set + " is >>> " + $sum ); 432. | insertLogical( new org.drools.pmml.pmml_4_1.CodeScore( $card, $code, $sum.doubleValue() ) ); 433. | end 434. | 435. | 436. | rule "Detect Scorecard ReasonCode Change" 437. | salience -12 438. | when 439. | $sc : org.drools.pmml.pmml_4_1.ScoreCard( enableRC == true, $map : ranking ) 440. | exists org.drools.pmml.pmml_4_1.CodeScore( scoreCard == $sc, $c : code, score != $map.get( $c ) ) 441. | then 442. | insert( new org.drools.pmml.pmml_4_1.ScoreRank( $sc, new java.util.LinkedHashMap() ) ); 443. | end 444. | 445. | 446. | rule "Sort Scorecard Reason Codes" 447. | salience -14 448. | when 449. | $r : org.drools.pmml.pmml_4_1.ScoreRank( $sc : scoreCard, $map : rank ) 450. | $cs : org.drools.pmml.pmml_4_1.CodeScore( scoreCard == $sc, ! $map.containsKey( code ), $s : score, $c : code ) 451. | not org.drools.pmml.pmml_4_1.CodeScore( scoreCard == $sc, ! $map.containsKey( code ), score > $s ) 452. | then 453. | modify ( $r ) { 454. | getRank().put( $c, $s ); 455. | } 456. | end 457. | 458. | 459. | rule "Integrate Scorecard ReasonCode Map" 460. | salience -15 461. | when 462. | $s : ScoreCard( enableRC == true ) 463. | $x : ScoreRank( scoreCard == $s, $map : rank ) 464. | then 465. | retract( $x ); 466. | modify ( $s ) { 467. | setRanking( $map ); 468. | } 469. | end 470. | 471. | 472. | 473. | 474. | 475. | 476. | 477. | 478. | 479. | 480. | 481. | 482. | 483. | 484. | 485. | 486. | 487. | 488. | 489. | // Display Name : Final Score 490. | 491. | declare ScoreField extends OutputField 492. | @role(event) 493. | @Traitable 494. | 495. | value : double @key @position(1) 496. | displayValue : String = "Final Score" 497. | 498. | weight : double = 1.0 @key 499. | 500. | tgtValue : double 501. | end 502. | 503. | 504. | 505. | 506. | 507. | 508. | 509. | 510. | 511. | 512. | 513. | 514. | 515. | 516. | 517. | rule "update_ScoreField_TestGSC" 518. | salience 2000 519. | 520. | when 521. | $new : ScoreField( $ctx : context == "TestGSC" ) 522. | $old : ScoreField( context == $ctx, this before $new ) 523. | then 524. | retract( $old ); 525. | end 526. | 527. | 528. | 529. | 530. | 531. | 532. | 533. | 534. | 535. | 536. | 537. | 538. | 539. | 540. | 541. | rule "Bind scoreField Output into Fact dummy" 542. | dialect "mvel" 543. | when 544. | ScoreField( $val : value) 545. | $x : dummy( scoreField != $val ) 546. | then 547. | modify ( $x ) { setScoreField( $val ); } 548. | end 549. | 550. | 551. | 552. | 553. | 554. | 555. | 556. | 557. | 558. | 559. | 560. | 561. | 562. | rule "simpleOutput_Scorecard__calculatedScore_to_ScoreField" 563. | salience -110 564. | 565. | when 566. | $src : Scorecard__calculatedScore( $m : missing, $v : valid == true, $val : value, $ctx : context, $wgt : weight 567. | , context == "TestGSC" 568. | 569. | ) 570. | 571. | then 572. | // System.out.println("Cloning output " + $src ); 573. | ScoreField x = new ScoreField(); 574. | x.setValue( $val ); 575. | x.setMissing( $m ); 576. | x.setValid( $v ); 577. | x.setName( "ScoreField" ); 578. | x.setContext( $ctx ); 579. | x.setWeight( $wgt ); 580. | insertLogical( x ); 581. | end 582. | 583. | 584. | //rule "Clear Output_TestGSC_ScoreField" 585. | //salience -110 586. | //when 587. | // not ModelMarker( enabled == true, modelName == "TestGSC" ) 588. | // $x : ScoreField( context == "TestGSC") 589. | //then 590. | // retract( $x ); 591. | //end 592. | // 593. | 594. | 595. | 596. | 597. | 598. | 599. | 600. | 601. | 602. | 603. | 604. | 605. | 606. | 607. | 608. | 609. | query "ScoreField" ( String ctx, Double $result ) 610. | ScoreField( context == ctx , $result := value ) 611. | end 612. | 613. | 614. | 615. | 616. | 617. | 618. | 619. | 620. | 621. | 622. | 623. | 624. | 625. | rule "miningField_TestGSC_IntField2" 626. | when 627. | $src : IntField2( $m : missing, $v : valid, $x : value, context == null ) 628. | then 629. | IntField2 x = new IntField2(); 630. | x.setValue($x); 631. | x.setMissing($m); 632. | x.setValid($v); 633. | x.setName("IntField2"); 634. | x.setContext("TestGSC"); 635. | insertLogical(x); 636. | end 637. | 638. | 639. | rule "InitAsMissing_TestGSC_IntField2" 640. | salience 1000 641. | when 642. | ModelMarker( modelName == "TestGSC", enabled == true ) 643. | not IntField2( context == null ) 644. | then 645. | IntField2 input = new IntField2(); 646. | input.setName("IntField2"); 647. | input.setMissing(true); 648. | input.setValid(false); 649. | input.setContext( "TestGSC" ); 650. | insertLogical( input ); 651. | end 652. | 653. | 654. | 655. | 656. | 657. | 658. | 659. | 660. | 661. | 662. | 663. | 664. | rule "miningField_TestGSC_IntField1" 665. | when 666. | $src : IntField1( $m : missing, $v : valid, $x : value, context == null ) 667. | then 668. | IntField1 x = new IntField1(); 669. | x.setValue($x); 670. | x.setMissing($m); 671. | x.setValid($v); 672. | x.setName("IntField1"); 673. | x.setContext("TestGSC"); 674. | insertLogical(x); 675. | end 676. | 677. | 678. | rule "InitAsMissing_TestGSC_IntField1" 679. | salience 1000 680. | when 681. | ModelMarker( modelName == "TestGSC", enabled == true ) 682. | not IntField1( context == null ) 683. | then 684. | IntField1 input = new IntField1(); 685. | input.setName("IntField1"); 686. | input.setMissing(true); 687. | input.setValid(false); 688. | input.setContext( "TestGSC" ); 689. | insertLogical( input ); 690. | end 691. | 692. | 693. | 694. | 695. | 696. | 697. | 698. | 699. | 700. | 701. | 702. | 703. | 704. | 705. | rule "Scorecard TestGSC output" 706. | salience -5 707. | when 708. | org.drools.pmml.pmml_4_1.ScoreCard( modelName == "TestGSC", $score : score ) 709. | then 710. | Scorecard__calculatedScore x = new Scorecard__calculatedScore(); 711. | x.setContext( "TestGSC" ); 712. | x.setValid( true ); 713. | x.setMissing( false ); 714. | x.setValue( $score ); 715. | insertLogical( x ); 716. | end 717. | 718. | 719. | 720. | 721. | 722. | 723. | 724. | 725. | declare TestGSC 726. | @propertyReactive 727. | 728. | 729. | intField2 : double 730. | 731. | intField1 : double 732. | 733. | 734. | scorecard__calculatedScore : java.lang.Object 735. | 736. | 737. | end 738. | 739. | rule "Link TestGSC Bean Input" 740. | when 741. | TestGSC( 742. | 743. | _intField2 : intField2 744. | , 745. | _intField1 : intField1 746. | 747. | ) 748. | then 749. | 750. | drools.getEntryPoint("in_IntField2").insert(_intField2); 751. | 752. | drools.getEntryPoint("in_IntField1").insert(_intField1); 753. | 754. | end 755. | 756. | 757. | 758. | 759. | rule "Link TestGSC Predicted Fields scorecard__calculatedScore " 760. | when 761. | Scorecard__calculatedScore( $val : value) 762. | $x : TestGSC( scorecard__calculatedScore != $val ) 763. | then 764. | modify ( $x ) { setScorecard__calculatedScore( $val ); } 765. | end 766. | 767. | 768. | 769. | 770. | 771. | 772. | 773. | 774. | 775. | 776. | 777. | 778. | 779. | 780. | 781. | rule "Bind intField2 Input from Fact dummy" 782. | dialect "mvel" 783. | when 784. | dummy( $val : intField2 ) 785. | then 786. | drools.getEntryPoint("in_IntField2").insert( $val ); 787. | end 788. | 789. | 790. | 791. | 792. | 793. | 794. | 795. | 796. | 797. | 798. | 799. | 800. | rule "Bind intField1 Input from Fact dummy" 801. | dialect "mvel" 802. | when 803. | dummy( $val : intField1 ) 804. | then 805. | drools.getEntryPoint("in_IntField1").insert( $val ); 806. | end 807. | 808. | 809. | 810. | 811. | 812. | 813. | 814. | 815. | 816. | 817. | 818. | 819. | 820. | 821. | 822. | 823. | rule "PartialScore_TestGSC_intField1Score_64" 824. | when 825. | org.drools.pmml.pmml_4_1.ScoreRow( scoreCard == "TestGSC", id == "intField1Score0", $val : value, $char : characteristic, $code : reasonCode ) 826. | $sc : TestGSCScoreCardData( ( mIntField1 == false && vIntField1 < 5 ) ) 827. | then 828. | // System.out.println( "PARTIALLY SCORING SC " + $val + " " + $char ); 829. | // weigth is null 830. | insertLogical( new org.drools.pmml.pmml_4_1.PartialScore( "TestGSC", $val, $char, $code, 1.0 ) ); 831. | end 832. | 833. | 834. | 835. | 836. | 837. | 838. | 839. | 840. | 841. | 842. | 843. | 844. | 845. | 846. | rule "PartialScore_TestGSC_intField1Score_65" 847. | when 848. | org.drools.pmml.pmml_4_1.ScoreRow( scoreCard == "TestGSC", id == "intField1Score1", $val : value, $char : characteristic, $code : reasonCode ) 849. | $sc : TestGSCScoreCardData( ( mIntField1 == false && vIntField1 >= 5 ) ) 850. | then 851. | // System.out.println( "PARTIALLY SCORING SC " + $val + " " + $char ); 852. | // weigth is null 853. | insertLogical( new org.drools.pmml.pmml_4_1.PartialScore( "TestGSC", $val, $char, $code, 1.0 ) ); 854. | end 855. | 856. | 857. | 858. | 859. | 860. | 861. | 862. | 863. | 864. | 865. | 866. | 867. | 868. | 869. | rule "PartialScore_TestGSC_intField2Score_66" 870. | when 871. | org.drools.pmml.pmml_4_1.ScoreRow( scoreCard == "TestGSC", id == "intField2Score0", $val : value, $char : characteristic, $code : reasonCode ) 872. | $sc : TestGSCScoreCardData( ( mIntField2 == false && vIntField2 < 2 ) ) 873. | then 874. | // System.out.println( "PARTIALLY SCORING SC " + $val + " " + $char ); 875. | // weigth is null 876. | insertLogical( new org.drools.pmml.pmml_4_1.PartialScore( "TestGSC", $val, $char, $code, 1.0 ) ); 877. | end 878. | 879. | 880. | 881. | 882. | 883. | 884. | 885. | 886. | 887. | 888. | 889. | 890. | 891. | 892. | rule "PartialScore_TestGSC_intField2Score_67" 893. | when 894. | org.drools.pmml.pmml_4_1.ScoreRow( scoreCard == "TestGSC", id == "intField2Score1", $val : value, $char : characteristic, $code : reasonCode ) 895. | $sc : TestGSCScoreCardData( ( mIntField2 == false && vIntField2 >= 2 ) ) 896. | then 897. | // System.out.println( "PARTIALLY SCORING SC " + $val + " " + $char ); 898. | // weigth is null 899. | insertLogical( new org.drools.pmml.pmml_4_1.PartialScore( "TestGSC", $val, $char, $code, 1.0 ) ); 900. | end 901. | 902. | 903. | 904. | 905. | 906. | 907. | 908. | 909. | 910. | 911. | 912. | 913. | 914. | 915. | 916. | declare TestGSCScoreCardData extends org.drools.pmml.pmml_4_1.ScoreCardData 917. | @propertyReactive 918. | 919. | 920. | mIntField2 : boolean = true 921. | vIntField2 : double 922. | 923. | mIntField1 : boolean = true 924. | vIntField1 : double 925. | 926. | 927. | end 928. | 929. | 930. | rule "Bind_Scorecard_TestGSC_IntField2" 931. | when 932. | $in : IntField2( context == "TestGSC", missing == true || valid == true, $m : missing, $v : value ) 933. | $sc : TestGSCScoreCardData( ( mIntField2 == true && != $m ) 934. | || vIntField2 != $v ) 935. | then 936. | modify ( $sc ) { 937. | setMIntField2( $m ), 938. | setVIntField2( $v ); 939. | } 940. | end 941. | 942. | rule "Bind_Scorecard_TestGSC_IntField1" 943. | when 944. | $in : IntField1( context == "TestGSC", missing == true || valid == true, $m : missing, $v : value ) 945. | $sc : TestGSCScoreCardData( ( mIntField1 == true && != $m ) 946. | || vIntField1 != $v ) 947. | then 948. | modify ( $sc ) { 949. | setMIntField1( $m ), 950. | setVIntField1( $v ); 951. | } 952. | end 953. | 954. | 955. | 956. | 957. | 958. | 959. | 960. | 961. | 962. | 963. | 964. | 965. | 966. | 967. | 968. | 969. | 970. | rule "Init ScoreCard TestGSC" 971. | when 972. | ModelMarker( "TestGSC" ; enabled == true ) 973. | then 974. | org.drools.pmml.pmml_4_1.ScoreCardData data = new TestGSCScoreCardData ( "TestGSC" ); 975. | org.drools.pmml.pmml_4_1.ScoreCard card = new ScoreCard( "TestGSC", 0.0, data, false, true, new java.util.LinkedHashMap() ); 976. | insertLogical( data ); 977. | insertLogical( card ); 978. | 979. | insertLogical( new org.drools.pmml.pmml_4_1.InitialScore( "TestGSC", 0.0 ) ); 980. | end 981. | 982. | 983. | 984. | 985. | 986. | 987. | 988. | 989. | 990. | 991. | 992. | 993. | 994. | 995. | rule "Init ScoreCard Params TestGSC" 996. | when 997. | ModelMarker( "TestGSC" ; enabled == true ) 998. | then 999. | 1000. | insertLogical( new org.drools.pmml.pmml_4_1.BaselineScore( "TestGSC", 0.0, "intField1Score" ) ); 1001. | 1002. | insertLogical( new org.drools.pmml.pmml_4_1.ScoreRow( "TestGSC", 1003. | 0.0, 1004. | "intField1Score", 1005. | "null", 1006. | "intField1Score0" ) ); 1007. | 1008. | insertLogical( new org.drools.pmml.pmml_4_1.ScoreRow( "TestGSC", 1009. | 1.0, 1010. | "intField1Score", 1011. | "null", 1012. | "intField1Score1" ) ); 1013. | 1014. | 1015. | insertLogical( new org.drools.pmml.pmml_4_1.BaselineScore( "TestGSC", 0.0, "intField2Score" ) ); 1016. | 1017. | insertLogical( new org.drools.pmml.pmml_4_1.ScoreRow( "TestGSC", 1018. | -5.0, 1019. | "intField2Score", 1020. | "null", 1021. | "intField2Score0" ) ); 1022. | 1023. | insertLogical( new org.drools.pmml.pmml_4_1.ScoreRow( "TestGSC", 1024. | 5.0, 1025. | "intField2Score", 1026. | "null", 1027. | "intField2Score1" ) ); 1028. | 1029. | 1030. | end 1031. | 1032. | 1033. | 1034. | 1035. | 1036. | 1037. | 1038. | 1039. | 1040. | declare TestGSCOutput 1041. | @propertyReactive 1042. | 1043. | 1044. | scoreField : double 1045. | 1046. | 1047. | end 1048. | 1049. | 1050. | rule "Create TestGSC Output Bean" 1051. | when 1052. | $mark : ModelMarker( modelName == "TestGSC", enabled == true ) 1053. | then 1054. | insertLogical( new TestGSCOutput() ); 1055. | end 1056. | 1057. | 1058. | 1059. | 1060. | 1061. | rule "Link TestGSC Output Fields scoreField " 1062. | when 1063. | ScoreField( $val : value) 1064. | $x : TestGSCOutput( scoreField != $val ) 1065. | then 1066. | modify ( $x ) { setScoreField( $val ); } 1067. | end 1068. | 1069. |