ABAP-读销售单行文本及特性值 bapi
来源:互联网 发布:防空火箭升级数据 编辑:程序博客网 时间:2024/05/16 11:40
为了方便用 sql 来取出订单的行文本和特性值 ,写了一个 bapi 把取出值并写入一个自定义表中。
然后在 订单保存的出口中调用此 bapi,以后只要订单有变化就会自动更新的自定义表中。
FUNCTION ZBAPI_READ_VBAPEX.
*"----------------------------------------------------------------------
* "fangkailove@gmail.com
* "
*"*"Local interface:
*" IMPORTING
*" VALUE(VBELN) TYPE VBELN_VA
*" VALUE(POSNR) TYPE POSNR_VA
*" VALUE(CUOBJ) TYPE CUOBJ
*" VALUE(AUTOSAVE) TYPE CHAR1 "是否自动存入表里
*" EXPORTING
*" VALUE(VBAPEX) TYPE ZSDVBAP_EX
*"----------------------------------------------------------------------
tables: ZSDVBAP_EX.
DATA: itab_sohead like thead ,
itab_soline like tline occurs 0 with header line .
DATA: p_Name Like THEAD-TDNAME,
p1 LIKE VBELN,
p2 LIKE POSNR .
DATA:tmp TYPE String value ''.
data:begin of itmText ,
ITMTXT1 like ZSDVBAP_EX-ITMTXT1,
ITMTXT2 like ZSDVBAP_EX-ITMTXT2,
ITMTXT3 like ZSDVBAP_EX-ITMTXT3,
end of itmText .
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = VBELN
IMPORTING
output = p1.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
EXPORTING
input = POSNR
IMPORTING
output = p2.
CONCATENATE p1 p2 into p_Name.
" ID :0001 Name: 销售单+行项目号 0000110298000010 object: VBBP
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = '0001'
LANGUAGE = '1'
NAME = p_Name
OBJECT = 'VBBP'
IMPORTING
HEADER = itab_sohead
TABLES
LINES = itab_soline
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
Loop at itab_soline.
CONCATENATE ' ' tmp itab_soline-tdline INTO tmp.
endloop .
IF tmp <> ''.
move tmp to itmText .
move-CORRESPONDING itmText to VBAPEX.
else.
CALL FUNCTION 'READ_TEXT'
EXPORTING
ID = '0001'
LANGUAGE = 'E'
NAME = p_Name
OBJECT = 'VBBP'
IMPORTING
HEADER = itab_sohead
TABLES
LINES = itab_soline
EXCEPTIONS
ID = 1
LANGUAGE = 2
NAME = 3
NOT_FOUND = 4
OBJECT = 5
REFERENCE_CHECK = 6
WRONG_ACCESS_TO_ARCHIVE = 7
OTHERS = 8.
Loop at itab_soline.
CONCATENATE ' ' tmp itab_soline-tdline INTO tmp.
endloop .
move tmp to itmText .
move-CORRESPONDING itmText to VBAPEX.
endif.
clear tmp.
if CUOBJ = 0.
select single cuobj into CUOBJ from vbap where vbeln = p1 and posnr = p2 .
endif.
if CUOBJ <> 0.
DATA: i_configuration LIKE api_value OCCURS 0 WITH HEADER LINE.
DATA: stratwtb(50) TYPE c.
CALL FUNCTION 'VC_I_GET_CONFIGURATION'
EXPORTING
instance = CUOBJ "特性值
language = sy-langu
print_sales = 'X'
TABLES
configuration_idoc = i_configuration
EXCEPTIONS
OTHERS = 4.
DATA: idx TYPE i value 1.
LOOP AT i_configuration .
CASE idx.
WHEN 1.
VBAPEX-ATWTB1 = i_configuration-ATWTB.
CONCATENATE ' ' i_configuration-ATBEZ INTO tmp.
WHEN 2.
VBAPEX-ATWTB2 = i_configuration-ATWTB.
CONCATENATE tmp ',' i_configuration-ATBEZ INTO tmp.
WHEN 3.
VBAPEX-ATWTB3 = i_configuration-ATWTB.
CONCATENATE tmp ',' i_configuration-ATBEZ INTO tmp.
WHEN 4.
VBAPEX-ATWTB4 = i_configuration-ATWTB.
CONCATENATE tmp ',' i_configuration-ATBEZ INTO tmp.
WHEN OTHERS.
ENDCASE.
idx = idx + 1.
ENDLOOP.
endif.
VBAPEX-mandt = sy-mandt.
VBAPEX-VBELN = p1.
VBAPEX-POSNR = p2.
VBAPEX-ATDESC = tmp .
if AUTOSAVE = 'X' .
move VBAPEX to ZSDVBAP_EX .
delete from ZSDVBAP_EX where vbeln = p1 and posnr = p2 .
insert ZSDVBAP_EX.
commit work.
endif.
ENDFUNCTION.
--------------------------------------------------------------------------------------------------------------------------
出口调用:
- ABAP-读销售单行文本及特性值 bapi
- ABAP模块-根据销售订单创建交货单BAPI
- 物料特性值BAPI
- 物料特性值BAPI
- sap-abap 取销售订单行的已发货数量
- sap-abap 取销售订单行的已发货数量
- ABAP-FI常用BAPI
- ABAP BAPI常用表
- ABAP:FI常用BAPI
- ABAP:FI常用BAPI
- Advanced ABAP --> BAPI
- ABAP-FI常用BAPI
- 获取物料批次特性取值BAPI
- abap修改客户主数据值bapi SD_CUSTOMER_MAINTAIN_ALL
- BAPI:BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单
- BAPI:BAPI_SALESORDER_CREATEFROMDAT2 创建销售订单
- SAP ABAP SD 常用BAPI
- SAP ABAP SD 常用BAPI
- 夸平台真是麻烦啊........
- poj 1698 SAP 模板刷题
- XP系统怎么修改“开机自动启动”
- 欧盟 物联网战略研究路线图 翻译稿 初稿 6
- 欧盟 物联网战略研究路线图 翻译稿 初稿 7
- ABAP-读销售单行文本及特性值 bapi
- 解决MySQL server has gone away问题的两种有效办法
- 设计模式之Visitor
- Use ADB to connect phone with Windows 7 over tcp
- CCITT CRC-16计算原理与实现【整理综合】
- 归并排序_数组交集-php版
- 获取windows版本
- 关于word2007 2010中使用endnote插入文献巨卡的问题
- MSN错误800488fb处理