Lumira Designer:ZTL函数和全局脚本函数中的自定义结果类型

2020-08-25 01:56发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我们创建了一个SDK组件,该组件将一个属性定义为一个具有两列的数组:"名称"和"值"。

 <属性id =" customParameters" type =" Array" title ="自定义参数">
 
 
 
   

我们还定义了ZTL函数,这些函数使开发人员可以通过脚本方法设置此Array。 由于我们不知道如何使脚本知道自定义类型,因此我们实现了:

  1. 从传递的参数创建对象的一种方法。 这些参数可以添加到数组中。
  2. 另一个从该数组设置组件属性的方法
 com.biexcellence.openbi.sap.ExportParameter createNameValuePair(字符串iname,字符串ivalue){*
 返回{name:iname,value:ivalue};
 *} 
 void setCustomParameterArray(com.biexcellence.openbi.sap.ExportParameterArray ivalue){*
 this.customParameters = ivalue;
 *} 

方法签名使用的类型也在ZTL定义中定义:

 class com.biexcellence.openbi.sap.ExportParameter {
 字符串名称;
 字符串值;
 } 
 class com.biexcellence.openbi.sap.ExportParameterArray扩展Array {
 com.biexcellence.openbi.sap.ExportParameterArray(com.biexcellence.openbi.sap.ExportParameter h);
 } 

是否可以使这些类型在常规脚本中以及全局脚本函数的返回类型中也可见?

感谢您的宝贵意见!

锡洛

(35.6 kB)

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


尊敬的专家,

我们创建了一个SDK组件,该组件将一个属性定义为一个具有两列的数组:"名称"和"值"。

 <属性id =" customParameters" type =" Array" title ="自定义参数">
 
 
 
   

我们还定义了ZTL函数,这些函数使开发人员可以通过脚本方法设置此Array。 由于我们不知道如何使脚本知道自定义类型,因此我们实现了:

  1. 从传递的参数创建对象的一种方法。 这些参数可以添加到数组中。
  2. 另一个从该数组设置组件属性的方法
 com.biexcellence.openbi.sap.ExportParameter createNameValuePair(字符串iname,字符串ivalue){*
 返回{name:iname,value:ivalue};
 *} 
 void setCustomParameterArray(com.biexcellence.openbi.sap.ExportParameterArray ivalue){*
 this.customParameters = ivalue;
 *} 

方法签名使用的类型也在ZTL定义中定义:

 class com.biexcellence.openbi.sap.ExportParameter {
 字符串名称;
 字符串值;
 } 
 class com.biexcellence.openbi.sap.ExportParameterArray扩展Array {
 com.biexcellence.openbi.sap.ExportParameterArray(com.biexcellence.openbi.sap.ExportParameter h);
 } 

是否可以使这些类型在常规脚本中以及全局脚本函数的返回类型中也可见?

感谢您的宝贵意见!

锡洛

(35.6 kB)
付费偷看设置
发送
1条回答
me_for_i
1楼-- · 2020-08-25 02:33

您好Thilo

SDK组件的任何类型的自定义类型仍未记录,因此不受支持。

之所以这样做,是因为随着时间的推移将扩展类型系统并保持其向后兼容是具有挑战性的。

无论如何,考虑到Lumira的状态,使用这些功能是安全的。 到目前为止,您已经正确执行了此操作-但为了完整起见,这里的规则是:

  1. 自定义类型应具有命名空间以避免冲突。
  2. 您将它们编写为类。
  3. 除了继承成员,父类还定义类型兼容性。 例如。 如果您的类(间接地)从"未定义"继承,则您的类型的变量可能会变得未定义。
  4. 在类中只有一个自变量的构造函数将定义其他类型的兼容性。
  5. 字段被写为 ;字段通常写在内部,用于创建"语义字符串" aka类,该类从什么都继承,但只有一个字符串构造函数使其与字符串文字兼容。 它们是只读的。 Lumira 2.4还支持之前带有" writable"的可写字段。
  6. 如果您从" Structure"类继承,则可以传入适合该类型的JSON。 提供自动的内容辅助和参数检查。
  7. 在类顶部以及在内容辅助中显示参数之前的注释。
  8. 内容辅助可以包含HTML标记。
  9. 数组必须命名为 Array。
  10. 数组必须具有一个带有一个定义元素类的参数的构造函数。
  11. 数组必须遵循基本实例的继承。 如果您的基类继承自Structure,则数组必须继承自StructureArray。
  12. 从StructureArray继承的数组可以作为JSON数组传递。

现在,所有好东西 会让您失望的一件事:"全局脚本编辑器"对话框是它作为参数和结果类型支持的类型的硬编码列表。 此外,它显示所有组件类型。 因此,使您的自定义类型出现在此列表中的唯一方法是在tribution.ztl中创建虚拟组件。 但是,这可能会使您的用户感到困惑,因为虚拟组件也会出现在面板中,但在添加到应用程序时将不起作用。

问候,

Reiner。

一周热门 更多>