SAP ABAP编程 采购订单过账冲销

DATA lt_return    TYPE  TABLE  OF bapiret2  WITH  HEADER  LINE .

DATAl_err_flag  TYPE VALUE ''.  "确认操作符

DATAg_lblni     TYPE lblni.    " 服务输入单条目表号

DATAg_posting_dat TYPE sy-datum.  "记账日期

  DATA l_string     TYPE string .

   " 获取采购订单抬头
   CLEAR gw_ekpo ,gt_ekpo ,gw_ekko ,gt_ekko .
   SELECT FROM ekko
     INTO CORRESPONDING  FIELDS  OF  TABLE gt_ekko
    WHERE ebeln  EQ g_ebeln .

   " 获取采购订单行项目
   SELECT FROM ekpo
     INTO CORRESPONDING  FIELDS  OF  TABLE gt_ekpo
    WHERE ebeln  EQ g_ebeln .
   IF sy -subrc <>  0 .
     CONCATENATE  '结算单' g_jsd  '没有生成采购订单,无法过账冲销!'  INTO str .
     MESSAGE str  TYPE  'E' .
   ENDIF .
   "循环冲销

   LOOP  AT gt_ekpo  INTO gw_ekpo .
***过账函数
     CLEAR g_lblni .
     SELECT  SINGLE lblni
       INTO g_lblni  FROM essr
       WHERE ebeln  gw_ekpo -ebeln  AND ebelp  gw_ekpo -ebelp  AND loekz  '' .
     CHECK sy -subrc  0 .

     CALL  FUNCTION  'BBP_ENTRYSHEET_CANCEL'
       EXPORTING
        entrysheet       g_lblni
        posting_date_fi  g_posting_dat
       TABLES
         return           lt_return[] .

     READ  TABLE lt_return  WITH  KEY  type  'E' .
     IF sy -subrc  EQ  .
      l_err_flag  '' .
       CONCATENATE  '结算单' g_jsd1  '过账冲销失败!' lt_return - message  INTO l_string .
       MESSAGE l_string  TYPE  'E' .
     ELSE .
       WAIT  UP  TO  SECONDS .   "等待1秒, 在进行下一次过账冲销
     ENDIF .

     IF l_err_flag  NE  'X' .
       RETURN .
     ENDIF .

  ENDLOOP.

    CONCATENATE '结算单' g_jsd1 '过账冲销成功! 条目:' g_lblni INTO l_string.
    MESSAGE l_string TYPE 'S'.

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值