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,
PiyushDear,
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,
SenthilHi
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.
MickHi
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 BahalFor 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 reddycheck 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
MamataHi 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
-
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
-
Hello, Could you please provide information on "security roles and profiles " I would appreciate. Regards, Alex
-
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