华为云用户手册

  • 响应示例 状态码: 200 查询产品规格列表成功。 { "engine" : "rabbitmq", "versions" : [ "3.8.35" ], "products" : [ { "type" : "single", "product_id" : "c6.2u4g.single", "ecs_flavor_id" : "c6.large.2", "billing_code" : "dms.platinum.c6", "arch_types" : [ "X86" ], "charging_mode" : [ "monthly", "hourly" ], "ios" : [ { "io_spec" : "dms.physical.storage.ultra.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] }, { "io_spec" : "dms.physical.storage.high.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] } ], "support_features" : [ ], "properties" : { "max_connection_per_broker" : "2000", "max_broker" : "1", "max_queue_per_broker" : "100", "max_storage_per_node" : "30000", "min_broker" : "1", "step_length" : "0", "min_storage_per_node" : "200", "product_alias" : "rabbitmq.2u4g.single" } }, { "type" : "cluster", "product_id" : "c6.4u8g.cluster", "ecs_flavor_id" : "c6.xlarge.2", "billing_code" : "dms.platinum.c6", "arch_types" : [ "X86" ], "charging_mode" : [ "monthly", "hourly" ], "ios" : [ { "io_spec" : "dms.physical.storage.high.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] }, { "io_spec" : "dms.physical.storage.ultra.v2", "type" : "evs", "available_zones" : [ "xxx" ], "unavailable_zones" : [ "xxx" ] } ], "support_features" : [ ], "properties" : { "max_connection_per_broker" : "4500", "max_broker" : "7", "max_queue_per_broker" : "400", "max_storage_per_node" : "30000", "min_broker" : "3", "step_length" : "2", "min_storage_per_node" : "100", "product_alias" : "rabbitmq.4u8g.cluster" } } ] }
  • 响应参数 状态码: 200 表3 响应Body参数 参数 参数类型 描述 engine String 分布式消息服务的产品类型。 versions Array of strings 支持的产品版本类型。 products Array of ListEngineProductsEntity objects 产品规格的详细信息。 表4 ListEngineProductsEntity 参数 参数类型 描述 type String 产品类型。当前产品类型有单机和集群。 product_id String 产品ID。 ecs_flavor_id String 底层资源类型。 billing_code String 账单计费类型。 arch_types Array of strings CPU架构。 charging_mode Array of strings 计费模式。 monthly:包年/包月类型。 hourly:按需类型。 ios Array of ListEngineIosEntity objects 支持的磁盘IO类型列表。 support_features Array of objects 当前规格实例支持的功能特性列表。 properties ListEnginePropertiesEntity object 当前规格实例的属性。 表5 ListEngineIosEntity 参数 参数类型 描述 io_spec String 磁盘IO编码。 type String 磁盘类型。 available_zones Array of strings 可用区。 unavailable_zones Array of strings 不可用区。 表6 ListEnginePropertiesEntity 参数 参数类型 描述 step_length String 节点增长步长。 max_queue_per_broker String 每个Broker的最大对列。 max_connection_per_broker String 每个Broker的最大连接数。 max_partition_per_broker String 每个Broker的最大分区数。 max_broker String Broker的最大个数。 max_storage_per_node String 每个节点的最大存储。单位为GB。 max_consumer_per_broker String 每个Broker的最大消费者数。 min_broker String Broker的最小个数。 max_bandwidth_per_broker String 每个Broker的最大带宽。 min_storage_per_node String 每个节点的最小存储。单位为GB。 max_tps_per_broker String 每个Broker的最大TPS。 product_alias String product_id的别名。
  • 请求示例 批量重启实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "restart", "instances" : [ "54602a9d-5e22-4239-9123-77e350df4a34", "7166cdea-dbad-4d79-9610-7163e6f8b640" ] } 批量删除实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "delete", "instances" : [ "54602a9d-5e22-4239-9123-77e350df4a34", "7166cdea-dbad-4d79-9610-7163e6f8b640" ] } 删除所有创建失败的实例。 POST https://{endpoint}/v2/{project_id}/instances/action { "action" : "delete", "all_failure" : "rabbitmq" }
  • 返回结果 类型 说明 GetResult 参数解释: SDK公共结果对象。 GetResult.body类型 说明 RestoreFailedWorkflowExecutionResponse 参数解释: 响应结果,详见RestoreFailedWorkflowExecutionResponse。 表1 RestoreFailedWorkflowExecutionResponse 参数名称 参数类型 描述 executionUrn str 参数解释: 运行实例的URN 默认取值: 无 restoredAt str 参数解释: 运行实例的恢复启动时间 默认取值: 无 executionName str 参数解释: 运行实例的名字 默认取值: 无
  • B1(servicelayer)接口 接口清单: 应用场景 接口名称 请求方式 接口URL 认证 登录接口 POST b1s/v1/login ERP数据同步到OA 查询B1对象 GET b1s/v1/{objType} 注: objType是一个参数,表示对象名,下同 ERP数据同步到OA 更新B1对象 PATCH b1s/v1/{objType} OA数据同步到ERP 创建B1对象 POST b1s/v1/{objType} ERP审批流程同步与回写 查询草稿单 GET b1s/v1/Drafts ERP审批流程同步与回写 更新草稿单 PATCH b1s/v1/Drafts ERP审批流程同步与回写 查询审批流 GET b1s/v1/ApprovalRequests ERP审批流程同步与回写 更新审批流 PATCH b1s/v1/ApprovalRequests 具体参考:servicelayer接口文档 登录接口 查询B1对象接口 更新B1对象接口 创建B1对象接口 查询草稿单接口 更新草稿单接口 查询审批流接口 更新审批流接口 父主题: 依赖接口清单描述
  • 更新草稿单接口 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/Drafts{key} 接口API功能描述 更新B1草稿单 调用方式 PATCH 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 路径参数 参数名称 参数说明 key 所更新的单据主键字段值 请求体参数:(参考实际servicelayer接口请求字段) 响应体参数:无 父主题: B1(servicelayer)接口
  • 创建生产发料 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/InventoryGenExits 接口API功能描述 创建生产发料 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 保存数据方案 整体设计流程: 图1 具体设计方案: 图2 如上图,数据查询具体方案如下: 在 集成工作台 创建servicelayer连接器,连接器通过登录接口进行自定义认证; 在servicelayer连接器中创建执行动作,封装创建生产发料、创建生产收货等所需接口; 通过servicelayer登录接口创建连接,连接servicelayer系统; diapi连接器使用查询接口中已经创建好的连接器; 在集成工作台创建一个手动触发流,作为保存子流; 在集成工作台创建api流,接受来自条码应用保存数据的请求; 根据请求中的数据判断是否倒扣料; 如果倒扣料,使用diapi连接器中执行sql的执行动作,查询发料行,构造生产发料请求数据,调用子流创建生产发料;构造生产收货请求数据,调用子流创建生产收货; 如果没有倒扣料,则直接调用子流创建出入库单据; 根据条码应用请求所需返回的数据,将结果返回 父主题: 集成方案设计
  • SparkPackERP查询所有草稿单接口 同上步骤1 选择执行动作-创建执行动作,填写“基本信息”,“请求信息”,“响应信息”: 基本信息中执行动作名称为“查询所有草稿单”; 请求信息中,请求方式为GET,请求URL为/SparkPackERPs/v1/Drafts,新增两个查询参数:$filter,$select; 响应体中添加200响应,响应体中配置所需JSON字段; 保存。 父主题: SparkPackERP和OA的接口封装到集成工作台
  • SparkPackERP草稿单审批接口 同上步骤1 选择执行动作-创建执行动作,填写“基本信息”,“请求信息”,“响应信息”: 基本信息中执行动作名称为“草稿单审批”; 请求信息中,请求方式为PATCH,请求URL为/SparkPackERPs/v1/{ApprovalRequests},新增请求体Json结构如下图; 响应体中添加200响应; 保存。 父主题: SparkPackERP和OA的接口封装到集成工作台
  • SparkPackERP查询单个草稿单接口 同上步骤1 选择执行动作-创建执行动作,填写“基本信息”,“请求信息”,“响应信息”: 基本信息中执行动作名称为“查询单个草稿单”; 请求信息中,请求方式为GET,请求URL为/SparkPackERPs/v1/{Drafts},‘{}’表示路径参数,新增一个路径参数“Drafts”,新增两个查询参数:$filter,$select; 响应体中添加200响应,响应体中配置所需JSON字段(所需字段为字段映射表中service layer层的字段) 保存。 父主题: SparkPackERP和OA的接口封装到集成工作台
  • 数据从ERP同步到OA 整体设计流程: 详细设计图: 图1 如上图,数据从ERP同步到OA具体方案如下: 在集成工作台创建B1(servicelayer)连接器,连接器通过登录接口进行自定义认证; 在servicelayer连接器中创建执行动作,封装查询数据的统一接口; 在servicelayer连接器中创建连接,输入登陆接口的认证信息,连接servicelayer; 在集成工作台创建泛微OA连接器,连接器通过获取token接口进行自定义认证; 在OA连接器中创建执行动作,封装创建基础数据的接口; 在OA连接器中创建连接,输入获取token接口的参数信息,连接OA; 在集成工作台创建计划流,通过servicelayer连接器中查询数据的执行动作定时(每隔1min)查询B1中未同步的数据; 遍历查询出的所有未同步数据,对每条数据单独处理; 按照OA创建数据接口要求,将B1查询出的数据构造成OA接口的请求格式; 使用OA连接器中创建数据的执行动作,调用OA创建数据接口,在OA中创建数据; 如果在OA中创建数据成功,使用servicelayer连接器中更新数据的执行动作,将B1中已同步的数据状态更新为已同步。 父主题: 集成方案设计
  • 创建ERP单据审批同步流 同ERP基础数据同步到OA一样,ERP单据同步到OA也是通过集成工作台建立定时任务,所以第一个节点选择"重复执行"执行动作 首先需要查询ERP中需要进行审批的单据,则需要调用查询B1草稿单的接口,查询未同步的草稿单:选择自定义的B1连接器,选择里面的查询草稿单列表执行动作,参数用全局配置实现可配置 查询出来的未同步草稿单可能有多条,用遍历集合元素执行动作遍历查询结果 选择B1连接器中自定义的数据转换执行动作,将B1返回的数据结构转换成mainData,detailData结构 选择Code代码简易版执行动作,通过编写函数,对数据进行处理 将可配置的变量用全局配置封装起来,便于后续修改 通过OA连接器的创建流程执行动作调用OA系统创建流程的接口,参数数据格式按要求传入 判断上述创建流程接口是否成功,如果成功,使用自定义B1连接器中更新草稿单的执行动作更新草稿单状态为已同步 保存 父主题: 创建ERP单据审批同步回写流
  • 创建生产退料 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/InventoryGenEntries 接口API功能描述 创建生产退料 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • API流开启后端自定义认证 条码四条API流均需要开启后端自定义认证 “API生命周期”-“API管理”,查看条码相关API流并点击编辑 点击两次“下一步”到“定义后端服务”,为API流绑定后端自定义认证函数 新建自定义认证,并选择3.4.1创建的后端认证函数BackendAuthentication 缓存设置为3600s,完成创建 为后端服务绑定“系统参数” 点击“下一步”并完成 点击“发布API”并选择RELEASE环境 重复步骤1-7,依次完成其他三条流的后端自定义函数绑定 父主题: API流认证相关设置
  • 查询审批流接口 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/ApprovalRequests 接口API功能描述 查询B1审批流 调用方式 GET 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” Prefer 可用于设置查询条数,如:odata.maxpagesize=20,表示一次查20条 查询参数 参数名称 参数说明 $filter 筛选条件,可用于筛选B1记录 $select 筛选返回字段 请求体参数:无 响应体参数:(参考servicelayer接口响应字段) 父主题: B1(servicelayer)接口
  • 创建diapi连接器 新建自定义认证函数,函数配置如下: 函数代码如下: # -*- coding:utf-8 -*- import json import base64 import requests from requests.packages.urllib3.exceptions import InsecureRequestWarning requests.packages.urllib3.disable_warnings(InsecureRequestWarning) """" mssiAuthData参数样例 { "header":{}, // 连接器认证header参数 "path": {}, // 连接器认证path参数 "query":{}, // 连接器认证query参数 "body":{}, // 连接器认证body参数 "host":"https://demo.com // API主机地址 } """ def extractRequestParam(rawValue, encoded, defaultValue): if encoded and rawValue: rawValue = str(base64.b64decode(rawValue), "utf-8") return json.loads(rawValue) if rawValue else defaultValue def login(body,mssiAuthData): url = mssiAuthData.get("host") + "/b1dis/v1/login" headers = {'Content-Type': 'application/json'} session = requests.Session() session.post(url, json=body, headers=headers, verify=False) _cookies = [] for k, v in session.cookies.get_dict().items(): _cookies.append(k + "=" + v) return {'Cookie': ';'.join(_cookies)} ## 请勿对下面的函数做修改 def handler(event, context): """ 函数是方法的入口 :param event: 执行事件(event), 包含用户定义的函数参数以及所选择的的连接器认证相关参数 :param context: Runtime提供的函数执行上下文 :return: """ isBase64Encoded = event.get('isBase64Encoded', False) inputData = extractRequestParam(event.get('body'), isBase64Encoded, {}) # 用户定义的函数参数数据 mssiAuthData = extractRequestParam(event.get('mssiAuthData'), isBase64Encoded, {}) # 连接器认证数据 mssiAuthData["securityToken"] = context.getToken() dataExtendConfig = extractRequestParam(event.get('dataExtendConfig'), isBase64Encoded, {}) # 流步骤扩展参数 result = login(inputData, mssiAuthData) return json.dumps(result) 登录集成工作台-连接器-我的连接器-创建我的连接器; 连接器参数配置如下,认证函数选择新建的DIAPILogin函数: 父主题: 集成实施最佳实践
  • 执行sql接口 接口地址 https://api-service.sperp.myhuaweicloud.com/diapi/XXXX/b1dis/v1/exec-sql 接口功能描述 执行sql,查询B1数据 请求方式 POST 请求体参数: 参数名称 参数描述 参数类型 Sql 需要执行的sql 字符串 响应体参数: 参数名称 参数描述 参数类型 code 响应编码 字符串 message 响应信息 字符串 data 响应数据 对象 请求样例: { "Sql": "Select \"ItemCode\",\"ItemName\",\"CstGrpCode\",\"FrgnName\",\"BuyUnitMsr\",\"CardCode\",TO_VARCHAR (TO_DATE(\"UpdateDate\"), 'YYYY-MM-DD') UpdateDate,TO_VARCHAR (TO_DATE(\"CreateDate\"), 'YYYY-MM-DD') CreateDate,\"InvntryUom\",\"U_SFJY\",\"U_CX\",\"U_CC\" from OITM WHERE ifnull(\"U_SYN\",'N')='N' " } 响应体样例: { "code": "RIS.10000000", "message": "OK", "data": { "value": [ { "ItemCode": "XN0004", "ItemName": "XN0004", "CstGrpCode": -1, "FrgnName": "", "BuyUnitMsr": "", "CardCode": "", "UPDATEDATE": "2023-10-20", "CREATEDATE": "2023-10-20", "InvntryUom": "", "U_SFJY": "", "U_CX": "", "U_CC": "" }, { "ItemCode": "XN0001", "ItemName": "XN0001", "CstGrpCode": -1, "FrgnName": "", "BuyUnitMsr": "", "CardCode": "", "UPDATEDATE": "2023-10-20", "CREATEDATE": "2023-10-20", "InvntryUom": "", "U_SFJY": "", "U_CX": "", "U_CC": "" }]}} 父主题: diapi接口
  • 前期准备 环境准备:OA系统、B1系统、集成工作台,以及对应账号信息 接口文档:对应的接口使用文档,这里接口请参考2.4 同步字段:拿采购申请审批为例,以下是B1内的字段清单 集成工作台绑定 域名 参考5.3.2 企业微信绑定域名参考5.3.3 图1 B1单据字段信息 图2 企业微信表单设计信息(简单起见,只同步部分字段) B1审批流配置 登录B1系统,点击进入管理-审批流程-审批阶段,维护审批阶段信息并添加保存。 点击进入管理-审批流程-审批模板,进行审批模板设置,关联单据和审批阶段。 B1单据自定义字段维护 登录B1系统,选择进入工具-定制工具-用户自定义字段-管理—营销单据-标题,点击添加 企业微信系统审批流程和表单开发 登陆企业微信管理后台,创建OA表单并设计审批流程。为支撑在OA创建表单,需在OA获取对应表单ID见下图中红色方框内。 简单起见,流程设计如下 企业微信应用准备 登陆企业微信开发者后台,选择企业应用管理-审批,再选择API-接收事件服务器。如下图所示: 父主题: 开发指南
  • 共享流模板复制到我的流模板 登录客户的华为云账号,进入集成工作台,选择流编排-我的流模板-共享流模板,选择"ERP基础数据同步到E-cologyOA_23-9-0"模板,点击复制,复制到我的流模板 复制成功 进入我的流模板,查看刚才复制的流模板 重复步骤1-2,将其它5个共享流模板复制到我的流模板。 如果当前复制的流模板和之前的流模板使用了相同的函数和连接器,会提示是否覆盖,一律选择全部覆盖(如下): 完成后,在我的流模板页面查看如下: 父主题: 实施流程
  • 创建企业微信审批回调总流 集成工作台-我的流-创建流(本章节不再详细叙述原理,详细原理可参考审批申请状态变化回调通知 - 文档 - 企业微信开发者中心 (qq.com)) 连接器选择“API流”,触发事件选择“当收到HTTP请求时”(当企业微信审批状态变化时接收企业微信审批信息); 填写要处理的请求方式以及租户用户信息,API请求方式get,API认证方式为无认证,API请求体架构如下图所示: 添加执行动作,选择连接器为“控制”,执行动作为“条件判断”,参数如图所示: 在右边条件下添加执行动作‘条件判断’,条件参数如图所示(判断信息是否来自企业微信): 在添加执行‘响应’,参数如图所示(给企业微信响应解密后的字符串): 添加执行动作‘将XML格式转换成JSON格式’,参数如图所示 添加执行动作‘JSON解析’,参数如图所示: 添加执行动作‘条件判断’,参数如图所示: 添加执行动作‘将XML格式转换成JSON格式’,参数如图所示 添加执行动作‘JSON解析’,参数如图所示: 添加执行动作‘条件判断’,参数如图所示(判断审批单状态是否为同意或不同意): 新增执行动作,执行动作选择为“多分支条件(switch)”,参数如图所示(根据表单ID去调子流程): 点击‘新增分支’,分支条件填写对应表单模板ID(可以给不同单据调用不同的子流程) 新增执行动作,连接器选择为“同步调用子流程”,参数如图所示(需要先根据4.5.1.3创建子流再执行此步骤): 整体API流如图所示 具体实施步骤参考5.4.3.1.4 父主题: 标准单据场景流
  • 创建采购收货 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/PurchaseDeliveryNotes 接口API功能描述 创建采购收货 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 创建生产收货 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/InventoryGenEntries 接口API功能描述 创建生产收货 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 应用场景分析 根据条码应用中webapi的功能,集成开发需要完成查询数据和保存数据的功能: (1) 查询数据,数据查询sql从条码应用提交到集成工作台,集成工作台调用diapi服务,执行sql查询ERP的数据返回给条码应用; (2) 保存数据,数据按某种数据结构从条码应用提交到集成工作台,集成工作台调用service layer服务接口,将数据保存到ERP; 父主题: SparkPack(B1)和条码集成
  • 创建自定义单据审批同步流 集成工作台-我的流-创建流 连接器中选择“计划”,触发事件为“重复执行”(设置定时任务同步SparkPackERP待审批单据同步至企业微信) 设置重复周期与重复方式为全局配置方便顾问配置。 添加执行动作,选择连接器为创建的SparkPackERP连接器,执行动作为“查询单据列表” 填写过滤参数,参考字段为U_SyncStatus eq 'N'(筛选没有同步到企业微信过的单据,配置成全局配置方便实施人员修改),objType为SparkPackERP单据类型如PurchaseRequests或者自定义单据唯一标识配置成全局参数方便实施人员修改 再给‘查询单据列表’添加并选择一个配置,在参数名称下配置需要的SparkPackERP字段(DocNum与UserSign为必填字段且DocNum在企业微信模板字段名为单据编号,DocNum为同步企业微信审批结果至SparkPackERP时使用,UserSign为查询发起人在企业微信对应的ID时使用) 添加执行动作,选择连接器为“控制”,执行动作为“遍历集合元素”; 遍历的集合内容为,查询单据列表结果中的“value”字段; 添加执行动作,执行动作为“SparkPackERP-微信数据转换”,将SparkPackERP字段格式转换成企业微信数据格式(此执行动作本质是一个函数,根据配置将SparkPackERP字段格式转换成企业微信数据格式) 再点击‘SparkPackERP-微信数据转换’,添加配置,根据对应字段进行配置如下图所示(左侧为SparkPackERP字段,右侧为企业微信对应字段的ID): 添加完成后再选择该配置 新建执行动作,选择连接器为创建的SparkPackERP连接器,执行动作为“查询user”(先在SparkPackERP配置用户传真名为企业微信账号ID,该步骤用来查询草稿审批发起人的传真名用来对应企业微信审批发起人); 输入参数如图所示 新建执行动作,连接器选择之前创建的OA连接器,执行动作选择“发起审批”; 再根据截图填写对应参数,apply_data为审批申请数据选择转换后的数据,creator_userid则是会以此员工身份提交审批,template_id则是表单ID以全局配置形式方便配置 添加执行动作,选择连接器为“控制”,执行动作为“条件判断”;该步骤为判断是否成功提交审批,对应参数如图所示: 在满足条件分支下添加执行动作,执行动作为“更新单据”;同时创建并且选择一个新的配置如图: 该步骤为将已经同步到企业微信的草稿的U_SyncStatus字段改为Y以免后续重复同步,对应参数如图所示: 确认无误后保存,集成工作台-我的流-找到刚创建的流-开启流 最终API如下图所示: 父主题: 自定义单据场景流
  • 创建采购退货 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/PurchaseReturns 接口API功能描述 创建采购退货 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 基于首条流创建其它流 上述相当于配置了第一个OA单据同步到ERP的流,默认的配置是销售订单的配置,利用该模板配置不同的单据,方法如下: 复制"E-cologyOA的单据同步到ERP_23-9-0"同步到OA的流 根据需要配置的单据名称,修改流名称,做到见名知意,比如现在同步供应商 修改全局配置 点击"下一步" 根据当前同步的具体单据,修改全局配置 全局配置参数说明 objType: B1单据对象名,供应商是BusinessPartners,销售订单是Orders LineName:B1单据子表名,供应商同步没有子表,不填,销售订单需要同步单据行,填DocumentLines 点击"下一步" 点击"更新" 开启流 父主题: OA数据同步到ERP流创建并复用
  • 基于首条流创建其它流 上述相当于配置了第一个ERP单据同步到OA的流,默认的配置是采购申请的配置,利用该模板配置不同的单据,方法如下: 复制流创建一条新流 修改流名称做到见名知意 修改全局配置 全局配置各个配置说明如下: filter: B1草稿单据的筛选条件,根据DocObjectCode的值类型进行筛选,DocObjectCode eq '1470000113'表示采购申请,DocObjectCode eq '67'表示库存转储 Cyc:同步周期,单位是分钟,最小1分钟 reqName: OA流程名称,填写见名知意就好,比如"采购申请"、"库存转储"等 spk: 注册OA得到的密钥,重新注册后需要更新,否则不变 appid: OA许可证号码,OA重新配置后需要修改,否则不变 OaTbName: OA流程对应的子表名,单子表可不填 $select: B1接口所需字段,默认不填,返回全部 流程id:OA流程的流程ID,每个单据有一个流程ID,OA提供 pagesize: 一次同步的单据条数,格式odata.maxpagesize=数值 点击"下一步" 点击"更新" 配置"查询草稿单"节点的输出参数 创建一个新的配置,并根据单据名称命名 配置输出参数,添加需要同步的B1字段,保存配置 点击新添加的配置名,应用配置 重新选择遍历集合元素的引用 点"×"删掉原来的引用 再选择下面的引用 "数据转换new"节点配置 创建一个新配置,名称见名知意,保存配置,应用配置 点击"智能映射" 保存流,并启动 OA审批结果外发流不用配置,只需要使用首次创建的审批流即可。 父主题: ERP审批流程同步到OA创建并复用
  • 登录接口 接口地址 https:/api-service.sperp.myhuaweicloud.com/XXX/b1s/v1/Login 接口API功能描述 登录service layer 调用方式 Post 接口备注 返回参数中的SessionId会使用在后续流程接口的请求头中 请求体参数 参数名称 参数描述 参数类型 参数说明 CompanyDB 账套数据库 String 登录的SAP账套库名 UserName 用户名 String 登录使用的账号 Password 用户密码 String 登录使用的账号密码 请求样例: { "CompanyDB": "SBODEMOCN ", "UserName": "xxxxx", "Password": "XXXX", "language": 15 } 返回参数 参数名称 上级参数 参数描述 参数类型 参数说明 SessionId 会话标识 String 在后续流程接口的请求头中的cookie里使用,成功时返回 Version SAP版本号 String 成功时返回 SessionTimeout SessionId时间限制 Int 默认30分钟,成功时返回 error 失败信息 List 失败时返回 code error 错误代码 Int SAP错误代码,失败时返回 message error 错误信息 List 失败时返回 value message 错误详情 String SAP错误消息,失败时返回 返回样例: { "odata.metadata": "https://api-service.sperp.myhuaweicloud.com/6160/b1s/v1/$metadata#B1Sessions/@Element", "SessionId": "ac79876e-1e72-11ed-8000-000c299130e0", "Version": "1000190", "SessionTimeout": 30 } 父主题: servicelayer接口
  • 更新B1对象接口 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/{objType}{key} 接口API功能描述 更新B1对象 调用方式 PATCH 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 路径参数 参数名称 参数说明 objType 所更新的B1具体对象名 key 所更新单据的主键值 请求体参数:(参考实际servicelayer接口请求字段) 响应体参数:无 父主题: B1(servicelayer)接口
共100000条