如果某供应商不允许发生采购业务或者付款业务,可以在系统里将该供应商冻结。系统提供了采购冻结和记账冻结两种冻结方式。选中了采购冻结,该供应商不允许建订单。选中了记账冻结,该供应商不允许预付款、发票校验和付款清帐。并且,可以选择冻结的范围,是所有公司代码和采购组织,还是特定的。 Tcode:xk05
冻结分类:
若选中了冻结所有的公司代码,会修改表字段 LFA1~SPERR 值为 'X'
若选中冻结选中的公司代码,会修改表字段 LFB1~SPERR 值为'X'
若选中了冻结所有的采购组织,会修改表字段 LFA1~SPERM 值为'X'
若选中冻结选中的采购组织,会修改表字段 LFM1~SPERR 值为 'X'
DATA: lt_xlfas TYPE TABLE OF flfas,
lt_xlfb5 TYPE TABLE OF flfb5,
lt_xlfbk TYPE TABLE OF flfbk,
lt_xlfza TYPE TABLE OF flfza.
DATA: l_lfb1 LIKE lfb1,
l_ylfb1 TYPE lfb1,
l_lfa1 TYPE lfa1,
l_ylfa1 TYPE lfa1,
l_lfm1 TYPE lfm1.
CLEAR :lt_xlfas,lt_xlfb5,lt_xlfbk, lt_xlfza,l_lfb1,l_ylfb1,l_lfa1,l_ylfa1,l_lfm1.
DATA: t_bukrs LIKE zmmsrmvmd-bukrs,
t_lifnr LIKE zmmsrmvmd-lifnr.
t_bukrs = '1000'.
t_lifnr = '0BP'.
CALL FUNCTION 'VENDOR_READ'
EXPORTING
i_bukrs = t_bukrs
i_lifnr = t_lifnr
IMPORTING
e_lfa1 = l_lfa1
* E_LFB1 =
EXCEPTIONS
not_found = 1
OTHERS = 2.
IF sy-subrc <> 0.
ENDIF.
l_lfa1-sperm = 'X'. "所有采購組織凍結
IF l_lfa1 IS NOT INITIAL.
CALL FUNCTION 'VENDOR_UPDATE' IN UPDATE TASK
EXPORTING
i_lfa1 = l_lfa1
i_lfm1 = l_lfm1
i_ylfa1 = l_ylfa1
i_ylfb1 = l_ylfb1
i_ylfm1 = l_lfm1
TABLES
t_xlfas = lt_xlfas
t_xlfb5 = lt_xlfb5
t_xlfbk = lt_xlfbk
t_xlfza = lt_xlfza
t_ylfas = lt_xlfas
t_ylfb5 = lt_xlfb5
t_ylfbk = lt_xlfbk
t_ylfza = lt_xlfza.
COMMIT WORK AND WAIT.
ENDIF.
查询冻结供应商报表
SQL 语句如下:
SELECT DISTINCT
lfa1~lifnr ,
lfa1~name1 ,
lfa1~name2 ,
lfa1~ktokk ,
lfa1~regio ,
t077y~txt30 ,
lfb1~bukrs ,
lfa1~sortl ,
lfa1~stras ,
lfa1~pstl2 ,
lfa1~land1 ,
lfa1~ort01 AS ort01a ,
lfa1~spras ,
lfa1~telf1 ,
lfa1~telfx ,
lfa1~sperr ,
lfa1~sperm ,
lfb1~akont ,
lfb1~sperr AS sperr_b ,
lfb1~nodel ,
lfb1~loevm ,
lfb1~zterm ,
t052u~text1 ,
but000~xblck
INTO CORRESPONDING FIELDS OF TABLE @gt_lf_data FROM
lfa1
INNER JOIN lfb1 ON lfb1~lifnr = lfa1~lifnr
LEFT JOIN lfm1 ON lfm1~lifnr = lfa1~lifnr
LEFT JOIN t077y ON t077y~ktokk = lfa1~ktokk AND t077y~spras = @sy-langu
LEFT JOIN t052u ON t052u~zterm = lfb1~zterm AND t052u~spras = @sy-langu
LEFT JOIN but000 ON but000~partner = lfa1~lifnr
WHERE
lfa1~lifnr IN @lifnr AND
lfa1~ktokk IN @ktokk AND
lfb1~bukrs IN @bukrs AND
( lfa1~sperr = 'X' OR lfb1~sperr = 'X' OR but000~xblck = 'X' OR lfb1~nodel = 'X' OR lfb1~loevm = 'X' OR lfa1~sperm = 'X' OR lfm1~sperm = 'X' )
ORDER BY lfa1~lifnr.
查询结果: