Does that rule work before unmarshalling?

I assume "productPricer" is the global but it is undefined in the DRL fragment you paste.

You'd need to include a "variables" entry in the RuleSet section. See section "2.4.4.2. Rule Set Entries" in http://docs.jboss.org/drools/release/5.5.0.Final/drools-expert-docs/html/ch02.html#d0e1157.

If what you provided was incomplete and you already do this, the problem could be elsewhere.

On 7 January 2013 16:41, Ormond, Alex C. (GDLP) <ACOrmond@greatdanetrailers.com> wrote:
Thanks for the response.  The first rule table in the spreadsheet
(kinda) looks like this:

RuleTable Constants
NAME    CONDITION       ACTION  ACTION

        eval(! productPricer.isConstantsSet($1) )
productPricer.setConstant($1, $2);
productPricer.setConstantsSet($1);
Rule Name       Set?
ProductName     TRUE    "NAME", "Champion CL"
DefaultCost     TRUE    "COST", "80000"
DefaultPrice    TRUE    "PRICE", "100000"
DefaultLength   TRUE    "LENGTH", "53"
Done    TRUE            TRUE


The first rule generated looks like this:

rule "ProductName"
        when
                eval(! productPricer.isConstantsSet() )
        then
                productPricer.setConstant("NAME", "Champion CL");
end


Alex


-----Original Message-----
From: rules-users-bounces@lists.jboss.org
[mailto:rules-users-bounces@lists.jboss.org] On Behalf Of Wolfgang Laun
Sent: Monday, January 07, 2013 11:22 AM
To: Rules Users List
Subject: Re: [rules-users] unmarshal global variable

The crucial info is: what is in the first table, how do you insert this
data?
Is it a DRL global? A fact? How does the (generated) rule look like?
-W

On 07/01/2013, acormond <acormond@greatdanetrailers.com> wrote:
> Gentlepeople,
>
> I am fairly new to Drools and have what I hope is a simple question.
I am
> attempting to marshal (serialize) a Drools knowledge session and then
> unmarshall it.  The marshalling works but the unmarshalling fails with
a
> null pointer exception.  The error is apparently with unmarshalling a
> global
> variable in the session.
>
> The session is created from a spreadsheet (decision table).  This
> spreadsheet
> has two RuleTables.  The first of these exists solely so that I can
enter
> some
> constants into the session, specifically the name and price of the
product
> the
> spreadsheet is dealing with.  The second ruletable is where the rules
are
> specified.  The exception occurs when unmarshalling the first rule in
the
> first
> rule table.  If, as a test, I eliminate the first rule table, then I
can
> successfully marshal and unmarshall the session.
>
> The marshalling is done using the following, simplified, code:
>
>   Marshaller marshaller = MarshallerFactory.newMarshaller(kbase);
>   File droolsSessionFile = new File(MARSHAL_FILE);
>   foStream = new FileOutputStream(droolsSessionFile);
>   baos = new ByteArrayOutputStream();
>   marshaller.marshall(baos, ksession);
>   baos.writeTo(foStream);
>
> and the unmarshalling is done like this:
>
>   Marshaller marshaller =
> MarshallerFactory.newMarshaller(pricingProcessor.getKnowledgeBase());
>   FileInputStream fis = new FileInputStream(MARSHAL_FILE);
>   StatefulKnowledgeSession ksession = marshaller.unmarshall(fis);
>
>
> So, where did I go wrong?  Perhaps I need to deal with the global
variable
> differently, perhaps by putting it in the knowledgeBase before I
unmarshall
> the session?
>
> Thank you for any help.
>
> Alex Ormond
>
>
>
>
> --
> View this message in context:
>
http://drools.46999.n3.nabble.com/unmarshal-global-variable-tp4021375.ht
ml

> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users@lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users



_______________________________________________
rules-users mailing list
rules-users@lists.jboss.org
https://lists.jboss.org/mailman/listinfo/rules-users