MRP - VB type deletes already created purchase orders

Dears,
Recently sth happened with MRP planning for materials with VB (reorder point) type at my client.
If stock is below reorder point MRP generates  requisition correctly. But when requisition is converted to purchase order and delivery date is changed (+ few days) a new MRP run suggests to delete such purchase order and creates new requisition with delivery day = today.
1st clue I had was to check  planning horizon period in SPRO but it's 30 days so any purchase orders within this period created with reference to MRP requisitions should be "visible" for MRP. 
Planning mode is standard (adapt).
Do you have any idea what could happen?
Regards,
Marcin

Hi Amit,
I've checked this. VB type seems to be unchanged - SAP standard settings. As far as I know there are 4 factors that have influence on reorder point planning:
1. Material mater data - MRP type and reorder point level
2. MRP type settings - VB in this case is a SAP standard
3. Config - planning horizon (in this case long enough to cover diffrences in delivery dates between PREQ and PO dates)
4. Planning parameters:
Processing key          NETCH       
Create purchase req.    1           
Delivery schedules      3           
Create MRP list         1           
Planning mode           1    (adopt - normal mode)       
Scheduling              1           
Parameters seems to be correct but system still recreates PREQs and wants to delete POs...This is very odd behaviur. I'll try to find sth in OSS.
Hope You'll have any idea.
Thanks,
Marcin

Similar Messages

  • How to trigger workflow for already created purchase order ?

    HELLO EXPERTS
    let me clear my scenario first . i have 1 purchase order whose workflow is not triggered . means it is showing me message no workflow that have already worked for this object.i have created 1 more purchase order taking reference of this purchase order means both are same same message for this po also. it was happening because event linkage for the business object bus2012 is not activated but now it is enabled and i have created third purchase order with reference to above po means this third po is also same as above 2 no change other than po number but for this workdflow is getting triggered . now i want to trigger workflow for orignal first po but for my first po it is showing me same message that no workflow that have already worked for this object. what i have to do to trigger workflow for this po. i have performed this steps in test system. i have workflow number

    Hello !
          You can trigger the workflow from SWUE.Enter bus2012 and created for object type and event respectively.
          Click object key button where enter the purchase order number which have been already created.
          But, why do you want to trigger the workflow again for already created purchase order ?
    Regards,
    S.Suresh

  • Deleated Valuation Type --Need Error Message while creating Purchase Order

    Hi,
    In our scenario , i need a message should flash , if enduser by mistake select the deleated valuation type while creating Purchase Order.
    In current configuration , it's not there.
    Await your expert opinion.
    Regards
    Shyam Kogta

    I investigated this recently in our company and gave this answer:
    A deletion flag does not restrict anything. It is just an indicator to tell SAP that you want this record to be deleted with the next archiving run.
    The archiving run then checks if a deletion is possible or not.
    So you can set such deletion flags long time in advance, even at a moment where you still have inventory.
    To block materials from beeing used in business transactions, usually the material and sales status are used. But these statuses can only be set at overall, plant and sales organisation level.  
    In some transactions SAP issues warning messages if a material has a deletion flag. This messages could be customized to be an error and prevent any business. However, this type of restriction is not designed for our machine, as we use the material and sales status.
    Anyhow, there is no message for valuation types that have a deletion flag in procurement area.
    There is one for goods receipts (but only for a certain industry solution that is not used by us)
    There is one for deliveries ( VL 211 ).
    The valuation types are defaulted from customizing to the transaction e.g. purchase order. Or from info record to the PO. So a standard purchase order gets valuation type  ABC , while an internal order (production) gets the DEF.  Usually there should not be a need to change this valuation type manually.
    So the only solution is to archive the material master at valuation type level.
    But I guess, you already have POs with that wrong valuation type, which means you have to archive the POs first. It you have already batches with wrong valuation type, then thy have to be archived as well before a material can be archived.
    And finally if you had stock in current year, then you can archive your material in year after next year, as SAP archives only materials that have no stock in current and previous year.

  • How to create a Inbound delivery type for a special  purchase order type

    Hi,
    I try to create a special Inbound delivery type for a special purchase order type (a transfer purchase order).
    In SD module, I can créate a special outbound delivery and precise the sale order type, but I don't manage to do it for a Inbound delivery type.
    Do you know if i can do it without specifiq?
    Regards,
    Roselyne

    Hi Roselyne,
    What you experienced is standard system behavior. Inbound delivery type is uniquely assigned to confirmation control key. You can only specify confirmation control key on item level in PO. The assignment of Delivery type can be seen in the following table:
    T163D
    IBTYP EBTYP LFART  RETDLV
    1        AB                      X
    2        LA        EL           X
    3        GW       EG
    The field T163D-IBTYP is checked in different programms. For example in programm RM06ENAB (TA: ME92F). If you insist to customize the determination of delivery type by PO type, I strongly suggest you discuss with the Application consultants before making the modifications to ensure it won't impact other areas.

  • MRP automatic create Purchase Order ?

    Is anybody knows can MRP create Purchase Order directly skip P.R ?
    Thanks !

    Hi,
    This is possible through PR only.
    Tick the automatic PO and Source List fields in purchase view of the material master for the vendors on whom you would like to release PO automatically. Create a purchase info record. Create source list. In the last column in the details screen of the source list check the field relevant for MRP set the correct parameters for running MRP. But PO can not be created automatically after MRP run.
    The automatic PO creation flag enables you to run a batch job that will convert all selected Purchase Requisitions to be converted Purchase Orders in the background.
    You may consider scheduling agreements if you want MRP to kick out Purchase Orders. Set the flag in the source list for the scheduling agreement to "2" enabling MRP to kick out delivery schedules for future requirements. If you want to fix the schedule within a certain period you have two options.
    1. Using firm zone - firms all orders within this period . Refer additional data screen of the scheduling agreement at the vendor material level.
    2. Planning time - all new orders outside of the planning time fence - refer MRP 1 view of the material master
    Above document i cpied from link <b>Arif Mansuri  <b>New to Materials Management / Warehouse Management?</b></b>
    Raghu

  • I need output type NEU automaticaly for create purchase order document type

    Dear Experts,
    I need output type NEU automaticaly for create purchase order document type NB
    when transaction code MN04, I am doing the following:
    (1) I selected the third option Purchasing Output determination: Document type
    (2) I selected the output type NEU.
    (3) In condition records in document type , i have chosen NB.
    (4) In name its automatically coming as Purchase requisition
    Please suggest how Purchase Order NB will come

    Hi,
    Check & press F4, NB Purchase Order (for catagory F) will be there after entering PO output type NEU & then maintaion the condition record in MN04.
    Output type NEU automaticaly defaulted during purchase order creation with document type ,then just fine tune the output (message) type in following path:
    SPRO--->MM->Purchasing>Message>Output control->Message types> Define message type for Purchase Order----->Fine-Tuned Control: Purchase Order
    Now here select the check box corresponding to your output(message) type NEU to have print output automatically displayed & save.
    Now try to creating Purchase Order & you will have default message type NEU.
    Regards,
    Biju K

  • 'User already processing Purchase order' error while creating multiple SES

    Hi Experts,
    Error 'User XXX already processing Purchase order XXX' is thrown while creating multiple service entry sheets using FM 'MS_CREATE_SERVICE_ENTRY_MULTI'.
    This error is not occurred for every entry sheet.Its occurring randomly for few records.
    Kindly help me out to solve this issue...
    Thanks in Advance...
    Edited by: saibandar on Mar 1, 2012 8:09 AM
    Edited by: saibandar on Mar 1, 2012 9:51 AM

    u have to call like this
    <b>call dequeue_all</b>
    after the COMMIT work.
    if i_return[] is initial.
    commit work and wait.
    call function 'DEQUEUE_ALL'.
    Regards
    Prabhu

  • Procure-to-Pay Scenario. Create Purchase Order

    Hello Experts: I have a question regarding the Procure-to-Pay scenario and the Create PO functionality.
    we are in SRM 7.0, Classic Scenario and we try to implement the Procure-to-Pay functionality as it is described in OSS note 1263876 "SAP SRM: Configuration of Procure-to-Pay Scenario".
    Our idea is to transfer Purchase Requisitions from ECC6 to SRM using the CPPR application. But we will also take advantage of the integration with MM provided with this scenario.
    If you are familiar with this, you will already know that, using the harmonized role for operational purchaser (ERP/SRM) an end user can create Purchase Orders in the backend. Our question is related to this functionality.
    Using this role, the buyer can select Purchasing Documents under the detailed navigation area and, from there, he will have access to create Shopping carts, Purchase requisitions, Purchase Orders and Purchase order responses.
    If we select Create Purchase Order, the application "Purchase Order: New" gets opened. Here we have to select the system where we want to create the new PO: either SRM or ECC6. Our first question is: As we are running a Classic scenario, why are we asked to select between SRM and ECC6?. It should be only ECC6, shouldn't be?
    In any case, the SRM systems gets selected by default when we open "Purchase Order: New" appl. and bellow this field, you can see the PO types customized in SRM. If we change the system to ECC6 we see the following: "Number of purchase order types: 0" . So, no PO types are available. this is the second question: why do we have 0 PO types to be created when we select the ECC6 system? is there a missing customizing where we have to define which document types are vaialable to create POs in ECC6 from SRM Portal?.
    To summarize: only ECC6 should be proposed as system to create POs (as we are running a Classic Scenario) and there should be ECC6 PO types available to create such POs in the ECC6.
    Can you please tell us what is still missing in our configuration? Any help will be more than welcome
    Many thanks in advance for your valuable help
    Best regards
    Valentí

    The purpose of MRP run is to make sure that you always have enough stock.
    An order to cost center will not increase stock.
    Means: MRP is not able to create requisitions for cost center consumption. If you change a requisition created by MRP to be ordered to a cost center, then the next MRP run will create a new requisition to stock.

  • Update was terminated while creating purchase order from ME21N

    Hi Experts,
    We are getting this dump when try to create purchase order from ME21N;
    Our system ECC 6.0 and IS-AFS (Apparel & Footwear Solution) V600 component has installed,
    How can we prevent this error,
    Regards
    Here is the dump and sm21 log,
    Runtime Errors         LOAD_PROGRAM_NOT_FOUND
    Exception              CX_SY_PROGRAM_NOT_FOUND
    Date and Time          10.10.2008 10:22:03
    Short text
         Program "RMCMS431 " not found.
    What happened?
         There are several possibilities:
         Error in the ABAP Application Program
         The current ABAP program "SAPLMCS4" had to be terminated because it has
         come across a statement that unfortunately cannot be executed.
         or
         Error in the SAP kernel.
         The current ABAP "SAPLMCS4" program had to be terminated because the
         ABAP processor detected an internal system error.
    What can you do?
         Note down which actions and inputs caused the error.
         To process the problem further, contact you SAP system
         administrator.
        Using Transaction ST22 for ABAP Dump Analysis, you can look
        at and manage termination messages, and you can also
        keep them for a long time.
    Error analysis
        An exception occurred that is explained in detail below.
        The exception, which is assigned to class 'CX_SY_PROGRAM_NOT_FOUND', was not
         caught in
        procedure "TMC2F_FROUT_CALL" "(FORM)", nor was it propagated by a RAISING
         clause.
        Since the caller of the procedure could not have anticipated that the
        exception would occur, the current program is terminated.
        The reason for the exception is:
        On account of a branch in the program
        (CALL FUNCTION/DIALOG, external PERFORM, SUBMIT)
        or a transaction call, another ABAP/4 program
        is to be loaded, namely "RMCMS431 ".
        However, program "RMCMS431 " does not exist in the library.
        Possible reasons:
        a) Wrong program name specified in an external PERFORM or
           SUBMIT or, when defining a new transaction, a new
           dialog module or a new function module.
        b) Transport error
    How to correct the error
        Check the last transports to the R/3 System.
        Are changes currently being made to the program "SAPLMCS4"?
        Has the correct program been entered in table TSTC for Transaction "ME21N "?
        If the error occures in a non-modified SAP program, you may be able to
        find an interim solution in an SAP Note.
        If you have access to SAP Notes, carry out a search with the following
        keywords:
        "LOAD_PROGRAM_NOT_FOUND" "CX_SY_PROGRAM_NOT_FOUND"
        "SAPLMCS4" or "LMCS4F10"
        "TMC2F_FROUT_CALL"
        If you cannot solve the problem yourself and want to send an error
        notification to SAP, include the following information:
        1. The description of the current problem (short dump)
           To save the description, choose "System->List->Save->Local File
        (Unconverted)".
        2. Corresponding system log
           Display the system log by calling transaction SM21.
           Restrict the time interval to 10 minutes before and five minutes
        after the short dump. Then choose "System->List->Save->Local File
        (Unconverted)".
        3. If the problem occurs in a problem of your own or a modified SAP
        program: The source code of the program
           In the editor, choose "Utilities->More
        Utilities->Upload/Download->Download".
        4. Details about the conditions under which the error occurred or which
        actions and input led to the error.
        The exception must either be prevented, caught within proedure
        "TMC2F_FROUT_CALL" "(FORM)", or its possible occurrence must be declared in the
        RAISING clause of the procedure.
        To prevent the exception, note the following:
    sm21 log ;
    Transaction Canceled 00 671 ( LOAD_PROGRAM_NOT_FOUND 20081010102203saptest_TET_00 EYUCE 100
    Update terminated
    > Update key: F39796DD5421F1509233001E0BD601E0
    > Update module: MCE_STATISTICS_UPD_V2
    Run-time error "LOAD_PROGRAM_NOT_FOUND" occurred

    Please follow the oss note 800335
    V2 Update terminations in Purchasing transactions after upgrading or installing AFS 5.0 release.
    Other terms
    AFS, LIS, MIGO, ME22N, OLI3, S433, S431
    Reason and Prerequisites
    AFS Purchasing infostructure S431 is no longer used. S433 is the valid infostructure for the release AFS 5.0.
    Solution
    Please do the following.
    For customers upgrading to AFS 5.0 only:
    > Rebuild Infostructure S433.
    - Goto transaction: OLI3 (Statistical Set up of Infostructures)
    - Info structure to be compile: S433
    - Specify the 'Name of run'.
    - Execute.
    > Please also follow the instructions given below.
    For both Upgrade and Non-upgrade Customers:
    > Create the report 'ZDELS431'.
    - Transaction: SE38
    - Give Program name as ZDELS431.
    - Create (F5).
    - Title : 'Program to delete S431'.
    - Type  : 1 (Executable Program).
    - Status: T (Test Program).
    > Copy the program text from the note and paste in the program.
    > Save and activate the program.
    > Execute the report for all clients in Update mode.
      (Two check-boxes will appear: P_ALL_CL, P_UPDATE.
       Please check both of them).
    This report will delete all the references to infostructure S431.

  • HOW TO CREATE PURCHASE ORDER USING BAPI

    HI FRIENDS,
    I HAVE URGENT REQUIREMNT ,TO CREATE PURCHASE ORDER USING BAPI.PLS HELP ON THIS.
    UR'S
    RAVI

    Hi
    See the sample code and do accordingly
    REPORT zpo_bapi_purchord_tej.
    DATA DECLARATIONS *
    TYPE-POOLS slis.
    TYPES: BEGIN OF ty_table,
    v_legacy(8),
    vendor TYPE bapimepoheader-vendor,
    purch_org TYPE bapimepoheader-purch_org,
    pur_group TYPE bapimepoheader-pur_group,
    material TYPE bapimepoitem-material,
    quantity(13),
    delivery_date TYPE bapimeposchedule-delivery_date,
    net_price(23),
    plant TYPE bapimepoitem-plant,
    END OF ty_table.
    TYPES: BEGIN OF ty_alv,
    v_legs(8),
    success(10),
    v_legf(8),
    END OF ty_alv.
    TYPES: BEGIN OF ty_alv1,
    v_legf1(8),
    v_msg(500),
    END OF ty_alv1.
    *-----Work area declarations.
    DATA: x_table TYPE ty_table,
    x_header TYPE bapimepoheader,
    x_headerx TYPE bapimepoheaderx,
    x_item TYPE bapimepoitem,
    x_itemx TYPE bapimepoitemx,
    x_sched TYPE bapimeposchedule,
    x_schedx TYPE bapimeposchedulx,
    x_commatable(255),
    x_alv TYPE ty_alv,
    x_alv1 TYPE ty_alv1,
    x_alv2 TYPE ty_alv1.
    *-----Internal table declarations.
    DATA: it_table TYPE TABLE OF ty_table,
    it_commatable LIKE TABLE OF x_commatable,
    it_item TYPE TABLE OF bapimepoitem,
    it_itemx TYPE TABLE OF bapimepoitemx,
    it_sched TYPE TABLE OF bapimeposchedule,
    it_schedx TYPE TABLE OF bapimeposchedulx,
    it_alv TYPE TABLE OF ty_alv,
    it_alv1 TYPE TABLE OF ty_alv1,
    it_alv2 TYPE TABLE OF ty_alv1.
    DATA: po_number TYPE bapimepoheader-po_number,
    x_return TYPE bapiret2,
    it_return TYPE TABLE OF bapiret2,
    v_file TYPE string,
    v_temp(8),
    v_succsount TYPE i VALUE 0,
    v_failcount TYPE i VALUE 0,
    v_total TYPE i.
    DATA: v_temp1(5) TYPE n VALUE 0.
    DATA: x_event TYPE slis_t_event,
    x_fieldcat TYPE slis_t_fieldcat_alv,
    x_list_header TYPE slis_t_listheader,
    x_event1 LIKE LINE OF x_event,
    x_layout1 TYPE slis_layout_alv,
    x_variant1 TYPE disvariant,
    x_repid2 LIKE sy-repid.
    DATA : it_fieldcat TYPE TABLE OF slis_t_fieldcat_alv.
    SELECTION-SCREEN *
    SELECTION-SCREEN BEGIN OF BLOCK v_b1 WITH FRAME.
    *-----To fetch the flat file.
    PARAMETERS: p_file TYPE rlgrap-filename.
    SELECTION-SCREEN END OF BLOCK v_b1.
    AT SELECTION-SCREEN *
    AT SELECTION-SCREEN.
    IF p_file IS INITIAL.
    MESSAGE text-001 TYPE 'E'.
    ENDIF.
    AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
    *-----To use F4 help to find file path.
    CALL FUNCTION 'F4_FILENAME'
    EXPORTING
    program_name = syst-cprog
    dynpro_number = syst-dynnr
    IMPORTING
    file_name = p_file.
    v_file = p_file.
    START-OF-SELECTION *
    START-OF-SELECTION.
    PERFORM gui_upload.
    LOOP AT it_table INTO x_table.
    PERFORM header_details.
    v_temp = x_table-v_legacy.
    LOOP AT it_table INTO x_table WHERE v_legacy = v_temp.
    PERFORM lineitem.
    PERFORM schedule.
    ENDLOOP.
    DELETE it_table WHERE v_legacy = v_temp.
    PERFORM bapicall.
    MOVE po_number TO x_alv-success.
    APPEND x_alv TO it_alv.
    CLEAR x_alv.
    *-----To clear the item details in internal table after the operation for a header.
    REFRESH: it_item,
    it_itemx,
    it_sched,
    it_schedx.
    CLEAR: v_temp1.
    ENDLOOP.
    v_total = v_succsount + v_failcount.
    PERFORM display_alv.
    FORM GUI_UPLOAD *
    FORM gui_upload .
    CALL FUNCTION 'GUI_UPLOAD'
    EXPORTING
    filename = v_file
    filetype = 'ASC'
    TABLES
    data_tab = it_commatable
    EXCEPTIONS
    file_open_error = 1
    file_read_error = 2
    no_batch = 3
    gui_refuse_filetransfer = 4
    invalid_type = 5
    no_authority = 6
    unknown_error = 7
    bad_data_format = 8
    header_not_allowed = 9
    separator_not_allowed = 10
    header_too_long = 11
    unknown_dp_error = 12
    access_denied = 13
    dp_out_of_memory = 14
    disk_full = 15
    dp_timeout = 16
    OTHERS = 17
    IF sy-subrc = 0.
    *-----To fetch the comma seperated flat file into an internal table.
    LOOP AT it_commatable INTO x_commatable.
    IF x_commatable IS NOT INITIAL.
    SPLIT x_commatable AT ',' INTO
    x_table-v_legacy
    x_table-vendor
    x_table-purch_org
    x_table-pur_group
    x_table-material
    x_table-quantity
    x_table-delivery_date
    x_table-net_price
    x_table-plant.
    APPEND x_table TO it_table.
    ENDIF.
    CLEAR x_table.
    ENDLOOP.
    ENDIF.
    ENDFORM. " gui_upload
    FORM HEADER_DETAILS *
    FORM header_details .
    MOVE 'NB' TO x_header-doc_type.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = x_table-vendor
    IMPORTING
    output = x_table-vendor
    MOVE x_table-vendor TO x_header-vendor.
    MOVE x_table-purch_org TO x_header-purch_org.
    MOVE x_table-pur_group TO x_header-pur_group.
    x_headerx-doc_type = 'X'.
    x_headerx-vendor = 'X'.
    x_headerx-purch_org = 'X'.
    x_headerx-pur_group = 'X'.
    ENDFORM. " header_details
    FORM LINEITEM *
    FORM lineitem .
    v_temp1 = v_temp1 + 10.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = v_temp1
    IMPORTING
    output = v_temp1.
    MOVE v_temp1 TO x_item-po_item.
    CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    EXPORTING
    input = x_table-material
    IMPORTING
    output = x_table-material.
    MOVE x_table-material TO x_item-material.
    MOVE x_table-quantity TO x_item-quantity.
    MOVE x_table-net_price TO x_item-net_price.
    MOVE x_table-plant TO x_item-plant.
    x_itemx-po_item = v_temp1.
    x_itemx-material = 'X'.
    x_itemx-quantity = 'X'.
    x_itemx-net_price = 'X'.
    x_itemx-plant = 'X'.
    APPEND x_item TO it_item.
    APPEND x_itemx TO it_itemx.
    CLEAR: x_item, x_itemx.
    ENDFORM. " lineitem1
    FORM SCHEDULE *
    FORM schedule .
    MOVE x_table-delivery_date TO x_sched-delivery_date.
    MOVE v_temp1 TO x_sched-po_item.
    x_schedx-delivery_date = 'X'.
    x_schedx-po_item = v_temp1.
    APPEND x_sched TO it_sched.
    APPEND x_schedx TO it_schedx.
    CLEAR: x_sched, x_schedx.
    ENDFORM. " schedule
    FORM BAPICALL *
    FORM bapicall .
    CALL FUNCTION 'BAPI_PO_CREATE1'
    EXPORTING
    poheader = x_header
    poheaderx = x_headerx
    IMPORTING
    exppurchaseorder = po_number
    TABLES
    return = it_return
    poitem = it_item
    poitemx = it_itemx
    poschedule = it_sched
    poschedulex = it_schedx.
    IF po_number IS NOT INITIAL.
    v_succsount = v_succsount + 1.
    MOVE x_table-v_legacy TO x_alv-v_legs.
    CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'.
    ELSE.
    v_failcount = v_failcount + 1.
    MOVE x_table-v_legacy TO x_alv-v_legf.
    MOVE x_table-v_legacy TO x_alv1-v_legf1.
    LOOP AT it_return INTO x_return.
    IF x_alv1-v_msg IS INITIAL.
    MOVE x_return-message TO x_alv1-v_msg.
    ELSE.
    CONCATENATE x_alv1-v_msg x_return-message INTO x_alv1-v_msg SEPARATED BY space.
    ENDIF.
    ENDLOOP.
    APPEND x_alv1 TO it_alv1.
    CLEAR x_alv1.
    ENDIF.
    ENDFORM. " bapicall
    FORM DISPLAY_ALV *
    FORM display_alv .
    PERFORM x_list_header.
    PERFORM build_fieldcat CHANGING x_fieldcat.
    x_repid2 = sy-repid.
    x_event1-name = 'TOP_OF_PAGE'.
    x_event1-form = 'TOP_OF_PAGE'.
    APPEND x_event1 TO x_event.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = x_repid2
    is_layout = x_layout1
    it_fieldcat = x_fieldcat
    i_callback_user_command = 'USER_COMMAND'
    i_callback_top_of_page = 'TOP_OF_PAGE'
    i_save = 'A'
    is_variant = x_variant1
    it_events = x_event
    TABLES
    t_outtab = it_alv
    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_master_data
    FORM USER_COMMAND *
    FORM user_command USING ucomm LIKE sy-ucomm selfield
    TYPE slis_selfield.
    READ TABLE it_alv INTO x_alv INDEX selfield-tabindex.
    CLEAR : x_alv2,it_alv2[].
    LOOP AT it_alv1 INTO x_alv1 WHERE v_legf1 = x_alv-v_legf.
    x_alv2 = x_alv1.
    APPEND x_alv2 TO it_alv2 .
    ENDLOOP.
    DATA : it_fieldcat TYPE slis_t_fieldcat_alv.
    DATA : x3_fieldcat LIKE LINE OF it_fieldcat.
    CLEAR : x3_fieldcat,it_fieldcat[].
    CLEAR x3_fieldcat.
    x3_fieldcat-col_pos = '1'.
    x3_fieldcat-fieldname = 'V_LEGF1'.
    x3_fieldcat-reptext_ddic = text-111.
    x3_fieldcat-ref_tabname = 'IT_ALV2'.
    APPEND x3_fieldcat TO it_fieldcat.
    CLEAR x3_fieldcat.
    CLEAR x3_fieldcat.
    x3_fieldcat-col_pos = '1'.
    x3_fieldcat-fieldname = 'V_MSG'.
    x3_fieldcat-reptext_ddic = text-112.
    x3_fieldcat-ref_tabname = 'IT_ALV2'.
    APPEND x3_fieldcat TO it_fieldcat.
    CLEAR x3_fieldcat.
    x_layout1-colwidth_optimize = 'X'.
    x_layout1-zebra = 'X'.
    IF it_alv2[] IS NOT INITIAL.
    CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
    EXPORTING
    i_callback_program = x_repid2
    is_layout = x_layout1
    it_fieldcat = it_fieldcat
    i_save = 'A'
    i_callback_top_of_page = 'TOP'
    is_variant = x_variant1
    it_events = x_event
    TABLES
    t_outtab = it_alv2
    EXCEPTIONS
    program_error = 1
    OTHERS = 2.
    ENDIF.
    ENDFORM.
    FORM USER_COMMAND *
    FORM top.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = 'Commentry'.
    ENDFORM.
    FORM BUILD_FIELDCAT *
    FORM build_fieldcat CHANGING et_fieldcat TYPE slis_t_fieldcat_alv.
    DATA: x1_fieldcat TYPE slis_fieldcat_alv.
    CLEAR x1_fieldcat.
    x1_fieldcat-col_pos = '1'.
    x1_fieldcat-fieldname = 'V_LEGS'.
    x1_fieldcat-reptext_ddic = text-108.
    x1_fieldcat-ref_tabname = 'IT_ALV'.
    APPEND x1_fieldcat TO et_fieldcat.
    CLEAR x1_fieldcat.
    x1_fieldcat-col_pos = '2'.
    x1_fieldcat-fieldname = 'SUCCESS'.
    x1_fieldcat-key = 'X'.
    x1_fieldcat-reptext_ddic = text-109.
    x1_fieldcat-ref_tabname = 'IT_ALV'.
    APPEND x1_fieldcat TO et_fieldcat.
    CLEAR x1_fieldcat.
    x1_fieldcat-col_pos = '3'.
    x1_fieldcat-fieldname = 'V_LEGF'.
    x1_fieldcat-key = 'X'.
    x1_fieldcat-reptext_ddic = text-110.
    x1_fieldcat-ref_tabname = 'IT_ALV'.
    APPEND x1_fieldcat TO et_fieldcat.
    CLEAR x1_fieldcat.
    ENDFORM. " build_fieldcat
    FORM BUILD_LIST_HEADER *
    FORM x_list_header.
    DATA: x_list_header1 TYPE slis_listheader.
    *-----List Header: type H
    CLEAR x_list_header1 .
    x_list_header1-typ = 'H'.
    x_list_header1-info = text-105.
    APPEND x_list_header1 TO x_list_header.
    *-----List Key: type S
    x_list_header1-typ = 'S'.
    x_list_header1-key = text-106.
    x_list_header1-info = v_total.
    APPEND x_list_header1 TO x_list_header.
    *-----List Key: Type S
    CLEAR x_list_header1 .
    x_list_header1-typ = 'S'.
    x_list_header1-key = text-107.
    x_list_header1-info = v_succsount.
    APPEND x_list_header1 TO x_list_header.
    ENDFORM. " build_list_header
    FORM TOP_OF_PAGE *
    FORM top_of_page.
    CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
    EXPORTING
    it_list_commentary = x_list_header.
    ENDFORM. " TOP_OF_PAGE
    Reward points if useful
    Anji

  • Create purchase order from shipment cost document

    Hi Experts,
    I would like to know how a purchase order type is linked to a shipment cost document so as to create purchase orders automatically when I do transfer posting to the vendor from the shipment cost document. How system automatically finds out the PO type and creates purchase order.
    Thanks,
    Emaya

    Hi,
    Thanks. I have made all those mentioned changes already, and infact I am able to create purchase orders(PO Type NB) automatically when I do transfer posting, but I would like to know, why NB type only? why not some other purchase order types? Suppose if I create a new PO type by copying NB with new number ranges, how to link it to my shipment cost document?
    Please comment.
    Regards,Emaya
    Edited by: Emayavaramban S on Dec 11, 2008 3:06 PM
    Edited by: Emayavaramban S on Dec 11, 2008 5:12 PM

  • Change/Create purchase order with customer BSART via CIF

    Hi,
    we create Purchase Orders in SCM SNP.  Those POs are passed via CIF to R/3, but the Purchase orders should be created with a customer BSART.
    In SCM the POs currently use the standard ATPCategories. I found an exit in CIF_PO_INBOUND where you can change BSART, but at this point there is no access to the data from APO.
    Has anybody already implemented such a scenario?

    Hi Michael,
    I used CIF outbound user exit from APO , for filtering purchase requisions going to SAP R/3.
    You are creating purchase oders in SCM APO and transferring the same to SAP R/3 / ECC through CIF.
    We may have two options : Change the data before publishing to SAP R/3 from APO. This happens in APO , outbound .
    Otherwise we can change the data in the PO before it is created in SAP R/3 , for this we use user exit inbound SAP R/3.
    You have option of changing or enahancing purchase order data inbound in SAP R/3, before the PO is created in SAP R/3.
    The enhancement is CIFPUR02.
    With this enhancement, you can change purchase order data from your APO system before a purchase requisition or purchase order is created in the ERP system
    The enhancement contains the following components:
    EXIT_SAPLCPUR_001
    You can use this enhancement to change purchasing data (purchase requisitions, purchase orders) in ERP inbound. To do this, you can change the existing transfer data or include additional customer-specific data in your own tables.
    Other enhancements in the same
    EXIT_SAPLMEPI_004
    With this enhancement, you can change the header data of a purchase order before it is created in the ERP system.
    The following data can be changed:
    Document type (parameter CP_BSART)
    EXIT_SAPLMEPI_007
    You can use this enhancement to specify the document type of a purchase requisition or purchase order when they are created in the ERP system (parameter CP_BSART).
    There are other ehancements which I have not listed.
    I assume you can create an enhancemnet projects for incorporating the above enhancements in CMOD / SMOD transactions.
    I hope this helps you.
    Please confirm.
    Regards
    Datta

  • How can i get different Condition Type for third-party Purchase Order?

    Hi, experts,
    for standard PO my Schema works well. now I want to get a different condition type for third-party purchase order. I try to extend field catalog (Pricing Purchasing). The Field PSTYP exists already. However, it is not provided in the field catalog.
    How could i do?
    Thanks
    Rene

    Hi Rene,
      If you are seeing fields in the field catalog but are not seeing this field when creating the condition table then the field  probably does not exist in the KOMG structure for allowed fields for condition structures. KOMG  represents the total of KOMK and KOMP which are the pricing communication structures. If your field is not there then you need to append it to item data in INCLUDE KOMPAZ in KOMP since this is an item level field. If it were a header level field you would append it to include KOMKAZ in KOMK.  The inclusion of new fields in KOMK or KOMP automatically means that they are also included in KOMG.
    After doing this you will see the field when creating a table. There is further documentation on this process in the IMG under SPRO-> Materials Management-> Purchasing-> Conditions-> Define Price determination Process -> System Enhancements  - View the documentation associated to this node in the IMG
    Hope this helps,
    Matt

  • How to hide some buttons like CREATE PURCHASE ORDER, COPY, EDIT from POWL?

    In SRM 7 ECS we need to hide some buttons like CREATE PURCHASE ORDER, COPY, EDIT from POWL"s. We can do some manipulation via security but we need to make a few buttons invisible without security. Appreciate any advice. Thanks.

    Hi Ashwanin
    To make read only
    Below are the steps to Hide the buttons in POWL table
    1. if you want to Gray out the Buttons
        IMG > SRM SERVER> Cross Application Basic Settings --> Extensions and Field Control. There you will find a node to control   Actions. based on the object type choose your option and make it as read only
    To Make invisible
    1.If you want to  make invisible  the button .
    IMG > SRM SERVER> Cross Application Basic Settings --> Powl and Advance Search - > Adjust powl layout ,search criteria and push button (OR) t-code :   /SAPSRM/POWL_CUST
    2.choose the POWL type for the POWl table
    3.click on Action node , you will find all the acction assigned for the POWL table ,delete the entry which you want to make invsible and save it
    4 .Now run the report POWL_D01 and provide powl type in the selection criteria and deleate the catche quries
    Regards
    chinnaiya P
    Edited by: chinnaiya pandiyan on Jun 27, 2011 3:12 PM

  • Can we create purchase order through report programming?

    hi experts.....
    can we create purchase order through report programming?If yes plz give me the thread details?

    Hi,
    Use this code in a program by using a BAPI function module
    Anothe rway is using classical/ALV report using call transaction from a report for changing the PO
    loop at i_header.
        header-ref_1         = i_header-legacy.
        headerx-ref_1        = c_x.
        header-doc_type      = i_header-bsart.
        headerx-doc_type     = c_x.
        header-comp_code     = i_header-bukrs.
        headerx-comp_code    = c_x.
        header-purch_org     = i_header-ekorg.
        headerx-purch_org    = c_x.
        header-pur_group     = i_header-ekgrp.
        headerx-pur_group    = c_x.
        header-vendor        = i_header-lifnr.
        headerx-vendor       = c_x.
        concatenate i_header-bedat+4(4)
                    i_header-bedat+0(2)
                    i_header-bedat+2(2)
                    into header-doc_date.
        headerx-doc_date     = c_x.
        header-created_by    = i_header-ernam.
        headerx-created_by   = c_x.
        header-currency      = i_header-waers.
        headerx-currency     = c_x.
        concatenate i_header-kdatb+4(4)
                    i_header-kdatb+0(2)
                    i_header-kdatb+2(2)
                    into header-vper_start.
        headerx-vper_start   = c_x.
        loop at i_items where legacy = i_header-legacy.
          item-po_item            =  i_items-ebelp.
          itemx-po_item           =  i_items-ebelp.
          itemx-po_itemx          =  c_x.
          if i_header-bsart = 'NB'.
            item-material            =  i_items-ematn.
            itemx-material           =  c_x.
            schedule-quantity        =  i_items-menge * 1000.
            schedulex-quantity       =  c_x.
          else.
            item-short_text          = i_items-ematn.
            itemx-short_text         = c_x.
            item-matl_group          = '1000'.
            itemx-matl_group         = c_x.
            schedule-quantity        =  '1'.
            schedulex-quantity       =  c_x.
          endif.
          item-plant               =  i_items-werks.
          itemx-plant              =  c_x.
          schedule-po_item         = i_items-ebelp.
          schedule-sched_line      = '1'.
          schedulex-po_item        = i_items-ebelp.
          schedulex-sched_line     = '1'.
          schedulex-po_itemx       = c_x.
          schedulex-sched_linex    = c_x.
          concatenate  i_items-eildt+0(2)
                       i_items-eildt+2(2)
                       i_items-eildt+4(4)
                       into schedule-delivery_date.
          schedulex-delivery_date  =  c_x.
          item-price_unit          =  i_items-peinh * 100.
          itemx-price_unit         =  c_x.
          item-tax_code            =  i_items-mwskz.
          itemx-tax_code           =  c_x.
          item-shipping            =  i_items-evers.
          itemx-shipping           =  c_x.
          account-po_item          = i_items-ebelp.
          accountx-po_item         = i_items-ebelp.
          accountx-po_itemx        = c_x.
          if i_header-bsart = 'FO'.
            item-pckg_no  = sy-tabix.
            itemx-pckg_no = 'X'.
            limits-pckg_no        = sy-tabix.
            limits-limit          = i_items-overalllimit.
            limits-exp_value      = i_items-expectedoverall.
            posrvaccessvalues-pckg_no    = sy-tabix.
            posrvaccessvalues-line_no    = '0'.
            posrvaccessvalues-serno_line = '00'.
            posrvaccessvalues-percentage = '100.0'.
            posrvaccessvalues-serial_no  = '01'.
            account-serial_no     = '1'.
            accountx-serial_no    = '1'.
            accountx-serial_nox   = c_x.
            account-quantity  = '1'.
            accountx-quantity = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-kostl
              importing
                output = account-costcenter.
            accountx-costcenter   = c_x.
            call function 'CONVERSION_EXIT_ALPHA_INPUT'
              exporting
                input  = i_items-sakto
              importing
                output = account-gl_account.
            accountx-gl_account   = c_x.
            item-acctasscat       = i_items-knttp.
            itemx-acctasscat      = c_x.
            item-item_cat         = i_items-epstp.
            itemx-item_cat        = c_x.
          endif.
          append:item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
          clear :item,itemx,schedule,schedulex,account,accountx,limits,posrvaccessvalues.
        endloop.
        call function 'BAPI_PO_CREATE1'
          exporting
            poheader                     = header
            poheaderx                    = headerx
    *   POADDRVENDOR                 =
    *   TESTRUN                      =
    *   MEMORY_UNCOMPLETE            =
    *   MEMORY_COMPLETE              =
    *   POEXPIMPHEADER               =
    *   POEXPIMPHEADERX              =
    *   VERSIONS                     =
    *   NO_MESSAGING                 =
    *   NO_MESSAGE_REQ               =
    *   NO_AUTHORITY                 =
    *   NO_PRICE_FROM_PO             =
            importing
            exppurchaseorder             = ponumber
    *   EXPHEADER                    =
    *   EXPPOEXPIMPHEADER            =
            tables
            return                       = return
            poitem                       = item
            poitemx                      = itemx
    *   POADDRDELIVERY               =
            poschedule                   = schedule
            poschedulex                  = schedulex
            poaccount                    = account
    *   POACCOUNTPROFITSEGMENT       =
            poaccountx                   = accountx
    *   POCONDHEADER                 =
    *   POCONDHEADERX                =
    *   POCOND                       =
    *   POCONDX                      =
            polimits                     = limits
    *   POCONTRACTLIMITS             =
    *   POSERVICES                   =
       posrvaccessvalues            = posrvaccessvalues.
    *   POSERVICESTEXT               =
    *   EXTENSIONIN                  =
    *   EXTENSIONOUT                 =
    *   POEXPIMPITEM                 =
    *   POEXPIMPITEMX                =
    *   POTEXTHEADER                 =
    *   POTEXTITEM                   =
    *   ALLVERSIONS                  =
    *   POPARTNER                    =
        if ponumber eq space.
          loop at return where type = 'E'.
            clear buffer.
            move-corresponding return to e_return.
            concatenate i_header-legacy e_return into buffer.
            transfer buffer to p2_file.
          endloop.
          move-corresponding i_header to i_eheader.
          transfer i_eheader to p3_file.
          loop at i_items where legacy = i_header-legacy.
            move-corresponding i_items to i_eitems.
            transfer i_eitems to p4_file.
          endloop.
        else.
          commit work and wait.
        endif.
        clear:ponumber,header,headerx,item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
        refresh:item,itemx,account,accountx,limits,return,schedule,schedulex,posrvaccessvalues.
      endloop.
      close dataset p2_file.
      close dataset p3_file.
      close dataset p4_file.
    Regards
    Krishna

Maybe you are looking for

  • Time setting in pdf file presentation

    Can I set different times for different pages of my pdf file when using the whole screen presentation in Adobe Reader? Thanks a lot!

  • Why can't I make a call to a macbook pro

    I try calling my daughter's macbook pro, using her email address....it says connecting, but never connects....she says it freezes on her end.  She is able to facetime with other macs okay.

  • Lost some Audio on the multitrack of Adobe Audition 3

    I know that this discussion pertains to the Audition problems past CS5.5, but I need major help with something that happened in Adobe Audition 3.  I have a file that I may of resaved a file or something and then it started showing up almost as missin

  • How to configure PI for WSS

    scenario: PI 7.0 Idoc-> PI > Soap i want to enable message level sec....i choose WSS, what are the set of steps i need to get done? Any inputs wud b greatly appreciated! Hank

  • Adobe Acrobate Pro re-Install

    My old laptop, which had Adobe Acrobat Pro 9 installed, had a hard disk hard failure. I am trying to install from the original CD onto a new computer and the install has told me that I must deactivate on my old computer (which I cannot do because it