BADI for GR boxes on PO
Is there a BADI that can automatically check the GR boxes on the PO if the line item is over a certain amount?
We have the boxes automatically checked as a part of workflow. But, if the user goes into the PO and changes the account assignment category, the GR boxes get unchecked (I think it is then looking at the config). We do not require a GR for every line item. Certain material groups and dollar amounts are the triggers for the GR.
Also, if the user adds a line item that would normally require a GR but the change does not result in the PO going back through workflow, the GR boxes will not get checked.
Fisher Li, the programmer, recommends the following:
method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM .
DATA: ls_mepoitem TYPE mepoitem.
ls_mepoitem = im_item->get_data( ).
if ls_mepoitem-ebeln = '097' or ls_mepoitem-ebeln = '97'.
ls_mepoitem-WEPOS = space.
Update the PO line item
CALL METHOD IM_ITEM->SET_DATA
EXPORTING
IM_DATA = ls_mepoitem.
endif.
endmethod.
Similar Messages
-
User exit/BADI for Return PO item delivery Address
Hi Guyz,
We have a requirement where in when a PO item is marked as return PO item(In ME21n/ME22n/ME23n We have check box at item level) and click on enter/Check/Save, In delivery address of item details we have to populate Vendor address. By default SAP populates Plant address. If we manually give Vendor number in item details=>Delivery address tab then it populates vendor address. We want to automate this functionality.
Is there any Exit/BADI which serve this purpose.
Note: We need this functionality for few doc types(i.e PO doc type should also be available in the exit).
Any ideas could be really helpfull.
Thanks,
Vinod.Hi,
there are some user-exit & enhancements....
MEQUERY1 Enhancement to Document Overview ME21N/ME51N
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
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
MELAB001 Gen. forecast delivery schedules: Transfer schedule implem.
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
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
M06B0003 Number range and document number
Some BADI s:
ME_PROCESS_PO Enhancements for Processing Enjoy Purchase Order: Intern.
ME_PROCESS_COMP Processing of Component Default Data at Time of GR: Customer
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_DEFINE_CALCTYPE Control of Pricing Type: Additional Fields
ME_COMMTMNT_REQ_RE_C Check of Commitment Relevance of Purchase Requisitions
ME_COMMTMNT_REQ_RELE Check of Commitment Relevance of Purchase Requisitions
ME_PROCESS_PO_CUST Enhancements for Processing Enjoy Purchase Order: Customer
SMOD_MRFLB001 Control Items for Contract Release Order
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_PURCHDOC_POSTED Purchasing Document Posted
ME_PROCESS_REQ_CUST Enhancements for Processing Enjoy PReqs: Customer
ME_PROCESS_REQ Enhancements for Processing Enjoy PReqs: Internal
ME_COMMTMNT_PO_REL_C Check for Commitment-Relevance of Purchase Orders
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
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)
ME_CCP_DEL_DURATION Calc. of Delivery Duration in CCP Process (Not in Standard)
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
ME_CHECK_ALL_ITEMS Run Through Items Again in the Event of Changes in EKKO
ME_CHANGE_OUTTAB Enrich ALV Output Table in Purchasing
ME_CHANGE_CHARACTER Customer-Specific Characteristics for Product Allocation
No.of Exits: 35
No.of BADis: 55
Arunima -
User EXIT, BADI for T-code ME21n, ME21
Hi Guru's,
I have rquirement where for some company codes user dont want GR and GR based invoicing if net price for PO is less than 100 GBP as it is very small quantity.
To achive this we have to uncheck Goods receipt check bax from tab 'Delivery' and uncheck inv. receipt check box from tab 'Invoice' of item level view at the time of PO creation.
Now, i am serching for User exit or BADI which will serve this purpose, as T-code ME21n is enjoy transaction for ME21 i dont think we will get any user exit, we have to do it through BADI.
If anyone has done something like this and have idea how i can achive this please revert back.
regards,
Rahulhttp://www.erpgenie.com/sap/abap/code/abap26.htm
which gives the list of exits for a tcode
Below code will give a list of BADIs for particular transaction.
*& Report ZNEGI16 *
REPORT ZNEGI16 .
TABLES : TSTC,
TADIR,
MODSAPT,
MODACT,
TRDIR,
TFDIR,
ENLFDIR,
SXS_ATTRT ,
TSTCT.
DATA : JTAB LIKE TADIR OCCURS 0 WITH HEADER LINE.
DATA : FIELD1(30).
DATA : V_DEVCLASS LIKE TADIR-DEVCLASS.
PARAMETERS : P_TCODE LIKE TSTC-TCODE,
P_PGMNA LIKE TSTC-PGMNA .
DATA wa_tadir type tadir.
START-OF-SELECTION.
IF NOT P_TCODE IS INITIAL.
SELECT SINGLE * FROM TSTC WHERE TCODE EQ P_TCODE.
ELSEIF NOT P_PGMNA IS INITIAL.
TSTC-PGMNA = P_PGMNA.
ENDIF.
IF SY-SUBRC EQ 0.
SELECT SINGLE * FROM TADIR
WHERE PGMID = 'R3TR'
AND OBJECT = 'PROG'
AND OBJ_NAME = TSTC-PGMNA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
IF SY-SUBRC NE 0.
SELECT SINGLE * FROM TRDIR
WHERE NAME = TSTC-PGMNA.
IF TRDIR-SUBC EQ 'F'.
SELECT SINGLE * FROM TFDIR
WHERE PNAME = TSTC-PGMNA.
SELECT SINGLE * FROM ENLFDIR
WHERE FUNCNAME = TFDIR-FUNCNAME.
SELECT SINGLE * FROM TADIR
WHERE PGMID = 'R3TR'
AND OBJECT = 'FUGR'
AND OBJ_NAME EQ ENLFDIR-AREA.
MOVE : TADIR-DEVCLASS TO V_DEVCLASS.
ENDIF.
ENDIF.
SELECT * FROM TADIR INTO TABLE JTAB
WHERE PGMID = 'R3TR'
AND OBJECT in ('SMOD', 'SXSD')
AND DEVCLASS = V_DEVCLASS.
SELECT SINGLE * FROM TSTCT
WHERE SPRSL EQ SY-LANGU
AND TCODE EQ P_TCODE.
FORMAT COLOR COL_POSITIVE INTENSIFIED OFF.
WRITE:/(19) 'Transaction Code - ',
20(20) P_TCODE,
45(50) TSTCT-TTEXT.
SKIP.
IF NOT JTAB[] IS INITIAL.
WRITE:/(105) SY-ULINE.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
Sorting the internal Table
sort jtab by OBJECT.
data : wf_txt(60) type c,
wf_smod type i ,
wf_badi type i ,
wf_object2(30) type C.
clear : wf_smod, wf_badi , wf_object2.
Get the total SMOD.
LOOP AT JTAB into wa_tadir.
at first.
FORMAT COLOR COL_HEADING INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 'Enhancement/ Business Add-in',
41 SY-VLINE ,
42 'Description',
105 SY-VLINE.
WRITE:/(105) SY-ULINE.
endat.
clear wf_txt.
at new object.
if wa_tadir-object = 'SMOD'.
wf_object2 = 'Enhancement' .
elseif wa_tadir-object = 'SXSD'.
wf_object2 = ' Business Add-in'.
endif.
FORMAT COLOR COL_GROUP INTENSIFIED ON.
WRITE:/1 SY-VLINE,
2 wf_object2,
105 SY-VLINE.
endat.
case wa_tadir-object.
when 'SMOD'.
wf_smod = wf_smod + 1.
SELECT SINGLE MODTEXT into wf_txt
FROM MODSAPT
WHERE SPRSL = SY-LANGU
AND NAME = wa_tadir-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED OFF.
when 'SXSD'.
For BADis
wf_badi = wf_badi + 1 .
select single TEXT into wf_txt
from SXS_ATTRT
where sprsl = sy-langu
and EXIT_NAME = wa_tadir-OBJ_NAME.
FORMAT COLOR COL_NORMAL INTENSIFIED ON.
endcase.
WRITE:/1 SY-VLINE,
2 wa_tadir-OBJ_NAME hotspot on,
41 SY-VLINE ,
42 wf_txt,
105 SY-VLINE.
AT END OF object.
write : /(105) sy-ULINE.
ENDAT.
ENDLOOP.
WRITE:/(105) SY-ULINE.
SKIP.
FORMAT COLOR COL_TOTAL INTENSIFIED ON.
WRITE:/ 'No.of Exits:' , wf_smod.
WRITE:/ 'No.of BADis:' , wf_badi.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'No userexits or BADis exist'.
ENDIF.
ELSE.
FORMAT COLOR COL_NEGATIVE INTENSIFIED ON.
WRITE:/(105) 'Transaction does not exist'.
ENDIF.
AT LINE-SELECTION.
data : wf_object type tadir-object.
clear wf_object.
GET CURSOR FIELD FIELD1.
CHECK FIELD1(8) EQ 'WA_TADIR'.
read table jtab with key obj_name = sy-lisel+1(20).
move jtab-object to wf_object.
case wf_object.
when 'SMOD'.
SET PARAMETER ID 'MON' FIELD SY-LISEL+1(10).
CALL TRANSACTION 'SMOD' AND SKIP FIRST SCREEN.
when 'SXSD'.
SET PARAMETER ID 'EXN' FIELD SY-LISEL+1(20).
CALL TRANSACTION 'SE18' AND SKIP FIRST SCREEN.
endcase.
It may help you.
Best Regards,
Vibha
*Please mark all the helpful answers -
Problem with finding BADI for transaction F9K2
I Found many BADIs for the transaction...but am not able to decide which is suitable for my requirement..
my requirement is ..i need to keep check box removing radiobutton in the the transctio F9K2 in tab 'accounts statements' in Bk.st.orig column....
in which BADI i can Achieve my requirement....Hi aman,
Clif parameter is not getting filled when debugging the screen.and i need the badi which changes the radio button field "bk.st.orig" to checkbox in the table control of the account statement tabstrip . can please help in this regard.
thanks and regards -
I'm new to this forum and only just bought an 80GB iPod classic. Anyway, I don't actually like the menu displays. I never put cover art on my iPod and it also annoys me when you see a track and instead of the cover art it comes up with a grey box and question mark. Is there any way or any software you can use to either get rid of these, or change the display settings for it to be like the menus of a 5th generation iPod?
I feel bad for asking, feel bad for not liking the new screen designs, but can anyone please help me out?There is not way to change it short of hacking the iPod, and I don't know of any that are currently available. You could find someone with a late 5th Gen iPod and trade with them.
Why not put the cover are on it and go with the flow..so to speak. -
BADI for raising alert when Saving Opportunity
Hi,
Can some one help me with identifying the BADI for raising a alert when saving a opportunity, and suggest steps to implement that BADI?
Regards,
ChinnuHi Chinnu,
Implement the method 'CHECK_BEFORE_SAVE' of BADI 'ORDER_SAVE'.
Transaciton: SE18, enter ORDER_SAVE in the BADI text box and in the menu choose 'Enhancement implementation' and select overview. You will get a pop up and at the bottom you will get a create button. Go ahead.
Reward if helpful.
Regards,
Naveen -
Would 100% width on a Fluid Grid Layout be bad for any reason?
I was thinking of setting 100% width on my Fluid Grid Layout (for all media queries) so I wouldn't have to go outside the fluid container for my header and footer bar. Would this be bad for any reason? I feel like they probably preset sizes below 100% for a reason.
If you are talking about desktop version then NO provided you assign margins, paddings and borders to html tags rather than the Divs. This is because borders, margins and paddings are all part of the box model and so the overall width could possibly exceed 100%.
Hope this helps for you to search for box model and how it works on W3C website.
Good luck. -
i have a password protected side of my laptop where i do the majority of my work. i have been getting these bad disk dialogue boxes that pop up. i had been ignoring them for a while and finally clicked on the "start backup process". the reason that i hadn't before is because i have a seagate 1t external hard drive and when i have tried to backup without it would never work. after clicking to start the backup process the computer restarted and i have not been able to enter the password protected side of my laptop. i can access the guest side. i am not sure what to do to resolve this...can anyone help?
i have a satellite a305-s6898 with vista...please let me know if you need any further info to helpwhen i enter my password it says "the user profile service service failed the logon user profile cannot be loaded"
Thank you. Now we're getting somewhere. See the following Microsoft article.
You receive a "The User Profile Service failed the logon” error message
You probably need to log into the hidden Administrator account to follow those instructions.
Enable or Disable Built-in Administrator Account in Windows Vista
If you can't enable it from the Guest account or in Safe Mode, then you may need to do so from the Recovery Environment (WinRE).
How to Enable the Built-in Administrator Account from WinRE
If you are not sufficiently technically proficient, you may want to seek help from somebody who is. It would be easy to mess things up even more.
it said something like "the system encountered a bad hard disk" and it needed to be addressed. it prompted me to the backup process..
It certainly appears to me that your hard drive is failing. That may very well be the reason for this trouble.
Do you have important files that have not yet been copied to external media? Files that you cannot afford to lose?
-Jerry -
Is it bad for the computer to save thousands of emails?
Hi,
I have been told that it is bad for the computer to save thousands of emails... unless I somehow turn them into documents.
Is this true? And if so, how would you go about doing this? I find it very useful to go back and look through emails for certain things...
Thanks in advance...Hi there,
It is my understanding that problems may arise if you store a large amount of e-mail messages in the Inbox (and maybe also in the Sent box). I like to keep a large amount of e-mail also and what's been recommended is to create new mailboxes and drag the messages you wish to store into these. You may name them with descriptive names that will help you with categorization. To create the boxes, go down to that little "+" sign at the bottom lefthand corner of the Mail window. There is supposedly some max size your Inbox needs to stay beneath for Mail to function correctly, but you can let the size of these extra boxes get very large without problem.
There are also ways to archive e-mail completely outside of Mail, but I've never done this myself. A search of discussions will probably yield more information on that technique. But a good thing to do right now is to create additional mailboxes as I've outlined above.
Post back. Good luck.
Steve M. -
Reg. Exit/BADI for changing item data of PO in ME22N
Hi all,
My requirement is to update the field LABNR (Order Ack.) of few specific line items of a PO, in the Transaction ME22N, using Exit/BADI.
I have tried the BADI ME_PROCESS_PO_CUST. But the PROCESS_ITEM method of this BADI processes only the line item which has been changed/inserted in ME22N transaction. But my requirement is to update line items irrespective of whether that line item was "changed/not changed" during the process in ME22N screen.
Could you please suggest me some suitable Exit/BADI for this requirement.
Regards,
Anbarasan KThanks Martin.
Problem solved by implementing the method Process_Header.
1. Get the items from Header - im_header->get_items
2. Loop the item list and get the line item record - re_item-item->get_data
3. <- Logic to Update the line item - >.
4. Update the line item - re_item-item->set_data
Thank you very much.. Martin.
Regards,
Anbarasan K -
Do you have any idea what is the BADI for creation of Purchase Order?
Hi Gurus, I would like to ask regarding the BADI for the P.O creation in SRM. I have a requirement that if the Account Assignment Type is "asset" it should tick the checkbox (goods receipt/confirmation of performance of service) in the related documents tab of item. Thanks a lot. I hope you can help me gurus.
Thanks for the help.
-
User Exit/ BADI for PO release
Hi Experts,
Can anyone please tell me about the User Exit or BADI for Sub contract PO release.Also tel me how to proceed for the following 2 requirement ,
i have to send an IDOC as & when the Sub contract PO releases.
And automatically resent if changes are made in PO with the repeat output function in ME22N.
Regards,
NikHi,
Use trx SE19 to implement your BADI: create an ZME_PROCESS_PO_CUST using ME_PROCESS_PO_CUST as definition.
Now in Interface Tabs you can see the METHODs you can use as "user-exit", in particular there's PROCESS_ITEM to manage items data.
You have to write your code into this method.
This method has IM_ITEM like parameter in its interface, and it's like the type IF_PURCHASE_ORDER_ITEM_MM.
This type has the method IF_LONGTEXTS_MM~SET_TEXT, you can try to use it to set your text in item.
This is code for example:
DATA: TLINE TYPE MMPUR_T_TEXTLINES.
CALL METHOD IM_ITEM->IF_LONGTEXTS_MM~SET_TEXT
EXPORTING
IM_TDID = <YOUR ID>
IM_TEXTLINES = TLINE.
So you should read the text you want to copy and pass it to TLINE.
You can use the METHOD PROCESS_HEADER to read the text you need. This METHOD has IM_HEADER as parameter and it's like the type IF_PURCHASE_ORDER_MM, this type has the method IF_LONGTEXTS_MM~GET_TEXT to read header logn text.
Anyway while you're in implementation of the BADI go to:
GoTo->Sample Code
Here you can try an example how to implement the method you need to use.
Regards -
User exit / BADI for training and event management
Hi all,
Can anybody tell me if there is any user exit / BADI for training and event management module?
Thanks & regards,
LOIHi
BADI's for Training and Event Management
HRTEM00MASTERDATA HR: Training and Event Management - Master Data
HRTEM00NET_ACTIVITY Determine Activities of an Attendee (e.g. ESS PV8I)
HRTEM00NET_WEBST Set Cancellation Reason in ESS PV8I
HRTEM_CORR_NOTIF_REQ Customer Enhancement:Confirmation on Send (R/3 Mail, E-Mail)
HRTEM_HANDLE_BOOKING HR-TEM BAdI: Employee Leaves Company - Update TEM Data
HRTEM_INT_ZW HR-TEM: Badi for Integration TEM - Time Management
HRTEM_READ_OBJECT Customer Enhancement: Name Format
RHPV0001 Customer Enhancement for Additional Checks for Booking
Enhancemnet Spot:
HRTEM00MASTERDATA HR: Training and Event Management - Master Data
~~~Ganesh Kumar K. -
How to create a BADI for the sceanrio
Hi abapers,
I have a scenario as follows.
I create a Transaction where in i put the details of the product and quantity for a particular project's site. The amount gets calculated based on the products unit value and its displayed in net value field. Now the user saves the transaction and a number gets generated. If the net value amount is less than 500 then the user can approve , if its greater than 501 and less than 1500 then a mail should be generated to his superior who is able to approve and ifs amount is greater than 1501 then a mail should be generated to the top of hierarchy who should approve it.
Now the real challenge is if the same project card has more than 1 new request and the amount is less than 500 the user should not be able to approve instead it should generate a mail to his hierarchy for approval since the site has already been exceeded its limit of approval. bcoz earlier 500 and current 400 which will make it to greater than 500.similarly for the hiearchy.How do i go about it.
Now i want to create a BADI on the save event of transaction to check the net value amount as well as check for earlier amounts saved for the particular site.
Any help will be appreciated.
Regards,
Navin .hai navin
r u using ECC 6.0 or 4.7 if 4.7 u can create badi defintiion directly form se18 transaction
and define the interface and its methods , once u define them activate them
and to use in ur code u create an instance of ur badi name
and then use
cl_exithandler=>get_instance method in instance name parameter just pass ur badi name and this will create a badi defintion in ur code, and an oen can implement it
if u r usign ecc6.0 then u can either create new badis usign enhancments or classical badis
for clasical badis just go to menu utilites and create classical badis and follw the sam eprocedure
regards
m.a -
Regarding Error message in ME_PROCESS_PO_CUST badi for validation.
hi Friends,
I am Using ME_PROCESS_PO_CUST badi for validation in Purchase order (ME21N),
For that I implemented PROCESS_ITEM method which fires during each row now i add another validation in same implementation for plant should be same through out the all line item. Now following code is woking fine but when for second line item user changese plant then it shows error message as per logic which is fine but even after changing plant to correct one the error message is still coming why is it so?
following is my current validation code
method IF_EX_ME_PROCESS_PO_CUST~PROCESS_ITEM.
DATA:ls_poitem TYPE mepoitem,
ls_poitem_set TYPE mepoitem.
DATA:ls_poheader TYPE MEPOHEADER.
DATA:lm_poheader TYPE ref to IF_PURCHASE_ORDER_MM.
DATA:w_mara TYPE mara.
DATA:IT_ZMMTBL039 TYPE STANDARD TABLE OF ZMMTBL039 ,
WA_ZMMTBL039 TYPE ZMMTBL039 .
DATA:ls_poitem1 TYPE mepoitem.
DATA:V_KUNNR1 TYPE KNA1-KUNNR.
DATA:V_KUNNR2 TYPE KNA1-KUNNR.
DATA:W_WERKS(4),
w_werks_tmp(4),
w_flag(1).
ls_poitem = im_item->get_data( ).
lm_poheader = im_item->GET_HEADER( ).
ls_poheader = lm_poheader->GET_DATA( ).
IF ls_poitem-werks IS NOT INITIAL.
w_werks = ls_poitem-werks.
import w_flag to w_flag from MEMORY ID 'FLAG'.
if w_flag is initial.
w_flag = 'X'.
EXPORT w_werks_tmp FROM w_werks TO MEMORY ID 'MEMO1'.
export w_flag from w_flag to MEMORY ID 'FLAG'.
clear: w_flag.
endif.
ENDIF.
IMPORT w_werks_tmp TO w_werks FROM MEMORY ID 'MEMO1'.
break swaroopb.
IF ls_poitem-werks NE w_werks.
MESSAGE E010(zparts) with 'Different plants are not allowed in single PO.'.
ENDIF.
CLEAR: WA_ZMMTBL039,w_mara.
REFRESH:IT_ZMMTBL039[] .
SELECT *
INTO TABLE IT_ZMMTBL039
FROM ZMMTBL039
WHERE bsart EQ ls_poheader-bsart.
IF sy-subrc EQ 0.
CLEAR: WA_ZMMTBL039,w_mara.
SELECT SINGLE *
INTO w_mara
FROM mara
WHERE matnr EQ ls_poitem-MATNR.
IF SY-SUBRC EQ 0.
READ TABLE IT_ZMMTBL039 INTO WA_ZMMTBL039 WITH KEY bsart = ls_poheader-bsart
mtart = w_mara-mtart
spart = w_mara-spart.
IF SY-SUBRC NE 0.
MESSAGE E009(zparts) WITH ls_poitem-MATNR w_mara-spart ls_poheader-bsart .
ENDIF.
ENDIF.
ENDIF.
end methodHello Swarup
Since you want to compare all items together (having the same plant) I would suggest to implement this logic either in method CHECK or POST of the interface.
However, if you want to make your checks within the PROCESS_ITEM method then you should change your logic.
It does not make sense to work with the ABAP memory within a BAdI implementing class because the class itself is your "memory".
I would use the following logic to implement your validation:
lo_poheader = im_item->get_header( ). " retrieve header instance
lt_items = lo_poheader->get_items( ). " retrieve all items
ls_detail_x = im_item->get_detail( ). " details of currently processed item
LOOP AT lt_items INTO ls_item.
ls_detail = ls_item-item->get_detail( ).
IF ( ls_detail-werks NE ls_detail_x-werks ). " validation failed
" do something...
ENDIF.
ENDLOOP.
However, I would prefer to do this kind of validation in CHECK or POST method.
Regards,
Uwe
Maybe you are looking for
-
Crystal Report against ECC 6.0 with SSO configured
I created a simple report against the ECC 6.0 Article table and saved it to InfoView. I can run the report fine, but when others run it they get an error stating the logon parameters are incomplete. We are in the process of configuring single sign on
-
MY mac notebook won't open. It was working fine but when I went to open it the next day it won't open. When I turn it on the screen is silver and the little wheel symbol goes found and round and the closes down. THe is also a long thin box which ha
-
Personas preview page has NO pictures
I'm trying to customize my fire fox, but on the page displaying 'personas', there are no pictures. The themes page-and all the others- are fine! help!!
-
1130 AG in a conference room for WiFi media presentation
Does Cisco have a solution to a conference room setting where the presenter can xmit his images (.ppt etc...) from laptop via WPA2/eap-fast AP to a plasma monitor (the monitor will have a VGA input std 15-pin). Appreciate the help tremendously!
-
Error Message before starting Lightroom 6
Hello, i hope someone could help me, after i downloaded and installed Lightroom 6 on my Win7/64 pc, there is a error message which tells me that i have to install the Adobe Application Manager. I can download the Application Manager but the installat