ME21N / ME22N - material PO text blank / obligatory

Hi experts,
I have a requirement where I need to make the material PO text in ME21N / ME22N obligatory for all items in some types of POs. Also, this text must not be changed after saving the PO.
I am already using the enhancement MM06E005 (EXIT_SAPMM06E_012). Inside the include, I'm importing the table CATALOG from the memory id SAPLSTXD. Using this table is fine, but the problem is that the user can add blank lines (pressing enter once or twice), and the table CATALOG recognizes the user has inputted valid text. Then, I have a few questions:
1. Is there any way this can be achieved through customizing? (Except for the blank lines, I suppose)
2. Is there any way to retrieve the text inputted by the user during runtime? I've tried to access the table GT_CONTROL-TEXTLINES, but it only contains the text for the current item / text type being displayed at that moment.
3. During debug, I've found some standard memory IDs with the name SAPLSTXD<item number>, which I presume that contain the texts. Does anyone know the names of the tables inside those memory IDs? Or how to access them?
TIA,
Leo

Hi Leonardo Schmidt ,
1) Not sure, but probably by customizing you will not be able to make Item Long Text mandatory.
2)Try the following,Under the method CHECK of BADI ME_PROCESS_PO_CUST, there is an interface called IF_LONGTEXTS_MMGET_TEXT, which should help to resolve your issue. Or you can even use method PROCESS_ITEM of the same BADI, there is an interface called IF_LONGTEXTS_MMGET_TEXT.
Thanks & Regards,
Faheem.

Similar Messages

  • ME23N Material PO Text (Automatically Adopt Material PO Text)

    Hi SAP Experts,
    My company have just upgraded to ECC6.0.  When creating Purchase Order using ME21N, the "Material PO Text" is fetched from the Material Master MM03.  When we view the Print Preview using ME23N, we are able to see the text there, but when we actually print the form NEU out, the "Material PO Text" is missing.  This problem didn't exist before the upgrade, has anyone have come across this? 
    Hi,
    Does anyone knows where in SPRO can I configure so that the "Material PO Text" is automatically adopted from the Material Master.  Curently we need to press the button for every line item to adopt the text.
    Thanks
    Edited by: jamison2004 jordan2004 on Nov 9, 2010 4:31 AM

    Hi ,
    Please check if you are using smb40 smart forms for printing . We had the same issue where the Material PO text was not getting printed and the reply from SAP is as follows .
    The smartforms /smb40/ were delivered by SAP Best Practices for
    R/3 4.70 system,which will not be available in the ECC600 system.
    Also that were never tested and enhanced in the ECC600 system.
    So It is out support scope if smartforms /smb40/ are used in ECC600
    system.
    Limitation:
    3. This workaround is for the customer who are using Preconfigure
    Smartform /SMB40/* in the 470 or 500 system.
    4. This workaround is not available for ECC600 system,it is not
    supported
    4) 843193 SAP Best Practices for Preconfigured SmartForms
    Solution
    Now, the preconfigured SmartForms are delivered with
    the country-specific SAP Best Practices Baseline and Industry packages.
    Please check http://service.sap.com/bestpractices for availability.
    That means you must use Best Practices Package if you want to use
    smartforms.
    More release version for Best Practices Package you can find from
    http://help.sap.com-->Best Practices
    -Hari,

  • ME21N: "Material PO text" in EXIT

    People,
    In ME21N, under some conditions, we would like to create a text in "Material PO text" for each item. This text will be create when the PO is saved, in EXIT EXIT_SAPMM06E_012.
    In this exit I´m using:
            CALL FUNCTION 'INIT_TEXT'
              EXPORTING
                id       = 'F03'
                language = sy-langu
                name     = lc_name
                object   = 'EKPO'
              IMPORTING
                header   = lc_header
              TABLES
                lines    = ti_lines_ni
              EXCEPTIONS
                id       = 1
                language = 2
                name     = 3
                object   = 4
                OTHERS   = 5.
            CALL FUNCTION 'SAVE_TEXT'
                 EXPORTING
                      header    = lc_header
                      insert = ''
                      savemode_direct       = 'X'
                 IMPORTING
                      newheader = lc_header
                 TABLES
                      lines     = ti_lines_ni
                 EXCEPTIONS
                      id        = 1
                      language  = 2
                      name      = 3
                      object    = 4
                      OTHERS    = 5.
        CALL FUNCTION 'COMMIT_TEXT'
          EXPORTING
            object   = lc_header-tdobject
            name     = lc_header-tdname
            id       = lc_header-tdid
            language = lc_header-tdspras.
    ===============================
    The text does not appear automatically (after save the PO).
    But if we change to Display Mode, the text appears! What else I have to do to display the text immediatelly?
    Thanks a lot!

    Where did you check the text (ME22N / ME23N)??

  • In PO -Me21N Material PO text field non editable

    Dear All ,
                  We have specific requirment in PO (ME21N). In Item level ther is free text field "Item Texts". In Item texts we have 4 text fields
    (1) Item Text
    (2) Info Record PO text
    (3) Material Po text
    (4) Deivery Text
    As per our configuration in "Material PO text"  Material long description picking from Material master .We want to make this text field Non Editable.
    In SAP there is facility to configure non editable  Texts , But it will non editable all text fields.
    How we can non editable only Material Po text .
    Thanks in Advance.
    Regards
    Abhishek Tiwari

    Dear Chetan,
                          I think you have not understood my complete question. First thing i dont want to non editable Short text field.
    In my problem  i In Item level ther is free text field "Item Texts". In Item texts we have 4 text fields
    (1) Item Text
    (2) Info Record PO text
    (3) Material Po text
    (4) Deivery Text
    In above text fields ,I want to non editable only "Material PO Text" only....
    Regards
    Abhishek Tiwari

  • PO (Tcode- ME21N)  In Item Text "Material PO text" to be non editable

    Dear All ,
                  We have specific requirment in PO (ME21N). In Item level ther is free text field "Item Texts". In Item texts we have 4 text fields
    (1) Item Text
    (2) Info Record PO text
    (3) Material Po text
    (4) Deivery Text
    As per our configuration in "Material PO text"  Material long description picking from Material master .We want to make this text field Non Editable.
    In SAP there is facility to configure non editable  Texts , But it will non editable all text fields.
    How we can non editable only Material Po text .
    Thanks in Advance.
    Regards
    Abhishek Tiwari

    Hi,
       As of my knowledge, there is no purchase organization specific texts exits. But you may make use of the purchase organization specific text in vendor master. You may define purchase organization specific text for vendor master and then maintain the text in vendor master. You may configure to copy the vendor master text to PO automatically. Refer the doc: Copy Control in MM (Conditions, Fields and Texts): (3rd part)
    Regards,
    AKPT

  • BADI for Disabling NetPrice field in ME21N & ME22N based of Material Type.

    Hi.
    I had a requirement to disable "net price" field while creating or changing a PO (ME21N & ME22N) based on the type of material entered.
    Please asssit me in finding the BADI or exit name which can meet my requirement. Thanks.

    Hi Ranga nadh,
       The BAdi what you have mentioned is correct.
    ME_PROCESS_PO_CUST - In this BAdi, we are having a method PROCESS_ITEM. These method is used to process all the Item data. As the field Netprice is at the level. You can use this method.
    Here inside this method we are having a parameter IM_ITEM
    So, You create a implementation and inside this method you can code here to appear the field in disable mode.
    Cheers,
    Swamy Kunche

  • Material descri screen level field greyout in ME21N/ME22N/ME23N-Urgent

    Hi,
    I have a requirement in ME21N/ME22N/ME23N is that when i want to change a PO, the material short description field should be grey out after the material is entered in the item level.
    Can anybody suggest me how to do screen level field greyout in ME21N/ME22N/ME23N.
    Thanks in advance,
    Esaki

    Hi,
    This query can be solved by modifying some configuration part. Your MM consultant in project can do this or you can also try this following meintioned path: Goto tcode SPRO
    SPRO>Materials Management>Purchase Order-->Define Screen layout at document level.
    In this screen layout for the mentioned transactions ME21N/ME22N/ME23N ,material short description field can be greyed out by selecting display mode for that field.
    For more clarification refer documentation against this point in SPRO.
    Hope this solves your problem.
    Regards,
    Brajvir

  • Material PO text to be only Displayed in PO

    Hi ,
    My requirement is I need to only display the Material PO text in PO .Which is copied from Material Master in PO.
    User should not be allowed to changed once it gets copied in PO.
    Thanks for inputs
    Regards
    Amar

    > User should not be allowed to changed once it gets copied in PO.
    One option you can do is to make the make the Text field in display, so that Text will get copied only from Material & will be uneditable , For making Text field as display go through T-code OLME -> Purchase Order -> Define Screen Layout at Document Level -> Do the setting for Field selection ME21N, ME22N  & NBF.

  • Material item text not appearing in PO Print Preview

    Hi experts,
    We have created a new PO type .  We have assigned it with PO text via Spro>Purchasing>Purchase Order > Message > Text for messages > define text for purchase order
    Maintained text for document header
    Maintained  text for document item
    But still in Purchase Order , the material PO text at item level , is not appearing at the time of print preview / print out.
    Please suggest .
    Regards,
    ( Rajneesh Gulati )

    If I understand correctly, you want to copy the purchase order text from the material master directly into the PO's for this material.
    I got the same problem; text appears in PO item text, but doesn't appear on print preview.
    => check your forms first
    => if you can't find an error here, check the copying control in
    SPRO -> Materials Management -> Purchasing -> Purchase Order -> Texts for purchase orders -> Define copying rules for item texts
    go to the text linkages of the text type that you want to see appearing
    => make sure that the entries with source object 'material master' have the Fix value (blank) rather than N or * (if you see the text appearing in the PO but not on the print out, this means that this setting is currently set on *)
    Hope this helps

  • ABAP runtime error while doing ME21N, ME22N, ME23N, ME51N,ME52N, ME53N

    Dear All Expert,
    I am facing problem while doing ME21N, ME22N, ME23N, ME51N,ME52N, ME53N,
    Please find the below ABAP Runtime Error.
    Runtime Errors         LOAD_TYPE_VERSION_MISMATCH
    Date and Time          10.02.2011 11:13:07
    Short text
         Change of a Dictionary structure at runtime of a program.
    What happened?
         Runtime error
         The current ABAP program "CL_IM_WRF_MM_PROC_PO==========CP" had to be
          terminated because one
         of the statements could not be executed at runtime.
    What can you do?
         Restart the program.
         If the error persists, contact your SAP administrator.
         You can use the ABAP dump analysis transaction ST22 to view and manage
         termination messages, in particular for long term reference.
    Error analysis
         The ABAP runtime system detected that the Dictionary-type "WRF_POHF_KOMP_STY"
          changed
         during the flow of the transaction.
         As the type was already used in the old version
         and in the new type should be used in the same transaction in the new
          version, the transaction had to be cancelled to avoid inconsistencies.
    How to correct the error
        Try to restart the program.
    System environment
        SAP-Release 700
        Application server... "iqe"
        Network address...... "172.25.0.85"
        Operating system..... "Linux"
        Release.............. "2.6.9-55.ELsmp"
        Hardware type........ "x86_64"
        Character length.... 16 Bits
        Pointer length....... 64 Bits
        Work process number.. 0
        Shortdump setting.... "full"
        Database server... "iqe"
        Database type..... "ORACLE"
        Database name..... "IQE"
        Database user ID.. "SAPSR3"
        Terminal................. "MUMJML5727"
        Char.set.... "C"
        SAP kernel....... 700
        created (date)... "Dec 26 2010 20:17:07"
        create on........ "Linux GNU SLES-9 x86_64 cc3.3.3"
        Database version. "OCI_102 (10.2.0.2.0) "
    Patch level. 285
    Patch text.. " "
    Database............. "ORACLE 10.1.0.., ORACLE 10.2.0.., ORACLE 11.2...*"
    SAP database version. 700
    Operating system..... "Linux 2.6"
    Memory consumption
    Roll.... 16192
    EM...... 25139088
    Heap.... 0
    Page.... 40960
    MM Used. 8038136
    MM Free. 4528408
    User and Transaction
    Client.............. 600
    User................ "JKMM"
    Language key........ "E"
    Transaction......... " "
    Transactions ID..... "4D524AD1FD7A42F9E1000000AC190055"
    Program............. "CL_IM_WRF_MM_PROC_PO==========CP"
    Screen.............. " "
    Screen line......... " "
    Information on where terminated
        The termination occurred during generation of the ABAP/4 program
         "CL_IM_WRF_MM_PROC_PO==========CP".
        The termination occurred in line 213
        of the source code of program "CL_IM_WRF_MM_PROC_PO==========CM007" (when
         calling the editor 2130).
    Source Code Extract
    Line  SourceCde
      183   DATA: l_flag TYPE wrf_pbas_boolean.
      184
      185   CALL FUNCTION 'WRF_POHF_MSG_READ_PREVIEW_FLAG'
      186     IMPORTING
      187       e_preview_flag = l_flag.
      188
      189   IF NOT l_flag IS INITIAL.
      190
      191     DATA: l_header TYPE REF TO cl_po_header_handle_mm.
      192
      193     MOVE im_header ?TO l_header.
      194
      195     CALL METHOD l_header->if_output_mm~preview( ).
      196
      197     CALL FUNCTION 'WRF_POHF_MSG_RESET_PREV_FLAG'.
      198
      199 ***$ Widening Cast for printing information.
      200 **    CALL FUNCTION 'WRF_POHF_STORE_PRINT_INFO_SET'
      201 **      EXPORTING
      202 **        im_header = l_header.
      203
      204 * Printing Preview
      205 * IF NOT gv_preview IS INITIAL.
      206 *    CALL METHOD l_header->if_output_mm~overview( ).
      207 *    CALL METHOD l_header->if_output_mm~preview( ).
      208 * clear gv_preview.
      209   ENDIF.
      210
      211 *  ENDIF.
      212
    >>>>> ENDMETHOD.
    Internal notes
        The termination was triggered in function "ab_RxDdicStruShareFailed"
        of the SAP kernel, in line 2539 of the module
         "//bas/700_REL/src/krn/runt/abtypload.c#11".
        The internal operation just processed is " ".
        Internal mode was started at 20110210111306.
        Name of the changed type......: "WRF_POHF_KOMP_STY"
        New version of the type.......: 20070508193207
        Old version of the type.......: 20070508193207
        New user......................: "Type" "WRF_POHF_KOMP_STY"
        Version of the new user.......: 20070508193207
        Old user......................: "???" "???"
        Version of the old user.......: "???"
    Active Calls in SAP Kernel
    Lines of C Stack in Kernel (Structure Differs on Each Platform)
    (CTrcStack2+0x78)[0x6cbb78]
    (CTrcStack+0xb)[0x6cc17b]
    (ab_rabax+0x3be5)[0xb8d985]
    (_Z24ab_RxDdicStruShareFailedPKtm4RUDIS0_S1_S0_+0x163)[0xb16823]
    (_Z19ab_GetDdicTypeIndexPKtm4RUDI+0x1f6)[0xb0dbb6]
    (_Z11ab_LoadViewPtjPKtPK11PROGRAMHEADPj+0x27e)[0xb16ede]
    (_Z18ab_GetDdicTypeLoad4RUDI+0x6e)[0xb1705e]
    (ab_GetView+0xc1d)[0xb0ee1d]
    (_Z20CompressInitRcByDatajPK6CG_DIRjjS1_jj4RUDIPKhj+0x60d)[0xe32b2d]
    (_Z21cg_CompressStackFrameP4TRIGjj+0x169)[0xe33399]
    (_Z8cg_blkleP3ENV+0x75f)[0xe4779f]
    (_Z9sc_cblklePKt8ENV_KINDP7SC_INFO+0x394)[0xe90024]
    (sc_blkle+0xdd)[0xec6e4d]
    (rs_oper_abap1729+0x37)[0x10eb237]
    (rs_expan_abap+0xa1996)[0xfd7a2a]
    (_Z8sc_expanj+0x76d)[0xe1d55d]
    (_Z5parsejPi+0x258)[0xe19998]
    (sc_check+0xb9c)[0xe1857c]
    (sc_inclu+0x5fa)[0xe0d50a]
    (rs_oper_abap2160+0x3a)[0x1115d6a]
    (rs_expan_abap+0xcd41d)[0x10034b1]
    (_Z8sc_expanj+0x76d)[0xe1d55d]
    (_Z5parsejPi+0x258)[0xe19998]
    (sc_check+0xb9c)[0xe1857c]
    (sc_checkStart+0x41)[0xe1ac51]
    (cg_generate+0xb65)[0xe57755]
    (ab_gabap+0x14a)[0xb01a5a]
    (dy_gen_abap+0x63c)[0x74428c]
    (ab_genprog+0x13d3)[0xb03d13]
    (_Z17ab_LoadProgOrTrfoPKtjPj+0xb56)[0x8f9ab6]
    (_Z11ab_LoadProgPKtj+0x11)[0x8f9ca1]
    (_Z15LoadGlobalClassPKtjjj9ClasState+0x24c)[0x958c2c]
    (_Z11FillCfixIntPK4CREFP4CFIXjj9ClasState+0x214)[0x957404]
    (_Z11ab_FillCfixtj+0x65)[0x957ae5]
    (_Z26ab_CrefToCladId_ActivateOKtPh+0x7d)[0x957b6d]
    (_Z8ab_jaboov+0x623)[0x959793]
    (_Z8ab_extriv+0x607)[0x8ba9c7]
    (_Z9ab_xeventPKt+0x1c1)[0xa1c021]
    (_Z8ab_triggv+0x9c)[0xa1c77c]
    (ab_run+0x97)[0xbde5c7]
    (N_ab_run+0x9)[0x736359]
    (dynpmcal+0x669)[0x7333b9]
    (dynppai0+0x8eb)[0x734d9b]
    (dynprctl+0x3e9)[0x733db9]
    (dynpen00+0x4a5)[0x726eb5]
    (Thdynpen00+0x359)[0x541bd9]
    (TskhLoop+0xc49)[0x54d999]
    (ThStart+0x20f)[0x55b29f]
    (DpMain+0x2da)[0x4bd49a]
    (nlsui_main+0x9)[0x4910c9]
    (main+0x33)[0x491103]
    /lib64/tls/libc.so.6(__libc_start_main+0xdb)[0x3cde51c3fb]
    Please help me to resolve the issue.
    Thanks & Regards
    SKK

    read this part again:  The ABAP runtime system detected that the Dictionary-type "WRF_POHF_KOMP_STY" changed during the flow of the transaction. As the type was already used in the old version and in the new type should be used in the same transaction in the new version, the transaction had to be cancelled to avoid inconsistencies. How to correct the error Try to restart the program
    how often had you restarted ME21N before you posted this message?
    In best case this message appears only once, because the program / or dictionary was changed while you executed ME21N
    If many times, then contact your ABAPer, because then he probably did not transport all objects that were changed, or the objects have to be regenerated in your system.

  • Dump While Executing ME21N, ME22N and ME23N

    Hi,
    Am getting the below Short Dump while executing ME21N, ME22N and ME23N.
    Runtime Errors         SYNTAX_ERROR
    Date and Time          08.07.2009 15:41:00
    |Short text                                                                               
    Syntax error in program "ME_PROCESS_PO_CUST============CP ".
    |What happened?                                                                               
    |    Error in the ABAP Application Program                                                                               
    |                                                                               
    |    The current ABAP program "CL_EX_ME_PROCESS_PO_CUST======CP" had to be                     
    |     terminated because it has                                                                               
    |    come across a statement that unfortunately cannot be executed.                                                  
    |                                                                               
    |    The following syntax error occurred in program                                                                             
    |     "ME_PROCESS_PO_CUST============CP " in include                                                                 
    |     "ME_PROCESS_PO_CUST============CM000 " in                                                                      
    |    line 14:                                                                               
    |    "The specified type cannot be converted into the target variables."                         
    |    " "                                                                               
    |    " "                                                                               
    |    " "                                                                               
    |                                                                               
    |    The include has been created and last changed by:                                           
    |    Created by: "SILABAP "                                                                      
    |    Last changed by: "SILABAP "                                                                 
    |    Error in the ABAP Application Program                                                        
    |                                                                               
    |    The current ABAP program "CL_EX_ME_PROCESS_PO_CUST======CP" had to be                     
    |     terminated because it has                                                                   
    |    come across a statement that unfortunately cannot be executed.                               
    |Error analysis                                                                               
    |    The following syntax error was found in the program                                          
    |     ME_PROCESS_PO_CUST============CP :                                                          
    |    "The specified type cannot be converted into the target variables."                          
    |    " "                                                                               
    |    " "                                                                               
    |    " "                                                                               
    |Trigger Location of Runtime Error                                                                
    |    Program                                 CL_EX_ME_PROCESS_PO_CUST======CP                     
    |    Include                                 CL_EX_ME_PROCESS_PO_CUST======CM001                  
    |    Row                                     1                                                    
    |    Module type                             (METHOD)                                             
    Module Name                             IF_EX_ME_PROCESS_PO_CUST~INITIALIZE
    |Source Code Extract                                                                               
    |Line |SourceCde                                                                               
    |>>>>>|method IF_EX_ME_PROCESS_PO_CUST~INITIALIZE.                                                
    |    2|  CLASS CL_EXIT_MASTER DEFINITION LOAD.                                                    
    3
    |    4|  DATA l_badi TYPE REF TO ME_PROCESS_PO_CUST.                                              
    5
    6
    7
    8
    9
    |   10|  TRY.                                                                               
    11
    |   12|    GET BADI l_badi                                                                        
    |   13|     CONTEXT me.                                                                           
    14
    |   15|    CALL BADI l_badi->INITIALIZE                                                           
    |   16|.                                                                               
    17
    18
    19
    |   20|    CATCH CX_BADI_NOT_IMPLEMENTED CX_BADI_INITIAL_REFERENCE.                               
    Please let me know is there any OSS note to resolve the Issue.
    Thanks,
    Subas

    Hi,
    when I try to do the same in my system SAP gives me an information message as follows:-
    Changes to transported Business Add-In definitions are incompatible
    Message no. ENHANCEMENT236
    Diagnosis
    This business add-in definition has already been transported. Subsequent changes could invalidate existing business add-in implementations.
    System Response
    The runtime behaviour is no longer predictable. Syntax errors or short dumps may occur.
    Procedure
    If possible, do not make these changes. Alternatively, create a new business add-in definition incorporating the changes and use it, along with the existing definition.
    It clearly indicates that the BADI definition should not be changed if active implementations already exists.
    I am really now not sure how to solve your issue.
    Try deactiviting the standard BADI implementation.
    Then again add the filter and then remove it.
    And then try activating the BADI implementation once again.
    Regards,
    Ankur Parab

  • Add new column in ITEM data of ME21N/ME22N/ME23N

    Hi Experts,
    We have a requirement to add a custom field in ITEM data of transactions ME21N, ME22N and ME23N. A new column is required that would appear as checkbox. We have already tried screen exit MM06E005 but it is adding a new tab and the new field under the ITEM DETAIL data. We have also read that BADI ME_GUI_PO_CUST would do the job but it will be under the ITEM DETAIL as well.
    <<text removed>>
    Thanks
    Edited by: Matt on Mar 9, 2009 11:06 AM - expressions of urgency can be perceived as rudeness

    Hi,
        If you want to make the new field to appear as check box...Go to the screen layout from its module pool program --> right click on that field and Convert it to Check Box. This would help you.
    Regards,
    Swapna.

  • Batch creation through ME21N, ME22N and MSC1N

    Hi All,
    Please note we are already using EXIT_SAPLV01Z_001, EXIT_SAPLV01Z_002, EXIT_SAPLV01Z_003, EXIT_SAPLCLFM_002, EXIT_SAPLV01Z_012, EXIT_SAPLV01Z_014 for Batch creation based on different logics for Material type, Plant and PO doc type and currently using these exits for logic it allows us to create new internal batch number during PO creation (ii) change already existing batch with some new number (of couse this number must not be used in some other PO) in PO change and (iii) create new internal batch number using MSC1N, by inputing plant, stor. loc etc. But currently i can create batch with 1 digit, 2 digit, and so on.
    The requirement is to allow user to create batches only with 10 digits during:
    (i)PO creation (ME21N)and PO change(ME22N) and also during
    (ii) transaction MSC1N
    currently in all three ME21N, ME22N or MSC1N it allows to create batch with 1 digit, 2 digit,3 digit and so on . i want to create batch with only 10 digit.
    Please tell this is possible through configuration steps or some changes are required to be done in above said user exit.
    Regards
    Rahul Shukla

    Hi Jurgen,
    Thanks for your reply.
    In ME21N i am able to assign batch in PO
    (1) By clicking on 'create' button appearing just side of Batch field in item Tab "Material". I think this create button is appearing due to user exit being applied here. Here it creates and assigns internal number automatically (from range 01in Batch_Clt) based on the Material type and Plant combination (Some logic defined in user exit)
    (2) By putting any random number manually (both numeric and alphanumeric)whether 1 digit, 2 digit,3 digit in Batch field in item Tab "Material" it will accept and in this case also po is saved.
    same way i can do changes in batch number in ME22N and able to save.
    In MSC1N also due to user exit applied if i give Material number alone  and enter, it assignes the internal batch number based on Material type and plant logic defined in user exit.here also if i input some random number manually in batch field it accepts and that random batch number is created for material.
    Now i want that i should be able to put random batch number manually but that number must be out of the number ranges defined in Batch_CLT object (Also the number must be exact 10 digits length as is there in defined number ranges) and not any random alphanumeric number . Also i am not able to understand how it is accepting random alphanumeric number (like ABC111)although all number ranges defined are numeric only.Also external number range is 0008000001 - 0089999999 which is numeric only.
    Regards
    Rahul

  • Incorrect characters in material PO text after upgrade

    Hi there,
    We have just upgraded from 4.6c to ECC 6.0 and have a problem with invalid characters on material PO text.
    On the material master there is a long text description with the character "-". in ECC 6.0, these have been replaced with the character "?" or "#". Also, there are entries such as "&#13;" and "&#10;&#13;&#10;&#13;" included at the end of lines.
    If you manually change the text via MM02, there is no problem, it saves the correct character.
    Does anyone have any ideas what may be causing this?
    thanks
    Donal

    Check the config in Materials Management --> Purchasing --> Purch Req --> Texts for Purch Reqs --> Define copying rules.
    For your text, see the linkage with Material PO text. The fix indicator will be N. This means you cannot change it in PR. Change the config setting to blank and you will be able to change it in PR.
    Hope this resolves,
    Lakshman

  • SOLUTION: tab not showing in ME21N/ME22N with badi ME_GUI_PO_CUST

    Hi,
    I implemented BADI's ME_GUI_PO_CUST and ME_PROCESS_PO_CUST to show a custom tab in the header section of ME21N, ME22N and ME23N.
    But after implementing the BADI's, the tab showed up in ME23N, but not in ME21N and ME22N.
    So I started looking for a solution in the SDN forum, and I saw that there were a LOT of people with the same problem, but nobody ever posted a solution.
    So here is the solution:
    So, I added the fields I wanted to show in the structure CI_EKKODB, implemented the BADI ME_GUI_PO_CUST (the methods SUBSCRIBE and MAP_DYNPRO_FIELDS), and the BADI ME_PROCESS_PO_CUST.
    After that the tab showed up in ME23N, not in ME21N or ME22N.
    So I found an SAP note saying the following:
    Question:
    I implemented the 'ME_GUI_PO_CUST' Business Add-In to display customer-
    specific tab titles in the EnjoySAP purchase order. They are only shown in display mode (ME23N) however, not in create or change. Why?
    Solution:
    You may have forgotten to assign a field status to the user-defined fields on these tabs. As a result, the system automatically interprets the field status as 'hidden' in create and change modes. However if a tab contains only hidden fields, then the entire tab is set to hidden. In display mode, fields without a field status are automatically set to display. That is why the tab is displayed in this case.
    To assign a field status to the user-defined fields, use the methods provided for this purpose in the Business Add-In 'ME_PROCESS_PO_CUST' (compare sample source code in the FIELDSELECTION_ITEM method).
    So in my case, I had to add some code to the  FIELDSELECTION_HEADER method of the BADI ME_PROCESS_PO_CUST.
    This is the code:
    method IF_EX_ME_PROCESS_PO_CUST~FIELDSELECTION_HEADER.
      DATA: l_persistent TYPE mmpur_bool.
      FIELD-SYMBOLS: <fs> LIKE LINE OF ch_fieldselection.
    * if the item is already on the database, we disallow to change field badi_bsgru
      l_persistent = im_header->is_persistent( ).
    *   IF l_persistent EQ mmpur_yes.
        READ TABLE ch_fieldselection ASSIGNING <fs> WITH TABLE KEY metafield = mmmfd_cust_01.
        IF sy-subrc IS INITIAL.
          <fs>-fieldstatus = '*'. " Input
        ENDIF.
    *   ENDIF.
    endmethod.
    But then, I realized that this BADI was never triggered. When I entered one of the transaction codes ME21N, ME22N or ME23N, the code in the fieldselection_header method was never executed.
    So I went to transaction SE18, and entered ME_PROCESS_PO_CUST in 'Enhancement Spot' and pushed the button display.
    And there in the tab 'Enhancement Implementations', I saw an implementation that was not mine, and that did not show up in the overview of the SE18 'BADI NAME' tab for the same BADI... which to me seems strange.
    So as you may know, there can never be more than one active implementation of the BADI ME_PROCESS_PO_CUST.
    So I disactivated my implementation and put my code in the existing implementation.
    And after that it worked!

    implement first badi :ZME_GUI_PO_CUST:
    METHOD if_ex_me_gui_po_cust~subscribe.
    DATA: ls_subscriber LIKE LINE OF re_subscribers.
    * we want to add a customer subscreen on the item detail tab
       CHECK im_application = 'PO'.
       CHECK im_element     = 'HEADER'.
    * each line in re_subscribers generates a subscreen. We add one subscreen in this example
       CLEAR re_subscribers[].
    * the name is a unique identifier for the subscreen and defined in this class definition
       ls_subscriber-name = subscreen1.
    * the dynpro number to use
       ls_subscriber-dynpro = '0001'.
    * the program where the dynpro can be found
       ls_subscriber-program = 'SAPLMEPOBADIEX'.
    * each subscreen needs his own DDIC-Structure
       ls_subscriber-struct_name = 'MEPO_BADI_STRUCT'.
    * a label can be defined
       ls_subscriber-label = text-001.
    * the position within the tabstrib can be defined
       ls_subscriber-position = 4.
    * the height of the screen can be defined here. Currently we suport two screen sizes:
    * value <= 7 a sevel line subscreen
    * value > 7  a 16 line subscreen
       ls_subscriber-height = 7.
       APPEND ls_subscriber TO re_subscribers.
    ENDMETHOD.
    implement 2nd badi : ZME_PROCESS_PO_CUST:
    method IF_EX_ME_PROCESS_PO_CUST~FIELDSELECTION_HEADER.
       DATA: l_persistent TYPE mmpur_bool.
       FIELD-SYMBOLS: <fs> LIKE LINE OF ch_fieldselection.
    * if the item is already on the database, we disallow to change field badi_bsgru
       l_persistent = im_header->is_persistent( ).
    *   IF l_persistent EQ mmpur_yes.
         READ TABLE ch_fieldselection ASSIGNING <fs> WITH TABLE KEY metafield = mmmfd_cust_01.
         IF sy-subrc IS INITIAL.
           <fs>-fieldstatus = '*'. " Input
         ENDIF.
    *   ENDIF.
    endmethod.

Maybe you are looking for