ABAP QA11检验批决策的创建

  • BAPI_INSPLOT_SETUSAGEDECISION->对应事务代码QA11决策部分
    该函数只能用于做决策、计分的操作,没有针对检验批库存过账的操作,其中需要过账部分采用的是BDC
FORM frm_ptueflos USING ls_data STRUCTURE zsy_s_me_jypjc CHANGING l_flag l_
msg .
 DATA ud_data LIKE bapi2045ud.
 DATA:ud_return_data LIKE bapi2045ud_return,
          stock_data LIKE bapi2045d_il2,
           ls_return LIKE bapireturn1.
           ud_data-insplot = ls_data-prueflos.
           ud_data-ud_code = ls_data-vcode.
*         ud_data-ud_plant = ls_data-selwerk.
     ud_data-ud_code_group = ls_data-vcodegrp.
   ud_data-ud_selected_set = ls_data-vauswahlmg.
* ud_data-ud_stock_posting = 'X'. "是否进行过帐
* 
 CALL FUNCTION 'BAPI_INSPLOT_SETUSAGEDECISION'
   EXPORTING
         number = ls_data-prueflos
        ud_data = ud_data
* LANGUAGE =
   IMPORTING
 ud_return_data = ud_return_data
     stock_data = stock_data
         return = ls_return
* TABLES
* SYSTEM_STATUS =
* USER_STATUS =
 .
 IF ls_return-type = 'E'.
    CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.
      l_flag = 'E'.
      l_msg = ls_return-message.
 ELSE.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
      l_flag = 'S'.
      l_msg = '处理成功'.
 ENDIF.
ENDFORM.
  • 批输入数据定义->对应事务代码QA11过账部分
    BDC调用代码:
 DATA: gs_bdc TYPE bdcdata,
 gt_bdc TYPE TABLE OF bdcdata,
 gs_msg TYPE bdcmsgcoll,
 gt_msg TYPE TABLE OF bdcmsgcoll.
 PERFORM frm_bdc_build USING: 'X' 'SAPMQEVA' '0100',
                              ' ' 'BDC_CURSOR' 'QALS-PRUEFLOS',
                              ' ' 'BDC_OKCODE' '=NB',
                              ' ' 'QALS-PRUEFLOS' <fs>-prueflos,
                              'X' 'SAPMQEVA' '0200',
                              ' ' 'BDC_OKCODE' '=BB',
                              ' ' 'BDC_CURSOR' 'RQEVA-VCODE',
                              ' ' 'RQEVA-VCODE' <fs>-vcode,
                              ' ' 'RQEVA-VCODEGRP' <fs>-vcodegrp,
                              'X' 'SAPMQEVA' '0200',
                              ' ' 'BDC_OKCODE' '/00',
                              ' ' 'BDC_CURSOR' 'RQEVA-VMENGE01',
                              ' ' 'RQEVA-VMENGE01' l_value ,"检验批数量
                              ' ' 'BDC_CURSOR' 'RQEVA-VMENGE07',
                              ' ' 'RQEVA-VMENGE07' <fs>-zmenge1,"消耗数量
                              ' ' 'RQEVA-QLGO_VM01' <fs>-qlgortvorg,
                              ' ' 'RQEVA-QLGO_VM04' <fs>-qlgortvorg,
                              ' ' 'RQEVA-QLGO_VM06' <fs>-qlgortvorg,
                              'X' 'SAPMQEVA' '0122',
                              ' ' 'RQEVA-GRUND' '0002',"原因
                              'X' 'SAPMQEVA' '0200',
                              ' ' 'BDC_OKCODE' '=BU'.
 
 CALL TRANSACTION 'QA11' USING gt_bdc
             MODE 'N' "A:调试 N:不显示 E:错误时调试
           UPDATE 'S' "A:异步 S:同步 L:本地更新
         MESSAGES INTO gt_msg.
 IF sy-subrc <> 0.
   LOOP AT gt_msg INTO gs_msg.
   
     CLEAR lv_mtext.
   MESSAGE ID gs_msg-msgid
      TYPE gs_msg-msgtyp
    NUMBER gs_msg-msgnr
      INTO lv_mtext
      WITH gs_msg-msgv1 gs_msg-msgv2 gs_msg-msgv3 gs_msg-msgv4.
      
     it_return-message = it_return-message && lv_mtext.
 
   ENDLOOP.
   
 it_return-prueflos = <fs>-prueflos.
 it_return-selwerk = <fs>-selwerk.
 it_return-status = 'E'.
 APPEND it_return.
 
 ELSE.
 
 it_return-prueflos = <fs>-prueflos.
 it_return-selwerk = <fs>-selwerk.
 it_return-status = 'S'.
 it_return-message = '处理成功'.
 APPEND it_return.
 
 ENDIF.
 
 "FRM_BDC_BUILD
 
FORM frm_bdc_build USING dynbegin fnam fval.

 CLEAR : gs_bdc.
 
 IF dynbegin = 'X'.
 
 gs_bdc-dynbegin = 'X'.
 gs_bdc-program = fnam.
 gs_bdc-dynpro = fval.
 APPEND gs_bdc TO gt_bdc.
 
 ELSE.
 
 gs_bdc-fnam = fnam.
 gs_bdc-fval = fval.
 CONDENSE gs_bdc-fval NO-GAPS.
 APPEND gs_bdc TO gt_bdc.
 
 ENDIF.
 
ENDFORM.
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值