ABAP函数

慢慢更新吧~~~~

具体的参数,需要自己SE37查看

SD

修改销售订单

1
2
3
4
5
6
7
8
CALL FUNCTION 'BAPI_SALESORDER_CHANGE'
EXPORTING
salesdocument = pv_vbeln
order_header_inx = ls_order_header_in
TABLES
return = lt_return
order_item_in = lt_order_item_in
order_item_inx = lt_order_item_inx.

PP

获取生产订单详细

1
2
3
4
5
6
7
8
CALL FUNCTION 'BAPI_PRODORD_GET_DETAIL'
EXPORTING
number = ls_mes_prodord_head-aufnr
order_objects = ls_order_objects
IMPORTING
return = ls_return
TABLES
operation = lt_operation

生产订单打上删除标识

1
2
3
4
CALL FUNCTION 'BAPI_PRODORD_SET_DELETION_FLAG'
TABLES
orders = lt_orders
detail_return = lt_detail_return.

生产订单报工取消

1
2
3
4
5
6
CALL FUNCTION 'BAPI_PRODORDCONF_CANCEL'
EXPORTING
confirmation = wa_rueck-rueck
confirmationcounter = wa_rueck-rmzhl
IMPORTING
return = ls_return.

创建计划订单

1
2
3
4
5
6
CALL FUNCTION 'BAPI_PLANNEDORDER_CREATE'
EXPORTING
headerdata = ps_headerdata
IMPORTING
return = ls_return
plannedorder = pv_plannedorder.

修改计划订单

1
2
3
4
5
6
7
CALL FUNCTION 'BAPI_PLANNEDORDER_CHANGE'
EXPORTING
plannedorder = pv_plannedorder
headerdata = ps_headerdata
headerdatax = ps_headerdatax
IMPORTING
return = ls_return.

删除计划订单

1
2
3
4
5
CALL FUNCTION 'BAPI_PLANNEDORDER_DELETE'
EXPORTING
plannedorder = pv_plannedorder
IMPORTING
return = ls_return.

创建生产订单

1
2
3
4
5
6
CALL FUNCTION 'BAPI_PRODORD_CREATE'
EXPORTING
orderdata = ls_orderdata
IMPORTING
return = ls_return
order_number = lv_order_number.

读取生产订单抬头文本

1
2
3
4
5
6
7
CALL FUNCTION 'CO_DB_HEADER_READ'
EXPORTING
aufnr = lv_aufnr3
IMPORTING
caufvwa = ls_caufv
EXCEPTIONS
not_found = 1.

修改预留

1
2
3
4
5
6
7
8
CALL FUNCTION 'MB_CHANGE_RESERVATION'
EXPORTING
change_resb = 'X'
change_rkpf = ''
new_resb = 'X'
TABLES
xresb = lt_xresb
xresbn = lt_xresbn.

获取生产订单状态

1
STATUS_READ

读取生产订单状态文本

1
STATUS_TEXT_EDIT 

反查BOM数据

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
CALL FUNCTION 'CS_WHERE_USED_MAT'
EXPORTING
datub = sy-datum
datuv = sy-datum
matnr = pv_matnr
* POSTP = ' '
* RETCODE_ONLY = ' '
* STLAN = ' '
werks = pv_werks
* MCLMT = ' '
* MNSTL = ' '
* MXSTL = ' '
* STLTP = ' '
* NEWSI = ' '
* IMPORTING
* TOPMAT =
TABLES
wultb = pt_wultb
* equicat = lt_equicat
* kndcat = lt_kndcat
* matcat = lt_matcat
* stdcat = lt_stdcat
* tplcat = lt_tplcat
* prjcat = lt_prjcat
EXCEPTIONS
call_invalid = 1
material_not_found = 2
no_where_used_rec_found = 3
no_where_used_rec_selected = 4
no_where_used_rec_valid = 5
OTHERS = 6.
IF sy-subrc <> 0.
ENDIF.

读取BOM - 单级

1
CSAP_MAT_BOM_READ

读取BOM - 多级

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
EXPORTING
capid = 'PP01'
datuv = sy-datum
mehrs = ''
mtnrv = ps_dmes_mast-matnr
stlal = '01'
stlan = '1'
werks = ps_dmes_mast-werks
TABLES
stb = lt_stb
EXCEPTIONS
alt_not_found = 1
call_invalid = 2
material_not_found = 3
missing_authorization = 4
no_bom_found = 5
no_plant_data = 6
no_suitable_bom_found = 7
conversion_error = 8
OTHERS = 9.
IF sy-subrc <> 0.
pv_msg = 'BOM展开失败'.
EXIT.
ENDIF.

MM

物料移动

1
2
3
4
5
6
7
8
9
CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
EXPORTING
goodsmvt_header = ls_goodsmvt_header
goodsmvt_code = '04'
IMPORTING
goodsmvt_headret = ls_goodsmvt_headret
TABLES
goodsmvt_item = lt_goodsmvt_item
return = lt_return.

修改采购申请

1
2
3
4
5
6
7
CALL FUNCTION 'BAPI_PR_CHANGE'
EXPORTING
number = pv_banfn
TABLES
return = lt_return
pritem = lt_pritem
pritemx = lt_pritemx.

发票校验

1
2
3
4
5
6
7
8
9
10
11
call function 'BAPI_INCOMINGINVOICE_PARK'
exporting
headerdata = ls_headerdata
addressdata = ls_addressdata
importing
invoicedocnumber = cv_belnr
fiscalyear = cv_gjahr
tables
itemdata = lt_itemdata[]
taxdata = lt_taxdata[]
return = lt_return[].

物料单位数量转换

1
2
3
4
5
6
7
8
9
10
11
12
CALL FUNCTION 'MD_CONVERT_MATERIAL_UNIT'
EXPORTING
i_matnr = pv_matnr
i_in_me = pv_meins
i_out_me = pv_erfme
i_menge = pv_bdmng
IMPORTING
e_menge = pv_erfmg
EXCEPTIONS
error_in_application = 1
error = 2
OTHERS = 3.

时间相关

获取当月最后一天

1
2
3
4
5
6
7
8
CALL FUNCTION 'RP_LAST_DAY_OF_MONTHS'
EXPORTING
DAY_IN = LV_DATE
IMPORTING
LAST_DAY_OF_MONTH = LV_DATE
EXCEPTIONS
DAY_IN_NO_DATE = 1
OTHERS = 2.

还有个方法,使用SAP链式语法 注意:的用法

1
2
3
4
5
6
7
8
9
10
DATA L_DATE TYPE SY-DATUM.

SY-DATUM = '20190220'.

L_DATE =: |{ SY-DATUM(6) }01|,
L_DATE + 31,
|{ L_DATE(6) }01|,
L_DATE - 1.

WRITE: L_DATE.

根据周数 获取某周的第一天

1
2
3
4
5
6
7
DATA: LV_DATE LIKE SCAL-DATE.

CALL FUNCTION 'WEEK_GET_FIRST_DAY'
EXPORTING
WEEK = '202013' "表示2020年的第13周
IMPORTING
DATE = LV_DATE.

获取月份相关的描述

1
2
3
4
5
6
7
8
9
10
DATA: MONTH_NAMES LIKE T247 OCCURS 0.

CALL FUNCTION 'MONTH_NAMES_GET'
EXPORTING
LANGUAGE = SY-LANGU
TABLES
MONTH_NAMES = MONTH_NAMES
EXCEPTIONS
MONTH_NAMES_NOT_FOUND = 1
OTHERS = 2.

检查日期的有效性

1
2
3
4
5
6
CALL FUNCTION 'DATE_CHECK_PLAUSIBILITY'
EXPORTING
date = <fs_qcscdd>-gltrp
EXCEPTIONS
plausibility_check_failed = 1
OTHERS = 2.

内外码转换

添加前置0

1
2
3
4
5
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INTPUT'
EXPORTING
input = <fs_wxjh005>-plnum
IMPORTING
output = <fs_wxjh005>-plnum.

或者

-plnum = |{ -plnum alpha = in }|.

去除前置0

1
2
3
4
5
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = <fs_wxjh005>-plnum
IMPORTING
output = <fs_wxjh005>-plnum.

或者

-plnum = |{ -plnum alpha = out }|.

物料号转内码

1
2
3
4
5
6
7
8
CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT'
EXPORTING
input = <fs_qcscdd>-matnr
IMPORTING
output = lv_matnr
EXCEPTIONS
length_error = 1
OTHERS = 2.

或者
lv_matnr = |{ -matnr alpha = in width = 18 }|.

物料号转外码

1
2
3
4
5
6
7
8
CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'
EXPORTING
input = <fs_qcscdd>-matnr
IMPORTING
output = lv_matnr
EXCEPTIONS
length_error = 1
OTHERS = 2.

或者
lv_matnr = |{ -matnr alpha = out }|.

外部单位转内部单位

1
2
3
4
5
6
7
8
9
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_INPUT'
EXPORTING
input = <fs_qcscdd>-gmein
language = sy-langu
IMPORTING
output = lv_meins
EXCEPTIONS
unit_not_found = 1
OTHERS = 2.

内部单位转外部单位

1
2
3
4
5
CALL FUNCTION 'CONVERSION_EXIT_CUNIT_OUTPUT'
EXPORTING
input = ls_dmes_planord-meins
IMPORTING
output = ls_dmes_planord-meins.

其他

创建消息文本

1
2
3
4
5
6
7
8
9
10
CALL FUNCTION 'MESSAGE_TEXT_BUILD'
EXPORTING
msgid = ls_return-id
msgnr = ls_return-number
msgv1 = ls_return-message_v1
msgv2 = ls_return-message_v2
msgv3 = ls_return-message_v3
msgv4 = ls_return-message_v4
IMPORTING
message_text_output = lv_msg.

通过工厂代码获取公司代码

1
2
3
4
5
6
7
8
9
10
11
12
DATA: lv_werks TYPE werks_d,
lv_bukrs TYPE bukrs.

call function 'HRCA_PLANT_GET_COMPANYCODE'
exporting
plant = lv_werks
importing
companycode = lv_bukrs
exceptions
no_company_code_found = 1
plant_not_found = 2
others = 3.

弹框提示信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
DATA: p_text  TYPE string,
l_title TYPE string.

DATA: l_answer(1) type c.
call function 'POPUP_TO_CONFIRM_STEP'
exporting
defaultoption = 'Y' "定位光标以应答“是”或“否”
textline1 = p_text
titel = l_title
cancel_display = ' '
importing
answer = l_answer
exceptions
others = 0.

"确认 l_answer = J

左下角信息提示

1
2
3
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
text = '正在检查数据......'.

获取随机lv_num长度的字符串

1
2
3
4
5
CALL FUNCTION 'GENERAL_GET_RANDOM_PWD'
EXPORTING
number_chars = lv_num
IMPORTING
random_pwd = lv_pwd.