在Jerry写这篇文章时,通过Google才知道,SAP其实是有自己的3D模型视图显示解决方案的。

故事要从Right Hemisphere说起,这是一家专业的企业级2D/3D模型浏览及转换的软件供应商。后来,Right Hemisphere被SAP收购,解决方案也更名为SAP Visual Enterprise。

收购之后,SAP推出了一系列和Visual Enterprise Viewer的集成解决方案。以SAP CRM为例,在CRM产品主数据的页面工具栏上新增了一个按钮"Visual Enterprise Viewer",点击之后,会显示一个弹出窗口,在浏览器里利用ActiveX调用本地安装的Viewer应用,显示该产品主数据的3D视图。

这种产品3D模型显示功能在CRM领域的用途是,充分利用企业已有的3D模型的素材文件(通常是企业专门的工程/设计部门或者外包部分通过专门的3D建模软件制成),在CRM销售,服务和营销场景中也能给用户提供关于产品的一个360度视图。比如一个组成复杂的大型机械,通过3D模型展示发生故障的部件,或是作为帮助文档的补充给用户展示产品的组装步骤,或是在服务流程中以3D方式显示出所有可选备件,给用户更好的视觉体验等等。

这种基于SAP Visual Enterprise Viewer的3D显示解决方案的技术实现是建立在WebClient UI框架的增强之上,即引入了一个新的标签veviewerIsland, 将通过ActiveX启动本地安装的Viewer应用的逻辑封装在内。

因为和本文主题无关,不做深入介绍,感兴趣的朋友请参考SAP help上关于

SAP Visual Enterprise Viewer的介绍。

https://help.sap.com/viewer/p/SAP_3D_VISUAL_ENTERPRISE_ACCESS

本文介绍的是另一种用纯JavaScript编程来以3D方式显示产品主数据的解决方案。对于用户来说,使用该解决方案无需在客户端安装任何3D显示软件,只需要一个支持WebGL的现代浏览器即可。

我做了一个简单的原型,把它的视频放到了youtube上:

https://www.youtube.com/watch?v=piWsbfPEGUA

(因为这个视频是在我的内部系统上录的,在显示3D模型的弹出窗口的地址栏里显示了内部系统的url,为了不泄漏出来,我在视频里把弹出窗口的顶部截掉了)

当工具栏上的3D按钮点击之后,出现一个新的弹出窗口,效果和使用SAP Visual Enterprise Viewer解决方案一样,并且还多了一个动态旋转的效果,使用户能够全方位地观察到该足球每一个部位。

正如文章标题所示,这个解决方案里3D显示的技术实现采取的是纯JavaScript编程。奥妙就在threejs,一个基于WebGL,使用JavaScript进行3D模型变换和显示的库。

在threejs的官网能找到很多用threejs开发而成的酷炫效果和使用教程。

下面是我做的原型主要的开发步骤,感兴趣的顾问朋友们可以在自己系统试试。

1. 在SE80里开发一个BSP应用,该应用负责使用threejs API基于已有的3D模型素材文件渲染出一个不断旋转的3D足球。

选中index.htm, 从右键菜单里选择"test", 在弹出的浏览器窗口内您会看到一个旋转的3D足球。这个文件的全部源代码请在我的github上获得。

https://github.com/i042416/FioriODataTestTool2014/blob/master/WebContent/096_3dfootball.html

该文件内的逻辑为使用threejs API进行3D模型的创建和渲染,具体技术细节大家可以参考threejs官网教程。这个文件的代码是Jerry从我的同事Wen Aviva的代码复制而成,做了极少量的修改。


插播一条八卦

Aviva是SAP成都研究院C4C开发团队一位具有女王级地位的程序媛,有图为证:

今年3月份,SAP C4C全球开发部门搞了一个内部编程马拉松大赛。SAP成都和美国,印度的其他C4C开发团队全部参加了这次比赛。每个参赛队伍组队完成后,需要给比赛开发的作品取个名字。成都一位组员提出了取名"Hi Aviva!", 为的是向Aviva致敬,该提议获得了组内全票通过。最后这个小组的作品获得了二等奖,因此Aviva的名字又出现在了公司portal和内网页面上。

为什么Aviva在组内享有这种女王级的地位?因为技术栈全面,在工作中能自如地运用C++,Java和JavaScript完成标准开发和原型开发任务,经常能帮团队解决一些很难的技术问题,而且学习新技术速度特别快。Jerry在SAP成都研究院工作11年,和很多程序媛共事过,Aviva的技术能力给我留下非常深刻的印象,另一位是Mao Annie。

Jerry非常佩服这两位程序媛,能够把自己的技术修炼到如此程度。

Aviva以前的微信头像是一位坐在电脑面前编程的程序媛的卡通图像。最近换了。

八卦插播结束。


如果大家不想自己动手,可以直接打开下面这个url,查看这个旋转的3D足球的效果。

http://i042416.github.io/FioriODataTestTool2014/WebContent/096_3dfootball.html

请注意,因为这个足球的3D素材文件数量比较多,需等待它们全部成功从浏览器加载后,才能看到最终效果。

另外,在这个原型里,这些素材文件都是直接维护在BSP应用里的。如果做成标准解决方案,则应维护在CRM产品页面的“附件”区域,或是维护在ERP对应的物料主数据应用里。

3D模型的旋转效果通过了大部分现代浏览器支持的原生API requestAnimationFrame来实现。传一个render函数进去,默认情况下每秒钟会被调用60次,每次函数调用里对模型的X和Y坐标做微调,以造成旋转的视觉效果。

2. 剩下的开发全部是传统的CRM WebClient UI开发了。

对UI组件PRD01OV做增强,添加一个新的Component usage,消费组件GSURLPOPUP,这个组件作为显示3D模型的页面容器。

在产品主数据的UI工具栏上增加一个新的按钮:

实现该按钮的点击响应处理:

点击之后,在GSURLPOPUP里显示我们第一步做好的BSP应用,在该应用里用threejs渲染出3D模型:

欢迎试用该原型,并提出您的宝贵意见。

感谢阅读。

要获取更多Jerry的原创技术文章,请关注公众号"汪子熙"或者扫描下面二维码:

在SAP UI中使用纯JavaScript显示产品主数据的3D模型视图相关推荐

  1. SAP PM 入门系列2 - IE03显示设备主数据

    SAP PM 入门系列2 - IE03显示设备主数据 设备是一种可以独立运行并可被维护的.单一的.物理上存在的对象.它可以被安装在一个技术系统中,如功能位置.一般的设备有生产设备.运输设备.房屋等等. ...

  2. 非常酷炫漂亮的3D立体照片展示墙 纯JAVASCRIPT显示

    今天主要给大家分享下一个3d显示照片墙的纯JavaScript效果demo,效果很酷炫.可以通过鼠标上下左右拉动,从而把照片墙进行360°展示. 鼠标停止后,在操作过程中,会发现,照片会以某角度轴,继 ...

  3. 一个详尽的面向 SAP UI5 初学者的教程 - 如何在 SAP UI5 中绘制图表 Chart

    这是 Jerry 2021 年的第 65 篇文章,也是汪子熙公众号总共第 342 篇原创文章. 观沧海 曹操 东临碣石,以观沧海. 水何澹澹,山岛竦峙. 树木丛生,百草丰茂. 秋风萧瑟,洪波涌起. 日 ...

  4. HTML中强制换行和自动换行,网页中的纯文本如何强制换行(txt文件)

    有的时候需要把文本文件中的内容显示到网页中,显示效果非常糟糕,比txt文本文件还差,不但没有行间距,连段落也没有了,所有段落被合并成一段,可阅读性变得十分差,可能阅读一会就不想读了.通常的处理方法是把 ...

  5. 中消协:要选择优质电子显示产品 OLED屏整体上略胜一筹

    [TechWeb]6月9日消息,据中国消费者协会官网发布的消息,中消协于2019年上半年,在市场上选购了具有代表性的13款电子产品(其中5款手机.4款平板电脑和4款电视机),主要对不同材质的屏显进行比 ...

  6. 纯JS脚本1k大小的3D玫瑰

    摘要:前年圣诞节上,西班牙程序员Roman Cortes带来了用纯js脚本编写的神奇3D圣诞树,令人印象深刻.2月14日情人节就要来临了,还是Roman Cortes,这次他又带来了用js脚本编写的红 ...

  7. 立创商城中元器件封装的3d模型导出STEP格式文件

    1.首先安装FreeCAD软件和注册立创账号: 2.进入立创EDA专业版,同时登录立创EDA账号: 立创EDA专业版网址:https://pro.lceda.cn/editor 3.新建一个工程并打开 ...

  8. Alitum designer查看的PCB 3D 渲染图上边没有元器件,怎么办?(如何为3D渲染图中的元器件添加3D模型?)

    现象: 具体原因:因为你的元器件库中,没有添加相应元器件的模型 如何做? 1.为AD 22安装元器件库: (1)拿到原始库文件: _Library_Base_20170106.rar (2)解压: ( ...

  9. 【鸿蒙 HarmonyOS】Ability 中使用纯代码绘制布局及 UI 组件

    文章目录 一.Ability 与 Slice 简介 二.Ability 中使用纯代码绘制布局及 UI 组件 三.Ability 中使用纯代码绘制布局及 UI 组件代码示例 四.GitHub 地址 一. ...

最新文章

  1. Alibaba Cloud Linux 2.1903 LTS 64位服务器yum源下载404,Alibaba Cloud Linux 2实例中使用docker-ce、epel等YUM源安装软件失败
  2. 一个整型数组里除了两个数字之外,其他的数字都出现了两次
  3. DC-leetcode215数组中的第k大元素
  4. SAP Spartacus单元测试里Component实例的创建细节
  5. 使用NetBeans 7.4 beta提示进行更好的基于JUnit的单元测试
  6. socket编程持续交流java_socket编程的简单问题
  7. Java中String,StringBuffer,StringBuilder的区别及其使用
  8. FMS飞行模拟器简介
  9. c#winform单表生树
  10. python中idle_python中的idle是什么意思
  11. easyx的使用(1)
  12. SAP ERP统驭科目
  13. vue大文件上传控件选哪个好?
  14. Dojo学习笔记一: 认识Dojo
  15. [转载] 真正可用的使用T5577卡复制4100卡_ID卡复制操作流程
  16. 将计算机系成绩置零,实验三数据更新操作_计算机软件及应用_IT计算机_专业资料...
  17. 解决苹果M1芯片无法通过绿联转接器连接网线的问题
  18. 74 Open Source VoIP Apps Resources 【转】
  19. Ubuntu搭建渗透测试环境
  20. 三维激光扫描后处理软件_工业机械液压缸套逆向设计三维激光扫描产品设计三维激光扫描仪价格...

热门文章

  1. 我常用的python函数(part2)--executemany方法
  2. 如何优化Hive SQL ??
  3. SAP 电商云 Spartacus UI 的 feature module 设计原理
  4. cache control 里 no-cache 和 no-store 的区别
  5. SAP Spartacus Unit List树形数据的加载
  6. Angular jasmine TestBed.configureTestingModule的工作原理
  7. rxjs of操作符生成的Observable对象的执行详细分析
  8. SAP Fiori Elements - how object_id is parsed from OData response
  9. 使用SAP云平台Android SDK创建Mobile应用
  10. SAP UI5 Web Component的React表格控件用法