PP: Production Order Qty UOM should be based on the sales order Qty UOM though having Alternate UOMs in material master

Hello PP GURUS I am new to this and i have one issues. I.e., While creating the Production Order, want the unit in the production order should be based on the sales order unit instead of what has been defined in the material master. Since, having 3-4 alternate unit of a material & can create a Sales Order in any one of them.
Also pls let me how to go through
either with the help of ABAP or configuration.
If it is with the configuration pls let me know the solution to arrive.
Eg: Base UOM is KGS
      Alt UOMs: SQM, MTR, NOS
Sale order is Prepared with SQM and the same shall be in production order too to produce qty.
Pls help me.
rgds,
Kumar V

Hi
First you have to maintain alternate units in mateial master for that first go in additional data & maintain the alternate units as below..
For example
1200 M2=1 KG For SQM
12 M=1 KG For MTR
3 PC=1 KG For NOS
And then you can get Sales unit field in sales data 1 view enter your sales unit in that field & you will get production unit in work scheduling views as per your desire production units and according to that units your sale order & production order will pick that units & you can proceed accordingly but remember that first maintian the conversion factor as above other wise it will not accept hope that it will help you have a nice day...
Regards,
Reena

Similar Messages

  • Report should executed based on the radio buttons on the selection screen

    Hi everyone,
    Greets....................
    My scenario is I have 2 selection screen blocks on same screen..
    One selection screen block contains input parameters as follows
    Company Code  -  S_BUKRS
    Business Area -  S_GSBER
    Customer Code -  S_KUNNR
    Fiscal Area  -   S_GJAHR
    GL Account - S_HKONT
    Posting Date  -S_ZFBDT
    Ledger Type  -P_RLDNR
    Open Item Key Date -  P_ZFBDT
    Another selection screen block contains 2 radio buttons with the option as follows
    Collection Plan
    *Credit days summary.
    If i click Collection plan the report output should come based on the input parameters in first selection-screen block.
    If i click Credit days summary the report output should come based on the input parameters in first selection-screen block.
    Pls send me the sample code for this.
    Thanks in Advance
    Regards
    Raj kumar

    See the below folling example : it will have radio buttons and depends on radio button it will show output.
    REPORT ZPPR_BOM_INFOL_REPORT no standard page heading
                     line-size 160
                     line-count 60.
    ======================================================================
    Program Name : ZPPR_BOM_INFOL_REPORT
    Description  : This Program would be used for BOM List for a material*
                   and the component's where used list                   *
    Author       : Seshu                                                 *
    Date         : 07/24/2006                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    |----
    |----
    |----
    *12/04/06 | Seshu    | DEVK921821 | Removed new page for each material *
    ======================================================================
    Table definition                                                    *
    TABLES: mast,
            stko,
            stpo,
            T418,
            makt.
    TYPE - POOLS
    TYPE-POOLS: slis.
    Constants
    constants : c_tcode(4) type c value 'CS03',
                gc_formname_top_of_page TYPE slis_formname
                VALUE 'TOP_OF_PAGE'.
    Variables
    data : v_maktx like makt-maktx,
           wa_stko like stko.
    DATA:
    Objekttyp 'Material'
       otyp_mat(1) TYPE c VALUE '1',
       ootyp_mat(1) TYPE c VALUE 'M',
    Objekttyp 'kein Objekt'
       otyp_noo(1) TYPE c VALUE '2',
    Objekttyp 'Dokument'
       otyp_doc(1) TYPE c VALUE '3',
    Objekttyp 'Klasse'
       otyp_kla(1) TYPE c VALUE '4',
    Objekttyp 'Intramaterial'
       otyp_ntm(1) TYPE c VALUE '5'.
    maximal anzeigbare Menge
    data:   max_num(7)  TYPE p DECIMALS 3 VALUE '9999999999.999',
            ueberl_kz(1) TYPE c VALUE '*',
            min_num(7)  TYPE p DECIMALS 3 VALUE '9999999999.999-',
            b_flag(1) TYPE c VALUE 'X',
            ecfld(250) TYPE c,
            v_flag type c.
    ALV Variables
    DATA: gt_fieldcat TYPE slis_t_fieldcat_alv,
          gs_layout   TYPE slis_layout_alv,
          gs_keyinfo  TYPE slis_keyinfo_alv,
          gt_sp_group TYPE slis_t_sp_group_alv,
          gt_events   TYPE slis_t_event.
    DATA: g_repid LIKE sy-repid.
    DATA: gt_list_top_of_page TYPE slis_t_listheader,
                g_tabname_header TYPE slis_tabname,
                g_tabname_item   TYPE slis_tabname,
                g_save(1) TYPE c,
                gx_variant LIKE disvariant,
                g_variant LIKE disvariant,
                g_default(1) TYPE c,
                g_exit(1) TYPE c.
    Includes                                                             *
    INCLUDE .
    Internal Table Declaration                                           *
    DATA: t_mast LIKE STANDARD TABLE OF mast WITH HEADER LINE.
    *DATA: t_makt LIKE STANDARD TABLE OF makt WITH HEADER LINE.
    BOM Function module Related
    DATA: t_matcat  LIKE cscmat OCCURS 0 WITH HEADER LINE.
    Internal Table for Level by Level Function module
    DATA: t_stb  LIKE stpox OCCURS 0 WITH HEADER LINE.
    Get the Relevant data from FM
    DATA: BEGIN OF hd_tab OCCURS 0,
             stufe LIKE stpox-stufe,
             vwegx LIKE stpox-vwegx,
          END OF hd_tab.
    Final Output
    DATA: BEGIN OF alv_stb OCCURS 0.
            INCLUDE STRUCTURE stpox_alv.
    DATA:   info(3)   TYPE c,
          END OF alv_stb.
    DATA: BEGIN OF stb_orig.
            INCLUDE STRUCTURE stpox.
    DATA: END OF stb_orig.
    DATA: BEGIN OF stb_add.
            INCLUDE STRUCTURE stpol_add.
    DATA: END OF stb_add.
    Internal Table for STPO
    *-- BOM Line item
    TYPES: BEGIN OF ty_stpo,
           stlty TYPE stpo-stlty,
           stlnr TYPE stpo-stlnr,
           stlkn TYPE stpo-stlkn,
           stpoz TYPE stpo-stpoz,
           idnrk TYPE stpo-idnrk,
           meins TYPE stpo-meins,
           menge TYPE stpo-menge, "Component Qty
           END OF ty_stpo.
    DATA: t_stpo TYPE STANDARD TABLE OF ty_stpo WITH HEADER LINE.
    *-- BOM Header
    TYPES: BEGIN OF ty_stko,
           stlty TYPE stko-stlty,
           stlnr TYPE stko-stlnr,
           stlal TYPE stko-stlal,
           stkoz TYPE stko-stkoz,
           bmein TYPE stko-bmein,
           bmeng TYPE stko-bmeng,
           END OF ty_stko.
    DATA: t_stko TYPE STANDARD TABLE OF ty_stko WITH HEADER LINE .
    data : t_makt like makt occurs 0 with header line.
    DATA: BEGIN OF cl_clstab OCCURS 0,                          "YHG079407
             class LIKE klah-class,                             "YHG079407
             klart LIKE klah-klart,                             "YHG079407
             chked LIKE csdata-xfeld,                           "YHG079407
             noobj LIKE csdata-xfeld,                           "YHG079407
             dsply LIKE csdata-xfeld,                           "YHG079407
          END OF cl_clstab.
    *-- Header table
    TYPES: BEGIN OF ty_main_material,
           matnr TYPE mast-matnr, "Material
           werks TYPE mast-werks, "Plant
           maktx TYPE makt-maktx, "Description
           stlal TYPE mast-stlal, "Alternative BOM
           stlnr TYPE stko-stlnr, "BOM Number
           bmein TYPE stko-bmein, "UOM
           bmeng TYPE stko-bmeng, "Base Qty
           expand(1) TYPE c,      "Expanding Field
           END OF ty_main_material.
    DATA: t_main_material TYPE STANDARD TABLE OF ty_main_material WITH
          HEADER LINE.
    *-- Item (Component) Table
    TYPES: BEGIN OF ty_item_material,
           matnr TYPE mast-matnr, "Material
           werks TYPE mast-werks, "Plant
           idnrk TYPE stpo-idnrk, "Component (Material)
           maktx TYPE makt-maktx, "Description
           stlal TYPE mast-stlal, "Alternative BOM
           stlnr TYPE stpo-stlnr, "BOM Number
           meins TYPE stpo-meins, "UOM
           menge TYPE stpo-menge, "Base Qty
           END OF ty_item_material.
    DATA: t_item_material TYPE STANDARD TABLE OF ty_item_material WITH
          HEADER LINE.
    Selection Screen                                                     *
    SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    PARAMETERS: p_werks LIKE marc-werks DEFAULT '1000' OBLIGATORY.
    SELECT-OPTIONS s_stlal FOR mast-stlal .
    SELECT-OPTIONS s_stlan FOR mast-stlan DEFAULT '1'.
    SELECTION-SCREEN SKIP.
    SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME TITLE text-002.
    SELECTION-SCREEN SKIP.
    PARAMETERS: p_bomlst RADIOBUTTON GROUP g1 DEFAULT 'X'.
    SELECT-OPTIONS s_matnr FOR mast-matnr.
    SELECTION-SCREEN SKIP.
    PARAMETERS: p_compon RADIOBUTTON GROUP g1.
    SELECT-OPTIONS: s_idnrk FOR stpo-idnrk.
    SELECTION-SCREEN END OF BLOCK b2.
    SELECTION-SCREEN END OF BLOCK b1.
    selection-screen begin of block b03 with frame title text-b03.
    selection-screen begin of line.
    selection-screen comment 1(40) text-005.
    parameters: p_all radiobutton group r1 default 'X'.
    selection-screen end of line.
    selection-screen begin of line.
    selection-screen comment 1(40) text-006.
    parameters: p_one radiobutton group r1 .
    selection-screen end of line.
    selection-screen end of block b03.
    SELECTION-SCREEN BEGIN OF BLOCK b3 WITH FRAME TITLE text-003.
    PARAMETERS: p_vari LIKE disvariant-variant.
    SELECTION-SCREEN END OF BLOCK b3.
    At slection screen events                                            *
    *-- Process on value request
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_vari.
      PERFORM f4_for_variant.
    Intitialisation
    INITIALIZATION.
      g_repid = sy-repid.
      g_tabname_header = 'T_MAIN_MATERIAL'.
      g_tabname_item   = 'T_ITEM_MATERIAL'.
    *-- define keyinformation
      CLEAR gs_keyinfo.
      gs_keyinfo-header01 = 'MATNR'.
      gs_keyinfo-item01   = 'MATNR'.
      PERFORM e03_eventtab_build USING gt_events[].
      PERFORM e04_comment_build  USING gt_list_top_of_page[].
      PERFORM e07_sp_group_build USING gt_sp_group[].
      PERFORM e08_layout_build   USING gs_layout.
    Set Options: save variants userspecific or general
      g_save = 'A'.
      PERFORM variant_init.
    Get default variant
      gx_variant = g_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_DEFAULT_GET'
           EXPORTING
                i_save     = g_save
           CHANGING
                cs_variant = gx_variant
           EXCEPTIONS
                not_found  = 2.
      IF sy-subrc = 0.
        p_vari = gx_variant-variant.
      ENDIF.
    S T A R T - O F - S E L E C T I O N *******************
    start-of-selection.
      if p_all = 'X'.
    Get the data from MAST and MAKT Table
        if p_bomlst = 'X'.
      Get the data Based On Material #
          perform get_data.
        else.
      Get the data Based On Component
          perform get_data_component.
        endif.
      else.
    Get the Single Level Report
    *-- Moved the fiedl catalog here inorder to change the layout based on
    *-- Selection
        PERFORM e01_fieldcat_init  USING gt_fieldcat[].
        PERFORM select_data.
      endif.
    E N D - O F - S  E  L  E  C  T  I  O  N *******************
    end-of-selection.
      if p_one = 'X'.
        perform alv.
      endif.
    User Command
    at line-selection.
    Interactive to CS03 Transaction
      case sy-ucomm.
        when 'PICK' or 'F2'.
          if not alv_stb-idnrk is initial .
            if not alv_stb-werks is initial.
              if not alv_stb-objty is initial.
                SET PARAMETER ID 'MAT' FIELD alv_stb-idnrk.
                SET PARAMETER ID 'WRK' FIELD alv_stb-werks.
                SET PARAMETER ID 'CSV' FIELD alv_stb-OBJTY.
                call transaction c_tcode and skip first screen.
              endif.
            endif.
          endif.
          clear alv_stb.
      endcase.
    *&      Form  get_data
          Get data from MAST and MAKT Table
    FORM get_data.
      data : wa_lines type sy-index.
      REFRESH : T_MAST,
                t_STB,
                t_MATCAT,
                alv_STB.
      CLEAR : T_MAST,
                t_STB,
                t_MATCAT,
                alv_STB.
    Get the data from MAST Table
    Get all the information from MAST - BOM Table
      SELECT * FROM mast INTO TABLE t_mast WHERE matnr IN s_matnr AND
                                                 werks = p_werks  AND
                                                 stlan IN s_stlan AND
                                                 stlal IN s_stlal.
      describe table t_mast lines  wa_lines.
      if wa_lines is initial.
        Write:/2 'List contains no data'.
        stop.
      endif.
      loop at t_mast.
        clear : v_maktx.
    Start of change  Seshu
    Reason - Remove the new page option
        if sy-tabix ne 1.
          skip 1.
        endif.
    End of Change  Seshu
    Get the material Description
        select single maktx from makt into  v_maktx
                                 where matnr = t_mast-matnr
                                 and   spras = 'E'.
    Get the material details from STKO Table
        select single * from stko into wa_stko
                        where STLTY = 'M'
                        and   STLNR = t_mast-stlnr
                        and   STLAL = t_mast-stlal.
    Main Header for Each Material
        format color 5 on.
        write:/2 'Material',20 'Material Description',65 'Alternative BOM',
             90 'Base Qty', 115 'Base Unit'.
        format color 5 off.
        format color 1 on.
        write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
               115 wa_stko-BMEIN.
        format color 1 off.
    Use the Function Module and get the format level by level
        perform get_level_level.
      endloop.
    ENDFORM.                    " get_data
    Top of page                                                  *
    top-of-page.
      perform report_header .
    *&      Form  report_header
          text
    -->  p1        text
    <--  p2        text
    FORM report_header.
      new-page line-size 160 .
      format color col_heading intensified on.
      write:/ sy-uline(160) .
    *--- Write Company Name.
      perform calc_col_and_write using    text-h00
                                          sy-linsz.
    *--- Write Report Title.
      perform calc_col_and_write using    sy-title
                                          sy-linsz.
    *--- Write User Id, Date / Time, Program Id, Page etc.
      perform write_other_hdr_details.
      write:/ sy-uline(160) .
    ENDFORM.                    " report_header
    *&      Form  calc_col_and_write
          text
         -->P_TEXT_H00  text
         -->P_SY_LINSZ  text
    FORM calc_col_and_write USING    P_TEXT
                                     P_LINSZ.
      data: col1 type i,
             col2 type i,
              len  type i,
              str  type i.
      str  = strlen( p_text ).
      col1 = ( p_linsz / 2 ) - ( str / 2 ) .
      len  = p_linsz - col1 - 2.
      write: at  /1  '|'.
      write: at  col1 p_text,
             at  sy-colno(len) space.
      write  at  160 '|'.
    ENDFORM.                    " calc_col_and_write
    *&      Form  write_other_hdr_details
          text
    -->  p1        text
    <--  p2        text
    FORM write_other_hdr_details.
      data: col1 type i,
              col2 type i,
              len  type i.
      col1 = 3.
      write:/1 '|'.
      write: at  col1 'UserId  : ',
                      sy-uname.
      len = sy-linsz - 1.
      write at sy-colno(len) space.
      col2 = sy-linsz - 18.
      write: at col2 'Date: ',
                     sy-datum mm/dd/yyyy.
      write: at sy-linsz '|'.
      write:/1 '|'.
      write: at  col1 'ReportId: ',
                      sy-repid.
      write at sy-colno(len) space.
      col2 = sy-linsz - 18.
      write: at col2 'Page: ',
                      sy-pagno.
      write: at sy-linsz '|'.
    ENDFORM.                    " write_other_hdr_details
    *&      Form  get_data_component
          Get the data based on Component level
    FORM get_data_component.
      data wa_lines type i.
    *-- Get the BOM item details
      SELECT  stlty stlnr stlkn stpoz idnrk meins menge
              FROM stpo
              INTO TABLE t_stpo
      WHERE   idnrk IN s_idnrk.
      IF sy-subrc = 0.
        CLEAR wa_lines.
        DESCRIBE TABLE t_stpo LINES wa_lines.
        IF wa_lines > 0.
          SELECT  stlty stlnr stlal stkoz bmein bmeng
                  FROM stko
                  INTO TABLE t_stko
                  FOR ALL ENTRIES IN t_stpo
          WHERE stlnr = t_stpo-stlnr.
          CLEAR wa_lines.
          DELETE ADJACENT DUPLICATES FROM t_stko COMPARING ALL FIELDS.
          DESCRIBE TABLE t_stko LINES wa_lines.
          IF wa_lines > 0.
    *-- Get the BOM item details
            SELECT * FROM mast INTO TABLE t_mast FOR ALL ENTRIES IN t_stko
                                                WHERE werks = p_werks  AND
                                                  stlnr = t_stko-stlnr
                                                  and stlal in s_stlal.
          ENDIF.
        ENDIF.
      else.
        Write:/2 'List contains no data'.
        stop.
      endif.
      loop at t_mast.
        clear : v_maktx.
    Start of change  Seshu
    Reason - Remove the new page option
        if sy-tabix ne 1.
          skip 1.
        endif.
    End of change    Seshu
    Get the material Description
        select single maktx from makt into  v_maktx
                                 where matnr = t_mast-matnr
                                 and   spras = 'E'.
    Get the material details from STKO Table
        select single * from stko into wa_stko
                        where STLTY = 'M'
                        and   STLNR = t_mast-stlnr
                        and   STLAL = t_mast-stlal.
    Main Header for Each Material
        format color 5 on.
        write:/2 'Material',20 'Material Description',65 'Alternative BOM',
             90 'Base Qty', 115 'Base Unit'.
        format color 5 off.
        format color 1 on.
        write:/2 t_mast-matnr,20 v_maktx,65 wa_stko-STLAL, 85 wa_stko-BMENG,
               115 wa_stko-BMEIN.
        format color 1 off.
    Use the Function Module and get the format level by level
        perform get_level_level.
        clear : t_mast.
      endloop.
    ENDFORM.                    " get_data_component
    *&      Form  obj_ident
          text
    FORM obj_ident.
    weder Mat noch Doc
      CHECK: T_stb-objty NE otyp_mat,
             T_stb-objty NE ootyp_mat,
             T_stb-objty NE otyp_doc,
             T_stb-objty NE otyp_ntm.
    ?T418-WA schon ok
    nein
      IF T_stb-postp NE t418-postp.
        T418 einlesen
        PERFORM t418_lesen USING T_stb-postp.
      ENDIF.
      PERFORM cl_clstab_maint.
    ?MatNr-Eingabe bei diesem PosTyp moeglich
      und keine Textposition
    trifft zu
      IF     t418-matin NE '-'
         AND t418-txpos IS INITIAL.
        aktuelles Objekt ist Material NLAG
        T_stb-objty = '1'.
        PosKurztext in ObjKurztext uebernehmen.
        T_stb-ojtxp = T_stb-potx1.
        MODIFY T_stb.
      ELSE.
        IF T_stb-objty IS INITIAL.
          T_stb-objty = '2'.
          MODIFY T_stb.
        ENDIF.
      ENDIF.
    ENDFORM.                    " obj_ident
    *&      Form  t418_lesen
          text
         -->P_T_STB_POSTP  text
    FORM t418_lesen USING   lkl_postp LIKE stpo-postp.
    T418-WA initialisieren
      CLEAR:
         t418.
    Key angeben
      t418-postp = lkl_postp.
    PosTypDefinition lesen
      READ TABLE t418.
    ENDFORM.                    " t418_lesen
    *&      Form  cl_clstab_maint
          text
    FORM cl_clstab_maint.
    nur fuer Klassenpositionen
      CHECK t_STB-OBJTY EQ OTYP_KLA.
    Teilkey der Klassenpositionentabelle
      CL_CLSTAB-CLASS = t_STB-CLASS.
      CL_CLSTAB-KLART = t_STB-KLART.
    Klassenpositionentabelle lesen
      READ TABLE CL_CLSTAB
         WITH KEY CL_CLSTAB(21)
         BINARY SEARCH.
    aktuelle Klassenposition bereits in Klassenpositionentabelle
    nein
      IF SY-SUBRC <> 0.
        Klassenposition in Klassenpositionentabelle hinzufuegen
        INSERT CL_CLSTAB INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    " cl_clstab_maint
    *&      Form  alv_stb_prep
          Printing the data as LEVEL BY LEVEL
    FORM alv_stb_prep.
      CLEAR:
          alv_stb,
          stb_orig,
          stb_add.
      IF t_stb-hdnfo IS INITIAL.
        stb_orig = t_stb.
        IF t_stb-mngko >= max_num.
          stb_add-ovfls = ueberl_kz.
        ELSE.
          IF t_stb-mngko <= min_num.
            stb_add-ovfls = ueberl_kz.
          ELSE.
            CLEAR: stb_add-ovfls.
          ENDIF.
        ENDIF.
        IF NOT t_stb-xtlnr IS INITIAL.
          stb_add-bomfl = b_flag.
        ENDIF.
        IF    NOT t_stb-knobj IS INITIAL
           OR NOT t_stb-class IS INITIAL
           OR NOT t_stb-kzclb IS INITIAL.
          stb_add-knofl = 'X'.
        ENDIF.
      ELSE.
        CHECK t_stb-stufe > 1.
        alv_stb-info = 'C30'.
        IF t_stb-ttidx <> t_matcat-index.
          READ TABLE t_matcat INDEX t_stb-ttidx.
        ENDIF.
        stb_orig-hdnfo = t_stb-hdnfo.
        stb_orig-stufe = t_stb-stufe - 1 .
        stb_orig-ojtxp = t_stb-ojtxb.
        IF NOT t_stb-altst IS INITIAL.
          stb_orig-stlal = t_stb-stlal.
          IF stb_orig-stlal(1) EQ '0'.
            stb_orig-stlal(1) = ' '.
          ENDIF.
        ENDIF.
        stb_orig-idnrk = t_matcat-matnr.
      ENDIF.
      CLEAR:
        stb_add-dobjt,
        stb_add-objic.
      CASE t_stb-objty.
        WHEN otyp_mat.
          WRITE: stb_orig-idnrk TO ecfld.
          stb_add-objic = '@A6@'.
        WHEN 'M'.
          WRITE: stb_orig-idnrk TO ecfld.
          stb_add-objic = '@A6@'.
        WHEN otyp_noo.
          WRITE: stb_orig-potx1 TO ecfld.
          stb_add-objic = '@0Q@'.
        WHEN otyp_doc.
          write stb_orig-doknr to ecfld.                        "note 489354
          IF ecfld CP '*# '. ENDIF.                             "note 489354
          sy-fdpos = sy-fdpos + 1.                              "note 489354
          CONCATENATE
    *d      stb_orig-doknr                                      "note 489354
            stb_orig-dokar
            stb_orig-doktl
            stb_orig-dokvr
    *d      INTO ecfld                                          "note 489354
            INTO ecfld+sy-fdpos                                 "note 489354
            SEPARATED BY space.
          stb_add-objic = '@AR@'.
        WHEN otyp_kla.
          CONCATENATE
            stb_orig-class
            stb_orig-klart
            INTO ecfld
            SEPARATED BY space.
          stb_add-objic = '@7C@'.
        WHEN otyp_ntm.
          WRITE: stb_orig-intrm TO ecfld.
        WHEN OTHERS.
      ENDCASE.
    *d CONDENSE ecfld.                                          "note 515408
      stb_add-dobjt = ecfld(40).
      CLEAR: ecfld.
      WRITE stb_orig-stufe TO stb_add-dstuf NO-SIGN.
    *d  MOVE-CORRESPONDING stb_orig TO alv_stb.                 "note 331962
      MOVE-CORRESPONDING stb_add TO alv_stb.
      MOVE-CORRESPONDING stb_orig TO alv_stb.                   "note 331962
      APPEND alv_stb.
    ENDFORM.                    " alv_stb_prep
    *&      Form  get_level_level
          text
    FORM get_level_level.
      REFRESH : T_STB,
                T_MATCAT,
                ALV_STB.
      CLEAR : T_STB,
              T_MATCAT,
              ALV_STB.
      CALL FUNCTION 'CS_BOM_EXPL_MAT_V2'
           EXPORTING
                capid                 = 'PP01'
                datuv                 = sy-datum
                mktls                 = 'X'
                mehrs                 = 'X'
                mtnrv                 = t_mast-matnr
                stlal                 = '01'
                stlan                 = '1'
                stpst                 = 0
                svwvo                 = 'X'
                werks                 = p_werks
                vrsvo                 = 'X'
           TABLES
                stb                   = t_stb
                matcat                = t_matcat
           EXCEPTIONS
                alt_not_found         = 1
                call_invalid          = 2
                material_not_found    = 3
                missing_authorization = 4
                no_bom_found          = 5
                no_plant_data         = 6
                no_suitable_bom_found = 7
                conversion_error      = 8
                OTHERS                = 9.
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
      CLEAR: hd_tab.
            Entry der KlassenstatusTab. initialisieren
             cl_clstab,
            Entry 'Objekte von Klassen' initialisieren
             cl_objmemo.
      REFRESH: hd_tab.
      SORT t_matcat BY index ASCENDING.
    Get the All levels
      loop at t_stb.
        IF NOT t_stb-hdnfo IS INITIAL.
          EXIT.
        ENDIF.
    Object Identification
        PERFORM obj_ident.
        READ TABLE hd_tab
            WITH KEY stufe = t_stb-stufe
                     vwegx = t_stb-vwegx
            BINARY SEARCH
            TRANSPORTING NO FIELDS.
        ?gibt es diesen Satz schon
        nein
        IF sy-subrc <> 0.
           dann in SFP-Infosatzverweistab. aufnehmen
    *d       APPEND HD_TAB.                                       "HGH054648
          hd_tab-stufe = t_stb-stufe.
                                                                "HGH054648
          hd_tab-vwegx = t_stb-vwegx.
                                                                "HGH054648
          INSERT hd_tab                                         "HGH054648
            INTO hd_tab                                         "HGH054648
            INDEX sy-tabix.                                     "HGH054648
           PosNr initialisieren
          CLEAR: t_stb-posnr.
           SFP-InfosatzKz setzen
          t_stb-hdnfo = 'X'.
            stb-objty = otyp_mat.
                                                                "HGE246532
           als SFP-Infosatz in die STB aufnehmen
          append t_stb.
        ENDIF.
    *del  ENDIF.
        clear t_stb.
      endloop.
      SORT t_stb ASCENDING BY stufe
                  index ASCENDING
    *del        POSNR ASCENDING.                                  "HGC062735
                  posnr ASCENDING                               "HGC062735
                  hdnfo DESCENDING.
      LOOP AT t_stb.
        T_stb-index = sy-tabix.
        MODIFY T_stb.
        PERFORM alv_stb_prep.
      ENDLOOP.
    Displays the Value as Level by Level
      loop at ALV_stb.
        if sy-tabix = 1.
          format color 3 on.
          write:/2 'Level',12 'Item',22 'Component',
          42 'Material Description',82 'Base Qty',
          107 'Base Unit',120 'Assembly Indicator'.
          format color 3 on.
        endif.
        if alv_stb-MEINs is initial.
          v_flag = 'X'.
        endif.
        if v_flag = 'X'.
          format color 5 on.
          write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                 42 alv_stb-OJTXP.
          format color 1 off.
        else.
          if alv_stb-STUFE = '1'.
            format color 1 on.
            write:/2 ALV_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs, 120 alv_stb-bomfl .
            format color 1 off.
          elseif alv_stb-STUFE = '2'.
            format color 2 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs,120 alv_stb-bomfl.
            format color 2 off.
          elseif alv_stb-STUFE = '3'.
            format color 3 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color 3 off.
          elseif alv_stb-STUFE = '4'.
            format color 4 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color 4 off.
          elseif alv_stb-STUFE = '5'.
            format color 5 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color 5 off.
          elseif alv_stb-STUFE = '6'.
            format color 7 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs,120 alv_stb-bomfl.
            format color 6 off.
          elseif alv_stb-STUFE = '7'.
            format color 7 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                   42 alv_stb-OJTXP,72 alv_stb-mngko,
                   107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color  7 off.
          else.
            format color 1 on.
            write:/2 alv_stb-STUFE,12 alv_stb-posnr,22 alv_stb-idnrk,
                    42 alv_stb-OJTXP,72 alv_stb-mngko,
                    107 alv_stb-MEINs,120 alv_stb-bomfl .
            format color  1 off.
          endif.
        endif.
        hide: alv_stb.
        clear : alv_stb.
        clear v_flag.
      endloop.
    ENDFORM.                    " get_level_level
    *&      Form  f4_for_variant
          text
    FORM f4_for_variant.
      CALL FUNCTION 'REUSE_ALV_VARIANT_F4'
             EXPORTING
                  is_variant          = g_variant
                  i_save              = g_save
                  i_tabname_header    = g_tabname_header
                  i_tabname_item      = g_tabname_item
              it_default_fieldcat =
             IMPORTING
                  e_exit              = g_exit
                  es_variant          = gx_variant
             EXCEPTIONS
                  not_found = 2.
      IF sy-subrc = 2.
        MESSAGE ID sy-msgid TYPE 'S'      NUMBER sy-msgno
                WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
      ELSE.
        IF g_exit = space.
          p_vari = gx_variant-variant.
        ENDIF.
      ENDIF.
    ENDFORM.                    " f4_for_variant
          FORM E03_EVENTTAB_BUILD                                       *
    -->  E03_LT_EVENTS                                                 *
    FORM e03_eventtab_build USING e03_lt_events TYPE slis_t_event.
      DATA: ls_event TYPE slis_alv_event.
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
           EXPORTING
                i_list_type = 0
           IMPORTING
                et_events   = e03_lt_events.
      READ TABLE e03_lt_events WITH KEY name = slis_ev_top_of_page
                               INTO ls_event.
      IF sy-subrc = 0.
        MOVE gc_formname_top_of_page TO ls_event-form.
        APPEND ls_event TO e03_lt_events.
      ENDIF.
    ENDFORM.
          FORM E04_COMMENT_BUILD                                        *
    -->  E04_LT_TOP_OF_PAGE                                     

  • Creating Outbound deliveries based on the sales order schedule lines

    Dear all.
    Is it possible to create outbound delivery documents based on the sales order schedule lines?
    Eg:
    Let's say I have sales order line item 10 with below mentioned requested delivery dates in its schedule line level.
    30.07.2009
    10.08.2009
    20.08.2009
    30.08.2009
    Will it possible for me to create different deliveries for those 4 schedule lines individually? I should be able to create 10.08.2009 delivery without clubbing 30.07.2009 delivery with it.
    Appreciate your help!

    I'm not sure because I'm not before SAP but try transaction VL10E that is to create delivery for schedule lines. I'm not sure what are the split criterias.
    Please check OSS note 113411 tha has many OSS note reference in this subject.
    Regards,
    Csaba
    Edited by: Csaba Szommer on Jul 29, 2009 2:38 PM

  • Setting up a different printer for a delivery output based on the sales grp

    Hi All,
    Is there a way to send delivery output to a specific printer based on the sales group in the delivery document apart from the normal printer maintained in VV22 for that output type.
    I have seen printer determination based on plant and storage location combination but not specific to any other fields.
    Your suggestions will be highly appreciated.
    Regards,
    MS

    Dear mandapathi ,
    In the output determination for delivery. check whether there is SALES GROUP in the condition table (field catelog).
    Else you may add this field (have done in pricing and it requires adding the new field to some pricing tables.. similarly we might need to add this new field in the output tables also)
    If adding this new field works well, then i hope we can set the printer for this combination in the condition record.
    Thanks & Regards,
    Hegal K Charles

  • Custom duty should be copied into the Sales order based on material

    Hi,
    Requirement is only Custom duty  Tax condition types to copied into the sales order based on material (for e.g A) .Suppose customer X is buying material Y then different tax condition types is to be applied but if the same customer  is buying material A then only Custom duty will be copied.
    But we can set in the customer Master whether the maerial is taxable or not.So where to do the right tax classification settings so that sysyem will automatically fetch the right  tax condition types if i enter one  material which is applicable for Custom Duty only
    We are using TAXINJ.
    Regards
    Jyoti

    Dear Jyoti
    As per your post, the material code is different for the same customer and hence you can differentiate the tax classification in material master.  That is for material X, if you maintain Tax classification 1 in Sales Org1 view, maintain 2 for the material Y.
    Now maintain different tax code for these tax classifications in VK11 / UTXJ.
    thanks
    G. Lakshmipathi

  • Production order with negative amount for settlement in to Material for MAP

    Hi All,
    When I am trying to settle some production orders, it is giving me an error "Moving average price for material is negative" and doesnot let me settle them. we have maintained our materials at MAP and settle our production order variances to material to adjust its MAP. In these orders, it is trying to settle negative value, which is greater than the total value of the stock of materials and if settled leaving some of the stock with negative value. does any body has this situation and what would be the solution for this ?
    Thanks
    MKR

    Hi,
    This is Pavan Fronm IBGroup Rajnandgaon.
    To My Knowledge,
    When U Settle the Production Order, the Diffence Between the Target cost and Actual cost(MAP) of Finished Material hits the Material Account of the finished goods.
    Say Suppose,
    Target cost (Production Cost) =   Cost of Raw material + consumable,   =  10
                                                    Activity ( Labour, Power, etc)              =    5
                                                    Overheads.                                        =    2
                                                                                    17
    Actual Cost is ur Finished Material (MAP). = 18
    CASE 1:
    Now the system calculate the difference as 17 - 18 = -1 Rs , it try to reduce from Material Cost,
    Now in case if Material has the stock say 1 unit.
    it will reduce the cost of material by 1 rs in Material Master.
    If the Material has no stock , as we know the system try to reduce the cost from zero stock tends to
    give us a message saying
    MOVING AVERAGE PRICE OF MATERIAL IS NEGATIVE.
    CASE 2:
    If Target - Actual is say +1 RS it increases the material price to 1 Rupee, if stock is Zero , then 1 Rupee
    hits the Price Difference
    CASE 3: *STANDARD PRICE INDICATOR*
    In case of Standard Price indicator Every thing beyone the Material Price , whether respect to negative
    variance  or positive variance hits the price difference.
    So I request u to settle the order if u use MAP for Finished goods befor dispatch of finished good to calculate actual production cost for ur finished material..
    We can Also use MR21 for price change if the stock has dispatched befor settlement, but it is not suggestable to my knowledge hence ur material wont carry actual production cost if that is thae case.
    Please Correct if I m Wrong.
    Regards
    J .K .PAVAN KUMAR
    SAP PP-PI Consultant
    Edited by: PAVANIDLUR on Mar 30, 2009 9:05 PM
    Edited by: PAVANIDLUR on Mar 30, 2009 9:09 PM
    Edited by: PAVANIDLUR on Mar 30, 2009 9:11 PM

  • How to create production order for multiple items having common raw materia

    Dear all,
    We are running a sheet metal fabrication company at Vadodara Gujrat.
    Please guide us how to create single production order for multiple items using single raw material??
    For example, We want to produce baby shirt(item code AAA001), shirt with full sleeve(item code AAA002), shirt with half sleeve(item code AAA003),shirt slim fit (item code AAA004),shirt loose fit(item code AAA005) from single raw material say(item code XXX001).
    Right now we have to create 5 production order to produce above 5 items of single sales order  in SAP B1 though it is made from single raw material which is foolishness and time consuming too. (Please also note that to produce any finfish good item, raw material required for that item may vary every time in our process.)
    Kindly guide us how to solve the problem.
    Thanks.
    RUPESH  +91-9227744273
    WEB : www.gorasia.co.in

    Hi Rupesh Gorashiya,
    This is possible through MRP for that you have to put Sales Order first and Run MRP Wizard
    MRP Wizard Put Multi Production Order as per Item Taking in Sales Order just click it on and execute.
    Thanks,
    Srujal Patel

  • Invoice to be created based on the sales order materials

    Hi,
    I have created the Sales order for 10 different materials and i created 2 deliveries for this sales order.
    Now i want to create 10 Invoices for each product?
    How can i process?
    Regards
    M. Lakshmi Narasimhan

    Hi,
    you can use Invoice Split functionality. Here, you can prepare your own split routine.
    I suggest you read documentation on this: http://help.sap.com/saphelp_erp2004/helpdata/en/4a/ac853478616434e10000009b38f83b/frameset.htm
    and read other posts on the subject: SD Invoice Split.
    Hope it helps,
    regards,
    w.

  • Stocks should be bolcked in the sales order

    Dear SD gurus,
    I have a requirement , for certian customers i need to block stocks in sales order level without batch , i am going to create  delivery  and PGI in future date , how can i block the stock with out creating delivery.
    Rgds
    Madhu

    hi
    Create a delivery against that order and save without doing PGI, thus the stock would be reserved for that order and cannot be diverted unless the delivery is deleted
    In OVZ9, select the box for "Include sales reqmts" but by doing this, irrespective of customer class (like top customers who give business in large volume), as and when order is generated, stock will be allocated to that order
    Go to MB1B, input Movement Type 412E, Plant, Storage location and execute. There give the sale order against which you would like to reserve the stock and proceed.
    Here the first option you dont want to do it
    Third option is already suggested
    Try the second one
    Regards
    Raja

  • Idoc segments for additional UOM in material master

    HI, I have three questions
    a) we have the follwoing data defined in material master (additonal data)
    X UOM Y UOM EAN
    1 LITRES 1 LITRES NIL
    1 IGB (inner packg) 20 LITRES 345922222222
    1 GBE (packg) 20 LITRES 345922222222
    I need to know what is EAN no and in our case the EAN no is same for both inner packg and pack. . what does this mean. Sometimes we also see the EAN no is different. why... what it signifies ?
    2) We have outbound idoc trigerred from delivery. message type is WHSOD. in one of the segments (E1EDL24), the system shows the delivery qty and material no. This segment also shows the EAN NO AS 345922222222. In segment E1EDL26, the filed UMVKZ shows as 1 which is ok (numerator as shown above) but the numerator field shows 1 only (it does not show 20 litres,, i think the field name is UB something ).
    I need to know why the system is not showing 20 litres in numerator in the filed for segment E1EDL26.
    3) Had we have two different EAN in material master as above, did our standard message type would have shown the conversion factors (numerator and denomi ) as per the EAN nos.....If yes, then in which segments ,the WHSORD shows the Conversion factors based on different EAN nos in material master-UOM tab (for instance if 1 GBE (packg) = 30 LITRES and EAN IS 345911111111.... I think there will be as many segments in idoc as there are entries in Additonal data-UOM tab )
    rgds
    pamela

    Hi,
    As for as i know EANs  are not relevant to unit conversion. This is a number which uniquely identifies a material for a particular UoM.
    And regarding the numerator and denominator, check whether any logic is added in the corresponding segment which overwrites the value

  • Change UOM in Material master

    Hi friends,
    I have a material X in Plant ABC and Plant XYZ.
    I have no open PR's and PO's for those materials.
    I have received 10 Ea in Plant ABC on 10/20/09 ( Current stock is 10 ea in ABC)
                       and 20 Ea in Plant XYZ on 11/12/2009.( Current stock is 20 ea in XYZ)
    Now I wanted to change the UOM from EA to LB.
    I did issue (GM 201) 10 Ea from ABC and 20 Ea from XYZ. So, in MMBE no stock was showing.
    Still, when i try to change UOM, it was erroring that "Stock exist in Plant ABC and Plant XYZ" ????
    Any Idea, why so.
    Appreciate your valuable feed back.
    Note: I could change the UOM once I canceled the previous material documents to make sure Zero stock.
    But, Why I could not be able to change when I issue (GM 201) and made zero stock????
    Regards,
    Dev.

    Hi,
    According to your explanation the condition has gone through as below scenarios:
    You have received 10 Ea in Plant ABC on 10/20/09 ( Current stock is 10 ea in ABC)
    and 20 Ea in Plant XYZ on 11/12/2009.( Current stock is 20 ea in XYZ)
    You've issued 10ea in plant ABC on 11/23/09 (GM 201)
    and you've I issued 20 ea in plant XYZ on 11/23/09 (GM201)
    From the above, I conclude your current period is 11/2009 (November) and for solving the case on:
    Plant ABC. --> cancel your GI (mvt 202) for 10ea with the same current date 11/23/09 then follow by
                            GI with the previous posting period 10/30/09
    Plant XYZ --> display material stock with MM03 under storage location stock tab for previous period stock info.
                           then you should GI for relevant qty that you've seen onto previous period posting date.
    Hope it may helps you...
    Cheers,
    Girang
    Edited by: girang irawan on Nov 25, 2009 9:48 AM

  • Not able to change UOM in material master for a material

    Hi all ,
    I have a issue with changing of the UOM in the material master , IN MMO2  after changing the UOM , in Display error , its showing the error as : The base unit of
                                         The reasons for
                                         Manual  reservation
                                         Reserv.No   , Item - No data
                                         Purchase order  - 30017056  , Item 1 - 1
    There is no stock in the previous as well as current period , and deleted the PR , still i am not able to change
    Please help urgently
    Thanks in Advance
    Neha

    Hi Satyajit,
    Please look at OSS  Note 1069560 - Data inconsistencies: Activating integration. models in parallel, if this helps you.
    Since  Gross data of material is in the basic view, it is common across plants , whereas, IMs are normally designed to have material masters at plant level.
    We may have same material in different IMs with different  plants. Therefore changes of the basic view fields are then contained in multiple IMs.  SAP advises to have a larger IM or sequential activation of IMs.
    I hope this will  help you .
    Regards
    Datta

  • UOM in Material Master

    Hi,
    Is it true that i cant change the UOM of material (base unit) even if there exist PO and PR for that material ( even though these are not open)? There are no scheduling aggrement too. The stock of material is 0 for this period as well as previous period. I tried to change the UOM for this material but the system gave error that the UOM cannot be change.
    Dinakar

    You can only change the base units of measure under the following circumstances
    1.No stocks are available for the material.
    2. There are no existing purchase requisitions, purchase orders, or scheduling agreements for the material.
    3 At present, no purchase orders or purchase order items are being created or changed.
    Run MM02 (Change Material Master immediately). - Overwrite the old base unit of measure with the new one in basic data screen. - Save the change. - System checks If a change criterion (MM02) is meeting all necessary prerequisites (as mentioned in above .System allows changing base unit of measure.
    Otherwise it displays warning or error. You can display the reason for this, by choosing Display Errors (ctrl+F1) .in that take those purchase requistions and purchase orders and close it.then try again.
    Generally it will be difficult to change Base UOM,intead of that you can mark that material for deletion and goahead in creatin a new material with new UOM as base UOM.
    Hope it helps

  • Error while changing the UoM in material master

    Hi experts....
    I am not able change the UoM in the material master. Even if,  all the PR , PO and reservations are cancelled .
    It still gives me error message " Manual  Reservations already  exists "
    Thanx
    Ganesh

    Hi
    may be some entries got not cancelled properly and entries got locked.
    Just check in SM12 if no entries are locked.
    regards
    Sidi

  • Change of UOM in material master?

    Dear SAPIENTS,
    I created a material  with UOM (M)just now and than assigned to inspection plan. Now I am changing the UOM of material to Nos.. I was getting following
    Error: The base unit of measure cannot be changed
    The reasons for this are
    Routings already exist that are assigned to the material.
       RType          RtgGrp            GpC         Plant
       Q             QRW6MTQT        1            1100
    SO I removed the material from inspection plan. But still I am getting the same error. Can anybody tell me the reason behind it?
    Regards,
    Kaushal Rai

    Hi Kaushal,
    You need to delete it from the table also.
    The table is MAPL
    To delete entry from table
       1. Run trx SE16n (preferable) or SE16.
       2. Enter the Table MAPL.
       3. Enter the group and counter number.
       4. Now in the command window (Where you type the T Codes) type "_&sap_edit_". And press enter.
       5. A message such "SAP editing function is activated" will flash.
       6. Execute
       7. Delete the entry.
    Then change the UOM
    Regards,
    Shyamal

Maybe you are looking for

  • Urgent: Regarding Vendor payment report

    Hi, I making a report in which i have to display the vendor payment is done or not? Curently i am using the 4 tables of Financial :- BSAK,BSIS,BSIK AND BSAS which gives the status of vendor whether it is paid or not .  1 thing i observed that data co

  • CSV Export in HTMLDB -Report

    From Regions > Report Attributes I set the Enable CSV option to yes - Link Label (i.e export), but the link does not appear. Any hints/appreciated. thanks for youe help.

  • Updating Oracle VM Manager from 3.1.1 to 3.2.1 where server is yum repo

    I have a server running Oracle Enterprise Linux 6.3. Upon which is running Oracle VM Manager 3.1.1 ("BUILDID=3.1.1.305" from /u01/app/oracle/ovm-manager-3/.config). This server is also my Oracle Enterprise Linux yum repo. This means its subscribed ch

  • Setting "Omit Label Interval" on 2D Line Flash Chart

    Hi, i have a 2D Line Flash Chart showing a few values or many values. (depending on the selected interval, eg. minutes, hours, days, week, months ..) Unfortionatly if the flash chart has to show many values, the labels cannot be read (because they ar

  • Advice Using iPhoto and Aperture

    Greetings - I've been a Mac user for 19 months and now have 3 Macs. I've been using iPhoto and enjoy it (my wife loves it as well). I am toying with picking up Aperture for my RAW photos. Here's my question -- I'll likely keep my photos separate from