大家好,数据更新,
我的一位同事鼓励我分享这个方法,我终于有时间"写"(从我自己的内部文档复制)这个博客。在我以前的文档/博客中,我分享了这个想法/方法和一些代码片段,但不是每一个编码片段。所以,开始吧。阅读愉快!
关于本博客
本博客将展示一种方法,以保护最终用户/旅行者在WDA应用程序中的WDYN FITE\U VC\U收据中更改支付的收据。WDYN FITE\U收据未由计划子模块(FI-TV-PL)或信用卡清算(CCC)导入,而是由高级用户手动输入后端通过PR05或其他方式。此外,它同时防止最终用户/旅行者自己创建付费收据。所有这些都是通过相当"整洁"(你自己判断)的UI操作和一些通用代码片段来实现的,因此它非常直接,没有深入研究标准,数据分析,i、 e.打破东西的可能性非常低。
感谢Michael Zwickl,我在DSAG论坛上与他讨论了我的初始问题,他引导我朝着正确的方向实施了一个解决方案。
技术环境
NW AS 7.03 ABAP Stack 731 Level 13,ECC 606(EHP 6)与SAP\U HR 604 81级和EA\U HR 607(HR续费1)32级
特别是,博客涉及以下对象:
功能环境
我们已经使用FI-TV(请求和费用索赔),包括FI-TV-PL和CCC已经有相当一段时间了。在我们的流程周期内,公司自然会支付某些费用(部分提前到实际行程),其技术后果是收据"已由公司支付",即V_T706B1字段PTKXX-CTRLREC=2。例如:
这些收据是在FI、PY和CCC中用于旅行费用的整体计算和进一步处理所需的,但是它们不会对旅行者进行任何报销。
功能要求
在我公司,旅行者必须满足以下收据维护要求:
SAP标准中的设计缺陷(以我的拙见)
我将要描述的定制开发只是因为WDYN FITE\U VC\U收据的一个令人不安的技术行为而产生的。通常可以通过几种不同的方式限制费用类型(即收据类型)下拉框的值。因此,在查看需求时想到的第一个想法是"从值帮助中删除那些费用类型"。不幸的是,这是不可能的,因为在wdynvc中发布的每个接收都是根据这个下拉框的上下文表进行验证的。是的,你听得对:所有的收据,包括那些来自FI-TV-PL和CCC的收据都有相同的命运。
这意味着,如果你从价值帮助中删除了付费收据,它们就不能再在Webdynpro UI中使用了。更"有趣"的是,当从CCC缓冲区导入费用类型从用户下拉框中排除的付费收据时,收据会损坏并阻止FPM导航的所有方式。最重要的是,最终用户无法纠正损坏的收据,因为它是受保护的只读收据。所有这些都是SAP标准。
在随后问自己"如何限制价值帮助而不将整个应用程序炸成碎片?"你可能会这样:
原谅最终用户,因为他们不知道自己在做什么
因为在我创建自定义开发之前,我们就开始使用FI-TV,所以问题仍然存在。作为一种解决方法,我们以编辑的方式解决了这个问题。即使这样,最终用户的以下角色也进入了这个阶段:
角色1:无意中删除东西的人
"这些收据从哪里来?该死,现在我把它们删除了。哦,好吧,如果他们不应该被删除,那么我就不能这么做。"
人物2:故意删除东西的人
这些荒谬的收据是什么?去吧!"
人物角色3:一个不小心创建了付费收据而不是"正常"收据的人
"我的报销在哪里?!"
第四个角色:厌恶新系统并希望看到它被烧毁的人
"让我们稍微改变一下收据的金额,让开发者搜索系统中的错误……"
在看到编辑方法不现实之后,我们继续截获所有带付费收据的旅行,以便在批准和随后的结算之前进行人工审核。然而,由于这也意味着人工工作量的增加,这只能被视为一个临时的解决办法。
解决办法
直截了当地说:我试图做的第一件事是使所有付费收据都只读,无论其来源如何。为此,我使用了BAdI"TRIP\u WEB\u CHECK",并实现了一点通用编码,在字段控件中搜索"INPUT"——用于确定收据是否为只读的字段。有了这个,我希望即使SAP引入了新的字段,只要它们遵守命名约定,我也不必再碰这个了。用于此操作的方法有IF\u EX\u TRIP\u WEB\u CHECK~ USER\u CHECK\u LINE\u OF \u RECEIPTS和IF\u EX\u TRIP\u WEB\u CHECK~ USER\u CHECK\u RECEIPTS。请注意,必须不可避免地使用这两种方法,淘客app源码,因为"收据行"仅在视图和向下/向上FPM导航的每个操作和/或往返时执行,而"检查收据"仅在向前/向后FPM导航时执行。一、 e.尽管最初看起来同时使用这两种方法是多余的,企业应用开发平台,但实际上并非如此。
这还不够,因为最终用户仍然可以自己创建新的付费收据,并使用WDA操作,这些操作不受收据标题的字段控制的影响。因此,我在FITE\u VC\u收据中创建了一个增强功能。通过一些调整,我禁用了按钮(在选择已付款收据的情况下),并通过分别为ActionExpense类型选择方法创建出口,来阻止在下拉UI元素中选择已付款收据,OnAction选择查看收据视图的收据和WDDOMODIFYVIEW.