需求:

采购合同类型是MK,采购组织是POSC,采购组PGC,标识:估计价格是空,总价有值0.00 - 9999999999.00 RMB

满足以上条件的时候需要审批该合同。

配置:

  spro->物料管理->采购->合同->合同下达的过程:

1.配置特性值:

基本数据页签:
状态:已发布
格式:数据类型
字符数:
值分配:
附加数据页签:
表名:CEKKO 字段名:BSART 合同类型
备注:如果没有字段,需要在结构CEKKO中增强

2.配置类:

基本数据页签:
状态:
相同分类:不要检查
特性:把设置的特性都填写进来

3.定义合同审批过程:

3.1:批准组 第一列填写批准组,第2列采购订单类将被批准的对象的类别
都是2,第三列填写设置的类名称,第四列名称

3.2:批准代码设置

3.3:发布标识:备注:第二列核发勾上说明审核完,可变性是6的话变化会再次触发审批,具体看帮助,第三列%值的更改变化范围

3.4:审批策略:

维护审批分类的条件值可用CL20N事物代码进去维护

审批种类是032

增强:审批有个增强点 smod 进去M06E0004

如果涉及到行项目的要计算一下赋值给增强的CEKKO.

备注:对于采购合同来说,SAP标准的策略是价格往高的改才会再次触发审批,而且新加时间区间的价格条件价格是不会再次触发审批的,但是我们可以做一个增强:

在函数:ME_REL_STRATEGIE_EKKO做一个隐士增强:

FUNCTION me_rel_strategie_ekko.
"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(1) Function Module ME_REL_STRATEGIE_EKKO, Start A
*$*$-Start: (1)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 1 ZCONTRACTOR_TRAIL_ENHANCEMENT. "active version
I_CHECK_ALWAYS = 'X'.
ENDENHANCEMENT.
*$*$-End: (1)---------------------------------------------------------------------------------$*$*
*"----------------------------------------------------------------------
*"*"Lokale Schnittstelle:
*" IMPORTING
*" VALUE(I_CEKKO_NEW) LIKE CEKKO STRUCTURE CEKKO
*" VALUE(I_CEKKO_OLD) LIKE CEKKO STRUCTURE CEKKO OPTIONAL
*" VALUE(I_FRGGR) LIKE EKKO-FRGGR OPTIONAL
*" VALUE(I_FRGST) LIKE EKKO-FRGSX OPTIONAL
*" VALUE(I_FRGZU) LIKE EKKO-FRGZU OPTIONAL
*" VALUE(I_FRGKZ) LIKE EKKO-FRGKE OPTIONAL
*" VALUE(I_FRGRL) LIKE EKKO-FRGRL OPTIONAL
*" VALUE(I_OUTPUT) OPTIONAL
*" VALUE(I_WKURS) LIKE EKKO-WKURS OPTIONAL
*" VALUE(I_WKURS_OLD) LIKE EKKO-WKURS OPTIONAL
*" VALUE(I_LPOT) OPTIONAL
*" VALUE(I_CHECK_ALWAYS) TYPE CHAR1 OPTIONAL
*" EXPORTING
*" VALUE(E_FRGGR) LIKE EKKO-FRGGR
*" VALUE(E_FRGST) LIKE EKKO-FRGSX
*" VALUE(E_FRGZU) LIKE EKKO-FRGZU
*" VALUE(E_FRGKZ) LIKE EKKO-FRGKE
*" VALUE(E_FRGRL) LIKE EKKO-FRGRL
*" VALUE(E_RESET)
*" CHANGING
*" REFERENCE(CH_RLWRT) TYPE RLWRT OPTIONAL
*" EXCEPTIONS
*" ERROR_MESSAGE
*"---------------------------------------------------------------------- MOVE i_cekko_new TO cekko.
MOVE i_cekko_old TO *cekko.
MOVE i_wkurs TO bwkurs.
MOVE i_wkurs_old TO bwkurs_old.
MOVE cekko-bedat TO bbedat.
CLEAR s_kzfae.
*- Falls alle Positionen gelöscht sind, ist Eink.Beleg nicht relevant -*
IF i_lpot NE space.
e_frgrl = space.
EXIT.
ENDIF.
*- Prüfen Reset --------------------------------------------------------
CLEAR xchange.
IF NOT *cekko IS INITIAL.
e_frgst = i_frgst.
e_frggr = i_frggr.
e_frgkz = i_frgkz.
e_frgrl = i_frgrl.
e_frgzu = i_frgzu.
IF i_frgzu NE space.
xchange = 'X'.
ENDIF.
ENDIF. *- Prüfen, ob neue Ermittlung beim Ändern ------------------------------
IF xchange NE space.
IF t16fb-frgke NE i_frgkz.
CLEAR t16fb.
SELECT SINGLE * FROM t16fb WHERE frgke EQ i_frgkz.
ENDIF.
IF t16fb-kzfae EQ ''.
EXIT.
ENDIF.
*- altes Änderungskennzeichen sichern falls neues ermittelt wird ------*
s_kzfae = t16fb-kzfae.
ENDIF. *- Klasse ermitteln ----------------------------------------------------
xclass = 'X'.
CLEAR t16fg. "
SELECT * FROM t16fg WHERE frgot EQ ''.
EXIT.
ENDSELECT.
IF sy-subrc NE OR
t16fg-frgkl EQ space.
EXIT.
ENDIF.
*- Hauswährung ermitteln -----------------------------------------------
fwaers = cekko-waers.
IF cekko-bukrs NE t001-bukrs.
SELECT SINGLE * FROM t001 WHERE bukrs EQ cekko-bukrs.
ENDIF.
hwaers = t001-waers. *- Prüfen Änderung ----------------------------------------------------*
IF cekko EQ *cekko AND
bwkurs EQ bwkurs_old AND i_check_always EQ space.
EXIT.
ENDIF. comm = 'CEKKO'.
PERFORM strategie_neu USING e_frggr e_frgst. *- Änderung bei laufender Freigabe prüfen ------------------------------
IF xchange NE space.
*- Strategie geändert --------------------------------------------------
IF e_frgst NE i_frgst OR
e_frggr NE i_frggr.
PERFORM reset
USING e_frgst e_frggr
e_frgzu e_frgkz e_frgrl.
e_reset = 'X'.
*- Wertänderung prüfen -------------------------------------------------
ELSE.
IF t16fb-kzfae EQ '' OR
t16fb-kzfae EQ '' .
PERFORM currency_conversion USING *cekko-waers
bwkurs_old
hwaers
fwaers
bwkurs
CHANGING *cekko-gnetw.
f1 = *cekko-gnetw * t16fb-tlfae / .
f1 = f1 + *cekko-gnetw.
IF cekko-gnetw GT f1.
PERFORM reset
USING e_frgst e_frggr
e_frgzu e_frgkz e_frgrl.
e_reset = 'X'.
ENDIF.
ENDIF.
ENDIF.
ELSE.
PERFORM reset
USING e_frgst e_frggr
e_frgzu e_frgkz e_frgrl.
ENDIF.
*- Prüfen, ob Beleg bereits ausgegeben wurde ---------------------------
IF i_output NE space AND xchange NE space.
*- Neue Freigabestrategie trotz erfolgter Ausgabe erlaubt -------------*
IF NOT ( s_kzfae EQ '' OR
s_kzfae EQ '' OR i_frgst EQ space ).
*---- keine neue Freigabestrategie bei erfolgter Ausgabe --------------*
SELECT SINGLE * FROM t16fb WHERE frgke EQ e_frgkz.
IF t16fb-kzfre EQ space.
e_frgst = i_frgst.
e_frggr = i_frggr.
e_frgkz = i_frgkz.
e_frgrl = i_frgrl.
e_frgzu = i_frgzu.
e_reset = 'Y'.
ENDIF.
ENDIF.
ENDIF. """""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""$"$\SE:(2) Function Module ME_REL_STRATEGIE_EKKO, End A
*$*$-Start: (2)---------------------------------------------------------------------------------$*$*
ENHANCEMENT 2 ZCONTRACTOR_TRAIL_ENHANCEMENT. "active version IF xchange NE space.
IF e_frgst NE i_frgst OR
e_frggr NE i_frggr.
EXIT.
ELSE.
PERFORM reset
USING e_frgst e_frggr
e_frgzu e_frgkz e_frgrl.
e_reset = 'X'.
EXIT.
IF t16fb-kzfae EQ '4' OR t16fb-kzfae EQ '6'.
PERFORM currency_conversion USING *cekko-waers
bwkurs_old
hwaers
fwaers
bwkurs
CHANGING *cekko-gnetw.
f1 = *cekko-gnetw * t16fb-tlfae / 1000.
f1 = f1 + *cekko-gnetw.
IF cekko-gnetw <> f1.
PERFORM reset
USING e_frgst e_frggr
e_frgzu e_frgkz e_frgrl.
e_reset = 'X'.
ENDIF.
ENDIF.
ENDIF.
ELSE.
EXIT.
ENDIF. ENDENHANCEMENT.
*$*$-End: (2)---------------------------------------------------------------------------------$*$*
ENDFUNCTION.

配置SAP 采购合同审批的更多相关文章

  1. 【MM系列】SAP 采购订单的批量修改

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改   前言 ...

  2. SAP 采购订单收货时报错:对于采购订单xxxx无收货可能

    因为这个问题查了挺长时间,所以写在博客里记录下. 报错详细: 每个公司的配置不同,我公司遇到的这个问题原因是这里的确认控制是从信息记录带过来的,问题解决方法是,修改下确认控制的选项: 修改确认控制的后 ...

  3. 配置SAP GUI FOR HTML(通过WEB方式登录)

    配置SAP GUI FOR HTML(通过WEB方式登录) SAP系统可以通过安装 SAP GUI.SAP GUI FOR JAVA.SAP GUI WEB FOR JAVA.SAP GUI FOR ...

  4. 【MM系列】SAP 采购订单收货后不能修改价格的增强

    公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...

  5. SAP采购订单入库后不允许修改单价增强

    需求:在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’. 判断流程:是否有入库凭证 如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能 ...

  6. SAP采购订单历史明细报表源代码(自己收藏)

    SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF } ...

  7. SAP采购订单审批记录增强

    采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...

  8. SAP采购申请审批记录增强

    业务需要,开发就搞.... EBAN中增强结构:CI_EBANDB ANAME 类型 UNAME 用户名 ADATE 类型 AEDAT DATS 更改日期 ATIME 类型 UZEIT TIMS 时间 ...

  9. SAP采购订单屏幕增强

    转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增 ...

随机推荐

  1. Python之路:Python简介

    Python前世今生 python的创始人为吉多·范罗苏姆(Guido van Rossum).1989年的圣诞节期间他为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承 ...

  2. ASP.NET MVC5 学习笔记-2 Razor

    1. Razor @*注释*@ 你在用 @Request.Browser.Browser, 发送邮件给support@qq.com, 转义@@qq @{ var amounts = new List& ...

  3. linq 总结

    linq 常用方法: top   var query=(from u in User ...).Take(10) dblinq的坑: 时间必须当参数传入,否则会报错 多个left join时,如果jo ...

  4. Qt之OpenSSL(有pro文件的路径格式)

    简述 OpenSSL是一个强大的安全套接字层密码库,囊括主要的密码算法.常用的密钥和证书封装管理功能及SSL协议,并提供丰富的应用程序供测试或其它目的使用. 简述 下载安装 使用 更多参考 下载安装 ...

  5. QT 入门 -QApplication QPushButton QDialog Ui类型的手工使用

    QT 1.工具 assistant  帮助文档 qtconfig  QT配置工具 qmake     QT的make与项目文件智能创建工具 uic          UI界面的设计文件的编译工具 mo ...

  6. OpenWRT推理client线上的数

    有两种方法: 一. 经DHCP client通讯组列表 (缺点:client列表会依据超时时间刷新,一般超时时间为12h,) 二. 通过arp缓存列表/proc/net/arp(缺点:arp刷新时间默 ...

  7. Apple Watch程序开发30分钟秒懂

    苹果公司Apple Watch智能手表正在备受追捧,迅速掌握Apple Watch的APP架构,环境搭建,及实例开发将会让开发者占尽先机.我赢职场全国首发,30分钟玩转Apple Watch应用开发实 ...

  8. C#自学笔记总结

    一.变量:声明变量的语法:变量类型 变量名; 变量名=值;变量类型 变量名=值: 在使用变量的时候要注意:变量一定要先声明,再赋值,最后使用例子: 变量的特点:1.不能够被重复的声明2.可以被重复的赋 ...

  9. 树莓派安装ftp服务器

    在树莓派安装ftp服务器,可上载\下载文件 vsftpd是开源的轻量级的常用ftp服务器. 1,安装vsftpd服务器 (约400KB)sudo apt-get install vsftpd 2,启动 ...

  10. 我的Python成长之路---GitHub使用克隆GitHub(SSH key配置)

    六.克隆GitHub仓库 1.创建仓库目录,目录位置没有要求,比如D:\learngit. 2.配置ssh(如果不配置会每次都输入用户名和密码) 使用TortoiseGit生成ssh-key:开始菜单 ...