Skip to content
Simon Kelly edited this page Aug 18, 2016 · 2 revisions

CommCare 2.0 Specs

Based on the experiences of CommCare's first specification version, CommCare 2.0's specifications define a more flexible, powerful, and comprehensible application engine.

Configuration Files

Profile Specification: Unchanged from CommCare 1.0, the profile spec defines the entry point for an application

Suite File Specification: More modular than the previous versions, the suite files define the resources for an application, menu navigation, and how to navigate through available datasets to determine what forms to enter and about what.

Transaction Layer

CaseXML: Updated to provide a more straightforward structure and a clear way to index between subcases.

LedgerXML: Transactions to Stock models, which maintain a list of generically keyed numeric quantities

Instance Layer Adapters

New to CommCare 2.0, persistent data is now accessed via the JavaRosa External Instance API. CommCare supports the following abstract external instances

CaseDB: For accessing Case data inside of XForms and in suite selection actions

Session: A hook into the current CommCare entry session to eliminate the last vestiges of the old preloading API.

Fixture: Fixtures (new in 2.0) are a way to maintain read-only dynamic structured data on a device.

LedgerDB: The read-only model for accessing the database of stock models

XForms

https://dimagi.github.io/xform-spec/: Specifies the display, validation, and data structure of the JavaRosa-compliant CommCare forms