BADi - Very Urgent
Hi,
What is the way to find out BADi in SAP 4.6C
Raghav
Hi
u can find BADI's in different ways...
1>First go to any transaction->iN THE menu bar SYSTEM->STATUS->Get the program name ->double click->u will go to the program attached to the tcode.Now search term will be CALL CL_EXITHANDLER.Now u will get list of BADI'S available..
2>Goto SE24->Give class name as CL_EXITHANDLER->Display->double click on get_instance mathod->Now u will go inside the method->Now put break point on the cl_exithandler.Now go to any transaction code and pass dat..U will see that it will be stopped on the break point which u set on the cl_exithandler...In the exit name u can find list of badi's attached to the tcode..
There are multiple ways of searching for BADI.
Finding BADI Using CL_EXITHANDLER=>GET_INSTANCE
Finding BADI Using SQL Trace (TCODE-ST05).
Finding BADI Using Repository Information System (TCODE- SE84).
1. Go to the Transaction, for which we want to find the BADI, take the example of Transaction VD02. Click on System->Status. Double click on the program name. Once inside the program search for CL_EXITHANDLER=>GET_INSTANCE.
Make sure the radio button In main program is checked. A list of all the programs with call to the BADIs will be listed.
The export parameter EXIT_NAME for the method GET_INSTANCE of class CL_EXITHANDLER will have the user exit assigned to it. The changing parameter INSTANCE will have the interface assigned to it. Double click on the method to enter the source code.Definition of Instance would give you the Interface name.
2. Start transaction ST05 (Performance Analysis).
Set flag field "Buffer trace"
Remark: We need to trace also the buffer calls, because BADI database tables are buffered. (Especially view V_EXT_IMP and V_EXT_ACT)
Push the button "Activate Trace". Start transaction VA02 in a new GUI session. Go back to the Performance trace session.
Push the button "Deactivate Trace".
Push the button "Display Trace".
The popup screen "Set Restrictions for Displaying Trace" appears.
Now, filter the trace on Objects:
V_EXT_IMP
V_EXT_ACT
Push button "Multiple selections" button behind field Objects
Fill: V_EXT_IMP and V_EXT_ACT
All the interface class names of view V_EXT_IMP start with IF_EX_. This is the standard SAP prefix for BADI class interfaces. The BADI name is after the IF_EX_.
So the BADI name of IF_EX_CUSTOMER_ADD_DATA is CUSTOMER_ADD_DATA
3. Go to Maintain Transaction (TCODE- SE93).
Enter the Transaction VD02 for which you want to find BADI.
Click on the Display push buttons.
Get the Package Name. (Package VS in this case)
Go to TCode: SE84->Enhancements->Business Add-inns->Definition
Enter the Package Name and Execute.
Here you get a list of all the Enhancement BADIs for the given package MB.
The simplese way for finding BADI is
1. chooes Tcode Program & package for that Tcode.
2. Go to Tcode se18
3. Press F4
4. search by package or by program.
<b>Reward points for useful Answers</b>
Regards
Anji
Similar Messages
-
Badi's on vi01. Pls Its very urgent
Hi Experts,
I have given the requirement below I am not aware of badi's. Pls tell me the info about Business event 1120P. And also post the coding for this functionality . Its very urgent
Enhancement Summary
Two user exits are needed to determine the correct G/L Account and Cost Center on Shipment Cost documents and post the Material Group on the Accounting document. BADI_SCD_ACCTG and Business Event 1120P can be used to accommodate the new functionality.
Business Process
Specific G/L Accounts and Cost Centers have to be determined to post on the Shipment Cost document. This is needed to provide accurate management reporting capabilities on shipments for Sales Order or Stock Transfer Order. A new custom table must be created which contains the following information: Distribution, Mode of Transport, Account, Cost Center Material group. Distribution is an identifier here if this shipment originated from an SO or STO.
There are no screens involved in this enhancement.
Components
Table: ZTABLE1
Field Data Element Type Length Description
MANDT MANDT CLNT (key) 3 Client
DISTRIBUTION Z_DISTRIBUTION CHAR (key) 1 Distribution
MOT ZZDEF_MOT CHAR (key) 2 Mode of Transportation
MATKL MATKL CHAR (key) 9 Material group
SAKNR SAKNR CHAR 10 G/L Account Number
KOSTL KOSTL CHAR 10 Cost Center
This table gets updated manually by the FI team.
Values for Distribution are:
1 = Primary Distribution to Refinery
2 = Primary and Secondary Excluding refinery
All entries must be checked against SAP config and master tables
User exit BADI BADI_SCD_ACCTG will be used to determine the correct G/L Account, Cost Center and Product Group based on Distribution and Mode of Transport. This BADI gets called only when a new Shipment Cost document get created.
Once the BADI determined the new values it populates field c_vfkn-sakto with the G/L account, field c_vfkn-kostl with the Cost Center and exports the Product group to memory.
There is no field on the Shipment Cost Document to store the Product group. Therefore another mechanism must be used to get the Product Group on the accounting document.
Business Event 1120P can be used to import the Product group out of memory and put it on BSEG-MATNR. Structure BSEG_SUBST must be enhanced with field MATNR for this purpose.
Function, Rules, Exits Description of Functionality, Rules, Exits
BADI_SCD_ACCTG Business Add-In for Shipment Cost Account Assignment
Business Framework Business Event 1120P can be used to import the Product Group from memory and to populate field BSEG_SUBST-MATNR.
This event gets called from different places. It needs to be ensured that it only populates the value when it was called from BADI_SCD_ACCTG.
Custom Table A look-up Table needs to be maintained for Distribution, Mode of Transport, G/L Account, Cost Center and Material Group
Transaction code To maintain the new table
Append Structure To enhance structure BSEG_SUBST with MATNR
Business Add-In BADI_SCD_ACCTG can be used to determine the account assignments for a shipment cost item to set the G/L Account and Cost Center. All data needed to determine the new information gets provided in this BADI.
Logic:
Determine if STO or SO based on Document Category from internal table I_REFOBJ-VTRLP field VGTYP If is C then Distribution type is Sales Order (Primary and Secondary Excluding Refinery 2 ) else we need to check the receiving plant. If the receiving plant (I_REFOBJ-VTRLK field WERKS) is a refinery the Distribution type is Primary (1) else its a (Primary and Secondary Excluding Refinery 2 ). Refineries can be identified via Function Module Z_M_GET_PLANTCLASSIFICATION. The plant must be passed into Import Parameter IP_SAPPLANT and field INT_PLANTCHAR-ATNAM must be looked up with value SAPTYPE. If it exists and field ATWRT contains RFY, the plant is a refinery.
Product Group can be determined from the Material master through Material group field MARA-MATKL.
Mode of Transport will be passed in the BADI in VTRLK-OIC_MOT.
Select single entry from table ZTABLE1based on Distribution, Mode of Transport and Material Group. If nothing gets selected, error message No entry exists in table ZTABLE1for Distribution (distribution), MOT (MOT) & Mat. Group (material group) should be triggered.
Move ZTABLE1-SAKNR to c_vfkn-sakto and ZTABLE1-KOSTL to c_vfkn-kostl
The Material group must be exported to memory in BADI_SCD_ACCTG
The Material group must be imported from memory in Business Event BP1120P
Free Memory in Business Event BP1120P
This is VI01 Creation of Freight Cost Item screencheck the reply of ur Same Post .
regards
prabhu -
BADI(very very urgent)
Hi all,
i got the badi for post goods issue but in which TRANSACTION, i have to use this badi.i am new to badi.plz tell me , how can i use the LE_SHP_GOODSMOVEMENT.
plz tell me the procedure to follow?
it is very very urgent.i will reward the point.
Regards
pabitraHi gudia,
Thanks very much.i am really sorry because i have not replied u till now.i am very busy with other issue.so i forgot to open this mail.
anyway, my mail id is [email protected]
my gmail id is [email protected] will be always online in gmail messenger.plz give me some message to my gmail messenger so that i will give u instant reply if i will be in office.
plz describe me clearly so that i can solve that issue using BADI.
i have set some 20 break points in that program while pressing the post goods issue button in delivery(VL02n).but control is not going to that program.plz suggest me details.
Thanks very much for ur help.waiting for ur reply.
Regards
pabitra -
Hi every1,
i am in a very bad situation as i am very new to AS3, so i
need some help from any one who can help me out of this.
I have created a FLV Player using FLVPlayback Component
everything is working fine but the only problem is the rewind and
forward button behaves very strange when i test it on web page
residing in a webserver.
In brief i want to say that the rewind and forward control in
the application works alright when i play it in my local machine
but when i take the file to a web sever and play it the controls
behave very strange (when i click on the forward and rewind button
it just takes me to the end of the movie and to the start of the
movie at one shot which should not be the purpose of the rewind and
forward button).
So, somebody please look at my code below and i will be very
thank full to the person who can send me the correct code.
The code for the rewind and forward control is higlighted in
the below code. please help... .very urgent..........
import fl.video.*;
var flvSou:String;
var dynText:String;
myflv.autoPlay = true;
onscreen_play_btn.visible = false;
onscreen_replay_btn.visible = false;
if (myflv.playing) {
onscreen_play_btn.visible = false;
onscreen_replay_btn.visible = false;
//myflv.source = "Call_to_action.flv";
myflv.source = root.loaderInfo.parameters.flvSou;
dynTxt.text = String(root.loaderInfo.parameters.dynText);
slash_txt.text = "/";
myflv.playPauseButton = playPause_btn;
myflv.stopButton = stop_btn;
myflv.muteButton = mute_btn;
myflv.volumeBar = volume_bar;
myflv.volume = .6;
myflv.forwardButton = forward_btn;
myflv.backButton = back_btn;
myflv.seekBar = seek_bar;
myflv.bufferingBar = buffering_bar;
myflv.fullScreenButton = fullscreen_btn;
//========================= Actions for Button Controls
=========================//
//========================= Actions for Play and Pause Button
=========================//
playPause_btn.pause_mc.addEventListener(MouseEvent.CLICK,
clickHandlerPause);
function clickHandlerPause(event:MouseEvent):void {
//trace("clickHandler detected an event of type: " +
event.type);
//trace("the event occurred on: " + event.target.name);
trace("u clicked pause button");
onscreen_play_btn.visible = true;
//myflv.alpha = .5; // uncomment later
playPause_btn.play_mc.addEventListener(MouseEvent.CLICK,
clickHandlerPlay);
function clickHandlerPlay(event:MouseEvent):void {
//trace("clickHandler detected an event of type: " +
event.type);
//trace("the event occurred on: " + event.target.name);
trace("u clicked play button");
onscreen_play_btn.visible = false;
//myflv.alpha = 100; // uncomment later
if (onscreen_replay_btn.visible==true) {
onscreen_replay_btn.visible=false;
//========================= Actions for Play and Pause Button
=========================//
//========================= Actions for FLVPlayback
=========================//
myflv.addEventListener(MouseEvent.CLICK,
clickHandlerPauseFlv);
function clickHandlerPauseFlv(event:MouseEvent):void {
//trace("clickHandler detected an event of type: " +
event.type);
//trace("the event occurred on: " + event.target.name);
trace("u clicked video component button");
trace(myflv.totalTime);
if (myflv.playing==true) {
myflv.pause();
onscreen_play_btn.visible = true;
//myflv.alpha = .5; // uncomment later
} else {
myflv.play();
onscreen_play_btn.visible = false;
onscreen_replay_btn.visible = false;
//myflv.alpha = 100; // uncomment later
//========================= Actions for FLVPlayback
=========================//
//========================= Actions for Fullscreen Button
=========================//
fullscreen_btn.addEventListener(MouseEvent.CLICK,onFullScreenButtonClick);
function onFullScreenButtonClick(event:MouseEvent):void {
stage.displayState = StageDisplayState.FULL_SCREEN;
//or set it to normal like: stage.displayState =
StageDisplayState.NORMAL;
//========================= Actions for Fullscreen Button
=========================//
//========================= Actions for onScreenPlay Button
=========================//
onscreen_play_btn.addEventListener(MouseEvent.CLICK,onScreenPlayButtonClick);
function onScreenPlayButtonClick(event:MouseEvent):void {
trace("working");
if (myflv.playing==true) {
myflv.pause();
} else {
myflv.play();
//myflv.alpha = 100; // uncomment later
onscreen_play_btn.visible = false;
//========================= Actions for onScreenPlay Button
=========================//
//========================= Actions for onScreenReplay Button
=========================//
onscreen_replay_btn.addEventListener(MouseEvent.CLICK,onScreenReplayButtonClick);
function onScreenReplayButtonClick(event:MouseEvent):void {
trace("working");
myflv.play();
//myflv.seek(0);
onscreen_replay_btn.visible = false;
if (onscreen_play_btn.visible==true) {
onscreen_play_btn.visible=false;
//========================= Actions for onScreenReplay Button
=========================//
//========================= Actions for Stop Button
=========================//
stop_btn.addEventListener(MouseEvent.CLICK, StopButtonClick);
function StopButtonClick(event:MouseEvent):void {
myflv.seek(0);
//myflv.autoRewind = true;
//myflv.stop();
onscreen_replay_btn.visible = true;
//========================= Actions for Stop Button
=========================//
//========================= Actions for Button Controls
=========================//
//========================= Actions for Displaying Elapsed
and Total Time =========================//
myflv.addEventListener(MetadataEvent.METADATA_RECEIVED,
cp_listener);
function cp_listener(eventObject:MetadataEvent):void {
//trace("Elapsed time in seconds: " + myflv.playheadTime);
//trace("Total time is: " + eventObject.info.duration);
var rounded:int = Math.round(eventObject.info.duration);
var minutes:int = Math.floor(rounded/60);
var seconds:int = rounded%60;
flvTotalTime_txt.text = eventObject.info.duration;
flvTotalTime_txt.text = (minutes<10 ? "0" :
"")+minutes+":"+(seconds<10 ? "0" : "")+seconds;
//flvElapsedTime_txt.text = String(myflv.playheadTime);
stage.addEventListener(Event.ENTER_FRAME, updateTime);
function updateTime(ev:Event):void {
var rounded:int = Math.round(myflv.playheadTime);
var minutes:int = Math.floor(rounded/60);
var seconds:int = rounded%60;
flvElapsedTime_txt.text = String(myflv.playheadTime);
flvElapsedTime_txt.text = (minutes<10 ? "0" :
"")+minutes+":"+(seconds<10 ? "0" : "")+seconds;
//========================= Actions for Displaying Elapsed
and Total Time =========================//
myflv.addEventListener(Event.COMPLETE, com_listener);
function com_listener(eventObject:Event):void {
trace("movie complete");
myflv.stop();
onscreen_replay_btn.visible = true;
back_btn.addEventListener(MouseEvent.CLICK, BackButtonClick);
function BackButtonClick(event:MouseEvent):void {
myflv.play();
//myflv.autoRewind = true;
//myflv.stop();
onscreen_replay_btn.visible = false;
/************************************ THE CODE FOR FORWARD
AND REWIND CONTROL STARTS HERE *****************************/
var id1:Number;
forward_btn.addEventListener(MouseEvent.MOUSE_DOWN,
ForwardButtonDown);
function ForwardButtonDown(event:MouseEvent):void {
//forward_btn.onPress = function() {
//mklik_flv.pause();
var dest1:Number = myflv.playheadTime;
id1 = setInterval(function ():void {
myflv.seek(dest1 += 2);
}, 100);
forward_btn.addEventListener(MouseEvent.MOUSE_UP,
ForwardButtonUp);
function ForwardButtonUp(event:MouseEvent):void {
//forward_btn.onRelease = function() {
//myflv.play();
clearInterval(id1);
// ************************ Forward Button Function
// ************************ Rewind Button Function
var id2:Number;
back_btn.addEventListener(MouseEvent.MOUSE_DOWN,
BackButtonDown);
function BackButtonDown(event:MouseEvent):void {
//back_btn.onPress = function() {
//mklik_flv.pause();
var dest2:Number = myflv.playheadTime;
id2 = setInterval(function ():void {
myflv.seek(dest2 -= 2);
}, 100);
back_btn.addEventListener(MouseEvent.MOUSE_UP, BackButtonUp);
function BackButtonUp(event:MouseEvent) {
//back_btn.onRelease = function() {
//mklik_flv.play();
clearInterval(id2);
}how long is your flv (in seconds), if allowed to play without
ff/rewind/pause? -
Customer Exits for Delivery & Goods Receipt - Very Urgent
Hi Everyone,
We have got a requirement where we have to trigger a screen exit/badi at the time of posting the material document in transaction MIGO or delivery document in VL01N, can any one tell me the right exit as this is very urgent.
Rgds,Hi,
Will you elaborate on this, I cant use call screen statement as this gives syntax errors, I have to necessarily use 'leave to' or 'call transaction', however using this above mentioned I wont have any scope for the variables which were there in the method of the BADI????,
Any help would be very much rewarded.
Rgds, -
Have a big problem with report. Very urgent please help
I have a report rep1. When I run the report via batch thru command rwclient to create a file it failed. I got the follwoing error message:
REP-0177: Error while running in remote server
Job 1413 is terminated due to connection timeout.
It does not even try for few seconds before gives this message. I ran some other batch reports whihc took 15 minutes and they were fine.
So, I stopped running the bad report for the day thinking the report is still not dead. I ran the same rep1 next day I still get the same error message. But this time when I ran I looked at the appserver showjobs (which lists the reports that were running and that already ran). The job number is different But still it fails in 3 seconds with the job number 1413 and connection time out. Can any one tell what might be the problem.
Any number of times I run this job I get the same job number with same error (all this is only if I run it as batch using rwclient). If I run this as online by calling it from a form it returns the results without any problems.
Please help. Very urgent.
Thanks in advance.
AshaYou might want to delete the report server .dat file and restart the server and try
his also could be one of the issues we had seen and fixed in 9.0.2.3. Please ensure you have the latest patch applied
Thanks
The Oracle Reports team -
VERY URGENT: need to access back to trial account - also paying
Hi,
my trial account for Adobe Connect is expired.
If I'll pay for new session, will I be able to access to my trial account? (I need to download the flv registration.)
I've already asked to the Adobe Marketing: NOBODY replied to me.
It's very urgent.
Thank you,
MCSo I contacted an Italian reseller, because I didn't receive any answer from Adobe (how really really bad is the Adobe support?).
They said the registrations couldn't be recover.
How bad!
A reminder that my account was expiring and the chance to upgrade my account would have been enough...
I'm looking forward to other non-Adobe solutions with better support!
MC -
Material Regarding BAADI- VEry very Urgent
Hi Friends,
This is a very urgent Requirement, I am very new to BAADI and i might have to in-depth R& D in that
Can any one please send me the Material with good examples, with how to find BAADi and how to write code in that(If possbiel with sample code)
Thanks
RahulHi Munish,
check these <b>links</b> it will be very helpful
http://www.allsaplinks.com/badi.html
http://help.sap.com/saphelp_erp2005/helpdata/en/73/7e7941601b1d09e10000000a155106/frameset.htm
http://support.sas.com/rnd/papers/sugi30/SAP.ppt
http://www.sts.tu-harburg.de/teaching/sap_r3/ABAP4/abapindx.htm
http://members.aol.com/_ht_a/skarkada/sap/
http://www.ct-software.com/reportpool_frame.htm
http://www.saphelp.com/SAP_Technical.htm
http://www.kabai.com/abaps/q.htm
http://www.guidancetech.com/people/holland/sap/abap/
http://www.planetsap.com/download_abap_programs.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c8/1975cc43b111d1896f0000e8322d00/content.htm
Reward with points if it is helpful
Regards
Alfred -
Material Number and Serial Number are not getting filled...Very very urgent
I have my code in the badi...CRM_EQUI_LOAD...method PERFORM_LOAD.In this i try to to create a component for the ibase using the function module... CRM_ICSS_CREATE_COMPONENT...The component gets created but the material and serial number are not getting updated...It is very very urgent..please help....
I am not sure what information you are passing in given FM.
But in my case I have used FM 'CRM_CREATE_IBASE_FROM_EQUI' to create Ibase and component. It creates IBase and Component along with other details like material number and serial number.
you may refer the below code for the same >
Call the standard handling for crm equi load.
call function 'CRM_CREATE_IBASE_FROM_EQUI'
exporting
is_header = is_header
it_equi_dmbdoc = it_equi_dmbdoc
changing
et_error_segments = ct_error_segment
exceptions
technical_error = 1
others = 2.
if sy-subrc <> 0.
raise equi_load_badi_error.
endif.
Cheers,
Ashish -
Error while opening a module. plz help me, very urgent.
when i try to open a module, the following error message appears on my screen.
" no j2ee component found in d:\krisp\programs\servlets".
i've installed bea in c: drive and my servlet program is in d: drive.
plz help me, it's very urgent.Can you provide some more information? What were you doing when this happened?
Can you post the entire error message?
-- Rob
WLS Blog http://dev2dev.bea.com/blog/rwoollen/ -
Need help, MMC tree got deleted, very urgent.
Hi,
My sap MMC tree, got deleted in the server. I have been trying to restore since 2 days and couldnt succeed, please help me.
1) i have uncared the sapmmc.sar from Kernal\NT\I386\MMC\sapmmc.sar file
2) i got about 7 files, in which there is one sapmmc file i have tried to double click it, n check but no go.
3) i also tried to run the Sapstartsrv.exe file and fill in up the values in pop up window. & filled up the following values :-
SID: DEV
NR: 00
StartProfile: (entire start profile path given)
user: devadm
passwd; (given)
- but it says "the account name is invalid or does not exist or the password is invalid for account name specified"/
- no go in both the cases.
Please need help very urgent.
Regards,
Satish.siva,
I am getting same error since 2 days
SID: DEV
NR: 00
Start Profile: (entire start profile path)
User: <hostname>/devadm
passwd: ****
Error:
cannot install service
create service failed:421
The account name is invalid or doesnot exist, or the passwd is invalid for the account name specified.
Edited by: satish c on Jun 4, 2008 11:12 AM -
How to write code for this logic in a routine, very urgent --help me
hi all,
i want to apply this logic into one subroutin ZABC.
here i m giving my logic ,can any body help me in coding for this, this is very urgent, i hv to submit on wednesday.
4.1 Read the company code number BSEG-BUKRS from document line item.
4.2 Fetch PRDHA from MARA into GV_PRDHA where MATNR = BSEG-MATNR.
4.3 Fetch Business area (GSBER) from ZFIBU into GV_GSBER where (PRDHA = GV_PRDHA and BUKRS = BSEG-BUKRS) OR (PRDHA = GV_PRDHA and BUKRS = SPACE).
4.4 If business area match is found, go to step 3.9. Else continue.
4.5 If BKPF-BLART IN set ZVS_POSDT OR BKPF-XBLNR starts with I0*, execute steps below. Else, go to Step 3.6.
i. MOVE: BSEG-BKURS TO work area field WA_ZFIBUE-BUKRS,
BSEG-MATNR TO work area field WA_ZFIBUE-MATNR,
GV_PRDHA TO work area field WA_ZFIBUE-PRDHA,
BSEG-HKONT TO work area field WA_ZFIBUE-HKONT,
BSEG-GSBER TO work area field WA_ZFIBUE-GSBER,
BSEG-PSWBT TO work area field WA_ZFIBUE-PSWBT,
BKPF-BUDAT TO work area field WA_ZFIBUE-BUDAT,
SY-DATUM TO work area field WA_ZFIBUE-CREDATE,
SY-UZEIT TO work area field WA_ZFIBUE-CRETIME,
Fetch running serial number (WA_ZFIBUE-SERIALNO) from ZFICO. This number will be stored in ZFICO with PARAMTYPE = "BPM030307", SUBTYPE = "ZFIBUE" and KEY1 = "SERIALNO". The actual serial number will be stored in the field VALUE1.
i. Insert WA_ZFIBUE INTO ZFIBUE.
ii. Send email notification to the user (if it is not already sent to user on the same posting date).
Use function module SO_NEW_DOCUMENT_ATT_SEND_API1 to send mail.
Fetch email address and date of last email from ZFICO. These values will be stored in ZFICO with PARAMTYPE = "BPM030307", SUBTYPE = "EMAIL" and KEY1 = "<USERNAME>". The email address will be stored in the field VALUE1 and posting date in VALUE2. Once mail is sent, VALUE2 is updated with latest posting date (BKPF-BUDAT).
iii. Increment the running serial number and update ZFICO with new serial number.
a. GV_ SERIALNO = WA_ZFIBUE-SERIALNO + 1
b. Update ZFICO Set value1 = GV_SERIALNO
Where PARAMTYPE = "BPM030307" AND
SUBTYPE = "ZFIBUE" AND
KEY1 = "SERIALNO".
iv Move VDFT to BSEG-GSBER.
v. Exit routine.
4.6 Fetch MTART into GV_MTART from MARA where MATNR = BSEG-MATNR.
4.7 If SY-BATCH = INITIAL AND GV_MTART <> ROH, issue the error message - Maintain the mapping of product hierarchy <PRDHA> from article <MATNR> for <BUKRS>. Else, go to step 3.8.
4.8 If SY-BATCH <> INITIAL AND GV_MTART <> ROH, issue the error message - Maintain product hierarchy on article master. Go to step 3.10.
4.9 Move GV_GSBER TO BSEG-GSBER.
4.10 Exit Routine
plz give me reply asap --this is very urgent
thanks in advance
swathiHi Swathi,
If it's very very urgent then you better get on with it, don't waste time on the web. Chop chop. -
Update Routine ... Help me Please--VERY URGENT
Hi All ,
I Moving data from Cube to ODS . Let me explain abt the records in the cube .
There are 6 key figures in the cube as well as dimensions, UNIQKEY TRANSACTION is One Dimension and ARTICLE is another dimension which is having an Navigational attribute called CORE ELEMENT.
I am showing the data with those two dimension and the key figures which are to be used in the routine.
Charc----
Key Figures
UNIQKEY-ARTICLE-Coreelement--
billqty
in base unit
A00N----1006330--1--
10.5
A00M -
1006320----2--
2.5
A00P-----1006330--1--
10.5
A00P-----1006320--2--
2.5
A00Q-----1006320--2--
2.5
A00Q-----1006340--3--
10.5
Now Lets see what the core element numbers mean,
core element 1 means -- fuel .
Core elemnet other 1 -- food .
I need to move these data into ODS Which will have an extra field called No of items in the transaction --ITEMS.For this i need to write a routine .
The Logic is ...
1.if Materail is of type 1(Means if the core element - 1)
I need to Populate the No of items in tnx = 1 .--ITEMS.
2.If Material is of type(Means if the core element)2or 3 I need to populate the billing quantity to the no of transcations.--ITEMS
3. If the Uniqkey tanscation contains two line items as suppose that you have 20 litres of fuel and 2 cans of coke, then No of Items in the transaction should be 3 and Billing Quantity in BUoM 22
billing quantity in BUoM = 20 litres for the first line item and 2 for the second line item...
then as the first line item is fuel, field No OF Items in the Transcation should be 1 (replacing the 20) + 2 = 3
so the final result in the ODS should be billing quantity in BUoM = 22 and The Items in the Transcation= 3
So the ODS Data should look like this.
UNIQKEY--billqty--
ITEMS
in base unit
A00N--10.5--
1
A00M--2.5--
2.5
A00P--13--
3.5
A00Q--13--
12.5
NOTE : IN the ODS only the UNIQKEY IS THE KEY FIELD and the rest are DATA FIELDS.
I Posted this one before also. But didnt get proper responses.
I am Pasting the piece of code which I have written . This code will work for the first two records in the cube , But it is failing for the UNIQKEY Transcation having Line items.
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: /BI0/PMATERIAL.
DATA: TITEMS LIKE /BIC/AZPOCODS00-/BIC/ZTITEMS,
CORE_ELEMENT like /BI0/PMATERIAL-RPA_WGH1.
$$ end of global - insert your declaration only before this line -
FORM compute_data_field
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
USING COMM_STRUCTURE LIKE /BIC/CS8ZPOCTUS04
RECORD_NO LIKE SY-TABIX
RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING RESULT LIKE /BIC/AZPOCODS00-/BIC/ZTITEMS
RETURNCODE LIKE SY-SUBRC "Do not use!
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal table "MONITOR", to make monitor entries
check not COMM_STRUCTURE-material is initial.
select SINGLE RPA_WGH1
INTO CORE_ELEMENT
from /BI0/PMATERIAL
where
material = COMM_STRUCTURE-material
and OBJVERS <>'D'.
IF CORE_ELEMENT EQ '1'.
TITEMS = '1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = titems
IMPORTING
OUTPUT = titems
ELSE.
TITEMS = COMM_STRUCTURE-BILL_QTY.
ENDIF.
result value of the routine
RESULT = TITEMS..
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
PLease give me ideas on how to acheive this . As I am not Aware of ABAP very well.. PLease try to give me the code. I hope one of you may got the same requirement before.
Its very urgent and I need to deliver it today itself.
Thanks in advance , you can mail me to [email protected]. If anybody intersted to discuss this Issue they can reach at +91 9845922955.Hi ,
While I am moving the data from cube to ods . I need to create the update rules with cube -- 8cube . WHen i am doing this the billqty is a key figure in cube so that is not a problem but the ITEMS is not there in the cube ,SO for that I need to write a routine to populate that one.
Its strange but the user what to analyse with the UNIQKEY transaction. And these objects will be added as navigational attributes to the Characteristic. as it acts as another dimension.
He wants to laod these from ODS to Master data -Characteristic.
to say for each transcation hpw many items are getting sold.
Message was edited by: Nagarjuna Reddy
ONce again thanks for the qucik replies
Message was edited by: Nagarjuna Reddy -
UPDATE ROUTINE --- CUBE --- ODS Very Very URGENT
Hi Collegues/Friends ,
First I need to thank for the intiators of this site , as I came to know that for many
problems we will get different best solutions ... Hoping the same I am posting a question
which is very very very urgent as the client is running after me for this .
My Requirement is as Follows. ..
I Moving the data from Cube to ODS . While i need to write a routine for an extra field in
ODS based on Billing Quantity in Base Unit of Measure . The Key Field in the ODS Is UNIQKEY
Transaction and It is a Characterstic in the Cube and we have MAterial as another
Characteristic and core element as navigational attribute .
In the Cube for every UNIQKEY transaction- there are more than One line items.
My data fields in the ODS are Billing Quantity in Base Unit of MEasure and and EXTRA FIELD
: No of Items in Transaction . But the thing is that I have only Billing Quantity in Base
Unit of Measure in cube as a key figure
BAsing on the UNIQKEY transcation and Billing Quantity In Base Unit Of Measure I need to
populate the No of Items in Transaction... For this i need to write a routine .
Let suppose say that for the Materials the core elements are as follows
Material Core element
10 1 -- fuel -- In liters
20 2 -- Cigar - in PAck
30 3 -- Coke - in Cans
Now Lets see how the records are there in InfoCUbe
Uniqkey / Material / Core element /Billin Quantiy
A / 10 / 1 / 22
B / 30 / 3 / 2
C / 10 / 1 / 15
C / 30 / 3 / 2
D / 20 / 2 / 10
D / 30 / 3 / 2
And IN the ODS -- I need to Populate the No OF items in Transaction.
the Logic behind this as follows .
1.if Materail is of type 1(Mean if the core element - 1)
I need to Populate the No of items in tnx = 1
2.If Material id of type 2 or 3 I need to populate the billing quantity to the no of
transcations.
3. If the Uniqkey tanscation contains two line items as suppose that you have 20 litres of
fuel and 2 cans of coke, then No of Items in the transaction should be 3 and Billing
Quantity in BUoM 22
billing quantity in BUoM = 20 litres for the first line item and 2 for the second line
item...
then as the first line item is fuel, field No OF Items in the Transcation should be 1
(replacing the 20) + 2 = 3
so the final result in the ODS should be billing quantity in BUoM = 22 and The Items in the
Transcation = 3
For this I have Written a Rouinte like this for that field
PROGRAM UPDATE_ROUTINE.
$$ begin of global - insert your declaration only below this line -
TABLES: /BI0/PMATERIAL.
DATA: TITEMS LIKE /BIC/AZPOCODS00-/BIC/ZTITEMS,
CORE_ELEMENT like /BI0/PMATERIAL-RPA_WGH1.
$$ end of global - insert your declaration only before this line -
FORM compute_data_field
TABLES MONITOR STRUCTURE RSMONITOR "user defined monitoring
USING COMM_STRUCTURE LIKE /BIC/CS8ZPOCTUS04
RECORD_NO LIKE SY-TABIX
RECORD_ALL LIKE SY-TABIX
SOURCE_SYSTEM LIKE RSUPDSIMULH-LOGSYS
CHANGING RESULT LIKE /BIC/AZPOCODS00-/BIC/ZTITEMS
RETURNCODE LIKE SY-SUBRC "Do not use!
ABORT LIKE SY-SUBRC. "set ABORT <> 0 to cancel update
$$ begin of routine - insert your code only below this line -
fill the internal table "MONITOR", to make monitor entries
check not COMM_STRUCTURE-material is initial.
select SINGLE RPA_WGH1
INTO CORE_ELEMENT
from /BI0/PMATERIAL
where
material = COMM_STRUCTURE-material
and OBJVERS <>'D'.
IF CORE_ELEMENT EQ '1'.
TITEMS = '1'.
CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT'
EXPORTING
input = titems
IMPORTING
OUTPUT = titems
ELSE.
TITEMS = COMM_STRUCTURE-BILL_QTY.
ENDIF.
result value of the routine
RESULT = TITEMS..
if abort is not equal zero, the update process will be canceled
ABORT = 0.
$$ end of routine - insert your code only before this line -
Does it satisfy all the conditions ?? mentioned above if . As far As i know as the only key
field in the transcation it will satisfy the first two conditions .
I want to know or If possioble anybody pls take some pain for me to send the code or any
Ideas for satisfying all the conditions.
Hope I will get immediate replies....
Mail me to [email protected]Reddy,
Please do not post in all sections ... makes it hard to follow up on posts..
Arun -
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
Maybe you are looking for
-
SD billing document same as FI document
Hi Friends, In our client's process, during the SD billing document creation in TC: VF01 the same document was created in Finance (ex: billing doc.123456 and FI doc.123456) but at the time of canceliation of SD invoice system was generating diff. doc
-
How to create crystal reports using MSDE 2000?
Post Author: S_Muhilan CA Forum: Deployment Hi, I am using Crystal report 8.5. My Database sqlserver 2000. I generated reports and are working fine. Now I want to use MSDE 2000 instead of Sqlserver 2000 due to license factor. My application is develo
-
Iphoto won't update to 9.2
I just bought my macbook pro today and it says I have an update for iphoto 9.2. When I attempt to update it, the app store gives me an error saying "There was an error in the App Store. Please try again later. (18)". Any ideas on how to fix this?
-
Average of the last 1000 values
Hello all, I am taking continous measurement and I wanted to average the last 10000 readings and stop the loop if the stanard deviation is less then 0.2. I couldnt configure how to delete the earlier data than the last 10000 measurements. Thanks
-
how can i reinstall the ios 5.0.1