应用实例_S4HCInAppExtensibility应用实例(1)

92215322ccfbd9db75e23274487b3f8c.png

作者:Jeric Wang

声明:本文章仅用于SAP软件的应用、学习沟通,不代表SAP公司;文中所示截图来源SAP软件,相应著作权归SAP所有。 

Tips:官方建议S4HC系统使用Chrom谷歌浏览器。此文章基于2005版本撰写,后期更新后的版本可能有所变动。由于产品的语言兼容性,文章中会经常出现中英文混合使用的情况,忘见谅! 岸上学不好游泳,嘴里说不出庄稼,上期文章简述了S4HC中的开发模式,内容比较抽象,后面会以实例场景加以应用和实践,毕竟,毛主席同志也说过,实践是检验真理的唯一标准! 实例(1):采购订单中如何增加供应商的银行账号等字段信息? 顾名思义,简化逻辑,首先需要增加自定义字段,其次需要我们在创建采购订单的时候根据采购订单的供应商代码关联带出其银行账号相关信息,所以我们只需要用到自定义字段以及自定义逻辑这两个功能,都在一个APP中“自定义字段和逻辑”。 faf40449b1c696ab54f7ffc265a93081.png 选择业务上下文“采购:采购凭证”(这个需要经验和多测试,目前没有发现行之有效的快速的定位办法),文本类型字段,长度20位,用来放入银行账号,需要注意的是每一个业务上下文都有其自身的扩展容量。 2b5c016a582a92d00e2d3f111c62a7c8.png 进入该自定义字段详细配置界面,上方抬头处“基本信息”、“UI和报表”等视图主要功能在于对启用或者禁止的功能的分类,下面会逐一介绍。首先我们看“基本信息”视图,右边“翻译”可以为多种系统语言设置该自定义字段的语言文本,当系统语言处于某个语言时系统将会自动翻译。 171cc34e82c4e2bfaf240b2be452d42b.png “翻译”界面进来首先要选择右上角的语言,例如我们的项目是中英双语项目,那么除了中文,我还需要选择英文状态并填充下其文本内容,然后返回即可,该界面没有保存按钮。 b0889e51b1505c3a9d48c76256d82a87.png 继续,“UI和报表”中显示了一系列UI界面(可理解为对应到每一个APP的操作界面)和报表,这一步的意义在于,我们所创建的自定义字段,需要被应用在哪些报表中,哪些APP的操作界面中,该实例需要我们将“供应商银行账号”加到“显示采购订单(高级)”APP界面中。 1a6aaaa26c937fd08f4ff3df9415a2ce.png 找到“采购订单 GUI 应用程序”这一项,并启用。该自定义字段创建后系统会默认将某些报表或者UI界面亦或者后面涉及到的表单模板等启用,我们可根据实际情况继续启用其他内容。 由于该实例不需要启用其他相关内容,而且其他几个视图的步骤都差不多,简述每个视图作用: “电子邮件模板”、“表单模板”:系统发送某些如催款等的信函,或这打印单据时,若需要显示自定义字段,在此处两个地方启用。 “业务场景”:自定义逻辑涉及的业务上下文,Cloud版本的增强中输出字段局限于系统给出的几个字段,如果想新增字段,可在此视图启用相关业务上下文。  “OData API”、“SOAP API”、“BAPI”、“IDOC”:接口相关,如果想在接口中使用自定义字段,则需要在这四个里启用。 b3248a30920c74b30751cc37382ec90d.png 然后,耐心等待发布…… 4d7d04ec83569a7f575767c76abf3acd.png 接下来我们给该字段做一个增强,创建自定义逻辑,业务上下文决定了该增强点位置和可以输出和输入的字段。 e9e5d019185bfa2275799dd2f047e3d6.png 上面几个表结构代表该业务上下文中可使用和测试的输入字段。 1bd7d464f5db8b95ef6facf9723183fc.png 下面代表输出字段,即我们增强结果存放的位置,如果这里缺少我们的字段,将很难进行增强,例如财务中对会计科目的增强极为困难,原因就是目前系统各个业务上下文标准的输出字段中并没有“总账科目”这个字段。 0871106953b6222242d77df3208b8110.png 下面思考代码的逻辑,我们在建立采购订单的时候有供应商编码即业务伙伴,以业务伙伴作为关联条件左连接取银行表中的银行账号,那么我们就需要找到银行表,在APP“自定义视图”中搜索“银行明细的核心视图”。 0695259216774e5e7aa68c8ae6f2ed79.png 找到这张CDS VIEW后,为了保证表中的数据内容是我们想要的,我们可点击右下角“预览”,可预览该表的内容。 b4077d9faf4cc7cdc2072f7d01ac669c.png 右上角的“限制”代表一次性显示多少条数据,现在已经可以显示最大数量,想起以前那悲催的时代,这里只能最多显示100条数据……但是现在还是没法在这个界面做过滤条件,希望后续版本能在这增加过滤条件就完美了,那么如果我们想要看一个CDS VIEW中的所有数据并且按过滤条件查看,只有两种方法,一种做成Query,一种做成OData接口用Excel或者Postman查询,推荐Excel,具体操作不在本期涉及。 可以看到第二条数据是我接下来要用的供应商主数据里的银行账号。 595e45a18b9425a8a7def5a6f4f5f9a4.png 接下来写代码,好像之前大学那会儿学的Oracle数据库和ABAP知识派上了点用场了??(依稀记得当时打了一晚上的小抄Select * From * Where* ……不得不说以后复合型人才的重要性,集业务和开发于一身的人才在企业会更收欢迎,ABAP还是得学起来)。 69f3a0764c8f67b93e71f4535ea5e115.png Cloud中很多写代码的地方都有示例的,一般有数据结构和基础语句知识的都可以看懂,照猫画老虎就行了,对了,上面的代码比较简单,没有加任何限制条件,一般项目中都要加条件的,例如对公司代码进行限制,考虑项目扩展性。 然后我们下面我们进行测试,首先我们在上面的结构化参数Purchaseorder中输入供应商,这个供应商就是我们之后要创建采购订单的供应商,为什么我们要输入供应商测试,就是因为我们整个逻辑的关联条件就是供应商,我们的采购订单和银行账号的关联条件就是供应商。然后保存草稿,右下角点击测试逻辑。 c0631ae356eddbba2df0193ffb767850.png 发现下面的银行账号已经被带出,带出的数据正是上文中的银行表“I_BusinessPartnerBank”中的“银行账户”,测试成功,然后发布逻辑,我们去创建一张实际的采购订单在进行一次测试。 0a1a9c363c6371a92ecb6e7be7aebb37.png 进入APP“创建采购订单(高级)”,输入“供应商”,回车,看“自定义字段”中的“供应商银行账号”字段,成功带出银行账号,测试结束。 该实例结束,举一反三,我们可以在采购订单上添加更多自定义字段来拉出任何我们需要的信息,再者,我们可以在其他任何单据上添加任何自定义字段来拉出任何我们需要的信息,都可以用该方法解决,虽然替代功能被削弱了,但是我们可以加字段然后替代到自定义字段里,但是需要注意的是该自定义字段涉及的 报表、接口、业务场景等该启用的都需要考虑全面,要考虑到可扩展性,就像搭积木一样,不然有可能会出现以后的某一个需求需要用到这个自定义字段,但相关业务场景却无法启用的尴尬境况…… 2ac3bf2196203bf727169485b0b5db7d.png
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值