David,

You are correct - the temporal expression indicates *when* something occurs, but not how long it lasts.

I thought about using the WorkEffort estimatedMillis field. On the UI side of things, we could have drop downs for days, hours, minutes, seconds, etc - then the update service could translate those values to milliseconds and store them in the work effort.

In my local copy, I set up the following fields (which could be an alternative to the estimated millis field): durationDays, durationHours, durationMins, durationSecs. That allowed a direct mapping of UI drop down values to field values. Either way (estimatedMillis field or duration* fields) is fine with me. I'll wait for comments from the community.

I'm not sure we need both estimated duration and actual duration. A calendar event duration would be considered estimated.

Example: a meeting is scheduled for 1PM and the duration is one hour. That information allows attendees to plan their day. Then the meeting actually runs one hour and 15 minutes. What is done with the extra 15 minutes? Do we really need to record the extra 15 minutes somewhere?

-Adrian


David E Jones wrote:

Have you decided on a solution to this yet Adrian?

To clarify, you are talking about the duration of each instance of the recurring event? In other words the temporal expression would describe when each recurrence of the events starts and then this additional information would describe how long it lasts each time after it starts.

On the WorkEffort the estimated time millis field should be used. That field should probably be replaced with something more similar to what we do in other places, ie have a field for estimated duration and another for the duration uomId (which could be shared with the field for the actual duration and possibly other fields). For now though we can just use the millis field, unless you want to take on the effort to deprecate that field (not one of the funner things to do!).

-David


On Sep 30, 2008, at 9:40 AM, Adrian Crum wrote:

David (and others),

There is a fundamental difference between the RecurrenceRule/RecurrenceInfo entities and the TemporalExpression entity that needs to be addressed.

In the example David gave below, the duration of the recurring event is assumed to be 8 hrs (byHourList="09,10,11,13,14,15,16,17").

Temporal expressions have no duration information. That is intentional - a temporal expression indicates when an event occurs, not how long it will last.

So, in the case of WorkEfforts, we need a way of storing the duration of a recurring event. Should we use one of the existing *Millis fields, or do something else?

-Adrian

David E Jones wrote:
On Sep 17, 2008, at 2:15 PM, Adrian Crum wrote:
I would like to start working on connecting the temporal expressions code to recurring events. Before I begin, I want to make sure I understand the requirements and where things should land.

The WorkEffort entity already has a RecurrenceInfoId field, so adding a temporal expression ID field to that is obvious.
Yep, sounds good.
What about a personal calendar? Where are those recurring events kept? They aren't related to a work effort or a work schedule.
Why would a personal calendar be any different from any other calendar event? Calendar events go in the WorkEffort entity.
What about an employee work schedule? I want to assign an employee to work in the roof department from 8am to 5pm, Monday through Friday, with a lunch break from 12:00 to 12:30pm. Where would those recurring events go?
Here's what I wrote in Jira OFBIZ-1956: "To push this further, and to answer Jacques' question: the WorkEffort entity is already designed to handle work schedules using the WorkEffortType "Available" (ID: AVAILABLE)." In addition Jacopo added some demo data that I put together for another project that shows how this would look (pretty much exactly, actually) with the old recurrence records (also in that same issue): <!-- Standard Work Schedule Schedules: work availability of 8 hours per day, from Monday to Friday --> <RecurrenceRule recurrenceRuleId="SCHED_STD_40HR_WK" frequency="DAILY" intervalNumber="1" countNumber="-1" byHourList="09,10,11,13,14,15,16,17" byDayList="MO,TU,WE,TH,FR"/> <RecurrenceInfo recurrenceInfoId="SCHED_STD_40HR_WK" startDateTime="2008-01-01 00:00:00.000" recurrenceRuleId="SCHED_STD_40HR_WK" recurrenceCount="0"/> <WorkEffort workEffortId="SCHED_STD_40HR_WK" workEffortTypeId="AVAILABLE" scopeEnumId="WES_PRIVATE" workEffortName="Work Schedule Full Time (40 hrs/wk)" recurrenceInfoId="SCHED_STD_40HR_WK"/> For the future let's do the same thing except instead of a recurrenceInfoId on the WorkEffort have a temporalExpressionId.
Does that make sense, or were you looking for something else?
-David


Reply via email to