配置SAP 采购合同审批
需求:
采购合同类型是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 采购合同审批的更多相关文章
- 【MM系列】SAP 采购订单的批量修改
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单的批量修改 前言 ...
- SAP 采购订单收货时报错:对于采购订单xxxx无收货可能
因为这个问题查了挺长时间,所以写在博客里记录下. 报错详细: 每个公司的配置不同,我公司遇到的这个问题原因是这里的确认控制是从信息记录带过来的,问题解决方法是,修改下确认控制的选项: 修改确认控制的后 ...
- 配置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 ...
- 【MM系列】SAP 采购订单收货后不能修改价格的增强
公众号:SAP Technical 本文作者:matinal 原文出处:http://www.cnblogs.com/SAPmatinal/ 原文链接:[MM系列]SAP 采购订单收货后不能修改价格的 ...
- SAP采购订单入库后不允许修改单价增强
需求:在根据采购订单做了入库凭证之后,如果用户反审批采购订单去修改单价,系统提示‘已收货,不允许修改单价’. 判断流程:是否有入库凭证 如果采购订单条件按采购信息记录定价,这个价格本来就不能修改,只能 ...
- SAP采购订单历史明细报表源代码(自己收藏)
SPAN { font-family: "Courier New"; font-size: 10pt; color: #000000; background: #FFFFFF } ...
- SAP采购订单审批记录增强
采购订单审核函数: BAPI_PO_RELEASE 结尾加上 ENHANCEMENT ZME28_PO. "active version DATA:LS_EKKO TYPE EKKO. DA ...
- SAP采购申请审批记录增强
业务需要,开发就搞.... EBAN中增强结构:CI_EBANDB ANAME 类型 UNAME 用户名 ADATE 类型 AEDAT DATS 更改日期 ATIME 类型 UZEIT TIMS 时间 ...
- SAP采购订单屏幕增强
转自<http://blog.csdn.net/heng0757/article/details/8073875> 为采购订单增加一个页标签,在其中放入客户自定义字段, 1. CMOD 增 ...
随机推荐
- java int and string convert
int -> String int i=12345; String s=""; 第一种方法:s=i+""; 第二种方法:s=String.valueOf( ...
- vs 2010 引用DLL 遇到问题
1.新建项目→添加引用,提示:未能添加对dll的引用,请确保此文件可访问并且是一个有效的程序集或COM组件 解决方案:首先把DLL放system32中,然后,regsvr32 绝对路径注册一下: 如果 ...
- CentOS6.5安装elasticsearch+logstash+kibana
首先卸载低版本的java环境,然后安装 java环境和Apache服务 yum install -y java--openjdk httpd 安装ES环境 elasticsearch wget htt ...
- Dapper 基础用法
Dapper是.Net下的一个简单orm框架,具有以下特点: 1.简单,只需要一个文件即可(SqlMapper.cs) 2.快速,下面是一个查询结果集在500以上的运行速度对比 3.不要求特定的db ...
- 基于visual Studio2013解决C语言竞赛题之0302字符数出
题目 解决代码及点评 根据题目要求,只要根据用户输入的字母,判断字母之后,给出相应的输出即可 在以下代码中,f32函数实现了该功能,通过if条件判断语句 #include <stdio.h ...
- Poj 2299 Ultra-QuickSort(归并排序)
题目链接:http://poj.org/problem?id=2299 思路分析:序列的逆序数即为交换次数,所以求出该序列的逆序数即可.根据分治法思想,序列分为两个大小相等的两部分, 分别求子序列的逆 ...
- HDU4648+Easy
N^2都能过!!!!!!! /* Easy */ #include<stdio.h> #include<string.h> #include<stdlib.h> # ...
- Android自定义控件实战——水流波动效果的实现WaveView
转载请声明出处http://blog.csdn.net/zhongkejingwang/article/details/38556891 水流波动的波形都是三角波,曲线是正余弦曲线,但是Android ...
- linux添加、修改环境变量
比如要把/etc/apache/bin目录添加到PATH中,方法有三: 1.In shell: setenv <path_to_append>: $ENVNAME setenv PATH ...
- BZOJ 3384: [Usaco2004 Nov]Apple Catching 接苹果( dp )
dp dp( x , k ) = max( dp( x - 1 , k - 1 ) + *** , dp( x - 1 , k ) + *** ) *** = 0 or 1 ,根据情况 (BZOJ 1 ...