首页 > 其他分享 >BDC问题汇总

BDC问题汇总

时间:2024-03-07 17:25:12浏览次数:29  
标签:gs bdc BDC PERFORM 汇总 问题 field USING bdcdata

定义

DATA: gt_bdcdata TYPE TABLE OF bdcdata,
      gs_bdcdata TYPE bdcdata.

子程序

FORM bdc_dynpro USING program dynpro.
  gs_bdcdata-program  = program.
  gs_bdcdata-dynpro   = dynpro.
  gs_bdcdata-dynbegin = 'X'.
  APPEND gs_bdcdata TO gt_bdcdata.
  CLEAR gs_bdcdata.
ENDFORM.

*----------------------------------------------------------------------*
*        Insert field                                                  *
*----------------------------------------------------------------------*
FORM bdc_field USING fnam fval.
  gs_bdcdata-fnam = fnam.
  gs_bdcdata-fval = fval.
  APPEND gs_bdcdata TO gt_bdcdata.
  CLEAR gs_bdcdata.
ENDFORM.

调用

  DATA: lv_mode   TYPE char1 VALUE 'N',
        lv_update TYPE char1 VALUE 'S',
        lv_msg    TYPE string.


  DATA: lt_messtab TYPE TABLE OF bdcmsgcoll,
        ls_messtab TYPE bdcmsgcoll,
        lt_return  TYPE TABLE OF bapiret2.
    CALL TRANSACTION 'AIBU' USING gt_bdcdata
                            MODE lv_mode
                            UPDATE lv_update
                            MESSAGES INTO lt_messtab.

消息读取

 CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
      TABLES
        imt_bdcmsgcoll = lt_messtab
        ext_return     = lt_return.

 

 

参考代码如下:

LOOP AT lt_head ASSIGNING FIELD-SYMBOL(<fs_head>).




    PERFORM bdc_dynpro      USING 'SAPMA12B' '0100'.
    PERFORM bdc_field       USING 'BDC_CURSOR'
                                  'LKO74-TESTLAUF'.
    PERFORM bdc_field       USING 'BDC_OKCODE'
                                  '=AUSF'.
    PERFORM bdc_field       USING 'ANLA-BUKRS'
                                  <fs_head>-bukrs."record-bukrs_001.
    PERFORM bdc_field       USING 'ANLA-ANLN1'
                                  <fs_head>-anln1."record-anln1_002.
    PERFORM bdc_field       USING 'ANLA-ANLN2'
                                  <fs_head>-anln2."record-anln2_003.
    PERFORM bdc_field       USING 'ANEK-BLDAT'
                                  p_budat."record-bldat_004.
    PERFORM bdc_field       USING 'ANEP-BZDAT'
                                  p_budat."record-bzdat_005.
    PERFORM bdc_field       USING 'ANEK-BUDAT'
                                  p_budat."record-budat_006.
    PERFORM bdc_field       USING 'ANBZ-MONAT'
                                  '01'."record-monat_007.
    PERFORM bdc_field       USING '*KOMK3-SGTXT'
                                  <fs_head>-c_sgtxt."record-sgtxt_008.
    PERFORM bdc_field       USING '*KOMK1-BLART'
                                  'AA'."record-blart_009.
    PERFORM bdc_field       USING 'LKO74-TESTLAUF'
                                  ' '."record-testlauf_010.
    PERFORM bdc_field       USING 'LKO74-LIST'
                                  'X'."record-list_011.

    CALL TRANSACTION 'AIBU' USING gt_bdcdata
                            MODE lv_mode
                            UPDATE lv_update
                            MESSAGES INTO lt_messtab.


    CALL FUNCTION 'CONVERT_BDCMSGCOLL_TO_BAPIRET2'
      TABLES
        imt_bdcmsgcoll = lt_messtab
        ext_return     = lt_return.


    READ TABLE lt_messtab INTO ls_messtab WITH KEY msgtyp = 'S'.
    IF sy-subrc = 0.

      READ TABLE lt_return INTO DATA(ls_return) INDEX 1.


      CLEAR gs_excel-aiab_msg.
      gs_excel-aibu_msg = '过账成功'.
      MODIFY gt_excel FROM gs_excel TRANSPORTING aibu_msg WHERE bukrs = <fs_head>-bukrs
                                                            AND anln1 = <fs_head>-anln1
                                                            AND anln2 = <fs_head>-anln2.


    ELSE.

      CLEAR lv_msg.
      LOOP AT lt_return INTO ls_return WHERE type = 'E'.
        lv_msg =  lv_msg && ls_return-message .
      ENDLOOP.

      CLEAR gs_excel-aiab_msg.
      gs_excel-aibu_msg = '过账失败:' && lv_msg.
      MODIFY gt_excel FROM gs_excel TRANSPORTING aibu_msg WHERE bukrs = <fs_head>-bukrs
                                                            AND anln1 = <fs_head>-anln1
                                                            AND anln2 = <fs_head>-anln2.


    ENDIF.



    CLEAR :gt_bdcdata,
           lt_messtab,
           lt_return.


  ENDLOOP.

 

标签:gs,bdc,BDC,PERFORM,汇总,问题,field,USING,bdcdata
From: https://www.cnblogs.com/Anyohh233/p/18059341

相关文章

  • element-ui 文件上传问题记录
    今天做用element文件上传组件遇到个问题,部分代码如下:   后台代码 测试文件怎么都传不到后台去,用postman上传又可以。最后喊前端同事看了下,前端取文件的时候不能直接写,要取file.raw,像这样: 然后就可以了......
  • java过滤器拦截路劲问题
    在我们使用filter过滤器时注解@WebFilter("/serverlet/demo1/")多层目录只针对文件注解@WebServlet(name="Servlet1",value="/serverlet/demo1/test1")具有过滤作用(原因:注解路径相同),其中“@WebFilter("/serverlet/demo1/")”括号里的*代表只要serverlet注解前半部分相同的文......
  • 实体类与数据库的直接交互问题,DTO,AutoMapper的使用
    实体类、DTO与数据库交互的最佳实践实体类与数据库的直接交互问题在软件开发中,实体类通常被设计为反映业务域的数据模型。这些实体类可能包含以下元素:特性(Attributes):用于定义实体属性的额外信息,比如数据验证规则或ORM(对象关系映射)框架的映射信息。继承关系:实体之间可能存......
  • css样式属性 使用汇总,补齐前端短板
    ---------------index.css常用网站css样式属性使用汇总1-------------/*先删除默认的内外边距*/*{margin:0;padding:0;}body{background-color:#fafafa;height:2000px;}li{list-style:none;/*取消li的符号*/}/*顶部导航栏开......
  • Vue+Axios的方法异步回调顺序问题
    一、问题阐述有的时候我们需要控制异步函数的执行顺序,比如a方法中如果要用到异步函数b方法的请求结果,就需要进行顺序控制,否则a函数先执行就会导致找不到数据直接报错。二、方法1.异步控制1.1.async,await等做异步控制1.2修改函数放置位置达到异步控制效果(我遇到的情况无效,但......
  • C#-关于多线程下锁的使用,提高共享资源利用率的问题思考
    前一段时间阅读某公司项目的代码,发现类的单例模式无处不在,为了控制单例全局对象属性跨线程访问到处加锁,由于每个研发人员技术及业务水平参差不齐,锁的控制范围可能会扩大化,真正需要锁住的变量利用率降低。举例:全局变量intCount=0;定义锁对象objectCountLocker=newObject......
  • 【教程】HBuilderX开发实践:隐私合规检测问题解决方案
    文章目录摘要引言正文1、违规收集个人信息2、APP强制、频繁、过度索取权限知识点补充总结 摘要本篇博客介绍了在使用HBuilderX进行开发过程中,常遇到的隐私合规问题,并提供了相应的解决方案。主要包括违规收集个人信息和APP强制、频繁、过度索取权限两方面。......
  • Pyaudio库的安装及问题
    Pyaudio是一个可以用麦克风录入声音的库,但我在安装时发现无论是在cmd中pip安装还是在Pycharm中安装,都会报一堆错误。因此写一篇我最终的解决方案,我的解决办法是采用离线安装的方式,安装pyaudio库。一.下载离线安装包离线安装包下载位置注意自己的Python版本和操作系统版本,下载对......
  • 关于uniapp调用支付宝登录问题
    uniapp的uni.login的provider不支持支付宝但是呢,我看插件市场都要钱这个还需要钱吗你直接硬写呗,支付宝比如登录官方时这么写的ok 我们在uniapp上也这么写就行了button调用一键登录uniapp不会报错,然后我们发行打包到支付宝的开发工具里经测试可以正常使用 返回 ......
  • 【Oracle】使用like的时候遇到的问题
    【Oracle】使用like的时候遇到的问题like语句其中的%就代表着一个零或者多个字符,_代表一个字符,%与_可以同时使用name想查询以‘_’结尾的字符用这个语句就会有问题selectcount(1)fromdualwhere'底壳组件.pdf'like'%_'LIKE语句与多个下划线一样可以匹配出来数据,一般遇......