网上查找关于创建质检通知单相关bapi时,基本都是显示BAPI_QUALNOT_CREATE该函数,经查看,该函数缺少QF01缺陷记录的参数,比如检验批,退货数量等字段,同时即使该函数成功执行,生成的通知单也是有问题的,记录的原因,活动,任务都是空白,并未保存成功,qm模块网上资料甚少,经过不懈查找终于找到该IQS4_CREATE_NOTIFICATION函数完美匹配写入参数。
该函数可写入检验批,退货数量,缺陷记录报告类型,绑定生产订单,工艺路线以及工序编号等数据,并且标准表记录数值。
下面是该函数的使用简例:
DATA: ls_riqs5 TYPE riqs5,ls_viqmel TYPE viqmel,lt_rfc_tline TYPE TABLE OF rfc_tline,lt_rfc_viqmfe TYPE TABLE OF rfc_viqmfe,lt_rfc_viqmur TYPE TABLE OF rfc_viqmur,lt_rfc_viqmsm TYPE TABLE OF rfc_viqmsm,lt_rfc_viqmma TYPE TABLE OF rfc_viqmma,lt_rfc_ihpa TYPE TABLE OF rfc_ihpa,lt_rfc_key TYPE TABLE OF rfc_key,ls_rfc_tline TYPE rfc_tline,ls_rfc_viqmfe TYPE rfc_viqmfe,ls_rfc_viqmur TYPE rfc_viqmur,ls_rfc_viqmsm TYPE rfc_viqmsm,ls_rfc_viqmma TYPE rfc_viqmma,ls_rfc_ihpa TYPE rfc_ihpa,ls_rfc_key TYPE rfc_key.LOOP AT gt_alv2 INTO wa_alv2.IF wa_alv2-prueflos+1(1) = '1'.ls_riqs5-qmart = 'F2'.ELSEIF wa_alv2-prueflos+1(1) = '3'.ls_riqs5-qmart = 'F3'.ENDIF."抬头ls_riqs5-matnr = wa_alv2-matnr.ls_riqs5-mawerk = wa_alv2-werks.ls_riqs5-ekorg = wa_alv2-ekorg.ls_riqs5-qmtxt = wa_alv2-qmtxt.ls_riqs5-priok = wa_alv2-priok.ls_riqs5-strmn = wa_alv2-strmn.
* ls_riqs5-qmkat = 'D'.ls_riqs5-qmkat = wa_alv2-qmkat.ls_riqs5-qmgrp = wa_alv2-qmgrp.ls_riqs5-qmcod = wa_alv2-qmcod.
* ls_riqs5-bzmng = '200'.
* ls_riqs5-rkmng = '200'.ls_riqs5-rgmng = wa_alv2-rgmng.ls_riqs5-prueflos = wa_alv2-prueflos.IF wa_alv2-aufnr IS NOT INITIAL.ls_riqs5-fertaufnr = wa_alv2-aufnr. "生产订单ls_riqs5-fertaufpl = wa_alv2-aufpl. "工艺路线READ TABLE lt_afvc INTO DATA(ls_afvc) WITH KEY aufpl = wa_alv2-aufplvornr = wa_alv2-vornrBINARY SEARCH.IF sy-subrc = 0.ls_riqs5-pnlkn = ls_afvc-aplzl. "计数器(工序VORNR)ls_riqs5-arbpl = ls_afvc-arbid. "工作中心对象标识ls_riqs5-arbplwerk = ls_afvc-werks. "工作中心工厂ENDIF.ENDIF."长文本写入ls_rfc_tline-refobjtyp = 'QMEL'.ls_rfc_tline-tdformat = '*'.ls_rfc_tline-tdline = wa_alv2-longtext.APPEND ls_rfc_tline TO lt_rfc_tline.LOOP AT gt_alv INTO wa_alv WHERE prueflos = wa_alv2-prueflos."项目ls_rfc_viqmfe-fenum = wa_alv-urnum.ls_rfc_viqmfe-fetxt = wa_alv-fetxt.ls_rfc_viqmfe-fekat = '9'.ls_rfc_viqmfe-fegrp = wa_alv-fegrp.ls_rfc_viqmfe-fecod = wa_alv-fecod.ls_rfc_viqmfe-otkat = 'E'.ls_rfc_viqmfe-otgrp = wa_alv-otgrp.ls_rfc_viqmfe-oteil = wa_alv-oteil.lv_len = strlen( wa_alv-bautl ).IF lv_len > 18.wa_alv-bautl = |{ wa_alv-bautl ALPHA = IN }|.ls_rfc_viqmfe-bautl = wa_alv-bautl.ELSE.lv_bautl = |{ wa_alv-bautl ALPHA = IN }|.ls_rfc_viqmfe-bautl = lv_bautl.ENDIF.ls_rfc_viqmfe-posnr = wa_alv-urnum.ls_rfc_viqmfe-anzfehler = wa_alv-anzfehler.ls_rfc_viqmfe-feart = '00000042'. "缺陷记录的报告类型APPEND ls_rfc_viqmfe TO lt_rfc_viqmfe."原因ls_rfc_viqmur-fenum = wa_alv-urnum.ls_rfc_viqmur-urnum = wa_alv-urnum.ls_rfc_viqmur-urkat = '5'.ls_rfc_viqmur-urtxt = wa_alv-urtxt.ls_rfc_viqmur-urgrp = wa_alv-urgrp.ls_rfc_viqmur-urcod = wa_alv-urcod.ls_rfc_viqmur-posnr = wa_alv-vornr. "工序编号ls_rfc_viqmur-qurnum = wa_alv-qurnum. "通知单项目号APPEND ls_rfc_viqmur TO lt_rfc_viqmur."任务ls_rfc_viqmsm-fenum = wa_alv-urnum.ls_rfc_viqmsm-manum = wa_alv-urnum.ls_rfc_viqmsm-matxt = wa_alv-matxt.ls_rfc_viqmsm-mnkat = '2'.ls_rfc_viqmsm-mngrp = wa_alv-mngrp.ls_rfc_viqmsm-mncod = wa_alv-mncod.ls_rfc_viqmsm-qsmnum = wa_alv-qsmnum.ls_rfc_viqmsm-parvw = 'VU'.ls_rfc_viqmsm-parnr = sy-uname.ls_rfc_viqmsm-posnr = wa_alv-vornr.APPEND ls_rfc_viqmsm TO lt_rfc_viqmsm."作业ls_rfc_viqmma-fenum = wa_alv-urnum.ls_rfc_viqmma-manum = wa_alv-urnum.ls_rfc_viqmma-matxt = wa_alv-matxt1.ls_rfc_viqmma-mnkat = '8'.ls_rfc_viqmma-mngrp = wa_alv-mngrp1.ls_rfc_viqmma-mncod = wa_alv-mncod1.ls_rfc_viqmma-qmanum = wa_alv-qmanum.ls_rfc_viqmma-posnr = wa_alv-vornr.APPEND ls_rfc_viqmma TO lt_rfc_viqmma."合作伙伴IF wa_alv2-prueflos+1(1) = '1'.ls_rfc_ihpa-parvw = 'LF'.ls_rfc_ihpa-parnr = wa_alv-lifnr.APPEND ls_rfc_ihpa TO lt_rfc_ihpa.ELSEIF wa_alv2-prueflos+1(1) = '3'.ls_rfc_ihpa-parvw = 'AO'.ls_rfc_ihpa-parnr = sy-uname.APPEND ls_rfc_ihpa TO lt_rfc_ihpa.ENDIF.ls_rfc_ihpa-parvw = 'KU'.ls_rfc_ihpa-parnr = sy-uname.APPEND ls_rfc_ihpa TO lt_rfc_ihpa.CLEAR:wa_alv,ls_rfc_viqmfe,ls_rfc_viqmur,ls_rfc_viqmsm,ls_rfc_viqmma,ls_rfc_ihpa.ENDLOOP."创建质量通知单CALL FUNCTION 'IQS4_CREATE_NOTIFICATION'EXPORTING
* I_QMNUM =
* I_AUFNR =i_riqs5 = ls_riqs5
* I_TASK_DET = ' '
* I_CONV = ' '
* I_BIN_RELATIONSHIP = ' '
* I_SENDER =i_post = 'X'i_commit = 'X'i_wait = 'X'i_refresh_complete = 'X'i_check_parnr_comp = 'X'i_rfc_call = 'X'i_rbnr = 'X'
* I_NOTIF_COPY = ' '
* I_DMS_COPY = ' '
* I_GEO_COPY = ' '
* I_DATE_ADJUSTMENT = 'O'IMPORTINGe_viqmel = ls_viqmel
* E_RIWO03 =TABLESi_inlines_t = lt_rfc_tlinei_viqmfe_t = lt_rfc_viqmfei_viqmur_t = lt_rfc_viqmuri_viqmsm_t = lt_rfc_viqmsmi_viqmma_t = lt_rfc_viqmmai_ihpa_t = lt_rfc_ihpae_keys = lt_rfc_key
* E_BIN_RELATION_TAB =return = lt_return.LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.lv_mess = lv_mess && ls_return-message && '/'.ENDLOOP.IF sy-subrc <> 0."通知单保存CALL FUNCTION 'IQS4_SAVE_NOTIFICATION'EXPORTINGi_qmnum = ls_viqmel-qmnumi_commit = 'X'i_wait = 'X'
* IMPORTING
* E_VIQMEL =TABLESreturn = lt_return.LOOP AT lt_return INTO ls_return WHERE type = 'E' OR type = 'A'.lv_mess = lv_mess && ls_return-message && '/'.ENDLOOP.IF sy-subrc <> 0."提交CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'EXPORTINGwait = 'X'.wa_alv-zmess = wa_alv-zmess && '/' && '通知单创建成功'.wa_alv-icon = icon_green_light.wa_alv-qmnum = ls_viqmel-qmnum.MODIFY gt_alv FROM wa_alv TRANSPORTING zmess icon qmnum WHERE prueflos = wa_alv2-prueflos.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.wa_alv-zmess = wa_alv-zmess && '/' && lv_mess.wa_alv-icon = icon_red_light.MODIFY gt_alv FROM wa_alv TRANSPORTING zmess icon WHERE prueflos = wa_alv2-prueflos.ENDIF.ELSE.CALL FUNCTION 'BAPI_TRANSACTION_ROLLBACK'.wa_alv-zmess = wa_alv-zmess && '/' && lv_mess.wa_alv-icon = icon_red_light.MODIFY gt_alv FROM wa_alv TRANSPORTING zmess icon WHERE prueflos = wa_alv2-prueflos.ENDIF.CLEAR:wa_alv2,ls_riqs5,lt_rfc_viqmfe,lt_rfc_viqmur,lt_rfc_viqmsm,lt_rfc_viqmma,lt_rfc_ihpa,lt_return,lt_lines,ls_viqmel,lt_rfc_tline,ls_afvc.ENDLOOP.
另外,该系列函数还有:
通知单查询:IQS4_GET_NOTIFICATION
通知单修改:IQS4_MODIFY_NOTIFICATION
通知单添加:IQS4_ADD_DATA_NOTIFICATION
通知单删除:IQS4_DEL_DATA_NOTIFICATION
通知单保存:IQS4_SAVE_NOTIFICATION
qm模块相关表:
检验批:qals
通知单抬头:qmel
通知单明细:qmfe
通知-作业:qmma
通知-任务:qmsm
通知-原因:qmur
通知检验批关系:qmfel