Copy PR header te…
2017-06-17 09:22
465 查看
之前已经用badi实现了 po header text的copy
还有一种方法,exit
查找对应的出口
查看对应的Function 及include,可以看看输入参数,看看哪些值可以用到
添加测试代码
为方便管理和维护,也为了里面别太乱,我把代码封到一个include里面,
其实建议是用Function,直接copy
EXIT_SAPMM06E_012
或者自己建一个。
Function
里面,你用check
用return都只是退出Function,Function之外的不受影响。
但是如果你用include
,在include里面如果return了,include后面如果有别的代码,也就不执行了。
真出了bug的时候比较麻烦
参考代码
DATA : lt_tekpo TYPE TABLE OF bekpo,
ls_tekpo TYPE bekpo,
lt_lines TYPE TABLE OF tline,
lv_tdname TYPE thead-tdname,
ls_header TYPE thead.
DATA: lv_spras TYPE thead-tdspras.
lt_tekpo[] = tekpo[].
LOOP AT lt_tekpo INTO ls_tekpo.
"for header level
lv_tdname = ls_tekpo-banfn.
SELECT SINGLE spras INTO lv_spras FROM eban WHERE banfn = ls_tekpo-banfn.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'B01'
language = lv_spras
name = lv_tdname
object = 'EBANH'
TABLES
lines = lt_lines
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.
ls_header-tdobject = 'EKKO'.
ls_header-tdid = 'F02'.
ls_header-tdspras = i_ekko-spras.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
client = sy-mandt
header = ls_header
insert = 'X'
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDLOOP.
至于item
level的copy
,可以通过配置实现,在这里实现好像有问题
就是 ls_header-tdname
这个字段赋值问题。
因为还没有生成PO,所以
订单号
行项目号拼接 name的时候,前面要么留空,要么留0,
我看有人说可以用十个0代替,但是我测试没成功。
我分别对F01 F02
F03
赋值,拼接的时候分别用的
:仅仅行项目号、0
行项目、空格
行项目。
都没有成功,有兴趣你们自己可以试试。可能跟版本 note等有关系。
不过行项目的copy
可以在之前说的那个badi实现,其实没必要,直接spor配置最简单
不过有一点
就是点击copy PR的时候,header
text不会直接过来
只有点保存后,text才会生成,点保存的时候才会走那个出口
而之前那个BADI,不需要点保存,只要点copy,text就会带过来了。
带过来以后是可以修改的,修改完保存后,修改的内容不会被覆盖的,两种增强方法都可以,没问题。
另外本人开通了一个微信订阅号
欢迎关注:SAP学习记录
(SAPlearning )
还有一种方法,exit
查找对应的出口
查看对应的Function 及include,可以看看输入参数,看看哪些值可以用到
添加测试代码
为方便管理和维护,也为了里面别太乱,我把代码封到一个include里面,
其实建议是用Function,直接copy
EXIT_SAPMM06E_012
或者自己建一个。
Function
里面,你用check
用return都只是退出Function,Function之外的不受影响。
但是如果你用include
,在include里面如果return了,include后面如果有别的代码,也就不执行了。
真出了bug的时候比较麻烦
参考代码
DATA : lt_tekpo TYPE TABLE OF bekpo,
ls_tekpo TYPE bekpo,
lt_lines TYPE TABLE OF tline,
lv_tdname TYPE thead-tdname,
ls_header TYPE thead.
DATA: lv_spras TYPE thead-tdspras.
lt_tekpo[] = tekpo[].
LOOP AT lt_tekpo INTO ls_tekpo.
"for header level
lv_tdname = ls_tekpo-banfn.
SELECT SINGLE spras INTO lv_spras FROM eban WHERE banfn = ls_tekpo-banfn.
CALL FUNCTION 'READ_TEXT'
EXPORTING
client = sy-mandt
id = 'B01'
language = lv_spras
name = lv_tdname
object = 'EBANH'
TABLES
lines = lt_lines
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.
ls_header-tdobject = 'EKKO'.
ls_header-tdid = 'F02'.
ls_header-tdspras = i_ekko-spras.
CALL FUNCTION 'SAVE_TEXT'
EXPORTING
client = sy-mandt
header = ls_header
insert = 'X'
TABLES
lines = lt_lines
EXCEPTIONS
id = 1
language = 2
name = 3
object = 4
OTHERS = 5.
IF sy-subrc <> 0.
* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDLOOP.
至于item
level的copy
,可以通过配置实现,在这里实现好像有问题
就是 ls_header-tdname
这个字段赋值问题。
因为还没有生成PO,所以
订单号
行项目号拼接 name的时候,前面要么留空,要么留0,
我看有人说可以用十个0代替,但是我测试没成功。
我分别对F01 F02
F03
赋值,拼接的时候分别用的
:仅仅行项目号、0
行项目、空格
行项目。
都没有成功,有兴趣你们自己可以试试。可能跟版本 note等有关系。
不过行项目的copy
可以在之前说的那个badi实现,其实没必要,直接spor配置最简单
不过有一点
就是点击copy PR的时候,header
text不会直接过来
只有点保存后,text才会生成,点保存的时候才会走那个出口
而之前那个BADI,不需要点保存,只要点copy,text就会带过来了。
带过来以后是可以修改的,修改完保存后,修改的内容不会被覆盖的,两种增强方法都可以,没问题。
另外本人开通了一个微信订阅号
欢迎关注:SAP学习记录
(SAPlearning )
相关文章推荐
- Copy PR header te…
- HTTP&nbsp;Request&nbsp;header
- Copy_from&to_user详解 转载
- 非常有意思的一段利用PHP&nbsp;的header…
- NACE 配置PO PR等打印对…
- BeanUtils.copyProperties() 用法
- deep&nbsp;copy&nbsp;and&nbsp;shadow&nbsp;copy
- 视频播放器MX Player Pr…
- 视频播放器MX Player Pr…
- 暗原色先验(Dark&nbsp;channel&nbsp;pr…
- java&nbsp;类,方法,变量的说明符&nbsp;&nbsp;&nbsp;pr…
- Copy fields from …
- ME21N 根据PR Type自动…
- If&nbsp;VNCView&nbsp;doesn&#039;t&nbsp;support&nbsp;copy/…
- 视频播放器MX Player Pr…
- 视频播放器MX Player Pr…
- Python&nbsp;shutil.copy&nbsp;函数
- PO text copy rule…
- 视频播放器MX Player Pr…
- javascript&nbsp;中&nbsp;ajax&nbsp;&nbsp;事例&nbsp;(copy)