abap三月通(10)

2019-07-29 11:13

*实际永远不会发生记帐到上年和上上期间的.

*check posting date's period and fiscal year CALL FUNCTION 'DETERMINE_PERIOD' EXPORTING

DATE = BKPF-BUDAT

VERSION = 'Z1' \ IMPORTING

PERIOD = Z_PSTPER YEAR = Z_PSTYEAR . *check sysdate's period and fiscal year CALL FUNCTION 'DETERMINE_PERIOD' EXPORTING

DATE = SY-DATUM

VERSION = 'Z1' \ IMPORTING

PERIOD = Z_CURPER YEAR = Z_CURYEAR. *能否在输入的posting date记帐让系统去判断.

CHECK Z_CURYEAR <> Z_PSTYEAR OR Z_PSTPER <> Z_CURPER. *如posting date不在本期间得到其期间最后一## Z_PSTPER = Z_PSTPER + 1 .

CALL FUNCTION 'FIRST_DAY_IN_PERIOD_GET' EXPORTING

I_GJAHR = Z_PSTYEAR I_PERIV = 'Z1'

I_POPER = Z_PSTPER IMPORTING

E_DATE = Z_PERLSTDAY .

BKPF-BUDAT = Z_PERLSTDAY - 1 .

BKPF-MONAT = Z_PSTPER . \如果Edit options允许看到期间的话也要改. 5.预制凭证可使用退代吗?

这个问题就好比去问一个人是否有双眉毛一样?答案是一般天生是没有,如去整容院整就能有. SAP标准程序是不允许预制凭证有退代的,其实也没必要,因为预制凭证本来就不是正式凭证,比如posting date就算现在根据某种规则退代了,等真正posting时还不是要根据正常凭证的规则去post ,这不多此一举. 如果真需为预制设置退代,也很容易.请看下面分解.

(1)使用/H启动debug,按F6直到执行到SAPMF05A screen Number 1001,在module document_merge设置断点,这个module是判断是否有退代的入口.

(2)parked doc g_status =2 .

如下图加入代码,则退代对FV50预制凭证生效.

FI_VALIDATION_DOC FI_VALIDATION_HEADER FI_VALIDATION_ITEM

6.物料凭证可使用退代和确定吗?

如果Mat doc产生的同时产生了财务凭证当然可以使用.

4.BKPF|BSEG浅析 5.Dunning催款

6.支票打印 7. 8.

5.CO模块开发实例. 1. 2. 8.

6.Basis相关开发实例 1.删除传输请求

关于传输请求在第二章13节已经有详细说明,下面是一个关于如何删除被锁的传输请求的程序,读者可根据实际情况补充.

通常对锁住的表对象可采用SM12解锁,对传输请求可按下面程序处理. Program ZSTDELREQ . data : itab_e070 like e070 occurs 0 with header line, * Request header including Req user. iwa_e070c like e070c, \ itab_e071 like e071 occurs 0 with header line , *Request entry line items may include multiple lines iwa_e07t like e07t , \ iwa_E070A like E070A , *If the Request was locked and delelted,Delete Tlock otherwise *The program will be locked to make any modifications. itab_tlock like tlock occurs 0 with header line . parameter reqno like e070-trkorr default '' . select * into table itab_e070 from e070 where trkorr eq reqno or strkorr eq reqno. if SY-SUBRC Ne 0 .

write : 'The Request No.:' , Reqno , ' not exist !' . * exit . endif .

select single * into iwa_e070c from e070c where trkorr eq reqno .

select * into table itab_e071 from e071 where trkorr eq reqno .

select single * into iwa_e07t from e07t where trkorr eq reqno .

select single * into iwa_E070A from e070A where trkorr eq reqno . if itab_e070 IS INITIAL .

select * into table itab_tlock from tlock where trkorr eq reqno . else.

select * into table itab_tlock from tlock FOR ALL ENTRIES IN itab_e070

where TRKORR eq itab_e070-trkorr . endif.

if SY-SUBRC NE 0 .

write : / 'No Locked object for the request NO. was found!'. endif . delete :

e070 from table itab_e070 , e070c from iwa_e070c,

e071 from table itab_e071, e07t from iwa_e07t , e070A from iwa_E070A ,

tlock from table itab_tlock . write : / 'The Request No.:' , Reqno ,

' has already been successfully Full deleted'.

如果开发的程序被包含在$TMP package中,现在想传输到QAS或PRD,需要改换package,一个简单的方法就是将记录从资源库对象目录TADIR表中将记录删除(程序如下),接下来改变保存激活程序就会重新弹出Create Object Directory Entry的窗口. Report zdelpackage. data iwa_tadir like tadir . select single * into iwa_tadir from tadir where OBJ_NAME = 'ZXMBCU02'.\delete tadir from iwa_tadir. 2.检测用户授权列表

3.致命SAP权限控制漏洞

尽管SAP系统提供了非常完善的权限控制机制,甚至允许细到字段级和允许用户自定义授权对象,然后SAP权限控制漏洞也是致命的,随便一个小程序就可轻易获取权限

作为职业程序员,对取得权限大多会有一定兴趣(这点催生了一批无聊的所谓Hacker). 读者可自行理解下面几个概,在此不再细述. [1].Activity(group)

[2].Authorization Object [3].Profile [4].Role

实际上决定权限的是Authorization Object , 看USR_USER_AUTH_FOR_OBJ_GET 和AUTHORIZATION_DATA_READ_SELOBJ函数就知道了. 常用权限相关Tcode .

(一)Role(角色)相关T-code: PFAC 标准 PFAC_CHG 改变 PFAC_DEL 删除 PFAC_DIS 显示 PFAC_INS 新建 PFAC_STR PFCG 创建

ROLE_CMP 比较

SUPC 批量建立角色profile SWUJ 测试 SU03 检测授权

SU25, SU26 检查Profile (二)建立用户 SU0 SU01 SU01D SU01_NAV SU05 SU1

SU10 批量 SU12 批量

SUCOMP:维护用户公司地址


abap三月通(10).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:实习指导老师评语

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: