The file should have a header row which defines the properties that are going to be imported, and then one row for each object of the Biskit Type. Use the Search page or the Bakery to find the names for the properties. All the fields need to be comma separated.
To modify the value of a property that is from a component biskit, values to all the properties on that component must be provided. Any properties not mentioned will be attempted to be set to null. If this fails then an error will occur.
Eg, When importing users and setting a new value for userIdentity.authenticationMethod, then a value for userIdentity.loginName must also be set.
If a new value for userIdentity.authenticationMethod is set and a new value for userIdentity.loginName is not set, then the userIdentity.loginName will be set to null.
A property that is used to identify the biskit to be updated can itself be updated. For example, when importing users, users could be identified by their email property (if it's unique) and the import could also modify that email property. To do this, two email columns in the CSV file are required.
i.e.
email,email
tim@conaptic.com,timb@conaptic.com
The first column would then be the key property to identify the user to be changed and the second column would be the new value of the email property.
Use the following options Key: and Ignore: (typed before the property name) to pre select the properties that will be key fields or fields to be ignored.
Example File For Importing A User
The User record that will be created from this file:
Name |
Value |
Comments |
|
userIdentity.loginName |
Timb |
String |
|
userIdentity.authenticationMethod |
Local |
Needs to match available authentication method exactly. |
|
roles |
4 |
Set by bits 1 = Root 2 = Admin 4 = User 8 = Guest See User Roles for more information. |
|
givenName |
Tim |
String |
|
familyName |
Bilderbeck |
String |
|
blah@conaptic.com |
String |
||
userType.name |
Physics |
Needs to match name exactly |
|
password |
timbil |
Depends on system configuration |
|
status |
Normal |
Requested, Normal, Blocked |
Notice the order of the properties does not matter. Depending on how the system is configured password may be a compulsory property and may have a minimum number of characters and/or a combination of alphanumerics.
Example File For Importing A Resource
A resource is a Biskit Type used in Calpendo to store information about resources that can be booked in a facility.
The Resource record that will be created from this file:
Name |
Value |
Comments |
|
name |
Ion Pool |
String |
|
location.name |
Harvard |
Needs to match name exactly |
|
type.name |
Room |
Needs to match name exactly |
|
projectRequired |
PROJECT_REQUIRED |
PROJECT_REQUIRED or PROJECT_NOT_REQUIRED or PROJECT_WITH_RESOURCE_ENTRY |
|
collectUsage |
true |
true or false |
|
bookingBiskitDef.representedBiskitType |
Booking |
The Biskit Type to be used for bookings of this resource |
Example File For Importing A Project
A project is a Biskit Type used in Calpendo to store information about projects.
The Project record that will be created from this file:
Name |
Value |
Comments |
|
projectCode |
SunSpots |
String |
|
type.name |
Physics Project |
Needs to match name exactly |
|
status |
Approved |
Approved, Requested, Denied, Terminated |
|
owner.userIdentity.loginName |
curie |
Login name |
|
name |
Sun Spots |
String |
|
start |
25 May 2013 |
Date |
|
finish |
25 Dec 2014 |
Date |
Projects have other information attached to them but they are stored in different Biskit Types. These are used to store the Project Resource Settings, Users and Project Groups properties. In order to import this information, first import the project information and then import each of the other three Biskit Types one after another.
For example importing the Project Resource Settings for the above project:
Name |
Value |
Comments |
|
project.name |
SunSpots |
Needs to match name exactly |
|
resource.name |
Physics Project |
Needs to match name exactly |
|
numberOfSessions |
10 |
Integer |
|
minutesPerSession |
60 |
Integer |
|
costPerHour |
400 |
Double |
Example File For Importing A Time Template
A Time Template is a Biskit Type used in Calpendo to store information about when bookings for resources can take place and how they can be automatically approved.
The Template record that will be created from this file:
Name |
Value |
Comments |
|
date Range.start |
15 May 2013 10:30 |
Date and Time |
|
dateRange.finish |
15 May 2013 15:00 |
Date and Time |
|
templateGroup |
Free for All |
string |
|
Enabled |
true |
true or false |
|
Abdicated |
false |
true or false |
To import repeat Time Templates see below for additional information about importing repeat bookings.
Example File For Importing Two Bookings
A booking is a Calpendo object that has a status, start and finish date and a few other properties.
The Booking record that will be created from the first import line in this file is:
Name |
Value |
Comments |
|
booker.userIdentity.loginName |
admin |
Needs to match login name exactly |
|
owner.userIdentity.loginName |
admin |
Needs to match login name exactly |
|
status |
Approved |
Approved, Requested, Cancelled, Denied |
|
dateRange.start |
18 May 2013 08:00 |
Date and Time |
|
dateRange.finish |
18 May 2013 08:30 |
Date and Time |
|
resource.name |
dry lab |
Needs to match name exactly |
|
project.ProjectCode |
inventions |
Needs to match project code exactly |
When importing repeat bookings the repeat sub Biskit Type for the repeat booking needs to be defined as well as all the properties defined for that Biskit Type and all the properties of the parent Biskit Type Repeat. Any property not defined will have its value set to null.
Biskit Type |
Property |
Type |
Example Value |
Repeat |
repeat.biskitType (must always be present) |
Biskit |
AnnualRepeat DailyRepeat MonthlyRepeatByDate MonthlyRepeatByDay WeeklyRepeat |
repeat.start |
Date |
12 January 2015 13:00 |
|
repeat.finish |
Date |
12 January 2999 14:00 2999 for never ending repeats |
|
repeat.repeatEvery |
int |
1 |
|
repeat.repeatType (must match repeat.biskitType) |
JavaEnum |
Annually Daily Monthly by date Monthly by day Weekly |
|
Annual Repeat |
repeat.dayOfMonth |
Int |
1-31 |
repeat.monthOfYear |
int |
0-11 with 0 = January |
|
Daily Repeat |
None |
||
Monthly Repeat By Date |
repeat.dayOfMonth |
int |
1-31 |
Monthly Repeat By Day |
repeat.dayOfWeek |
int |
1-7 with 1 = Sunday |
repeat.weekOfMonth |
int |
1-5 |
|
Weekly Repeat |
repeat.sunday |
Boolean |
True or False |
repeat.monday |
Boolean |
True or False |
|
repeat.tuesday |
Boolean |
True or False |
|
repeat.wednesday |
Boolean |
True or False |
|
repeat.thursday |
Boolean |
True or False |
|
repeat.friday |
Boolean |
True or False |
|
repeat.saturday |
Boolean |
True or False |