做预留时 与外部系统同步的代码
来源:互联网 发布:淘宝无线店铺装修教程 编辑:程序博客网 时间:2024/05/14 21:03
FUNCTION zexit_sapmm07r_001.
*"----------------------------------------------------------------------
*"*"Local interface:
*" TABLES
*" TI_RKPF STRUCTURE RKPF
*" TI_RESB_NEW STRUCTURE RESB
*" TI_RESB_OLD STRUCTURE RESB
*" TI_DM07R STRUCTURE DM07R
*" TI_RESB_ADDED STRUCTURE RESBN OPTIONAL
*"----------------------------------------------------------------------
TABLES rkpf.
DATA resnum LIKE resb-rsnum.
DATA len TYPE i.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
sql_error type bapiret2-message,
rootexcept type ref to CX_ROOT.
try.
MOVE 0 TO len.
DESCRIBE TABLE ti_rkpf LINES len.
IF len EQ 0.
DESCRIBE TABLE ti_resb_new LINES len.
IF len NE 0.
READ TABLE ti_resb_new INDEX 1.
resnum = ti_resb_new-rsnum.
ELSE.
DESCRIBE TABLE ti_resb_added LINES len.
IF len NE 0.
READ TABLE ti_resb_added INDEX 1.
resnum = ti_resb_added-rsnum.
ELSE.
EXIT.
ENDIF.
ENDIF.
IF resnum EQ space.
EXIT.
ENDIF.
SELECT SINGLE * FROM rkpf WHERE rsnum EQ resnum.
CHECK sy-subrc EQ 0.
IF rkpf-wempf EQ space.
EXIT.
ENDIF.
ELSE.
READ TABLE ti_rkpf INDEX 1.
CHECK ti_rkpf-wempf NE space.
ENDIF.
* 接收人为空 就退出 over
*将新 和增加的 放到 外面的oracle
try.
EXEC SQL.
CONNECT TO 'TFCSM'
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
sql_error = exc_ref->get_text( ).
CALL FUNCTION 'Z_SYN_ST'
EXPORTING
txt = sql_error
num = '991'
styp = 'E'.
endtry.
LOOP AT ti_resb_new.
CHECK ti_resb_new-werks EQ '2020'.
PERFORM sy_res USING ti_resb_new-matnr
ti_resb_new-lgort
ti_resb_new-bdmng.
ENDLOOP.
LOOP AT ti_resb_added.
CHECK ti_resb_added-werks EQ '2020'.
PERFORM sy_res USING ti_resb_added-matnr
ti_resb_added-lgort
ti_resb_added-bdmng
.
ENDLOOP.
EXEC SQL.
commit
ENDEXEC.
EXEC SQL.
DISCONNECT 'TFCSM'
ENDEXEC.
catch CX_ROOT into rootexcept.
sql_error = rootexcept->get_text( ).
CALL FUNCTION 'Z_SYN_ST'
EXPORTING
txt = sql_error
num = '988'
styp = 'E'.
endtry.
ENDFUNCTION.
*&--------------------------------------------------------------------*
*& Form sy_res
*&--------------------------------------------------------------------*
* text
*---------------------------------------------------------------------*
* -->VALUE(MATNRtext
* -->VALUE(LGORTtext
* -->VALUE(BDMNGtext
*---------------------------------------------------------------------*
FORM sy_res USING value(matnr)
value(lgort)
value(bdmng).
DATA : lmatnr LIKE mara-matnr,
llgort LIKE resb-lgort,
lbdmng LIKE resb-bdmng.
DATA: exc_ref TYPE REF TO cx_sy_native_sql_error,
sql_error TYPE bapiret2-message.
lbdmng = bdmng.
llgort = lgort.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = matnr
IMPORTING
output = lmatnr.
TRY.
EXEC SQL.
update base_storehouseinfo_materiel
set obligate_count =
obligate_count + :lbdmng
where materiel_id = :lmatnr
and storehouse_code = :llgort
ENDEXEC.
CATCH cx_sy_native_sql_error INTO exc_ref.
sql_error = exc_ref->get_text( ).
CALL FUNCTION 'Z_SYN_ST'
EXPORTING
txt = sql_error
num = '990'
styp = 'E'.
ENDTRY.
ENDFORM. "sy_res
- 做预留时 与外部系统同步的代码
- 释放 Linux 系统预留的硬盘空间
- sap 同步jco与外部数据库数据同步的问题
- 使用grub的memmap的预留内存时系统死机问题的一个解决方案
- SVN系统实现多系统环境下的代码审核与版本同步
- HttpUrlConnection下载cookie与访问时需要附带cookie的预留
- 库存之 硬预留与软预留
- 系统设计时请预留出扩展的余地
- “与银行预留的手机号码不一致”的问题解决方法
- SharePoint 2016与外部系统人员信息同步(一,Excel数据导入到AD)
- SAP系统与外部系统的三种接口形式
- 代码块与函数的同步
- 同步方法与同步代码的区别浅解
- 同步方法与同步代码块的区别?
- 同步方法与同步代码块的区别
- 验证同步代码块与同步函数的锁【多线程】
- 验证同步代码块与同步函数的锁【多线程】
- 与电台同步的网上广播系统
- frame收藏
- JAVA WEB程序中添加定时器
- 近期问题总结
- asp.net 将Excel导入到Sql2005或2000
- 源码,反码,补码
- 做预留时 与外部系统同步的代码
- 守股比守寡难?
- 小帅的七个男友 第一章 未恋先失
- 如何快速找回数据库表中误删除的数据
- Oracle 系统表大全
- 四种属性范围(重点)
- 通用的分页储存过程
- 过卡巴斯基主动防御
- Effective Java——Item8:改写equals的时候总是要改写hashCode