Hi Ankit,
Please find the logic below and for implementing it Please take help of your ABAPER.
IF SY-TCODE = 'CO01' OR SY-TCODE = 'CO40'. "or Sy-Tcode = 'CO41'. TABLES : CAUFVD . DATA : F_LPLPR TYPE CK_LPLPR . DATA : V_BUPER TYPE BUPER, V_PERIOD TYPE BUPER, V_PRD TYPE BUPER, V_PLNUM TYPE PLNUM, V_PSTTR TYPE PSTTR, V_MONAT TYPE MONAT, V_GJAHR TYPE GJAHR. TYPES : BEGIN OF TY_MBEW, MATNR TYPE MATNR, BWKEY TYPE BWKEY, PPRDL TYPE CK_PPRDL, PDATL TYPE CK_PDATL, END OF TY_MBEW. DATA : IT_MBEW TYPE STANDARD TABLE OF TY_MBEW INITIAL SIZE 0, WA_MBEW TYPE TY_MBEW. DATA : IT_DYNPFIELDS TYPE STANDARD TABLE OF DYNPREAD , WA_DYNPFIELDS TYPE DYNPREAD , WA1_DYNPFIELDS TYPE DYNPREAD , WA2_DYNPFIELDS TYPE DYNPREAD , WA3_DYNPFIELDS TYPE DYNPREAD . WA_DYNPFIELDS-FIELDNAME = 'CAUFVD-AUART' . APPEND WA_DYNPFIELDS TO IT_DYNPFIELDS . WA_DYNPFIELDS-FIELDNAME = 'CAUFVD-MATNR' . APPEND WA_DYNPFIELDS TO IT_DYNPFIELDS . WA_DYNPFIELDS-FIELDNAME = 'CAUFVD-WERKS' . APPEND WA_DYNPFIELDS TO IT_DYNPFIELDS . GET PARAMETER ID 'PAF' FIELD V_PLNUM. SELECT SINGLE PSTTR FROM PLAF INTO V_PSTTR WHERE PLNUM = V_PLNUM. CALL FUNCTION 'GET_CURRENT_YEAR' EXPORTING BUKRS = 'HNGL' DATE = V_PSTTR IMPORTING CURRM = V_MONAT CURRY = V_GJAHR * PREVM = * PREVY = . CONCATENATE V_MONAT V_GJAHR INTO V_BUPER. CALL FUNCTION 'DYNP_VALUES_READ' EXPORTING DYNAME = 'SAPLCOKO1' DYNUMB = '0115' TABLES DYNPFIELDS = IT_DYNPFIELDS EXCEPTIONS OTHERS = 1. IF SY-SUBRC <> 0. MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. ENDIF. LOOP AT IT_DYNPFIELDS INTO WA_DYNPFIELDS . IF WA_DYNPFIELDS-FIELDNAME = 'CAUFVD-AUART' AND ( WA_DYNPFIELDS-FIELDVALUE = 'BEER' OR WA_DYNPFIELDS-FIELDVALUE = 'FODA' OR WA_DYNPFIELDS-FIELDVALUE = 'HOUH' OR WA_DYNPFIELDS-FIELDVALUE = 'LIQR' OR WA_DYNPFIELDS-FIELDVALUE = 'PHRM' OR WA_DYNPFIELDS-FIELDVALUE = 'SOFD' OR WA_DYNPFIELDS-FIELDVALUE = 'TOIL' OR WA_DYNPFIELDS-FIELDVALUE = 'WAIL' OR WA_DYNPFIELDS-FIELDVALUE = 'WIAL' OR WA_DYNPFIELDS-FIELDVALUE = 'PRFD' OR WA_DYNPFIELDS-FIELDVALUE = 'CLQR'). * V_BUPER = V_PSTTR+0(6). READ TABLE IT_DYNPFIELDS INTO WA2_DYNPFIELDS WITH KEY FIELDNAME = 'CAUFVD-MATNR' . READ TABLE IT_DYNPFIELDS INTO WA3_DYNPFIELDS WITH KEY FIELDNAME = 'CAUFVD-WERKS' . SELECT SINGLE LPLPR FROM MBEW INTO F_LPLPR WHERE MATNR = WA2_DYNPFIELDS-FIELDVALUE AND BWKEY = WA3_DYNPFIELDS-FIELDVALUE . SELECT MATNR BWKEY PPRDL PDATL FROM MBEW INTO TABLE IT_MBEW WHERE MATNR = WA2_DYNPFIELDS-FIELDVALUE AND BWKEY = WA3_DYNPFIELDS-FIELDVALUE . LOOP AT IT_MBEW INTO WA_MBEW. SHIFT WA_MBEW-PPRDL LEFT DELETING LEADING '0'. CONCATENATE '0' WA_MBEW-PPRDL INTO V_PRD. CONCATENATE V_PRD WA_MBEW-PDATL INTO V_PERIOD. ENDLOOP. IF V_PERIOD NE V_BUPER. MESSAGE 'Cost Run Not Completed for Current period' TYPE 'E'. ENDIF. IF F_LPLPR EQ 0. MESSAGE 'Cost Run Not Completed for Current period' TYPE 'E'. ENDIF. * IF SY-SUBRC = 0 . * IF F_LPLPR = 0 . * MESSAGE ' Current Planned Price is 0.00 for the Material , Production Order cannot be created ' TYPE 'E' . * NO_UPDATE = 'X' . * ENDIF. * ENDIF. ENDIF . ENDLOOP. ENDIF.
Hope this will help you.
Regards Eugene