1. 通过文件批量导入实例数据
通过文件批量导入实例数据。
请求方式:POST
请求地址:/bosfoundationservice/{appKey}/prototype/import/file
1.1. 请求参数:
Headers:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
Authorization | string | c4570cb9ca324bc8ba7dd9d1967710ea | 是 | access_token |
PathParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
appKey | string | xb05cd3a35614caa85c0f8f86c58fcc1 | 是 | 应用Key |
SearchParas:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
transactionCode | string | 3MD2XzN70VkcvbXllg7x7V | 是 | 业务事务编码 |
Body:
application/json:
见下方
1.2. 参数说明:
参数名 | 类型 | 示例 | 是否必填 | 参数含义 |
---|---|---|---|---|
file | file | NULL | 是 | XML文件格式说明请前往BOS论坛查看 |
1.3. 正确返回:
Http Status Code:200
{
"code": "SUCCESS",
"message": "请求处理成功",
"data":NULL
}
1.4. 状态码:
状态码 | code | message | data | 原因 |
---|---|---|---|---|
500 | 500 | 解析文件失败 | NULL | 文件格式错误 |
500 | FILEIMPORT_XML_FORMAT_WRONG | XML文件格式错误 | NULL | xml文件格式错误 |
500 | FILEIMPORT_EXCEL_FORMAT_WRONG | Excel文件格式错误 | NULL | Excel文件格式错误 |
500 | FILEIMPORT_XML_REQUIRED | 缺少XML文件 | NULL | 缺少XML文件 |
500 | FILEIMPORT_EXCEL_REQUIRED | 缺少EXCEL文件 | NULL | 缺少EXCEL文件 |
200 | FILEIMPORT_XML_PROCESS_REQUIRED | XML文件未配置Process节点 | NULL | XML文件未配置Process节点 |
200 | FILEIMPORT_XML_ROW_REQUIRED | XML文件未配置Row节点 | NULL | XML文件如果没有配置数据节点Row |
200 | FILEIMPORT_XML_PROCESS_ATTRIBUTE_REQUIRED | XML文件未配置Process节点属性 | NULL | XML配置文件中,Process节点如果没有配置属性 |
200 | FILEIMPORT_EXCEL_CONFIG_REQUIRD | EXCEL文件中未配置导入对象 | NULL | Excel文件中如果没有配置导入类模板,或模板中没有配置属性 |
200 | FILEIMPORT_EXCEL_DATAINFO_REQUIRD | EXCEL文件中未配置DataInfo导入数据 | NULL | Excel文件中没有配置DataInfo页,或配置DataInfo但数据为空 |
200 | FILEIMPORT_EXCEL_DATATYPE_WRONG | Excel导入数据存在非文本格式 | NULL | Excel中所有单元格内容必须为文本格式 |
200 | FILEIMPORT_RECORD_UNSUCCESS | a) 导入实体错误参见"增加{entity}一条实例数据" b) 导入relationship类型关系错误参见"增加{relationship}一条关系实例数据" | NULL | 部分导入失败时 |
200 | CLASS_WRITEPERMISSION_REQUIRED | 缺少实体类{bosclass}的写权限 | NULL | 当实体启用了类权限,但当前用户没有类的写权限时 |
200 | FILEIMPORT_EXCEL_CONFIG_WRONG | EXCEL文件配置出错,配置的字段名只能是字符串 | NULL | Excel配置页的第一列为属性列,只能是字符串,配置错误时 |
1.5. 注意事项:
1、支持xml格式数据、excel格式数据、xml配置+excel数据(上传前打包成ZIP压缩文件)格式三种数据导入方式。
2、xml格式数据导入文件具体导入格式详见附录一"通过文件批量导入实例数据"接口文件格式说明的"单XML文件导入"部分。
3、excel格式数据导入文件具体导入格式详见附录一"通过文件批量导入实例数据"接口文件格式说明的"单Excel文件导入"部分。
4、xml配置+excel数据导入文件具体导入格式详见附录一"通过文件批量导入实例数据"接口文件格式说明的"XML+Excel文件导入"部分。
5、Excel文件可为xlsx或xls格式。
6、导入过程中出现错误时,出错的数据通过Response body返回错误的行号和错误原因,正确的数据正常导入。
导入接口可导入实体对象、Relationship关联关系层次关系中的一种或多种,按照下述说明进行对应部分的配置即可。
1.5.1. 单XML文件导入
导入文件分为两部分:CfgInfo标签包围的是导入配置;DataInfo标签包围的是数据。
一、CfgInfo标签包围的导入配置部分说明如下:
Category:数据分类 ColCodes:列配置 ColCode:每一个导入字段的说明,text对应数据节点名称,属性如下: Name:字段名称 ToolTip:字段说明 Check:字段校验,正则表达式 Gacls:全局权限配置 Gacl:单种权限设置,可以有多个Gacl节点 每个Gacl节点下包含0个或1个users节点(值可以是多个用户的key,用英文逗号间隔)、0个或1个roles节点(值可以是多个角色的key,用英文逗号间隔)、包含1个permissions节点,值可以为r、rw、rwd、rwdc中其中一种。users节点或roles节点至少包含一个。 Process:处理程序,对每一条数据按顺序执行,每一个程序有节点CfgId,为该程序的标识字段,同一文件中不可重复。每一个Process配置项以bosclass为标识,如果未指定bosclass,则该条配置将会被跳过。除CfgId值以外,其他属性值如在此部分设置为常量,则需使用单引号标识,如:RightObjectClass="'components'"。 Process有属性start和end,表示导入的起止行号,即从start行导入到end行。start和end必须为正整数,如不填默认start为1,从DataInfo的Row第一行开始导入;end默认为最后一行。 1)、每个需要导入的实体对象类,以类名作为节点名;类对应的属性作为属性名,内容为Row数据中对应的列名或常量值,同时可包含一个特殊的属性gacl用于设置单个实体的访问权限。例如:
<folders CfgId="folder" bosclass="A" code="B" name="C" gacl="F"/>
gacl的值为数组,数组内每个对象包含users属性和permissions属性或者roles属性和permissions属性,permissions可取值同全局权限设置中permissions可取值,格式如下: [{“users”:”单个具体的用户key”, “permissions”:”具体的权限值”},{“roles”:”单个具体的角色key”, “permissions”:”具体的权限值”},…] 同时,为了为某类实体对象设置统一的权限,可通过在该类实体的导入标签内增加子标签Gacls设置该类实体的权限,具体格式同全局权限设置。 权限设置只对新建实体对象生效,权限设置优先级如下:单个实体的权限设置>该类实体的权限设置>全局权限设置。实体创建完成后默认执行导入操作的用户对该实体有rwdc权限。 当导入的实体对象是需要更新的数据,可通过配置update.开头字段进行更新。如:
<folders CfgId="folder" bosclass="A" update.code="B" update.name="C" gacl="F"/>
以code和name作为检索字段,如果能查找到数据,则对folders进行更新,如不存在,则新增。 当导入实体对象时同时需要设置其父节点时,可通过设置parentId或gParentAttributes方式标识父节点: (1)使用parentId方式,parentId对应的D列中为父节点的key值,适用于知道父节点key的场景:
<folders CfgId="folder" bosclass="A" code="B" name="C" parentId="D" />
(2)使用gParentAttributes方式,适用于不知道父节点key,但可以通过其他属性或属性组合唯一确定父节点的场景,如下面的例子中使用文件夹对象的att1、att2属性来唯一确定父节点,这两个属性的值在D列和E列:
<folders CfgId="folder" bosclass="A" code="B" name="C" gParentAttributes.att1="D" gParentAttributes.att2="E" />
2)、Relationship:关联关系导入节点,使用Relationship作为节点名,属性值为Row数据中对应的列名、常量值或@符号引用的对象,可以配置多个。 可以通过三种方式标识左右对象: (1)属性from和to内容分别为关系对应的左对象和右对象,通过@CfgId方式引用(此种形式适用于该导入文件中同时导入了该实体对象),例如:
<Relationship CfgId="relation1" bosclass="K" from="@file" to="@postil"/>
(2)用LeftObjectClass+LeftObjectId,RightObjectClass+RightObjectId的形式配置左右对象(LeftObjectClass、LeftObjectId为左对象的bosclass和key,RightObjectClass、RightObjectId为右对象的bosclass和key)。
<Relationship CfgId="relation1" bosclass="K" LeftObjectClass="A" LeftObjectId="B" RightObjectClass="F" RightObjectId="G"/>
(3)导入Relationship关系时支持使用对象key以外的属性值作为关联对象标识:使用LeftIdAttribute+具体属性或RightIdAttribute+具体属性作为左对象或右对象的标识字段(LeftIdAttribute/RightIdAttribute中包含的左/右对象的属性名必须与该导入配置中的具体属性名相同,且LeftIdAttribute/RightIdAttribute中包含的属性必须都配置,具体属性名加前缀left.或right.表示该属性属于左对象还是右对象),与LeftObjectClass和RightObjectClass结合使用。LeftIdAttribute和RightIdAttribute支持多属性组合,属性之间用英文逗号","隔开。 如下面的例子中,设定右关联对象postils的标识属性为code,因此导入配置中配置了code属性并设置其取值为H列:
<Relationship CfgId="relation" bosclass="'irFilePostil'" from="@file" RightObjectClass="'postils"' right.code="H" RightIdAttribute=" right.code"/>
Process中属性值规则: (1)如果一个属性值由几部分构成,用+连接; (2)常量字符串用’’括起来; (3)@符号后面跟CfgId表示引用对象为导入文件中与当前对象属于同一数据行的CfgId对应的实体对象。 (4)Process中对象的属性值可以通过函数来配置
函数 | 说明 |
---|---|
STR(B) | 表示第B列的值为字母非数字时使用,如果是数字,则返回空 |
NUM(B) | 表示第B列的值为数字非字母时使用,如果非数字,则返回空 |
’T_’+H | 表示’T_’字符串加上第H列的值的组合 |
SUBSTR(STR(B),4,3) | 表示在第B列的字符串值中第4位开始(包含第4位)取3位,例如B列的值为"CPP-6030-CEX-001",函数结果为"-60" |
SUBSTR(STR(B),4,0) | 表示在第B列的字符串值中第4位开始(包含第4位)取字符串剩余长度,例如:B列值为"CPP-6030-CEX-001",函数结果为"-6030-CEX-001" |
SPLITONE(STR(H),’/’,2) | 表示对H列,以"/"字符为分隔符进行分割,并返回第2个值 |
ISNULL(B,A+’-’) | 判断B列值是否为空,如果为空,则使用A+’_’的值,如不为空则直接使用B列的值 |
SPLIT(D;’/’) | 表示对D列,以’/’字符为分隔符进行分割,并返回所有值 |
MULTI(SUBSTR(C,1,1)+SPLIT(SUBSTR(C,11,0);’/’)) | 返回多个值。例:假设SUBSTR(C,1,1)值为"a",SPLIT(SUBSTR(C,11,0);’/’))的结果为["1","2","3"],MULTI的结果就是["a1","a2","a3"] |
CUTRIGHT(STR(B),’-’) | 对B列字符串按照分隔符-,返回最后一个分隔符以前的字符串内容 |
下图为配置部分的一个样例
二、DataInfo标签包围的数据部分说明如下: Row:一个Row标签组合代表一条数据,可以有多个Row标签组合。 A~ZZ每一个字段表示一列,与Process中配置的属性值对应,在ColCodes中配置每一个字段的校验规则,如没有校验规则可以不配置。 下图为一个数据部分的样本。
三、完整XML导入范本: 包含relationship关联关系数据的导入 文件中导入一条folders文件夹数据和一条documents文档数据,并添加两个对象的关系。
<?xml version="1.0" encoding="utf-8"?>
<xmlData>
<CfgInfo>
<Category Name="文件">
<ColCodes>
<ColCode Name="bosclass" ToolTip="bosclass" Check="^\b\w+$">A</ColCode>
<ColCode Name="code" ToolTip="code" Check="">B</ColCode>
<ColCode Name="name" ToolTip="name" Check="">C</ColCode>
</ColCodes>
</Category>
<Process>
<folders_import CfgId="folders" bosclass="A" code="B" name="C"/>
<documents_import CfgId="documents" bosclass="D" code="E" name ="F"/>
<Relationship CfgId="relation1" bosclass="G" from="@folders" to="@documents"/>
</Process>
</CfgInfo>
<DataInfo>
<Row>
<A>folders</A>
<B>f1</B>
<C>test3</C>
<D>documents</F>
<E>d1</G>
<F>doc test</H>
<G>irFolderDocument</K>
</Row>
</DataInfo>
</xmlData>
1.5.2. 单Excel文件导入
一、导入配置 分别使用单个Sheet页描述每种导入对象格式。每一个Sheet页都需有CfgId作为该Sheet页的标识字段,该CfgId的值在Excel文件中不可重复。 1)、每个需要导入的实体对象类,类对应的属性在第一列罗列,属性对应的内容在第二列罗列,第二列为“导入数据”数据表中对应的列名或具体的值,bosclass必须提供。例如:
当导入的实体对象是需要更新的数据,可通过配置update.开头字段进行更新。如:
以code和name作为检索字段,如果能查找到数据,则对locations进行更新,如不存在,则新增。 当导入实体对象时同时需要设置其父节点时,可通过设置parentId或gParentAttributes方式标识父节点: (1)使用parentId方式,parentId对应的C列中为父节点的key值,适用于知道父节点key的场景:
(2)使用gParentAttributes方式,适用于不知道父节点key,但可以通过其他属性或属性组合唯一确定父节点的场景,如下面的例子中使用文件夹对象的att1、att2属性来唯一确定父节点,这两个属性的值在C列和D列:
2)、Relationship:关联关系节点,每种关系使用一个名为Relationship的sheet描述,多个关系可加后缀。关系的属性在第一列罗列,属性对应的内容在第二列罗列,第二列为“导入数据”数据表中对应的列名或具体的值,bosclass必须提供。 可以通过三种方式标识左右对象: (1)属性from和to内容分别为关系对应的左对象和右对象,通过@CfgId方式引用(此种形式适用于该导入文件中同时导入了该实体对象),例如:
(2)用LeftObjectClass+LeftObjectId,RightObjectClass+RightObjectId的形式配置左右对象(LeftObjectClass、LeftObjectId为左对象的bosclass和key,RightObjectClass、RightObjectId为右对象的bosclass和key),例如:![avatar](./import8.png)
(3)导入Relationship关系时支持使用对象key以外的属性值作为关联对象标识:使用LeftIdAttribute+具体属性或RightIdAttribute+具体属性作为左对象或右对象的标识字段(LeftIdAttribute/RightIdAttribute中包含的左/右对象的属性名必须与该导入配置中的具体属性名相同,且LeftIdAttribute/RightIdAttribute中包含的属性必须都配置,具体属性名加前缀left.或right.表示该属性属于左对象还是右对象),与LeftObjectClass和RightObjectClass结合使用。LeftIdAttribute和RightIdAttribute支持多属性组合,属性之间用英文逗号","隔开。 如下面的例子中,设定右关联对象postils的标识属性为code,因此导入配置中配置了code属性并设置其取值为H列:
说明: @符号后面跟CfgId表示引用对象为导入文件中与当前对象属于同一数据行的CfgId对应的实体对象。 对象的属性值可以通过函数来配置
函数 | 说明 |
---|---|
STR(B) | 表示第B列的值为字母非数字时使用,如果是数字,则返回空 |
NUM(B) | 表示第B列的值为数字非字母时使用,如果非数字,则返回空 |
’T_’+H | 表示’T_’字符串加上第H列的值的组合 |
SUBSTR(STR(B),4,3) | 表示在第B列的字符串值中第4位开始(包含第4位)取3位,例如B列的值为"CPP-6030-CEX-001",函数结果为"-60" |
SUBSTR(STR(B),4,0) | 表示在第B列的字符串值中第4位开始(包含第4位)取字符串剩余长度,例如:B列值为"CPP-6030-CEX-001",函数结果为"-6030-CEX-001" |
SPLITONE(STR(H),’/’,2) | 表示对H列,以"/"字符为分隔符进行分割,并返回第2个值 |
ISNULL(B,A+’-’) | 判断B列值是否为空,如果为空,则使用A+’_’的值,如不为空则直接使用B列的值 |
SPLIT(D;’/’) | 表示对D列,以’/’字符为分隔符进行分割,并返回所有值 |
MULTI(SUBSTR(C,1,1)+SPLIT(SUBSTR(C,11,0);’/’)) | 返回多个值。例:假设SUBSTR(C,1,1)值为"a",SPLIT(SUBSTR(C,11,0);’/’))的结果为["1","2","3"],MULTI的结果就是["a1","a2","a3"] |
CUTRIGHT(STR(B),’-’) | 对B列字符串按照分隔符-,返回最后一个分隔符以前的字符串内容 |
TODATE(STR(B),'yyyy-MM-dd') | 将日期字符串转换为日期格式(支持通用的时间格式,yyyy-MM-dd HH:MM:ss) |
二、导入数据 使用名为“导入数据”的sheet配置导入数据,支持A-ZZ列。 Excel一行代表一条数据(该条数据由实体对象、relationship关系关系组成),“导入数据”上每一列与描述导入对象的sheet上设置的列对应,首行忽略。
注意事项: Excel上数据需为字符串格式,如输入的是数字,需在数字前面加’转换为字符串。 补充:导入工作计划(wbses)时,可以关联已有的tags,有两种方式: 方式一:配置revelanceTag,内容为tags对应的构件编号,用英文逗号,隔开
方式二:用tags的一个或多个属性进行查询匹配,支持多层属性的嵌套,如图
1.5.3. XML+Excel文件导入
一、导入配置 导入文件使用CfgInfo标签包围导入配置,具体说明如下: Category:数据分类 ColCodes:列配置 ColCode:每一个导入字段的说明,text对应数据节点名称,属性如下 Name:字段名称 ToolTip:字段说明 Check:字段校验,正则表达式 Gacls:全局权限配置 Gacl:单种权限设置,可以有多个Gacl节点 每个Gacl节点下包含0个或1个users节点(值可以是多个用户的key,用英文逗号间隔)、0个或1个roles节点(值可以是多个角色的key,用英文逗号间隔)、包含1个permissions节点,值可以为r、rw、rwd、rwdc中其中一种。users节点或roles节点至少包含一个。 Process:处理程序,对每一条数据按顺序执行,每一个程序有节点CfgId,为该程序的标识字段,同一文件中不可重复。每一个Process配置项以bosclass为标识,如果未指定bosclass,则该条配置将会被跳过。除CfgId值以外,其他属性值如在此部分设置为常量,则需使用单引号标识,如:RightObjectClass="'components'" Process有属性start和end,表示导入的起止行号,即从start行导入到end行。start和end必须为正整数,如不填默认start为2,预留第一行为表头不导入;end默认为最后一行。 1)、每个需要导入的实体对象类,以类名作为节点名;类对应的属性作为属性名,属性值为“导入数据”数据中对应的列名或常量值,例如:
<files CfgId="file" bosclass="A" code="B" name="C" path="D" size="E" gacl="F"/>
gacl的值为数组,数组内每个对象包含users属性和permissions属性或者roles属性和permissions属性,permissions可取值同全局权限设置中permissions可取值,格式如下: [{“users”:”单个具体的用户key”, “permissions”:”具体的权限值”},{“roles”:”单个具体的角色key”, “permissions”:”具体的权限值”},…] 同时,为了为某类实体对象设置统一的权限,可通过在该类实体的导入标签内增加子标签Gacls设置该类实体的权限,具体格式同全局权限设置。 权限设置只对新建实体对象生效,权限设置优先级如下:单个实体的权限设置>该类实体的权限设置>全局权限设置。实体创建完成后默认执行导入操作的用户对该实体有rwdc权限。 当导入实体对象时同时需要设置其父节点时,可通过设置parentId或gParentAttributes方式标识父节点: (1)使用parentId方式,parentId对应的D列中为父节点的key值,适用于知道父节点key的场景:
<folders CfgId="folder" bosclass="A" code="B" name="C" parentId="D" />
(2)使用gParentAttributes方式,适用于不知道父节点key,但可以通过其他属性或属性组合唯一确定父节点的场景,如下面的例子中使用文件夹对象的att1、att2属性来唯一确定父节点,这两个属性的值在D列和E列:
<folders CfgId="folder" bosclass="A" code="B" name="C" gParentAttributes.att1="D" gParentAttributes.att2="E" />
2)、Relationship:关联关系导入节点,使用Relationship作为节点名,属性值为“导入数据”中对应的列名、常量值或@符号引用的对象,可以配置多个。 可以通过三种方式标识左右对象: (1)属性from和to内容分别为关系对应的左对象和右对象,通过@CfgId方式引用(此种形式适用于该导入文件中同时导入了该实体对象), 例如:
<Relationship CfgId="relation1" bosclass="K" from="@file" to="@postil"/>
(2)用LeftObjectClass+LeftObjectId,RightObjectClass+RightObjectId的形式配置左右对象(LeftObjectClass、LeftObjectId为左对象的bosclass和key,RightObjectClass、RightObjectId为右对象的bosclass和key)。
<Relationship CfgId="relation1" bosclass="K" LeftObjectClass="A" LeftObjectId="B" RightObjectClass="F" RightObjectId="G"/>
(3)导入Relationship关系时支持使用对象key以外的属性值作为关联对象标识:使用LeftIdAttribute+具体属性或RightIdAttribute+具体属性作为左对象或右对象的标识字段(LeftIdAttribute/RightIdAttribute中包含的左/右对象的属性名必须与该导入配置中的具体属性名相同,且LeftIdAttribute/RightIdAttribute中包含的属性必须都配置,具体属性名加前缀left.或right.表示该属性属于左对象还是右对象),与LeftObjectClass和RightObjectClass结合使用。LeftIdAttribute和RightIdAttribute支持多属性组合,属性之间用英文逗号","隔开。 如下面的例子中,设定右关联对象postils的标识属性为code,因此导入配置中配置了code属性并设置其取值为H列:
<Relationship CfgId="relation" bosclass="'irFilePostil'" from="@file" RightObjectClass="'postils"' right.code="H" RightIdAttribute=" right.code"/>
Process中属性值规则: 如果一个属性值由几部分构成,用+连接; 常量字符串用’’括起来; @符号后面跟CfgId表示引用对象为导入文件中与当前对象属于同一数据行的CfgId对应的实体对象。 Process中对象的属性值可以通过函数来配置
函数 | 说明 |
---|---|
STR(B) | 表示第B列的值为字母非数字时使用,如果是数字,则返回空 |
NUM(B) | 表示第B列的值为数字非字母时使用,如果非数字,则返回空 |
’T_’+H | 表示’T_’字符串加上第H列的值的组合 |
SUBSTR(STR(B),4,3) | 表示在第B列的字符串值中第4位开始(包含第4位)取3位,例如B列的值为"CPP-6030-CEX-001",函数结果为"-60" |
SUBSTR(STR(B),4,0) | 表示在第B列的字符串值中第4位开始(包含第4位)取字符串剩余长度,例如:B列值为"CPP-6030-CEX-001",函数结果为"-6030-CEX-001" |
SPLITONE(STR(H),’/’,2) | 表示对H列,以"/"字符为分隔符进行分割,并返回第2个值 |
ISNULL(B,A+’-’) | 判断B列值是否为空,如果为空,则使用A+’_’的值,如不为空则直接使用B列的值 |
SPLIT(D;’/’) | 表示对D列,以’/’字符为分隔符进行分割,并返回所有值 |
MULTI(SUBSTR(C,1,1)+SPLIT(SUBSTR(C,11,0);’/’)) | 返回多个值。例:假设SUBSTR(C,1,1)值为"a",SPLIT(SUBSTR(C,11,0);’/’))的结果为["1","2","3"],MULTI的结果就是["a1","a2","a3"] |
CUTRIGHT(STR(B),’-’) | 对B列字符串按照分隔符-,返回最后一个分隔符以前的字符串内容 |
TODATE(STR(B),'yyyy-MM-dd') | 将日期字符串转换为日期格式(支持通用的时间格式,yyyy-MM-dd HH:MM:ss) |
三、完整XML导入范本: 1)、包含relationship关联关系数据的导入 文件中导入一条folders文件夹数据和一条documents文档数据,并添加两个对象的关系。
<?xml version="1.0" encoding="utf-8"?>
<xmlData>
<CfgInfo>
<Category Name="文件">
<ColCodes>
<ColCode Name="bosclass" ToolTip="bosclass" Check="^\b\w+$">A</ColCode>
<ColCode Name="code" ToolTip="code" Check="">B</ColCode>
<ColCode Name="name" ToolTip="name" Check="">C</ColCode>
</ColCodes>
</Category>
<Process>
<folders_import CfgId="folders" bosclass="A" code="B" name="C"/>
<documents_import CfgId="documents" bosclass="D" code="E" name ="F"/>
<Relationship CfgId="relation1" bosclass="G" from="@folders" to="@documents"/>
</Process>
</CfgInfo>
<DataInfo>
<Row>
<A>folders</A>
<B>f1</B>
<C>test3</C>
<D>documents</F>
<E>d1</G>
<F>doc test</H>
<G>irFolderDocument</K>
</Row>
</DataInfo>
</xmlData>
二、导入数据 使用名为“导入数据”的sheet配置导入数据,支持A-ZZ列。 Excel一行代表一条数据(该条数据由实体对象、relationship关系关系组成),“导入数据”上每一列与描述导入对象的sheet上设置的列对应,首行忽略。
注意事项: Excel上数据需为字符串格式,如输入的是数字,需在数字前面加’转换为字符串。 补充:导入工作计划(wbses)时,可以关联已有的tags,有两种方式: 方式一:配置revelanceTag,内容为tags对应的构件编号,用英文逗号,隔开
方式二:用tags的一个或多个属性进行查询匹配,支持多层属性的嵌套,如图