文客中文

字:
关灯 护眼
文客中文 > 凡人码农加SAP加XR征服世界 > 第42章 结丹第6层

第42章 结丹第6层

    发^.^新^.^地^.^址 wWwLtXSFb…℃〇M发布页LtXsfB点¢○㎡


    张伟磨刀霍霍,带着10个大杀器,就攻入了BAPI的腹地,开始了正式的探宝!


    进入BAPI界面后,张伟开始了剖析,界面有两种查找BAPI的方式,一种是层级菜单模式,一种是关键字模式,张伟准备了10个探索的诱饵,直接奔着关键字模式就去了!


    首先是主数据,按照关键字往下,没滑动多少,就找到了“Customer”客户主数据!毕竟是字母C开头!


    进去后,张伟发现,点开后,下拉很多具体的BAPI,有“create、edit、change、delete.......”等等,拉下来有几十个BAPI!


    目光移到了右边,张伟发现了熟悉的身影“KNA1”,非常好,自己写报表用过无数次的客户主数据的表,但是在这里这个“KNA1”的抬头名变了,变成了“object type”对象类型?


    什么鬼!为什么不叫table名了?叫“object type”这是几个意思?object,对象,面相对象?


    张伟想起,结出实心蓝丹时,对程序语言进行了分代,第一代面向机器如汇编语言,第二代面向过程如C语言,第三代面向对象如Java语言,第四代面向应用如张伟现在做SAP的ABAP语言,当然后面张伟对第四代又进行了细化,第四代,应该是面向特定方向的应用,张伟现在这个ABAP语言,就只能在SAP里使用,只能编辑SAP的程序,不能编辑其他需求的程序,因此应用起来很窄,但是封装非常的完善,基本上把ERP这个领域的常规处理逻辑都封装好了,直接使用即可!因此第四代会有很多种面向最终应用的语言,比如面向动画的、面向工程的......只在自己领域使用的编程语言!


    而张伟结出的SAP实心蓝丹,是没有第三层面向对象程序层的,从C语言层,直接就到了ABAP层!当时张伟是有点想不通的!觉得这和自己划分的4代编程语言,有冲突,中间少了一层!


    当时想如果中间加一层面向对象层,可是ABAP又不是面向对象,张伟编程时明显没有感受到,面向对象的程序思维习惯!ABAP给张伟的感觉就是简单,比Java,C#等这些正统的面向对象编程语言来说,就太简单了,而且编程效率很高,基本就是直接面向最终用户需求去的!因此张伟就把当时结出的SAP蓝丹直接把第三层定义成了ABAP程序层!


    可是现在打算结第六层丹时,居然跳出了这么一个“object”的玩意,张伟就有点懵圈了!而且跳出的这个还是对“KNA1”客户主数据表!


    难道是把KNA1看做一个对象,进行BAPI编程?


    张伟诞生了这个想法,异常的兴奋,可能第六层一开局就封层结丹了,同时好像觉得很合理,那么需要验证下了!


    张伟手上准备的大杀器,探路诱饵还有很多,现在才用了一个“客户主数据”甚至都还没用完,就有收获了,现在需要抛出第二枚、第三枚诱饵了!


    张伟很是兴奋啊,可以抛诱饵,代表鱼儿已经上钩了啊!可以往前猛攻了!


    丢第二个探路诱饵“vendor”供应商主数据,V首字母排在最后,张伟基本上拉到了底部才找到!


    张伟迫不及待的点开,心中默念这“LFA1”,这是供应商主数据的表,点击后迅速看向了右边的信息栏!


    我靠!果然!熟悉的“LFA1”表出现在眼前,NND多么熟悉的表!LFA1自己在当时的报表编写中使用了无数次,对这个表简直是如数家珍!


    现在他在自己期待的位置,“object type”的后面就是“LFA1”.


    该放第三个探路诱饵“Material:物料主数据”了,张伟期待的点开了这个菜单,心中无比笃定,出现那个意料之中的,熟悉表名“MARA”自己写报表,用过无数次的物料主数据表!


    当点开这个界面时,张伟石化了!不是期待中的“MARA”而是一个完全陌生的“Object type:BUS1001”!


    我靠什么情况!上面明明标注的对象名是“Material”为什么对象类型不是“MARA”?


    张伟有点丈二和尚摸不着头脑了!懵叉叉了!


    张伟马上又抛出了,剩下的诱饵!都是那种不认识的,不熟悉的对象类型名!


    张伟有点晕晃晃的了,难道前面两个自己眼花了!看错了!


    于是张伟又去看了客户、供应商主数据,没有变啊!就是那两个表“KAN1和LFA1”没有错啊!


    那为什么只有这两个,而其他的都不是了?张伟陷入了困惑!难道自己的推导逻辑错了么吗?张伟有点自我怀疑了!


    张伟想,ABAP语言跨越了一个程序语言分代,那么中间肯定需要在某个地方补齐的,现在自己差不多找到了这个分代的补齐地方了!


    那为什么,前面两个是自己认为正确的面向对象逻辑思维,设定的对象!


    而后面这些都不是了?这是为什么啊!


    但是他们的对象名,都是对的!物料的对象名“Material”,采购订单的对象名“PurchaseOrder”....,但是他们的对象类型,为什么不是对应的数据表名了?


    NND!这是什么情况!张伟有点抓狂了!


    对象名是和自己面向对象的认知匹配的!可是对象类型不是啊!


    fuck!哪里出错了!哪里有问题?张伟想抓耳挠腮!办公室的环境有点不允许!


    NND,厕所,放点水去!换换脑子!


    回来后,张伟心情有点平复了!


    张伟不知道哪根筋搭错了,双击了下对象名!


    我靠!暗门!居然有暗门!


    跳出新的内容了!新大陆!


    NND还有暗门啊!这宝藏设计的也够精巧的!


    哈哈!张伟有种柳暗花明的感觉啊!


    点进去后,映入眼帘的是“Business object:BUS2012 Purchase Order”!名字变了!变成了商业对象!或者叫业务对象,更加的贴切!


    张伟现在这个对英文的翻译能力,练出来了,不过仅仅只针对这种,SAP专业的词汇翻译!而且是单词模式,不是那种整句整句的!


    “业务对象”!妥了,这个命名妥了!对啊就应该叫业务对象!采购订单,就是一种业务形态的单体啊!也就是一种业务对象啊!如果用表反而不对,因为采购订单,有两个表,一个单头,一个单身!用表反而不对,用业务对象反而是对的!


    但是,至少有“EKKO”这个实体的表数据对象存在吧,找找看?


    张伟往下看,还有5个下拉菜单,都是合起来的,其中有一个“Key fields”关键字段!这不就是表么!


    张伟兴奋的点开!我嘞个去!妥了!


    “EKKO”!心心念念,梦寐以求,朝思梦想.......,张伟把所有能想到,思念一个人的词语都想了一遍!对着这个EKKO在心里默念了一通!


    NND!妥了!


    张伟这才仔细看了下另外4个菜单内容,更加妥了!就是面向对象的思维啊!


    他们是“Interfaces:接口,Attributes:属性,Methods:方法,Events:事件”!


    NND妥妥的面向对象设计思路啊!


    张伟发现与采购订单处理相关的,所有BAPI都在Methods:方法里!


    张伟立马查看了自己准备的其他几个诱饵!


    NND!


    妥了,都是这样的结构!包括最开始的供货商、客户主数据,也是一样!


    张伟觉得,这个“Business object:业务对象”的取名,简直是太贴切了!客户、供应商主数据为什么直接用数据表名来当业务类型名,估计是太简单了,直接就用表名了!而其他为什么不用?因为复杂了啊!业务对象需要涵盖太多的对象实体,直接用表名实体,估计涵盖不住吧!或者干脆就是那个程序当时懒!搞个简单的名字!


    哈哈!张伟觉得懒这个解释是正解!基于奥卡姆剃刀推导而来的结论!


    张伟为什么特别在意这个表,和对象的关联啊?以及这个Business object:业务对象取名觉得很贴切啊!


    张伟推导的SAP结丹,是层状的,其次是网状的!


    现在张伟结出的第5层,是数据表,第五层和第四层的字段是链接的,第五层表间也是链接的,其实表间的链接张伟是基于自己写报表推导出来的,而没找到实例佐证,现在还差向上第六层和表的联系了!


    现在妥了了!因为业务对象啊“Business object:业务对象”,比如采购订单,有两个实体表“EKKO,EKPO”,而客户主数据,一个表就行“KNA1”,因此对采购订单这种,有多个实体对象的,如果从业务对象的角度,就不能只用一个表名,来定义对象类型了!就得重新命名了!


    以采购订单为例,EKKO,EKPO,这两个实体表,组合成了一个业务实体,采购订单,也就是业务对象!


    这才是,当时自己为什么只找到供应商,客户的业务对象类型,就是表名,其他的都是被重新定义了业务类型名的真正原因!


    同时这也是第六层真正的联系!


    每个业务对象,包裹了一个,或者几个实体的表!表和业务对象,在BAPI里,基于业务逻辑融合在一起了!也就是表间关系,其实是被BAPI定义的,张伟之前认为表和表之间有联系,仅仅是从结果来考虑的,因为报表取数需要他们联系在一起,才能取到正确的报表数据!


    而为什么要联系,怎么联系的,张伟是不知道的!现在都知道了,因为是由BAPI帮他们联系起来的啊!


    第六层结丹,正式完成了!


    第五层是表,第六层是BAPI层!或者叫业务对象层!一个业务对象,有很多个BAPI!每个BAPI,定义了表间的关系!


    第五层从此和第六层贯通了!


    张伟把SAP的结丹道统,推向了第6层!结出了拥有1.2.3.4.5.6层的实心SAP蓝丹!
『加入书签,方便阅读』
内容有问题?点击>>>邮件反馈
热门推荐
无限轮回,我用刀斩破诸天万界 诸天从心录 刀光枪影啸武林 魔境主宰 民调局异闻录之勉传 徒弟,你无敌了,下山找师姐去吧