You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@ofbiz.apache.org by Justin Robinson <ju...@venturenet.co.za> on 2011/06/13 11:25:41 UTC
Curiosity about findByPrimaryKey fromDate ignore millisec & minilang handling
I'm debugging the projectmgr for our use & came accross this situation.
<service name="removeWorkEffortAssoc" engine="simple"
default-entity-name="WorkEffortAssoc"
location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
invoke="removeWorkEffortAssoc">
<simple-method method-name="removeWorkEffortAssoc"
short-description="Remove a WorkEffort association">
<entity-one entity-name="WorkEffortAssoc" value-field="lookedUpValue"/>
<remove-value value-field="lookedUpValue"/>
</simple-method>
On trying to delete a WorkEffortAssoc it throws an exception
lookedUpValue missing or some such, not wanting to spend to much time
trying to figure out the how and why of the ever cryptic
'simple-method' involved, I wrote a replacement service to do the same
thing & found I couldn't findByPrimaryKey as WorkEffortAssoc pk
includes fromDate and the hidden field in the form doesn't have
millisecs for the fromDate:
uneq: db fromDate: 2011-06-09 15:45:55.873. form fromDate2:
2011-06-09 15:45:55.0
I got around the problem with some verbosity in my replacement service
implementation, but writing replacement services instead of fixing
existing is kinda bad form.
I assume projectmgr works or has worked & am really curious how this
sort of problem is over come by the simple method above that I don't
understand.
Can anyone who works with minilang explain this one to me?
--
Regards,
Justin
Venture-Net Research & Development
Re: Curiosity about findByPrimaryKey fromDate ignore millisec & minilang handling
Posted by Jacques Le Roux <ja...@les7arts.com>.
https://cwiki.apache.org/confluence/display/OFBIZ/Mini-Language+Guide
Jacques
From: "Justin Robinson" <ju...@venturenet.co.za>
> Thanks Scott, it looks like the simple-method fails for the same
> reason in that case, I'll have a look for were it is placed in the
> hidden field and see if the millsec can be included then there'd be no
> issue with the look up.
>
> Whenever I ask about minilang I am surprised at how simple it actually
> is, I just wish there was a cheat sheet somewhere, have tried looking
> in http://ofbiz.apache.org/dtds/simple-methods.xsd for clues but a one
> liner explanation of each tag or just the less obvious ones would be a
> big help. I'll keep looking there must be one somewhere.
>
>
>
> --
> Regards,
> Justin
> Venture-Net Research & Development
>
> On Mon, Jun 13, 2011 at 2:00 PM, Scott Gray <sc...@hotwaxmedia.com> wrote:
>> Hi Justin,
>>
>> It's probably a newly introduced issue with how timestamps are being rendered in the input field or possibly some bug specific to
>> the project manager app. This is definitely not a common problem or if it is then it's recently introduced.
>>
>> By the way, the simple method is pretty straightforward, entity-one is analogous to findByPrimaryKey except that minilang
>> automatically maps the variables in the context to the primary key of the entity being searched for. So it's just a lookup then
>> delete, the error is complaining that the call to remove-value is providing a null value for removal. The easiest way to debug
>> minilang is to use <log> statements to inspect variables and throw in a <transaction-rollback/> afterwards, rolling back the
>> transaction means you can keep hitting refresh on the browser while debugging and nothing gets saved, nice for easy
>> repeatability.
>>
>> Regards
>> Scott
>>
>> HotWax Media
>> http://www.hotwaxmedia.com
>>
>> On 13/06/2011, at 9:25 PM, Justin Robinson wrote:
>>
>>> I'm debugging the projectmgr for our use & came accross this situation.
>>>
>>> <service name="removeWorkEffortAssoc" engine="simple"
>>> default-entity-name="WorkEffortAssoc"
>>> location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
>>> invoke="removeWorkEffortAssoc">
>>>
>>> <simple-method method-name="removeWorkEffortAssoc"
>>> short-description="Remove a WorkEffort association">
>>> <entity-one entity-name="WorkEffortAssoc" value-field="lookedUpValue"/>
>>> <remove-value value-field="lookedUpValue"/>
>>> </simple-method>
>>>
>>> On trying to delete a WorkEffortAssoc it throws an exception
>>> lookedUpValue missing or some such, not wanting to spend to much time
>>> trying to figure out the how and why of the ever cryptic
>>> 'simple-method' involved, I wrote a replacement service to do the same
>>> thing & found I couldn't findByPrimaryKey as WorkEffortAssoc pk
>>> includes fromDate and the hidden field in the form doesn't have
>>> millisecs for the fromDate:
>>>
>>> uneq: db fromDate: 2011-06-09 15:45:55.873. form fromDate2:
>>> 2011-06-09 15:45:55.0
>>>
>>> I got around the problem with some verbosity in my replacement service
>>> implementation, but writing replacement services instead of fixing
>>> existing is kinda bad form.
>>> I assume projectmgr works or has worked & am really curious how this
>>> sort of problem is over come by the simple method above that I don't
>>> understand.
>>>
>>> Can anyone who works with minilang explain this one to me?
>>>
>>> --
>>> Regards,
>>> Justin
>>> Venture-Net Research & Development
>>
>>
>
Re: Curiosity about findByPrimaryKey fromDate ignore millisec &
minilang handling
Posted by Justin Robinson <ju...@venturenet.co.za>.
Thanks Scott, it looks like the simple-method fails for the same
reason in that case, I'll have a look for were it is placed in the
hidden field and see if the millsec can be included then there'd be no
issue with the look up.
Whenever I ask about minilang I am surprised at how simple it actually
is, I just wish there was a cheat sheet somewhere, have tried looking
in http://ofbiz.apache.org/dtds/simple-methods.xsd for clues but a one
liner explanation of each tag or just the less obvious ones would be a
big help. I'll keep looking there must be one somewhere.
--
Regards,
Justin
Venture-Net Research & Development
On Mon, Jun 13, 2011 at 2:00 PM, Scott Gray <sc...@hotwaxmedia.com> wrote:
> Hi Justin,
>
> It's probably a newly introduced issue with how timestamps are being rendered in the input field or possibly some bug specific to the project manager app. This is definitely not a common problem or if it is then it's recently introduced.
>
> By the way, the simple method is pretty straightforward, entity-one is analogous to findByPrimaryKey except that minilang automatically maps the variables in the context to the primary key of the entity being searched for. So it's just a lookup then delete, the error is complaining that the call to remove-value is providing a null value for removal. The easiest way to debug minilang is to use <log> statements to inspect variables and throw in a <transaction-rollback/> afterwards, rolling back the transaction means you can keep hitting refresh on the browser while debugging and nothing gets saved, nice for easy repeatability.
>
> Regards
> Scott
>
> HotWax Media
> http://www.hotwaxmedia.com
>
> On 13/06/2011, at 9:25 PM, Justin Robinson wrote:
>
>> I'm debugging the projectmgr for our use & came accross this situation.
>>
>> <service name="removeWorkEffortAssoc" engine="simple"
>> default-entity-name="WorkEffortAssoc"
>> location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
>> invoke="removeWorkEffortAssoc">
>>
>> <simple-method method-name="removeWorkEffortAssoc"
>> short-description="Remove a WorkEffort association">
>> <entity-one entity-name="WorkEffortAssoc" value-field="lookedUpValue"/>
>> <remove-value value-field="lookedUpValue"/>
>> </simple-method>
>>
>> On trying to delete a WorkEffortAssoc it throws an exception
>> lookedUpValue missing or some such, not wanting to spend to much time
>> trying to figure out the how and why of the ever cryptic
>> 'simple-method' involved, I wrote a replacement service to do the same
>> thing & found I couldn't findByPrimaryKey as WorkEffortAssoc pk
>> includes fromDate and the hidden field in the form doesn't have
>> millisecs for the fromDate:
>>
>> uneq: db fromDate: 2011-06-09 15:45:55.873. form fromDate2:
>> 2011-06-09 15:45:55.0
>>
>> I got around the problem with some verbosity in my replacement service
>> implementation, but writing replacement services instead of fixing
>> existing is kinda bad form.
>> I assume projectmgr works or has worked & am really curious how this
>> sort of problem is over come by the simple method above that I don't
>> understand.
>>
>> Can anyone who works with minilang explain this one to me?
>>
>> --
>> Regards,
>> Justin
>> Venture-Net Research & Development
>
>
Re: Curiosity about findByPrimaryKey fromDate ignore millisec & minilang handling
Posted by Scott Gray <sc...@hotwaxmedia.com>.
Hi Justin,
It's probably a newly introduced issue with how timestamps are being rendered in the input field or possibly some bug specific to the project manager app. This is definitely not a common problem or if it is then it's recently introduced.
By the way, the simple method is pretty straightforward, entity-one is analogous to findByPrimaryKey except that minilang automatically maps the variables in the context to the primary key of the entity being searched for. So it's just a lookup then delete, the error is complaining that the call to remove-value is providing a null value for removal. The easiest way to debug minilang is to use <log> statements to inspect variables and throw in a <transaction-rollback/> afterwards, rolling back the transaction means you can keep hitting refresh on the browser while debugging and nothing gets saved, nice for easy repeatability.
Regards
Scott
HotWax Media
http://www.hotwaxmedia.com
On 13/06/2011, at 9:25 PM, Justin Robinson wrote:
> I'm debugging the projectmgr for our use & came accross this situation.
>
> <service name="removeWorkEffortAssoc" engine="simple"
> default-entity-name="WorkEffortAssoc"
> location="component://workeffort/script/org/ofbiz/workeffort/workeffort/WorkEffortSimpleServices.xml"
> invoke="removeWorkEffortAssoc">
>
> <simple-method method-name="removeWorkEffortAssoc"
> short-description="Remove a WorkEffort association">
> <entity-one entity-name="WorkEffortAssoc" value-field="lookedUpValue"/>
> <remove-value value-field="lookedUpValue"/>
> </simple-method>
>
> On trying to delete a WorkEffortAssoc it throws an exception
> lookedUpValue missing or some such, not wanting to spend to much time
> trying to figure out the how and why of the ever cryptic
> 'simple-method' involved, I wrote a replacement service to do the same
> thing & found I couldn't findByPrimaryKey as WorkEffortAssoc pk
> includes fromDate and the hidden field in the form doesn't have
> millisecs for the fromDate:
>
> uneq: db fromDate: 2011-06-09 15:45:55.873. form fromDate2:
> 2011-06-09 15:45:55.0
>
> I got around the problem with some verbosity in my replacement service
> implementation, but writing replacement services instead of fixing
> existing is kinda bad form.
> I assume projectmgr works or has worked & am really curious how this
> sort of problem is over come by the simple method above that I don't
> understand.
>
> Can anyone who works with minilang explain this one to me?
>
> --
> Regards,
> Justin
> Venture-Net Research & Development