CodeGen融合核心扩展定制文件
融合核心定制文件
Harmony核心环境的各个方面都可以通过创建一个定制文件来定制,该文件是一个名为Harm的JSON文件onyCoreCustomization.json。必须将此文件与正在使用的CodeGen模板放在同一位置。
自定义文件必须至少包含一个空JSON对象:
{
}
然后,可以通过向对象添加特定的命名属性来自定义Harmony核心环境的各个方面。可以在下面找到这样做的示例。
自定义关系
要自定义由扩展标记
<HARMONYCORE_relation_NAME>和<HARMONYCORE_FROM_relation_NAME>
生成的关系名称,必须向JSON对象添加名为CustomRelationNames的属性。属性必须定义一个对象数组,每个对象都为特定关系提供自定义名称。例如:
{
"CustomRelations": [
{
"FromStructure": "CUSTOMERS",
"FromKey": "CUSTOMER_NUMBER",
"ToStructure": "ORDERS",
"ToKey": "CUSTOMER_NUMBER",
"RelationName": "CustomerOrders",
"RelationType": "D",
"ValidationMode": "None",
"CustomValidatorName": "",
"BackRelation": "ORDERS-CUSTOMERS-CUSTOMER_NUMBER-CUSTOMER_NUMBER"
},
{
"FromStructure": "CUSTOMERS",
"FromKey": "FAVORITE_ITEM",
"ToStructure": "ITEMS",
"ToKey": "ITEM_NUMBER",
"RelationName": "CustomerFavoriteItem",
"RelationType": "C",
"ValidationMode": "ValuePresent",
"CustomValidatorName": "",
"BackRelation": "ITEMS-CUSTOMERS-ITEM_NUMBER-FAVORITE_ITEM"
},
{
"FromStructure": "CUSTOMERS",
"FromKey": "CUSTOMER_NUMBER",
"ToStructure": "CUSTOMER_NOTES",
"ToKey": "CUSTOMER_NUMBER",
"RelationName": "CustomerNotes",
"RelationType": "D",
"ValidationMode": "None",
"CustomValidatorName": "",
"BackRelation": "CUSTOMER_NOTES-CUSTOMERS-CUSTOMER_NUMBER-CUSTOMER_NUMBER"
}
]
}
可以向数组中添加任意数量的对象以自定义任意数量的关系。必须按照存储库中的定义准确指定结构和密钥名称,并且必须使用大写。
FromStructure属性
此属性应设置为要自定义的关系的存储库中的FromStructure结构的名称,并用于标识要自定义的存储库关系。
FromKey属性
此属性应设置为要自定义的关系的存储库中FromKey键的名称,并用于标识要自定义的存储库关系。
ToStructure结构性能
此属性应设置为要自定义的关系的存储库中ToStructure结构的名称,并用于标识要自定义的存储库关系。
ToKey Property
此属性应设置为要自定义的关系的存储库中ToKey键的名称,并用于标识要自定义的存储库关系。
RelationName属性
此属性可用于自定义添加到数据模型类以公开关系的导航属性的名称。默认情况下,导航属性将命名为REL_<ToStructureName>,但当overrided时,将设置为REL_<RelationName>。
RelationType属性
此属性可用于重写关系的和谐核心关系类型,以防CodeGen标识不正确的关系类型。关系类型包括:
RequiresMatch Property (DEPRECATED)
此属性以前用于定义关系是否需要验证。当设置为true时,将始终尝试验证。当设置为false时,只有在源字段中存在非空格(alpha)或非零(decimal)值时才会尝试验证。该机制被证明不足以在几个可能的场景中正确执行验证,并已被ValidationMode属性所取代(见下文)。
如果在自定义文件中找到RequiresMatch=true且ValidationMode不存在,则ValidationMode设置为Always。
如果在自定义文件中找到RequiresMatch=false且ValidationMode不存在,则ValidationMode设置为None。
建议删除RequiresMatch的所有实例,并使用适当的ValidationMode属性进行替换。