Check on quantity field of co11n

hi all,
    I want to display error messages when the quantity field at goods movement level of transaction co11n is 0 or space.
Find me the user exit or badi , but field exit is becoming complex as the screen is a table control.
help me.

hi madhav,
CONFPP01                                PP order conf.: Determine customer specific default values
CONFPP02                                PP order conf.: Customer specific input checks 1
CONFPP03                                PP order conf.: Cust. specific check after op. selection
CONFPP04                                PP order conf.: Customer specific input checks 2
CONFPP05                                PP order conf.: Customer specific enhancements when saving
CONFPP06                                PP Order Confirmations: Actual Data Transfer
CONFPP07                                Single Screen Entry: Inclusion of User-Defined Subscreens
CONFPS01                                PS confirmation: Determine customer specific default values
CONFPS02                                PS confirmation: Customer specific input checks 1
CONFPS03                                PS confirmation: Customer specific check after op. selection
CONFPS04                                PS confirmation: Customer specific input checks 2
CONFPS05                                PS confirmation: Customer specific enhancements when saving
CONF0001                                Enhancements in order confirmation
CONFPI01                                Process order conf.: Calculate cust.specific default values
CONFPI02                                Process order confirmation: Customer spec. input checks 1
CONFPI03                                Process order conf.: Cust. spec. check after op. selection
CONFPI04                                Process order conf.: Customer specific input checks 2
CONFPI05                                Process order conf.: Cust. spec. enhancements when saving
CONFPI06                                Process order confirmation: Actual data transfer
CONFPM01                                PM/SM order conf.: Determine cust. specific default values
CONFPM02                                PM/SM order confirmation: Customer specific input checks 1
CONFPM03                                PM/SM order conf.: Cust. spec. check after op. selection
CONFPM04                                PM/SM order conf.: Customer specific input check 2
CONFPM05                                PM/SM order conf.: Cust. specific enhancements when saving
these are the list of userexits for the transaction co11n try keeping the break point in each user exit and check which suits your requirement.
the second method is you can do it by reading the documentation of the each exit.
Hope its clear to you,
Reward points fi usefull,
Thanks,
kalyan.

Similar Messages

  • Purpose of Entry/Check Table and Currency Quantity Fields...!

    Hi......!,
    I want to know what is the purpose of this   Entry/Check Table and Currency Quantity Fields, while creating a table in DDIC .
    give me a clear explanation .....!
    best answers would be rewarded.
    thanks
    prasad

    Hi Prasad,
    All the Modules in SAP are inter related,
    So their Tables also must be related and must be valid
    and they are related to foreign key relation ships
    and also we can provide the list of input values using search helps
    to know what the search helps and check tables are assigned to the particular  field they provided the tab
    In the currency fields or quanitiy fields we only enter the amount but not the units,
    so the units are assigned if we provide the reference field and table , and so that tab is provided to check what are reference fields and tables and also to assign new fields
    hope I am clear
    Reward if helpful
    prasanth

  • Hide the quantity field at goods movements in cofirmation.

    HI,
    My client is using CO11N for confirmation. and doing auto goods reciept and auto goods issue.
    Whn I am clicking on Goods movement in CO11N system is showing me which material is going in goods reciept and which is in Goods issue.
       Now my requirement is I want to hide the quantity field of the material in goods movement because some time user is changing the quantity of goods issue.
       Wat can I do for the same?
    Please sugest
    Thanks & Regards,
    Nilesh Ithape.

    Dear Nilesh,
    Try to achieve the same using the authorization control.
    You can take the help of the BASIS consultant and try to find the authorization object and the value
    which's allowing to change the quantity.
    Check whether this is the particular object C_AFKO_AWA is allowing the same(I'm not sure).
    After finding out the Authorization object remove the tick mark for the value which's for change or delete.
    You can find it using SU24 T code or using SUIM and other related T codes.
    If it cant be done even after authorization control ,revert back to the forum.
    Regards
    Mangalraj.S

  • Quantity field in ALV Grid

    I am using KWMENG data element in my ALV grid which is a quantity field. In normal dialog programming this field does not allows entering characters in editable cells. But in ALV grid I am not able to restrict it from entering characters.
    Eg: In VA01 if we try to enter any character "ABC...Z" then it wouldn't be typed in the screen. But when using the same data element in ALV grid iot allows to enter alphanumeric values. Since it's a quantity field so character value gives a short dump. I know I can restrict the dump by using "NA" in comparing string but I want to knw is there a way by which I restrict character field entry in alv grid, the same way this field works in VA01. I checked with a simple dialog prog and in that also it doesn not allows character typing in editable fields.

    simple solution
    mention the ref_fieldname and ref_tablename in the fieldcatalog for that column.
    ex:
    fieldcat-ref_fieldname = 'KWMENG'.
    fieldcat-ref_tablename = 'VBAP'.

  • Runtime error in Dynamic internal table with AMOUNT and Quantity Fields..

    Dear friends,
    I am attempting write a dymanic Select Statement (with joins).
    And the sleect query looks like this..
      SELECT (LT_SEL_LIST)
      INTO CORRESPONDING FIELDS OF
      TABLE <DYN_TABLE>
      FROM (LT_FROM_LIST)
      WHERE (LT_WHERE3).
    Here the into table is a dynamically created internal table..
    which is created by ...this
    CALL METHOD CL_ALV_TABLE_CREATE=>CREATE_DYNAMIC_TABLE
        EXPORTING
          IT_FIELDCATALOG = IT_OUTPUT2[]
        IMPORTING
          EP_TABLE        = DY_TABLE.
    the it_output2 contains the the fieldcatlog information of dynamically given fields :-
    like:-
           TABNAME
           FIELDNAME
           DATATYPE
           LENG
           INTTYPE
           ROLLNAME
           DECIMALS
           REFTABLE
           REFFIELD
    i mean the internal table is constructed with reference to all the bove metadata.
    Problem:- This query run fine with all the fields Except AMOUNT AND QUANTITY fields....
    When the selection list contain VBAK-NETWR or MSEG-MENGE..It throws a runtime error.
    "The data read during a SLECT access couldnt be inserted into the target field,either conversion is not supported for
    the target field's type or the target field is too short."
    after this I even tried to construct the dynamic table with CFILEDNAME and QFIELDNAME in the Fieldcatalog.
    so now my fieldcatlog looks like this:---
    LOOP AT IT_DD03L..
      IF IT_DD03L-DATATYPE = 'CURR'.
           TABLEFIELD-CFIELDNAME = IT_DD03L-FIELDNAME .
           ENDIF.
       IF IT_FIELDCAT3-DATATYPE = 'QUAN'.
           TABLEFIELD-QFIELDNAME = IT_DD03L-FIELDNAME .
      ENDIF.
           TABLEFIELD-TABNAME     = IT_DD03L-TABNAME.
           TABLEFIELD-FIELDNAME   = IT_DD03L-FIELDNAME.
           TABLEFIELD-DATATYPE    = IT_DD03L-DATATYPE.
           TABLEFIELD-INTLEN      = IT_DD03L-LENG.
           TABLEFIELD-INTTYPE     = IT_DD03L-INTTYPE .
           TABLEFIELD-ROLLNAME    = IT_DD03L-ROLLNAME.
           TABLEFIELD-DECIMALS    = IT_DD03L-DECIMALS.
           TABLEFIELD-REF_TABLE   = IT_DD03L-REFTABLE.
           TABLEFIELD-REF_FIELD   = IT_DD03L-REFFIELD.
    APPEND TABLEFIELD.
    CLEAR TABLEFIELD.
    ENDLOOP.
    Note:- this is a test code so ignore performance issues...
    Please help me with some code ...to avoid the Runtime erorr.
    Thanks,
    jeevan.

    Hi Jeevan,
    Why are moving only few fields from DD03L table to your field catalog? Why don't you use move-corresponding? The following code works for me in ECC6.0.
    data: it_dd03l type table of dd03l initial size 0,
          ls_dd03l type dd03l,
          lt_fldcat TYPE lvc_t_fcat,
          ls_fldcat TYPE lvc_s_fcat,
          ls_where(72) TYPE c,
          lt_where LIKE TABLE OF ls_where,
          lt_fld LIKE TABLE OF ls_where,
          lt_data_dy TYPE REF TO data.
    field-symbols: <ft_data> TYPE STANDARD TABLE.
    select * into table it_dd03l from dd03l
        where tabname = 'VBAK'
          and ( fieldname = 'VBELN' or fieldname = 'NETWR' ).
    check sy-subrc eq 0.
    loop at it_dd03l into ls_dd03l.
      move-corresponding ls_dd03l to ls_fldcat.
      append ls_fldcat to lt_fldcat.
      move ls_dd03l-fieldname to ls_where.
      append ls_where to lt_fld.
      if ls_dd03l-fieldname = 'VBELN'.
        clear ls_where.
        concatenate ls_dd03l-fieldname ' <> ''''' into ls_where.
        append ls_where to lt_where.
      endif.
    endloop.
    check not lt_fldcat is initial.
    CALL METHOD cl_alv_table_create=>create_dynamic_table
          EXPORTING
            it_fieldcatalog           = lt_fldcat
          IMPORTING
            ep_table                  = lt_data_dy
          EXCEPTIONS
            generate_subpool_dir_full = 1
            OTHERS                    = 2.
        IF sy-subrc <> 0.
          RAISE no_configuration_data.
        ENDIF.
        ASSIGN lt_data_dy->*  TO <ft_data>.
    check sy-subrc eq 0.
    select (lt_fld) from VBAK into corresponding fields of table
        <ft_data>
        where (lt_where).
    Thanks
    Bala

  • Order Quantity Field in Sales order

    Hi All
    I'm creating High Sea Sales order. When i start creating sales order after punching the order quantity in screen that particular field gets greyed out. Quantity which i put in field is not getting updated . If i go to item level & update quantity, still in item overview screen the order quantity field is greyed out with no quantity.
    This problem occuring only with this document type , no other sales order type is getting this problem.
    Please help.

    Hi,
    go to VOV7 >>> Select item catgeory which you are determining in sales order >>> details.
    Hear tickmark to Business item, schedule line allowed
    Check out this & reply
    Kapil

  • Quantity field not getting update in PCA document for Goods Receipt

    We have the Purchase Account activated for our company code.
    For movement type 101 (Goods Receipt), I am getting the quantity field updated for GR/IR account and Stock Account (B/S item).
    But the quantity field is not getting updated for the "Purchase Account" and the "other offsetting PL A/C).
    Please advice whether I am missing something.
    Regards
    B.Mohanty

    Hi Aravind,
    Check SAP notes  1063198 and 1117587.
    FAGLL03 display quantity which is updated in FAGLFLEXA, BSEG is not
    relevant in this case. This is clearly explained in the note 1063198.
    The quantity posts through to FI on the 'goods receipt' items, but not on the
    'invoice receipt' items.
    In the FI normally the Quantity is not a 'real' important field, as it
    is more related to the MM area.
    But in the old 'Profit Center Accounting' and the old' Special Ledger'
    the field has been important.
    As the same logic of these areas to 'store' the Quantity is also used
    in the NewG/L the field get only filled in the line, where it make
    'sense' from our point of view, because only in the 'goods receipt'
    lines a 'real' Quantity is posted to the system.
    So as before in the PCA and SL, now also in the NewG/L the Quantity is
    filled in the correct and important lines and postings.
    In the BSEG ('old document segment table') the field is filled 'just'
    as it is send to the FI, but this is not completely correct from the
    business point of view.
    This can also lead to issues with the reporting and summation to this
    field. So with creating the new logic in the NewG/L the 'correct'
    standard of the 'writing' for the Quantity has also been taken over.
    So in the end, the update and display is correct according  SAP standard behavior.
    Actually,Quantities within G/L are never reliable,
    because the purpose of FI is a view on the data according to amount
    but not according to quantity.
    In the FI normally the Quantity is not a 'real' important field, as it
    is more related to the MM area.
    I hope I could be of assistance.
    Regards,
    Fernando

  • Best practice for "Quantity" field in Asset Master

    Hi
    I want to know what is the best practice for "Quantity field" in asset master. It should be made displayed only or required field in Asset Master creation.
    Initially I made this field as required entry. So user entered 1 quantity. At the time of posting F-90, he again entered quantity. So my quantity in asset master got increased. Hence i decided to make that field display only in asset master creation.
    Now i made that field as display only in asset master creation. At the time of posting F-90, that quantity field is not coming only. I check my field status group for posting key as well as GL account. Its optional field. Inspite of that user is able to make entry in F-90. Now quantity field is '0' only in asset master even though there is some value in asset.
    Please help what is the best practice wrt quantity field. Should be open in asset master or it should be display only.

    Hi:
               SAP Standard does not recommend you to update quantity field in asset master data.  Just leave the Qty Field Blank , just mention the Unit of Measure as EA. While you post acquisition through F-90 or MIGO this field will get updated in Asset master data automatically. Hope this will help you.
    Regards

  • Purchase Order - Quantity Field printing.

    Hi Gurus.
    I am printing purchase orders via SAP script.
    My users want the quantity field (RM06P-PRMG1) to have a dot(.) not a comma(,)
    eg they want to print the number as 200.000 and not 200,000
    Is there somewhere, i can switch this without adding an ABAP routine to fix this.
    Thanks.
    Points will be awarded.

    Hi Wandai,
    Did you try changing the user settings? Access the menu and go to System -> User profile -> User defaults. Here you can see two options in the Decimal notation tab.
    Option 1 is : Comma and
    Option 2 is : Period.
    Please change and try with each of the above option.
    If this doesn't work you need to check the data type you are using for this variable.
    Hope this helps.
    Please reward if useful.
    Thanks,
    Srinivasa

  • I need to make the ordered quantity field (RV45A-KWMENG) disabled in 'VA02'

    Hi SAP COMMUNITY,
    I have urgent requirement for which i did'nt worked before on this requirement. I hope you people can help me in this regerd.
    My requirement is, I need to make the ordered quantity field (RV45A-KWMENG) disabled in the transaction code is VA01/VA02. User should not be able to edit this ordered quantity in VA01/VA02 Transaction.
    Here the condition to disable this field ordered quantity is IF ORDER TYPE EQUAL TO OR AND IF ITEM CATEGORY EQUAL TO TANN in technical IF VBAK-AUART EQ OR AND IF VBAP-PSTYV EQ TANN then only the field (RV45A-KWMENG) ordered quantity should be disabled in that transaction VA01/VA02.
    Correct me if iam wrong, I think in the program SAPMV45A and do we need to include any screen number which i have seen in VA02 is 4001. Do we need to write a code in Include MV45AFZZ (FORM USEREXIT_FIELD_MODIFICATION.). But i don't know what code i need to write here to disable this field.
    I had searched in the forum some example code so please suggest me whether i can use this and if i can use this please suggest me how to write the condition and insert the code in that FORM. If this sample code is wrong then please suggest me what exact code should be given. Can anyone help. Quick response will be much appreciated.
    Looking forward for ur prompt replies.

    As per my understanding , To disable the field RV45A-KWMENG based on the condition for Transaction VA01/VA02.
    The conditions which i need to check is Order Type and item category.
    I understand that this is the code which i need to insert for disabling the field but i have a question here, where is the condition here and how the system understand for this field RV45A-KWMENG it has to disable. I think we need give the condition as if RV45A-KWMENG....... Another one if iam not wrong we need check that it has to be done in VA01 and VA02 then only this condition should be executed.
    IF VBAK-AUART EQ 'XXX' OR VBAP-PSTYV EQ TANN .
    IF SCREEN-NAME = 'XXX'.
    SCREEN-ACTIVE = 0
    ENDIF.
    ENDIF.
    Please suggest me the better way how can i do it in the coding.
    Awaiting for ur prompt reply.

  • Quantity field in at user-command

    Hi,
    I have declared the quantity field  V_QTY TYPE AFKO-GAMNG.
    I am passing the quantity field values from the internal table which is having data for the quantity field to V_QTY. but the field V_QTY is not filling with the quantity.
    Instead of the quantity, it is taking the   * value into the field.
    I am not using any control break commands in my coding.  I am attaching the code also. can anyone guide me .
    Report ztest.
    TABLES:  AFKO,                         " Order Header
             AFPO,                         " Order Item
             AUFK,                         " Order Master
             RESB,
             AFVC,                         " Order Operation w/i an Order
             AFVV,                        " Qty/Dates/values in an Operation
             CRHD,                         " Work Center
             MARA,                         " Material Master
             MAKT,                         " Material Description
             AUSP,                         " Characteristic Values
             CABN,                         " Characteristic
             PLPO,                         " Task list-operation/activity
             PLFL,                         " Task list - sequences
             TJ02T,                        " System status texts
             JEST.                         " Individual Object Status
    TYPE-POOLS:SLIS.
    TYPE-POOLS:ICON.
    DATA:CHECK(1),
         TOTAL(7) VALUE 'TOTAL :',
         W_AMOUNT TYPE GAMNG VALUE 0.
    TYPES:BEGIN OF T_AFKO,
          CHECK,
          AUFNR TYPE AFKO-AUFNR,
          GLTRP TYPE AFKO-GLTRP,
          GSTRP TYPE AFKO-GSTRP,
          GAMNG TYPE AFKO-GAMNG,
          PLNBEZ TYPE AFKO-PLNBEZ,
          END OF T_AFKO.
    DATA:I_AFKO TYPE STANDARD TABLE OF T_AFKO,
         W_AFKO LIKE LINE OF I_AFKO.
    DATA:I_AFKO1 TYPE STANDARD TABLE OF T_AFKO,
         W_AFKO1 LIKE LINE OF I_AFKO1.
    DATA:PONUM TYPE AFKO-AUFNR,
         STDATE TYPE AFKO-GLTRP,
         FIDATE TYPE AFKO-GSTRP,
         QUANTY TYPE AFKO-GAMNG,
         MATER  TYPE AFKO-PLNBEZ,
         DESCR  TYPE MAKT-MAKTX,
         INDEX  TYPE SY-INDEX,
         COUNT(3) VALUE '0'.
    TYPES:BEGIN OF T_FINAL,
          CHECK,
          LIGHT  TYPE ICON-ID,
          MATNR  TYPE RESB-MATNR,
          AUFNR  TYPE AFKO-AUFNR,
          GLTRP  TYPE AFKO-GLTRP,
          GSTRP  TYPE AFKO-GSTRP,
          GAMNG  TYPE AFKO-GAMNG,
          PLNBEZ TYPE AFKO-PLNBEZ,
          MAKTX  TYPE MAKT-MAKTX,
          END OF T_FINAL.
    DATA:I_FINAL TYPE STANDARD TABLE OF T_FINAL,
         W_FINAL LIKE LINE OF I_FINAL,
         I_FINAL1 TYPE STANDARD TABLE OF T_FINAL,
         W_FINAL1 LIKE LINE OF I_FINAL1.
    TYPES:BEGIN OF T_CRHD,
          OBJID TYPE CRHD-OBJID,
          ARBPL TYPE CRHD-ARBPL,
          END OF T_CRHD.
    DATA:I_CRHD TYPE STANDARD TABLE OF T_CRHD,
         W_CRHD LIKE LINE OF I_CRHD.
    TYPES:BEGIN OF T_AFVC,
          AUFPL TYPE AFVC-AUFPL,
          ARBID TYPE AFVC-ARBID,
          END OF T_AFVC.
    DATA:I_AFVC TYPE STANDARD TABLE OF T_AFVC,
         W_AFVC LIKE LINE OF I_AFVC.
    TYPES:BEGIN OF T_ITEM,
          MATNR  TYPE RESB-MATNR,       " Component Matl Number
          MAKTX  TYPE MAKT-MAKTX,       " Matl Desc for Component
          BDMNG  TYPE RESB-BDMNG,       " Component Req'd Qty
          END OF T_ITEM.
    DATA:I_ITEM TYPE STANDARD TABLE OF T_ITEM,
         W_ITEM LIKE LINE OF I_ITEM.
    TYPES:BEGIN OF T_RESB,
          MATNR TYPE RESB-MATNR,
          AUFNR TYPE RESB-AUFNR,
          BDMNG TYPE RESB-BDMNG,
          END OF T_RESB.
    DATA:I_RESB TYPE STANDARD TABLE OF T_RESB,
         W_RESB LIKE LINE OF I_RESB.
    DATA:I_MAKT TYPE STANDARD TABLE OF MAKT,
         W_MAKT LIKE LINE OF I_MAKT,
         I_MAKT1 TYPE STANDARD TABLE OF MAKT,
         W_MAKT1 LIKE LINE OF I_MAKT1.
    TYPES:BEGIN OF T_AUFK,
          AUFNR TYPE AUFK-AUFNR,
          AUART TYPE AUFK-AUART,
          WERKS TYPE AUFK-WERKS,
          OBJNR TYPE AUFK-OBJNR,
          END OF T_AUFK.
    DATA:I_JEST TYPE STANDARD TABLE OF JEST,
         W_JEST LIKE LINE OF I_JEST.
    DATA:I_AUFK TYPE STANDARD TABLE OF T_AUFK,
         W_AUFK LIKE LINE OF I_AUFK.
    DATA:V_QTY TYPE AFKO-GAMNG,
         LINES TYPE I,
         V_AUFNR TYPE AFKO-AUFNR.
    SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
    PARAMETERS:
    P_WERKS TYPE AUFK-WERKS OBLIGATORY MEMORY ID WRK,  " PLANT
    P_AUART TYPE AUFK-AUART OBLIGATORY.                "ORDER TYPE
    SELECT-OPTIONS: S_PLNBEZ FOR AFKO-PLNBEZ.          "material
    PARAMETERS: P_ARBPL TYPE CRHD-ARBPL OBLIGATORY.    "Work center
    SELECT-OPTIONS:
    S_GSTRP  FOR AFKO-GSTRP OBLIGATORY.   "ORDER BASIC START DATE
    *s_gltrp  FOR afko-gltrp OBLIGATORY,  "ORDER BASIC FINISH DATE
    *s_gstrs  FOR afko-gstrs,             "ORDER SCHEDULE START DATE
    *s_gltrs  FOR afko-gltrs.             "ORDER SCHEDULE FINISH DATE
    PARAMETERS:P_MATNR TYPE RESB-MATNR.
    SELECTION-SCREEN END OF BLOCK B1.
    *ALV data declarations
    DATA: I_FIELDCATALOG    TYPE SLIS_T_FIELDCAT_ALV,
          W_FIELDCATALOG    LIKE LINE OF I_FIELDCATALOG,
          S_FIELDCATALOG  TYPE SLIS_T_FIELDCAT_ALV WITH HEADER LINE,
          GD_TAB_GROUP    TYPE SLIS_T_SP_GROUP_ALV,
          GD_LAYOUT       TYPE SLIS_LAYOUT_ALV,
          GD_REPID        LIKE SY-REPID VALUE SY-REPID,
          T_HEADING       TYPE SLIS_T_LISTHEADER,
          IT_LISTHEADER   TYPE SLIS_T_LISTHEADER,
          W_KEYINFO       TYPE SLIS_KEYINFO_ALV,
          WA_SORT         TYPE SLIS_SORTINFO_ALV,
          IT_SORT         TYPE SLIS_T_SORTINFO_ALV,
          IT_TITLE_BASIC  TYPE
                LVC_TITLE VALUE 'SELECTION OF PRODUCTION ORDERS',
          IT_TITLE_ITEM  TYPE LVC_TITLE VALUE 'MIXING REPORT'.
    DATA: PO TYPE AUFNR,
          P_SELFIELD TYPE SLIS_SELFIELD.
    DATA: I_EVENTS TYPE SLIS_T_EVENT,
          W_EVENTS LIKE LINE OF I_EVENTS.
    CLEAR:   W_EVENTS.
    REFRESH: I_EVENTS.
    DATA:I_HEADER TYPE SLIS_T_LISTHEADER,
         W_HEADER LIKE LINE OF I_HEADER.
    BEGIN OF CODE FOR ALV_HIERSEQ_LIST*************
    TYPES:BEGIN OF T_HHEADER,
         EXPAND,
          MATNR TYPE RESB-MATNR,
          MAKTX TYPE MAKT-MAKTX,
          V_QTY,
          END OF T_HHEADER.
    DATA:I_HHEADER TYPE STANDARD TABLE OF T_HHEADER,
         W_HHEADER LIKE LINE OF I_HHEADER.
    TYPES:BEGIN OF T_HITEM,
          CHECK,
          MATNR  TYPE RESB-MATNR,
          AUFNR  TYPE AFKO-AUFNR,
          GAMNG  TYPE AFKO-GAMNG,
          PLNBEZ TYPE AFKO-PLNBEZ,
          MAKTX TYPE MAKT-MAKTX,
          GLTRP  TYPE AFKO-GLTRP,
          GSTRP  TYPE AFKO-GSTRP,
          END OF T_HITEM.
    DATA:I_HITEM TYPE STANDARD TABLE OF T_HITEM,
         W_HITEM LIKE LINE OF I_HITEM.
    END OF CODE FOR ALV_HIERSEQ_LIST ****************************
    INITIALIZATION.
      PERFORM BUILD_FIELDCATALOG.
      PERFORM BUILD_LAYOUT.
    *Start-of-selection.
    START-OF-SELECTION.
      PERFORM GET_EVENTS.
      PERFORM GET_DATA.
    END-OF-SELECTION.
      PERFORM DISPLAY_ALV_REPORT.
    *&      Form  BUILD_FIELDCATALOG
          text
    FORM BUILD_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '1'.
      W_FIELDCATALOG-FIELDNAME    = 'MATNR'.
      W_FIELDCATALOG-TABNAME      = 'I_HHEADER'.
      W_FIELDCATALOG-SELTEXT_M    = 'Phantom Material'.
    W_FIELDCATALOG-ROLLNAME     = 'MATNR'.
      W_FIELDCATALOG-OUTPUTLEN    = '20'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '2'.
      W_FIELDCATALOG-FIELDNAME    = 'MAKTX'.
      W_FIELDCATALOG-TABNAME      = 'I_HHEADER'.
      W_FIELDCATALOG-SELTEXT_M    = 'Phantom Material Description'.
    W_FIELDCATALOG-ROLLNAME     = 'MAKTX'.
      W_FIELDCATALOG-OUTPUTLEN    = '40'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '3'.
      W_FIELDCATALOG-FIELDNAME    = 'BDMNG'.
      W_FIELDCATALOG-TABNAME      = 'I_HHEADER'.
      W_FIELDCATALOG-OUTPUTLEN    = '20'.
      W_FIELDCATALOG-SELTEXT_M    = 'Total Batch qty:'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '1'.
      W_FIELDCATALOG-SELTEXT_M    = 'Selection'.
      W_FIELDCATALOG-FIELDNAME    = 'CHECK'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      W_FIELDCATALOG-EDIT        = 'X'.
      W_FIELDCATALOG-CHECKBOX    = 'X'.
      W_FIELDCATALOG-INPUT       = 'X'.
    W_FIELDCATALOG-HOTSPOT     = 'X'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
    CLEAR W_FIELDCATALOG .
    W_FIELDCATALOG-COL_POS      = '2'.
    W_FIELDCATALOG-FIELDNAME    = 'MATNR'.
    W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
    W_FIELDCATALOG-ROLLNAME     = 'MATNR'.
    W_FIELDCATALOG-OUTPUTLEN    =  '12'.
    APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '2'.
      W_FIELDCATALOG-FIELDNAME    = 'AUFNR'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      W_FIELDCATALOG-ROLLNAME     = 'AUFNR'.
      W_FIELDCATALOG-OUTPUTLEN    =  '12'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-COL_POS      = '3'.
    W_FIELDCATALOG-SELTEXT_M    = 'PO Qty'.
      W_FIELDCATALOG-FIELDNAME    = 'GAMNG'.
      W_FIELDCATALOG-ROLLNAME     = 'GAMNG'.
      W_FIELDCATALOG-OUTPUTLEN    =  '20'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-COL_POS      = '4'.
    W_FIELDCATALOG-SELTEXT_M    =  'Header Material'.
      W_FIELDCATALOG-FIELDNAME    =  'PLNBEZ'.
      W_FIELDCATALOG-ROLLNAME     =  'MATNR'.
      W_FIELDCATALOG-OUTPUTLEN    =  '20'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG.
      W_FIELDCATALOG-COL_POS      = '5'.
    W_FIELDCATALOG-SELTEXT_M    = 'Material Description'.
      W_FIELDCATALOG-FIELDNAME    =   'MAKTX'.
      W_FIELDCATALOG-ROLLNAME     =   'MAKTX'.
      W_FIELDCATALOG-OUTPUTLEN    =  '40'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '6'.
      W_FIELDCATALOG-FIELDNAME    = 'GSTRP'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      W_FIELDCATALOG-ROLLNAME     = 'CO_GSTRP'.
      W_FIELDCATALOG-OUTPUTLEN    =  '10'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
      CLEAR W_FIELDCATALOG .
      W_FIELDCATALOG-COL_POS      = '7'.
      W_FIELDCATALOG-FIELDNAME    = 'GLTRP'.
      W_FIELDCATALOG-TABNAME      = 'I_HITEM'.
      W_FIELDCATALOG-ROLLNAME     = 'CO_GLTRP'.
      W_FIELDCATALOG-OUTPUTLEN    =  '10'.
    W_FIELDCATALOG-SELTEXT_M    = 'Basic End Date'.
      APPEND W_FIELDCATALOG TO I_FIELDCATALOG.
    ENDFORM.                    "BUILD_FIELDCATALOG
    *&      Form  get_events
          text
    FORM GET_EVENTS.
      CLEAR : W_EVENTS, I_EVENTS[].
      CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
        EXPORTING
          I_LIST_TYPE = 0
        IMPORTING
          ET_EVENTS   = I_EVENTS.
      READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_TOP_OF_PAGE
                             INTO W_EVENTS.
      IF SY-SUBRC EQ 0.
        MOVE 'TOP_OF_PAGE' TO W_EVENTS-FORM.
        MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
      ENDIF.
      READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_USER_COMMAND
                             INTO W_EVENTS.
      IF SY-SUBRC EQ 0.
        MOVE 'SUB_USER_COMMAND' TO W_EVENTS-FORM.
        MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
      ENDIF.
      READ TABLE I_EVENTS WITH KEY NAME = SLIS_EV_PF_STATUS_SET
                INTO W_EVENTS.
      IF SY-SUBRC EQ 0.
        MOVE 'PF_STATUS_SET' TO W_EVENTS-FORM.
        MODIFY I_EVENTS FROM W_EVENTS INDEX SY-TABIX.
      ENDIF.
    ENDFORM.                    "get_events
    *&      Form  build_layout
          text
    FORM BUILD_LAYOUT.
    gd_layout-no_input          = 'X'.
    gd_layout-colwidth_optimize = 'X'.
      GD_LAYOUT-ZEBRA             = 'X'.
      W_KEYINFO-HEADER01          = 'MATNR'.
      W_KEYINFO-ITEM01            = 'MATNR'.
      GD_LAYOUT-TOTALS_TEXT       = 'Totals'(201).
    GD_LAYOUT-EXPAND_FIELDNAME = 'EXPAND'.
    ENDFORM.                    " BUILD_LAYOUT
    *&      Form  data_retrieval
          text
    FORM GET_DATA.
    IF p_matnr IS NOT INITIAL.
      SELECT MATNR
             AUFNR
             BDMNG
             FROM RESB INTO TABLE I_RESB
             WHERE DUMPS = 'X'.
                AND matnr = p_matnr.
      SORT I_RESB BY MATNR AUFNR.
    ENDIF.
      SELECT * FROM JEST INTO CORRESPONDING FIELDS OF TABLE I_JEST
                   WHERE STAT = 'I0002'
                    AND INACT = ' '.
      SELECT OBJID
              ARBPL
              FROM CRHD INTO TABLE I_CRHD WHERE ARBPL = P_ARBPL.
      IF NOT I_CRHD[] IS INITIAL.
        SELECT AUFPL
               ARBID
               FROM AFVC INTO TABLE I_AFVC
               FOR ALL ENTRIES IN I_CRHD
               WHERE ARBID = I_CRHD-OBJID.
      ENDIF.
      IF NOT I_AFVC[] IS INITIAL.
        SELECT AUFNR
               GLTRP
               GSTRP
               GAMNG
               PLNBEZ
               FROM  AFKO INTO CORRESPONDING FIELDS OF TABLE I_AFKO
               FOR ALL ENTRIES IN I_AFVC
               WHERE AUFPL = I_AFVC-AUFPL
                 AND GSTRP IN S_GSTRP.
        SORT I_AFKO BY AUFNR.
      ENDIF.
      IF NOT I_AFKO[] IS INITIAL.
        SELECT AUFNR
               AUART
               WERKS
               OBJNR
               FROM AUFK INTO TABLE I_AUFK
               FOR ALL ENTRIES IN I_AFKO
                   WHERE AUFNR = I_AFKO-AUFNR
                     AND AUART = P_AUART
                     AND WERKS = P_WERKS.
        SORT I_AUFK BY AUFNR OBJNR.
        SELECT * FROM MAKT INTO TABLE I_MAKT1
                 FOR ALL ENTRIES IN I_AFKO
                 WHERE MATNR = I_AFKO-PLNBEZ
                   AND SPRAS = SY-LANGU.
        SORT I_MAKT1 BY MATNR.
      ENDIF.
      IF NOT I_RESB[] IS INITIAL.
        SELECT * FROM MAKT INTO TABLE I_MAKT
                 FOR ALL ENTRIES IN I_RESB
                 WHERE MATNR = I_RESB-MATNR
                   AND SPRAS = SY-LANGU.
        SORT I_MAKT BY MATNR.
      ENDIF.
    CLEAR W_HHEADER-BDMNG.
    ***BEGIN OF PHANTOM MATERIAL HEADER INTERNAL TABLE***
      CLEAR W_AUFK.
      CLEAR W_RESB.
      LOOP AT I_RESB INTO W_RESB.
        W_HHEADER-MATNR = W_RESB-MATNR.
        READ TABLE I_MAKT INTO W_MAKT
                  WITH KEY MATNR = W_RESB-MATNR BINARY SEARCH.
        W_HHEADER-MAKTX = W_MAKT-MAKTX.
        APPEND W_HHEADER TO I_HHEADER.
        MODIFY I_HHEADER FROM W_HHEADER INDEX SY-TABIX.
        CLEAR W_HHEADER.
        CLEAR W_RESB.
        SORT I_HHEADER BY MATNR.
        DELETE ADJACENT DUPLICATES FROM I_HHEADER.
      ENDLOOP.
    ****END OF PHANTOM MATERIAL HEADER INTERNAL TABLE***
    **BEGIN OF PHANTOM MATERIAL ITEM DETAILS***************
      IF NOT I_HHEADER[] IS INITIAL.
        LOOP AT I_HHEADER INTO W_HHEADER.
          LOOP AT I_RESB INTO W_RESB WHERE MATNR = W_HHEADER-MATNR.
            IF SY-SUBRC = 0.
              READ TABLE I_AUFK INTO W_AUFK
                         WITH KEY AUFNR = W_RESB-AUFNR.
              READ TABLE I_JEST INTO W_JEST
                         WITH KEY OBJNR = W_AUFK-OBJNR.
              IF SY-SUBRC = 0.
                W_HITEM-CHECK = CHECK.
                W_HITEM-MATNR = W_HHEADER-MATNR.
                READ TABLE I_AFKO INTO W_AFKO
                        WITH KEY AUFNR = W_AUFK-AUFNR BINARY SEARCH.
                W_HITEM-AUFNR = W_AFKO-AUFNR.
                W_HITEM-PLNBEZ = W_AFKO-PLNBEZ.
                READ TABLE I_MAKT1 INTO W_MAKT1
                        WITH KEY MATNR = W_AFKO-PLNBEZ.
                W_HITEM-MAKTX = W_MAKT1-MAKTX.
                W_HITEM-GLTRP = W_AFKO-GLTRP.
                W_HITEM-GSTRP = W_AFKO-GSTRP.
                W_HITEM-GAMNG = W_AFKO-GAMNG.
                APPEND W_HITEM TO I_HITEM.
                MODIFY I_HITEM FROM W_HITEM INDEX SY-TABIX.
                SORT I_HITEM BY AUFNR.
                CLEAR W_HITEM.
              ENDIF.
            ENDIF.
          ENDLOOP.
        ENDLOOP.
      ENDIF.
    ***********END OF PHANTOM MATERIAL ITEM DETAILS.*********************
    ENDFORM.                    "get_item_DETAILS
    *&      Form  top_of_page
          text
    FORM TOP_OF_PAGE.
      CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
      EXPORTING
      IT_LIST_COMMENTARY = I_HEADER
    I_LOGO =
    I_END_OF_LIST_GRID =
    ENDFORM.                    " alv_top_of_page
    *&      Form  user_command
          text
         -->P_UCOMM    text
         -->P_SELFIELD text
    FORM DISPLAY_ALV_REPORT.
      SORT I_HHEADER BY MATNR.
      SORT I_HITEM   BY MATNR AUFNR.
      CALL FUNCTION 'REUSE_ALV_HIERSEQ_LIST_DISPLAY'
        EXPORTING
      I_INTERFACE_CHECK              = ' '
         I_CALLBACK_PROGRAM             = GD_REPID
         I_CALLBACK_PF_STATUS_SET       = 'PF_STATUS_SET'
         I_CALLBACK_USER_COMMAND        = 'SUB_USER_COMMAND'
         IS_LAYOUT                      = GD_LAYOUT
         IT_FIELDCAT                    = I_FIELDCATALOG
      IT_EXCLUDING                   =
      IT_SPECIAL_GROUPS              =
      IT_SORT                        =
      IT_FILTER                      =
      IS_SEL_HIDE                    =
      I_SCREEN_START_COLUMN          = 0
      I_SCREEN_START_LINE            = 0
      I_SCREEN_END_COLUMN            = 0
      I_SCREEN_END_LINE              = 0
      I_DEFAULT                      = 'X'
      I_SAVE                         = ' '
      IS_VARIANT                     =
         IT_EVENTS                      = I_EVENTS[]
      IT_EVENT_EXIT                  =
          I_TABNAME_HEADER               = 'I_HHEADER'
          I_TABNAME_ITEM                 = 'I_HITEM'
      i_structure_name_header        =
      i_structure_name_item          =
          IS_KEYINFO                     = W_KEYINFO
      IS_PRINT                       =
      IS_REPREP_ID                   =
      I_BYPASSING_BUFFER             =
      I_BUFFER_ACTIVE                =
    IMPORTING
      E_EXIT_CAUSED_BY_CALLER        =
      ES_EXIT_CAUSED_BY_USER         =
        TABLES
          T_OUTTAB_HEADER                = I_HHEADER
          T_OUTTAB_ITEM                  = I_HITEM
    EXCEPTIONS
      PROGRAM_ERROR                  = 1
      OTHERS                         = 2
      IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
            WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
      ENDIF.
    ENDFORM.                    "display_alv_report
    *****BEGIN OF CUMMILATIVE QUANTITY***********************
    FORM PF_STATUS_SET USING EXTAB TYPE SLIS_T_EXTAB.
      BREAK POINT.
      SET PF-STATUS 'STANDARD' EXCLUDING EXTAB.
    ENDFORM.                    "PF_STATUS_SET
    *&      Form  SUB_USEMR_COMMAND
          text
         -->P_UCOMM    text
         -->P_SELFIELD text
    FORM SUB_USER_COMMAND  USING P_UCOMM  LIKE SY-UCOMM
                           P_SELFIELD TYPE SLIS_SELFIELD.
      CASE SY-UCOMM.
        WHEN 'SUMM'.
          CLEAR W_HITEM.
          CLEAR W_HHEADER-V_QTY.
          P_SELFIELD-REFRESH = 'X'.
          DATA:LV_TABIX TYPE SY-TABIX.
          LOOP AT I_HITEM INTO W_HITEM.
            READ TABLE I_HHEADER INTO W_HHEADER
                        WITH KEY MATNR = W_HITEM-MATNR BINARY SEARCH.
            IF SY-SUBRC = 0.
              LV_TABIX = SY-TABIX.
              IF W_HITEM-CHECK = 'X'.
                W_HHEADER-V_QTY = W_HHEADER-V_QTY +  W_HITEM-GAMNG.
                MODIFY I_HHEADER FROM W_HHEADER
                      INDEX LV_TABIX." TRANSPORTING V_QTY.
              ENDIF.
            ENDIF.
          ENDLOOP.
      ENDCASE.
    ENDFORM.                    "USER_COMMAND
    *********END OF CUMMILATIVE QUANTITY
    Thanks in advance.
    Ramesh.

    Hello Ramesh,
    Check your declerations,
    In internal table  I_HHEADER , the quantity field is of character type. And in internal table I_HITEM, the field GAMNG is of type quantity. There will be type mismatch.Correct it and see if it works.
    Regards

  • In smartform quantity field move to left side.

    Hi,
    smartform output quantity field displaying rightside.
    how can i move quantity field to leftside.
    Regards,
    Suresh.

    Hi Suresh,
    check this
    Left/Right Alignment of Quantity field?
    hope it helps you
    Regards!

  • How to validate Quantity field in TV - Inputfield ?

    Hello All,
            I'm using a table view to show the output .
    IN this table view I made 2 fields as Input fields.
    Both the fields are Quantity fields.
    Now when the user enters a value in this Quantity field I want to validate it with respect to it's units .
    How can I do that ?
    In my case if the user enters correct value it works but when he enters a wrong value my BSP is going for a dump.
    I tried to debug the<b> LIPS table</b> to verify how SAP was handling this checking for the field <b>LFIMG</b>. But there there is a statement called chain --endchain.
    SO there is no chance for debugging.
    My code is as follows :-
            LOOP AT gt_final INTO wa_final.
              CLEAR: gv_row,lv_qty,lv_string,gv_len,gv_cell_id1.
              gv_row = sy-tabix.
              gv_len = STRLEN( gv_row ).
              gv_len = gv_len - 1.
    * Modify the Third Column
              CONCATENATE 'INB01_TV_ID' '_' gv_row(gv_len) '_' '3' INTO gv_cell_id1 .
              lv_string = request->get_form_field( name = gv_cell_id1 ).
              WRITE lv_string TO lv_qty  UNIT wa_final-units.
              CLEAR :wa_final-del_quantity.
              wa_final-del_quantity = lv_qty.
              MODIFY gt_final FROM wa_final TRANSPORTING del_quantity.
            ENDLOOP.
    Can anyone tell me how to validate the entry for the Quantity filed ?
    Regards,
    Deepu.K
    I have one more Question .
    Whenever BSP goes for a dump in this case I want to handle this by a message .
    Is it possible ?
    Message was edited by:
            deepu k

    Hello Raja,
           I want to validate the entry in the QUantity field with respect to the Unit of the Quantity.
    I.e say for example I have a unit as PC (pieces) then the quantity must be only of thousands,lakks and so..on......but not in points i.e a piece quantity must be full either 200 ,2 lakhs or 2 pieces but not 2.5 pieces.
    SO now if the user enters 2.5 it's a wrong value as the quantity for the Unit PIECES can't have half-piece. (2.5 = 2 + 0.5) .SO i want to validate this .
    I hope I'm clear.
    How should I do ?
    Regards,
    Deepu.k

  • Problem with quantity field in BDC

    hi experts,
                   i am trying to upload  data from internal table to SAP using BDC, but while uploading quantity fields it is giving error as "Input fields is longer than screen field", Is there any method to upload quantity fields to SAP.
                     thanks in adancae,

    Hi,
    Before passing the value to perform bdc_field, convert that value to char type
    For eg.
    DATA :        v_val(10)               TYPE c,
      v_val = wa_operation-std_value_01. CONDENSE v_val.
      CONCATENATE 'PLPOD-VGW01(' n_linecount1 ')' INTO v_para.
      PERFORM f_bdc_field       USING v_para           v_val.
    FORM f_bdc_field  USING fnam fval.
      CLEAR wa_bdctab.
      wa_bdctab-fnam = fnam.
      wa_bdctab-fval = fval.
      APPEND wa_bdctab TO it_bdctab.
    ENDFORM.                    " f_bdc_field
    check this it would be useful.

  • Order quantity field in the item overview tab of a sales order

    Hi,
    I would like to make the order quantity field inactive, i.e., the field should be greyed out, when i enter the transaction VA01.
    Is there any way this can be done through functional configuration?
    Cheers,
    MR

    Unfortunately, it doesn't.
    The requirement was to adapt transaction's layout in order to disable editing (e.g. turning it to grey, disactivating the field) for a particular field. This kind of job should be done dinamically as it interests only some kind of Purchase Requisitions (whose attributes should be checked "runtime").
    I found a good user exit which is executed every time a PR is loaded from Enjoy transactions ME51N/ME52N/ME53N in which i can easily check if prerequisites for the "locked field" exist... but there's no visibility over the right SCREEN in that user exit (and also, I tried, in ANY of the std userexit) so I don't know how to tell the transaction "hey, for this order turn the EPSTP (=pstyp in EBAN) grey since it must be not-modifiable".
    Can't get at the same time Field Exit to work on this system (46C)

Maybe you are looking for