ABAP QA11检验批决策的创建

it2023-06-09  72

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.
最新回复(0)