内容字号:默认大号超大号

段落设置:段首缩进取消段首缩进

字体设置:切换到微软雅黑切换到宋体

网站建设_阿里云邮箱_速度快

2021-07-23 05:26 出处:欧普曼云计算 人气: 评论(0

又来了,你去哪了??!?!!哦,等等……这应该是我的问题!(哈哈)对不起……最近有点忙,但最近这里有点"空闲"时间(全世界似乎都有),我想我会再写一次博客。这一次,我想我终于可以讨论一个话题了,这个话题可能是多年来HCM流程和表单中出现最多的一个……我们如何访问评论(aka)。注释)放进表格里?!?!?!?好吧,物联,有多种方法取决于你到底需要做什么,我希望在这里涵盖这些。快来,让我们重新认识一下!

注意事项?评论?什么???

首先,让我们在这里打下一些基础。我们所说的是"当前"和"以前"notes字段,它们可用于每个表单,并在运行时由HCM P&F框架本身为我们自动神奇地创建。这些通常也被称为"用户评论"。这些"注释"实际上并不存储在任何infotype字段中,也不存储在案例管理中作为流程数据的一部分之外的任何地方。技术字段名称实际上是:

hrar\u CURRENT\u NOTEhrar_PREVIOUS_NOTES

该框架为我们处理一切……创建字段、读取和更新这些字段,并将它们作为过程对象数据的一部分存储在案例管理中。然而,出于某种原因,在SAP显而易见的无限智慧中,他们从不以任何简单的方式将这些信息"暴露"给我们,以满足我们自己的需要(例如,验证用户是否输入了评论)。让我们看看出现的几个场景以及如何处理它们。

事后阅读说明

考虑流程发起人提交了一个表单,并且我们分配了一个流程参考号。我们可能需要阅读自定义工作流任务中的注释、显示自定义报表中的注释或其他任何内容。

对于使用流程参考号阅读注释,我们可以获得流程的"实例",然后使用guid轻松遍历表单场景和场景步骤来定位注释。

下面是我制作的一个自定义类的几个示例方法,

通过流程参考号来查找注释,

并作为额外的特别奖励,让大家都注意到,我们可以使用上面相同的方法,然后按用户过滤(您能猜出该方法的附加导入参数吗?哈哈),

事后写笔记

与使用流程参考号阅读笔记类似,我们也可以使用GUIDs向下遍历,只需一点点额外的工作就可以写入笔记。

在这个示例代码中,我们传递了要在最后一步中为其添加注释的流程参考号。在这个特殊用法中,我为"positioncreate"创建了一个过程,它实际上一次创建多个职位。在创建位置时,我将捕获它们的位置ID并将其连接到一个名为"resultstring"的变量中。与流程参考号一起,我将把这个"resultstring"传递给一个方法(在自定义后台工作流任务中调用),然后将其自身附加到最新的注释(即批准创建职位的最后一个处理者的最后一个注释)。

在运行时检查/读取/验证注释

到目前为止,这是出现最多。例如,我们要验证流程发起人(启动整个流程的人)是否输入了注释。如果我们将"PROCESS\u REFERENCE\u NUMBER"添加到表单字段中,框架将为我们填充它的值,因为它是一个保留的字段名(即,它总是由框架创建的)。我们可以检查自定义通用服务中的值,并将其显示在表单上。然后常识会告诉我们只需显式地将notes字段添加到表单字段中,然后viola……同样的事情也会发生……错误!这就是所发生的….

但是,嘿,我们学会了如何通过上面的过程对象来读取它,对吗?糟糕的是,我们还没有一个实际的流程(表或案例管理中没有),这也意味着我们没有分配流程参考号(所以上面的例子在这里是无用的!)。有一个很好的接口,如果你是hrar00\upbj\u NOTE,它有非常好的方法来读取和写入notes(我们在上面使用过!),但同样,我们现在没有一个过程对象。

多年来,我不得不通过几种方法来实现这一点。奇怪的是,对于Adobe表单,"变通方法"很简单。FPM表格?没那么多。这些年来,我用了很多不同的方法,大多数都是"丑陋"或"粗俗"的方式来分享……是的,我会为其中的"笨拙"感到尴尬。(哈哈)我等SAP是为了让它更简单……但如果我一直等下去,我最终会变成"还在等"骨架的真实模因。我最终找到了一种FPM表单的方法,智慧农业物联网系统,我想即使是马修·比林汉也会赞同这种方法(他很强硬!)。

"它不漂亮,但确实有用"……这是我的第一辆车,也是这个"解决方案"。通过利用客户端用于Adobe交互表单的Javascript和我们流程配置中的"标志"字段,我们可以实现我们的需要。

在Adobe表单布局中,对于我们的"当前评论"字段,我们将数据绑定设置为:

$record.HRASR\u当前注释.DATA[*].FIELD

那么对于"exit"字段的事件,我们有Javascript,

这将设置我们的"flag"字段(隐藏在表单布局上)。

在我们的定制通用服务中,我们只需检查"flag"字段即可验证用户是否输入了注释。(不是我的密码!哈哈)

"这就是事情变得怪异和丑陋的地方"……这描述了我在网上约会的经历,也描述了这种"解决方案"最终成为一件事情的方式。对于FPM表单,我们没有奢侈(和头痛?)客户端Javascript。必须找到"ABAP-y"的东西。有趣的是,SAP为我们提供了"壮观的"类CL\U HRAR00\U PROCESS\U EXECUTE,它真正打开了HCM P&F的世界……这使得我们几乎可以从任何地方和任何前端启动任何流程(或流程的工作流工作项),比购返利,无论我们如何公开该类(例如,通过web服务或网关)服务或任何你喜欢的)。那个班做各种各样的事情。它甚至可以让我们阅读和添加附件!但它不做笔记。什么?!??!但是,我们可以解决这个问题。

notes字段保存在私有类属性表MT\u SPECIAL\u DATA中。私底下,我们没办法"得逞"。如何访问类的私有属性?嗯。(这就是Matthew Billingham和other的"最佳实践"建议的来源。)有一种"黑客"或"骗子"的方法,通过创建一个自定义的子类,将CL\u hrar00\u PROCESS\u作为超类执行,然后在我们的子类中创建一个公开"父类"私有信息的公共方法……一般来说,父类不会倾向于喜欢他们的孩子那样做。有一个更好的方法…..简单地利用增强框架。

(*警告:请记住,如果开发人员…甚至SAP…选择在类中保持私有/受保护,通常有一个很好的理由。尽管如此,当你选择改变的时候要小心。在我们的例子中,"读"是相当安全的。我不会为了"写"而这样做,除非是绝对必要的,并且在深入研究了风险之后。)

第一步是增强标准接口,如果执行hrar00进程来创建我们的新自定义方法。

我们添加了方法GETCOMMENTS字段。

我们添加了导出参数来发回注释。

分享给小伙伴们:
本文标签: 网站建设阿里邮箱速度快

相关文章

评论

发表评论愿您的每句评论,都能给大家的生活添色彩,带来共鸣,带来思索,带来快乐。

签名: 验证码: 点击我更换图片

评论列表