什么叫扩展属性?对于SmartERP的主体信息,包括客户、产品、供应商、订单和采购项目、机构、用户和资产,因为所在行业的不同,对收集的细节会有差异,为了支持客户按照行业特征来收集信息,可以对主体信息进行扩展。
所有的扩展属性,都是基于主体信息类目来进行管理的,比如进入菜单“产品和服务”、“查询产品类目”、“管理扩展属性”,基于类目的好处是便于管理扩展属性继承,比如电脑类目的扩展属性,可以被电脑下的笔记本类目继承。所以在配置扩展属性时,需要规划好继承层次。
在管理扩展属性界面,可以查询、添加、修改删除扩展属性。在添加修改界面,有以下属性需要留意:
- 类型:行表表示一个属性存储为一行(e_*_property_detail);列表表示所有扩展属性存为一行(e_*_property_extended);双数据表示扩展属性包含两个相关联的整形数据项目(e_*_property_two_elements);XML表示所有扩展属性数据存储在XML字段(extended_xml_data)中。如果对整个平台主体通用信息进行扩展,放在列表上;在云平台上针对某一个公司进行的扩展,首先放在行表上。XML类型的扩展很少使用,主要是有效率方面的损失。
- 名称:必须以 ex_ 开始,然后附加一个有意义的名称,比如年龄可以附加 age ,如果在云平台下操作,为了避免多个机构扩展属性重名,可以在其后附加机构编号以示区分。
- 单位:显示在内容后的单位标签,比如币种元。
- 描述:说明扩展属性的意义,不要过长。
- 帮助内容:可以详细说明扩展属性意义,或者辅助输入的介绍性内容。
- 数据类型:MS SQL Server数据类型,需要有DBA经验,如何优化扩展属性存储。
- 区间值:设置最小值、最大值和步长,一般情况下无需设置。
- 显示方式:Flex控件和扩展控件,从名称可以大概了解其含义,在实际操作中可以修改不同类型进行理解。
- 参数:和显示方式有关,定义控件 (Flex com.etsoo.components.Extend*)的参数(方法 setProperty 定义的属性),用 p1=a&p2=b 格式定义,通过value=***,可以设置控件默认值。
- 控制:控制扩展属性在界面的显示。
- 分类:关联的类目,这样只有在选择该类目或者子类目时该扩展属性才会显示。如果为空表示默认显示。
- 存储过程和列表项目只能二选一。列表项目支持手工输入,适合小量固定的项目,存储过程可以直接从表读取数据。
- 状态:在扩展属性没有关联之前,可以直接删除,如果有数据关联后要废弃该扩展属性,只能设置状态为标记删除。
- 排序数:手工修改排序位置。
扩展属性排序,系统会自动按照通用、最高类目,下级类目,最后是当前类目的顺序显示,但是可以在本级扩展属性下进行排序,方法是在查询界面,勾选“项目排序”,然后拖动项目位置即可,如果涉及到多页,点击右下角下一页旁的“展开”,把所有数据全部加载后拖动。
扩展属性显示方式 (display_id,对应表 e_system_property_display):
- TextInput = 0,文本输入框
- NumericStepper = 1,数字输入框
- DateField = 2,日期输入框
- BoolRadioGroup = 3,逻辑值单选框
- DropDownList = 4,下拉框
- TextArea = 7,文本域输入框
- CheckBox = 8,多选框
- RadioButton = 9,单选框
- LinkButton = 10,链接按钮
- EmailInput = 11,Email地址输入框
- Postcode = 12,邮件编码输入框
- WebsiteInput = 13,网址输入框
- TipList = 14,关键字过滤选择框,传递参数 tiplist_id 可以引用系统数据,如 sys_supplier 获得供应商列表。
- NumberInput = 15,支持输入数字文本框
- BarcodeSelector = 16,条形码输入选择框
- MultipleInput = 17,多项目输入框(分号隔开)
- MoneyStepper = 18,货币输入框,自动提示汇率,默认会把数字理解为当前对象默认货币,比如供应商选择了美国,会理解为是美元,然后程序会自动转化为机构默认币种比如人民币金额,如果需要防止这样的转化,设置参数 no_exchange=true 或者 no_exchange=1,也可以设定币种编号,设置参数 currency_id = 156(人民币)
- TwoElementsInput = 19,双元素选择框
- MonthDaySelector = 20,月日选择框
- TwoNumericStepper = 21,双数字输入框
在配置界面,经常会使用该思路进行界面自定义,节点(项目含义和上面定义的意义一致)格式如下:
<item>
<display_id>17</display_id>
<name>category_ids</name>
<description>首层类目</description>
<required>true</required>
<value>9,24,11,10,16</value>
<display_parameters>spaceSpliter=true</display_parameters>
</item>
在实际业务操作中,收到客户的扩展需求后,首先需要分析哪些属性是现有系统可以收集的,哪些需要扩展,扩展的类目规划(继承)是什么,比如留学机构有国外的各种学校资料,在进行扩展时,按照“学校”、“高中”、“美国”,“英国”三级,美国的高中扩展属性和英国的高中个扩展属性,相同的部分扩展到“学校”和“高中”类目,不同的部分扩展到国家类目。