云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

美国服务器_上海网站制作建设_企业级

小七 141 0

美国服务器_上海网站制作建设_企业级

亲爱的各位,

您是否一直在想,什么时候您终于能够在DesignStudio的仪表盘上以一种体面的、可定制的方式免费发表评论?好吧,那一天就是今天!

在下面的部分中,如何租用服务器,我将展示我的新组件ConVista EasyComment,它是在GitHub上发布的开源组件,讨论后端集成、注释保存和加载以及所涉及的整体注释体系结构。

显然,要发表一些注释,你需要一个可以做到这一点的地方。我决定使用所见即所得(WYSIWYG)HTML编辑器。有几个图书馆提供这样的编辑器。我之所以选择CKEditor,是因为它有一个完善的API文档、一个合适的开发人员许可证以及从msword粘贴的能力。您还可以查看tinymce和Froala,仅举几个例子。

您可以通过实现自己的编辑器插件进行优雅的扩展。

图1演示仪表板

我的SDK组件ConVista EasyComment具有许多内置功能,如拼写检查、多语言支持、添加图像的能力,一个选项,以调整阅读方向和更多。这些功能由CKEditor库提供。

单击"保存"按钮时,"保存"按钮(工具栏右下角的图标)将其功能显示给DesignStudio SDK组件事件。您还可以使用脚本方法getHTMLString和setHTMLString在编辑器上提取/修改HTML内容。

您可以自定义要通过组件属性工具栏设置显示的工具栏。我使用了新的sdk1.6特性,它允许在贡献文件中放置复杂的对象。这样DesignStudio就会创建一个类似表格的输入窗口:

图2属性

您可以逐个激活/停用工具栏。对于包含"保存"按钮的文档部分,您甚至可以决定项目级别(但不能隐藏"保存"按钮;-)。让我们在除编辑之外的每一项上都加上false,看看我们得到了什么。

图3简化编辑器工具栏视图

如果您需要更细粒度的定制,您需要回复我或自己调整SDK组件的编码。现在让我们跳到有趣的部分。

首先,我将告诉您EasyComment组件所涵盖的前端部分,以及如何建模数据结构以存储我们的DesignStudio注释,然后再实际转到后端部分,向您展示实现您的个别解决方案的可能起点。

能够要真正持久化并成功加载特定DesignStudio对象的注释,您需要标识该对象本身以及它的过滤器状态。对于静态内容,这非常简单明了。我们可以将目标对象的技术名称作为键,并将HTML字符串与之一起保存在后端的一个表中。对于具有任意复杂过滤器可能性的动态内容(如图表),这可能是一项非常复杂的任务。

一些商业DesignStudio评论组件在SAP后端通过评估例如BEx查询状态来处理此主题,并从中学习对象状态。这样,他们就可以确定要加载的正确注释,或者用什么键来存储它。对于ABAP开发人员来说,为所有可能的DesignStudio数据源(如BEx查询、BW多维数据集、Universes、自定义SDK数据源、CSV文件和HANA视图)完成这项工作是一项相当长的任务。

我的方法不会涵盖所有类型的复杂场景,但它将尽可能简单,并在许多情况下完成工作。首先,我假设仅存储有限数量的特征值就足以成功识别组件(如DesignStudio图表、交叉表、KPI视图或记分卡)上的值细分。让我们区分两种情况:

所有静态内容都可以被其技术对象名称和它们所在的仪表板覆盖例如:

表1静态对象注释保存

现在在动态内容上。根据我的经验,许多需要对关键人物发布过程进行注释的案例,例如,只涉及有限数量的过滤器值。通常情况下,您可以避开会计基础、会计实体和关键日期(单个日期、日期范围等)。

表2动态对象注释保存

DesignStudio提供了许多脚本方法,这些方法已经提供了我们所需的内容:

var vars=DS_1.getVariables();

变量forEach(功能(元件,索引){

如果(元素输入){

DS\ U 1.getVariableValueExt(元素名称);

}

});

您可以使用SCN community SDK组件数组将这些值保存起来,以便以后使用ConVista EasyComment。

现在我们学习了如何检索键来标识数据集,我们准备将一些HTML字符串发送到后端。令人兴奋,不是吗!?让我给你一个简单的例子。

正如我之前告诉过你的,EasyComment组件提供了一个事件,当你点击编辑器上的save按钮时会触发。下面是一个演示应用程序的脚本:

//cache-bursting

var ccid=应用程序.getTickCount();

//retrieve an accounting entity

var bukrs=DROPDOWN_1.getSelectedValue();

//set http request method

me.setHttpMethod方法("职务");

me.setServerUrl(

"http://:/sap/bc/?bukrs="+bukrs+"&ccid="+ccid

);

//实际触发保存

me.saveHTMLOnServer文件();