简体中文
CRM API
约 3369 字大约 11 分钟
2026-01-09
本文整合了原 CRMAPI.md 与 BomAPI.md 的内容,以本文件为准。
入口函数
Fx.crm.getProduct
产品相关入口。
Fx.crm.getProduct()
参考函数接口:
负责人:孙得育
Fx.crm.getLeads
线索相关入口。
Fx.crm.getLeads()
参考函数接口:
负责人:龚春如
Fx.crm.getAccount
客户相关入口。
Fx.crm.getAccount()
参考函数接口:
负责人:李坤bruce
Fx.crm.getBom
BOM 相关入口。
Fx.crm.getBom()
参考函数接口:
Fx.crm.getEnterpriseByName
通过公司名称模糊查询工商信息。
Fx.crm.getEnterpriseByName(<String companyName>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| companyName | String | 公司名称、统一社会信用代码或注册号 | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | List | 返回的数据 |
| message | string | 信息 |
Groovy 举例
def(Boolean error, List data, String errorMessage) = Fx.crm.getEnterpriseByName("百度")Fx.crm.getEnterpriseDetailById
通过 companyId 查询工商信息。
Fx.crm.getEnterpriseDetailById(<String companyId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| companyId | String | 公司 ID | 是 |
Groovy 举例
def(Boolean error, Map data, String errorMessage) = Fx.crm.getEnterpriseDetailById("1644990310")Fx.crm.automatch
自动核销函数。
Fx.crm.automatch(<String objectDescribeApiName>, <String objectDataId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| objectDescribeApiName | String | 对象 API Name | 是 |
| objectDataId | String | 对象 ID | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | Map | 返回的数据 |
| message | string | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
String objectDescribeApiName = "PaymentObj"
String objectDataId = "1111"
def(boolean error, Map data, String message) = Fx.crm.automatch(objectDescribeApiName, objectDataId)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}注意事项
- 该函数目前只支持开启自动核销场景下使用。
Fx.crm.bankStatement.identifyAccount
银行流水识别客户。
Fx.crm.bankStatement.identifyAccount(<List objectIds>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| objectIds | List | 银行流水 ID 列表 | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | Map | 返回的数据 |
| message | string | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
List<String> objectIds = ["1111"]
def(boolean error, Map data, String message) = Fx.crm.bankStatement.identifyAccount(objectIds)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}注意事项
- 该函数目前只支持开启到款认款场景下使用。
Fx.crm.periodicAccountsReceivable
周期性立应收。
Fx.crm.periodicAccountsReceivable(<String masterDescribeApiName>, <String detailDescribeApiName>, <String detailDataId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| masterDescribeApiName | String | 主对象 API Name | 是 |
| detailDescribeApiName | String | 从对象 API Name | 是 |
| detailDataId | String | 从对象 ID | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | Map | 返回的数据 |
| message | string | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
String masterDescribeApiName = "SalesOrderObj"
String detailDescribeApiName = "SalesOrderProductObj"
String detailDataId = "1111"
def(boolean error, Map data, String message) = Fx.crm.periodicAccountsReceivable(
masterDescribeApiName,
detailDescribeApiName,
detailDataId
)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}注意事项
- 该函数目前只支持开启周期性立应收场景下使用。
ProductAPI
shelf
产品上架下架。
Fx.crm.product.shelf(<String productId>, <Integer status>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| productId | String | 产品 ID | 是 |
| status | Integer | 1 上架,2 下架 | 是 |
Groovy 举例
def (Boolean err, Map data, String errorMessage) = Fx.crm.product.shelf("e1e145095f8142c891802fa36fcbd4c6", 1)
def (Boolean err2, Map data2, String errorMessage2) = Fx.crm.product.shelf("e1e145095f8142c891802fa36fcbd4c6", 2)createProductCategory
创建产品分类。
Fx.crm.product.createProductCategory(<String name>, <String categoryCode>, <String pid>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| name | String | 产品分类名称 | 是 |
| categoryCode | String | 产品分类编码 | 是 |
| pid | String | 父类产品 ID | 否 |
Groovy 举例
def (Boolean err, Map data, String errorMessage) = Fx.crm.product.createProductCategory("产品分类名", "产品分类编码", null)
def (Boolean err2, Map data2, String errorMessage2) = Fx.crm.product.createProductCategory("产品分类名", "产品分类编码", "123")deleteProductCategory
删除产品分类。
Fx.crm.product.deleteProductCategory(<String id>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| id | String | 产品分类 ID | 是 |
Groovy 举例
def res = (((Fx.object.find("ProductCategoryObj", [["category_code": "111"]], 10, 0)[1]) as QueryResult).dataList[0] as Map)
def id = (res._id) as String
def (Boolean error, Map data, String errorMessage) = Fx.crm.product.deleteProductCategory(id)
log.info(data)updateProductCategory
修改产品分类。
Fx.crm.product.updateProductCategory(<String id>, <Map arg>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| id | String | 产品分类 ID | 是 |
| arg | Map | 更新产品分类内容 | 是 |
Groovy 举例
def res = (((Fx.object.find("ProductCategoryObj", [["category_code": "111"]], 10, 0)[1]) as QueryResult).dataList[0] as Map)
def id = (res._id) as String
Map map = ["name": "111", "categoryCode": "222"]
def (boolean err, Map dataList, String errorMessage) = Fx.crm.product.updateProductCategory(id, map)searchCategory
根据字段值查询分类数据。
Fx.crm.product.searchCategory(<String fieldApiName>, <List values>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| fieldApiName | String | 分类字段 API Name,支持 category_code | 是 |
| values | List | 字段值列表,最多 20 个 | 是 |
Groovy 举例
def fieldApiName = "category_code"
def values = ["pNxTqSPS"]
def(boolean error, List data, String message) = Fx.crm.product.searchCategory(fieldApiName, values)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}associateAttribute
产品属性关联。
Fx.crm.product.associateAttribute(<List productIds>, <List attributeIds>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| productIds | List | 产品 ID 数组 | 是 |
| attributeIds | List | 属性 ID 数组 | 是 |
Groovy 举例
def productIds = ["xxxxx"]
def attributeIds = ["xxxxx"]
def(boolean error, List data, String message) = Fx.crm.product.associateAttribute(productIds, attributeIds)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}disAssociateAttribute
产品属性解除关联。
Fx.crm.product.disAssociateAttribute(<List productIds>, <List attributeIds>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| productIds | List | 产品 ID 数组 | 是 |
| attributeIds | List | 属性 ID 数组 | 是 |
Groovy 举例
def productIds = ["xxxxx"]
def attributeIds = ["xxxxx"]
def(boolean error, List data, String message) = Fx.crm.product.disAssociateAttribute(productIds, attributeIds)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}LeadsAPI
move
线索转移。
Fx.crm.leads.move(<String leadsId>, <String leadsPoolId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| leadsId | String | 线索 ID | 是 |
| leadsPoolId | String | 线索池 ID | 是 |
Groovy 举例
def (Boolean err, String data, String errorMessage) = Fx.crm.leads.move(
"05f3f656feb9496abaa4cf50f1fa22ce",
"85f454b044894f83a57e1bacfd2f1beb"
)giveBack
线索退回。
Fx.crm.leads.giveBack(<String leadsIds>, <String leadsPoolId>, <String backReason>, <String otherReason>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| leadsIds | String | 线索 ID | 是 |
| leadsPoolId | String | 线索池 ID | 是 |
| backReason | String | 退回原因选项值,默认 return by function | 否 |
| otherReason | String | 当 backReason 为 other 时的补充说明 | 否 |
Groovy 举例
Fx.crm.leads.giveBack("05f3f656feb9496abaa4cf50f1fa22ce", "85f454b044894f83a57e1bacfd2f1beb")allocate
线索分配。
Fx.crm.leads.allocate(<List leadsIds>, <String leadsPoolId>, <String ownerld>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| leadsIds | List[String] | 线索 ID 列表 | 是 |
| leadsPoolId | String | 线索池 ID | 是 |
| ownerld | String | 用户 ID | 是 |
Groovy 举例
Fx.crm.leads.allocate(["3ed01dcafbe4402d99d7a521aaa4e9c3"], "85f454b044894f83a57e1bacfd2f1beb", "1025")takeBack
线索收回。
Fx.crm.leads.takeBack(<List leadsIds>, <String leadsPoolId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| leadsIds | List[String] | 线索 ID 列表 | 是 |
| leadsPoolId | String | 线索池 ID | 是 |
Groovy 举例
def(Boolean err, String rs, String errorMessage) = Fx.crm.leads.takeBack(
["3ed01dcafbe4402d99d7a521aaa4e9c3"],
"85f454b044894f83a57e1bacfd2f1beb"
)
if (err) {
log.debug("收回失败:" + errorMessage)
} else {
log.debug("收回成功")
}transfer
线索一转三。
Fx.crm.leads.transfer(<Boolean combineCRMFeed>, <Boolean putTeamMembersIntoCustomer>, <String leadsId>, <Map account>, <Map contact>, <Map newObjectData>, <Map opportunity>)
参数说明
入参格式
| 参数名称 | 销售线索转换参数 | 描述 | 是否必填 |
|---|---|---|---|
| combineCRMFeed | Boolean | 销售线索的销售记录自动带入客户 | 是 |
| putTeamMembersIntoCustomer | Boolean | 销售线索的相关团队自动带入客户 | 是 |
| leadsId | String | 销售线索 ID | 是 |
| account | Map | 客户 Map,如果存在 _id 则关联旧客户,否则创建新客户 | 是 |
| contact | Map | 转换成联系人的 Map | 是 |
| newObjectData | Map | 包含新商机数据的对象 | 是 |
| opportunity | Map | 转换成商机的数据 | 是 |
| newObjectData | Map | 包含新商机数据的对象 | 是否必填 |
|---|---|---|---|
| object_data | object | 必填,转换成商机 2.0 的数据 | 否 |
Groovy 举例
String leadsId = "05f3f656feb9496abaa4cf50f1fa22ce"
Map account = [
"object_describe_api_name": "AccountObj",
"record_type": "default__c",
"created_by": ["1109"],
"name": "hello"
]
Map contact = [:]
Map newOpportunity = [:]
Map newObjectData = ["object_data": newOpportunity]
Map opportunity = [:]
def(boolean error, Object data, String msg) = Fx.crm.leads.transfer(
true,
true,
leadsId,
account,
contact,
newObjectData,
opportunity
)
if (error) {
log.info(data)
} else {
log.info(msg)
}AccountAPI
move
客户转移公海。
Fx.crm.account.move(<String accountId>, <String highSeaId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| accountId | String | 客户 ID | 是 |
| highSeaId | String | 公海 ID | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| error | Boolean | 是否错误 |
| data | String | 返回数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": "success",
"message": ""
}Groovy 举例
Fx.crm.account.move("ad14bbbcede240a48dc2f65787a8763d", "6c1a6a54617245fe90aae5a162eb191d").result()remove
客户移除公海。
Fx.crm.account.remove(<String accountId>, <String highSeaId>, <String owner>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| accountId | String | 客户 ID | 是 |
| highSeaId | String | 公海 ID | 是 |
| owner | String | 负责人 ID | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| error | Boolean | 是否错误 |
| data | String | 返回数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": "success",
"message": ""
}Groovy 举例
Fx.crm.account.remove("ad14bbbcede240a48dc2f65787a8763d", "6c1a6a54617245fe90aae5a162eb191d", "1000").result()giveBack
客户退回公海。
Fx.crm.account.giveBack(<String accountId>, <String highSeaId>, <String backReason>, <String otherReason>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| accountId | String | 客户 ID | 是 |
| highSeaId | String | 公海 ID | 是 |
| backReason | String | 退回原因选项值,默认 return by function | 否 |
| otherReason | String | 当 backReason 为 other 时的补充说明 | 否 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| error | Boolean | 是否错误 |
| data | String | 返回数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": "success",
"message": ""
}Groovy 举例
Fx.crm.account.giveBack("ad14bbbcede240a48dc2f65787a8763d", "6c1a6a54617245fe90aae5a162eb191d", "other", "不符合").result()takeOut
客户领取。
Fx.crm.account.takeOut(<List accountIds>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| accountIds | List | 客户 ID 列表 | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| error | Boolean | 是否错误 |
| data | String | 返回数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": "success",
"message": ""
}Groovy 举例
Fx.crm.account.takeOut(["ad14bbbcede240a48dc2f65787a8763d", "6c1a6a54617245fe90aae5a162eb191d"]).result()allocate
客户分配。
Fx.crm.account.allocate(<List accountIds>, <String highSeaId>, <String ownerId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| accountIds | List | 客户 ID 列表 | 是 |
| highSeaId | String | 公海 ID | 是 |
| ownerId | String | 用户 ID | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| error | Boolean | 是否错误 |
| data | String | 返回数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": "success",
"message": ""
}Groovy 举例
Fx.crm.account.allocate(["cd097b120f584533b627c40239ece7d0"], "0ebc054e55254b8b89f09d7ac7602972", "1025").result()takeBack
客户收回。
Fx.crm.account.takeBack(<List accountIds>, <String highSeaId>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| accountIds | List | 客户 ID 列表 | 是 |
| highSeaId | String | 公海 ID | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| error | Boolean | 是否错误 |
| data | String | 返回数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": "success",
"message": ""
}Groovy 举例
Fx.crm.account.takeBack(["cd097b120f584533b627c40239ece7d0"], "0ebc054e55254b8b89f09d7ac7602972").result()BomAPI
bomDeploy
保存产品选配明细。
Fx.crm.bom.bomDeploy(<String rootProductId>, <List nodeList>, <List deletedBomAndGroupList>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| rootProductId | String | 根节点产品 ID | 是 |
| nodeList | List | 新增修改数据数组 | 否 |
| deletedBomAndGroupList | List | 删除数据数组 | 否 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | Map | 返回的数据 |
| message | string | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
def deletedBomAndGroupList = []
def nodeList = [
[
"object_describe_api_name": "ProductGroupObj",
"name": "分组一",
"group_options_control": false,
"min_prod_count": null,
"max_prod_count": null,
"children": [
[
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"price_editable": true,
"price_mode": "1",
"amount": "3",
"min_amount": "2",
"selected_by_default": true,
"increment": "1",
"is_required": false,
"life_status": "normal",
"enabled_status": true,
"amount_editable": true,
"max_amount": "5",
"product_id": "640716930f8b230001378dea",
"action_type": "create",
"adjust_price": "3.00"
]
],
"action_type": "create",
"record_type": "default__c"
]
]
def rootProductId = "6406f80060c1980001a23560"
def(boolean error, Map data, String message) = Fx.crm.bom.bomDeploy(rootProductId, nodeList, deletedBomAndGroupList)
if (error) {
log.info("error: " + message)
} else {
log.info(data)
}add
产品组合新建。
Fx.crm.bom.add(<Map objectData>, <Map details>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| objectData | Map | 主对象数据即字段值 | 是 |
| details | Map | 从对象数据 | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | Map | 返回的数据 |
| message | string | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
Map masterData = [
"product_id": "6600e02fab2ffd00073faad2",
"category": "configure",
"purpose": "sale",
"object_describe_api_name": "BomCoreObj",
"owner": ["-10000"],
"record_type": "default__c"
]
List details = []
Map product1 = [
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"product_id": "65fd50dd9f9a2d000128c294",
"amount": "1",
"price_mode": "1",
"adjust_price": 200,
"is_required": true,
"selected_by_default": true,
"price_editable": false,
"amount_editable": false,
"increment": 1,
"enabled_status": true,
"order_field": "1",
"action_type": "create",
"children": []
]
details.add(product1)
List children = [
[
"action_type": "create",
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"product_id": "65fd50dd9f9a2d000128c294",
"amount": "1",
"price_mode": "1",
"adjust_price": 300,
"is_required": true,
"selected_by_default": true,
"price_editable": false,
"amount_editable": false,
"increment": 1,
"enabled_status": true,
"order_field": "1"
],
[
"action_type": "create",
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"product_id": "6603c02d491f7e00079431ca",
"amount": "1",
"price_mode": "1",
"adjust_price": 300,
"is_required": true,
"selected_by_default": true,
"price_editable": false,
"amount_editable": false,
"increment": 1,
"enabled_status": true,
"order_field": "1"
]
]
Map group = [
"record_type": "default__c",
"object_describe_api_name": "ProductGroupObj",
"name": "测试分组信息",
"order_field": "1",
"group_options_control": true,
"action_type": "create",
"children": children
]
details.add(group)
Map detailData = ["BOMObj": details]
def (boolean error, Map data, String message) = Fx.crm.bom.add(masterData, detailData)
if (error) {
log.info("错误信息:" + message)
} else {
log.info("返回结果:" + data)
}注意事项
children代表当前节点的子节点集合。
edit
产品组合编辑。
Fx.crm.bom.edit(<Map objectData>, <Map details>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| objectData | Map | 主对象数据即字段值 | 是 |
| details | Map | 从对象数据 | 是 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | Map | 返回的数据 |
| message | string | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
Map masterData = [
"product_id": "6600e02fab2ffd00073faad2",
"category": "configure",
"purpose": "sale",
"object_describe_api_name": "BomCoreObj",
"owner": ["-10000"],
"record_type": "default__c"
]
List details = []
Map product1 = [
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"product_id": "65fd50dd9f9a2d000128c294",
"amount": "1",
"price_mode": "1",
"adjust_price": 200,
"is_required": true,
"selected_by_default": true,
"price_editable": false,
"amount_editable": false,
"increment": 1,
"enabled_status": true,
"order_field": "1",
"action_type": "create",
"children": []
]
details.add(product1)
List children = [
[
"action_type": "create",
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"product_id": "65fd50dd9f9a2d000128c294",
"amount": "1",
"price_mode": "1",
"adjust_price": 300,
"is_required": true,
"selected_by_default": true,
"price_editable": false,
"amount_editable": false,
"increment": 1,
"enabled_status": true,
"order_field": "1"
],
[
"action_type": "create",
"record_type": "default__c",
"object_describe_api_name": "BOMObj",
"product_id": "6603c02d491f7e00079431ca",
"amount": "1",
"price_mode": "1",
"adjust_price": 300,
"is_required": true,
"selected_by_default": true,
"price_editable": false,
"amount_editable": false,
"increment": 1,
"enabled_status": true,
"order_field": "1"
]
]
Map group = [
"record_type": "default__c",
"object_describe_api_name": "ProductGroupObj",
"name": "测试分组信息",
"order_field": "1",
"group_options_control": true,
"action_type": "create",
"children": children
]
details.add(group)
Map detailData = ["BOMObj": details]
def (boolean error, Map data, String message) = Fx.crm.bom.edit(masterData, detailData)
if (error) {
log.info("错误信息:" + message)
} else {
log.info("返回结果:" + data)
}注意事项
children代表当前节点的子节点集合。action_type代表当前节点的增、改、删,可传create、update、delete。
queryBomTree
获取产品组合完整结构。
Fx.crm.bom.queryBomTree(<产品组合ID bom_core_id>, <是否需要返回子BOM数据 need_sub_bom>, <产品组合包的数量,默认为1 bom_amount>, <产品分组如果已删除,是否返回分组下的子件。默认不返回 include_all>)
参数说明
入参格式
| 参数名称 | 类型 | 描述 | 是否必填 |
|---|---|---|---|
| bom_core_id | 产品组合 ID | 产品组合 ID | 是 |
| need_sub_bom | 是否需要返回子 BOM 数据 | 是否需要返回子 BOM 数据 | 否 |
| bom_amount | 产品组合包的数量,默认为 1 | 产品组合包的数量,默认为 1 | 否 |
| include_all | 产品分组如果已删除,是否返回分组下的子件,默认不返回 | 产品分组如果已删除,是否返回分组下的子件,默认不返回 | 否 |
出参格式
| 参数名称 | APIResult | 描述 |
|---|---|---|
| isError | boolean | 是否错误 |
| data | 子件 List | 返回的数据 |
| message | String | 信息 |
出参样例
{
"isError": false,
"data": {},
"message": "success"
}Groovy 举例
Integer amount = 1
def(boolean error, Object data, String message) = Fx.crm.bom.queryBomTree(
"67ee3216cf9d1b00014a4af5",
true,
amount,
false
)
Map map = Fx.json.parseObject(data as String, Map)
List result = map["dataMapList"] as List