Enterprise Resource Planning Blogs by SAP
Get insights and updates about cloud ERP and RISE with SAP, SAP S/4HANA and SAP S/4HANA Cloud, and more enterprise management capabilities with SAP blog posts.
cancel
Showing results for 
Search instead for 
Did you mean: 
AlbertSAP
Advisor
Advisor

QM Open Note


QM Open Note is a blog post series about topics, which can be useful when working with Quality Management.




Overview


Current blog post contains some scenarios with code places, where the Next Inspection Date for a batch is updated (MCHA-QNDAT).

In detail


Documentation of Data element 'QNPDAT':

"Next Inspection Date

Defines the date for the next recurring inspection for the batch.

Dependencies
There is a program that runs on a cyclical basis for monitoring the date. If necessary, this program creates an inspection lot.

You can also use the following functions for deadline monitoring:

  • The job overview display function

  • The job planning maintenance function"


Scenarios:




  1. Usage decision is made for an inspection lot (transaction QA11):



    1. Call Stack:
      8 FORM WIEDERKEHRENDE_PRUEFUNG SAPMQEVA MQEVAF40
      7 FORM CHARGE_KLASSIFIZIEREN SAPMQEVA MQEVAF40
      6 FORM OK_FCODE_BUCHEN SAPMQEVA MQEVAF30
      5 FORM FCODE_BEARBEITEN SAPLV00F LV00FF0F

    2. Code:
      */Nächstes Prüfdatum ist heute plus Prüfintervall aus Materialstamm
      g_npruefdatum = sy-datum + marc-prfrq.
      WRITE g_npruefdatum DD/MM/YY TO l_datum_aufbereitet.

      */Customer-Function für 'Neues Prüfdatum'
      CALL CUSTOMER-FUNCTION '003'
      EXPORTING
      i_qals = qals
      i_qave = qave
      i_prfrq = marc-prfrq
      i_zeugnisbis = qals-zeugnisbis
      i_qndat = g_mchar-qndat
      IMPORTING
      e_qndat_neu = l_qndat2.​

      Customer Exit for Calculating Next Inspection Date is EXIT_SAPMQEVA_003 (Enhancement QEVA0003).




  2. Goods receipt for a purchase order (transaction MIGO or MIGO_GR):



    1. Call Stack:
      14 FORM CHARGENDATEN_MAT_SETZEN SAPFM07M FM07MFCL_CHARGENDATEN_MAT_SETZ
      13 FORM MATERIAL_PRUEFEN SAPFM07M FM07MEM0_MATERIAL_PRUEFEN
      12 FORM LAGERORTDATEN SAPMM07M MM07MFL0_LAGERORTDATEN
      11 FUNCTION MB_CREATE_GOODS_ISSUE_ITEM SAPLMBWL LMBWLU04
      10 FUNCTION MB_CREATE_GOODS_MOVEMENT SAPLMBWL LMBWLU14
      9 FUNCTION MB_CREATE_GOODS_MOVEMENT SAPLMBWL LMBWLU14
      8 METHOD DOCUMENT_OPERATION SAPLMIGO LMIGOKD1

    2. Code:
      * Set next inspection date via BAdI MB_BATCH_MASTER
      DATA: lv_qndat_keep TYPE xfeld. "1947010
      TRY.
      GET BADI g_badi_batch_master.
      CALL BADI g_badi_batch_master->maintain_inspection_date
      EXPORTING
      is_vm07m = vm07m
      is_mbefu = mbefu
      is_dm07m = dm07m
      is_mcha_buf = loc_mcha_buf
      IMPORTING
      ev_qndat = vm07m-qndat
      ev_qndat_keep = lv_qndat_keep. "1947010
      CATCH cx_badi_not_implemented.
      ENDTRY.
      * Setzten des nächsten Prüfdatums wenn noch nicht gesetzt
      IF lv_qndat_keep IS INITIAL. "1947010
      IF vm07m-qndat IS INITIAL AND NOT mbefu-prfrq IS INITIAL
      AND mbefu-qndat IS INITIAL
      AND NOT vm07m-lwedt IS INITIAL.
      vm07m-qndat = vm07m-lwedt + mbefu-prfrq.
      ENDIF.
      ENDIF.​

      Setting of Batch Data on Goods Movement with BAdI MB_BATCH_MASTER, including Next Inspection Date. (Interface IF_EX_MB_BATCH_MASTER, Enhancement Spot MB_GOODSMOVEMENT)




  3. Enter production order confirmation (transaction CO15 with goods movement):



    1. Call Stack:
      22 FORM CHARGENDATEN_MAT_SETZEN SAPFM07M FM07MFCL_CHARGENDATEN_MAT_SETZ
      21 FORM MATERIAL_PRUEFEN SAPFM07M FM07MEM0_MATERIAL_PRUEFEN
      20 FORM LAGERORTDATEN SAPMM07M MM07MFL0_LAGERORTDATEN
      19 FUNCTION MB_CREATE_GOODS_ISSUE_ITEM SAPLMBWL LMBWLU04
      18 FUNCTION MB_CREATE_GOODS_MOVEMENT SAPLMBWL LMBWLU14
      17 FUNCTION MB_CREATE_GOODS_MOVEMENT SAPLMBWL LMBWLU14
      16 FUNCTION CO_RU_GOODS_MOVEMENT SAPLCORF LCORFU42
      15 FORM VB_GOODS_MOVEMENT SAPLCORF LCORFF4S
      14 FUNCTION CO_RU_CONF_POST SAPLCORF LCORFU46
      13 FUNCTION PROCESS_CC234_MESSAGES SAPLCOPD LCOPDU13
      12 FUNCTION PLANT_DATA_ANALYZE SAPLCOPD LCOPDU06
      11 FUNCTION CO_RU_CONFIRMATION_POST SAPLCORF LCORFU08

    2. Code: same as in Scenario 2.) with the MIGO, as same function modules and forms are called.




 

Known problem & solution


Transaction QA07 (Program RQAAAS10) can be used to trigger recurring inspection / deadline monitoring of batches.

There are some requirements for the successful selection of batches according to the program documentation:
"...

The batch master data corresponds to the selection conditions.
Only those batches that fulfill the following conditions are examined:

  • The batch status is "released".

  • The unrestricted-use stock is greater than zero.

  • The stock is not in an HU storage location.

  • The stock is not special stock.


..."

See SAP Note about possible room for custom development:
608830 - BIC: BAdI implementation for the recurring inspection




Feel free to share your experience/feedback in the Comment Section. Thank you.