How to stop a production order processing when a delivey block is placed

Hi,
Mine is a MTO scenario. I am using planning strategy 50. So a planned order ---> production order will be created against MRP run  against each sales order.
When i am placing a delivery block at the header the system is working fine. Its deleting the planned order(converted production order).
when I am placing a delivery block at the schedulle line its not working fine. its not deleting the underlined planned order or production order.
what configuration should I do to make this work.......

Deepu,
Unfortunately as per SAP documentation below you cannot have this function at schedule line level.
"If you enter the delivery block at header level, the system transfers the desired delivery quantity for all schedule lines in the requirement. The confirmed quantity is deleted. This function is not available when you enter the delivery block at schedule line level."
I have tried in my system & it works the same way. Hope this helps.
Thanks,
Ram

Similar Messages

  • How to stop the prodution order creating when the product is not valued?

    Hi guyes:
    How to stop the prodution order creating when the product is not valued using CO01?
    I hope that when i create the production order,the system will check the product is valued or not,if not
    the system will show an error or warning message!
    How to config for this?
    Thank you!

    Dear Zhao Gang,
    Check with this user Exits mentioned in this link,
    Prevent Production Order from "Release" if there is no Cost Estimate
    Re: User Exit at Production Order Release
    Check and revert back.
    Regards
    Mangalraj.S

  • How to block production order creation when maintenance order is generated.

    Hi All,
    Kindly share how to block production order generation when maintenance order is generated.

    Integration between PP module and PM module
    PP/PM Workcenter Integration
    There are many threads & documents available. Please do some search.

  • Question -  how i can prevent assembly order rescheduling when in VA02 ?

    Hi                                             ( ECC 6.0)
    I am working with assembly orders.  In sales order create - the system creates an assembly order - requirements type = dynamic order.
    If i amend the sales order a few days later - the system reschedules the assembly order - even when the assembly order is started and has status REL = released.  I get error CO061 - start date in past.. as the system first backwards reschedules and then reschedules forwards.
    Question -  any ideas how i can prevent assembly order rescheduling when in sales order change VA02 ? I need the system  to check the production order status and if = REL then prevent the rescheduling.  Putting a change block on the production order does not work as it ultimately breaks the link between sales:assembly order.
    I am thinking i need to use an SD user exit to read the assembly order and prevent order changes if the assembly order is = REL.
    thanks in advance
    Graham.

    Hi Ram
    We are using dynamic link.  My original solution was to set the 'nochange' on release- however if the sales order qty changed - or the dates changed - or indeed any ATP check was performed - the link was sometimes lost - dependant on user keystrokes.  VA02 still calls assembly order change in this scenario - and the user gets the mesage that no change is present - and ATP returns 0 qty.
    What I think i can use is user exit  EXIT_SAPLCOEXT_001 in conjunction with a user status.  I plant to set the status 'block' on release - although configure it to have no action.  In the user exit - called in the interface between sales / assembly order - I plan to check the assembly order for this status and set the error condition if the status is set.  In debug mode - setting the eror manually - this appears to work as the system never calls assembly order change and accepts the assembly order date/qty as 'supply' in the atp check.
    thanks for you assistance.
    regards
    Graham

  • How can mass creating production orders???

    In SAP ,we can use CO01,CO09,CO07 to create production order. But by these TOCDES,we only can create one production order for one finished product once a time.
    But we now need to create more then one ,may be more then 50 production orders once a time?
    It is possible in SAP?
    I know we could conver the production orders from plan orders after MRP run.But sometimes
    for some reasons we must create produciton orders manually.And I also know in SAP some TCODE can process many production orders once a time ,like COHV,CORM, can release ,TECO many production orders once a time.
    But how can mass creating production orders once a time,not by mrp run?
    How can batch create produciton orders in SAP?
    Thanks for any reply!

    Hi,
    Use the BAPI - BAPI_PRODORD_CREATE or for internal orders BAPI_INTERNALORDER_CREATE
    Take the help of your abaper, he / she can use the above BAPI to write a custom program to mass create production order.
    Hope the above helps.
    Regards,
    Vivek
    Added
    You can also use the below BAPI's in your custom program:
    BAPI_PRODORD_RELEASE to release the orders
    BAPI_PRODORD_CHECK_MAT_AVAIL for carrying out material availability
    Edited by: Vivek on Mar 22, 2009 8:27 PM

  • Reverse the production order even when some quantity has been invoiced

    Dear Sapgurus,
    How to reverse the production order when the some quantity of that production order has been sent through invoice.
    regards
    muralidhar.t

    Dear,
    In that case you can not reverse the the full order quantity you can only reverse the quantity which are in unrestricted storage loaction as a stock.
    You can cancle it through MB31 with 102 movement. If auto GR is there then you need to cancle it through CO13. After that also check the COGI and CO1P.
    Hope clear to you.
    Regards,
    R.Brahmankar

  • How to get open production orders by plant wise

    Hi,
    How to get open production orders by plant wise.
    i know from tcode COOIS, is it possible to get from this. if so what are the parameters we have to give to get open production orders by plant wise.
    is there any tcode or tables available , please provide details .
    regards,
    Hari priya

    Hi,
    What is your definition of Open Production Orders?
    Definetly you will get the report from COOIS for Plant wise.
    Whther you want to consider all the Orders having the Status REL but not DLV?
    Then there is a chance of having the Orders, still with PDLV status but GR is done for the full Qty. May be you don't want to consider the TECO status, eventhough the Order is short closed??
    Better to ommit the Orders with CRTD status also..
    So, based on this which status to consider and which status not to consider..
    You can define the "Selection profile status" in BS42.
    Use this selection profile in COOIS, so that the rsults will be accurate..
    Best Regards,
    Siva

  • Change in Production order/ process order

    Can anyone tell me where are the changes being stored  for the Production order/ process order? I mean in what table?
    Regards,
    Subhasish

    Hey,
    Any change made to the order data is logged using change documents. These changes are recorded in the tables CDHDR and CDPOS. The change document object for orders is ORDER.
    For information on change documents click this link
    <a href="http://help.sap.com/saphelp_47x200/helpdata/en/2a/fa0175493111d182b70000e829fbfe/content.htm">Overview</a>
    To read the change documents use functions CHANGEDOCUMENT_READ_HEADERS and CHANGEDOCUMENT_READ_POSITIONS.
    You can find the change document objects using transaction SCD0.
    -Kiran

  • How to delete the production order in mass?

    Dear Experts
                 Please tell me how to delete the  old production orders?

    Raja,
    CO78 is a one stop transaction for production order setting deletion flag, deletion indicator, archiving and finally deleting.
    Generally we schedule the following programs in background in the sequence below,
    1. PPARCHP1 for Setting Deletion Flag
    2. PPARCHP1 for Setting Deletion Indicator (Once set cannot be revoked- so care should be taken in selection of orders)
    3. PPARCHA1 for archiving the production order with Deletion Indicator active. Basis should set the database/storage space for archiving/storing the records.
    4. PPARCHD1 for Deleting the records from SAP database.
    Regards,
    Prasobh

  • How to get all production orders for a workcenter

    Hello ...
    I have a requirement to create a report of all production orders for a given workcenter.  The user enters the workcenter (CRHD-ARBPL), plant (CRHD-WERKS) and a date range, and wants to see a list of orders (AUFNR) that fall within that date range along with some other data from AFKO and AFPO. 
    I can't figure out a good, consistent way to get from workcenter to production orders.
    Any ideas?
    Thanks!
    Sharon

    Hi there check this program for relation between SO PO and Production order
    REPORT z_so_info.
    TABLES: vbak, vbap, afko, afpo.
    *Field catalog
    TYPE-POOLS: slis.
    DATA: lv_repid TYPE sy-repid VALUE sy-repid,
    xfield TYPE slis_t_fieldcat_alv,
    afield TYPE slis_fieldcat_alv.
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECTION-SCREEN BEGIN OF LINE.
    SELECTION-SCREEN COMMENT 1(25) text-002.
    SELECT-OPTIONS: so_so FOR vbak-vbeln OBLIGATORY.
    SELECTION-SCREEN END OF LINE.
    SELECTION-SCREEN END OF BLOCK b1.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-003.
    PARAMETERS:
    p_kunnr LIKE vbak-kunnr, " sold-to
    p_kunwe LIKE vbak-kunnr. " ship-to
    SELECTION-SCREEN END OF BLOCK b2.
    *Constants
    CONSTANTS: c_zor TYPE vbak-auart VALUE 'ZOR',
    c_we TYPE vbpa-parvw VALUE 'WE',
    c_ag TYPE vbpa-parvw VALUE 'AG'.
    * c_space TYPE space.
    *Ranges
    RANGES: ra_parvw FOR vbpa-parvw,
    ra_kunnr FOR vbpa-kunnr.
    *Tables
    DATA: BEGIN OF gt_output OCCURS 0,
    vbeln LIKE vbak-vbeln, " sales order number
    posnr LIKE vbap-posnr, " SO item number
    matnr LIKE vbap-matnr, " material number
    sh LIKE vbpa-kunnr, " Ship-to
    sp LIKE vbpa-kunnr, " Sold-to
    lifnr LIKE ekko-lifnr, " Vendor
    bstnk LIKE vbak-bstnk, " PO number
    banfn LIKE vbep-banfn, " Purchase requi
    po_st TYPE char30, " PO status text
    pstyv TYPE vbap-pstyv, " Item catagory
    aufnr LIKE afpo-aufnr, " Production Order
    prd_stat TYPE string, " Prd order status
    END OF gt_output.
    DATA: wa_output LIKE gt_output.
    FIELD-SYMBOLS: <fs_output> LIKE gt_output.
    *Table for sales order and PO
    TYPES : BEGIN OF gs_data,
    vbeln TYPE vbak-vbeln,
    posnr TYPE vbap-posnr,
    pstyv TYPE vbap-pstyv,
    matnr TYPE vbap-matnr,
    END OF gs_data.
    DATA: gt_data TYPE STANDARD TABLE OF gs_data,
    wa_data TYPE gs_data.
    *Table for Production Orders
    TYPES: BEGIN OF gs_prd,
    aufnr TYPE afpo-aufnr,
    posnr TYPE afpo-posnr,
    kdauf TYPE afpo-kdauf,
    kdpos TYPE afpo-kdpos,
    wepos TYPE afpo-wepos, "Goods Receipt Indicator
    elikz TYPE afpo-elikz, "Delivery Completed Indicator
    objnr TYPE aufk-objnr, "Object number
    * getri TYPE afko-getri, "Confirmed Order Finish Date
    * gltri TYPE afko-gltri, "Actual finish date
    END OF gs_prd.
    DATA: gt_prd TYPE STANDARD TABLE OF gs_prd,
    wa_prd TYPE gs_prd.
    *Table for partner data
    TYPES: BEGIN OF gs_partner,
    vbeln TYPE vbak-vbeln,
    posnr TYPE vbap-posnr,
    parvw TYPE vbpa-parvw,
    kunnr TYPE vbpa-kunnr,
    END OF gs_partner.
    DATA: gt_partner TYPE STANDARD TABLE OF gs_partner,
    wa_partner TYPE gs_partner.
    TYPES: BEGIN OF gs_po,
    ebeln TYPE ekkn-ebeln,
    ebelp TYPE ekkn-ebelp,
    vbeln TYPE ekkn-vbeln,
    vbelp TYPE ekkn-vbelp,
    END OF gs_po.
    DATA: gt_po TYPE STANDARD TABLE OF gs_po,
    wa_po TYPE gs_po.
    TYPES: BEGIN OF gs_preq,
    vbeln TYPE vbep-vbeln,
    posnr TYPE vbep-posnr,
    banfn TYPE vbep-banfn,
    END OF gs_preq.
    DATA: gt_preq TYPE STANDARD TABLE OF gs_preq,
    wa_preq TYPE gs_preq.
    TYPES: BEGIN OF gs_po_stat,
    ebeln TYPE ekko-ebeln,
    procstat TYPE ekko-procstat,
    lifnr TYPE ekko-lifnr,
    END OF gs_po_stat.
    DATA: gt_po_stat TYPE STANDARD TABLE OF gs_po_stat,
    wa_po_stat TYPE gs_po_stat.
    *Field symbols
    FIELD-SYMBOLS: <fs> TYPE tj02t-txt04,
    <fs_temp> TYPE tj02t-txt04,
    <fs_stat> TYPE char30.
    START-OF-SELECTION.
    PERFORM fr_build_range.
    PERFORM fr_get_data.
    PERFORM fr_build_fc.
    PERFORM fr_output.
    *& Form fr_get_data
    * text
    * --> p1 text
    * <-- p2 text
    FORM fr_get_data.
    *Get SO
    SELECT a~vbeln a~posnr a~pstyv a~matnr
    FROM vbap AS a
    JOIN vbak AS b
    ON a~vbeln = b~vbeln
    JOIN vbpa AS c
    ON b~vbeln = c~vbeln
    INTO TABLE gt_data
    WHERE b~vbeln IN so_so
    AND b~auart EQ c_zor "Only Sales Orders
    AND c~kunnr IN ra_kunnr. "from selection screen
    DELETE ADJACENT DUPLICATES FROM gt_data COMPARING vbeln posnr.
    *get data of the production order
    IF NOT gt_data[] IS INITIAL.
    SELECT a~aufnr a~posnr a~kdauf a~kdpos a~wepos a~elikz
    b~objnr
    FROM afpo AS a
    JOIN aufk AS b
    ON a~aufnr = b~aufnr
    INTO TABLE gt_prd
    FOR ALL ENTRIES IN gt_data
    WHERE a~kdauf EQ gt_data-vbeln
    AND a~kdpos EQ gt_data-posnr.
    ENDIF.
    *Get partner data
    IF NOT gt_data[] IS INITIAL.
    SELECT vbeln posnr parvw kunnr
    FROM vbpa
    INTO TABLE gt_partner
    FOR ALL ENTRIES IN gt_data
    WHERE vbeln EQ gt_data-vbeln.
    ENDIF.
    *Get Purchase Order
    IF NOT gt_data[] IS INITIAL.
    SELECT ebeln ebelp vbeln vbelp
    FROM ekkn
    INTO TABLE gt_po
    FOR ALL ENTRIES IN gt_data
    WHERE vbeln EQ gt_data-vbeln
    AND vbelp EQ gt_data-posnr.
    SELECT vbeln posnr banfn
    FROM vbep
    INTO TABLE gt_preq
    FOR ALL ENTRIES IN gt_data
    WHERE vbeln EQ gt_data-vbeln
    AND posnr EQ gt_data-posnr.
    ENDIF.
    IF NOT gt_po[] IS INITIAL.
    SELECT a~ebeln a~procstat a~lifnr
    FROM ekko AS a
    JOIN ekpo AS b
    ON a~ebeln = b~ebeln
    INTO TABLE gt_po_stat
    FOR ALL ENTRIES IN gt_po
    WHERE b~ebeln EQ gt_po-ebeln
    AND b~ebelp EQ gt_po-ebelp.
    ENDIF.
    *Move data to output table
    LOOP AT gt_data INTO wa_data.
    wa_output-vbeln = wa_data-vbeln.
    wa_output-posnr = wa_data-posnr.
    wa_output-pstyv = wa_data-pstyv.
    wa_output-matnr = wa_data-matnr.
    READ TABLE gt_po INTO wa_po WITH KEY vbeln = wa_data-vbeln
    vbelp = wa_data-posnr.
    IF sy-subrc EQ 0.
    wa_output-bstnk = wa_po-ebeln.
    READ TABLE gt_po_stat INTO wa_po_stat WITH KEY ebeln = wa_po-ebeln.
    IF sy-subrc EQ 0.
    wa_output-lifnr = wa_po_stat-lifnr.
    CASE wa_po_stat-procstat.
    WHEN '01'.
    wa_output-po_st = 'Version in process'.
    WHEN '02'.
    wa_output-po_st = 'Active'.
    WHEN '03'.
    wa_output-po_st = 'In release'.
    WHEN '04'.
    wa_output-po_st = 'Partially released'.
    WHEN '05'.
    wa_output-po_st = 'Released Completely'.
    WHEN '08'.
    wa_output-po_st = 'Rejected'.
    ENDCASE.
    ENDIF. "inner read subrc
    ENDIF. "outer read subrc
    READ TABLE gt_preq INTO wa_preq WITH KEY vbeln = wa_data-vbeln
    posnr = wa_data-posnr.
    IF sy-subrc EQ 0.
    wa_output-banfn = wa_preq-banfn.
    ENDIF.
    READ TABLE gt_prd INTO wa_prd WITH KEY kdauf = wa_data-vbeln
    kdpos = wa_data-posnr.
    IF sy-subrc EQ 0.
    wa_output-aufnr = wa_prd-aufnr.
    *get the purchase requisition for production order as well
    SELECT SINGLE banfn
    FROM ebkn
    INTO wa_output-banfn
    WHERE aufnr EQ wa_prd-aufnr.
    *Get the status of the production order
    PERFORM fr_get_prd_stat USING wa_prd-objnr
    CHANGING wa_output-prd_stat.
    ENDIF. " sy-subrc
    READ TABLE gt_partner INTO wa_partner WITH KEY vbeln = wa_data-vbeln
    parvw = c_we.
    IF sy-subrc EQ 0.
    wa_output-sh = wa_partner-kunnr.
    ENDIF.
    READ TABLE gt_partner INTO wa_partner WITH KEY vbeln = wa_data-vbeln
    parvw = c_ag.
    IF sy-subrc EQ 0.
    wa_output-sp = wa_partner-kunnr.
    ENDIF.
    APPEND wa_output TO gt_output.
    CLEAR: wa_data, wa_prd,wa_partner,wa_output.
    ENDLOOP.
    ENDFORM. " fr_get_data
    *& Form fr_build_range
    * text
    * --> p1 text
    * <-- p2 text
    FORM fr_build_range .
    *Range for partner function
    MOVE 'I' TO ra_parvw-sign.
    MOVE 'EQ' TO ra_parvw-option.
    MOVE 'SH' TO ra_parvw-low. " we
    APPEND ra_parvw.
    CLEAR ra_parvw.
    MOVE 'I' TO ra_parvw-sign.
    MOVE 'EQ' TO ra_parvw-option.
    MOVE 'SP' TO ra_parvw-low. " ag
    APPEND ra_parvw.
    CLEAR ra_parvw.
    *Range for ship-to and sold-to
    MOVE 'I' TO ra_kunnr-sign.
    MOVE 'EQ' TO ra_kunnr-option.
    MOVE p_kunnr TO ra_kunnr-low.
    APPEND ra_kunnr.
    CLEAR ra_kunnr.
    MOVE 'I' TO ra_kunnr-sign.
    MOVE 'EQ' TO ra_kunnr-option.
    MOVE p_kunwe TO ra_kunnr-low.
    APPEND ra_kunnr.
    CLEAR ra_kunnr.
    ENDFORM. " fr_build_range
    *& Form fr_build_fc
    * text
    * --> p1 text
    * <-- p2 text
    FORM fr_build_fc .
    * sales order number
    afield-fieldname = 'VBELN'.
    afield-seltext_s = 'Sales #'.
    afield-ref_tabname = 'VBAK'.
    APPEND afield TO xfield. CLEAR afield.
    * sales ITEM number
    afield-fieldname = 'POSNR'.
    afield-seltext_s = 'Item #'.
    afield-ref_tabname = 'VBAP'.
    APPEND afield TO xfield. CLEAR afield.
    * Material Number
    afield-fieldname = 'MATNR'.
    afield-seltext_s = 'Material #'.
    afield-ref_tabname = 'VBAP'.
    afield-outputlen = 10.
    APPEND afield TO xfield. CLEAR afield.
    *Vendor Number
    afield-fieldname = 'LIFNR'.
    afield-seltext_s = 'Vendor Num.'.
    afield-ref_tabname = 'EKKO'.
    APPEND afield TO xfield. CLEAR afield.
    * ship-to-party
    afield-fieldname = 'SH'.
    afield-seltext_s = 'Ship-to'.
    afield-ref_tabname = 'VBPA'.
    APPEND afield TO xfield. CLEAR afield.
    * sold-to-party
    afield-fieldname = 'SP'.
    afield-seltext_s = 'Sold-to'.
    afield-ref_tabname = 'VBPA'.
    APPEND afield TO xfield. CLEAR afield.
    *PO number
    afield-fieldname = 'BSTNK'.
    afield-seltext_s = 'PO NUM'.
    afield-ref_tabname = 'EKKO'.
    APPEND afield TO xfield. CLEAR afield.
    *PO status
    * afield-fieldname = 'PO_STAT'.
    * afield-seltext_s = 'Step'.
    * afield-ref_tabname = 'zbacklog_v2'.
    * APPEND afield TO xfield. CLEAR afield.
    *PO step status
    afield-fieldname = 'PO_ST'.
    afield-seltext_s = 'PO.Status'.
    afield-ref_tabname = 'zbacklog_v2'.
    APPEND afield TO xfield. CLEAR afield.
    *Purchase requisition
    afield-fieldname = 'BANFN'.
    afield-seltext_s = 'Pur. Req.'.
    afield-ref_tabname = 'VBEP'.
    APPEND afield TO xfield. CLEAR afield.
    *Item catagory
    afield-fieldname = 'PSTYV'.
    afield-seltext_s = 'Itm. Catg'.
    afield-ref_tabname = 'VBAP'.
    APPEND afield TO xfield. CLEAR afield.
    *Prodcution Order number
    afield-fieldname = 'AUFNR'.
    afield-seltext_m = 'Prod.Order'.
    afield-ref_tabname = 'AFKO'.
    APPEND afield TO xfield. CLEAR afield.
    *PRODCUTION status
    afield-fieldname = 'PRD_STAT'.
    afield-seltext_s = 'Prd. Step'.
    afield-ref_tabname = 'zbacklog_v2'.
    afield-outputlen = 20.
    APPEND afield TO xfield. CLEAR afield.
    *PRODUCTION step status
    * afield-fieldname = 'PRD_ST'.
    * afield-seltext_s = 'Prd. Status'.
    * afield-ref_tabname = 'zbacklog_v2'.
    * APPEND afield TO xfield. CLEAR afield.
    ENDFORM. " fr_build_fc
    *& Form fr_output
    * text
    * --> p1 text
    * <-- p2 text
    FORM fr_output .
    CALL FUNCTION 'REUSE_ALV_LIST_DISPLAY'
    EXPORTING
    i_callback_program = sy-repid
    * I_CALLBACK_PF_STATUS_SET = ' '
    * I_CALLBACK_USER_COMMAND = ' '
    * I_STRUCTURE_NAME =
    * IS_LAYOUT =
    it_fieldcat = xfield[]
    i_default = 'X'
    i_save = 'A'
    TABLES
    t_outtab = gt_output
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    ENDFORM. " fr_output
    *& Form fr_get_prd_stat
    * text
    * -->P_WA_PRD_OBJNR text
    FORM fr_get_prd_stat USING p_objnr CHANGING p_prd_stat.
    DATA: lt_status TYPE STANDARD TABLE OF jstat,
    wa_status TYPE jstat,
    lv_status TYPE tj02t-txt04,
    lv_temp2 TYPE char5,
    lv_buff TYPE string.
    CALL FUNCTION 'STATUS_READ'
    EXPORTING
    client = sy-mandt
    objnr = p_objnr
    only_active = 'X'
    TABLES
    status = lt_status
    EXCEPTIONS
    object_not_found = 1
    OTHERS = 2.
    LOOP AT lt_status INTO wa_status.
    IF wa_status-stat(1) EQ 'I'.
    SELECT txt04 FROM tj02t
    INTO lv_status
    WHERE istat EQ wa_status-stat
    AND spras EQ 'E'.
    ENDSELECT.
    lv_temp2 = lv_status.
    CONCATENATE lv_temp2 p_prd_stat INTO p_prd_stat
    SEPARATED BY ','.
    ENDIF.
    CLEAR: wa_status, lv_status, lv_temp2.
    ENDLOOP.
    lv_buff = p_prd_stat.
    *Status of Production Order
    IF lv_buff CS 'CRTD'.
    p_prd_stat = 'Not Active'.
    ENDIF.
    IF lv_buff CS 'REL'.
    IF lv_buff CS 'GMPS'.
    p_prd_stat = 'Printed In Prod'.
    ELSE.
    p_prd_stat = 'Printed'.
    ENDIF.
    ENDIF.
    IF lv_buff CS 'TECO'.
    p_prd_stat = 'Technically Compt.'.
    ENDIF.
    ENDFORM. " fr_get_prd_stat

  • How to check the Production order exits

    Hi Experts
    Modification to processing of Command Orders & Tickets
    We require a modification to the processing being performed on sales data originating from the Command Concrete system and potentially from other systems yet to come online (e.g. Pinkenba Cement plant).
    The Sap process involved is ZINT_INBOUND_POLLING and within that, ZINT_CSTPORD_ROUTINES.
    The problem
    Currently there is an assumption that every sales order (and its deliveries) will include a product which is made to order, i.e. for which a production order will be required.
    In ZINT_CSTPORD_ROUTINES, a check is made to identify the production order linked to the sales order. If there is no such production order (usually because of the customeru2019s credit status) then processing of the ticket is terminated.
    This assumption would fall down if an order was to be raised (in Command) on which there is no concrete material. For example, if we sold a bag of pigment or a screed to a customer. In this case the item would be sold from stock and there would be no need for a production order.
    The solution
    In the routine which checks for the existence of a production order, modify the code as follows:
    Inspect each item on the sales order
    If (and only if) there is at least one item with a category of u201CZTACu201D then check for a production order, otherwise process the order in the usual manner.
    ----  ZINT_CSTPORD_ROUTINES -
    *&      Form  process_inbound_data
          Create prod. orders from ticket data extracted from the COMMAND
          system. Note that large portions of the code in this routine
          have been copied from the retired ZPPU_COMMAND_PRODUCTION
          interface program. This was done (1) because the old code works
          and (2) to save development time.
         -->T_ZINT_IDATA  Internal table of interface data
         -->T_ZINT_PARAM  Internal table of interface parameters
         -->T_ZINT_MSLOG  Internal table of messages
         -->P_ZINT_ID     Interface ID
         -->P_ZINT_TY     Inteface type
         -->P_ZINT_IS     IDOC group for interface
         -->P_ZINT_DL     Flag: delete IDOC group when complete
         -->P_ZINT_AL     Flag: run in standalone mode
         -->P_ZINT_NW     Flag: do not log warning messages
         -->P_ZINT_SQ     Interface sequence number
         <--P_ZINT_RC     Return code (<>0=>error)
    form process_inbound_data  tables   t_zint_idata structure zint_idata
                                        t_zint_param structure zint_param
                                        t_zint_mslog structure zint_mslog
                               using    p_zint_id    type      zint_id
                                        p_zint_ty    type      zint_ty
                                        p_zint_is    type      zint_is
                                        p_zint_dl    type      zint_dl
                                        p_zint_al    type      zint_al
                                        p_zint_nw    type      zint_nw
                                        p_zint_sq    type      zint_sq
                               changing p_zint_rc    type      zint_rc.
    program is continuing .............
    I WANT TO WRITE A CODING HERE **********************
    CHECK IF PRODUCTION ORDER REQUIRED
              IF NOT THEN GO TO PERFORM UPDATE DATA
      if production order required then check
                    for each item on sales order item list
                          with item category = 'ZTAC' then
                                     return true
                                next
                                  end function
        if there is no production code
               these has to be check from VBAP TABLE field VBELN and PSTYV (ZTAC,ZTAN Etc)
      select * from Vbap WHERE VBELN = '00000269951' and VBAP.PSTYV = 'ZTAC','ZTAN' Etc
    No production order?
        elseif lva_prodord is initial.
          clear v_messg.
          call function 'CONVERSION_EXIT_ALPHA_OUTPUT'
            exporting
              input  = lva_filemat
            importing
              output = lva_filemat.
        No production order found - log a warning message.
          concatenate 'Production Order not be found for'
                      'Command order' lva_cmdord
                      'Material'      lva_filemat
                      'Customer'      lwa_02-customer
            into v_messg separated by space.
          perform write_log_entry
            tables t_zint_mslog
            using  'E' 'ZINT_CSTPORD_ROUTINES'
                       'FIND_SAP_PRODORD'
                         v_messg
                         p_zint_nw
                         lwa_01-ticketnumber.                " RJS
          continue.
        endif.
    Production Order WAS found... Continue creating IDOCS
        lwa_hdrlevel-postg_date = lwa_01-ticketdate.
    Obtain the storage location parameter value.
        read table t_zint_param with key zint_fn = 'LGORT'.
        if sy-subrc ne c_noerr.
          perform write_log_entry
            tables t_zint_mslog
            using  'E' 'ZINT_CSTPORD_ROUTINES'
                       'PROCESS_INBOUND_DATA'
                       'Parameter LGORT is missing from ZINT_PARAM'
                       p_zint_nw
                       lwa_01-ticketnumber.                " RJS
          exit.
        endif.
        loop at l_it_05 into lwa_05
          where ticketnumber = lwa_01-ticketnumber.
          clear lwa_gm_item_create.
          lva_filemat = lwa_05-material.
          if lva_filemat eq lva_prodmat.
            concatenate 'Command ticket-' lwa_05-ticketnumber
              into lwa_hdrlevel-conf_text.
            lwa_hdrlevel-conf_quan_unit = lwa_05-unitofmeasure.
            lwa_hdrlevel-yield          = lwa_05-quantity.
    check whether the confirmed value + current delivery value is equal *
    the production order qty. If the production order value is less
    than the total delivered value, set final conf indicator  and clear
    reservations
            lva_wemng = lva_wemng + lwa_05-quantity.
            if lva_wemng < lva_psmng.
              lwa_hdrlevel-clear_res      = c_false.
              lwa_hdrlevel-fin_conf       = ' '.
            else.
              lwa_hdrlevel-clear_res      = c_true.
              lwa_hdrlevel-fin_conf       = 'X'.
            endif.
            move: 'Z1BP_PP_HDRLEVEL' to t_idoc_data-segnam,
                  lwa_hdrlevel       to t_idoc_data-sdata.
            append t_idoc_data.
            clear lva_formmat.
            lva_formmat                   = lwa_05-material.
            lwa_gm_item_create-material   = lva_formmat.
            lwa_gm_item_create-plant      = lwa_03-plant.
            lwa_gm_item_create-ref_date   = lwa_01-ticketdate.
            lwa_gm_item_create-prod_date  = lwa_01-ticketdate.
            lwa_gm_item_create-move_type  = '101'.
            lwa_gm_item_create-spec_stock = 'E'.
            lwa_gm_item_create-sales_ord  = lva_saleord.
            lwa_gm_item_create-entry_qnt  = lwa_05-quantity.
            lwa_gm_item_create-entry_uom  = lwa_05-unitofmeasure.
            lwa_gm_item_create-orderid    = lva_prodord.
            lwa_gm_item_create-move_mat   = lva_formmat.
            lwa_gm_item_create-move_plant = lwa_03-plant.
            lwa_gm_item_create-mvt_ind    = 'F'.
            clear t_idoc_data.
            move: 'E1BP2017_GM_ITEM_CREATE' to t_idoc_data-segnam,
                  lwa_gm_item_create        to t_idoc_data-sdata.
            append t_idoc_data.
          else.
            clear: lva_loggr,
                   lva_formmat.
            lva_formmat = lwa_05-material.
            select single loggr into lva_loggr from marc
              where matnr = lva_formmat
              and   werks = lwa_03-plant.
            if sy-subrc ne 0.
              clear v_messg.
              No logistics handling group - log a warning message.
              concatenate 'No logistics handling group for material'
                           lva_formmat
                          'in plant'
                           lwa_03-plant
                into v_messg separated by space.
              perform write_log_entry
                tables t_ldata
                using 'W' 'ZINT_CSTPORD_ROUTINES'
                          'PROCESS_INBOUND_DATA'
                          v_messg
                          p_zint_nw
                          lwa_01-ticketnumber.                " RJS
              clear lva_loggr.
            endif.
            if lwa_03-satsur eq 'T'.
              lwa_e1edl21-lprio = 30.
            else.
              lwa_e1edl21-lprio = 20.
            endif.
          else.
            if lwa_03-satsur eq 'T'.
              lwa_e1edl21-lprio = 10.
            else.
              lwa_e1edl21-lprio = '  '.
            endif.
          endif.
          lwa_e1edl21-berot = lwa_04-driver.
          move: 'E1EDL21'   to t_idoc_data-segnam,
                lwa_e1edl21 to t_idoc_data-sdata.
          append t_idoc_data.
          lwa_e1edl55-qualf = '001'.
          lwa_e1edl55-refnr = lva_saleord.
          move: 'E1EDL55'   to t_idoc_data-segnam,
                lwa_e1edl55 to t_idoc_data-sdata.
          append t_idoc_data.
    Loop at materials - create delivery entry for each
          loop at l_it_05 into lwa_05
            where ticketnumber = lwa_01-ticketnumber.
            clear t_idoc_data.
            lwa_e1edl24-matnr = lwa_05-material.
            lwa_e1edl24-werks = lwa_03-plant.
            lwa_e1edl24-vfdat = lwa_01-ticketdate.
            lwa_e1edl24-lfimg = lwa_05-quantity.
            lwa_e1edl24-vrkme = lwa_05-unitofmeasure.
            lwa_e1edl24-lgort = t_zint_param-zint_fv.
            clear lva_loggr.
            lva_formmat = lwa_05-material.
            clear lva_loggr.
            select single loggr into lva_loggr from marc
              where matnr = lva_formmat
              and   werks = lwa_03-plant.
            if sy-subrc ne 0.
            No logistics handling group - log a warning message.
              concatenate 'No logistics handling group for material'
                           lva_formmat
                          'in plant'
                           lwa_03-plant
                into v_messg separated by space.
              perform write_log_entry
                tables t_ldata
                using 'W' 'ZINT_CSTPORD_ROUTINES'
                          'PROCESS_INBOUND_DATA'
                          v_messg
                          p_zint_nw
                          lwa_01-ticketnumber.                " RJS
              lva_loggr = 'BBIN'.
            endif.
            if lva_loggr is initial.
              move: 'E1EDL24'   to t_idoc_data-segnam,
                    lwa_e1edl24 to t_idoc_data-sdata.
              append t_idoc_data.
            endif.
          endloop.
          clear: lva_xabln,
                 lva_vbeln,
                 l_vbfa.
    Matching ticket against a Delivery?
          select single xabln vbeln into (lva_xabln,lva_vbeln) from likp
              where xabln = lwa_01-ticketnumber.
          if sy-subrc = 0.
    If found, does this delivery match the sales order?
            select * from vbfa into l_vbfa
              where vbelv = lva_saleord
              and   vbeln = lva_vbeln.
              exit.
            endselect.
          endif.
    No matching delivery found, or Matching delivery, but for other Sls Ord
          if lva_xabln is initial
          or ( lva_vbeln <> space and l_vbfa is initial ).
            if not lva_saleord is initial.
              perform create_delivery_idocs tables t_zint_mslog
                                            using  s_idcgp
                                                   lwa_01-ticketnumber
                                                   p_zint_nw.
            else.
              concatenate 'Error finding a Sales Order for ticket "'
                          lwa_01-ticketnumber
                          '" reprocess the file AFTER'
                          ' the sales order issues have been fixed'
              into        lva_outtext.
              perform write_log_entry tables t_zint_mslog
                                      using  'E'
                                             'ZINT_CSTPORD_ROUTINES'
                                             'PROCESS_INBOUND_DATA'
                                             lva_outtext
                                             p_zint_nw
                                             lwa_01-ticketnumber. " RJS
            endif.
          else.
            concatenate 'Command Ticket "'
                        lwa_01-ticketnumber
                        '" has already been processed into delivery "'
                        lva_vbeln
            into        lva_outtext.
            perform write_log_entry tables t_zint_mslog
                                    using  'I'
                                           'ZINT_CSTPORD_ROUTINES'
                                           'PROCESS_INBOUND_DATA'
                                           lva_outtext
                                           p_zint_nw
                                           lwa_01-ticketnumber. " RJS
            refresh t_idoc_data.
          endif.
        endif.
        refresh t_idoc_data.
    Write out all messages collected so far
        perform update_data tables t_zint_mslog
                            using p_zint_id p_zint_ty.
      endloop.
    Write out all messages collected so far
      perform update_data tables t_zint_mslog
                          using p_zint_id p_zint_ty.
    endform.                    " process_inbound_data
    Thnaks
    Regards

    Thanks
    Thread closed

  • How to Upload WIP Production orders in production during Cutover.

    How to Upload the Open Production orders in production system during cutover activities.
    my client is having 1000 open production order(WIP), during cutover activies how to upload this in production.
    Please guide me
    Regards
    Sunil Patil.

    Hi,
    I somewhat agree with what Raj has to say. Something which is already in process how can that be uploaded, how can one compensate for the time which has been consumed in the production activity.
    I hope Rupesh Brahamakar sir would throw light on this issue, as most of us are under the dillema at the time of Cut-Over activity.
    Sir, hoping your valueable inputs.
    Regards,
    Harris

  • Reprocessing of Production order/Process order

    Hi friends,
    Can anybody explain me what is reprocessing of production order.
    Plz explain me in a step by step manner.
    Thanks very much.
    Kind Regards

    Hi Arun Kumar,
    Reprocessing
    Use
    In the area of confirmation, you can separate confirmation entry from processing. As a result, errors may occur when confirmations, or the processes that follow them, are posted. You can eliminate these errors by reprocessing them. The following reprocessing functions are available:
    Confirmations
    Actual costs
    Goods movements
    Reprocessing Confirmations :
    Use
    You use this function to process confirmations for which errors occurred as they were being automatically processed. With this function, you can either delete or, if possible, eliminate the errors and post the confirmations again.
    Confirmations with errors can arise if they were entered in one of the following ways:
    Upload from a PDC system (see Upload)
    Online entry ( Fast Entry or Mass Processing)
    Entry via BAPI interface
    Possible errors include:
    Order does not exist (for entry via PDC system, BAPI interface)
    Order was locked
    Sequence of time events incorrect
    Individual capacity does not exist
    Work center or personnel number does not exist
    Features
    Reprocessing has the following advantages:
    Selection
    On the initial screen, you can enter your selection criteria for selecting the confirmations that you want to reprocess. Possible selection criteria are: Production order, plant, confirmation, WBS element, sales order, MRP controller, work center, created by, created on.
    Navigation
    The screen for reprocessing confirmations is split into two areas:
    Overview list of the confirmations
    Detail screen for the selected confirmation
    In the standard setting, the overview list is on the left and the detail display of the confirmation is on the right. To change the position of the overview list, choose  (move the list in an anti-clockwise direction, select the position of the overview list). This last setting is saved for the particular user who created it and is used again the next time the function is called up.
    Reprocessing
    The confirmation that you have chosen from the overview (cursor position) is displayed in the detail screen. In the detail screen, you can remove the error in the confirmation.
    The following confirmations can be reprocessed:
    Order confirmation
    Operation confirmation
    Time event confirmation
    Activity confirmation
    The layout of the detail screen is determined by the confirmation that you are currently processing. The layout can be set up flexibly for an operation confirmation (see Single Screen Entry).
    Display error
    To display a long text about the error for each confirmation, position the cursor on the confirmation and choose .
    Check confirmation
    You can check one or more confirmations. To check confirmations, select them and choose . In the Status field on the overview list, the result of the check is displayed with a symbol.
    Delete confirmation
    If a confirmation is not to be posted because, for example, it has entered the SAP System by mistake, you can delete it. To do this, select the confirmation and choose . The confirmation is flagged for deletion and is deleted when you save.
    Delete a line
    To delete confirmations from the overview that you do not want to process at the moment, choose . The confirmation is, however, retained for reprocessing at a later stage.
    2.Cost Determination Error Processing
    Use
    You use this function to gather information about errors in cost determination and if necessary to repeat it.
    If errors occurred when determining actual costs online, you can decide whether or not the confirmation and the error records are saved. If you are using Decoupling Confirmation Processes, the errors are recorded during the execution of the background job or during updating.
    Features
    This function includes:
    An error log which displays the cost determination errors in detail
    Errors are, for example: missing activity prices, invalid cost centers or incorrect assignment of an activity type to a cost center.
    Rerunning cost determination
    Starting a New Costing Run
           1.      Choose either
    ¡        Production orders: Logistics ® Production ®  Shop Floor Control ® Confirmation ® Reprocessing ® Actual Costs
    ¡        Process orders: Logistics ® Production u2013 Process ® Process Order ® Confirmation ® Recalculate Actual Costs
           2.      Enter your selection criteria.
           3.      Choose  (Execute).
           4.      Select the confirmation in question and choose  (Error Log).
    Analyze the errors.
           5.      If necessary remove the errors.
    To remove the errors, you have to exit the reprocessing function.
           6.      Choose Production ® Shop Floor Control ® Confirmation ® Reprocessing ® Actual Costs or Production u2013 Process ® Process Order ® Confirmation ® Recalculate Actual Costs or open a new session.
           7.      Enter selection criteria for the confirmations for which you want to restart the actual cost calculation.
           8.      Choose  (Execute).
           9.      Select the confirmation and choose  (Save).
    Failed Goods Movements Processing :
    Use
    This function allows you to process goods movements that failed when posting confirmations. After correcting any errors that occurred, you can then post the goods movements a second time.
    Features
    This function includes:
    Detailed display of errors
    Errors can be caused by insufficient information such as missing storage locations or missing batch numbers. Errors can also include locked material data, insufficient stock, or attempts to post goods movements in the wrong accounting period.
    Opportunity to correct failed goods movements
    Option of posting goods movements a second time
    Reprocessing Goods Movements
           1.      Choose either
    ¡        Production orders: Logistics ® Production ®  Shop Floor Control ® Confirmation ® Reprocessing ® Goods Movements
    ¡        Process orders: Logistics ® Production - Process ® Process Order ® Environment ® Material Movement ® Failed Goods Movements.
           2.      Enter your selection criteria:
           3.      Choose  (Execute).
           4.      Select the goods movement that you want to reprocess.
           5.      Choose  (Display Errors) to display the errors that have arisen, in detail. To leave the message, choose  (Continue).
           6.      Select the required goods movements and make the necessary changes (for example, Edit ® Replace ® Storage location).
    For example, you can delete incorrect goods movements.
    When incorrect goods movements are deleted, the system does not carry out an automatic adjustment of reservations.
           7.      Choose  (Save) to restart the execution of goods movements.
    When you are reprocessing the goods movements for the confirmation, you can go to the goods movements overview.  Choose  Change Details, to change the goods movements.
    Hope this details is enough for clearing your doubt.
    Revert if any doubt and reward if useful.
    Regards,
    Tejas

  • How to create Disassembly production order type.

    Dear All,
    I've been reading threads regarding disassemblyi type production order usage, but in my system (SAP ECC 6.0) i don't have an option to select this type of order.
    So the question is how to create this disassembly type for production order, what other settiings are needed for disassembly processing. And could you pls shortly describe best practise for disassembly processing.
    Thanks in advance,
    Regards, Andrey
    Edited by: Andrey Kruglov on Jul 15, 2010 3:45 PM

    Hello
    Such functionality does not exist on the standard system, however, there is a functionality called Order Combination for the industry solution DIMP.
    Please take a look on the following document, which describes the order combination scenario:
    https://help.sap.com/bp_fm603/BBLibrary/HTML/372_EN_FR.htm
    BR
    Caetano

  • Changes in production order/Process order

    Hi Experts,
    Very much hopeful that I will get solutuion of below:
    How or where to see changes done in production / process order.
    e.g Suppose I have created one production order. Then release it in CO02. Then I changed order quantity from 100 to 200 ( Earlier it was 100 ). Then I delete one BOM component from order. Then I changed finish date of order.
    Pls tell me how to track these changes. What configuration need to track these changes. Please tell me step by step procedure.
    I have read related thread in sdn itself but not satisfied.
    Please help.
    Regards,
    Vipul

    Hi,
    For tracking in changes of Production / Process Order, you need to activate Order Change Management (OCM). After activating the same, you can view changes of Production  order in CO02 / CO03.
    for more details of OCM go through following link :
    [Order Change Management (OCM)|http://help.sap.com/saphelp_erp60_sp/helpdata/en/a5/63198843a211d189410000e829fbbd/frameset.htm]
    Hope this helps.
    Regards,
    Tejas

Maybe you are looking for