Server Side Code / Data Loading Inconsistencies

This is the issue I was thinking we may need to purchase a support ticket to resolve.

The problem could be in the our custom server-side code or something elsewhere. Please keep in mind that I am using Oracle PLSQL for the data processor and it also creates the json data load.

This is hard to explain…it is repeatable…the results are unexplainable (to me).

User 1: use chrome

Step 1:  Create an event which repeats every day -- forever
Step 2:  Edit the occurrence of the 1st day -- change the status 
Step 3:  View the results -- all looks well
Step 4:  Press reload a few times --- all continues to look fine

User 2: use chrome or any other–FF/IE/Safai

Step 1: <b>Go to a different computer</b>  this is important--not a different browser -- different computer.
Step 2: View the 1st day (which has the edited occurrence)

User 2 sees 2 events (which is different than user 1). Event 1 is series, Event 2 is the edited occurrence for that day.

User 3: use chrome or any other–FF/IE/Safari

Step 1: Go to the same computer as User 1, use a completely different browser
Step 2: View the same day as User 1 and User 2 

This user see exactly what user 1 sees, a single event.

So the computer which created and edited the event see something completely different than all of the other users. You can open/close/refresh any browser, as long as it is on User 1’s computer and the day is shown as a single event.

All other computes see the double event. It does not matter which user or browser is viewing the day, it’s shown as 2 events.




This image is what all users should see.

This is what user 2 sees. Note that he is using a different computer than User 1:

This is what user 3 sees. Note that he is using the same computer as User 1 and is using a different browser than User 1.

So all user which use the same computer as User 1 see one thing. All users using different computers see day with 2 events.

This is how the data is loaded:

    scheduler.init('scheduler_here',scheduleMasterDt,mode);
    main_cell.attachObject("scheduler_here");
    scheduler.setLoadMode("month");
    scheduler.load(urlloadF(), "json");

    var dp            = new dataProcessor(urlDp);
    dp.action_param   = 'nativeeditor_status';
    dp.init(scheduler);
    dp.setTransactionMode("POST", false);

This is json which going to all browsers:

[
{"id":"28433268","start_date":"04/10/2014 10:00:00 am","end_date":"02/01/9999 12:00:00 am","section_id":"schd_2315_22","rec_pattern":"day_1___","event_pid":"","rec_type":"day_1___#no","event_status":"","event_length":"1800","appointment_type":"AVAILABLE","text":""} 
,{"id":"28433368","start_date":"04/10/2014 10:00:00 am","end_date":"04/10/2014 10:30:00 am","section_id":"schd_2315_22","rec_pattern":"","event_pid":"28433268","rec_type":"","event_status":"","event_length":"1397138400","appointment_type":"NO_DOCTOR","text":""} 
]

Can you see anything here?

Here are the included files of the Scheduler and Suite:

<link  href="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/dhtmlxscheduler_glossy.css" rel="stylesheet"  type="text/css" charset="utf-8">
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/dhtmlxscheduler.js"                 type="text/javascript" charset="utf-8"></script>
<script src='/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_minical.js'       type="text/javascript" charset="utf-8"></script>
<script src='/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_timeline.js'      type="text/javascript" charset="utf-8"></script>
<script src='/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_treetimeline.js'  type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_agenda_view.js"   type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_week_agenda.js"   type="text/javascript" charset="utf-8"></script>
<script src='/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_tooltip.js'       type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_year_view.js"     type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_active_links.js"  type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_pdf.js"           type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_readonly.js"      type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_recurring.js" type="text/javascript" charset="utf-8"></script>
<script src="/cache/dhtml/schedule/v40/dhtmlxScheduler_130827/codebase/ext/dhtmlxscheduler_serialize.js" type="text/javascript" charset="utf-8"></script>

<link type="text/css" rel="stylesheet" href="/cache/dhtml/suite/v362_e2/default/dhtmlx.css"  />
<link type="text/css" rel="stylesheet" href="/cache/dhtml/suite/v362_e2/default/dhtmlx_custom.css" />
<script type="text/javascript" src="/cache/dhtml/suite/v362_e2/default/dhtmlx.js"></script>
<script type="text/javascript" src="/cache/dhtml/suite/v362_e2/_dhtmlxSuite_v36_pro_131108/dhtmlxForm/sources/ext/dhtmlxform_dyn.js"></script>

v40/dhtmlxScheduler_130827
dhtmlxSuite_v36_pro_131108

Hello,
what timezone is set on both computers?

Modified occurrence is binded to the recurring series via values of event_length and event_pid properties.
event_pid goes for a Parent series Id.
event_length - is a timestamp of the original occurrence. Meaning that if recurring events starts at 10AM and you move a single event that happens 10th April 10:00am to 12pm, event length will point to 10th April 10:00am.

It is needed for calendar to detect, which events of the series have been modified and shouldn’t be generated from the general recurring rule.
So calendar won’t display the original occurrence when it finds modified one.

In your case event_lenght timestamp seems to have correct value only for the system it is created in, and both events are displayed (modified and the original one)

This might be caused by timezone offset applied on server or on the client. Try enabling following config.

docs.dhtmlx.com/scheduler/api__s … onfig.html

The 2 computers are in different time zones. Setting scheduler.config.occurrence_timestamp_in_utc = true; fixed the problem.

Thank you for helping.