1.F110 删除操作的增强:
方法:SE19   ZE_F110_DELETE_CHECK

代码:
ENHANCEMENT 1  ZE_F110_DELETE_CHECK.    "active version
**ZE_F110_DELETE_CHECK add by xiangc on 20170506 for  F110 付款建议删除前的检查,建议ID在审核状态不允许删除.
**require by fi_luotang
DATA:LS_ZTYJ_FK_STATUS TYPE ZTYJ_FK_STATUS.
DATA:lv_answer TYPE c.

CASE OK-CODE.
*------- Zahlungsaufträge löschen --------------------------------------
*    WHEN 'PYOD'.
*      SUBMIT RFPYORDD AND RETURN WITH  PARLAUFD INCL F110V-LAUFD
*                                 WITH  PARLAUFI INCL F110V-LAUFI
*                                 VIA   SELECTION-SCREEN.
*------- Vorschlagslauf Loeschen ---------------------------------------
    WHEN 'VODE'.
* break c_xiangc.
      CLEAR:LS_ZTYJ_FK_STATUS.
      SELECT SINGLE *
        INTO LS_ZTYJ_FK_STATUS
        FROM ZTYJ_FK_STATUS
       WHERE LAUFD = F110V-LAUFD
         AND LAUFI = F110V-LAUFI
         AND ZCHEC = 'X'.
      IF SY-SUBRC EQ 0.
*        MESSAGE S020(ZYUEJIN_FICO) WITH F110V-LAUFD F110V-LAUFI DISPLAY LIKE 'E'.
*        EXIT.
      CALL FUNCTION 'POPUP_TO_CONFIRM'
        EXPORTING
          titlebar              = '请确认'
          text_question         = '此付款ID在审核中,是否确认删除?'
          text_button_1         = '确认删除'
          text_button_2         = '不删除'
          default_button        = '1'      "缺省选中按钮: 1 是; 2 
          display_cancel_button = ''       "标识: 为空,不显示 取消按钮
        IMPORTING
          answer                = lv_answer                 "1 是;
        EXCEPTIONS
          text_not_found        = 1
          OTHERS                = 2.
      IF lv_answer EQ '1'.
 UPDATE ztyj_fk_status SET zchec = ' '
                           datum = sy-datum
                           uzeit = sy-uzeit
                           usnam = sy-uname
                     WHERE laufd = F110V-laufd
                       AND laufi = F110V-laufi.
       MESSAGE S023(ZYUEJIN_FICO) WITH F110V-LAUFD F110V-LAUFI.
      else.
        exit.
      ENDIF.

ENDIF.

WHEN OTHERS.
    ...
   ENDCASE.

ENDENHANCEMENT.

Transaction
Code - F110  自动付款参数

BADI Name            Description

FI_BSTM_MC_EXIT                   FI 帐户报表: 多项兑现转化的退出

FI_F110_SCHEDULE_JOB F110: 在建议/更新运行计划安排前的检查

No
of BADIs:          2

2.F110 付款运行前的 解除凭证行项目冻结标记增强
SE19
:FI_F110_SCHEDULE_JOB  
F110: 在建议/更新运行计划安排前的检查

实现方式:SE24  
ZCL_IM_FI_F110_SCHEDULE_JB

代码:
METHOD IF_EX_FI_F110_SCHEDULE_JOB~CHECK_PARAMETER.
**供应商所有付款建议有冻结的凭证全部解冻结
  TYPE-POOLS: TPIT.
  FIELD-SYMBOLS <FS_LIFNR> TYPE STANDARD TABLE.
  TYPES: BEGIN OF T_BSEG,
           BUKRS TYPE BSEG-BUKRS,
           BELNR TYPE BSEG-BELNR,
           GJAHR TYPE BSEG-GJAHR,
           BUZEI TYPE BSEG-BUZEI,
           KOART TYPE BSEG-KOART,
         END OF T_BSEG.
  DATA: LS_REGUV TYPE REGUV,
        LV_FIELD(20),
        LT_BSIK TYPE TABLE OF BSIK,
        LS_BSIK TYPE BSIK,
        LT_BSEG TYPE TABLE OF T_BSEG,
        LS_BSEG TYPE T_BSEG,
        S_BSEG  TYPE BSEG,
        LT_BUZTAB  TYPE TPIT_T_BUZTAB,
        LS_BUZTAB  TYPE LINE OF TPIT_T_BUZTAB,
        LT_FLDTAB  TYPE TPIT_T_FNAME,
        LS_FLDTAB  TYPE LINE OF TPIT_T_FNAME,
        LT_ERRTAB TYPE TPIT_T_ERRDOC,
        LS_ERRTAB TYPE LINE OF TPIT_T_ERRDOC,
        LR_LIFNR  TYPE FAGL_RANGE_T_LIFNR,
        LS_LIFNR  TYPE FAGL_RANGE_S_LIFNR.
**  BREAK-POINT.
**  CHECK 1 = 2.
**F110 自动付款时: 参数已输入和收付建议已经建立才跑解冻结
** 状态:点按钮"付款运行"时执行以下解冻结逻辑
*  CHECK I_F110V-BUKLS+0(4) = 'CV50' OR I_F110V-BUKLS+0(4) = 'CV51'.
  CLEAR: LS_REGUV.
  SELECT SINGLE * INTO LS_REGUV
      FROM REGUV
    WHERE LAUFD = I_F110V-LAUFD
      AND LAUFI = I_F110V-LAUFI.
  CHECK LS_REGUV-XVORE = 'X' AND LS_REGUV-XECHT IS INITIAL.
**取供应商
  REFRESH:LR_LIFNR,LT_BSIK,LT_BSEG.
  LV_FIELD = '(SAPF110V)R_LIFNR[]'.
  ASSIGN (LV_FIELD) TO <FS_LIFNR>.
  IF <FS_LIFNR>[] IS ASSIGNED.
    LR_LIFNR[] = <FS_LIFNR>[].
    UNASSIGN <FS_LIFNR>.
  ENDIF.

**取供应商已被冻结的数据
  SELECT * INTO TABLE LT_BSIK
      FROM BSIK
    WHERE BUKRS = I_F110V-BUKLS+0(4)
      AND GJAHR = I_F110V-LAUFD+0(4)
      AND LIFNR IN LR_LIFNR
**      AND BSTAT = SPACE
**      AND BSCHL = '31'
      AND ZLSPR = 'X'. "X:(跃进)自动付款冻结

CHECK LT_BSIK[] IS NOT INITIAL.
**取科目类型
  SELECT BUKRS BELNR GJAHR BUZEI KOART
      INTO CORRESPONDING FIELDS OF TABLE LT_BSEG
      FROM BSEG
      FOR ALL ENTRIES IN LT_BSIK
    WHERE BUKRS = LT_BSIK-BUKRS
      AND BELNR = LT_BSIK-BELNR
      AND GJAHR = LT_BSIK-GJAHR
      AND BUZEI = LT_BSIK-BUZEI.
  SORT LT_BSEG BY BUKRS BELNR GJAHR BUZEI.
  LOOP AT LT_BSIK INTO LS_BSIK.
    CLEAR: S_BSEG,LS_BSEG,LS_FLDTAB,LT_FLDTAB[],
           LS_FLDTAB,LT_FLDTAB[],LS_ERRTAB,LT_ERRTAB[].
    READ TABLE LT_BSEG INTO LS_BSEG WITH KEY BUKRS = LS_BSIK-BUKRS
                                             BELNR = LS_BSIK-BELNR
                                             GJAHR = LS_BSIK-GJAHR
                                             BUZEI = LS_BSIK-BUZEI
                                             BINARY SEARCH.
    LS_BUZTAB-BUKRS = LS_BSIK-BUKRS.
    LS_BUZTAB-BELNR = LS_BSIK-BELNR.
    LS_BUZTAB-GJAHR = LS_BSIK-GJAHR.
    LS_BUZTAB-BUZEI = LS_BSIK-BUZEI.
    LS_BUZTAB-KOART = LS_BSEG-KOART.
    LS_BUZTAB-BSCHL = LS_BSIK-BSCHL.
    APPEND LS_BUZTAB TO LT_BUZTAB.

LS_FLDTAB-FNAME = 'ZLSPR'.
    APPEND LS_FLDTAB TO LT_FLDTAB.
**
    CALL FUNCTION 'FI_ITEMS_MASS_CHANGE'
      EXPORTING
        S_BSEG     = S_BSEG
      IMPORTING
        ERRTAB     = LT_ERRTAB
      TABLES
        IT_BUZTAB  = LT_BUZTAB
        IT_FLDTAB  = LT_FLDTAB
      EXCEPTIONS
        BDC_ERRORS = 1
        OTHERS     = 2.
    IF SY-SUBRC <> 0.
      MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      EXIT.
    ENDIF.
  ENDLOOP.
ENDMETHOD.

3.财务凭证项目付款条件替代

*---------------------------------------------------------------------*
*       FORM Z002                                                     *
*---------------------------------------------------------------------*
*替代付款方式:BSEG-ZTERM
*1.系统根据BSEG-BUKRS(公司代码)=(CV50,CV51,CV52),
*  BSEG-KOART(科目类型)=K,
* 根据BSEG-LIFNR(供应商账号)到LFB1-LIFNR=BSEG-LIFNR,
* LFB1-BUKRS=BESG-BUKRS(公司代码),找到LFB1-ZTERM赋值给BSEG-ZTERM
*
*---------------------------------------------------------------------*
FORM Z002.
*BREAK-POINT.
*&--->add on 16.05.2017 10:30:38  by cx.
  DATA:l_zterm TYPE lfb1-zterm.

CLEAR:l_zterm.
  SELECT SINGLE zterm
    INTO l_zterm
    FROM lfb1
   WHERE lifnr = bseg-lifnr
     AND bukrs = bseg-bukrs.
  IF l_zterm NE space.
    CONDENSE l_zterm NO-GAPS.
    bseg-zterm = l_zterm.
  ENDIF.
*&--->end add.

ENDFORM.

F110增强的更多相关文章

  1. F110 BADI增强

    F110*JOB*&------------------------------------------------------------- F110 BADI FI_BSTM_MC_EXI ...

  2. 将表里的数据批量生成INSERT语句的存储过程 增强版

    将表里的数据批量生成INSERT语句的存储过程 增强版 有时候,我们需要将某个表里的数据全部或者根据查询条件导出来,迁移到另一个相同结构的库中 目前SQL Server里面是没有相关的工具根据查询条件 ...

  3. ES5对Array增强的9个API

    为了更方便的对Array进行操作,ES5规范在Array的原型上新增了9个方法,分别是forEach.filter.map.reduce.reduceRight.some.every.indexOf ...

  4. Taurus.MVC 2.2 开源发布:WebAPI 功能增强(请求跨域及Json转换)

    背景: 1:有用户反馈了关于跨域请求的问题. 2:有用户反馈了参数获取的问题. 3:JsonHelper的增强. 在综合上面的条件下,有了2.2版本的更新,也因此写了此文. 开源地址: https:/ ...

  5. 马里奥AI实现方式探索 ——神经网络+增强学习

    [TOC] 马里奥AI实现方式探索 --神经网络+增强学习 儿时我们都曾有过一个经典游戏的体验,就是马里奥(顶蘑菇^v^),这次里约奥运会闭幕式,日本作为2020年东京奥运会的东道主,安倍最后也已经典 ...

  6. 升讯威ADO.NET增强组件(源码):送给喜欢原生ADO.NET的你

    目前我们所接触到的许多项目开发,大多数都应用了 ORM 技术来实现与数据库的交互,ORM 虽然有诸多好处,但是在实际工作中,特别是在大型项目开发中,容易发现 ORM 存在一些缺点,在复杂场景下,反而容 ...

  7. 增强学习(三)----- MDP的动态规划解法

    上一篇我们已经说到了,增强学习的目的就是求解马尔可夫决策过程(MDP)的最优策略,使其在任意初始状态下,都能获得最大的Vπ值.(本文不考虑非马尔可夫环境和不完全可观测马尔可夫决策过程(POMDP)中的 ...

  8. FFmpeg滤镜实现区域视频增强 及 D3D实现视频播放区的拉大缩小

    1.区域视频增强 FFmpeg滤镜功能十分强大,用滤镜可以实现视频的区域增强功能. 用eq滤镜就可以实现亮度.对比度.饱和度等的常用视频增强功能. 推荐两篇写得不错的博文: (1)ffmpeg综合应用 ...

  9. 最新GHOST XP系统下载旗舰增强版 V2016年

    系统来自:系统妈:http://www.xitongma.com 深度技术GHOST xp系统旗舰增强版 V2016年3月 系统概述 深度技术ghost xp系统旗舰增强版集合微软JAVA虚拟机IE插 ...

随机推荐

  1. Mybatis 使用PageHelper封装通用Dao分页方法

    参考: PageHelper官网:https://pagehelper.github.io/docs/howtouse/#3-%E5%A6%82%E4%BD%95%E5%9C%A8%E4%BB%A3% ...

  2. Vue 实例成员

    Vue 一. 什么是Vue 可以独立完成前后端分离时 Web项目的JavaScript框架 二.为什么学Vue 前端三大主流框架:Angular React Vue Vue结合了其他框架优点.轻量级. ...

  3. CEOI2019 / CodeForces 1192B. Dynamic Diameter

    题目简述:给定一棵$N \leq 10^5$个节点的树,边上带权,维护以下两个操作: 1. 修改一条边的边权: 2. 询问当前树的直径长度. 解1:code 注意到树的直径有以下性质: 定理:令$\t ...

  4. 015_Python3 迭代器与生成器

    迭代器 迭代是Python最强大的功能之一,是访问集合元素的一种方式. 迭代器是一个可以记住遍历的位置的对象. 迭代器对象从集合的第一个元素开始访问,直到所有的元素被访问完结束.迭代器只能往前不会后退 ...

  5. DVWA-文件包含漏洞

    本周学习内容: 1.学习web安全深度剖析: 2.学习安全视频: 3.学习乌云漏洞: 4.学习W3School中PHP: 实验内容: 进行DVWA文件包含实验 实验步骤: Low 1.打开DVWA,进 ...

  6. 洛谷 P2058 海港 题解

    P2058 海港 题目描述 小K是一个海港的海关工作人员,每天都有许多船只到达海港,船上通常有很多来自不同国家的乘客. 小K对这些到达海港的船只非常感兴趣,他按照时间记录下了到达海港的每一艘船只情况: ...

  7. (21)打鸡儿教你Vue.js

    组件化思想: 组件化实现功能模块的复用 高执行效率 开发单页面复杂应用 组件状态管理(vuex) 多组件的混合使用 vue-router 代码规范 vue-router <template> ...

  8. 一次 react-router 中遇到的小坑

    react-router Link 标签不生效的问题 废话不多说, 直接上问题, 排解过程和答案 现象: 发现 使用 Link 标签没有 元素的样式和效果, 也不能进行跳转 代码如下: render( ...

  9. 数据结构实验之查找六:顺序查找(SDUT 3378)

    (不知道为啥开个数组就 TLE .QAQ) #include <stdio.h> #include <stdlib.h> #include <string.h> / ...

  10. linux系统下常用的打包/解压缩包命令

    此处大概列了常用的解压和打包命令,详细信息需要百度一一对比他们的区别,比如我们在下载软件时就是最好的实践. 用zip举例说明,使用命令压缩时有点是,压缩文件.目录会非常快:如图,我压缩了一个progr ...