针对,前期作MM模块开发,针对采购订单、采购申请的业务流向。现作一定的总结,如有错误欢迎大家指正。
一、相关表
EBAN:采购申请表
EBKN:采购申请帐户信息(涉及一些成本中心、科目、固定资产号)
EKKO:采购订单主表(包括采购凭证类型,审批标识,删除标记、采购组织、供应商编码)
EKPO:采购订单明细表
EKBE:采购历史记录(包括收货行记录、发票记录)
EKKN:采购凭证中的帐户信息。
KONV:采购订单行条件
STXL:文本表
EKET:交货记录行(分批次交货的记录)
LFA1:供应商文本
EBKN:采购申请
CDHDR:更改凭证抬头
CDPOS:更改凭证项目(采购申请审批时会记录更改日期及时间)
T006A:单位描述
二、相关取数方法:
1、采购申请审批记录
SELECT CDPOS~CHANGENR CDPOS~OBJECTID CDPOS~TABKEY
INTO CORRESPONDING FIELDS OF TABLE ITABNEW
FROM CDPOS
WHERE CDPOS~OBJECTCLAS = 'BANF'AND CDPOS~FNAME = 'FRGKZ' AND CDPOS~CHNGIND = 'U'
AND ( CDPOS~VALUE_NEW = 'B' OR CDPOS~VALUE_NEW = '2' ) AND CDPOS~OBJECTID in S_BANFN. "B和2代表一级审批或二级审批标识。
SELECT UDATE OBJECTID CHANGENR INTO CORRESPONDING FIELDS OF TABLE ITABNEW3
FROM CDHDR
FOR ALL ENTRIES IN ITABNEW4
WHERE CHANGENR = ITABNEW4-CHANGENR AND OBJECTID = ITABNEW4-OBJECTID AND ( UDATE >= S_FRGDT-low AND UDATE <= S_FRGDT-high ) .
2、取采购员中文名称
DATA: L_DEPARTMENT TYPE AD_DPRTMNT,
L_ADDRNUMBER TYPE AD_ADDRNUM,
L_PERSNUMBER TYPE AD_PERSNUM,
L_UNAME TYPE SY-UNAME,
L_NAME_FIRST TYPE AD_NAMEFIR,
E_UNAME TYPE SY-UNAME,
L_NAME_LAST TYPE AD_NAMELAS.
SELECT SINGLE PERSNUMBER ADDRNUMBER INTO
(L_PERSNUMBER, L_ADDRNUMBER)
FROM USR21
WHERE BNAME = ALV_REQPOTAB1-ernam.
IF SY-SUBRC = 0.
SELECT SINGLE NAME_FIRST NAME_LAST INTO (L_NAME_FIRST,L_NAME_LAST)
FROM ADRP
WHERE PERSNUMBER = L_PERSNUMBER.
IF SY-SUBRC = 0.
CONCATENATE L_NAME_LAST L_NAME_FIRST INTO E_UNAME.
CONDENSE E_UNAME NO-GAPS.
ALV_REQPOTAB1-USERNAME = E_UNAME.
ENDIF.
ENDIF.
3.采购订单行项目备注:
CONCATENATE itab_struct1-EBELN itab_struct1-EBELP INTO EBELNKP.
SELECT * FROM STXL
INTO CORRESPONDING FIELDS OF TABLE ITB_S18
WHERE TDOBJECT = 'EKPO'
AND TDNAME = EBELNKP.
CLEAR TEXT1.
LOOP AT ITB_S18.
CLEAR TEXT1.
CALL FUNCTION 'READ_TEXT'
EXPORTING
CLIENT = SY-MANDT
ID = ‘F01’
LANGUAGE = SY-LANGU
NAME = FNAME
OBJECT = 'EKPO'
* ARCHIVE_HANDLE = 0
* LOCAL_CAT = ' '
* IMPORTING
* HEADER =
TABLES
LINES = FLINES
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8
.
IF SY-SUBRC <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
LOOP AT FLINES.
CONCATENATE TEXT1 FLINES-TDLINE INTO TEXT1 .
ENDLOOP.
ENDLOOP.
* MESSAGE TEXT1 TYPE 'I'.
itab_struct1-itemtext = TEXT1.
4.供应商编码消除前置零
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
INPUT = ALV_TAB-lifnr
IMPORTING
OUTPUT = ALV_TAB-lifnr.