采购订单抬头及行项目增强字段配置(超详细)

听说有一个开发小哥哥想XXX我的XXX,我要卷死他,哈哈哈哈哈

多学多用,不会开发的业务顾问不是一个好顽主

和大家共同学习,仅此记录,酌情参考。

本次主要介绍使用 User-Exit 的方式实现采购订单的屏幕增强。 涉及的用户出口是 MM06E005,本次案例的需求就是在 ME21N、ME22N 和 ME23N 的抬头和 项目上添加 SCM 状态字段。

1、SE11: 创建域  ZZSCM_STATUS_YSS

采购订单抬头及行项目增强字段配置(超详细)插图

 采购订单抬头及行项目增强字段配置(超详细)插图1

 下面这个就是采购订单抬头& 行项目的 字段枚举值采购订单抬头及行项目增强字段配置(超详细)插图2

 2、创建 数据类型:ZZSCM_STATUS_YSS_SJLX

【注】:数据类型和域的名字可是一致的,这里我做个区分,所以分开来标注

采购订单抬头及行项目增强字段配置(超详细)插图3

采购订单抬头及行项目增强字段配置(超详细)插图4 把域关键进属于类型中:

采购订单抬头及行项目增强字段配置(超详细)插图5  采购订单抬头及行项目增强字段配置(超详细)插图6

 3、CMOD  创建 增强项目

 

采购订单抬头及行项目增强字段配置(超详细)插图7采购订单抬头及行项目增强字段配置(超详细)插图8

采购订单抬头及行项目增强字段配置(超详细)插图9 

采购订单抬头及行项目增强字段配置(超详细)插图10 

采购订单抬头及行项目增强字段配置(超详细)插图11 

在结构 CI_EKKODB 和 CI_EKPODB 中添加 ZZSCM_STATUS_YSS_SJLX 字段

结构 CI_EKKODB 和 CI_EKPODB 是 MM06E005 中预留的两个字段接口,

我们只需将想要 添加的自定义字段添加到这两个结构中就可以了,

不过要注意,自定义的字段要以 ZZ 开 头。

结构 CI_EKKODB 和 CI_EKPODB 如果不存在,需要自己创建。如果已经存在就修改。 

双击:

采购订单抬头及行项目增强字段配置(超详细)插图12

采购订单抬头及行项目增强字段配置(超详细)插图13 用同样的方式,在 CI_EKPODB 中添加 ZZSCM_STATUS_YSS_SJLX 字段

采购订单抬头及行项目增强字段配置(超详细)插图14

采购订单抬头及行项目增强字段配置(超详细)插图15 

在屏幕 101 和 111 上添加自定义字段 屏幕 101 和 111 是增强预留的屏幕,

101 是采购订单抬头的增强屏幕,111 是 采购订单 行项目的增强屏幕 

采购订单抬头及行项目增强字段配置(超详细)插图16

采购订单抬头及行项目增强字段配置(超详细)插图17 

进入如下视图:

先拖拽一个TEXT

采购订单抬头及行项目增强字段配置(超详细)插图18 

 再双击它,调整一下格式采购订单抬头及行项目增强字段配置(超详细)插图19

 采购订单抬头及行项目增强字段配置(超详细)插图20

最后保存 —-激活—–测试

采购订单抬头及行项目增强字段配置(超详细)插图21  完美呈现采购订单抬头及行项目增强字段配置(超详细)插图22

 

 如法炮制 行项目: EKPO

采购订单抬头及行项目增强字段配置(超详细)插图23

 

进入下一部分:大招来了

CMOD  激活增强   看看效果

采购订单抬头及行项目增强字段配置(超详细)插图24

 ME21N进去看:采购订单抬头及行项目增强字段配置(超详细)插图25采购订单抬头及行项目增强字段配置(超详细)插图26

 

 【注】但是到这一步,虽然字段做了出来,但是还没有数据能够保存进数据库,因为没有代码逻辑,因此,我们需要增加代码逻辑,让数据保存进数据库

首先:我们先介绍一下Function

采购订单抬头及行项目增强字段配置(超详细)插图27

然后我们取消激活,继续调整:

采购订单抬头及行项目增强字段配置(超详细)插图28 

采购订单抬头及行项目增强字段配置(超详细)插图29 

采购订单抬头及行项目增强字段配置(超详细)插图30 

采购订单抬头及行项目增强字段配置(超详细)插图31 

采购订单抬头及行项目增强字段配置(超详细)插图32 

采购订单抬头及行项目增强字段配置(超详细)插图33 

采购订单抬头及行项目增强字段配置(超详细)插图34 

添加如下代码:

DATA: ekko LIKE ekko, ” Header

ekpo LIKE ekpo, ” Item

aktyp TYPE c, ” A=display, V=change, H=create

no_screen TYPE c. ” do not display 

采购订单抬头及行项目增强字段配置(超详细)插图35

 

采购订单抬头及行项目增强字段配置(超详细)插图36

采购订单抬头及行项目增强字段配置(超详细)插图37 

 插入如下代码:

 no_screen = i_no_screen.

ekko = i_ekko.

ekko_ci = i_ci_ekko.

aktyp = i_trtyp.

 采购订单抬头及行项目增强字段配置(超详细)插图38

 以此往下:采购订单抬头及行项目增强字段配置(超详细)插图39

 采购订单抬头及行项目增强字段配置(超详细)插图40

 在 Include 中添加代码

IF NOT e_ci_ekko = ekko_ci AND aktyp NE ‘A’.

e_ci_ekko = ekko_ci.

e_ci_update = ‘X’.

ENDIF.

采购订单抬头及行项目增强字段配置(超详细)插图41

 继续依次:

采购订单抬头及行项目增强字段配置(超详细)插图42

采购订单抬头及行项目增强字段配置(超详细)插图43 

在 Include 中添加代码

no_screen = i_no_screen.

ekko = i_ekko.

ekpo = i_ekpo.

ekpo_ci = i_ci_ekpo.

aktyp = i_aktyp. 

采购订单抬头及行项目增强字段配置(超详细)插图44

 依次进行:

采购订单抬头及行项目增强字段配置(超详细)插图45

采购订单抬头及行项目增强字段配置(超详细)插图46 

添加代码:

IF NOT e_ci_ekpo = ekpo_ci AND aktyp NE ‘A’.

e_ci_ekpo = ekpo_ci.

e_ci_update = ‘X’.

ENDIF. 

采购订单抬头及行项目增强字段配置(超详细)插图47

 

下一步:

采购订单抬头及行项目增强字段配置(超详细)插图48

采购订单抬头及行项目增强字段配置(超详细)插图49 

采购订单抬头及行项目增强字段配置(超详细)插图50 

采购订单抬头及行项目增强字段配置(超详细)插图51 

采购订单抬头及行项目增强字段配置(超详细)插图52 

采购订单抬头及行项目增强字段配置(超详细)插图53 添加代码:

IF aktyp = ‘A’.”作用是在显示采购订单时,将我们自己添加的自定义字段设置为无法 编辑,只能显示

LOOP AT SCREEN. screen-input = 0.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

采购订单抬头及行项目增强字段配置(超详细)插图54 

 采购订单抬头及行项目增强字段配置(超详细)插图55

再搞定行项目:

采购订单抬头及行项目增强字段配置(超详细)插图56 

采购订单抬头及行项目增强字段配置(超详细)插图57 同样添加代码:

IF aktyp = ‘A’.”作用是在显示采购订单时,将我们自己添加的自定义字段设置为无法 编辑,只能显示

LOOP AT SCREEN.

screen-input = 0.

MODIFY SCREEN.

ENDLOOP.

ENDIF.

采购订单抬头及行项目增强字段配置(超详细)插图58 

 采购订单抬头及行项目增强字段配置(超详细)插图59

 至此—–全部开发完毕

下面看一下效果:

采购订单抬头及行项目增强字段配置(超详细)插图60

 采购订单抬头及行项目增强字段配置(超详细)插图61

创建一个采购订单并保存:

采购订单抬头及行项目增强字段配置(超详细)插图62 

 数据已经保存:

采购订单抬头及行项目增强字段配置(超详细)插图63

 然后我们做个ME22N的修改:采购订单抬头及行项目增强字段配置(超详细)插图64

 再看数据表更新:

采购订单抬头及行项目增强字段配置(超详细)插图65

 就会到这里了,多的不会了。

写错的地方酌情参考。

屏幕有个地方没激活,激活一下就好了,不做修正了。

标签