Modifying the production order from VBAP

Hi Expers
I need some modification and write a code so how to proceed with the following comments as below
Modification to processing of Command Orders & Tickets
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:
u2022     Inspect each item on the sales order
u2022     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.
Regards
Piroz

Thread closed

Similar Messages

  • Upgrade the production order after the save.

    Dear Gurus,
    i need of modify the production order quickly after the save.
    Can you help me?
    I must run the Bacht input custom for upgrade the order.
    How i can run the Bach input quickly after the save order?
    There are the others method for my problem?
    Thanks a lot for your help.
    PP Team
    Daniele Pistilli

    Hi,
    Not sure what you're trying to update as you're post is not quite clear.
    Anyways you can use the user exit - ppco007 or badi - WORKORDER_UPDATE method AT_SAVE. These enhancements are called at the time of saving the production order, so you can do your custom programming in them, take the help of your abaper.
    Regards,
    Vivek

  • Production Order - Modify field Material Provision Indicator for component in the production order

    Good afternoon,
    I have a component in the bill of material, that has the option Material Provision Indicator activated.
    When i create the production order, the component automaticaly is activated with the  Material Provision Indicator option.
    However, in the production order, this field isn't possible to modify, because is closed.
    Anybody knows way the modify this field? Configure to open?
    Thanks.
    Kind Regards,
    António Pinho

    Hello Amar,
    I am also getting the same error while Releasing Production Order and Costing (CO11N). This error is related to EHP7 in our case.
    Please try one of the following solution and see whether the error is gone or not.
    1. Implement the SAP Note 1317551 - Error AD_SUBCON 141 / 143 / 144 (T417)
    OR
    2. Complete the customizing of Material Provision Indicator (T Code OICO) as per the attachment.
    Regards,
    Prashant Karanjgaonkar

  • Can we restrict the partially confirmed production order from getting delet

    Dear all,
    Can we restrict the partially confirmed production order from getting deleted?
    I.e. if the production order is having status PCNF then the deletion flag indicator (status DLFL) should not be allowed to set
    SmanS
    Edited by: SAP PP Consultant on Feb 4, 2009 6:12 AM

    Hi,
    Then must be there is change in BS22.Check allowed transaction setting for Status PCNF/CNF .For reference purpose compare it with other client IDES or sand box.
    For your reference I have pasted Error log on the same.
    Balance of ORD 1000000702 is not zero
    Message no. KO115
    Diagnosis
    The balance on object ORD 1000000702 is not zero. That is, there are still costs on the object.
    System Response
    The object cannot be closed and the deletion flag must not be set.
    regards,
    Dhaval

  • Update Itemcost from the Production order.

    Hi Experts,
    I have created a UDF(Amount) in the Production order rows, if iam entering the amount for the input item the Amount should get updated in the Itemcost of the Itemmaster data.. How to write the update statement? Is it possible to update the Average price of the item from the Production order using a UDF?
    Regards,
    Magesh.

    Magesh,
    The Item cost of an Item is managed and calculated by SAP based on the different transactions.  You should not be updating this Cost using SQL UPDATE statements.
    The times you generally change Item cost manually is when you are using Standard Cost and you want to set the Cost for the Item.  This is also possible only when there is no Quantities on Hand.
    Suda

  • 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

  • Need to get the production order by inputting Material number and serial no

    Hi Experts,
    I have material number and serial number . All I need is PRODUCTION ORDER number.
    Can any one give the table joints for that ?
    Thanks,
    Koya.

    hai check this code.. similar req:
    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

  • Unable to open the Production Order

    Hi All,
    there is a message error while trying to open the Production Order using tcode CO03.  The message is "User AA is currently processiong order 123456".
    User AA is already log-off from the system, but still giving the same error message.
    How to solve this problem?
    Thanks.

    Hi,
    Logically to display any document it may not resttrict even though same document is using by other user it may only allow yout display rather to change......but also try the below way it may help you.
    Just re login in user AAA and select the first radio button "continue with this login and end other login" and then login from your USER ID and try to display the production order through CO03.
    BR

  • Open the reservation for the Production order

    Hi,
    I have post the GI for Production order MB1A with movement type 261 from 100 peaces components. I would like to cancel a partial quantity of components from this posting (about 30 peaces). After cancel it the reservation for the production order has to be open for 30 peaces of components.
    I've canceled it through MB1A and mtype 262 but the reservations weren't open and in the PO (component overview there is always the sign"the Final Issue for This Reservation").
    Which T.code and mtype could I use.
    Thanks
    Dede

    Hi,
    Have you cancelled the movement (of 30 pieces) by selecting the "with reference" option from the menu?
    If not, then reverse the current cancellation document. Then again cancel the 261 movemtn by selecting the with refernce button from the menu. It will sove the problem.
    Check & revert.
    Regards,
    Rohit.

  • Sales Order Schedule line not populating in the Production order

    Queation: Is there a way to tell the system to look at the sales order, line item AND schedule line. It is displayed in MD04 but it doesn't carry over to the Production Order. We are a MTO and this information is relevant in a number of ways. 
    Please Help.

    Vickie,
    If you are using MTO scenario then when you run the MRP for the material, it will create a planned order for that sales order based on the dates calculated from the sales order schedule line (Shipping tab)...
    So now when you convert the planned order to production order, all the sales order details will get copied.
    try and revert back.
    Swapnil

  • 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 can I get status of a production order from database?

    Hi,
       I need to write a report to show user details about the production order. Because there are some customized linkages between our sales order and production order, we can't use COOIS directly.
      But I met a problem when writing this report. I found that after TECO, all lines on reservation of the production order will be set deletetion flag. So, I need to tell which orders had been TECO-ed. But I don't know from which fileds and which tables I can get the data to tell this. Please help.

    Hi Robbie,
    You can use function module STATUS_READ
    You need to pass it the object number - for a PP order header it will be something like OR000001000000
    You can also set an indicator to only retrieve active status values.
    The FM returns a table of status codes which are in the internal format and look like I0002
    Then use table TJ02T for system statuses to determine what these internal codes mean. If you have user statuses you should be able to work out where they are stored by looking at the technical information behind the configuration transactions.
    Regards,
    Monika

  • Error while Closing the Production order.

    Hi ,
      We are doing operation Subcontracting Process. This process works on the basis of Production order, once the Production order generated automatically system generates a Purchase requisition which we are converting to Purchase order  and doing the sub contracting process.
    Now i have received all the material from the Subcontractor ( GRN and MIRO ) has been completed , for the Production order all the confimration and Delivery has also been completed , now i have done Technically completion for that order , now i am closing the Order ( Functions -Restrict processing - close ) , while closing it gives me an error saying that Purchase order still exists .
    Wat is this error ?? why is it coming so ??
    Regards
    Rajesh

    hi,
    You have to ensure that the order is not having any WIP, if you have any WIP for that order you have to complete the order and then only you could abale to clsoe the order.
    Check the WIP for the order thorugh KKAX.
    Regards,
    Rama Mohan

  • Doubt about the settlement rule of the Production ORder

    The only default distribution rule allowed for a PP order is PP1 or PP2.  We would need to change that to allow settlement to multiple receivers as a default. If that is the case, we may want to look into a user exit to update the settlement rule during production order creation instead so that the G/L account is correct from the beginning.
    Currently when we create the production order, the settlement rule will default the below, I am not sure if a user exit is able to maintain the Source as 200 (Materials)?
    If yes, we can then add the second rule for Source 100 (Labor and Mfg) via the user exit as well.
    In this case, SAP will not prompt us error of settlement with 200%, as they are from difference Sources.
    now anybody can explain me about the User EXit we have to correct this

    any help on this.. please its very urgent
    thanks in advance

  • In the Production Order, Sales Quotation is displayed not the Sales Order

    Hello to All,
    I need a kind help from you.
    My scenario is as follows
    There is a Configurable Material (Finished Product)
    Sales quotation (VA21/2/3) were made for this material.
    Sales Order (VA01/2/3) with reference from the Sales Quotation were made for this same material.
    Now when I run the MRP (MD02) for this material, Planned Orders were created.
    Planned orders were converted to the Production Order.
    In the Production Order (say in Display mode), under the 'General' tab, there is a segment called 'Sales order'. In this segment, the sales order is being displayed if the Production Order is created for a sales order (MTO scenario).
    But, in my case, the Sales Quotation number is being displayed instead of the Sales order.
    My Issue which need your answers:
    Is it a standard SAP scenario?? I mean, if the production order is created for a sales order and again if the sales order is created earlier with reference to a sales quotation, then in the production order, the Sales quotation is displayed. Is it a standard?? Or it is showing wrongly? I mean, is it like that, always the sales order should be displayed in the Production order and not the sales quotation??
    Please suggest so that I can overcome this problem, if at all it is a problem.
    Some More Inputs (For your analysis/research):
    1. After the MRP run of the material the Planned Order is created. I have checked the planned order, and found tha the assignment of sales document (in this case Quotation) is done in the Planned order itslef. It is visible wthin the "Assigmnet" tab of the Planned Order.
    2. For the analysis purpose, I created one stand-alone Sales Order for the same material. I mean, without reference from any Sales Quotation. Then, when I run the MRP (md02), the Planned Order and then production order were created normally, with reference to the Sales order. This just for your kind information.
    3. I have checked the pegged requirement of the Production order in the MD04. It is showing the Sales order itself. But, if I see the production order (CO02/O03), it shows sales quotation.
    User Requirement:
    Evenif, the sales order is created with reference to a Sales Quotation, after MRP run, in the Planned and thereby subsequent production order, the Sales Order should display and not the Sales quotation.
    Please suggest.
    Thanks and Regards,
    Supriyo

    Hi
    Since your scenario is configurable material,  the system takes the reference of sales quotation only. Because the in case of configurable materials the sales quotation is the base and based on the sales quotation the sales order is created and subsequent production order.
    This is std SAP and for configurable materials the sales quotation is deciding factor
    Krishna

Maybe you are looking for

  • 701, symbian belle, syncml problem, invalid remote...

    It seems a common problem without solution which I am having now as well, but I think I found the reason why it's not working. Log session from a n97-mini: [2012-08-02 14:27:09.629][http-443-Processor25]DataStoreConnection.getFolders() [2012-08-02 14

  • Why iWork apps are listed as gratis in the topcharts, but show a price?

    Why iWork apps are listed as gratis in the topcharts, but show a price? What happens when I buy? Will I be charged? Not nice how apple confuse their customers ...

  • Occi AQ callback not called

    I have written code for dequeing messages with blocking calls (Consumer::recieve), which works fine. Now I try to register a callback function, which should be called when a message is in the queue. Some code: void aq_connection::create_callback() {

  • Cant switch to numbers/special characters on keyboard

    Hi, I was wondering if anyone can help me with this! I just bought my phone about 2 months ago and its already having problems. It doesnt matter where im typing to but I cant switch to numbers/special characters on the keyboard. Is anyone else having

  • Encoding in weblogic server 9.1

    Please someone let me know how to set ISO encoding in startWeblogic for Weblogic server 9.1?