w-.
w-.

Reputation: 5

Read Anylogic schedule exceptions from database table

How can I read a list of exception dates for a schedule from an Excel file without having to adopt each date from the file separately? I am trying to set up a shift-plan which takes into account holidays, etc. over the next 5 years. For this I have created an Excel table containing a list of holiday dates, which I would now like to use in my AnyLogic simulation. I tried the exceptions section of my schedule object, but didn't find a way to connect this section to my excel file. The only option I am getting here is to manually enter each date... Since this would be extremely tedious, I am looking for a workaround (Java Code?). Can someone help?

Upvotes: 0

Views: 190

Answers (2)

Jaco-Ben Vosloo
Jaco-Ben Vosloo

Reputation: 3975

Suppose you have a scheduled object of type integer and a database table full of exception dates that you want the integer value of the schedule to be 0 for the entire day.

You can then programmatically add exceptions to your scheduling with the following code

List<Tuple> rows = selectFrom(db_table).list();

for (Tuple row : rows) {
    Date exceptionDate = row.get( db_table.db_column );
    schedule.addException(exceptionDate.getYear(), exceptionDate.getMonth(), exceptionDate.getDay(), exceptionDate.getHours(), exceptionDate.getMinutes(), exceptionDate.getSeconds(), 
                        exceptionDate.getYear(), exceptionDate.getMonth(), exceptionDate.getDay()+1, exceptionDate.getHours(), exceptionDate.getMinutes(), exceptionDate.getSeconds(),
0, false);
}

The format for adding exceptions is a bit cumbersome but it is:

schedule.addException(startYear, startMonth, startDay, startHour, startMinute, startSecond, endYear, endMonth, endDay, endHour, endMinute, endSecond, value, annually);

The value object is the value of your schedule type

Upvotes: 0

Benjamin
Benjamin

Reputation: 12660

True, there is no build-in way for this. You need to code your schedule. This allows adding exceptions programmatically, see https://anylogic.help/anylogic/data/schedule.html#creating-and-initializing-schedule-from-code-on-model-startup

Specifically: enter image description here

Upvotes: 0

Related Questions