Legal Control functionality for Purchase order

Hi,
We have a requirement where in while saving the Purchase Order, the system should look whether for that material if the legal control data/ foreign trade data is maintained specifying that it is a controlled substance then the licence should be maintained before saving the PO. If the licence is not maintained then the Purchase order should not be allowed to be saved.
In a nut shell, we want to control the saving of Purchase order depending on whether the licence is maintained or not.
This has been done for Sales order. The standard SAP functionality allows the document control.
This can be seen in SPRO - Materials Management - Purchasing - Foreign trade/Customs - Legal control - Document control.
Here we can see that only Sales order and shipping documents can be controlled.
Is there any way we can control the Purchase Ordr also?
Please let me know for any clarification regarding the requirement.
Regards,
Ramachandra DN

Hi Ramachandra,
this kind of functionality is not available in SRM. Have a look into GTS Module, which can be connected to SRM for achiving your requirement. http://help.sap.com/saphelp_gts30/helpdata/en/1d/8082ab7248f74ca09861d9713b9a52/content.htm
All somehow available control, compliance and trade features are available via GTS. Any further need to be accomplished via self development.
Cheers,
Claudia

Similar Messages

  • Authorization Object for Purchase order Message control

    Hi ,
    Is there any stadard authoriztion object to control the print and print preview options for Message control .
    I am requied to control the print and print preview options for purchase order messages for certain users depeding on there authorizaion.
    Thanks in advane.

    Hi,
    When you click on the 'print preview' button on ME22N/ME23N the system
    makes an authority check on transaction ME9F activity 04. The current
    logic forces the print preview functionality to be accessed ONLY by the
    users who print. Therefore, only users that have authorization to use
    ME9F are authorized to use the Print Preview button in ME22N/ME23N.
    Kindly try the authorization objects M_BEST_EKG, M_BEST_BSA and
    M_BEST_EKO = 04.
    You can
    also have a look the  user exit
    EXIT_SAPLMEDRUCK_001 in enhancement LMEDR001 for print program
    SAPLMEDRUCK.
    INCLUDE ZXM01U04
    you can create own coding for all possible AUTHORITY-CHECK.
    BR
    Nadia Orlandi

  • User Exits for Purchase order & requistion to control Material description

    Dear Experts,
    I am creating a Purchasing requisition & Purchase order for certain Material Type. Currently user can change material description at item level without anu check. Now I have different material type like PACKING(ZPAC), Raw material(ZROH) Etc.
    My requirement is like such that i want to allow change of material description of packing material(ZPAC) but system should not allow for Raw material type(ZROH). so from where i can control this?
    Can any one give me EXIT name or enhancement point for Purchase order & requisition.
    Thanks in advance.
    Regards,
    Piyush

    Dear,
    You can achieve this by Field selection in SPRO > MM > Purchasing > Purchase Requisition > Define Document Types > Here get the Field Selection Key for PR Doc Type
    SPRO > MM > Purchasing > Purchase Requisition > Define Screen Layout at Document Level > Here for that Field Selection Key, for Selection group "Basic data, item", make field "Short text" as display.
    Similarly do for PO also SPRO > MM > Purchasing > Purchase Order > Define Document Types > Here get the Field Selection Key for PO Doc Type
    SPRO > MM > Purchasing > Purchase Order > Define Screen Layout at Document Level > Here for that Field Selection Key, for Selection group "Basic data, item", make field "Short text" as display.
    Note: - But in case of text Purchases, you need to create a new PR and PO Document Type. So that this config. will not have any impact on Text Purchases.
    Regards,
    R.Brahmankar

  • Is there any function module for purchase order change

    Hi Experts,
    Is there any function module for purchase order change or i need to do new recording in me22n.
    Thanks,
    Senthil

    Hi
    Function module <b>BAPI_PO_CHANGE</b> enables you to change purchase orders. The Change method uses the technology behind transaction ME22N.
    Regards,
    Viven

  • User Exit for Purchase Order Release Strategy

    Hi,
    I am a little new to this, how do I search for a user exit for purchase order release strategy (TCode ME29N).
    Thanks in advance.
    Mick

    Hi
    Check the following Exits and BADI for Pur Requisition
    Enhancement
    MEVME001 WE default quantity calc. and over/ underdelivery tolerance
    MM06E001 User exits for EDI inbound and outbound purchasing documents
    MM06E003 Number range and document number
    MM06E004 Control import data screens in purchase order
    MM06E005 Customer fields in purchasing document
    MM06E007 Change document for requisitions upon conversion into PO
    MM06E008 Monitoring of contr. target value in case of release orders
    MM06E009 Relevant texts for "Texts exist" indicator
    MM06E010 Field selection for vendor address
    MM06E011 Activate PReq Block
    MMAL0001 ALE source list distribution: Outbound processing
    MMAL0002 ALE source list distribution: Inbound processing
    MMAL0003 ALE purcasing info record distribution: Outbound processing
    MMAL0004 ALE purchasing info record distribution: Inbound processing
    MMDA0001 Default delivery addresses
    MMFAB001 User exit for generation of release order
    MRFLB001 Control Items for Contract Release Order
    AMPL0001 User subscreen for additional data on AMPL
    LMEDR001 Enhancements to print program
    LMELA002 Adopt batch no. from shipping notification when posting a GR
    LMELA010 Inbound shipping notification: Transfer item data from IDOC
    LMEQR001 User exit for source determination
    LMEXF001 Conditions in Purchasing Documents Without Invoice Receipt
    LWSUS001 Customer-Specific Source Determination in Retail
    M06B0001 Role determination for purchase requisition release
    M06B0002 Changes to comm. structure for purchase requisition release
    M06B0003 Number range and document number
    MEQUERY1 Enhancement to Document Overview ME21N/ME51N
    MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.
    MEFLD004 Determine earliest delivery date f. check w. GR (only PO)
    MEETA001 Define schedule line type (backlog, immed. req., preview)
    ME590001 Grouping of requsitions for PO split in ME59
    M06E0005 Role determination for release of purchasing documents
    M06E0004 Changes to communication structure for release purch. doc.
    M06B0005 Changes to comm. structure for overall release of requisn.
    M06B0004 Number range and document number
    Business Add-in
    ME_PROCESS_REQ_CUST Enhancements for Processing Enjoy PReqs: Customer
    ME_PROCESS_REQ Enhancements for Processing Enjoy PReqs: Internal
    ME_PROCESS_PO_CUST Enhancements for Processing Enjoy Purchase Order: Customer
    ME_PROCESS_PO Enhancements for Processing Enjoy Purchase Order: Intern.
    ME_PROCESS_COMP Processing of Component Default Data at Time of GR: Custome
    ME_PO_SC_SRV BAdI: Service Tab Page for Subcontracting
    ME_PO_PRICING_CUST Enhancements to Price Determination: Customer
    ME_PO_PRICING Enhancements to Price Determination: Internal
    ME_INFOREC_SEND Capture/Send Purchase Info Record Changes - Internal Use
    ME_HOLD_PO Hold Enjoy Purchase Orders: Activation/Deactivation
    ME_GUI_PO_CUST Customer's Own Screens in Enjoy Purchase Order
    ME_FIELDSTATUS_STOCK FM Account Assignment Behavior for Stock PR/PO
    ME_DP_CLEARING Clearing (Offsetting) of Down Payments and Payment Requests
    ME_PURCHDOC_POSTED Purchasing Document Posted
    SMOD_MRFLB001 Control Items for Contract Release Order
    EXTENSION_US_TAXES Extended Tax Calculation with Additional Data
    ARC_MM_EKKO_WRITE BAdI: Enhancement of Scope of Archiving (MM_EKKO)
    ARC_MM_EKKO_CHECK BAdI: Enhancement of Archivability Check (MM_EKKO)
    MM_EDI_DESADV_IN Supplementation of Delivery Interface from Purchase Order
    MM_DELIVERY_ADDR_SAP Determination of Delivery Address
    ME_WRF_STD_DNG PO Controlling Reminder: Extension to Standard Reminder
    ME_TRIGGER_ATP Triggers New ATP for Changes in EKKO, EKPO, EKPV
    ME_TRF_RULE_CUST_OFF BADI for Deactivation of Field T161V-REVFE
    ME_TAX_FROM_ADDRESS Tax jurisdiction code taken from address
    ME_REQ_POSTED Purchase Requisition Posted
    ME_REQ_OI_EXT Commitment Update in the Case of External Requisitions
    ME_RELEASE_CREATE BAdI: Release Creation for Sched.Agrmts with Release Docu.
    ME_DEFINE_CALCTYPE Control of Pricing Type: Additional Fields
    ME_CHANGE_OUTTAB Enrich ALV Output Table in Purchasing
    ME_CHANGE_CHARACTER Customer-Specific Characteristics for Product Allocation
    ME_CCP_DEL_DURATION Calc. of Delivery Duration in CCP Process (Not in Standard)
    ME_CCP_BESWK_AUTH_CH BAdI for authorization checks for procuring plant
    ME_CCP_ACTIVE_CHECK BAdI to check whether CCP process is active
    ME_BSART_DET Change document type for automatically generated POs
    ME_BAPI_PR_CREATE_02
    ME_BAPI_PR_CREATE_01
    ME_BAPI_PO_CREATE_02
    ME_BAPI_PO_CREATE_01
    ME_BADI_DISPLAY_DOC BAdI for Internal Control of Transaction to be Invoked
    ME_ACTV_CANCEL_PO BAdI for Activating the Cancel Function at Header Level
    MEGUI_LAYOUT BAdI for Enjoy Purchasing GUI
    ME_CHECK_ALL_ITEMS Run Through Items Again in the Event of Changes in EKKO
    ME_COMMTMNT_REQ_RE_C Check of Commitment Relevance of Purchase Requisitions
    ME_COMMTMNT_REQ_RELE Check of Commitment Relevance of Purchase Requisitions
    ME_COMMTMNT_PO_REL_C Check for Commitment-Relevance of Purchase Orders
    ME_COMMTMNT_PO_RELEV Check for Commitment-Relevance of Purchase Orders
    ME_COMMITMENT_STO_CH BadI for checking if commitments for STOs are active
    ME_COMMITMENT_RETURN Commitment for return item
    ME_CIP_REF_CHAR Enables Reference Characteristics in Purchasing
    ME_CIP_ALLOW_CHANGE Configuration in Purchasing: Changeability Control
    ME_CIN_MM06EFKO Copy PO data for use by Country version India
    ME_CIN_LEINRF2V BADI for LEINRF03 excise_invoice_details
    ME_CIN_LEINRF2R BADI for CIN India - Delivery charges
    ME_CHECK_SOURCES Additional Checks in Source Determination/Checking
    ME_CHECK_OA Check BAdI for Contracts
    Reward points if useful
    Rgds,
    Naren

  • User Exit/BADI for Purchase Order and Purchase Requisitions

    HI,
    I have a requireent where i have to check the the user does not enter both Subitems and Over a Limit for a Service Purchase Requisition.
    Is there a User Exit or Badi that i can use where this information is availaible.
    also i have to check that release strategy is assigned to every purchase order where the version has been completed.
    Is there a User Exit or Badi where Information of EREV table is availaible.
    Regards,
    Tarun Bahal

    For Purchachase requisition , the BADIs and USER EXITS are
    ME_COMMITMNT_PARKING BAdI for Redefining Commitment Interface When Parking
    ME_MEREQ_PARKING BAdI Purchase Requisition: "Hold"
    ME_REQ_HEADER_TEXT Copy Header Text: Enjoy Purchase Requisition
    try with the above BADI's
    MEREQ001 Customers' Own Data in Purchase Requisition
    for Purchase order , the BADIs and USER EXITS are
    ARC_MM_EKKO_CHECK BAdI: Enhancement of Archivability Check (MM_EKKO)
    ARC_MM_EKKO_WRITE BAdI: Enhancement of Scope of Archiving (MM_EKKO)
    EXTENSION_US_TAXES Extended Tax Calculation with Additional Data
    MEGUI_LAYOUT BAdI for Enjoy Purchasing GUI
    ME_ACTV_CANCEL_PO BAdI for Activating the Cancel Function at Header Level
    ME_BADI_DISPLAY_DOC BAdI for Internal Control of Transaction to be Invoked
    ME_BAPI_PO_CREATE_01
    ME_BAPI_PO_CREATE_02
    ME_BAPI_PR_CREATE_01
    ME_BAPI_PR_CREATE_02
    ME_BSART_DET Change document type for automatically generated POs
    ME_CCP_ACTIVE_CHECK BAdI to check whether CCP process is active
    ME_CCP_BESWK_AUTH_CH BAdI for authorization checks for procuring plant
    ME_CCP_DEL_DURATION Calc. of Delivery Duration in CCP Process (Not in Standard)
    ME_CHANGE_CHARACTER Customer-Specific Characteristics for Product Allocation
    ME_CHANGE_OUTTAB Enrich ALV Output Table in Purchasing
    ME_CHECK_ALL_ITEMS Run Through Items Again in the Event of Changes in EKKO
    ME_CHECK_OA Check BAdI for Contracts
    ME_CHECK_SOURCES Additional Checks in Source Determination/Checking
    ME_CIN_LEINRF2R BADI for CIN India - Delivery charges
    ME_CIN_LEINRF2V BADI for LEINRF03 excise_invoice_details
    ME_CIN_MM06EFKO Copy PO data for use by Country version India
    ME_CIP_ALLOW_CHANGE Configuration in Purchasing: Changeability Control
    ME_CIP_REF_CHAR Enables Reference Characteristics in Purchasing
    ME_COMMITMENT_RETURN Commitment for return item
    ME_COMMITMENT_STO_CH BadI for checking if commitments for STOs are active
    ME_COMMTMNT_PO_RELEV Check for Commitment-Relevance of Purchase Orders
    ME_COMMTMNT_PO_REL_C Check for Commitment-Relevance of Purchase Orders
    ME_COMMTMNT_REQ_RELE Check of Commitment Relevance of Purchase Requisitions
    ME_COMMTMNT_REQ_RE_C Check of Commitment Relevance of Purchase Requisitions
    ME_DEFINE_CALCTYPE Control of Pricing Type: Additional Fields
    ME_DP_CLEARING Clearing (Offsetting) of Down Payments and Payment Requests
    ME_FIELDSTATUS_STOCK FM Account Assignment Behavior for Stock PR/PO
    ME_GUI_PO_CUST Customer's Own Screens in Enjoy Purchase Order
    ME_HOLD_PO Hold Enjoy Purchase Orders: Activation/Deactivation
    ME_INFOREC_SEND Capture/Send Purchase Info Record Changes - Internal Use
    ME_PO_PRICING Enhancements to Price Determination: Internal
    ME_PO_PRICING_CUST Enhancements to Price Determination: Customer
    ME_PO_SC_SRV BAdI: Service Tab Page for Subcontracting
    ME_PROCESS_COMP Processing of Component Default Data at Time of GR: Customer
    ME_PROCESS_PO Enhancements for Processing Enjoy Purchase Order: Intern.
    ME_PROCESS_PO_CUST Enhancements for Processing Enjoy Purchase Order: Customer
    ME_PROCESS_REQ Enhancements for Processing Enjoy PReqs: Internal
    ME_PROCESS_REQ_CUST Enhancements for Processing Enjoy PReqs: Customer
    ME_PURCHDOC_POSTED Purchasing Document Posted
    ME_RELEASE_CREATE BAdI: Release Creation for Sched.Agrmts with Release Docu.
    ME_REQ_OI_EXT Commitment Update in the Case of External Requisitions
    ME_REQ_POSTED Purchase Requisition Posted
    ME_TAX_FROM_ADDRESS Tax jurisdiction code taken from address
    ME_TRF_RULE_CUST_OFF BADI for Deactivation of Field T161V-REVFE
    ME_TRIGGER_ATP Triggers New ATP for Changes in EKKO, EKPO, EKPV
    ME_WRF_STD_DNG PO Controlling Reminder: Extension to Standard Reminder
    MM_DELIVERY_ADDR_SAP Determination of Delivery Address
    MM_EDI_DESADV_IN Supplementation of Delivery Interface from Purchase Order
    SMOD_MRFLB001 Control Items for Contract Release Order
    AMPL0001  User subscreen for additional data on AMPL             
    LMEDR001  Enhancements to print program                          
    LMELA002  Adopt batch no. from shipping notification when posting
    LMELA010  Inbound shipping notification: Transfer item data from 
    LMEQR001  User exit for source determination                     
    LMEXF001  Conditions in Purchasing Documents Without Invoice Rece
    LWSUS001  Customer-Specific Source Determination in Retail       
    M06B0001  Role determination for purchase requisition release    
    M06B0002  Changes to comm. structure for purchase requisition rel
    M06B0003  Number range and document number                       
    M06B0004  Number range and document number                       
    M06B0005  Changes to comm. structure for overall release of requi
    M06E0004  Changes to communication structure for release purch. d
    M06E0005  Role determination for release of purchasing documents 
    ME590001  Grouping of requsitions for PO split in ME59           
    MEETA001  Define schedule line type (backlog, immed. req., previe
    MEFLD004  Determine earliest delivery date f. check w. GR (only P
    MELAB001  Gen. forecast delivery schedules: Transfer schedule imp
    MEQUERY1  Enhancement to Document Overview ME21N/ME51N           
    MEVME001  WE default quantity calc. and over/ underdelivery toler
    MM06E001  User exits for EDI inbound and outbound purchasing docu
    MM06E003  Number range and document number                       
    MM06E004  Control import data screens in purchase order          
    MM06E005  Customer fields in purchasing document                 
    MM06E007  Change document for requisitions upon conversion into P
    MM06E008  Monitoring of contr. target value in case of release or
    MM06E009  Relevant texts for "Texts exist" indicator             
    MM06E010  Field selection for vendor address                     
    MMAL0001  ALE source list distribution: Outbound processing      
    MMAL0002  ALE source list distribution: Inbound processing       
    MMAL0003  ALE purcasing info record distribution: Outbound proces
    MMAL0004  ALE purchasing info record distribution: Inbound proces
    MMDA0001  Default delivery addresses                             
    MMFAB001  User exit for generation of release order              
    MRFLB001
    Regards,
    Anirban

  • What is  Sap Scripts for purchase order

    hai,
    what is the sap script or smart form for purchase order,
    and how to modify the existing standerd one.
    explain me in step by step.

    hi
    Please ask question on sapscript in sapscript forum.
    use sap script form  medruck for PO
    SmartForm /BPR3PF/MMPO_L is the standard delivered Purchase Order in 4.6c
    Transaction code m/34 allows you to associate your 'Y' copy of the standad PO to your included company specific PO requirements such as company log graphic and other particulars.
    Go to transaction OMFE. Tell me what you see there for the output type you are interested in. Let me take the standard output type NEU. The entry looks something like this.
    NEU Purchase order 1 SAPFM06P ENTRY_NEU MEDRUCK.
    The first one is your output type, next is its description, next is the medium, then the program, routine, and the form name.
    You already copied the layout MEDRUCK to ZMEDRUCK. Now copy SAPFM06P to ZZSAPFM06P. Now ENTRY_NEU routine is in the include FM06PE02. You need to make your changes here to accommodate for the new field. So copy this include to ZZFM06PE02 and make your changes. Also, in ZZSAPFM06P, change the line where it says INCLUDE FM06PE02 to INCLUDE ZZFM06PE02.
    Now in this routine ENTRY_NEU, there is a function module call ME_READ_PO_FOR_PRINTING which reads in the PO data from the tables. We need to copy this function module as well as this is where you will do your extra selections for the new fields. You will do the same with the other function call ME_PRINT_PO, if you need to change anything on the print.
    after this to define output type...
    NACE
    You can track the form and the print program used for that form
    NACE is used to create output type while creating the output type you will mention forms, and driver program.
    that will be maintained in the table TNAPR.if you create the output type using NACE then it will be automatically visible in table NAST and TNAPR.
    so check in NAST, TNAPR table
    http://help.sap.com/saphelp_erp2005/helpdata/en/c8/1989fe43b111d1896f0000e8322d00/frameset.htm
    Condition records in NACE?
    EX--in simple terms..take a transaction say ME21N ( Purchase Order ), u can see a Print icon there. now when u click on this icon, it has to print the PO document. Now how does it do that? when u click Print, the control gets transffered to a print program, now which program gets triggered is decided by what program name u specify in NACE.
    So in NACE>EF>Output Type>NEU>processing routine--> u can see some standard program already configured( maybe SAPFM06P n form MEDRUCK )..these are the programs n sapscript that gets executed wen u say "PRINT" in the transactrion...so u can customise the print program for customer changes over here by copying the standard program n form into a Z/Y one and replacing the program names in NACE.
    Yogesh N
    Edited by: Yogesh N on Aug 20, 2008 3:19 AM

  • Creating an IDOC for purchase order

    Hello gurus,
    I want to generate an IDOC for purchase order.
    The Logical System, RFC connection, ports definition is already defined.
    In my system i have 800 client as source/sender and 100 client as target/reciever.
    On Outbound side-> In Partner profile
    I defined-
    1. Partner No.- devclnt100
    2.Type- US (User)
    3. Agent - SAPUSER
    In Outbound parameters-
    I created message type as Orders.
    One thing to note that my partner system is LS i.e. Logical System
    Then in Outbound Options-
    I mentioned Reciver Port - 800Port
    Output Mode- I selected "Transfer Idocs immediately"
    & "Do not start subsystem"
    In Idoc type-
    I gave following information-
    Basic Type - Orders05
    In Message Control tab i mentioned-
    Application - EF
    Message Type - NEU
    Process Code - ME10
    In NACE Transaction Code-
    I selected EF Purchase Order as my condition for output control
    In that- In output types-
    I selecte NEU and double clicked. I checked whether Access to Conditions check box is checked and multiple issuing is checked.
    In Dialog structure-Processing routines I checked that -
    For Output type - NEU
    Application - EF
    Processing routines are defined-
    medium-Distribution ALE
    Program -RSNASTED
    Form Routine - ALE_PROCESSING
    I think these are the very basic settings that need to be done for creation of Idoc.
    Now when i create a PO and then SAVE it an IDOC must be generated.
    But when i go to transaction Code WE02. It shows me message "No Idocs genereated".
    What is the problem? Where am i going wrong?

    Hi Yayati,
    Here are all the settings that you need to do. I am not sure which all settings are present so kindly confirm.
    Sending side Client800:
    1. WE20 - under LS - Outbound parameters - message type = Orders , basic type = Orders05
    2. BD64 - message type - sender = client800, receiver = client100, message type = Orders
    3. NACE - App = EF - Output Types - Processing Routines - Add medium = A (Distribution (ALE)) , Program = RSNASTED, Routine = ALE_PROCESSING.
    4.  NACE - App = EF - Output Types - Partner Functions - Add medium = Distribution (ALE), Funct = VN.
    5. Name - App = EF - Condition Records - Output type = NEU , Choose ur combination (Mine is DocType/Purc Grp)
         Pur.Doc Type = NB (Execute) , Add row Medium = A ,Function = VN and other details u choose.
    Receiving side Client100:
    1. WE20 - under LS - Inbound parameters - message type : Orders ; Process Code : ORDE
    2. BD64 - message type - sender = client800, receiver = client100, message type = Orders
    For the PO which you have created, go to the PO in ME23N, click on messages .
    There should be a line : Output = NEU, Medium = Distribution (ALE)... etc.
    If its present then the configuration was correct.
    If it has a yellow triangle means it was not processed.
    Regards,
    Jovito.
    Edited by: dsouzajovito on Dec 30, 2010 10:24 AM

  • Processing log output for Purchase order

    Dear All,
    Iam getting some problem when iam creating an IDOC and checking in the Processing log for IDOC number.
    Actually i had created one custom idoc for Purchase order since my client need only some field and in one line for header and line item, I had done it and i can see it in sdata of EDIDD structure. When i create a Purchase order and save it an idoc number is posting and I can see this file in my physical directory indeed.
    Now when iam going into change mode of PO ME22n to see the Processing LOG, It is not showing the IDOC Number in Purchase order output processing log popup.

    The processing log will only show output based standard output control (Table NAST).
    How is your IDoc being created. Via a user exit, BADI. If so then they will not appear on the processing log.
    It is being created as a custom IDOC for which i had written a Z function module and given that in PO processing code which is ME10. When iam checking the standard IDOC for PO it is generating the IDOC in processing log as well.
    Iam just placing my code just have a look at it and suggest if any thing needs to be done.
    FUNCTION Z_IDOC_OUTPUT_ORDERS.
    ""Local Interface:
    *"  IMPORTING
    *"     VALUE(OBJECT) LIKE  NAST STRUCTURE  NAST
    *"     VALUE(CONTROL_RECORD_IN) LIKE  EDIDC STRUCTURE  EDIDC
    *"  EXPORTING
    *"     VALUE(OBJECT_TYPE) LIKE  WFAS1-ASGTP
    *"     VALUE(CONTROL_RECORD_OUT) LIKE  EDIDC STRUCTURE  EDIDC
    *"  TABLES
    *"      INT_EDIDD STRUCTURE  EDIDD
    *"  EXCEPTIONS
    *"      ERROR_MESSAGE_RECEIVED
    *"      DATA_NOT_RELEVANT_FOR_SENDING
    DATA: xdruvo.                          "Druckvorgang
    DATA: neu  VALUE '1',                  "Neudruck
          h_kappl LIKE nast-kappl,         "Hilfsfeld Applikation
          h_parvw LIKE ekpa-parvw,         "Hilfsfeld Partnerrolle
          h_ebeln LIKE ekko-ebeln.         "Hilfsfeld Belegnummer
      CLEAR control_record_out.
       xdruvo = neu.
      h_kappl = object-kappl.
      h_ebeln = object-objky.
      h_parvw = object-parvw.
      DATA:
           LT_EDIDC LIKE EDIDC OCCURS 0 WITH HEADER LINE,
             L_EDIDC LIKE EDIDC,
             L_SEND_FLAG,
             W_SDATA LIKE EDIDD-SDATA.
      DATA: T_BDI_MODEL LIKE BDI_MODEL OCCURS 0 WITH HEADER LINE.
      DATA: T_EDIDC LIKE EDIDC OCCURS 0 WITH HEADER LINE.
      DATA: T_EDIDD LIKE EDIDD OCCURS 0 WITH HEADER LINE.
      DATA: C_MESSAGE_TYPE LIKE EDIDC-MESTYP VALUE 'ZORDER'.
    *- Call function module to determine if message is to be distributed
    OBJECT_TYPE = 'BUS2012'.
      MOVE control_record_in TO control_record_out.
      CALL FUNCTION 'ALE_MODEL_DETERMINE_IF_TO_SEND'
        EXPORTING
          MESSAGE_TYPE           = C_MESSAGE_TYPE
        IMPORTING
          IDOC_MUST_BE_SENT      = L_SEND_FLAG.
       EXCEPTIONS
         OWN_SYSTEM_NOT_DEFINED = 1
         OTHERS                 = 2.
      DATA : BEGIN OF EKKO_tAB OCCURS 0,
      EBELN LIKE EKKO-EBELN,
      F1 TYPE C VALUE ',',
      BUKRS LIKE EKKO-BUKRS,
      F2 TYPE C VALUE ',',
      BSART LIKE EKKO-BSART,
      F3 TYPE C VALUE ',',
      LIFNR LIKE EKKO-LIFNR,
      F4 TYPE C VALUE ',',
      WAERS LIKE EKKO-WAERS,
      F5 TYPE C VALUE ',',
      BEDAT LIKE EKKO-BEDAT,
      F6 TYPE C VALUE ',',
      WERKS LIKE EKPO-WERKS,
      F7 TYPE C VALUE ',',
      PLIFZ LIKE EKPO-PLIFZ,
      F8 TYPE C VALUE ',',
      EBELP LIKE EKPO-EBELP,
      F9 TYPE C VALUE ',',
      MATNR LIKE EKPO-MATNR,
      F10 TYPE C VALUE ',',
      MENGE LIKE EKPO-MENGE,
      F11 TYPE C VALUE ',',
      MEINS LIKE EKPO-MEINS,
      F12 TYPE C VALUE ',',
      END OF EKKO_TAB.
      DATA SDATA1 LIKE EKKO_tAB OCCURS 0 WITH HEADER LINE.
      DATA EBELN LIKE EKKO-EBELN.
      WRITE OBJECT-OBJKY TO EBELN.
      SELECT T1EBELN T1BUKRS BSART LIFNR WAERS BEDAT  WERKS PLIFZ EBELP MATNR MENGE MEINS
      FROM EKKO AS T1
      INNER JOIN EKPO AS T2 ON T2EBELN = t1EBELN
      INTO CORRESPONDING FIELDS OF TABLE EKKO_tAB
      WHERE
    *T1~KAPPL = 'EF' AND
      T1~EBELN = EBELN.
    *T1~KSCHL = 'YEDI' .
      DATA SDATA LIKE EDIDD-SDATA.
      DATA NDATE LIKE SY-DATUM.
      DATA NMENGE(17) TYPE C.
      LOOP AT EKKO_tAB.
        WRITE EKKO_TAB-MENGE TO NMENGE.
        NDATE = EKKO_tAB-BEDAT + EKKO_tAB-PLIFZ.
        CONCATENATE  EKKO_tAB-EBELP ',' EKKO_tAB-BUKRS ',' EKKO_tAB-BSART EKKO_tAB-EBELN ',' EKKO_tAB-LIFNR ',' EKKO_tAB-BEDAT ','
        NDATE ',' EKKO_tAB-BSART EKKO_tAB-EBELN ',' EKKO_tAB-EBELN ', 0,' EKKO_tAB-MATNR ','
        NMENGE ',' EKKO_tAB-MEINS ',' EKKO_tAB-WERKS INTO SDATA.
        MOVE SDATA TO: W_SDATA, T_EDIDD-SDATA.
        MOVE 'ZORDERS' TO T_EDIDD-SEGNAM.
        APPEND T_EDIDD.
      ENDLOOP.
    *call function 'L_IDOC_SEGMENT_CREATE'
        exporting
             i_segnam = 'ZORDERS'
             i_sdata  = w_sdata
        exceptions
             others   = 1.
    *LT_EDIDC
    call function 'L_IDOC_SEND'
         tables
              t_comm_idoc           = LT_EDIDC
         exceptions
              error_distribute_idoc = 1
              others                = 2.
    *DATA T_BDI_MODEL LIKE BDI_MODEL.
    WRITE OBJECT-OBJKY TO T_BDI_MODEL.
    READ TABLE T_BDI_MODEL INDEX 1.      " maximum 1 recipient
    L_EDIDC-DIRECT = 1.
      L_EDIDC-DOCNUM = DOCNUM. "***
      L_EDIDC-RCVPRN = 'HCM_00_785'.
      L_EDIDC-RCVPOR = 'MM_PO_FILO'.
      MOVE 'ZORDER'   TO L_EDIDC-MESTYP.
      MOVE 'ZPURIDOC' TO L_EDIDC-IDOCTP.
      MOVE 'LS'      TO L_EDIDC-RCVPRT.
    MOVE T_BDI_MODEL-RCVSYSTEM TO L_EDIDC-RCVPRN.
    *MOVE-CORRESPONDING L_EDIDC TO W_EDIDC.
    *- Distribute the iDoc
    BREAK-POINT.
      CALL FUNCTION 'MASTER_IDOC_DISTRIBUTE' "IN UPDATE TASK
        EXPORTING
          MASTER_IDOC_CONTROL            = L_EDIDC
        TABLES
          COMMUNICATION_IDOC_CONTROL     = LT_EDIDC
          MASTER_IDOC_DATA               = T_EDIDD
        EXCEPTIONS
          ERROR_IN_IDOC_CONTROL          = 01
          ERROR_WRITING_IDOC_STATUS      = 02
          ERROR_IN_IDOC_DATA             = 03
          SENDING_LOGICAL_SYSTEM_UNKNOWN = 04.
    IF SY-SUBRC <> 0.
    MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
             WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
    ENDIF.
    READ TABLE LT_EDIDC INDEX 1.
      control_record_out-direct = '1'.
      CONTROL_RECORD_OUT-DOCNUM = DOCNUM. " ***
      control_record_out-serial = sy-datum.
      control_record_out-serial+8 = sy-uzeit.
      control_record_out-mestyp = LT_EDIDC-mestyp.
      control_record_out-idoctp = LT_EDIDC-idoctp.
      control_record_out-SNDPRN = 'HCM_00_786'.
      MOVE 'MM_PO_FILO' TO control_record_out-RCVPOR.
      MOVE 'LI'      TO control_record_out-SNDPRT.
      MOVE 'SAPQIS' TO control_record_out-SNDPOR.
    ENDFUNCTION.

  • Open items for purchase order its very urgent

    hi
    my requirement is to write extract program for purchase order(me21) to extract only open items.
    please provide sample code its very urgent.
    thanks in advance.
    points will be rewarded.
    thanks
    hari prasad reddy

    check the below report :
    REPORT ZMM_OPEN_PO_REPORT no standard page heading
                              line-size 255
                              message-id zwave.
    ======================================================================
    Program Name : ZMM_OPEN_PO_REPORT                                    *
    Description  : This report displays all Open PO Items and output     *
                   would be PO Number,Material number and so on          *
    Author       : Seshu                                                 *
    Date         : 01/24/2007                                            *
    MODIFICATION HISTORY                                                 *
    DATE    | AUTHOR   | CHANGE #   | DESCRIPTION OF MODIFICATION        *
    --|||--
    01/24/07| Seshu    | DEVK921979 | Initial                            *
    D A T A  D E C L A R A T I O N   P A R T                         ***
    type-pools
    type-pools : slis.
    Tables
    tables : ekko, " Purchase order Header
             ekpo, " Purchase order Item
             marc. " Material with Plant data
    Internal table for output.
    data : begin of i_output occurs 0,
           ebeln like ekko-ebeln,
           matnr like ekpo-matnr,
           end of i_output.
    ALV Data declaration.
    data : v_repid like sy-repid.
      ALV Function Module Variables
    DATA: gs_layout type slis_layout_alv,
          g_exit_caused_by_caller,
          gs_exit_caused_by_user type slis_exit_by_user.
    DATA: gt_fieldcat    type slis_t_fieldcat_alv,
          gs_print       type slis_print_alv,
          gt_events      type slis_t_event,
          gt_list_top_of_page type slis_t_listheader,
          g_status_set   type slis_formname value 'PF_STATUS_SET',
          g_user_command type slis_formname value 'USER_COMMAND',
          g_top_of_page  type slis_formname value 'TOP_OF_PAGE',
          g_top_of_list  type slis_formname value 'TOP_OF_LIST',
          g_end_of_list  type slis_formname value 'END_OF_LIST',
          g_variant LIKE disvariant,
          g_save(1) TYPE c,
          g_tabname_header TYPE slis_tabname,
          g_tabname_item   TYPE slis_tabname,
          g_exit(1) TYPE c,
          gx_variant LIKE disvariant.
    data : gr_layout_bck type slis_layout_alv.
    Ranges
    ranges r_eindt for eket-eindt.
    initialization.
    v_repid = sy-repid.
    start-of-selection.
    Get the data from EKKO ,EKPO and MARC Table
    perform get_data_tables.
    end-of-selection.
    display the data in the form of ALV
    perform display_data.
    *&      Form  get_data_tables
          Get the data from EKKO,EKPO and MARC Table
    FORM get_data_tables.
    clear : i_output.
    refresh : i_output.
    fill the dates in ranges
    r_eindt-low = sy-datum - 7.
    r_eindt-high = sy-datum + 14.
    r_eindt-option = 'BT'.
    r_eindt-sign = 'I'.
    append r_eindt.
    Get the data from EKKO,EKPO and EKET Tables
    select aebeln bmatnr into table i_output
                           from ekko as a inner join
                                ekpo as b on aebeln = bebeln
                                inner join marc as c on cmatnr = bmatnr
                                inner join mara as d on dmatnr = bmatnr
                                inner join eket as e on eebeln = aebeln
                                               and   eebelp = bebelp
                                where c~beskz = 'E'
                                and   c~werks = '1000'
                                and   d~mtart = 'FERT'
                                and   b~loekz = space
                                and   b~elikz = space
                                and   e~eindt in r_eindt.
    if sy-subrc ne 0.
    message e000(zwave) with 'No open purchase order found'.
    endif.
    ENDFORM.                    " get_data_tables
    *&      Form  display_data
          text
    FORM display_data.
    Fill the Fiedlcat
      PERFORM fieldcat_init  using gt_fieldcat[].
      CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
       EXPORTING
       I_INTERFACE_CHECK                 = ' '
       I_BYPASSING_BUFFER                =
       I_BUFFER_ACTIVE                   = ' '
         I_CALLBACK_PROGRAM                = v_repid
       I_CALLBACK_PF_STATUS_SET          = ' '
        I_CALLBACK_USER_COMMAND           = g_user_command
       I_CALLBACK_TOP_OF_PAGE            = ' '
       I_CALLBACK_HTML_TOP_OF_PAGE       = ' '
       I_CALLBACK_HTML_END_OF_LIST       = ' '
       I_STRUCTURE_NAME                  =
       I_BACKGROUND_ID                   = ' '
       I_GRID_TITLE                      =
       I_GRID_SETTINGS                   =
       IS_LAYOUT                         = gr_layout_bck
          IT_FIELDCAT                       = gt_fieldcat[]
       IT_EXCLUDING                      =
       IT_SPECIAL_GROUPS                 =
       IT_SORT                           =
       IT_FILTER                         =
       IS_SEL_HIDE                       =
       I_DEFAULT                         = 'X'
        I_SAVE                            = g_save
        IS_VARIANT                        =
       IT_EVENTS                         =
       IT_EVENT_EXIT                     =
       IS_PRINT                          =
       IS_REPREP_ID                      =
       I_SCREEN_START_COLUMN             = 0
       I_SCREEN_START_LINE               = 0
       I_SCREEN_END_COLUMN               = 0
       I_SCREEN_END_LINE                 = 0
       IT_ALV_GRAPHICS                   =
       IT_ADD_FIELDCAT                   =
       IT_HYPERLINK                      =
       I_HTML_HEIGHT_TOP                 =
       I_HTML_HEIGHT_END                 =
       IT_EXCEPT_QINFO                   =
    IMPORTING
       E_EXIT_CAUSED_BY_CALLER           =
       ES_EXIT_CAUSED_BY_USER            =
        TABLES
          T_OUTTAB                          = i_output
       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_data
    *&      Form  fieldcat_init
          text
         -->P_GT_FIELDCAT[]  text
    FORM fieldcat_init USING  e01_lt_fieldcat type slis_t_fieldcat_alv.
      DATA: LS_FIELDCAT TYPE SLIS_FIELDCAT_ALV.
    Purchase order number
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'EBELN'.
      LS_FIELDCAT-ref_fieldname = 'EBELN'.
      LS_FIELDCAT-ref_tabname = 'EKKO'.
      LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.
      ls_fieldcat-seltext_L = 'Purchase Order'.
      ls_fieldcat-seltext_M = 'Purchase Order'.
      ls_fieldcat-seltext_S = 'Purchase Order'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    Material #
      CLEAR LS_FIELDCAT.
      LS_FIELDCAT-FIELDNAME    = 'MATNR'.
      LS_FIELDCAT-ref_fieldname = 'MATNR'.
      LS_FIELDCAT-ref_tabname = 'EKPO'.
      LS_FIELDCAT-TABNAME    = 'I_OUTPUT'.
      ls_fieldcat-seltext_L = 'Material'.
      ls_fieldcat-seltext_M = 'Material'.
      ls_fieldcat-seltext_S = 'Material'.
      APPEND LS_FIELDCAT TO E01_LT_FIELDCAT.
    ENDFORM.                    " fieldcat_init

  • Use of SAVE_TEXT in customer exits / BADI for purchase order

    Hi All,
    I am trying to save some long text by using SAVE_TEXT function module in a badi implementation for purchase order header text. The same is working fine if i try to update the PO header text via a report. But if i try using badi (the code is written in a PAI event for the BADI), then though the text transfer and save is successful during the code excution, but for the first time when i add any text its not visible in ME22N tcode. Since its an online event. But when i double click on that editor and the sap script editor gets opened. then i press back button, the text is appearing on the same small screen edtor . after this any number of time i edit or delete text, the save_text function module works fine.
    My issue is why for the first time always i have to double click on the editor to open the sap script editor. I have also included commit_text in this case after save_text FM.
    the requirement here goes like this. in one tab for PO header the user will enter some number (This is a customizing screen implemented through badi.) and the corresponsing discription should appear when user clicks on text tab in po header screen (me21n / me22n).
    Kindly help.
    Thanks
    Mamata

    Hi  mamata rath
    I have solve the problem which similar to yours.  the code which is as the following
    DATA: textline TYPE tdline,
            name TYPE c LENGTH 70,
            glines TYPE TABLE OF tline,
            gline  LIKE LINE OF glines,
            ls_header TYPE thead.
         CONCATENATE ch_eban-banfn ch_eban-bnfpo INTO name.
             ls_header-tdobject = 'EBAN'.
             ls_header-tdname = name.
             ls_header-tdid = 'B01'.
             ls_header-tdspras = sy-langu.
             CALL FUNCTION 'SAVE_TEXT'
               EXPORTING
    *           CLIENT                = SY-MANDT
                 header                = ls_header
    *           INSERT                = ' '
    *           SAVEMODE_DIRECT       = ' '
    *           OWNER_SPECIFIED       = ' '
    *           LOCAL_CAT             = ' '
    *         IMPORTING
    *           FUNCTION              =
    *           NEWHEADER             =
               tables
                 lines                 = glines
               EXCEPTIONS
                 ID                    = 1
                 LANGUAGE              = 2
                 NAME                  = 3
                 OBJECT                = 4
                 OTHERS                = 5
              IF sy-subrc = 0.
                  CALL FUNCTION 'COMMIT_TEXT'
                    EXPORTING
                      OBJECT                = 'EBAN'
                      NAME                  = name
    *                ID                    = '*'
    *                LANGUAGE              = '*'
    *                SAVEMODE_DIRECT       = ' '
    *                KEEP                  = ' '
    *                LOCAL_CAT             = ' '
    *              IMPORTING
    *                COMMIT_COUNT          =
    *              TABLES
    *                T_OBJECT              =
    *                T_NAME                =
    *                T_ID                  =
    *                T_LANGUAGE            =
              ENDIF.

  • Problem in creating a SyncBo for Purchase Order BAPIs

    Hello Everybody,
    I am trying to create a smart sync application for Purchase Orders.
    I have used standard bapis like BAPI_PO_GETDETAIL AND BAPI_PO_CREATE1.
    I have developed my own wrapper functions using these std bapis. For the PO creation i only plan to insert the necessary and mandatory data. The problem i face is that some of the tables in the create bapi which are mandatory for a PO creation are freezed in the SyncBo.
    Tables like POITEMX, POADDRDELIVERY, POSCHEDULE and structure POHEADERX are all required for the creation of a PO. Without this minimum data a PO cannot be created.
    After i have created the syncBo, on the mapping screen i can only see these tables under the create BAPI. But i am not able to perform the mapping of their fields. These are non-editable or i must say that they are freezed.
    And if i cannot map them then i cannot pass data for them from the client. Although i can do the mapping for the table PO_ITEM and the structure PO_HEADER.
    I hope i am able to expplain my problem. Kindly get back to me if i am not clear. Any sort of help is welcome.
    Thanking in advance,
    Saurabh.

    Hi Saurabh,
    Hope you are aware of the prerequisites for creating the BAPI Wrappers.
    If you want to insert some data into the Business Object, then you have to include
    GETLIST, GETDETAIL and CREATE Bapi Wrappers.
    I think in your case,
    You might not have mapped those fields in your GETLIST Bapi Wrapper.Just check whether you have mapped those fields that are necessary for PO creation in your GETLIST and GETDETAIL BApi wrapper mapping screen.
    Those fields you have mapped in the GETLIST and GETDETAIL BAPI wrappers will be visible (for selection - checkboxes will be editable) in the mapping screen for CREATE BAPI Wrapper.
    So first of all, you have to map fields there in the mapping screens for GETLIST and GETDETAIL Bapi Wrappers...
    check this thing...
    refer these links..
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/com.sap.km.cm.docs/library/mobile/mobile%20infrastructure/mobile%20development%20kit%202.5/content/appdev/smartsync/introduction.html
    https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/com.sap.km.cm.docs/library/mobile/mobile%20infrastructure/mobile%20development%20kit%202.5/content/appdev/smartsync/bapi_wrapper_types.html
    In the second link, you can see one figure, which is explaining the things that are to be satisfied by the BAPI Wrappers for SyncBO creation...
    Let me know If you have doubts in the prerequisite section itself...
    Regards,
    Kishor Gopinathan

  • Call BAPI_GOODSMVT_CREATE to create a goods receipt for purchase order

    Hi,
    I'm calling the bapi BAPI_GOODSMVT_CREATE to create a goods receipt for purchase order, but the following code doesn't work. It doesn't give me any kind of error message but it does nothing as well...
    Can anyone help me please?
    Thank You
    Hugo
    Code
    DATA: wa_goodsmvt_header  LIKE bapi2017_gm_head_01,
                            wa_goodsmvt_code    LIKE bapi2017_gm_code,
                            wa_bapi2017_gm_head TYPE bapi2017_gm_head_ret-mat_doc.
                      DATA: it_goodsmvt_item LIKE bapi2017_gm_item_create OCCURS  0 WITH HEADER LINE,
                            it_return        LIKE bapiret2 OCCURS  0 WITH HEADER LINE.
                      wa_goodsmvt_header-pstng_date = SY-DATUM.
                      wa_goodsmvt_header-doc_date   = SY-DATUM.
                      wa_goodsmvt_header-ref_doc_no = '4500000020'.
                      wa_goodsmvt_code-gm_code = '01'.          "Goods receipt for purchase Order
                      it_goodsmvt_item-stge_loc  = 'BPF2'.
                      it_goodsmvt_item-move_type = '101' .
                      it_goodsmvt_item-entry_qnt = 17.
                      it_goodsmvt_item-entry_uom = 'KG'.
                      it_goodsmvt_item-mvt_ind   = 'B'.
                      it_goodsmvt_item-po_number = '4500000020'.
                      it_goodsmvt_item-po_item   = '00010'.
                      it_goodsmvt_item-material  = '50'.
                      APPEND it_goodsmvt_item.
                      CALL FUNCTION  'BAPI_GOODSMVT_CREATE'
                        EXPORTING
                          goodsmvt_header  = wa_goodsmvt_header
                          goodsmvt_code    = wa_goodsmvt_code
                        IMPORTING
                          materialdocument = wa_bapi2017_gm_head
                        TABLES
                          goodsmvt_item    = it_goodsmvt_item
                          return            = it_return.
                        data: begin of errmsg occurs 10.
                                include structure bapiret2.
                        data: end of errmsg.
                        data: wmenge like iseg-menge,
                              errflag.
                        clear errflag.
                        loop at errmsg.
                          if errmsg-type eq 'E'.
                            write:/'Error in function', errmsg-message.
                            errflag = 'X'.
                          else.
                            write:/ errmsg-message.
                          endif.
                        endloop.
                        if errflag is initial.
                          commit work and wait.
                          if sy-subrc ne 0.
                            write:/ 'Error in updating'.
                            exit.
                          else.
                            write:/ 'Ok'.
                          endif.
                        endif.
                        CALL FUNCTION 'BAPI_TRANSACTION_COMMIT'
                        EXPORTING
                        wait = ' '.

    Hi,
    Thank you for the asnwer! I'm a rookie at ABAP so please forgive my stupid questions
    I've changed the code to:
    DATA: wa_goodsmvt_header  LIKE bapi2017_gm_head_01,
                            wa_goodsmvt_code    LIKE bapi2017_gm_code,
                            wa_bapi2017_gm_head TYPE bapi2017_gm_head_ret-mat_doc.
                      DATA: it_goodsmvt_item LIKE bapi2017_gm_item_create OCCURS  0 WITH HEADER LINE,
                            it_return        LIKE bapiret2 OCCURS  0 WITH HEADER LINE.
                      wa_goodsmvt_header-pstng_date = SY-DATUM.
                      wa_goodsmvt_header-doc_date   = SY-DATUM.
                      wa_goodsmvt_header-ref_doc_no = '4500000020'.
                      wa_goodsmvt_code-gm_code = '01'.          "Goods receipt for purchase Order
                      it_goodsmvt_item-plant     = 'BP01'.
                      it_goodsmvt_item-stge_loc  = 'BPF2'.
                      it_goodsmvt_item-move_type = '101' .
                      it_goodsmvt_item-entry_qnt = 10.
                      it_goodsmvt_item-entry_uom = 'KG'.
                      it_goodsmvt_item-mvt_ind   = 'B'.
                      it_goodsmvt_item-po_number = '4500000020'.
                      it_goodsmvt_item-po_item   = '10'.
                      it_goodsmvt_item-material  = '50'.
                      APPEND it_goodsmvt_item.
                      CALL FUNCTION  'BAPI_GOODSMVT_CREATE'
                        EXPORTING
                          goodsmvt_header  = wa_goodsmvt_header
                          goodsmvt_code    = wa_goodsmvt_code
                        IMPORTING
                          materialdocument = wa_bapi2017_gm_head
                        TABLES
                          goodsmvt_item    = it_goodsmvt_item
                          return            = it_return.
                          write:/ it_return-message.
    And the return message is : Material document data and PO data do not match (Material)
    Any idea of what might be the problem?
    Thanks

  • No goods receipt possible for purchase order 'PO#" "Lineitem"

    Hi gurus,
    Please help on below error.
    While doing return to vendor transaction using BAPI 'BAPI_GOODSMVT_CREATE' error 'No goods receipt possible for purchase order 'PO#" "Lineitem"' was encountered. As checked, all data are correct including the plant, sloc, PO#, stocks, batch.
    Please kindly advice on how to resolve the issue.
    Thank you in advance.

    Hi,
    Few things which immediately comes to my mind.
    1. Check if the PO is released?
    2. Check if the confirmation control is properly set in Confirmations tab of item details of a PO.
    3. Check if the Goods Receipt indicator is ticked at item level of PO.
    I hope these helps.
    Kind Regards,
    Prakash

  • Goods Receipts for Purchase Order using BAPI_GOODSMVT_CREAT

    Hi experts,
    I am working on the a program where am generating Goods Receipts for Purchase Order. the BAPI_GOODSMVT_CREAT returns an error saying "Material 6003022 not maintained in plant 1001"
    Can any one assist? is there a field I may be missing?
    Here is a sample code.
    DATA: gm_header TYPE bapi2017_gm_head_01.
    DATA: gm_code TYPE bapi2017_gm_code.
    DATA: gm_headret TYPE bapi2017_gm_head_ret.
    DATA: gm_item TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE.
    DATA: gm_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE.
    DATA: gm_retmtd TYPE bapi2017_gm_head_ret-mat_doc.
    CLEAR: gm_return, gm_retmtd.
    REFRESH gm_return.
    Setup BAPI header
    "data
    gm_header-pstng_date = sy-datum.
    gm_header-doc_date = sy-datum.
    gm_code-gm_code = '02'.
    " MB1A * Write 971 movement to table CLEAR GM_ITEM.
    MOVE '101' TO gm_item-move_type .
    " MOVE 'Q' TO GM_ITEM-SPEC_STOCK.
    MOVE '6003022' TO gm_item-material.
    MOVE '10' TO gm_item-entry_qnt.
    MOVE 'EA' TO gm_item-entry_uom.
    MOVE '1001' TO gm_item-plant.
    MOVE '' TO gm_item-stge_loc.
    MOVE '0901' TO gm_item-move_reas.
    "  MOVE '4500006877' TO GM_ITEM-WBS_ELEM.
    "  MOVE '0020' TO GM_ITEM-VAL_WBS_ELEM.
    MOVE '0020' TO gm_item-deliv_numb.
    MOVE '4500006881' TO gm_item-po_number.
    MOVE '0010' TO gm_item-po_item.
    APPEND gm_item.
    Call goods movement BAPI
    CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
      EXPORTING
        goodsmvt_header  = gm_header
        goodsmvt_code    = gm_code
      IMPORTING
        goodsmvt_headret = gm_headret
        materialdocument = gm_retmtd
      TABLES
        goodsmvt_item    = gm_item
        return           = gm_return.
    IF NOT gm_retmtd IS INITIAL.
      COMMIT WORK AND WAIT.
      CALL FUNCTION 'DEQUEUE_ALL'.
    ELSE.
      COMMIT WORK AND WAIT.
      CALL FUNCTION 'DEQUEUE_ALL'.
    ENDIF.

    >
    Spark842 wrote:
    > Hi experts,
    > I am working on the a program where am generating Goods Receipts for Purchase Order. the BAPI_GOODSMVT_CREAT returns an error saying "Material 6003022 not maintained in plant 1001"
    >  Can any one assist? is there a field I may be missing?
    >
    > Here is a sample code.
    >
    > DATA: gm_header TYPE bapi2017_gm_head_01.
    > DATA: gm_code TYPE bapi2017_gm_code.
    > DATA: gm_headret TYPE bapi2017_gm_head_ret.
    > DATA: gm_item TYPE TABLE OF bapi2017_gm_item_create WITH HEADER LINE.
    > DATA: gm_return TYPE bapiret2 OCCURS 0 WITH HEADER LINE.
    > DATA: gm_retmtd TYPE bapi2017_gm_head_ret-mat_doc.
    > CLEAR: gm_return, gm_retmtd.
    > REFRESH gm_return.
    > * Setup BAPI header
    > "data
    > gm_header-pstng_date = sy-datum.
    > gm_header-doc_date = sy-datum.
    > gm_code-gm_code = '02'.
    >
    >
    > " MB1A * Write 971 movement to table CLEAR GM_ITEM.
    > MOVE '101' TO gm_item-move_type .
    > " MOVE 'Q' TO GM_ITEM-SPEC_STOCK.
    > MOVE '6003022' TO gm_item-material.
    > MOVE '10' TO gm_item-entry_qnt.
    > MOVE 'EA' TO gm_item-entry_uom.
    > MOVE '1001' TO gm_item-plant.
    > MOVE '' TO gm_item-stge_loc.
    > MOVE '0901' TO gm_item-move_reas.
    > "  MOVE '4500006877' TO GM_ITEM-WBS_ELEM.
    > "  MOVE '0020' TO GM_ITEM-VAL_WBS_ELEM.
    > MOVE '0020' TO gm_item-deliv_numb.
    > MOVE '4500006881' TO gm_item-po_number.
    > MOVE '0010' TO gm_item-po_item.
    > APPEND gm_item.
    >
    > * Call goods movement BAPI
    >
    > CALL FUNCTION 'BAPI_GOODSMVT_CREATE'
    >   EXPORTING
    >     goodsmvt_header  = gm_header
    >     goodsmvt_code    = gm_code
    >   IMPORTING
    >     goodsmvt_headret = gm_headret
    >     materialdocument = gm_retmtd
    >   TABLES
    >     goodsmvt_item    = gm_item
    >     return           = gm_return.
    >
    > IF NOT gm_retmtd IS INITIAL.
    >
    >   COMMIT WORK AND WAIT.
    >   CALL FUNCTION 'DEQUEUE_ALL'.
    > ELSE.
    >   COMMIT WORK AND WAIT.
    >
    >   CALL FUNCTION 'DEQUEUE_ALL'.
    > ENDIF.
    My guess, is that this material is not really maintained in the Plant '1001', to be on the safer side, get the exact values from EKPO itself, also check if this material exists in the table MARC for the plant and storage location.
    MOVE '1001' TO gm_item-plant.   "<< Hard coded
    MOVE '' TO gm_item-stge_loc.
    Replace the above hardcodes to something like this to get the actual value from EKPO.
    select werks lgort into (gm_item-plant, gm_item-stge_loc) from ekpo
       where ebeln = gm_item-po_number
            and ebelp = gm_item-po_item.

Maybe you are looking for

  • Questions on cache and general RSRT settings for plancube

    Hi, we would like to: 1) set request status 1 in RSRT for our planqueries, in order to automatically refresh the query after executing a planfunction (problem we have now is that the results of a planfunction are not automatically updated in the quer

  • G/L Accounts

    Hello    What are Cost of Goods Sold Account & Purchase Offset A/c in Expenditure Thanks

  • Dojo drag-and-drop functionality - how to record?

    Hello, I am preparing some e-Tester scripts for our project. On one of the pages, the user has to choose some people as team members. This process is dynamic, and is developed and written using dojo (dojotoolkit.org) drag-and drop capabilities. Basic

  • Security roles and profiles

    Hello, Could you please provide information on "security roles and profiles " I would appreciate. Regards, Alex

  • Reg : Inputfield in ALV

    Hi All, I ve 3 columns and 5 rows. say,         c1       c2       c3 r1      ac1     ac2     ac3 r2      bc1     bc2     bc3 r3      cc1     cc2     cc3 r4      dc1     dc2     dc3 r5      ec1     ec2     ec3 now all fields in column c1 and c3 are co