Material Price on SO should be based on PO price

Hi All
I working with User on a requirement.
We send Outbound PO to system and that triggers SO in receiving system. But the Material price on SO should be based on PO price.
Please suggest.
Regards
Edited by: Swapnika Gudujada on Feb 15, 2011 6:26 AM

hi swapnika,
as you said ur sending PO by some file, then it is triggering SO.
In your file there there must be PRICE FIELD for PO line item, if yes then you can MAP / LINK same field to your line item PRice in Sales order
As this is your custome develoment then there is no option but to map or link same field to DO line item
Else, if you are storing the PO line item price in some internal table then from that table you can link the value to SO line item
Edited by: Vishal J on Feb 15, 2011 6:40 AM

Similar Messages

  • 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

  • Delivery should be blocked based on materail price

    Dear All,
    I want to block the delivery based on Materail Price
    Example: If the materail price is 10 USD. And if the delivery is creating less the 10 usd say per 8 USD or more than 10 USD say 12 USD the delivery should be block
    Could you please tell me can we do it in standard one or with the help of ABAPer we have to do it
    If any Standard process available for blocking the delivery based on Materail price please let me know
    thank you for your kind support
    Best Regards
    Amjathpasha

    Hi Amjathpasha,
    I think in standard also possibilities are there.
    1. Maintaining over delivery tolerance to the customer at customer master sales area view under shipping tab.Maintain % of
    delivery limit through that it will not allow to do delivery beyond the specified %.
    2. Automatic credit (OVA8) here maintain Max.doc.value,choose checking group deliveries.
    Regards
    Ram

  • Goods Receipt Amount based on PO price instead of moveing average price

    Is it possible to customise SAP so that the amount in Goods Receipt transactions is calculated based on quantity * PO price instead of quantity * moving average price?
    Thanks.

    Thanks for your reply.
    Standard SAP functionality:
    1. When material ledger is active, the GR amount is based on pre-GR moving average price.
    2. When material ledger is not active, the GR amount is based on PO price.
    We use the material ledger but want the GR transactions to record the amount based on PO price.
    Any suggestions?

  • 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                                     

  • Price from Contract should default in the PO according to delivery date

    Hi Gurus,
    The scenario is:
    I am creating a PO w.r.t. a contract. Now, the material in the contract line item has two different prices in two different validity periods. For eg, the price from Jan to Mar31st is Rs.5.00/unit. Now, in the next validity period, i.e. from April1st to Dec, the price is Rs7.00 /unit.
    Now, I am creating a PO on Mar20th. The delivery date is expected in April and the date of April7th is put up in the PO. But, the price Rs5.00/unit is defaulting from the contract, since I am creating the PO in the month of March. Well, I can go ahead and change the price in the PO, but
    is there any way, that the price from the contract defaults according to the delivery date in the PO, Not according to the PO creation date?
    Thanks,
    Kumar

    Hello Kumar,
    Contract validity date is related to PO creation data and not the PO Delivery Date. So whenever you create a PO system will refer to the contract which is valid on that date and hence you can not have price from the contract which is valid according to GR delivery date in the PO.
    Customization, user exit are always there to help as per requirement but that would not be the correct option.
    Better create PO according to your delivery date requirement so that PO will consider only that contract which system should actually refer.
    Gurus,
    Please correct if I am wrong.
    Thanks And Regards,
    Krupesh Kothari.

  • How to do price comparision in ME49 based on net price

    Dear Experts,
    I have a problem while doing price comparision
    I have two RFQ's for the material with same gross price(15). But i have some additional conditions like frieght 20% in second RFQ. So the net price is 18 in the second RFQ. But while doing ME49 i'm checking "include delivery costs & discounts " options but it's showing Rank 1 for both the vendors.
    How to do price comparision in ME49 based on net price??
    Thanks & Regards,
    Pradeesh

    I have had the same issue and did it by choosing all 3 checkboxes 
    Delivery cost
    Discount
    Effective price
    And the issue was resolved
    Edited by: rajat  kaushik on Apr 14, 2009 11:06 AM
    Edited by: rajat  kaushik on Apr 14, 2009 11:08 AM

  • Creating a Formatted Search in Item Master based on Unit Price

    Hi Experts,
    I have to create a Formatted Search for assigning the Standard Cost of Items as Selling Price-Selling Price*.05  i.e the Standard cost of the item should be set upon automatically equal to 5% less of Selling Price .
    I have created the following Formatted Search Query :
    SELECT ((SELECT $[$34.68.NUMBER])-(SELECT $[$34.68.NUMBER] *.05))
    and have assigned this FS to Standard Cost Field . I am not able to base it upon Unit Price field . This FS is correct but it is not automatically refreshing upon change of Unit Price and I have to manually update it(ALT+F2) . I guess the filed upon which it should be based upon is not correct .
    please guide me how to resolve this issue . How to base this FS upon Unit Price.
    Thanks and Regards,
    Pooja Singh.

    Hi,
    Actually I dont want to set upon the last No for the Series. What about the Sequence ? Administration->setup->financials->Tax->Sequence. Here also the same thing can be done but Location Specific. When I created 2 Series for the two different locations , I found that two different fields appeared on the screen Sequence Name Where I found the two sequences I defined for the two locations. If you have any idea about what this sequence is for and how far is it different from Document Series , please let me know.
    Thanks and Regards,
    Pooja Singh

  • Total calculation based on unit price and UDF field values

    Hi All,
    This is for a construction related company. Please find attached screen shot for details.
    My scenario is when we are creating sales order my client wants to calculate the total amount based on unit price towards the UDF fields defined. For example user will give the unit price  per sqft in Unit price ie 2800 as per screen shot column and constructed area in Sqft in he will enter the area like cons area in sqft =1500. So this 1500 need to calculate with unit price and will display in total. So in Total field it should show like 2800*1500= result. Like wise other amount values in udf needs to be calculated and displayed in total field  .
    Is this possible in SAP B1. Please help me with your valuable suggestions.

    Hi,
    Try this:
    SELECT ($[$38.U_Price.number]* $[ORDR.U_CArea.number)+ $[ORDR.U_EBexp.number]+ $[ORDR.U_RO.number]+ $[ORDR.U_Maintenance.number]+ $[ORDR.U_CorpFund.number]
    Thanks & Regards,
    Nagarajan

  • What a horrible way to treat customers. I was due for updates on my phones and thought I should maybe check some other prices but have been with Verizon for 20 yrs so ended up there. I got 2 new IPhones 5s and the wife couldn't decide what she wanted so s

    What a horrible way to treat customers. I was due for updates on my phones and thought I should maybe check some other prices but have been with Verizon for 20 yrs so ended up there. I got 2 new IPhones 5s and the wife couldn’t decide what she wanted so she stayed with old phone but this locked me into a new 2 yr contract . Within a wk one of the new iPhones started turning on and of like 10 –15 times a day. Wk 2 it turned off and would not turn on again . It was my sons who was in college at the time so we talked and he took it in to a Verizon store where he was told I need to come in since the account was in my name. He was away from home , Verizon could see on account it was his phone they said it was not abused, they could not even turn it on , they sold me the phone give him another phone maybe even a loaner till he gets another. So now I need to go to store and explain to 3 different people this is my phone and my son has it and I need a new one. what a waste of time after about 2 hrs and talking to different people and yes they said there were notes on his account from other person he had talked to from different store. So I finally walk out with a receipt in hand and being told I would have a new phone in a couple days. As I sat in my vehicle thinking this is stupid I looked at my receipt and noticed it said droid on it so back into Verizon I went. The salesman said that’s what your son has on his account. My son had activated a friends old phone so he has one since VERIZON REFUSED to give him one. Another hr 3 people and yes they can see he had a new iPhone and notes on it from other store. Sometimes sorry just doesn't do it. I was now late for a appointment . Now I walk out and have been told I will get a new iPhone in the mail in about 2 wk Yes 2 wks   again I bought it there just give me a new one and you send old one back. I will also get a new droid that I have to send back because they said they cant cancel it  . In about 3 days I get the Droid and sent it back Verizon mistake and a waste of my time . After waiting over 2 wks and not receiving a new iPhone back to Verizon I went . I am now bitter at Verizon after doing 20 yrs of business with them. 3 people 1 hr later I was told it got delivered to my post office . I got the tracking num called the post office and they say o yes that was the droid. Go back in to Verizon another hr of explaining I walk out being told I will get a new iPhone in a couple of days, We’ll see . Once again I got the phone in your store just give me a new one . Do you realize how much of my time you have wasted ? do you care? O what is Your Policy ? How many Billion did you make last year ? I am Locked into a new 2 yr contract . Why don’t you just release me ? After 20 yrs do you think I will ever renew my contract ?

    Simple process. If an iPhone go to the Apple Store and not Verizon
    the phone from Verizon will be a refurbished device and not new unless under the 14 day worry free guarantee
    good luck

  • Material statuses error message should go after entering Trackin No in PO

    Hi All,
    I have created one Material statuses with error message, I have created material with the use of that material statuses..
    Its working fine,At the creation of PR, PO I'm getting that Error message..
    My requirement is if I enter Requirement Tracking Number at item level of PR or PO means that Material statuses Error message should Go out and system has to allow to create PR or PO..
    Is it possible?? how to do it?? plz help me...
    Is it possible in standard SAp???
    thanks and regards
    rames reddy

    Hi,
    You can keep Requirement Tracking Number as Required Entry in field selection key (NBF or a copy of NBF as ZNBF) of PO document type in u201CReference data, itemu201D segment in following path:
    SPRO > Materials Management > Purchasing > Purchase Order > Define Screen Layout at Document Level
    And then assign field selection key to PO Document type and save.
    SPRO > Materials Management > Purchasing > Purchase Order > Define Document Types
    Now create PO with PO document type, system will ask you to enter Requirement Tracking Number in u201CItem Overviewu201D unless then you can save Purchase Order.
    The same you can do for PR document type by having a field selection key for PR document type.
    Regards,
    Biju K

  • I have Logic Pro 8.0.2 and would like to upgrade. I'm running OS Lion on a 2010 MacB Pro. What is the best option? Logic Pro 9 App or Logic Studio? Can't find upgrade price. Or should I just stay with Logic 8?

    I have Logic Pro 8.0.2 and would like to upgrade. I'm running OS Lion on a 2010 MacB Pro. What is the best option? Logic Pro 9 App or Logic Studio? Can't find upgrade price. Or should I just stay with Logic 8?

    Same here, I have Logic Studio 8 and wouldn't mind staying with that version, except that the installer won't run on my new Macbook Pro as PowerPC apps are no longer supported. That's the message I get in any case.
    I use to run Logic on a 2006 Macbook Pro.
    I guess that makes me a very unhappy Apple user! I've been using Logic from the Emagic days, bought every upgrade only to see Apple kill what used to be one of the best Pro Audio application. Imagine if they had done the same to Photoshop, there would be a lot of unhappy designers out there
    Paying the full price for years to slowly see your daily app go down in price & efficiency until it's given away at $199 for semi pro users. Well, at least ProTools is stil alive & kicking so I guess that's the way forward now.
    This is coming from someone that never ever used a Windows machine to make music! Life is good still!

  • PO release strategy based on effective price

    Hi
    We have PO release strategy based on net order value.
    If we make the release strategy based on effective price then what would be the impact? What r the risk factor involved?
    Regards
    sapmm1234

    Hi,
    Net order value is known ie we give value for the characteristicex: RS.100000 or 1 crore etc, but  effective price is unknown how can we mention that a charactristic value? I dont understand
    Regards

  • GR based iv or not GR based iv unit price on map & standard

    Hi,
    I got the help from forum of the below during MIGO.
    MAP
    PO price Dr to Inventory A/c
    PO price Cr-GR/IR
    Standard
    PO price Dr to Inventory A/c
    PO price Cr-Gr/IR
    I would like to know for both GR based iv or not GR based iv, are the above 2 cases (MAP and Standard) still the same where unit price is getting from PO.
    Thanks

    Hi Cal,
    Technically the accounting entries would be the same (from PO Price) whether you select GR based IV indicator or not. GR based indicator is used to confirm the agreement of terms when goods ordered and while delivered.
    If goods-receipt-based Invoice Verification has been defined for an order item, an invoice for the order item can be entered with reference to a goods receipt document or a delivery note number entered at the time of goods receipt. In the process, a separate invoice item is created for each goods receipt. Checking of price and formal accuracy of the invoice is performed at this item level.
    Follow this link
    http://help.sap.com/saphelp_45b/helpdata/en/75/ee0d4055c811d189900000e8322d00/content.htm
    So unltimately it is the GR which decided the value & qty acc entries. GR based indicator simply to enalbe invoice creation based on the GRs happened on that PO, if this indicator is set before you do LIV GR is mandatory, and accounting entries will not change.
    Hope its clear

  • Material has more than one plant, only show the price for the first on

    Hi:
    I am having the standard price for the material with the different plants ,I am seeing only one Material and Standard price(if a material has more than one plant, only show the price for the first one In the report ):
    plant :de87 Material: 60020601 Standard price: 1237.00
    plant:PT01 Material :60020601 Standard price: 634.00
    In the report I am seeing DE87 with the standard price :1237.00 .
    I am extracting from the 0MATERIAL_ATTR
    Please help me how can I display all plants with the material and std price. In my data source there is no PLANT
    rgrds
    Kumar

    Hi:
    Report is running on 0MATERIAL(Transactional master data),Data sourc: 0MATERIAL_ATTR,
    We are having the standard price in the 0MATERIAL ,(Standard price is combination of plant and Material) .Plant is not available in the material,so in the report its displaying only first result
    plant :de87 Material: 60020601 Standard price: 1237.00 --->Displaying this
    plant:PT01 Material :60020601 Standard price: 634.00
    In the above we are having the same material but different plant and different standard price. so I need to display the both in the report.
    Rgrds
    kumar

Maybe you are looking for

  • IPhone 6 battery life draining since 8.1 update

    Is anyone else having problems with their iPhone 6 battery life diminishing since the latest 8.1 update? I notice I'm getting much less usage time per hour. For example, before 8.1, it would take about 3 hours of usage time to get to 70%. Now it only

  • How can I save a photo received in an email?

    WHen I click on the photo and the Save icon, I'm told that the Gallery is not available.  The photo was taken with an iPhone and is aJpeg file.

  • Oracle 8.1.7 on Linux

    I am able to install oracle on Rad Hat Linux 7.1 But I am not able to configure it. So I cant start the databse. Any body can tell me the possible causes for this. and solution if possible. Thank you.

  • C5 content download and headset issue

    hi ,i recently bought a c5 about week ago and upgraded it to the latest firmware version 061.005 everything was seemingly running smoothly besides that whenever plugged in my headset (standarad packaged on w-102) and pushed the shuffle button on it i

  • Weblogic 8.1 SP4 - weblogic.utils.AssertionError has been deprecated???

    Hi All, My web application has been running great all these years with WebLogic 7.0 SP2. I am upgrading it to Weblogic 8.1 SP4. Few classes have the following code snippet: throw new weblogic.utils.AssertionError("impossible case: " + idx); Here idx