[rules-users] Drools Flow: Variable Persistence Strategies

Dale Wyttenbach dale.wyttenbach at gmail.com
Sat Feb 13 09:59:42 EST 2010


Please see attached.

2010/2/12 Mauricio Salatino <salaboy at gmail.com>

> I just want to make sure before apply the patch that the change will not
> impact in other places.
> Thanks
>
>
> On Fri, Feb 12, 2010 at 5:38 PM, Mauricio Salatino <salaboy at gmail.com>wrote:
>
>> can you post both, previous and new, sql schema generated for the
>> VariableInstanceInfo and ProcessInstanceInfo tables?
>>
>>
>>
>> 2010/2/12 Dale Wyttenbach <dale.wyttenbach at gmail.com>
>>
>>> If you try to write a query that requires VariableInstanceInfo.processId,
>>> it won't work because that class has no processId member.
>>> I guessed that processInstanceId would be a better join column, and that
>>> worked (patch attached)
>>>
>>> Thanks for the reply.
>>>
>>> 2010/2/12 Mauricio Salatino <salaboy at gmail.com>
>>>
>>> Hmm..
>>>> I'm looking at the source and I see the following mapping:
>>>>
>>>> @OneToMany(cascade = CascadeType.ALL)
>>>>     @JoinColumn(name = "processId")
>>>>     @MapKey(name = "name")
>>>>     private Map<String, VariableInstanceInfo> variables          = new
>>>> HashMap<String, VariableInstanceInfo>();
>>>>
>>>> That makes me think that there is a join column called processId between
>>>> VariableInstanceInfo and ProcessInstanceInfo.
>>>>
>>>>
>>>> 2010/2/12 Dale Wyttenbach <dale.wyttenbach at gmail.com>
>>>>
>>>>> I have a patch for drools-persistence-jpa should anyone agree with me
>>>>> that ProcessInstanceInfo and VariableInstanceInfo should be joined by
>>>>> processInstanceId.
>>>>>
>>>>>
>>>>> On Fri, Feb 12, 2010 at 10:52 AM, Dale Wyttenbach <
>>>>> dale.wyttenbach at gmail.com> wrote:
>>>>>
>>>>>> I'm trying to adapt the StringVariablePersister presented in
>>>>>> http://blog.athico.com/2009/09/drools-flow-variable-persistence.html
>>>>>>
>>>>>> <http://blog.athico.com/2009/09/drools-flow-variable-persistence.html>I
>>>>>> can create process instances with variable "color":
>>>>>>
>>>>>>   private static WorkflowProcessInstance
>>>>>> startProcess(StatefulKnowledgeSession ksession, String color) {
>>>>>>     Map<String, Object> vars = new HashMap<String, Object>();
>>>>>>     vars.put("color", color);
>>>>>>     WorkflowProcessInstance p1 = (WorkflowProcessInstance)
>>>>>> ksession.startProcess("com.sample.ruleflow", vars);
>>>>>>     return p1;
>>>>>>   }
>>>>>>
>>>>>> I can count them:
>>>>>>
>>>>>> select
>>>>>>     count(*)
>>>>>> from
>>>>>>     ProcessInstanceInfo
>>>>>>
>>>>>> However I'm stymied as to counting process instances with a given
>>>>>> color, as there appears to be no join column between ProcessInstanceInfo and
>>>>>> VariableInstanceInfo.
>>>>>> Can such a query be written?
>>>>>>
>>>>>> Thanks.
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>> _______________________________________________
>>>>> rules-users mailing list
>>>>> rules-users at lists.jboss.org
>>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>>
>>>>>
>>>>
>>>>
>>>> --
>>>> - http://salaboy.wordpress.com
>>>> - http://www.jbug.com.ar
>>>> - Salatino "Salaboy" Mauricio -
>>>>
>>>> _______________________________________________
>>>> rules-users mailing list
>>>> rules-users at lists.jboss.org
>>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>>
>>>>
>>>
>>> _______________________________________________
>>> rules-users mailing list
>>> rules-users at lists.jboss.org
>>> https://lists.jboss.org/mailman/listinfo/rules-users
>>>
>>>
>>
>>
>> --
>> - http://salaboy.wordpress.com
>> - http://www.jbug.com.ar
>> - Salatino "Salaboy" Mauricio -
>>
>
>
>
> --
> - http://salaboy.wordpress.com
> - http://www.jbug.com.ar
> - Salatino "Salaboy" Mauricio -
>
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.jboss.org/pipermail/rules-users/attachments/20100213/485cc1a3/attachment.html 
-------------- next part --------------
CREATE CACHED TABLE PUBLIC.PROCESSINSTANCEINFO(
    PROCESSINSTANCEID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_FF1EE4DE_C35A_4E45_8E86_7B2AFEA25E22) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_FF1EE4DE_C35A_4E45_8E86_7B2AFEA25E22,
    EXTERNALVARIABLES BIT NOT NULL,
    LASTMODIFICATIONDATE TIMESTAMP,
    LASTREADDATE TIMESTAMP,
    PROCESSID VARCHAR(255),
    PROCESSINSTANCEBYTEARRAY BLOB,
    STARTDATE TIMESTAMP,
    STATE INTEGER NOT NULL,
    OPTLOCK INTEGER
);               

CREATE CACHED TABLE PUBLIC.VARIABLEINSTANCEINFO(
    TYPE VARCHAR(50) NOT NULL,
    ID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_A04A594E_9B73_4411_A586_B5508072FC77) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_A04A594E_9B73_4411_A586_B5508072FC77,
    NAME VARCHAR(255),
    PERSISTER VARCHAR(255),
    ENTITYCLASS VARCHAR(255),
    ENTITYID BINARY(255),
    CONTENT BLOB,
    PROCESSID BIGINT
);        
-------------- next part --------------
CREATE CACHED TABLE PUBLIC.PROCESSINSTANCEINFO(
    PROCESSINSTANCEID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_5B91E503_97C1_4A5C_8986_3AFEEB7A5BD6) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_5B91E503_97C1_4A5C_8986_3AFEEB7A5BD6,
    EXTERNALVARIABLES BIT NOT NULL,
    LASTMODIFICATIONDATE TIMESTAMP,
    LASTREADDATE TIMESTAMP,
    PROCESSID VARCHAR(255),
    PROCESSINSTANCEBYTEARRAY BLOB,
    STARTDATE TIMESTAMP,
    STATE INTEGER NOT NULL,
    OPTLOCK INTEGER
);               

CREATE CACHED TABLE PUBLIC.VARIABLEINSTANCEINFO(
    TYPE VARCHAR(50) NOT NULL,
    ID BIGINT DEFAULT (NEXT VALUE FOR PUBLIC.SYSTEM_SEQUENCE_0F46702F_0A40_4EEF_81D9_E979C37CAB85) NOT NULL NULL_TO_DEFAULT SEQUENCE PUBLIC.SYSTEM_SEQUENCE_0F46702F_0A40_4EEF_81D9_E979C37CAB85,
    NAME VARCHAR(255),
    PERSISTER VARCHAR(255),
    PROCESSINSTANCEID BIGINT,
    ENTITYCLASS VARCHAR(255),
    ENTITYID BINARY(255),
    CONTENT BLOB
);


More information about the rules-users mailing list