云服务器内容精选

  • 标准单据创建审批集成方案 整体设计流程: 具体设计图: 1.审批单据从SparkPackERP同步到企业微信 2.企业微信内审批后审批结果同步到SparkPackERP 业务员在SparkPackERP客户端提交待审批的单据如采购申请单 集成工作台 API每分钟执行一次,获取处于需要同步到企业微信且未同步过的草稿单,同步后修改草稿单同步状态 根据所获取单据的内容,调用企业微信接口在企业微信内创建相应的单据,实现单据信息的同步 审批人完成单据审批,触发企业微信审批事件订阅调用集成工作台API 根据请求体数据判断,当为审批流程结束时调用SparkPackERP接口把审批结果同步到SparkPackERP,更新单据状态 父主题: 集成方案设计
  • 创建销售交货 接口地址↵ https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/DeliveryNotes↵ 接口API功能描述↵ 创建销售交货 调用方式↵ POST↵ ↵ 请求头参数↵ 参数名称↵ 参数说明↵ Cookie↵ 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid”↵ ↵ 请求体参数(参考servicelayer接口字段)↵ ↵ 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 创建采购收货 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/PurchaseDeliveryNotes 接口API功能描述 创建采购收货 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 应用场景分析 SparkPack ERP(SAP Business One)和泛微OA系统需要互通的场景分为以下3类: (1) 数据从ERP同步到泛微OA,比如物料主数据/客户; (2) 数据从泛微OA同步到ERP,比如销售订单/供应商; (3) 单据从ERP同步到泛微OA进行审批,审批完成后,审批结果从OA发送到ERR,更新单据审批状态,比如采购申请。 父主题: SparkPack(B1)和EcologyOA集成
  • 创建采购退货 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/PurchaseReturns 接口API功能描述 创建采购退货 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 创建查询数据业务流 查询数据时,条码应用会向集成工作台发送一个执行sql的请求,请求方式为POST,请求体为样例: { "sql": "select \"ItemCode\" from oBTN"} 进入我的流页面,创建一条新流 查询数据是集成工作台提供一个接口供调用,所以首个节点选择:当收到HTTP请求时 设置收到的请求方式为post 请求体可以根据接口格式文档进行配置,此处配置: 新建一个初始化变量执行动作,定义一个默认为true的变量,用于后续标记请求是否成功; 查询数据会用到diapi连接器里面的执行sql的执行动作(3.5已经封装好),创建执行动作,选择"自定义",选择B1连接器里面的执行sql的执行动作; 添加一个流程块来捕获执行sql节点的异常,如果不捕获,sql执行异常就会中断,且没有返回; 如果执行异常,就将之前创建的标记变量设置为fasle,标记执行失败; 根据执行sql是否成功,分别进行处理,sql执行成功,返回获取的数据;sql执行失败,返回执行错误信息; 通过添加"响应"执行动作,封装响应结果; 保存。 父主题: 创建业务流
  • 企业微信绑定客户 域名 进行验证(旧方案,使用5.3.2新方案则直接跳过当前小节,可不使用此方案,自行搭建iis服务验证) 企业微信外发数据,外发域名需要是经过验证的客户可信域名,下面是通过集成工作台进行域名验证的流程。 联系客户拿到客户提供的客户主体域名 进入集成工作台,点击API生命周期 进入API分组-api_flow 复制子域名 将客户域名解析到上述子域名(如果客户域名在华为云购买,可以使用下述步骤进行解析,其它来源域名需要联系客户域名管理者自行解析到上述子域名) 进入华为云云解析 - 控制台 (huaweicloud.com),点击管理解析 点击添加记录集 类型选择CNAME,在值里填写上一步复制的子域名,点击确定 回到集成工作台,将子域名绑定到到客户独立域名 进入API生命周期, 进入api分组-api_flow, 进入域名管理,绑定独立域名,输入客户域名,点击确定 登录企业微信,创建应用 选择适当的图片作为logo,输入应用名称,可见范围等,创建应用 下载域名校验文件 进入上述创建的应用,点击"网页授权及JS-SDK"下面的"设置可信域名" 点击申请域名校验, 下载域名校验文件, 将下载的文件上传至OBS桶,并修改权限为公共读。(如无OBS桶可联系华为运维人员处理) 创建API 登录集成工作台,进入API生命周期 进入api分组,点击api_flow后面的"API管理" 新建API 认证方式选择"无认证",下一步 请求协议选择HTTP,请求path为步骤5下载校验文件名,Method为GET,支持跨域开关打开,点击下一步 协议选择HTTPS,VPC选择不使用,后端服务地址与后端请求path根据OBS桶地址填写, 华为方提供的后端服务地址为:checkfiles.obs.cn-north-4.myhuaweicloud.com, 后端请求Path为:/****.txt(/ + 校验文件名),如下: 下一步 点击"完成" 发布API 回到企业微信可信域名校验页面,填写客户域名并校验 显示成功即为通过。 父主题: 前期准备
  • 前提条件 用户已经开通了IMC及集成工作台; 用户创建并提供华为云 IAM 子账号; SparkPack企业ERP的Service Layer地址信息; SparkPack企业ERP的账套以及登录用户信息,详情操作请参考SparkPack企业ERP用户指南; 企业微信管理后台账号 与企业微信同备案主体的域名与ssl证书(没有备案完成的域名无法实施) 所需信息示例如下: 信息 提供方 样例 用途 开发流的华为云账号 华为开发人员 租户名: zhouyuqing 用户名: zyq 密码: ***** 上述为IAM登录方式 登录华为云,共享流。 注:华为侧操作,顾问不涉及。 客户开通的IMC账号 客户 账号: admin@ab0431 密码: ****** 登录客户IMC,跳转进入集成工作台,实施条码流 客户华为云IAM子账号 客户 租户名: zhouyuqing 用户名: zyq 密码: ***** 建立API流的后端自定义认证 客户使用的SparkPackERP账套信息 客户 数据库名: SSparkPackERPTEST2 用户名: S-ERP\LLB 密码: ****** 建立连接器连接 项目Service Layer云服务地址 客户 https://api-service.sperp.myhuaweicloud.com/XXXX 建立连接器连接 企业微信的企业ID与审批应用凭证密钥 企业微信管理员 企业ID获取文档地址:基本概念介绍 - 文档 - 企业微信开发者中心 (qq.com) 审批应用凭证密钥获取文档地址:基本概念介绍 - 文档 - 企业微信开发者中心 (qq.com)(每个应用的secret是不同的,是获取审批应用的secret) 建立连接器连接 与客户企业微信认证一致的域名 客户 注册单个域名操作指导_ 域名注册服务 Domains_用户指南_域名注册管理_华为云 (huaweicloud.com) 用与绑定集成工作台与企业微信集成 域名绑定的ssl证书 客户 用与绑定集成工作台与企业微信集成 父主题: 实施指南
  • 企业微信OA接口 获取access_token 获取access_token - 文档 - 企业微信开发者中心 (qq.com) 获取审批模板详情 获取审批模板详情 - 文档 - 企业微信开发者中心 (qq.com) 提交审批申请 提交审批申请 - 文档 - 企业微信开发者中心 (qq.com) 获取审批申请详情 获取审批申请详情 - 文档 - 企业微信开发者中心 (qq.com) 审批申请状态变化回调通知 审批申请状态变化回调通知 - 文档 - 企业微信开发者中心 (qq.com) 父主题: 依赖接口清单描述
  • 保存数据方案 整体设计流程: 图1 具体设计方案: 图2 如上图,数据查询具体方案如下: 在集成工作台创建servicelayer连接器,连接器通过登录接口进行自定义认证; 在servicelayer连接器中创建执行动作,封装创建生产发料、创建生产收货等所需接口; 通过servicelayer登录接口创建连接,连接servicelayer系统; diapi连接器使用查询接口中已经创建好的连接器; 在集成工作台创建一个手动触发流,作为保存子流; 在集成工作台创建api流,接受来自条码应用保存数据的请求; 根据请求中的数据判断是否倒扣料; 如果倒扣料,使用diapi连接器中执行sql的执行动作,查询发料行,构造生产发料请求数据,调用子流创建生产发料;构造生产收货请求数据,调用子流创建生产收货; 如果没有倒扣料,则直接调用子流创建出入库单据; 根据条码应用请求所需返回的数据,将结果返回 父主题: 集成方案设计
  • 执行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接口
  • 创建生产收货 接口地址 https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/InventoryGenEntries 接口API功能描述 创建生产收货 调用方式 POST 请求头参数 参数名称 参数说明 Cookie 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid” 请求体参数(参考servicelayer接口字段) 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 创建diapi连接器 新建自定义认证函数,函数配置如下: 函数代码如下: # -*- coding:utf-8 -*-import jsonimport base64import requestsfrom requests.packages.urllib3.exceptions import InsecureRequestWarningrequests.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 defaultValuedef 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函数: 父主题: 集成实施最佳实践
  • 创建库存收货 接口地址↵ https://api-service.sperp.myhuaweicloud.com/xxx/b1s/v1/InventoryGenEntries↵ 接口API功能描述↵ 创建库存收货 调用方式↵ POST↵ ↵ 请求头参数↵ 参数名称↵ 参数说明↵ Cookie↵ 登录时获取的sessionid,值格式为 “B1SESSION=获取的sessionid”↵ ↵ 请求体参数(参考servicelayer接口字段)↵ ↵ 响应体参数:(参考servicelayer接口响应字段) 父主题: servicelayer接口
  • 新建同类流并进行配置 上述相当于配置了第一个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"节点配置 创建一个新配置,名称见名知意,保存配置,应用配置 点击"智能映射" 保存流,并启动 父主题: 利用ERP审批流程同步OA模板创建流