Enhancement methods
Dear Experts,
Iam hust going through a SAP Book .in that it is written that there are in two ways we can do enhancement.
1. by Enhancement(Append Structure)
2. by modification
create a view or an ABAP query infoset and overwrite the extractor for BW and the extract structure in the maintainance function for data source (MD Attributes)
can any one explian me about the second method with screen shots for better understanding.....
thanks in advance
Regards
Sabiha
Sabiha,
We normally enhance Business Content datasources/extractors by adding an append structure and writing requisite code in the exit.
Though it is possible it is not advisable to modify standard SAP code.
Another possibility is to create a generic datasource/extractor and to do the required coding. Search with 'generic datasource'. There are 3 methods available to create generic extractors - View, Query and Function module.
Practically most scenarios would be covered by enhancing business content supplied datasources with additional fields in the append include or by creating generic extractors.
BR/
Mathew.
Similar Messages
-
I try to enhance a Method like described in this Thread...
Re: Sending Email using the Outlook Client
What I did so far...
1) In Transaction "bsp_WD_CMPWB" I choosed Component "BP_ADDR" and created a copy in our "Z_CRM" EnhancementSet
2) I used the right Mousebutton to Enhance the "BP_ADDR/StandardAddress" View
Two things had been automatically generated/created...
- Table Contents BSPWD_CMP_C_REPL
- Object ZL_BP_ADDR_STANDARDADDRES_CTXT
3) I doubleclick on the enhanced View "BP_ADDR/StandardAddress"
(-> In the "View Layout" node the StandardAddress.html is still using the Super Classes / Implementation Class CL_BP_ADDR_STANDARDADDRES_CN01 )
4) If I go to Implemetation Class CL_BP_ADDR_STANDARDADDRESS_CN01
5) Select method "GET_P_E_MAILSMT" (and look into the coding)
The enhancement Functions there are not working for meu2026
I tried the Button with the (Sprial / helix)
and the Menu "Edit"-> "Enhancement Operations"
Where is my error?! (I think I have to create a ZClass for the CL_BP_ADDR_STANDARDADDRES_CN01?!?!? But how to???)
I will give all possible points for good answers
Thanks for helpingu2026hi,
Some times I also faced problems to create Zclass for standard ones. But you can do one trick to create Zclass.
Try to create one dummy attribute in your context node, then it will creates automatically Zclass for that node. Later you can delete that attribute.
If you get any problems to create P-getter method, then copy the IF_BSP_WD_MODEL_SETTER_GETTER~_GET_P_XYZ template method and rename to GET_P_E_MAILSMT.
regards
Ismail -
Enhance method with new parameter
How can I enhance an existing method with a new Parameter?
In some tutorial is written that this should be possible. But there is no exact description.Thx Rich Heilman
but in the Doku "Enhancements to Global Classes and Interfaces"
http://help.sap.com/saphelp_nw70/helpdata/en/58/4fb541d3d52d31e10000000a155106/content.htm
you find:
You can enhance the components of a global class or global interface by:
● Inserting new, optional formal parameters for existing methods (but no new exceptions) -
ESS Travel / Trip Create Enhancement method
Hi , I am new to HR - Travel Management,
Requirement :
During Create Trip Request from ESS (Tcode - TRIP at backend) a check is required to be added to see if 2 settlements are pending to be approved then create trip shouldnt let user save the new trip and error meesage needs to be displayed about this check.as only maximum of 2 trips could remain unsettled.
Query : As the user will only use ESS , I went through Class - CL_FITE_ASSISTANCE and CL_FITE_EES_ASSISTANCE but couldnt get idea if any of its method a needs to be enhanced or what could be the starting point to begin with its solution.
any kind of help or atleast a direction to be taken will be appriciated.The Thread can now be closed .
For this the approach used was :
As Trip could be raised in SAP GUI as well as Portal.
So code needs to me made at both places :
BADI and Exit
BADI : TRIP_WEB_CHECK also for Error message fill the error message in message handler.
DATA exit_message_handler TYPE REF TO cl_hrpa_message_list.
DATA message_handler TYPE REF TO if_hrpa_message_handler.
DATA msg TYPE symsg.
DATA is_ok TYPE boole_d.
CREATE OBJECT exit_message_handler.
message_handler = exit_message_handler.
msg-msgid = 'ZFI'.
msg-msgty = 'E'.
msg-msgno = '003'.
msg-msgv1 = 'Please Settle your Earlier Trips Before'.
CALL METHOD message_handler->add_message
EXPORTING
message = msg
cause = message_handler->unknown.
is_ok = space.
exit_message_handler->add_messages( message_handler ).
This will show error message on the portal itself and control will not go to the exit.
For EXIT use :
Enhancement : FITR0005 - > Exit : EXIT_SAPMP56T_003.
Method : PTRA_UTIL_TRIPS_GET_LIST to get Employee Trip Details And did the calculations as required. display the Error message if the conditions are not met. -
Call enhancement class method from Bus. workflow task
Hi all,
I recently enhanced a global class from SAP (add a new method). Now I would like to call it from a workflow task (ABAP Class object used in the task). So it seems that only "native" methods from the class itself can be selected for the object method of the task.
Same issue if I try to call it via secondary methods options...
Last idea I have before the repair is: retrieve the instance saved into the WF container via a custom class interfacing IF_IFS_SWF_CONTAINER_EXIT (program exit) and call the enhanced method from the method proposed in this interface.
Maybe someone had the same issue? Anyone could help or propose solution?
Many thanks in advance for your help,
KR,
OlivierI think it might qualify for an OSS message.
There was simmilar note for BADIs which was corrected: https://service.sap.com/sap/support/notes/1156392
CL_SWF_UTL_DEF_SERVICES which is used in PFTC to determine callable methods doesn't include enhancements when calling function SEO_CLASS_TYPEINFO_GET (parameter WITH_ENHANCEMENTS is default FALSE) -
Class Enhancement without a .jdo file
Is it possible to do a byte code enhancement using the KODO APIs passing in
a data structure containing the .jdo metadata file information without
having to explicitly create a .jdo file?
I'm looking at using the enhance() method of JDOEnhancer class and it looks
like I have to have a .jdo file on disk. Is there any way to avoid it?
In my enviornment I read information from a master metadata file, use that
to generate Java code, invoke the compiler on it and now I'd like to invoke
the enhancer on the class files - i'd like to do all this one shot. Since I
have all the information needed in memory, I don't want to create a .jdo
file and have the enhancer read that file.
Thanks
VijayVijay-
You do always need the .jdo metadata file for your classes; the JDO
specification requires it. Note, though, that you could just have a
single top-level package.jdo file that holds the metadata for all your
classes, so that you would only need to create a single file.
Technically, I suppose you could use a custom ClassLoader that overrides
getResourceAsStream() (since this is the way we locate .jdo metadata
files for classes), and return a textual stream of the contents of the
..jdo metadata. It might work, but we advise against it, since using
custom ClassLoaders can introduce very tricky problems that are
difficult to debug.
In article <bju9ua$ops$[email protected]>, Vijay Ganesan wrote:
>
Is it possible to do a byte code enhancement using the KODO APIs passing in
a data structure containing the .jdo metadata file information without
having to explicitly create a .jdo file?
I'm looking at using the enhance() method of JDOEnhancer class and it looks
like I have to have a .jdo file on disk. Is there any way to avoid it?
In my enviornment I read information from a master metadata file, use that
to generate Java code, invoke the compiler on it and now I'd like to invoke
the enhancer on the class files - i'd like to do all this one shot. Since I
have all the information needed in memory, I don't want to create a .jdo
file and have the enhancer read that file.
Thanks
Vijay--
Marc Prud'hommeaux [email protected]
SolarMetric Inc. http://www.solarmetric.com -
Hello, I've just started evaluating Kodo and JDO in general this week.
After several successful days of playing, a new problem has cropped up, and
I'm not quite sure why....
I've been using the eclipse plugin, and I started getting build problems
during the enhancement process. The dialog box gives me the following
error:
"The Enhancer failed. The message includes was:
javax.jdo.JDOFatalInternalException:
java.lang.IllegalArgumentException:java.lang.NullPointerException
NestedThrowables:
java.lang.IllegalArgumentException:java.lang.NullPointerException"
I tried to get more a specific message by running the enhancer from the
command line, but when I run either jdoc or java
com.solarmetric.kodo.enhance.JDOEnhancer <jdo file> I get the following
error:
Exception in thread "main" sun.misc.InvalidJarIndexException: Invalid index!
at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
at sun.misc.URLClassPath.getResource(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Neither of these enhancement methods gave me any trouble until yesterday,
when I must have done ..... something (no idea what) that would cause them
to fail. Anyone seen these before? Any ideas?
LauraI changed the logging properties for kodo, and I have a slightly more
informative stack trace from the command prompt:
- com.solarmetric.kodo.meta.JDOMetaDataParser@52068d: parsing source:
file:/C:/views/SlaybaughLJ_ATOS_local/ATOS_src/bin/busserv/ATOSCoreAbstracti
ons/ATOSCoreAbstractions.jdo
Exception in thread "main" sun.misc.InvalidJarIndexException: Invalid index!
at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
at sun.misc.URLClassPath.getResource(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Does that help any?
"Laura Slaybaugh" <[email protected]> wrote in message
news:[email protected]...
Sorry about the delay in replying to this, I thought I sent this out
Thursday...
"Patrick Linskey" <[email protected]> wrote in message
news:<[email protected]>...
Is it possible to get the full stack trace for the NPE from the dialog
box, or are you only presented with the message that you posted?What I posted was all that appeared in the dialog box. Is there a way toget
at the full stack trace?
The error from the command line seems to indicate that an error happened
when dealing with a corrupt jar file. Did you make any modifications to
your jar files recently?I haven't been compiling my program into a jar. And I have not touched any
other jars that I am aware of. But I did notice that shortly before I
started recieving the message, Eclipse crashed on me. Could that have
corrupted the jars, somehow? And if so, why would it seem that building
through eclipse would bypass the InvalidJarIndexException and give me a
different error?
Finally, can you send us the complete stack trace for the
command-line-generated exception? It looks like that's only a partial
stack.What I provided was the entire stack trace that was printed to screen.
Laura
"Patrick Linskey" <[email protected]> wrote in message
news:[email protected]...
Is it possible to get the full stack trace for the NPE from the dialog
box, or are you only presented with the message that you posted?
The error from the command line seems to indicate that an error happened
when dealing with a corrupt jar file. Did you make any modifications to
your jar files recently?
Finally, can you send us the complete stack trace for the
command-line-generated exception? It looks like that's only a partial
stack.
-Patrick
On Thu, 01 May 2003 11:07:15 -0400, Laura Slaybaugh wrote:
Hello, I've just started evaluating Kodo and JDO in general this
week.
After several successful days of playing, a new problem has croppedup,
and I'm not quite sure why....
I've been using the eclipse plugin, and I started getting buildproblems
during the enhancement process. The dialog box gives me the following
error:
"The Enhancer failed. The message includes was:
javax.jdo.JDOFatalInternalException:
java.lang.IllegalArgumentException:java.lang.NullPointerException
NestedThrowables:
java.lang.IllegalArgumentException:java.lang.NullPointerException"
I tried to get more a specific message by running the enhancer fromthe
command line, but when I run either jdoc or java
com.solarmetric.kodo.enhance.JDOEnhancer <jdo file> I get thefollowing
error:
Exception in thread "main" sun.misc.InvalidJarIndexException: Invalid
index!
at sun.misc.URLClassPath$JarLoader.getResource(Unknown Source)
at sun.misc.URLClassPath.getResource(Unknown Source) at
java.net.URLClassLoader$1.run(Unknown Source) at
java.security.AccessController.doPrivileged(Native Method) at
java.net.URLClassLoader.findClass(Unknown Source) at
java.lang.ClassLoader.loadClass(Unknown Source) at
sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source) at
java.lang.ClassLoader.loadClass(Unknown Source) at
java.lang.ClassLoader.loadClassInternal(Unknown Source)
Neither of these enhancement methods gave me any trouble until
yesterday, when I must have done ..... something (no idea what) that
would cause them to fail. Anyone seen these before? Any ideas?
Laura--
Patrick Linskey
SolarMetric Inc. -
How to call original method from an overwrite exit?
I enhanced method m1 of class c1 by creating an overwrite exit for the method.
The requirement is to do certain checks in the overwrite exit and then call method m1 if checks pass. How can i access the original method from the overwrite exit??keyword 'static' my friend.
public class foo {
public static void bar {
System.out.println ("hello");
foo.bar() -
Anybody enhanced BADI HR_IN_ER_ADDRESS~GET_CIT_ADDRESS
hI
I need to enhance METHOD GET_CIT_ADDRESS UNDER BADI NAME " HR_IN_ER_ADDRESS". We have some different requirement.
We have to set conditon on T7INT5-TXGRP, Based upon this tax group condition we need to provide values in the SADR.
We have two values of TXGRP 01, 02.
HOW FORM 16 PROGRAM ( HINCF160) CAN PASS VALUES TO THE METHOD GET_CIT_ADDRESS so that contition can be applied.
Regards,
RaviHi
Check while debugging the method if there is any values in T7INT5 in the global parameters tab.If exists you can get the values using field symbols.
Try the below code.
field-symbols : <fs1> type T7INT5.
constants : c_1 type char6 value 'T7INT5'.
assign (c_1) to <fs1>.
~~~Ganesh Kumar K. -
Issue in transfer of data from ECC to APO
Hi All,
I have a requirement of transferring data from ECC to APO. I am using EXIT_SAPLCMAT_001 fro this purpose. The problem is, I need to transfer the data of a field that is not present in cif_matloc but present in /sapapo/matloc.
How should I proceed...Please help....this is an urgent requirement
Thanks & Regards,
SriLalithaHi,
you may want to go to the transaction /SAPAPO/SNP_SFT_PROF
Determine Forecast of Replenishment Lead Time
Use
In this field, you specify how the extended safety stock planning determines
the forecast of the replenishment
lead time (RLT). The following values are available:
Supply Chain
The system determines the RLT forecast using the supply chain structure by
adding the corresponding production, transportation, goods receipt, and goods
issue times. If there are alternative procurement options, the system always
takes the
longest
option into account.
Master Data
The system determines the RLT forecast from the location product master
data.
Master Data/ Supply Chain
First, the system determines the RLT forecast from the location product
master data. If no RLT forecast can be determined, the system determines the
forecast using the supply chain structure (as described under
Supply
Chain
Dependencies
You can retrieve the replenishment lead time forecast yourself by using the
GET_LEADTIME
method of the Business Add-In (BAdI) /SAPAPO/SNP_ADV_SFT.
Replenishment Lead Time in Calendar Days
Number of calendar days needed to obtain the product, including its
components, through in-house
production or external
procurement.
Use
The replenishment lead time (RLT) is used in the enhanced methods of safety
stock planning in Supply Network Planning (SNP). The goal of safety
stock planning is to comply with the specified service level, in order
to be prepared for unforeseen demand that may arise during the replenishment
lead time. The longer the RLT, the higher the planned safety stock level.
Dependencies
The field is taken into account by the system only if you have specified
master data or master data/supply chain in the RLT: Determine
Forecast field of the safety stock planning profile used.
Hope this helps.
The RLT from ECC is in MARC-WZEIT which is transferred to APO in structure /SAPAPO/MATIO field CHKHOR.
May be if you maintain the setting in the profile, you may get the value in RELDT.
Thanks. -
Batch wise rate and revenue for Profitability reports
Process are
We are doing GR of material based on Batch wise and we have moving average price for all trading material.
let say i did 2 GR
Material A
Batch x
MAP 10rs
QTY 10 kg
Material A
Batch y
MAP 15 rs
QTY 20 kg
now i have stock of 30 kg of material with batch X and Y
Now i got sales order of 15 qty and I issued 10 qty from batch X and 5 qty from batch Y
and did billing also.
Now my client want profitability batch wise and rate of consumption also batch wise.
I can create one characteristic WWBAT for batch and also planned Table lookup for Derivation from SD table LIPS.
But how to get cost Batch wise - 10 rs for batch -X and 15 rs for batch-Y. becoz price will come from VPRS which is my latest MAP
regards
RRHi
For Batch - You need to create a WW Char i.e. User Defined Char
Valuation Type - Should be available as a Standard Char in COPA.. You can pull it in your Op Concern from KEA5 using "Reference" option
To get the Batch No - You need to create a derivation step in KEDR using "Enhancement" method... SOURCE field can be ARTNR and Target Field will be WW Char.... Then you can write exit COPA0001 or COPA0005
Valuation Type can also be fetched using the same exit...
br, Ajay M -
QA32 Tcode i want to one more field which is material Description .in our o
In QA32 Tcode i want to one more field which is material Description .in our output . how to do it please guide .
Only exit I am aware of is IWOC0004 / EXIT_SAPLIREP1_001 to change the layout, to add customer field, i dont know any exit/badi, so i suggest you copy the report, copy the structure QALS_D02 to a Z-structure, and complete the field catalog and fill the new field in the code of the copied report.
You could append fields to the structure (QALS_D01 or D02) and use Enhancement method to adapt field catalog and filling new fields (in RQEEAL10 at END-OF-SELECTION or an adequate GET statement)
Regards,
Raymond -
CRM 7.0 - Restrict Available BP Roles in Account Maintenance
Dear Experts,
During BP Maintenance in CRM 7.0 Web UI, how can we restrict the BP role values that are available in the BP Role assignment block i.e. we want to limit only to "Sold-To Party" and "Contact Person."
UI Component: BP_ROLES
View: BP_ROLES/RolesList
Can we achieve this through Security (which object) or Standard Config.
There is a config setting in SPRO for BP role exclusion groups. Is this relevant here?
Thanks!!!
FK
p.s. We attempted a config change to a BP Role Security profile but this only limited SAP GUI not Web UI. Is there a different object to limit the values in the Web UI Assignment BlockHi Fakhan,
There are two ways to solve your requirement :
1. via authorization
explore authorization object B_BUPA_RLT and CRM_BPROLE. Those authorization objects define which BP roles can be edited.
OR
2. via enhancement
Enhance component BP_Roles/AccountRolesEL. In the context node BUILROLES enhance method GET_V_PARTNERROLE
Do the same in component BP_roles/RolesList context node ROLES method GET_V_PARTNERROLE
Hope it's solve your problem
Cheers,
Lina -
Exit/BADI for condition type value
Hi friends,
I have a BADI BADI_SD_BILLING_ITEM. I want to enhance method 'ITEM_PRICING_COM' present in this BADI.
My purpose of using this BADI is that I want to get the values of condition type before saving a billing document.For that purpose I want to enhance this BADI.
But I don't know how to proceed.
Please help me out.
Regards,
RajeshEnhancement
V61A0001 Customer enhancement: Pricing
V60P0001 Data provision for additional fields for display in lists
SDVFX011 Userexit for the komkcv- and kompcv-structures "This may be usefull -
ELM - Duplicate Check, Mapping Format, Create BP in Role
Hi,
I have 3 requirements with respect to ELM (CRM 7.0 Ehp1)
1. Update CRM BP, if external ID/ID type combination occurs again
2. Create BP in a specific role
3. Map extra fields
With the help of multiple threads, I have found that I need to use BAdI CRM_MKTLIST_BADI and enhance methods DUPLICATE_CHECK, CREATE_PERSON etc. Create new mapping format, Append structure CRMT_MKTLIST_PER_EXT with required fields.
I have the following questions:
1. How do I create a new mapping format?
2. What/how to enhance the method DUPLICATE_CHECK of CRM_MKTLIST_BADI to check for duplicates based on external ID number and ID Type?
3. For creating BP in a certain role, is the note 915015 applicable for CRM 7.0?
I would appreciate if anyone can offer quick help in this regard.
Thanks and regards,
AnshikaHi,
You can new mapping format from webui.
You have to log in with a MARKETINGPRO role. To create mapping format, assign business role MARKETINGPRO to your user and go to "Marketing" work center.
In the "Create" area you will find "Mapping format".
CRM_MKTLIST_BADI has a default implementation class you can create a new implementation but you can copy the standard implementation class for your implementation class.
And change the code in method in DUPLICATE_CHECK. the external ID number and ID Type should come via the importing parameters inside the method then you can check with them. But other wise you need to find some other provision of getting them inside.
Thanks,
Rajini Aleti.
Maybe you are looking for
-
My iPad mini retina display wifi 16 GB is showing blank white display and is like frozen. I can't shut it down or restart. It was working perfectly till 13/4/2015 night and next day morning it showing this problem.There is no physical damage to my iP
-
Why Do I have A Volume Named Network On My Desktop -- What Did I Do
I noticed yesterday that I have a volume on my Desktop named "Network". here was also an icon called Server", but that disappeared after I restarted. "Network" may have been there 2- 3 days ago, but I'm sure it wasn't there before 3 days ago. No othe
-
How can I load a flat file into a ZTABLE dynamically
I need to create a program which can Load a ZTABLE from a flat file structure (delimited and fixed options required). We have many ZTables where this will be required so I was hoping to do it dynamically somehow. Otherwise I will have to create one
-
I have a <select box that will potentially have several hundred entries, populated from a SQL Server db. The value of each option will be a number, but the part that users will see is a string (person's name). In order to break up the large list of n
-
Data Manipulation within SAPscript
Hi All, I need to change weight from Kg to Tonnes within SAP script form. Can you let me know how can it be done? Is there any command or statement in SAPscript that i can use? Actually a standard SAP driver program is creating the form and i am req