• [技术干货] 从一个实际软件故障出发,谈谈企业管理软件领域内那些很难稳定重现故障的处理技巧[转载]
    链接:https://bbs.huaweicloud.com/blogs/351289前言我是做企业管理软件的程序员,有一次我遇到一个问题,一段后台作业代码,运行时偶尔会出现运行时异常(runtime exception),但这个异常不是 100% 能重现,运行十次,大概能重现2,3次。而且在系统负载很重的时候,反而一次也不能重现。更折磨人的是,如果在交互式单步调试模式下,这段代码运行完美,一点问题也没有。既然不能通过单步调试来排错,我的同事们都觉得棘手,最后让我来和这个问题死磕。后来我采用类似二分查找的方式,把可能引起这个问题的代码层层过滤,最后定位到几行有高度嫌疑的代码,我自己编写了一个测试程序来模拟后台作业执行出错时的运行环境,才找到罪魁祸首:我们的一个模型创建 API,不支持模型创建和模型删除,在一秒钟之内完成。也就是说,用户在 UI 界面正常操作时,手速再快,也不可能完成在一秒钟之内,做到先创建模型,然后马上删除的操作。但是后台作业是用代码调用 API,在系统负载不高的情况下,一秒钟之内完成创建并且删除的操作,不是一件困难的事情。这个时序问题也解释了为什么这个问题在单步调试模式下无法重现。下面是文章的正文。企业管理软件面向的是企业级用户,如果软件出现故障(bug),在某些极端情况下,可能会让企业蒙受巨大的经济损失,故而对软件开发人员在编程规范,软件测试和软件交付之前的验证等各方面都提出了更高的要求。同时,由于企业管理软件自身高度的复杂性,有些故障很难重现或者只能在运行了客户特定业务流程的生产系统上才能重现。这些都给企业管理软件分析和故障处理带来了巨大的挑战。本文从 Jerry 处理过的一个实际软件故障出发,谈谈自己对企业管理软件里一些棘手故障的处理体会。在 Jerry 看来,这些棘手故障,可以分为以下几类。企业管理软件领域内棘手故障的一些表现形式我在 SAP 成都研究院处理过很多颇让人头痛的软件故障,它们具有下列一项或几项特征。1. 需要复杂的流程才能重现例如我处理过的 SAP Business ByDesign 里一个客户发票(Customer Invoice)相关的故障。这个故障只有在每次 release 发票时才能重现。为了 release 发票,我们必须先创建一个销售订单(Sales Order),基于该订单创建 Customer Demand,然后创建捡货任务(Pick Task),生成交货单(Delivery Note),最后才能生成一张新的客户发票。这些复杂的流程往往也需要系统事先维护好对应的主数据(Master Data)和事务数据(Transaction Data)才能顺利执行。复杂的业务流程增添了故障重现的难度。2. 故障横跨企业管理软件的多个模块由于企业管理软件自身的复杂度,终端用户眼中看到的貌似简单的一个故障,背后可能横跨了软件实现的多个模块。以上述形式 1 描述的故障为例,假设软件帮助文档上描述的支持功能为:客户在销售订单界面上添加了一个新的自定义字段并维护了对应值,该值能够从销售订单,经捡货任务,交货单,最后传递到客户发票上。我们称这种字段值从多个文档间的传递称为 data flow.那么如果客户在发票页面上,看到这个字段的值为空,客户可能认为是发票模块出了故障。然而,在 data flow 的每个节点对应的模块处理,可能都是造成该故障的罪魁祸首。销售订单和客户发票属于 CRM 模块,而捡货任务和发货单则归属 SCM 的范畴。在实际开发工作中,这意味着分析该故障往往需要跨团队间协作,因为 CRM 和 SCM 模块往往分属不同的开发团队负责。3. 故障只能在客户生产系统重现在企业管理软件交付之前,必定在内部开发,测试和验证系统(validation system)进行过不同层次的测试。即便如此,由于种种客观原因,比如当应用运行在客户生产系统上,基于某些只有该客户才会用到的特定业务流程的配置时,故障才会暴露,而这些配置并没有被企业管理软件供应商的内部系统测试所涵盖到。这类故障因为只能在客户生产系统重现,在分析和定位问题时更加困难重重,尤其当重现步骤会在客户生产系统进行写操作时,通常只能联系客户相关人员,采用远程桌面+电话会议的方式,让客户相关人员进行操作,然后软件供应商的支持人员在线调试。4. 故障只能在后台作业模式下重现,在 online 模式运行时一切正常在企业管理软件领域特别是 ERP 领域,后台作业常常被用来执行一些费时的批处理工作,比如订单批量处理,报表数据分析和聚合汇总等等。后台作业模式不同于挂接了用户界面的 online 模式,给单步调试也带来了困难。5. 故障只能在软件正常运行模式时才能重现,单步调试时,软件工作一切正常当故障出现这种特征时,实际给支持人员传递了一个信号:该故障可能与程序特定的执行时序相关。因为程序正常运行,与处于单步调试模式下运行,执行时序显然不同,比如在调试器单步调试时,可能会破坏多线程程序正常的执行时序。因为缺少了调试器这一强有力的武器,分析该类故障,需要支持人员具有更强的理论分析能力和问题抽象能力。由于篇幅限制,本文仅举一个实际例子,对上述第五类故障的分析处理流程做一个分享。Jerry 曾经负责过 SAP CRM IBASE(Installed Base) 模块的维护工作。IBASE 是一个抽象模型,用于描述已在客户位置安装的资源对象,例如设备、机器,服务或软件。IBASE 模型以树形结构,描述了这些对象的层级结构和它们的各个组件,是服务模块的参考基础。有一天,我收到一个故障报告,另一个团队的同事,使用我所在团队负责的 IBASE API,在同一会话过程内创建 IBASE 组件,修改,随后删除,然后保存,会遇到运行时错误(Runtime Error).在故障描述里提到的运行时错误的截图如上图所示。这位同事发现,这个错误只能在后台作业模式下重现,并且不一定每次都能够重现。该故障也无法在单步调试模式下重现。并不总是能够重现 != 不能重现。为了分析这个问题,我得先找到能够稳定重现的办法。因为该故障对单步调试大法免疫,我只能另想他法。逐字逐句阅读故障报告里的描述,发生故障之前的操作流程为:(1) 创建 IBASE(2) 修改 IBASE(3) 删除 IBASE(4) 保存事务。出现运行时错误。因为我就是 IBASE 模块的负责人,所以我三下五除二就写好了一个不到 200 行的程序,在程序里依次调用 IBASE 的创建,修改和删除 API,再保存事务。程序源代码如下:执行这个报表,遇到了期望中的运行时错误。这是一个好兆头,因为我现在找到了稳定重现问题的办法。下一步,我需要缩小问题的范围,找出我这 200 行代码里,到底哪一行代码的执行,引起了运行时错误。Jerry 喜欢称自己开发的这种专门用于分析故障,重现错误的程序,为“脚手架程序”或者“故障触发器”。因为这 200 行代码是我自己编写的,所以我可以任意修改。首先把所有代码全部注释掉,只留下 IBASE 创建 API 的调用。执行程序,一切正常。再解除 IBASE 修改 API 调用代码的注释,让其参与到程序执行中,一切正常。再反注释 IBASE 删除 API 调用代码,执行程序,出现了运行时错误!由此说明,这个运行时错误和 IBASE 删除的场景相关。回到故障提交报告里的运行时错误截图:第 103 行抛出了一个类型为 X 的错误,因为调用函数 CRM_IBASE_COMP_GET_DETAIL, 并没有读取到通过输入参数 i_date 和 i_time 指定的时间戳对应的 IBASE 数据,因此程序决定通过抛出错误的方式来终止执行。通过运行时错误的上下文调用栈,我找到了 CRM_IBASE_COMP_GET_DETAIL API 没有返回任何 IBASE 数据的原因:下图第 53 行高亮代码的 CHECK 语句,检查当前传入的时间戳(默认为 IBASE 创建时的时间戳)是否小于待读取 IBASE 抬头的 valto(即 valid to,指 IBASE 有效截止日期的时间戳)字段。如果小于,则顺序执行 CHECK 下一条即 54 行。如果大于或等于,则退出数据读取逻辑所在的循环体。在后台作业运行模式,以及我的脚手架程序执行时,第 53 行时间戳判断条件没有满足,因此退出了循环,导致 CRM_IBASE_COMP_GET_DETAIL 读取失败,所以引发了故障。要想满足 53 行的判断条件,只有两种可能:当前时间戳 > IBASE valto 字段值当前时间戳 = IBASE valto 字段值需要强调的是,ABAP 编程语言里的时间戳字段,精确到秒,比如 20211024102424 代表 2021年10月24日10点24分24秒。虽然我的脚手架应用在单步调试模式下也无法重现故障,但是直接执行可以重现。因此,执行执行脚手架应用,在运行时故障页面点击工具栏的 Debugger 按钮,能弹出调试器,查看应用程序抛出运行时错误的各种信息:这一回,在调试器里,所有的谜题都揭晓了:当前时间戳 = IBASE valto 字段值,因此导致 API CRM_IBASE_COMP_GET_DETAIL 读取失败,抛出运行时错误。在调用 IBASE 创建 API 时,会把待创建的 IBASE 抬头的 valfr 字段,赋以系统的当前时间戳。在调用 IBASE 删除 API 时,会把该待删除 IBASE 抬头的 valto 字段,赋以系统的当前时间戳。为什么在单步调试模式下,无法重现这个错误呢?我们来看一张简单的时序图。横轴代表时间戳。t3 代表代码 53 行判断语句里的 <ibinadm>-valto 字段值, t1 代表代码 53 行判断语句里的 lv_timestamp 字段值。在单步调试模式下,假设我们从 IBASE 创建 API 开始依次单步执行,则由于按键手速原因,t3 必定大于 t1.而在后台作业模式以及脚手架程序正常运行情况下,如果 IBASE 创建,修改和删除的 API 执行得足够快速,能够在一秒钟之内完成,则 t3 与 t1 之差小于 1 秒,故 CHECK 语句执行失败,直接返回。换言之,这个故障提交时,CRM IBASE API 的开发人员,并没有考虑到 IBASE 的创建和删除会在同一秒之内完成的场景。毕竟正常情况下,客户不可能在 1 秒钟之内,在 UI 完成 IBASE 先创建再删除的操作。这种场景只可能在客户使用 IBASE API 进行一些二次开发场景下才有可能出现。当然,最后这个问题,也绝非仅仅是把 53 行 CHECK 语句的 < 符号,改成小于等于操作那么简单。我们仔细评估了改动可能带来的其他副作用,并和提交该故障的团队开发人员进行了讨论,最后采取了其他的方式来避免这个故障的发生。回到这个故障分析过程本身,最开始接到故障时,因为单步调试无法重现,因此Jerry很是一筹莫展了一阵,后来想到编写脚手架程序来稳定重现该故障,这一步是问题分析的突破口。有了脚手架程序之后,先注释掉所有的 API 调用,再逐步开放 IBASE 创建,修改和删除的代码,最终把问题范围缩小到 IBASE 删除过程。通过脚手架应用的直接执行触发的运行时错误,利用调试器查看程序抛出错误时的变量值,将问题锁定到时间戳的处理逻辑上,进而找出根源。这一分析步骤有点像上世纪末本世纪初电脑 DIY 发烧友们遇到组装机无法启动时的排查措施。当组装机无法启动时,只保留电源,主板和 CPU,尝试启动,如果成功,再逐一添加显卡,硬盘等其他设备。当新添加的设备导致系统重新回到无法启动状态,说明该设备有问题。当时发烧友们把这种方式称为“最小系统法”。而整个分析过程的重中之重,就是把故障报告中无法稳定重现故障的后台作业里执行的内容,抽象成一个不到 200 行的脚手架程序。《编程珠玑》第五章曾经分享过一个关于故障调试的有趣故事:IBM 研究中心一位程序员,新安装了一台工作站,发现一个故障:他只能采取坐着的姿势登录系统;一旦站起来,就无法登陆系统了。大家知道这个故障最后怎么定位的吗?去读读原书吧!希望本文能给大家在企业管理软件领域内的故障排除方法带来一些启发,感谢阅读。
  • [技术干货] 智慧园区应用工程构建规范
    应用工程指使用AppCube平台开发的App和BO,应用工程规范包括App、BO的命名规范、目录结构规范,工程配置规范和工程服务规范。App是一个可复用的独立业务应用。例如,智慧园区解决方案中的综合安防应用。App的交付件包括:接口Interface:对外暴露的接口服务,Restful API接口可以直接被前台或第三方系统调用。事件Event:对外暴露、共外部订阅的事件。菜单Menu:面向租户业务使用人员,提供配置操作能力。BO是一个可复用的领域服务,是最小粒度的复用单元。例如,为了使业务应用开发人员高效地实现与物联设备的交互,对物联设备进行业务抽象,封装为设备BO。BO是资产封装的规范,可以基于平台元数据能力实现,也可以用其他方式实现。BO是有边界的。BO与BO之间不能共享数据。BO对外开放数据视图、接口服务、配置机制、事件等来进行交互,内部实现对外闭源不可见。BO的数据视图以聚合根的形式开放供外部查询。BO可以同时开放多个聚合根。BO与BO之间允许有接口调用的引用关系,但设计时应尽量避免BO与BO之间的直接交互,并完全禁止双向依赖。BO中可以包含UI内容如Layout、Widget,但仅作为参考实现。BO应尽量利用配置能力来适配不同的业务场景。配置无法满足时才考虑对BO做Addon扩展。扩展不能影响BO的向前兼容性。BO被打包在App或Addon中,租户通过安装App或Addon来获取BO。本文中字符数均以英文字符作为计数单位,一个汉字算3个字符。开发态的名称定义使用英文,展现给租户使用的配置参数显示则使用中文。BO的交付件包括:接口Interface:BO对外暴露的接口服务,一类是可以直接被前台或第三方系统调用的Restful API接口,一类是只能在开发平台上通过编排来调用的SDK API。事件Event:对外暴露、共外部订阅的事件。配置Configuration:面向开发人员或IT管理人员的,提供的配置能力。其中,配置菜单是BO提供的配置界面,选项列表是BO内部使用的字典项,系统参数是BO内部需要读取的控制参数。
  • [交流吐槽] API还没弄好吗?今天偷偷上线了一下又立马下线了
    刚做了2个任务,第三个怎么都完不成,再刷新就又下线了
  • [技术干货] Entity Framework Core 创建并配置模型
    Entity Framework Core 使用一组约定来根据实体类的形状生成模型。 可指定其他配置以补充和/或替代约定的内容。本文介绍可应用于面向任何数据存储的模型的配置,以及面向任意关系数据库时可应用的配置。 提供程序还可支持特定于具体数据存储的配置。 有关提供程序特定配置的文档,请参阅数据库提供程序部分。使用 fluent API 配置模型可在派生上下文中替代 OnModelCreating 方法,并使用 ModelBuilder API 来配置模型。 此配置方法最为有效,并可在不修改实体类的情况下指定配置。 Fluent API 配置具有最高优先级,并将替代约定和数据注释。分组配置为了减小 OnModelCreating 方法的大小,可以将实体类型的所有配置提取到实现 IEntityTypeConfiguration<TEntity> 的单独类中。使用数据注释来配置模型也可将特性(称为数据注释)应用于类和属性。 数据注释会替代约定,但会被 Fluent API 配置替代。
  • [分享交流] 【工业数字化大讲堂 第十五期】国产三维CAD助力制造业创新和转型升级,特邀山大华天软件有限公司CTO 梅敬成博士分享!
    主题:国产三维CAD助力制造业创新和转型升级【直播嘉宾】:梅敬成博士  山大华天软件有限公司CTO【直播内容】:1.在三维CAD软件市场被国外软件厂商垄断,重大装备制造、军工等关键工业领域,存在封锁和信息安全等诸多问题的背景下,国产三维CAD如何克服阻难的发展历程以及面向未来的发展趋势2.结合行业案例分享国产三维CAD如何助力制造业创新和转型升级,大幅提升提升企业的设计效率和设计质量。5月6日(周五)16:00-17:00,点此观看直播~直播期间可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO)第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live第十三期 非标装备制造企业如何破除交付困境 张燕聪(广州盛原成科技有限公司CEO)live第十四期 华为终端供应商数字化生产建设方案 仲金柱(华为供应商质量发展协会会长)live第十五期 国产三维CAD助力制造业创新和转型升级 梅敬成(山大华天软件有限公司CTO)live更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
  • [线上活动] 【工业数字化大讲堂 第十五期】国产三维CAD助力制造业创新和转型升级,特邀山大华天软件有限公司CTO 梅敬成博士分享!
    主题:国产三维CAD助力制造业创新和转型升级【直播嘉宾】:梅敬成博士  山大华天软件有限公司CTO【直播内容】:1.在三维CAD软件市场被国外软件厂商垄断,重大装备制造、军工等关键工业领域,存在封锁和信息安全等诸多问题的背景下,国产三维CAD如何克服阻难的发展历程以及面向未来的发展趋势2.结合行业案例分享国产三维CAD如何助力制造业创新和转型升级,大幅提升提升企业的设计效率和设计质量。5月6日(周五)16:00-17:00,点此观看直播~直播期间可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO)第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live第十三期 非标装备制造企业如何破除交付困境 张燕聪(广州盛原成科技有限公司CEO)live第十四期 华为终端供应商数字化生产建设方案 仲金柱(华为供应商质量发展协会会长)live第十五期 国产三维CAD助力制造业创新和转型升级 梅敬成(山大华天软件有限公司CTO)live更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
  • [技术干货] 【转载】swagger是什么?
    swagger 是一个规范和完整的框架,用于生成、描述、调用和可视化 RESTful 风格的 Web 服务的接口文档。目前的项目基本都是前后端分离,后端为前端提供接口的同时,还需同时提供接口的说明文档。但我们的代码总是会根据实际情况来实时更新,这个时候有可能会忘记更新接口的说明文档,造成一些不必要的问题。用人话说,swagger就是帮你写接口说明文档的。更具体地,可以看下面的图片,swagger官方建议使用下面的红字部分,这篇博客主要是记录如何,使用swagger自动生成Api文档的,所以只介绍swagger-ui,其他的…以后我用到会再整理。swagger-ui用来显示API文档的,不可编辑,会根据我们在代码中的设置来自动生成Api说明文档。生成的api文档如下————————————————版权声明:本文为CSDN博主「zhanggonglalala」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。原文链接:https://blog.csdn.net/zhanggonglalala/article/details/98070986
  • [应用推荐] 实名认证的运用场景
    只记得游戏行业身份实名认证的强制要求,如今各行业基本上都必须做实名认证,随着时代发展,我们推出以下各种实用的实名认证产品。1、身份证二要素验证 是基于官方授权的官方数据接口,通过“姓名”和“身份证号码”信息比对,实现不同应用场景下实时准确的用户身份是否一致。适用于各行业的基本实名认证。2、人脸身份三要素人 是基于官方授权的官方数据接口,通过用户授权后输入姓名、身份证号码和用户人脸图片,核验姓名和身份证号码,人脸图片与 数据源身份证头像进行比对,核验信息是否一致;3、身份证OCR 是通过用户授权提供身份证图片,自动识别图片中身份信息,支持识别身份证识别正反面信息,包括姓名,出生年月,生日,身份证号信息。扫描身份证ocr, 多光线多角度,识别准确率高达98%以上,能提高业务处理效率,信息化处理事务更加节约环保;应用场景案例:【服务商】深圳市隆飞洋科技有限公司1、金融风控,在投资理财、保险理赔、证券交易等安全性要求高的金融场景,运用人脸核身方案,将线下业务转为线上自助模式,满足远程开户、保险回执单等业务需求。同时可以辅助密码找回等密保措施,降低用户身份信息被恶意篡改、顶替冒用等风险,提升信息安全管理2、民事政务针对社保身份核实、政府访客登记、政务大厅自助窗口等场景,将原本繁琐费时的柜台业务办理,转为线上自助服务,无需窗口排队等待,提高业务处理效率3、酒店入住酒店宾馆行业人员流动频繁,以往通过肉眼判断身份证件真假、是否本人持证的方式效率低下,准确度难以保证,无法满足企业和政府的监管需求。应用人脸核身技术,高精度核实住客身份信息,为住户提供更便捷的高质量服务4、服务人员身份监管在货品运输、家政保洁等服务行业,对从业人员的身份真实性要求较高。运用人脸核身方案,从业人员可自助完成实名认证,防止身份被顶替、冒用,提升身份审核效率,保障业务安全5、共享业务在共享班车、定制巴士、分时租赁等共享服务中,组合使用活体检测、身份证识别、人脸质量检测、人脸对比等能力,提升“注册-认证-审核-用车”全环节效率,实现驾驶全流程身份核验,保障信息安全,有效规避智能出行服务风险6、考生身份核验目前招聘考试、专业执照考试、企业内部评测等考核逐渐转为在线操作,但信息作假、替考等风险较多,且难以系统化监管。引入人脸核身方案,提供便捷、高效的身份核验服务,确保考生身份真实有效,有助于加强行业监管
  • [线上活动] 【工业数字化大讲堂 第十四期】华为终端供应商数字化生产建设方案—特邀华为供应商质量发展协会会长 仲金柱老师4月28日分享!
    主题:华为终端供应商数字化生产建设方案【直播嘉宾】:仲金柱 华为供应商质量发展协会会长【直播内容】:1、华为CBG技术质量认证工程师如何通过自身的数字化转型实践来获得收益;2、华为终端供应商数字化生产建设方案的分享。4月28日(本周四)16:00-17:00,点此观看直播~ 【观看直播抽好礼】直播期间(4月28日16:00-17:00)可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO)第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live第十三期 非标装备制造企业如何破除交付困境 张燕聪(广州盛原成科技有限公司CEO)live第十四期 华为终端供应商数字化生产建设方案 仲金柱(华为供应商质量发展协会会长)live更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
  • [分享交流] 【工业数字化大讲堂 第十四期】华为终端供应商数字化生产建设方案—特邀华为供应商质量发展协会会长 仲金柱老师4月28日分享!
    主题:华为终端供应商数字化生产建设方案【直播嘉宾】:仲金柱 华为供应商质量发展协会会长【直播内容】:1、华为CBG技术质量认证工程师如何通过自身的数字化转型实践来获得收益;2、华为终端供应商数字化生产建设方案的分享。4月28日(本周四)16:00-17:00,点此观看直播~ 【观看直播抽好礼】直播期间(4月28日16:00-17:00)可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO)第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live第十三期 非标装备制造企业如何破除交付困境 张燕聪(广州盛原成科技有限公司CEO)live第十四期 华为终端供应商数字化生产建设方案 仲金柱(华为供应商质量发展协会会长)live更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
  • [交流吐槽] api相关任务又上线了
    但是完成后没有码豆;凌晨时看得到,现在又没有了相关任务
  • [服务构建器] 【华为云Stack ManageOne 服务构建器】服务构建器进行自定义线下资源发放流程介绍
    ## 业务场景   如果用户需要使用的资源属于线下资源,且不能在ManageOne直接申请。则需要在ManageOne线上创建该类型资源的线下资源服务,然后通过申请、审批,审批通过后才能使用。此场景缺失审批时输入的能力。本次流程引擎提供审批时输入的能力,服务构建器也提供审批时输入的能力适配,线下资源发放场景在服务构建器可以实现。如下图流程示例: ![image.png](https://bbs-img.huaweicloud.com/data/forums/attachment/forum/20224/24/1650769856524173257.png) ## 线下资源接入 ### 环境运维面(OC侧)添加系统资源管理   场景模拟时,我们添加系统资源,然后通过调用API对设备进行增删改查操作。 ![image.png](http://image.huawei.com/tiny-lts/v1/images/e1c7fbaa9b105056cc8fd70a5eef35c9_1895x742.png@900-0-90-f.png) ### 服务API提供者注册资源管理API 资源管理操作参考运维面API文档: ![image.png](http://image.huawei.com/tiny-lts/v1/images/5658d7ba558797e4c496e9bad4a6a148_1896x971.png@900-0-90-f.png) 服务构建器服务提供者注册资源管理API: ![image.png](http://image.huawei.com/tiny-lts/v1/images/79be29575303b48464ca9a1144bf74af_1847x827.png@900-0-90-f.png) ## 模板服务申请 ### 创建模板 使用表格组件加载线下资源 ![image.png](http://image.huawei.com/tiny-lts/v1/images/14142165ca8e07883f6799692d324288_1861x876.png@900-0-90-f.png) 变更资源状态流程 ![image.png](http://image.huawei.com/tiny-lts/v1/images/516f9239bd6052c68c46092cf674f0c9_1866x874.png@900-0-90-f.png) ### 创建和申请服务 创建服务,添加审批流程,并设置审批时输入参数,并申请流程 ![image.png](http://image.huawei.com/tiny-lts/v1/images/a1ce129d820dfd86cb4ae8ccfdaa9ef6_1864x891.png@900-0-90-f.png) 流程走到审批人这,审批人选择需要下发的资源,并同意申请 ![image.png](http://image.huawei.com/tiny-lts/v1/images/4275dd4150c21d6460bc1dccfbae629d_1858x877.png@900-0-90-f.png) 申请成功后,我们查看资源状态,已下发的资源由闲置变为运行状态: ![image.png](http://image.huawei.com/tiny-lts/v1/images/5d37be1b1dba63476b8bcb0f6e7a5e85_1854x866.png@900-0-90-f.png) ## 总结   本文只是做了一个简单的流程操作指引,构造的数据和流程都比较简单。业务上的场景肯定要复制的多,但是步骤拆解大体差不多,后面会补充一些更加完整的最佳实践和业务强相关的场景流程
  • [技术干货] 由ansible-gen生成API并由ansible-playbook下发netconf会话到Huawei S5731的调试过程
    下面简单介绍下调试ansible_collections的community.network.ce的module的方法,每个module执行的时候都是从module的main函数开始执行。以定位ce_mlag_intterface模块执行返回错误为例,问题现象是执行playbook后,返回如下错误,看样子像是把netconf报文在设备上执行的报错一样,于是打开debug看下调试信息,原本以为debug只有-vvv,原来一共可以敲-vvvvvv,v越多debug越多,通过和执行通过的module进行比较,发现如下差异可以看到左边执行失败的debug信息里使用的connection插件是network_cli,即命令行注入的方式,而右边执行通过使用的connection插件是netconf,因此去community.network的action目录中代码中搜索该打印,发现有个全局变量将该module定义为命令行注入方式配置,而ce_mlag_interface.py文件中使用的是netconf方式下发配置,因此此处的定义是不合理的,ce_mlag_interface删除后,playbook执行通过。注意:如果调试的是NE系列的产品或者插件,由于NE插件的ansible_collections没有放到ansible_collections官方的community.network命名空间下,而是独立创建了一个huaweidatacom.ne的命名空间,在安装完成后,它与community.network都在ansible_collections目录下是平行关系,因此在hosts文件中要指明 ansible_network_os=huaweidatacom.ne.ne,以避免不必要的麻烦,否则会报模块找不到的其他错误。
  • [线上活动] 【工业数字化大讲堂 第十三期】非标装备制造企业如何破除交付困境—特邀广州盛原成科技有限公司CEO张燕聪老师分享,4.2直播
    主题:非标装备制造企业如何破除交付困境【直播嘉宾】:张燕聪 广州盛原成科技有限公司CEO。华南理工大学硕士,曾任职全球顶级的工业数字化公司西门子和PTC,主持过研发国家科技部重点研发项目,在工业数字化方面有独特的见解。【直播内容】:本期直播将解析非标装备制造企业面临的装备交付困境,分享典型的装备企业如何利用IT和OT融合的技术提升从设备研发到设备交付的效率,提升企业竞争力。4月21日(本周四)16:00-17:00,点此观看直播~ 【观看直播抽好礼】直播期间(4月21日16:00-17:00)可参与抽奖哦~往期精彩分享>> 【工业数字化大讲堂】第一期 华为数字化转型分享(车海平 华为公司高级副总裁、数字转型首席战略官)live2021/12/22第二期 建立制造领域数字化转型的基石(陈振华 中国机床工具工业协会、工业互联网发展负责人)live2021/12/30第三期 制造业数字化转型势道术(朱少盛 深圳赛瀚德技术有限公司CEO)live2022/1/6第四期 华为供应链数字化分享(范美华 华为供应链管理部CIO)live2022/1/13第五期 华为数字化转型实践(苏立清 华为云首席数字化转型官)live2022/2/17第六期 华为数字化转型实践(张勇强 工业解决方案高级顾问)live2022/2/24第七期 华为服务交付数字化转型之路(叶蓁蓁 华为软件云服务资深产品专家)live2022/3/4第八期 制造业企业数据平台建设最佳实践分享 马千里(数据使能资深解决方案架构师)live2022/3/10第九期 工业数字化和工业云 丘水平(华为工业软件及工业云CTO)2022/3/17第十期 开天aPaaS赋能工业云 金伟(华为云开天aPaaS首席规划专家)live2022/3/24第十一期 制造业中小企业转型能力建设分享 龚祺(工业云项目群总监)live2022/4/7第十二期 专精特新企业数字化转型如何落地 崔裕(鼎捷软件行业发展中心总监)live2022/4/15更多精彩直播,请关注微信公众号“工业数字化大讲堂”↓↓
  • [线上活动] 重磅 | 开天aPaaS工作台发布,诚邀公测!
    本次公测共发布了哪几项服务?【企业工作台】  【集成工作台】【KooMessage】   【IMC】1. 企业工作台[产品介绍] 开天企业工作台是企业一站式数字化工作台,是企业应用的统一门户,为企业提供了用户、组织的统一管理,应用的统一管理和授权及应用间的单点登录,解决企业内应用管理和用户的不统一,提升企业的办公效率。免费体验企业工作台>>立即开通怎样使用企业工作台?>>用户指南2. 集成工作台[产品介绍] 华为云开天集成工作台为企业开发者提供基于元数据的可扩展的集成框架,降低了应用间集成工作量,并沉淀多种集成资产如连接器、领域信息模型资产、行业API等。免费体验集成工作台>>立即开通超干货!3个短视频快速上手集成工作台~01-如何利用模板创建一个自动化流 02-从创建连接器开始完成从空白创建流  03-手动触发流与自动化流的区别怎样使用集成工作台>>用户指南3. KooMessage[产品介绍] 云消息服务(KooMessage)融合多种客户触达渠道,包括智能信息、服务号、PUSH消息、5G消息等能力,为行业客户提供一站式行业服务及用户增长服务,实现全场景、全终端客户触达,提升最终消费者服务满意度和营销转化率。>>立即申请公测怎样使用云消息服务KooMessage>>用户指南4. IMC[产品介绍] 智能制造云 IMC(Intelligent Manufacturing Cloud)为工业领域的 aPaaS 工作台,是工业互联网产业云解决方案的门户。IMC致力于汇聚合作伙伴,深度融合业内优秀工业软件,为企业提供研发设计、生产制造、市场营销以及日常办公等服务,支撑企业业务流程的优化,实现一站式工作体验。>>立即开通IMC怎样使用IMC?>>指导手册除此之外,本次公测还上线了一批优质API供大家免费试用 >>欢迎选购体验了解更多开天aPaaS,请查看>>开天aPaaS 经验即服务,使能行业应用创新工作台体验过程中,有任何想法建议、吐槽或需求,欢迎来开发者社区和大家交流分享~
总条数:1404 到第
上滑加载中