BADi for deleting a flexible goal in an Appraisal Template (SAP HCM)
Hi,
I know that we can use the standard BADi: ADD_NEW_ELEMENT for a flexible goal.
If the employee has wrongly entered a flexible goal and later if he has to delete it, then do have standard BADi to this too?
Thank you.
Best,
Veera
Hi Andy,
Thanks for the reply. I have managed to recall what I have done long before and here are further details.
Go to the transaction PHAP_CATALOG
Select the drop-down menu "Go-To"
Choose Enhancements
HRHAP00_ENHANCE_DEL1 - Delete Element Only 'In Planning'
HRHAP00_ENHANCE_DEL2 - Delete Element Only 'In Planning' or 'In Review'
HRHAP00_ENHANCE_DEL3 - Delete Element 'In Planning', 'In Review', 'In Process'
Best
Veera.
Similar Messages
-
User exit/BADI for Deleting the Empty Handling unit
Hi All,
Can anyone give me the suitable User exit/BADI for the below scenario.
While creating the TO (Transfer order) for a delivery using the transaction code LT12, the system will automatically generate HU (Handling unit) number. If the materials are not found in the storage bin for the selected HU, we have to delete the Handling Unit from the delivery document.
Thanks in advance.
Thanks
Ramesh.Find below couple of User Exits for Transfer Order.
MWMTO001 - EXIT_SAPLL03T_001 (Enhancements for end of transfer order generation)
MWMTO002 - EXIT_SAPLL03T_002 (User Exit at End of TO Confirmation (in Update Task))
The Exits gives you access to LTAK and LTAP.....
Hope this is helpful to you.
Vinodh Balakrishnan -
Authority Check or BADI for deleting a document in SOLAR02 transaction
Hi All,
Could anyone tell me whether there is any authorization object or BADI to do the check before deleting any document from
SOLAR02 transaction in Project Documentation Tab or General Documentation Tab
Thanks a lot in Advance.Hi Jonathan,
Appreciate your reply. As you know the validations kick in based on your input on the screen, kind of mostly part of PAI of the screen (0750 in this case). But my requirement is to prevent this change in the first place, not validating the user's input after a change option is given to the user.
If you know if and how we can achieve this, please share your thoughts.
Thanks & Regards,
Venu -
AE 5.1 and 5.2 - Configuring parallel workflows for "Delete" Request type
Has anyone configured parallel workflows for the "Delete" Request type? I want to configure 1 for SAP and 1 for non-SAP applications, but have been unable to do it successfully.
The initiators I have created that do not work are:
1 - SAP initiator:
SAP application with "OR" condition
Request Type = Delete with "AND" condition
2 - Non-SAP initiator:
Non SAP application 1 with "OR" condition
Non SAP application 2 with "OR" condition
Non SAP application 3 with "OR" condition
Request Type = Delete with "AND" condition
When I create a request to Delete a user with SAP app and Non SAP app I get the error: "Error in creating request. Multiple Initiators, [NON SAP DELETE, SAP DELETE] Found."
Based on what I am reading on p. 58 of the AE52ConfigGuide.pdf, this should be possible to do. Does anyone have any suggestions?This is my understanding.,
A request cannot have more than one initiator. You cannot trigger multiple initiators for one single request. In your case both attributes SAP & Non SAP application are given with OR condition which makes both the initiators alike. As mentioned in the documentation the request for deletion can be made to happen in both SAP & Non SAP application by having forked path (for this the initiator should be OR Application SAP OR Non SAP Application AND Request Type Delete). Given the other option then it should have different initiator for SAP and Non SAP applications by giving them with AND condition. -
Is there is any career opp. for SAP HCM?
hi,
I am from payroll background, i woudl like to pursue the SAP HCM for better career opp. however, many clients are now opting for Sucess Factors. So is it worth doing SAP HCM now?Hi,
I guess SAP bought Successfactors, and developing on its own. So, you may not find SF with out Surname as SAP in future.
Please browse thru Success factors website.
Please forgive if there is any mistake in my comments....
Please also wait for Experts suggestions... -
Exit or BADI for ME23N Deletion
Hi All,
I have a scenario like in PO have only one line item ,i want to delete that one line item for particular users (Authorization role)
if i have more than one line item i don't want to delete .
please tell me how can i solve this .
Thanks,
KK
Moderator message : Thread locked, reason mentioned in [Exit or BADI for ME23N Deletion|Exit or BADI for ME23N Deletion]
Edited by: Vinod Kumar on Aug 19, 2011 1:42 PMHi
In rel 4.6C you can find these BADIs:
- MB_DOCUMENT_BADI or MB_DOCUMENT_UPDATE
and these exits: MBCF0002, MB_CF001
Max -
BAdi name for deleting address in table recurring destinations.
Hi All,
In BAdi (Definition Name - TRIP_WEB_CUSTOMIZING) for deleting the adresses in the table recurring_destinations what Addin implementation need to considered so the user will not see them in the Webdynpro.
Thanks
Thanks and Regards
Sri.Niteshkhush wrote:
Yes karthick I have seen that document already it says as return value is either o or 1 as if exists then it will delete when we give value as 1 and if we give 0 then even though data's exists but it will remove unmatched one's only and i am having same data's in 2 rows and XMLPATH is also same bt its deleting only one row so i just thought as is thr any values available rather than 0 or 1 to delete multiple rows at a same time..
Have a look on data's once .. The below mentioned data is available in 2 rows .. But when i tried through update then it didnt update as update just modifies but dont delete XMLtype row fully where as as u provided delete which helped but its deleting single row alone not other duplicates.. I tried also .. Is thr any other way coz 2 rows exists then why its deleting single row alone
<H>
<cust_dtlss>
<cust_name>Nitesh</cust_name>
<cust_phone>1234567890</cust_phone>
<cust_place>Ambattur</cust_place>
</cust_dtlss>
<cust_dtlss>
<cust_name>Bharathi</cust_name>
<cust_phone>123</cust_phone>
<cust_place>Mylapore</cust_place>
</cust_dtlss>
</H>
Thanks,
Nitesh..
Let me be clear. Based on your example you have only 1 row in your table nit_xml. This single row has a XMLType which has 2 cust_dtlss node.
Your objective is to delete the Row of a table which has a XMLType having cust_name = Bharathi
And the DELETE statement does it, It delets the entire row, So whats the problem? -
BADI for Address Check in PA30 in ECC6.0
Hi Friends,
Is there any BADI for Address Check in PA30 in ECC6.0 similar to what we have in BP transaction in ECC6.0.
Thanks,
Pradeepcheck these...
Enhancement/ Business Add-in Description
Enhancement
PBASRP01 PA: User exit distributed reporting
PBAS0002 PA: Enhancements for Personnel Administration - Menu
PBAS0001 PA: Pers.Admin./Recruitment: Default values and checks
PARA0002 Enhancement for Calculating Annual Salary; IT0008,14,15
PARA0001 Enhancement for Determining the Number of Periods
HRRPAI01 User exit for FB HR_ENTRY_DATE and HR_LEAVING_DATE
HRPC0001 HR: PC download authorization
HRPBAS01 User Exit for HR Master Data
Business Add-in
HRPAD00_PREM Definition of User Exit for Collective Search Help PREM
HRPAD00_RECOG_SCREEN Employee Recognition Screen
HRPADUS_PBAS_0001 Customer Exit for Message handling
HRPAD_SUBTY_CHECK HR: Master Data, Subtype Check
HR_F4_GET_SUBTYPE HR: Entry help for subtypes
HR_FAST_ACTION_CHECK Check fields on the fast entry screen
HR_INDVAL HR: Indirect wage type valuation
HR_SET_PKGAB
HRPAYXX_DELETE_PERNR BAdI for Reports Deleting Personnel Numbers
HRPAD00_PAPM Definition of User Exit for Collective Search Help PAPM
HRPAD00_GET_AF_0008 Additional Fields for Basic Pay Infotype (0008)
HRPAD00_ENTRY_LEAVE HR_ENTRY_DATE and HR_LEAVING_DATE
HRPAD00_ADRS HR: Address formatting
HRPAD00MGEACTIVATION Activation Action BAdI for Global Employees
HRPAD00INFTY Update / Infotype maintenance
HRPAD00AUTH_TIME Time Logic in the PA Authorization Check
HRPAD00AUTH_RECORD Spanish Data Privacy Law: Exit for Recording
HRPAD00AUTH_CHECK HR: Authorization Check
HRIV_REDUCE_AMOUNT Reduction within Indirect Valuation
No.of Exits: 8
No.of BADis: 19 -
User exit or BADI for recruitment
Hi,
I am new to HCM, can you give me user exit or badi for recruitment.
Requirement - i have developed an infotype which i am updating through BSP, while the custom infotype is updated it should simultaneously update some of my Z tables. Hoping for positve replies earliest.
Thanks in advance:-
SantoshHi,
<b>Infotype</b>The data fields of HR master data, time management and recruitment are grouped logically into information types or infotypes for short.
Examples of infotypes are "Family/Related Person", "Organizational Assignment, "Basic Pay".
The following naming conventions apply to infotypes:
Infotypes 0000 to 0999 are used for HR master data
and sometimes for applicant data
Infotypes 1000 - 1999 for organizational management
Infotypes 2000 - 2999 for time data
Infotypes 4000 - 4999 for applicant data
Infotypes 9000 - 9999 for customers
<b>Function character of step</b>
This controls for which types of processing (create, change and/or delete a data record) a dynamic action should be carried out.
The processing type is indicated by a two-digit numeric value. These values can be added up; in other words, you can enter several processing types for each infotype, subtype or field. A dynamic action can also be carried out independent of the current processing type.
00 for Independent of the current function carried out
02 for Change
04 for Create
06 for Change and create
08 for Delete
10 for Change and delete
12 for Create and delete
Examples
If you enter 06, an action is carried out if the specified infotype was created or changed.
If you enter 00, an action is carried out irrespective of whether the specified infotype was created, changed or deleted.
<b>Variable function part</b>
The variable function part, which depends on the indicator for step, can have the following meaning:
<b>P - Plausibility checks</b>
You can enter values for specific infotype fields. Field names must be entered in full. Literals and constants can serve as comparison values. These must be enclosed by inverted commas. Variables can also be used.
The old value of a field can be used for comparison; the field name must be preceded by PSAVE-.
If fields of other infotypes are used for comparison, these must be stored in the module pool of the current infotype.
The following comparison operators are supported:
= equal to,
< less than,
<= less than or equal to,
> greater than
>= greater than or equal to and
<> not equal to.
Consecutive checks must be linked by a logical AND. Logical OR links must also be indicated by a /X.
Note:
Note that all checks with OR links must have a /X.
If the result of the comparison operation is not "true", then the following commands (I, F, W etc.) are skipped over until a field is reached or a new comparison operation takes place.
Examples
Infotype Field ..... Ind. Variable function part
0007 STAT3 P P0007-STAT3='0'
0007 STAT3 P PSAVE-STAT3='1'
The step is taken if the value in the P0007-STAT3 field changes from 1 to 0.
0007 P P0013-KLKZ1<>'0'/X
0007 P P0013-ALVKZ<>'0'/X
0007 P P0013-RVKZ1<>'0'/X
0007 P P0013-RVNUM=SPACE
The first three conditions are linked by an OR; at least one of these conditions must be met. Condition 4 must always be met.
The step is taken if the following holds true:
P0013-KVKZ1 not equal to 0 or P0013-ALVKZ not equal to 0 or P0013-RVKZ1 not equal to 0, and P0013-RVNUM empty.
<b>I - Maintain infotype record</b>
Enter the step, infotype, subtype, object ID, start and end dates of the record and an indicator which defines whether the step is to be run in the background. The possible actions are INS, COP, MOD, and DEL.
Use commas to separate selection criteria just like the separator in the matchcode. If an entry is missing, the system inserts a comma.
Separate the indicator for suppressing dialog from other entries by a slash D (/D).
Constants, such as those for subtypes, are not enclosed in inverted commas.
Variable entries are also permitted. Fields containing such values must be put in brackets.
Examples:
Infotype Field .... Ind. Variable function part
.... I INS,19,01/D
Step: Create a Dates record, subtype 01, run in the background
.... I DEL,14,M559
Step: Delete Rec. Payments/Deds. record with subtype (wage type) M559.
0007 .... I INS,8,,,(P0007-BEGDA),(P0007-ENDDA)
Step: Create a Basic Pay record (0008) without subtype and object ID. The start and end dates are the same as those in the current Planned Working Time record (0007); specify these two fields only if they are filled because the dynamic action was triggered by this infotype.
<b>W - Default values for new record</b>
Literals or variables are used as default values.
Set the defaults for the infotype, subtype, object ID, start and end dates using an I step and not a W step.
Do not set defaults for Q fields of an infotype because the values for these fields are derived from the corresponding P fields.
Examples
Infotype Subtype ..... FC Ind. Variable function part
0021 2 04 I INS,0015,M430
0021 2 04 W P0015-BETRG='10000'
When a Family/Related Person record (0021) record with subtype 2 (child) is created, an Additional Payments record (0015) with a default amount of 100.00 is created.
<b>V - Cross-reference to another step</b>
Here, you can combine fields to groups. The variable function part contains the value in the field which follows the "field" column. Steps which are specified only for the following field are also triggered for each of the other fields.
Examples
Infotype Field ..... FC Ind. Variable function part
0016 PRBZH 06 V PRBZT
0016 PRBZT 06 I DEL,0019,01/D
Infotype 0019, subtype 01 is deleted in the background when the field PRBZT or PRBZH in infotype 0016 is changed or created (function code 06).
The following entries are equivalent:
0016 PRBZH 06 I DEL,0019,01/D
0016 PRBZT 06 I DEL,0019,01/D
<b>F - Call a routine</b>
You can call internal (module pool) as well as external routines.
If you call external routines, type the program name in brackets after the routine name. Do not specify 'using' parameters. When calling an external routine, all data must be declared in a common part. You can use the fields of structure RP50D to return values from the routine. These are not used in the standard system and can only be populated via the routine and then can be used for defaults (W-Commands).
This allows customer-specific routines to be formulated with all the above steps.
Example 1:
Infotype Field ..... Ind. Var.function part
0016 PRBZT F PROBATION
0016 PRBZT I INS,19,01
0016 PRBZT W P0019-VTRMN=PRBEND
Module pool MP001600 contains the PROBATION routine. This routine uses the entries in the fields P0016-PRBZT and P0016-PRBEH to determine the end of the probation period which it stores in the field PRBEND.
The system creates a new 'Dates' record with the reminder date = PRBEND.
Example 2:
Infotyp ..... Ind. Var. function part
0001 F GET_DATE(ZPUDYN01)
0001 I INS,19,01
0001 W P0019-VTRMN=RP50D-DATE1
The GET_DATE routine in program ZPUDYN01 calculates a date and enters this date in the RP50D-DATE1 field via "TABLES RP50D" in ZPUDYN01. This date can be user-defined in GET_DATE: if necessary, user-defined infotypes can be read afterwards.
<b>M - Send a mail</b>
Enter the name of the feature which defines the characteristics of the mail.
Example
Infotype Field ..... Ind. Var.function part
0001 SACHP M M0001
A mail is sent when the field SACHP is changed. The characteristics of the mail are defined in feature M0001.
In the standard system, feature M0001 is provided as a model. The documentation on feature M0001 explains how to define the characteristics of a mail.
<b>ADDITIONAL HINTS</b>
If you use a date as a constant, enter it as YYYYMMDD (YYYY=year, MM=month, DD=day).
The table strings T001P, T503 and PSPAR are filled with the values which are valid on the record start date.
The old values of the infotype are stored in the field string PSAVE. The structure of this string is the same as the Pnnnn structure (nnnn=infotype). The structure is filled with (valid) values only when the delete, change and create functions are used.
Please read Create dynamic actions in the Implementation Guide.
Regards
Bernd -
BADI for post processing of IDOC BOMORD
Hi experts ,
I want a BADI for post processing of IDOC BOMORD. Actually after IDOC processing BOM got updated in system and i want to schedule the explosion of BOM in process order after it. Please update me with the solution.
Thanks
Nitin kapoorRoberto, thanks for your prompt reply (as always).
Actually, it seems that the deletion of the prior infopackage request is performed before executing the infopackage again (not after), I apologize. I will try your suggestion, though. If this is actually the correct FM, then I will award you full points!
I must admit, though, understanding the parameters of the FM are difficult. Can you aor anyone else provide more details? -
Userexit/BAdi for CBIH102 (HR-EHS module)
Hi guru's,
Please help find the userexit/BAdi for Transaction code: CBIH102. The Requirement is to auto-populate the Accident Category (CCIHT_IPEVA-IALPCAT) field during the Creation/Change mode. I tried the below exits/BAdi & set all the breakpoints, activated CMOD projects and even implemented BAdi. It is not triggering. Enhancement Framew
Object Name Description
EHSIAHM1 EH&S: Menu Exit 1 for Incident/Accident Log Header
EHSIAHM2 EH&S: Menu Exit 2 for Incident/Accident Log Header
EHSIAPM1 EH&S: Menu Exit 1 for Incident/Accident Log Person
EHSIAPM2 EH&S: Menu Exit 2 for Incident/Accident Log Person
EHSMPHM1 EHS: Menu Exit 1 for Measurement Project Header Data
EHSMPHM2 EHS: Menu Exit 2 for Measurement Project Header Data
EHSMPJM1 EHS: Menu Exit 1 for Measurement Project Measurements
EHSMPJM2 EHS: Menu Exit 2 for Measurement Project Measurements
EHSSARA EHS: Check/Edit Lines in SARA List Before Printout
BAdi Name Description
EHSI_AC_COSTC EHS: Cost Calculation in Safety Measures
EHSI_ANNC_RATCP EHS: Calculation of Rating of Standardized Criteria
EHSI_ER_MEX_01 EHS: Risk Assessment Menu Exit 1
EHSI_ER_MEX_02 EHS: Risk Assessment Menu Exit 2
EHSI_ER_MEX_03 EHS: Risk Assessment Menu Exit 3
EHSI_ER_MEX_04 EHS: Risk Assessment Menu Exit 4
EHSI_FAL_***_SRV_SCR EHS: Screen Enhancement: Injury/Illness Log-Service Assignmt
EHSI_FAL_MEX_01 EHS: Injury/Illness Log Menu Exit 1
EHSI_FAL_MEX_02 EHS: Injury/Illness Log Menu Exit 2
EHSI_FAL_MEX_03 EHS: Injury/Illness Log Menu Exit 3
EHSI_FAL_MEX_04 EHS: Injury/Illness Log Menu Exit 4
EHSI_IA_RPHDFLG_COMP EHS: Determ. of Reportable Event Indicator in Inc./Acc. Hdr
EHSI_INT_ORG_1403 EHS: Write Long-Term Average to Infotype 1403
EHSI_MJVA_MATCHUP EHS: Transfer Measured Values - Amounts
EHSI_MJ_IMPORT EHS: Import Measured Values
EHSI_MJ_MEX_01 EHS: Measurement Management - Measurement - Menu Exit 1
EHSI_MJ_MEX_02 EHS: Measurement Management - Measurement - Menu Exit 2
EHSI_MP_CREATE EHS: Create Measurement Projects
EHSI_MP_DV_SCR EHS: Screen Exit: Device List in Measurement Management
EHSI_MP_EPI_IMP EHS: Import Exposure Profile
EHSI_MP_METHOD_HELP EHS: F4 Help for Measurement Method
EHSI_MP_MEX_01 EHS: Measurement Management - Meas. Project - Menu Exit 1
EHSI_MP_MEX_02 EHS: Measurement Management - Meas. Project - Menu Exit 2
EHSI_WA_MEX_01 EHS: Work Area Menu Exit 1
EHSI_WA_MEX_02 EHS: Work Area Menu Exit 2
EHSI_WA_MEX_03 EHS: Work Area Menu Exit 3
EHSI_WA_MEX_04 EHS: Work Area Menu Exit 4
EHSI_WA_OVERALL_RAT BAdI Default Impl.: Work Area Overall Rating
EHSI_WA_RECEIVED_RAT BAdI Default Impl.: Work Area Received Rating
EHSI_ACPM_DATA_TRANS BAdI Default Impl.: Work Area Received Rating
EHSI_CLM_HEAD_SCR BAdI Default Impl.: Work Area Received Rating
EHSI_CLM_MEX_1 BAdI Default Impl.: Work Area Received Rating
EHSI_CLM_MEX_2 BAdI Default Impl.: Work Area Received Rating
EHSI_CLM_PAY_SCR BAdI Default Impl.: Work Area Received Rating
EHSI_IAL_COSTS_SCR BAdI Default Impl.: Work Area Received Rating
EHSI_IPEVA_TIMDAT EHS: Make the Multiple Absences in the I/A Log flexible
Regards,
VinayakUp please )
-
IPad clipboard - one reason, why it is so bad for me
iPad clipboard - one reason, why it is so bad for me
search for adresses on an app for that and export the found adresses per email;
THe first task goes well; further adresses (say, I need today three adresses from acertain village) are going wrong. Can anyone consider, why?Fourth time, because my first three answers were blowing in the wind, gefressen guzzled by the clipboard or reloading safaripage, the third by notes, never I have seen there have been hundred of chars eaten by notes.
1) I have an application (“app”) to search addresses in austria as there is a phone-number connected.
2) I can generate a contact entry with the result or export it in various channels, say I send it per e-mail to me (for using it on an other device outside iOS or send it to a collegue.)
3) If there are more than one wanted results, I have to send them one by one.
4) Looking for the e-mails, they may have a totally senseless content (an earlier clipboard-content) or
every e-mail has the same content: the first address in the results-list.
5) Please do not ask me, why this is. I would be glad to hear from you how to stop this behavior of
iPad (with wich I was really happy for years and which is since month not helpful but the source of nuisance friendly said on every use
daily, hourly, eight times or so every hour)
{see https://discussions.apple.com/message/26921591?ac_cid=op123456#26921591}
And yes I have tried all resettings though not the one to delete all content, perhaps Apple can find a better solution for me (so I thought weeks before). -
FBL3N/FBL5N/FAGLL03 user exits and badis for authorization
Hi Gurus,
I have tried userexit and badis for FBL3N , FBL5N and FAGLL03 for the purpose of user want to display documents created by him and other users documents should not display . Please suggest me any user exit or badi and logic for the same.
Moderator message: last warning, if you continue to disregard moderator messages and post the same question nevertheless, I will initiate deletion of your user ID.
Edited by: Thomas Zloch on May 10, 2011 9:57 AMHi,
1. Execute report FBL3n and in the output goto menu SETTINGS -> SPECIAL FIELDS and add the entry BKPF-USNAM and save. Now the user who have created the entry will be available in your FBL*N report.
2. Goto BTE event 00001650 - SAMPLE_INTERFACE_00001650, and copy the FM SAMPLE_INTERFACE_00001650 to custom FM. Inside this custom FM, first pass the value of I_POSTAB to E_POSTAB. i.e
E_POSTAB[] = I_POSTAB[].
Now loop E_POSTAB and check whether E_POSTAB-USNAM NE SY-UNAME, then delete that entry from the internal table E_POSTAB.
3. Now create a custom product in FIBF transaction and check the activate checkbox. Attach the event 00001650 and custom FM to the P/S module customer part.
Hope this will meet your requirement.
Regards,
Harish
Moderator message: please be more selective when replying to questions (especially the "do my work" kind), better check the posters history before investing effort.
Edited by: Thomas Zloch on May 10, 2011 9:59 AM -
EXIT NAME OR BADI FOR FIELD IN MIGO TRANSACTION (full poins will be given)
Hai all,
VERY URGENT REQ.
In MIGO transaction, I want to know the BADI or EXIT NAME in which the following fields are avilable .
Fields name: exgrp, EXCISE_ACTION
exact screen field name is : J_1IEXHEAD-EXGRP
J_1IEXHEAD-EXCISE_ACTION
Full Points will be given for correct answer.
Thanks in advance.
s.senthil kumarHi,
Try this code .We can get the User exits and Badis for the Tcode.
Code:
& Report ZPJA_PM002 (Ver4) &
& PJA Consultancy Services (www.pjas.com) &
& This report attmpts to find Enhancements, Program-Exits, BADIs &
& and Business Transaction Events in a particular program/tcode. &
& Other search options: &
& Program: RPR_ABAP_SOURCE_SCAN &
& FModule: &
& Text Elements: &
& P_DEVC Show user-exits from development class &
& P_LIMIT Limit submit program selection &
& P_FUNC Show function modules &
& P_SUBM Show submit programs &
& S01 Selection data (TCode takes precedence over program name) &
report zpja_pm002
no standard page heading
line-size 221.
data: tabix like sy-tabix,
w_linnum type i,
w_off type i,
w_index like sy-tabix,
w_include like trdir-name,
w_prog like trdir-name,
w_incl like trdir-name,
w_area like rs38l-area,
w_level,
w_fsel like sy-ucomm, " Determination of screen field
w_str(50) type c,
w_funcname like tfdir-funcname.
constants: c_fmod(40) type c value 'Function modules selected: ',
c_subm(40) type c value 'Submit programs selected: ',
c_col1(12) type c value 'Enhanmt Type',
c_col2(40) type c value 'Enhancement',
c_col3(30) type c value 'Program/Include',
c_col4(20) type c value 'Enhancement Name',
c_col5(40) type c value 'Enhancement Description',
c_col6(8) type c value 'Project',
c_col7(1) type c value 'S',
c_col8(12) type c value 'ChangeName',
c_col9(10) type c value 'ChangeDate'.
Work Areas: ABAP Workbench
data: begin of wa_d010inc.
data: master type d010inc-master.
data: end of wa_d010inc.
data: begin of wa_tfdir.
data: funcname type tfdir-funcname,
pname type tfdir-pname,
include type tfdir-include.
data: end of wa_tfdir.
data: begin of wa_tadir.
data: devclass type tadir-devclass.
data: end of wa_tadir.
data: begin of wa_tstc.
data: pgmna type tstc-pgmna.
data: end of wa_tstc.
data: begin of wa_tstcp.
data: param type tstcp-param.
data: end of wa_tstcp.
data: begin of wa_enlfdir.
data: area type enlfdir-area.
data: end of wa_enlfdir.
Work Areas: BADIs
data: begin of wa_sxs_attr.
data: exit_name type sxs_attr-exit_name.
data: end of wa_sxs_attr.
data: begin of wa_sxs_attrt.
data: text type sxs_attrt-text.
data: end of wa_sxs_attrt.
Work Areas: Enhancements
data: begin of wa_modsap.
data: member type modsap-member.
data: end of wa_modsap.
data: begin of wa_modsapa.
data: name type modsapa-name.
data: end of wa_modsapa.
data: begin of wa_modsapt.
data: modtext type modsapt-modtext.
data: end of wa_modsapt.
Work Areas: Business Transaction Events
data: begin of wa_tbe01t.
data: text1 type tbe01t-text1.
data: end of wa_tbe01t.
data: begin of wa_tps01t.
data: text1 type tps01t-text1.
data: end of wa_tps01t.
user-exits
types: begin of ty_mod,
member like modact-member,
name like modact-name,
status like modattr-status,
anam like modattr-anam,
adat like modattr-adat,
end of ty_mod.
data: w_mod type ty_mod.
types: begin of t_userexit,
type(12) type c,
pname like trdir-name,
txt(300),
level type c,
modname(30) type c,
modtext(60) type c,
modattr type ty_mod,
end of t_userexit.
data: i_userexit type standard table of t_userexit with header line.
Function module developmnet classes
types: begin of t_devclass,
clas like trdir-clas,
end of t_devclass.
data: i_devclass type standard table of t_devclass with header line.
types: begin of t_enlfdir,
area type enlfdir-area,
end of t_enlfdir.
data: i_enlfdir type standard table of t_enlfdir with header line.
Submit programs
types: begin of t_submit,
pname like trdir-name,
level,
done,
end of t_submit.
data: i_submit type standard table of t_submit with header line.
Source code
types: begin of t_sourcetab, "#EC * (SLIN lügt!)
line(200), "#EC * (SLIN lügt!)
end of t_sourcetab. "#EC * (SLIN lügt!)
data: sourcetab type standard table of t_sourcetab with header line.
data c_overflow(30000) type c.
Description of an ABAP/4 source analysis token
data: i_stoken type standard table of stokex with header line.
data wa_stoken like i_stoken.
Description of an ABAP/4 source analysis statement
data: i_sstmnt type standard table of sstmnt with header line."#EC NEEDED
keywords for searching ABAP code
types: begin of t_keywords,
word(30),
end of t_keywords.
data: keywords type standard table of t_keywords with header line.
function modules within program
types: begin of t_fmodule,
name like rs38l-name,
pname like trdir-name,
pname2 like trdir-name,
level,
bapi,
done,
end of t_fmodule.
data: i_fmodule type standard table of t_fmodule with header line.
& Selection Options &
selection-screen begin of block selscr1 with frame title text-s01.
parameter: p_pname like trdir-name memory id rid,
p_tcode like syst-tcode,
p_limit(4) type n default 100,
p_devc like rihea-dy_ofn default ' ',
p_func like rihea-dy_ofn default ' ',
p_subm like rihea-dy_ofn default ' '.
selection-screen end of block selscr1.
& START-OF-SELECTION &
start-of-selection.
if p_pname is initial and p_tcode is initial.
message e008(hrfpm). "Make entry on the selection screen
stop.
endif.
ensure P_LIMIT is not zero.
if p_limit = 0.
p_limit = 1.
endif.
perform data_select.
perform get_submit_data.
perform get_fm_data.
perform get_additional_data.
perform data_display.
& Form DATA_SELECT &
form data_select.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get programs/includes' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
determine search words
keywords-word = 'CALL'.
append keywords.
keywords-word = 'FORM'.
append keywords.
keywords-word = 'PERFORM'.
append keywords.
keywords-word = 'SUBMIT'.
append keywords.
keywords-word = 'INCLUDE'.
append keywords.
if not p_tcode is initial.
get program name from TCode
select single pgmna from tstc into wa_tstc-pgmna
where tcode eq p_tcode.
if not wa_tstc-pgmna is initial.
p_pname = wa_tstc-pgmna.
TCode does not include program name, but does have refereve TCode
else.
select single param from tstcp into wa_tstcp-param
where tcode eq p_tcode.
if sy-subrc = 0.
check wa_tstcp-param(1) = '/'.
check wa_tstcp-param+1(1) = '*'.
if wa_tstcp-param ca ' '.
endif.
w_off = sy-fdpos + 1.
subtract 2 from sy-fdpos.
if sy-fdpos gt 0.
p_tcode = wa_tstcp-param+2(sy-fdpos).
endif.
select single pgmna from tstc into wa_tstc-pgmna
where tcode eq p_tcode.
p_pname = wa_tstc-pgmna.
if sy-subrc 0.
message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
endif.
else.
message e110(/saptrx/asc) with 'No program found for: ' p_tcode."#EC NOTEXT
endif.
endif.
endif.
Call customer-function aus Program coding
read report p_pname into sourcetab.
if sy-subrc > 0.
message e017(enhancement) with p_pname raising no_program."#EC *
endif.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
overflow into c_overflow
with includes.
if sy-subrc > 0. "keine/syntakt. falsche Ablauflog./Fehler im Skanner
message e130(enhancement) raising syntax_error. "#EC *
endif.
check I_STOKEN for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_level = '0'.
w_prog = ''.
w_incl = ''.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endform. "DATA_SELECT
& Form GET_FM_DATA &
form get_fm_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get function module data' "#EC NOTEXT
exceptions
system_failure
communication_failure. "#EC *
Function module data
sort i_fmodule by name.
delete adjacent duplicates from i_fmodule comparing name.
loop at i_fmodule where done ne 'X'.
clear: i_stoken, i_sstmnt, sourcetab, wa_tfdir, w_include .
refresh: i_stoken, i_sstmnt, sourcetab.
store function groups
select single area from enlfdir into wa_enlfdir-area
where funcname = i_fmodule-name.
i_enlfdir-area = wa_enlfdir-area.
append i_enlfdir.
Store development classes
if not wa_enlfdir-area is initial.
select single devclass into wa_tadir-devclass
from tadir where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name = wa_enlfdir-area.
check not wa_tadir-devclass is initial.
move wa_tadir-devclass to i_devclass-clas.
append i_devclass.
endif.
clear wa_tfdir.
select single funcname pname include from tfdir into wa_tfdir
where funcname = i_fmodule-name.
check sy-subrc = 0.
call function 'FUNCTION_INCLUDE_SPLIT'
exporting
program = wa_tfdir-pname
importing
group = w_area.
concatenate 'L' w_area 'U' wa_tfdir-include into w_include.
i_fmodule-pname = w_include.
i_fmodule-pname2 = wa_tfdir-pname.
modify i_fmodule.
read report i_fmodule-pname into sourcetab.
if sy-subrc = 0.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
with includes.
if sy-subrc > 0.
message e130(enhancement) raising syntax_error.
endif.
check i_stoken for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_level = '1'.
w_prog = i_fmodule-pname2.
w_incl = i_fmodule-pname.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endif.
endloop.
sort funtion groups
sort i_devclass.
delete adjacent duplicates from i_devclass.
sort i_enlfdir.
delete adjacent duplicates from i_enlfdir.
endform. "GET_FM_DATA
& Form GET_SUBMIT_DATA &
form get_submit_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get submit data' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
sort i_submit.
delete adjacent duplicates from i_submit comparing pname.
w_level = '0'.
loop at i_submit where done ne 'X'.
check i_submit-pname ne p_pname. " ensure not the same as origianl program
clear: i_stoken, i_sstmnt, sourcetab.
refresh: i_stoken, i_sstmnt, sourcetab.
read report i_submit-pname into sourcetab.
if sy-subrc 0.
delete i_submit.
continue.
else.
scan abap-source sourcetab tokens into i_stoken
statements into i_sstmnt
keywords from keywords
with includes.
if sy-subrc > 0.
continue.
endif.
check i_stoken for entries
clear w_linnum.
describe table i_stoken lines w_linnum.
if w_linnum gt 0.
w_prog = i_submit-pname.
w_incl = ''.
perform data_search tables i_stoken using w_level w_prog w_incl.
endif.
endif.
restrict number of submit program selected for processing
describe table i_submit lines w_linnum.
if w_linnum ge p_limit.
w_level = '1'.
endif.
i_submit-done = 'X'.
modify i_submit.
endloop.
sort i_submit.
delete adjacent duplicates from i_submit comparing pname.
endform. "GET_SUBMIT_DATA
& Form DATA_SEARCH &
form data_search tables p_stoken structure stoken
using p_level p_prog p_incl.
loop at p_stoken.
clear i_userexit.
tabix = sy-tabix + 1.
i_userexit-level = p_level.
if i_userexit-level = '0'.
if p_incl is initial.
i_userexit-pname = p_pname.
else.
concatenate p_pname '/' p_incl into i_userexit-pname.
endif.
else.
if p_incl is initial.
i_userexit-pname = p_prog.
else.
concatenate p_prog '/' p_incl into i_userexit-pname.
endif.
endif.
Include
if p_stoken-str eq 'INCLUDE'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
check not wa_stoken-str cs 'STRUCTURE'.
check not wa_stoken-str cs 'SYMBOL'.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc 0.
i_submit-pname = wa_stoken-str.
i_submit-level = p_level.
append i_submit.
endif.
endif.
Enhancements
if p_stoken-str eq 'CUSTOMER-FUNCTION'.
clear w_funcname.
read table p_stoken index tabix.
translate p_stoken-str using ''' '.
condense p_stoken-str.
if p_prog is initial.
concatenate 'EXIT' p_pname p_stoken-str into w_funcname
separated by '_'.
else.
concatenate 'EXIT' p_prog p_stoken-str into w_funcname
separated by '_'.
endif.
select single member from modsap into wa_modsap-member
where member = w_funcname.
if sy-subrc = 0. " check for valid enhancement
i_userexit-type = 'Enhancement'.
i_userexit-txt = w_funcname.
append i_userexit.
else.
clear wa_d010inc.
select single master into wa_d010inc-master
from d010inc
where include = p_prog.
concatenate 'EXIT' wa_d010inc-master p_stoken-str into w_funcname
separated by '_'.
i_userexit-type = 'Enhancement'.
i_userexit-txt = w_funcname.
endif.
endif.
BADIs
if p_stoken-str cs 'cl_exithandler='.
w_index = sy-tabix + 4.
read table p_stoken index w_index into wa_stoken.
i_userexit-txt = wa_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
i_userexit-type = 'BADI'.
append i_userexit.
endif.
Business transaction events
if p_stoken-str cs 'OPEN_FI_PERFORM'.
i_userexit-type = 'BusTrEvent'.
i_userexit-txt = p_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
i_userexit-modname = i_userexit-txt+16(8).
case i_userexit-txt+25(1).
when 'E'.
clear wa_tbe01t.
select single text1 into wa_tbe01t-text1 from tbe01t
where event = i_userexit-txt+16(8)
and spras = sy-langu.
if wa_tbe01t-text1 is initial.
i_userexit-modtext = ''. "#EC NOTEXT
else.
i_userexit-modtext = wa_tbe01t-text1.
endif.
i_userexit-modname+8 = '/P&S'. "#EC NOTEXT
when 'P'.
clear wa_tps01t.
select single text1 into wa_tps01t-text1 from tps01t
where procs = i_userexit-txt+16(8)
and spras = sy-langu.
i_userexit-modtext = wa_tps01t-text1.
i_userexit-modname+8 = '/Process'.
endcase.
append i_userexit.
endif.
Program exits
if p_stoken-str cs 'USEREXIT_'.
i_userexit-type = 'Program Exit'.
i_userexit-txt = p_stoken-str.
replace all occurrences of '''' in i_userexit-txt with space.
append i_userexit.
endif.
Submit programs
if p_stoken-str cs 'SUBMIT'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
check not p_stoken-str cs '_'. " ensure not SUBMIT_XXX
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
check not wa_stoken-str cs '_'. " ensure not SUBMIT_XXX
replace all occurrences of '''' in wa_stoken-str with space.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc 0.
i_submit-pname = wa_stoken-str.
i_submit-level = p_level.
append i_submit.
endif.
endif.
Perform routines (which reference external programs)
if p_stoken-str cs 'PERFORM'.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
if not wa_stoken-ovfl is initial.
w_off = wa_stoken-off1 + 10.
w_str = c_overflow+w_off(30).
find ')' in w_str match offset w_off.
w_off = w_off + 1.
wa_stoken-str = w_str(w_off).
endif.
check wa_stoken-str cs '('.
w_off = 0.
while sy-subrc = 0.
if wa_stoken-str+w_off(1) eq '('.
replace section offset w_off length 1 of wa_stoken-str with ''.
replace all occurrences of ')' in wa_stoken-str with space.
read table i_submit with key pname = wa_stoken-str.
if sy-subrc 0.
i_submit-pname = wa_stoken-str.
append i_submit.
endif.
exit.
else.
replace section offset w_off length 1 of wa_stoken-str with ''.
shift wa_stoken-str left deleting leading space.
endif.
endwhile.
endif.
Function modules
if p_stoken-str cs 'FUNCTION'.
clear i_fmodule.
check p_level eq '0'. " do not perform for function modules (2nd pass)
w_index = sy-tabix + 1.
read table p_stoken index w_index into wa_stoken.
if wa_stoken-str cs 'WF_'.
if wa_stoken-str cs 'IDOC'.
break-point.
endif.
if wa_stoken-str cs 'BAPI'.
i_fmodule-bapi = 'X'.
endif.
replace first occurrence of '''' in wa_stoken-str with space.
replace first occurrence of '''' in wa_stoken-str with space.
if sy-subrc = 4. " didn't find 2nd quote (ie name truncated)
clear wa_tfdir.
concatenate wa_stoken-str '%' into wa_stoken-str.
select single funcname into wa_tfdir-funcname from tfdir
where funcname like wa_stoken-str.
if sy-subrc = 0.
i_fmodule-name = wa_tfdir-funcname.
else.
continue.
endif.
else.
i_fmodule-name = wa_stoken-str.
endif.
read table i_fmodule with key name = i_fmodule-name.
if sy-subrc 0.
i_fmodule-level = p_level.
append i_fmodule.
endif.
endif.
endloop.
endform. "DATA_SEARCH
& Form GET_ADDITIONAL_DATA &
form get_additional_data.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Get additional data' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
loop at i_userexit.
Enhancement data
if i_userexit-type cs 'Enh'.
clear: wa_modsapa.
select single name into wa_modsapa-name from modsap
where member = i_userexit-txt.
check sy-subrc = 0.
i_userexit-modname = wa_modsapa-name.
clear wa_modsapt.
select single modtext into wa_modsapt-modtext from modsapt
where name = wa_modsapa-name
and sprsl = sy-langu.
i_userexit-modtext = wa_modsapt-modtext.
MOH - enhancement to get the project name
clear w_mod.
select single modactmember modactname modattr~status
modattranam modattradat
into w_mod
from modact
inner join modattr
on modattrname = modactname
where modact~member = wa_modsapa-name
and modact~typ = space.
i_userexit-modattr = w_mod.
MOH - eoe
endif.
BADI data
if i_userexit-type eq 'BADI'.
clear wa_sxs_attr.
select single exit_name into wa_sxs_attr-exit_name from sxs_attr
where exit_name = i_userexit-txt.
if sy-subrc = 0.
i_userexit-modname = i_userexit-txt.
else.
i_userexit-modname = 'Dynamic call'. "#EC NOTEXT
endif.
clear wa_sxs_attrt.
select single text into wa_sxs_attrt-text from sxs_attrt
where exit_name = wa_sxs_attr-exit_name
and sprsl = sy-langu.
i_userexit-modtext = wa_sxs_attrt-text.
endif.
modify i_userexit.
endloop.
get enhancements via program package
clear wa_tadir.
select single devclass into wa_tadir-devclass from tadir
where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = p_pname.
if sy-subrc = 0.
clear: wa_modsapa, wa_modsapt.
select name from modsapa into wa_modsapa-name
where devclass = wa_tadir-devclass.
select single modtext from modsapt into wa_modsapt-modtext
where name = wa_modsapa-name
and sprsl = sy-langu.
read table i_userexit with key modname = wa_modsapa-name.
if sy-subrc 0.
i_userexit-modtext = wa_modsapt-modtext.
i_userexit-type = 'Enhancement'. "#EC NOTEXT
i_userexit-modname = wa_modsapa-name.
i_userexit-txt = 'Determined from program DevClass'."#EC NOTEXT
i_userexit-pname = 'Unknown'. "#EC NOTEXT
append i_userexit.
endif.
endselect.
endif.
Get IDOCs
loop at i_devclass.
endloop.
endform. "GET_ADDITIONAL_DATA
& Form DATA_DISPLAY &
form data_display.
data selection message to sap gui
call function 'SAPGUI_PROGRESS_INDICATOR'
destination 'SAPGUI'
keeping logical unit of work
exporting
text = 'Prepare screen for display' "#EC NOTEXT
exceptions
system_failure
communication_failure
. "#EC *
sort i_userexit by type txt modname.
delete adjacent duplicates from i_userexit comparing txt modname.
format headings
write: 'Enhancements from main program'. "#EC NOTEXT
write: /.
uline.
format color col_heading.
write: / sy-vline,
(12) c_col1, "Enhanmt Type
sy-vline,
(40) c_col2, "Enhancement
sy-vline,
(30) c_col3, "Program/Include
sy-vline,
(20) c_col4, "Enhancement name
sy-vline,
(60) c_col5, "Enhancement description
sy-vline,
(8) c_col6, "Project
sy-vline,
(1) c_col7, "S
sy-vline,
(12) c_col8, "ChangeName
sy-vline,
(10) c_col9, "ChangeDate
sy-vline.
format reset.
uline.
format lines
loop at i_userexit.
set line colour
case i_userexit-type.
when 'Enhancement'.
format color 3 intensified off.
when 'BADI'.
format color 4 intensified off.
when 'BusTrEvent'.
format color 5 intensified off.
when 'Program Exit'.
format color 6 intensified off.
when others.
format reset.
endcase.
write: / sy-vline,
i_userexit-type,
sy-vline,
i_userexit-txt(40),
sy-vline,
i_userexit-pname(30),
sy-vline,
i_userexit-modname(20),
sy-vline,
i_userexit-modtext(60),
sy-vline,
i_userexit-modattr-name,
sy-vline,
i_userexit-modattr-status,
sy-vline,
i_userexit-modattr-anam,
sy-vline,
i_userexit-modattr-adat no-zero,
sy-vline.
hide: i_userexit-type,
i_userexit-txt,
i_userexit-pname,
i_userexit-modname,
i_userexit-modtext.
endloop.
format reset.
uline.
user-exits from development class of function modules
if p_devc = 'X'.
write: /.
write: / 'User-exits from function module development class'."#EC NOTEXT
write: 157''.
uline (90).
write: 157''.
loop at i_devclass.
clear wa_modsapa.
select name from modsapa into wa_modsapa
where devclass = i_devclass-clas.
select single name modtext into corresponding fields of wa_modsapt
from modsapt
where name = wa_modsapa-name
and sprsl = sy-langu.
format color 3 intensified off.
write: / sy-vline,
(12) 'Enhancement',
sy-vline,
wa_modsapa-name,
sy-vline,
wa_modsapt-modtext,
sy-vline.
endselect.
endloop.
uline (90).
format reset.
endif.
describe table i_fmodule lines w_linnum.
write: / c_fmod , at 35 w_linnum. "#EC NOTEXT
write: 157''.
if p_func = 'X'.
display fuction modules used in program
uline (38).
write: 157''.
loop at i_fmodule.
write: sy-vline,
i_fmodule-name,
sy-vline,
i_fmodule-bapi,
sy-vline.
write: 157''.
endloop.
uline (38).
write: 157''.
endif.
describe table i_submit lines w_linnum.
write: / c_subm , at 35 w_linnum. "#EC NOTEXT
write: 157''.
if p_subm = 'X'.
display submit programs used in program
uline (44).
write: 157''.
loop at i_submit.
write: sy-vline,
i_submit-pname,
sy-vline.
write: 157''.
endloop.
uline (44).
endif.
issue message with number of user-exits displayed
describe table i_userexit lines w_linnum.
message s697(56) with w_linnum.
endform. "DATA_DISPLAY
& User Selection Processing &
at line-selection.
get cursor field w_fsel.
case w_fsel.
when 'I_USEREXIT-MODNAME'.
case i_userexit-type.
when 'Enhancement'.
set parameter id 'MON' field i_userexit-modname.
call transaction 'SMOD' and skip first screen.
when 'BADI'.
check i_userexit-modname ne 'Dynamic call'.
set parameter id 'EXN' field i_userexit-modname.
call transaction 'SE18' and skip first screen.
when 'BusTrEvent'.
submit rfopfi00 with attr_typey_selm = 'A'
with event = i_userexit-modname(8)
via selection-screen
and return.
when others.
endcase.
when 'I_USEREXIT-PNAME'.
check i_userexit-modname ne 'Unknown'.
w_off = 0.
find '/' in i_userexit-pname match offset w_off.
if w_off = 0.
set parameter id 'RID' field i_userexit-pname.
call transaction 'SE38' and skip first screen.
else.
w_off = w_off + 1.
w_prog = i_userexit-pname+w_off.
set parameter id 'RID' field w_prog.
call transaction 'SE38' and skip first screen.
endif.
when others.
endcase.
Thank You,
Saritha -
Hi There,
I have to execute some custom code whenever an order line item has been deleted. Is there any BADI for this?
BADI should give me all the line item details and update indicator.
Thanks in advance,
Rams.Hi Rams,
Use the parameter IV_GUID in which you will get HEADER GUID.
Pass this header guid to the CRM_ORDER_READ to get the required data for item.
Refer the following piece of code:
APPEND iv_guid TO lit_header_guid.
INSERT gc_object_name-orderadm_h INTO TABLE lit_req_object.
INSERT gc_object_name-orderadm_i INTO TABLE lit_req_object.
CALL FUNCTION 'CRM_ORDER_READ'
EXPORTING
it_header_guid = lit_header_guid
it_requested_objects = lit_req_object
IMPORTING
et_orderadm_h = lit_orderadm_h
et_orderadm_i = lit_orderadm_i
EXCEPTIONS
document_not_found = 1
error_occurred = 2
document_locked = 3
no_change_authority = 4
no_display_authority = 5
no_change_allowed = 6
OTHERS = 7.
<b>Reward points if it helps.</b>
Maybe you are looking for
-
Sales Analysis for a certain period
Hello Experts, In standard Sales Analysis Report, when we run report for a certain period for "Customers" and when we run the report with same parameters for "Items" it gives different results. Can anybody please guide me, why these results are diffe
-
hi, I have problems to use it ojdbc14.jar with tomcat 4.1 and oracle 9i 2.0. I configured server.xml with tag <ResourceParams> .... and web.xml with the tag <resource-ref>. The lib common/lib contains ojdbc14.jar commons-collections.jar, commons-dbcp
-
OS X 10.6.4 and Photoshop CS5
Earlier after 10.6.4's release some had expressed problems using it with Photoshop CS5. Mainly they appeared to be problems with crashes. I have held off on moving to 10.6.4 because of this. I am a heavy user of Photoshop CS5. I spoke with an Apple r
-
i have a Blackberry Curve 8520. I want to remove some of my icons from my Home Screen and take and take an icon from my main menu and replace it with it. I know u can hide icons on the main menu but i cant hide the ones on the Home Screen . Need help
-
How to check GATP execution?
HIi All, I want to do some coding for sales order. But that code must get executed after GATP execution. I am using form USEREXIT_CHECK_VBEP in include MV45AFZB. But this form routine gets executed before GATP execution too. So how can i check if GAT