前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Apriso 开发葵花宝典之三 Process builder HTML 篇

Apriso 开发葵花宝典之三 Process builder HTML 篇

作者头像
李英杰同学
发布2023-09-02 08:31:22
6020
发布2023-09-02 08:31:22
举报
文章被收录于专栏:智能制造社区智能制造社区

本文作者陈捌华,感谢捌老师倾情奉献。

概述

Process builder是Delmia Apriso中主要的业务流程管理工具,也是DELMIA更广泛的Apriso制造运营管理解决方案的核心应用程序,Process Builder允许使用屏幕流管理设计方法和实体(如项目、屏幕、布局、视图和操作(函数))创作用户界面和业务逻辑。该应用程序能够快速方便地管理和修改开发的设计,使您能够根据需要随时更改业务流程。由于增强了对可重用性的支持,以前开发的逻辑可以在新的设计中快速重用。

本文介绍几个在常规培训学习中容易被忽略,但又能有效提升开发效率的Process builder Html相关内容。

控件标签

控件标签主要分为:

  • 输入input
  • 输出output
  • 界面控件business control
  • 子过程:Sub Operation

Screen Interface函数

Screen Interface函数不能手动创建,当使用HTML布局编辑器功能时,它会自动显示。

Screen Interface函数有以下限制:

  • 屏幕接口函数不能被迭代、复制等。
  • 一个“step步骤”中只能包含一个界面功能。
  • 不能只复制屏幕接口函数。如果要做到这一点,需要复制整个步骤。 Screen Interface不能包含用户user 类型的输入/输出。
  • 无法删除Screen Interface函数,因为屏幕界面函数是HTML布局编辑器的一个组成部分。要删除此函数,您必须切换回布局编辑器(参见HTML布局编辑器右键菜单)。

Apriso内置自定义属性

Apriso提供了在HTML布局编辑器和HTML编辑器的HTML选项卡中使用的特殊的客制化属性,详情请参考:http://[ServerName]/Apriso/Help/en-us/ProcessBuilder/index.htm#Custom_Attribute_Overview.htm?TocPath=Managing%2520Processes%2520and%2520Operations%257CManaging%2520HTML%2520Layout%2520Editor%257CScreen%2520Interface%257CAttributes%257C_____0

$Context上下文对象

$Context是一个特殊变量,它为HTML Layout Editor(Screen Interface函数)提供了多种功能。此变量只能在Process Builder中的HTML中使用。

  • $Context.inputs – 获取输入Inputs
  • $Context.outputs – 获取输出Outputs
  • $Context.literals – 获取词条Literals
  • Context.view – 获取当前视图View,和View对象一致
  • $View.node: HTMLElement – 获取当前视图一个HTML元素
  • $View.onLoaded(func: () => void): void; 在加载视图并将其添加到文档对象模型(DOM)时执行回调。在视图的onViewLoaded事件(客户端模式)或HTML文档的“DOM content ready”事件(服务器模式)上调用回调。
  • $View.onUnloading(func: () => void): void; 在删除视图之前执行回调。该回调在View(客户端模式)的onViewsUnloading事件上调用,或者在提交Screen(服务器模式)之前调用
  • $View.isUnloading: boolean; 通过检查视图对象上的isunload属性来验证视图是否正在被卸载。此值指示视图是否正在被卸载。它可以用来停止AJAX回调的执行
  • View.hasChanges=true在某些情况下,可能需要通知用户,他想执行的操作可能会丢弃他已经提供的一些数据。在这种情况下,流程作者可以配置视图,以通知屏幕流管理器数据已提供,设置hasChanges变量如下: <input type="text" onchange="
  • $Context.submit() – 提交View. 这个方法可以在client mode中更新外部输出(External Outputs).注意这个行为在server mode下会刷新界面.
  • $Context.callOperation() – 异步调用过程Operation

AJAX调用

▶第一步,新建step

▶第二步,链接需要异步调用的Operation到step

选中step并在属性视图中选择Advanced标签页,在Invoke Operations/AJAX中点击“+”链接到需要调用的Operation,可以指定项目和版本

▶第三步,拖拽 AJAX Operation to the HTML Layout Editor (HTML tab).

完成拖拽后,Process builder自动添加一个按钮html代码,并生成全功能JavaScript代码,可以根据实际需要进行修改

▶第四步,根据需要修改输出的处理

在调用时传递Function函数(在successCallback上,在errorCallback上)参数。

  • 在JavaScript函数定义中直接实现success和error处理。
代码语言:javascript
复制
function call_AJAX_Operation_1_0(context, Input1, successCallback,errorCallback){
   var inputs = {};
inputs.Input1 = Input1;
   context.callOperation('AJAX Operation','1.0', inputs,
       function(outputs){
//Operation outputs: Output1
           if (typeof successCallback == "function")
               successCallback(outputs);
           else {
               var message = 'Result:';    
               for(var name in outputs)
                   message = message + '\r\n  ' + name + ': ' + outputs[name];
               alert(message);
           }
       },
       function(message) {
           if (typeof errorCallback == "function")
               errorCallback(outputs);
           else
               alert(message);
       });
}
  • 使用async/await语法
代码语言:javascript
复制
async function call_AJAXOperation(context, input1){
   var inputs = {};


   inputs.input1 = input1;


   try {
          var result = await context.callOperation
          ('AJAXOperation', 'REV.001.000', inputs);
          var message = 'Result:';


          for(var name in result) {
                   message = message + '\r\n ' + name + ': ' + result[name];
          }
          alert(message);
   } catch (ex) {
          console.log(ex);
   }
}

注意:当响应消息来自词条时,其ID可从message.literalId(用于errorCallback)和ex.literalId(用于catch)访问。

占位符

以下占位符可用于HTML布局编辑器的CSS、JavaScript和HTML选项卡:

[Apriso] – 对应"<drive>\Program Files\Dassault Systemes\DELMIA Apriso 2023\WebSite\Portal" 目录

[AprisoStyles] – 对应 <drive>\Program Files\Dassault Systemes\DELMIA Apriso 2023\WebSite\Portal\Styles\Default" 目录

[AprisoScripts] – 对应 "<drive>\Program Files\Dassault Systemes\DELMIA Apriso 2023\WebSite\Portal\Scripts"目录

最佳实践

1. 保持代码缩进

2. 标签名称和属性使用小写

3. 标签名称和属性不要添加多余的空格

4. 多个属性之间只用一个空格

5. 不要忽略标签封闭

6. 使用双引号,不要双引号和单引号混用

7. 布尔boolean型属性不要使用value值,只要填写属性命即可

8. &,<,>,"和'符号需要进行转义,如<h1>The &quot;&amp;&quot; character</h1>

9. 注释中间使用空格符号,如<!-- This section is non-normative -->

10. List项一行写一项

11. 使用<br>进行换行

12. 使用Alt属性显示图像无法显示时的替代文本,如<img alt="HTML Best Practices" src="/img/logo.png">

13. Submit类型input添加Value属性,如:<input type="submit" value="Search">

14. Label标签,不要使用placeholder属性,正确写法:<label>Email: <input name="email" placeholder="john.doe@example.com" type="text"></label>

15. 编写Table是每个单元格使用一行

16. Option元素每行填写一个选项

17. Progress元素中使用max属性,如:<progress max="100" value="50">50%</progress>

18. Meter原始使用min、max属性,如:<meter min="0" max="1024" value="10">10/1024GB used</meter>

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2023-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 智能制造社区 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档