dynamicsmobile
Version:
Allows development of off-line mobile and web business apps over the Dynamics Mobile platform. More info on https://www.dynamicsmobile.com
140 lines (138 loc) • 7.2 kB
JSON
{
"definitions": {},
"$schema": "http://json-schema.org/draft-07/schema#",
"$id": "http://dynamicsmobile.com/schema/json/businessobject.json",
"type": "object",
"additionalProperties":false,
"title": "Dynamics Mobile Business Object",
"minProperties": 1,
"maxProperties": 1,
"patternProperties":{
"^[A-Za-z][A-Za-z0-9]*$":{
"type":"object",
"required": ["name","label","pluralLabel","properties","pageSize"],
"properties":{
"help":{"type":"string"},
"tableName":{"type":"string"},
"syncTag":{"type":"string"},
"name":{"type":"string"},
"label":{"type":"string"},
"pluralLabel":{"type":"string"},
"searching":{"type":"boolean"},
"pageSize":{"type":"number","minimum": 1,"maximum": 20000},
"syncDirection":{"type":"string","enum":["pull","push","both"]},
"expand":{
"type":"object",
"maxProperties": 20,
"minProperties": 1,
"patternProperties":{
"^[A-Za-z][A-Za-z0-9]*$": {
"type":"object",
"required":["entity","field"],
"additionalItems": false,
"properties":{
"entity":{"type":"string"},
"field":{"type":"string"}
}
}
}
},
"properties":{
"type":"object",
"minProperties":2,
"properties":{
"DMS_ROWID":{
"title": "Business Object Primary key - DMS_ROWID",
"type":"object",
"properties":{
"type":{"type":"string","enum":["Binary"]},
"isPK":{"type":"boolean","enum":[true]}
}
}
},
"patternProperties":{
"^[A-Za-z_][A-Za-z0-9_]*$":{
"title": "business object property definition",
"type":"object",
"minProperties":1,
"additionalProperties": false,
"required":["type","label","uiType"],
"properties":{
"help":{"type":"string"},
"type":{"type":"string","enum": ["Binary","String","Int32","Int64","ref","DateTime","Boolean","Decimal","Bigint"]},
"length":{"type":"number","minimum":1,"maximum":5000},
"label":{"type":"string"},
"isIdentity":{"type":"boolean","enum": [false]},
"isPK":{"type":"boolean","enum":[false]},
"sorting":{"type":"boolean"},
"searching":{"type":"boolean"},
"uiType":{"type":"string","enum": ["Default","textarea","color","week","month","file","password","tel","date","datetime-local","time"]},
"ref":{"type":"string"},
"refDisplayField":{"type":"string"},
"refFilter":{"type":"string"},
"integrity":{"type":"string","enum":[false,"restrict", "cascade", "set null"]},
"regex":{"type":"string"},
"required":{"type":"boolean"},
"unique":{"type":"boolean"},
"syncTag":{"type":"string"},
"format": {"type": "string"},
"max": {"type": "number"},
"min": {"type": "number"},
"List":{"type":"array","items":{
"type":"object",
"additionalProperties": false,
"required": ["Code","Label"],
"properties": {
"Code":{"type":["string","number"]},
"Label":{"type":"string"}
}
}},
"isNavigatable":{"type":"boolean"}
},
"if": {
"properties" : {
"type": {"enum": ["String"]}
}
},
"then": {
"required":["length"]
}
}
}
},
"views":{
"type":"object",
"patternProperties":{
"^[A-Za-z][A-Za-z0-9]*$": {
"type":"object",
"additionalProperties": false,
"required":["properties"],
"properties": {
"layout":{
"type":"string",
"pattern": "columns-\\d+"
},
"properties":{
"type":"array",
"minItems":1,
"items":{
"type":"object",
"additionalProperties": false,
"required":["name"],
"properties": {
"name":{"type":"string"},
"label":{"type":"string"},
"type":{"type":"string"},
"readonly":{"type":"boolean"},
"format":{"type":"string"}
}
}
}
}
}
}
}
}
}
}
}