|
Project Information
Members
Featured
Downloads
Links
|
zOGI is the ZideStore OpenGroupware Interface. Two editions of OpenGroupware now support zOGI; the Objective-C ZideStore (via a bundle included since 2007-08-19, r1994) and the OpenGroupware Coils (Python) edition of OpenGroupware. The code hosted here is the development branch of the Objective-C implementation of the protocol. The OpenGroupware Coils implementation of the protocol is hosted within the OpenGroupware Coils project. The production version of the Objective-C implementation is in the ZideStore trunk. Documentation for both versions implementations is here - they work the same! MISSION: To provide a clean and consistent XML-RPC API to the full suite of functionality provided by the OpenGroupware groupware server. zOGI provides a simple mechanism to build all manner of collaborative applications on the solid and robust platform provided by OpenGroupware extending and integrating groupware functionality to existing applications as well as creating new applications (such as Consonance). To keep up-to-date with zOGI development it is recommended to follow the Ohloh journal for zOGI. Whenever zOGI is updated a brief entry is made on the journal. Subscribing to this journal requires creating an Ohloh account. ApplicationsSeveral applications either have been built or are under development using the zOGI API to utilize the powerful OpenGroupware groupware and collaboration engine. If you have developed or are developing an application, utility, or component using the zOGI API please let us know and we'll list it here. Feedback on any existing zOGI application or project is also appreciated.
Links
API
Bindings
Developer Tips
Support & CommunityQuestions regarding zOGI, the zOGI API, or zOGI development should be directed to the XML-RPC mailling list hosted by the OpenGroupware project. Understanding zOGI EntitiesEach zOGI API call (with the exception of getTypeOfObject) will return, if successful, either a dictionary or an array of dictionaries. Every dictionary returned represents a groupware object of a specific type identified by the entityName attribute.
Detail LevelsObject requests and search requests specify a detail level. This detail level is an integer that is used with a bit mask in order to specify how much information about the object(s) you requested should be marshaled and returned to the client. The detail levels are defined in the zOGIDetailLevels.h include file: #define zOGI_INCLUDE_NONE 0 #define zOGI_INCLUDE_NOTATIONS 1 #define zOGI_INCLUDE_OBJLINKS 2 #define zOGI_INCLUDE_PARTICIPANTS 4 #define zOGI_INCLUDE_COMPANYVALUES 8 #define zOGI_INCLUDE_PROPERTIES 16 #define zOGI_INCLUDE_LOGS 32 #define zOGI_INCLUDE_CONFLICTS 64 #define zOGI_INCLUDE_MEMBERSHIP 128 #define zOGI_INCLUDE_CONTACTS 256 #define zOGI_INCLUDE_ENTERPRISES 512 #define zOGI_INCLUDE_PROJECTS 1024 #define zOGI_INCLUDE_COMMENT 2048 #define zOGI_INCLUDE_TASKS 4096 #define zOGI_INCLUDE_PLUGINS 8192 #define zOGI_INCLUDE_CONTENTS 16384 #define zOGI_INCLUDE_ACLS 32768 #define zOGI_INCLUDE_EVERYTHING 65535 If a detail level of zero is specified then only the objects core attributes are returned. Specifying details not appropriate to the object returned is acceptable, that request will simply ignored for the object of the inappropriate types. This allows you to requests object of different types, such as tasks and appointments, in a single call to getObjectsById while still retrieving all the information you need. For instance if you wanted both the properties and participants of an appointment you would request a detail level of 20 (16 + 4). You can also specify a detail level of 65535 as short hand for retrieving all the available information about the objects. But it is best to only retrieve the information you require in order to avoid placing unnecessary load on the groupware server. The detail levels of zOGI_INCLUDE_OBJLINKS (2), zOGI_INCLUDE_PROPERTIES (16), and zOGI_INCLUDE_LOGS (32) apply to all object types. Special KeysThe zOGI dictionary representing an object may have several keys whose start with the underscore character. These are special keys usually added to the dictionary as a result of the specified detail level. The contents of a special key is always a, possibly empty, array. Special keys are:
|