ABAP Code - Urgent
Hi All,
This code is not working properly. Say, after first pass through the loop, l_bukrs has value '100', the second pass throught he loop is again taking '100' without going to the next value of l_bukrs.
LOOP AT I_T_DATA....
clear: l_salesorg, l_dischan, l_matnr, l_bukrs.
SELECT SINGLE BUKRS
INTO (l_bukrs)
FROM T001K
INNER JOIN T001W ON T001KBWKEY = T001WBWKEY.
SELECT SINGLE TARGET1 TARGET2
INTO (l_salesorg, l_dischan)
from ZABC
where VALID_FROM le sy-datum
and SOUR2_FROM ge l_bukrs
and SOUR2_TO le l_bukrs.
case sy-subrc.
when 0.
WHEN 4.
endcase.
ENDLOOP. "I_T_DATA.
Thanks
Hi Guys,
This is how it is:
LOOP AT I_T_DATA....
clear: l_salesorg, l_dischan, l_matnr, l_bukrs.
SELECT SINGLE BUKRS
INTO (l_bukrs)
FROM T001K
INNER JOIN T001W ON T001KBWKEY = T001WBWKEY
WHERE T001W~WERKS = i_t_data-WERKS.
SELECT SINGLE TARGET1 TARGET2
INTO (l_salesorg, l_dischan)
from ZABC
where VALID_FROM le sy-datum
and SOUR3_FROM ge i_t_data-prctr
and SOUR3_TO le i_t_data-prctr
and SOUR2_FROM ge l_bukrs
and SOUR2_TO le l_bukrs
and SOUR1_FROM = 'C100'
and SOUR1_TO = 'C100'.
case sy-subrc.
when 0.
WHEN 4.
endcase.
ENDLOOP. "I_T_DATA.
The first SELECT return values for BUKRS. The second SELECT does not return any values. i.e. l_salesorg and l_dischan are still not getting populated.
Thanks
Message was edited by: Sachin Guptha
Similar Messages
-
Pulling the condition records - help in the ABAP code -urgent!!!!!
hi folks,
I need some urgent help here..
I have discussed this portion before in the forum but there are some changes and I need some help here.
The code goes like this....
select knumv kschl kbetr kwert
from konv into table cdata
for all entries in bodyitab21
where konv~knumv = bodyitab21-knumv
and konv~kwert > 0.
I am successfully pulling the data into cdata here..
I need to check for various condition types that are around 100. I need to split them into two types because some condition types containe just pricing values while some others have values in % (but the value not stored in that format) To do the extra coding I have use two differetn case statements and that's what i have done here.
<b>My probelm is I will have to check for each condition type, if the 'kwert' field has some value in it pull the data and there is a condition text associcated to it in the table 'T685T' that needs to be pulled into the itab.
This process has to be done for every condition type.</b>Given this scenario how can i do it?
loop at cdata into wac.
case wac-kschl.
when 'ZRAT' OR 'ZAGR' OR 'ZRCR' OR 'Y098' OR 'Y007' OR 'ZREW' OR 'Y106' OR 'ZTSR' OR 'Y127' OR 'Y125' OR 'Y126' OR 'Y124' OR 'Y157' OR 'Y092' OR 'Y085' OR 'Y090' OR 'ZMZD' OR 'Y215' OR 'Y214' OR 'Y111' OR 'ZC$D' OR 'ZAUD' OR 'ZTHX' OR 'ZCOL'
OR 'ZCFE' OR ZSPA' OR 'ZBOX' OR 'ZCOR' OR 'Y130' OR 'ZBOR'
OR 'Y108' OR 'ZFPP' OR 'Y204' OR 'Y200' OR 'Y202' OR 'Y201' OR 'Y203' OR 'Y002' OR 'ZSCR' OR 'Y128' OR 'Y100' OR 'ZABS' OR 'ZSMG' OR 'ZFRE' OR 'ZREC' OR 'ZCOM' OR 'ZPMG' OR 'BEMG' OR 'ZDTI' OR'ZBET'.
<b>***** the first set of these condition types have just values</b> if wac-kbetr = ' ' AND wac-kwert = ' '.
continue.
else.
p = wac-kbetr.
i = p.
c = i.
MOVE c to w_accitab-zrate.
MOVE wac-kbetr to w_accitab-zrate.
MOVE wac-kwert to w_accitab-zsubtotal.
endif.
when 'ZSED' OR 'ZRFQ' OR 'ZIMP' OR 'ZERR'
OR 'ZECD' 'ZAC1' OR 'ZAC%' OR 'ZAC2' OR 'ZSED' OR 'ZRFQ' OR 'ZIMP' OR 'ZERR' OR 'ZECD' 'ZQUD' OR 'ZEMP' OR 'Y101' OR 'Y012' OR 'ZCHU' OR 'Y054' OR 'Y065' OR 'Y066' OR 'Y067' OR 'Y068' OR 'Y069' OR 'Y096'
OR 'Y103' OR 'Y010' OR 'Y070' OR 'Y071' OR
'Y072' OR 'Y073' OR 'Y074' OR 'Y075' OR 'Y076'
OR 'Y077' OR 'Y078' OR 'Y079' OR 'Y156' OR OR 'Y148'
OR 'Y102' OR 'Y205' OR 'Y206' OR 'Y207' OR 'Y208' OR
'Y209' OR 'Y213' OR 'Y210' OR 'Y211' OR 'Y212' OR 'Z%DS'
OR 'Z%DO' OR 'Y113' OR 'Y151' OR 'Y152' OR 'Y153' OR
'Y154' OR 'Y155' OR 'Y147' OR'Z%PB' OR 'Y142' OR 'Y131'
OR 'Y141' OR 'Y149' OR 'ZDEO' OR 'Z%DR' OR 'Y115' OR
'Y116' OR 'Y095' OR 'Y084' OR 'ZSA$' OR 'ZSA%' OR
'ZPA$' OR 'ZPA%'.
the second set of these condition types have just values that has to be converted into %.
if wac-kbetr = ' ' AND wac-kwert = ' '.
clear w_accitab-zrate.
continue.
else.
p = wac-kbetr.
p = p / 10.
if p < 1.
rate+0(1) = '-'.
endif.
if i = 0.
clear w_accitab-zrate.
else.
i = p.
c = i.
shift c right deleting trailing '-'.
concatenate rate c '%' into rate.
condense rate no-gaps.
MOVE wac-kbetr to w_accitab-zrate.
MOVE rate to w_accitab-zrate.
clear rate.
MOVE wac-kwert to w_accitab-zsubtotal.
endif.
endif.
Thanks alot in advance.
SanthoshMaybe this will help you, otherwise I'm missing something.
[code]
data: begin of wac,
kschl type t685t-kschl,
vtext type t685t-vtext,
end of wac.
case wac-kschl.
when 'ZRAT' or 'ZAGR' or 'ZRCR' or 'Y098' or 'Y007' or 'ZREW' or 'Y106'
or 'ZTSR' or 'Y127' or 'Y125' or 'Y126' or 'Y124' or 'Y157' or 'Y092' or
'Y085' or 'Y090' or 'ZMZD' or 'Y215' or 'Y214' or 'Y111' or 'ZC$D' or
'ZAUD' or 'ZTHX' or 'ZCOL' or 'ZCFE' or 'ZSPA' or 'ZBOX' or 'ZCOR'
or 'Y130' or 'ZBOR' or 'Y108' or 'ZFPP' or 'Y204' or 'Y200' or 'Y202' or
'Y201' or 'Y203' or 'Y002' or 'ZSCR' or 'Y128' or 'Y100' or 'ZABS' or
'ZSMG' or 'ZFRE' or 'ZREC' or 'ZCOM' or 'ZPMG' or 'BEMG' or 'ZDTI'
or'ZBET'.
Some code
when 'ZSED' or 'ZRFQ' or 'ZIMP' or 'ZERR'
or 'ZECD' or 'ZAC1' or 'ZAC%' or 'ZAC2' or 'ZSED' or 'ZRFQ' or 'ZIMP' or
'ZERR' or 'ZECD' or 'ZQUD' or 'ZEMP' or 'Y101' or 'Y012' or 'ZCHU' or
'Y054' or 'Y065' or 'Y066' or 'Y067' or 'Y068' or 'Y069' or 'Y096'
or 'Y103' or 'Y010' or 'Y070' or 'Y071' or
'Y072' or 'Y073' or 'Y074' or 'Y075' or 'Y076'
or 'Y077' or 'Y078' or 'Y079' or 'Y156' or 'Y148'
or 'Y102' or 'Y205' or 'Y206' or 'Y207' or 'Y208' or
'Y209' or 'Y213' or 'Y210' or 'Y211' or 'Y212' or 'Z%DS'
or 'Z%DO' or 'Y113' or 'Y151' or 'Y152' or 'Y153' or
'Y154' or 'Y155' or 'Y147' or'Z%PB' or 'Y142' or 'Y131'
or 'Y141' or 'Y149' or 'ZDEO' or 'Z%DR' or 'Y115' or
'Y116' or 'Y095' or 'Y084' or 'ZSA$' or 'ZSA%' or
'ZPA$' or 'ZPA%'.
Some code
endcase.
select single vtext into wac-vtext from t685t
where spras = sy-langu
and kschl = wac-kschl.
write:/ wac-kschl, wac-vtext.
[/code]
Regards,
Rich Heilman -
Urgent: ABAP Code help reqd
Hi,
Can anyone please me provide me ABAP code for the following case:
Table1 JHAGA
Table2 JHAGVZ
Primary keys in JHAGA:
Order Item Number [POS_NR]
Billing Dataset [GRUPPABRNR]
Sales Document Number [AVM_NR]
This requirement is for an InfoSet. For each order ideally we can have multiple sales agent. Sales Agent is being pulled from JHAGVZ. For this InfoSet we are going to go with assumption that we wont have more then 10 sales agent for an order,
Consider 10 extra fields in InfoSet SA1 SA10 for 10 Sales Agent.
I need code which to populate this sales agent field. If an order exists in JHAGA then for that order in JHAGVZ populate the SA1-SA10 field.
JHAGA Order#10
JHAGVZ Order#10 SalesAgent11
SalesAgent12
SalesAgent13
Then SA1 should have SalesAgent11, SA2 should have SalesAgent12 and SA3 should have SalesAgent13 and so on
Thank you,
samHI ,
Are these two field a part of the table INFOROBJECT?
if they are, you can write a select statement like :
select 0CUSTOMER 0SALESORG YLEG_ENTITY
from INFOROBJECT
into Y_CUST_LE
where ( Yacc_SEQ <> ´ZROO´ and
0PRICE_LIST <> space).
Hope this helps.
If not, please explain problem clearly. -
Problem with abap code in lsmw.its urgent
Hello guys iam migrating open ar line items using lsmwand i need to create reconciliation key automatically so iam using below code which is working fine in abap editor but i inserted in the lsmw abap code block at step 5 mapping fields iam getting error as that function module does not exits .can any body go through the code and give me suggestion.your will be greatly appreciate.
types: begin of ty_fikey,
fikey type fikey_kk,
resob type resob_kk,
end of ty_fikey.
data: wa_fikey type ty_fikey.
CALL FUNCTION 'FKK_FIKEY_CHECK'
EXPORTING
I_FIKEY = 'jana56481'
I_OPEN_ON_REQUEST =
I_OPEN_WITHOUT_DIALOG =
I_FOR_MASS_POSTING =
I_RESOB = '24 '
I_RESKY = ' '
I_NON_EXISTING_ALLOWED = ' '
I_FOR_POSTING_IN_UPD = ' '
EXCEPTIONS
NON_EXISTING = 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.
select single fikey resob from dfkksumc into corresponding fields of wa_fikey where resob = '24'.
e1bpdfkkko-fikey = wa_fikey-fikey.
Regards
JanapathiHi,
Refer link:
<a href="http://www.scmexpertonline.com/downloads/SCM_LSMW_StepsOnWeb.doc">http://www.scmexpertonline.com/downloads/SCM_LSMW_StepsOnWeb.doc</a>
Pls do reward points.
Regards,
Ameet -
Enhancing 0FI_GL_4 - ABAP code is NOT working - URGENT PLEASE ???
Hi all,
I want to enhance 0FI_GL_4 extractor with CHECT, RWBTR & PRIDT from PAYR table if VBELN of 0FI_GL_4 is not BLANK, with the following conditions:
1.Load all the records of PAYRQ table into PAYRQ internal table LT_PAYRQ
with matching BELNR, AUGBL & BUKRS from I_DTFIGL_4 internal table.
2.Load all the records of PAYR table into PAYR internal table LT_PAYR
with matching AUGBL & BUKRS from LT_PAYRQ internal table.
3.Read PAYR internal table LT_PAYR with matching BELNR (from I_DTFIGL_4
internal table) and fill the new fields CHECT, RWBTR & PRIDT.
The following the is ABAP code, but it is NOT working:
DATA:I_DTFIGL_4 LIKE DTFIGL_4 OCCURS 0 WITH HEADER LINE,
L_TABIX LIKE SY-TABIX.
DATA: BEGIN OF LS_PAYRQ,
ZBUKR LIKE PAYRQ-ZBUKR,
BELNR LIKE PAYRQ-BELNR,
AUGBL LIKE PAYRQ-AUGBL,
END OF LS_PAYRQ.
DATA: LT_PAYRQ LIKE LS_PAYRQ OCCURS 0 WITH HEADER LINE.
DATA: BEGIN OF LS_PAYR,
VBLNR LIKE PAYR-VBLNR,
CHECT LIKE PAYR-CHECT,
RWBTR LIKE PAYR-RWBTR,
PRIDT LIKE PAYR-PRIDT,
END OF LS_PAYR.
DATA: LT_PAYR LIKE LS_PAYR OCCURS 0 WITH HEADER LINE.
WHEN '0FI_GL_4'.
I_DTFIGL_4 = C_T_DATA.
SELECT BELNR AUGBL ZBUKR
FROM PAYRQ
INTO CORRESPONDING FIELDS OF TABLE LT_PAYRQ
FOR ALL ENTRIES IN I_DTFIGL_4
WHERE BELNR = I_DTFIGL_4-BELNR
AND AUGBL = I_DTFIGL_4-AUGBL
AND BUKRS = I_DTFIGL_4-BUKRS.
SORT LT_PAYRQ BY BELNR.
SELECT VBLNR CHECT RWBTR PRIDT
FROM PAYR
INTO CORRESPONDING FIELDS OF TABLE LT_PAYR
FOR ALL ENTRIES IN LT_PAYRQ WHERE VBLNR = LT_PAYRQ-AUGBL
AND ZBUKR = LT_PAYRQ-ZBUKR.
SORT LT_PAYR BY VBLNR.
LOOP AT C_T_DATA INTO I_DTFIGL_4.
L_TABIX = SY-TABIX.
IF NOT I_DTFIGL_4-VBELN IS INITIAL. " IF BILLING DOCUMENT EXISTS
READ TABLE LT_PAYR WITH KEY VBLNR = I_DTFIGL_4-BELNR.
IF SY-SUBRC = 0.
MOVE LT_PAYR-CHECT TO I_DTFIGL_4-ZZCHECT.
MOVE LT_PAYR-RWBTR TO I_DTFIGL_4-ZZRWBTR.
MOVE LT_PAYR-PRIDT TO I_DTFIGL_4-ZZPRIDT.
MODIFY C_T_DATA FROM I_DTFIGL_4 INDEX L_TABIX.
ENDIF.
CLEAR:I_DTFIGL_4-ZZCHECT,I_DTFIGL_4-ZZRWBTR,I_DTFIGL_4-ZZPRIDT,
LT_PAYR, LT_PAYRQ.
ENDIF.
ENDLOOP.
Could you please find the problem with above ABAP code and correct it.
Since I want to enhance it, if VBELN is not Blank and do I have to move the IF condition (I_DTFIGL_4-VBELN IS INITIAL) to another location for better performance.
Thanks,
Venkat..Dear Gajesh,
Please accept my thanks for your Spontaneous reply.
Selection Screen data is given below.
1 --> Material Number
2 --> Inspection Lot Number
3 --> Date of Lot Creation
4--> Inspection Type
Normally the clint will give the Inspection Type ie 4th input and Date of Lot creation ie 3rd Input (Range of Date).
Please do the needful.
With Best Regards,
Raghu Sharma -
Schedule a background job for a program using ABAP code.
Hi,
I have to write a program to schedule a background job for another program.
Need your help to understand how we can achieve this functionality.Any example of an abap code would be of great help.
Need it urgently.
Thanks in advance.
Sandeep.Hi Sandeep,
Here is the demo program regarding the BDC For the background job.
report zprprbdc1
no standard page heading line-size 255.
include bdcrecx1.
parameters: dataset(132) lower case.
*** DO NOT CHANGE - the generated data section - DO NOT CHANGE ***
* If it is nessesary to change the data section use the rules:
* 1.) Each definition of a field exists of two lines
* 2.) The first line shows exactly the comment
* '* data element: ' followed with the data element
* which describes the field.
* If you don't have a data element use the
* comment without a data element name
* 3.) The second line shows the fieldname of the
* structure, the fieldname must consist of
* a fieldname and optional the character '_' and
* three numbers and the field length in brackets
* 4.) Each field must be type C.
*** Generated data section with specific formatting - DO NOT CHANGE ***
***data: begin of itab occurs 0 ,
*** matnr(20) type c,
*** mbrsh(30) type c,
*** mtart(30) type c,
*** kzsel(20) type c,
*** maktx(40) type c,
*** meins(5) type c,
*** end of itab.
data: begin of record occurs 0,
* data element: MATNR
matnr_001(018),
* data element: MBRSH
mbrsh_002(001),
* data element: MTART
mtart_003(004),
* data element: XFELD
kzsel_01_004(001),
* data element: MAKTX
maktx_005(040),
* data element: MEINS
meins_006(003),
* data element: MTPOS_MARA
mtpos_mara_007(004),
end of record.
*** End generated data section ***
start-of-selection.
*perform open_dataset using dataset.
perform open_group.
**do.
**read dataset dataset into record.
**if sy-subrc <> 0. exit. endif.
call function 'GUI_UPLOAD'
exporting
filename = 'c:\jitu\bdc\10002.txt'
filetype = 'ASC'
has_field_separator = 'x'
* HEADER_LENGTH = 0
* READ_BY_LINE = 'X'
* DAT_MODE = ' '
* CODEPAGE = ' '
* IGNORE_CERR = ABAP_TRUE
* REPLACEMENT = '#'
* CHECK_BOM = ' '
* VIRUS_SCAN_PROFILE =
* NO_AUTH_CHECK = ' '
* IMPORTING
* FILELENGTH =
* HEADER =
tables
data_tab = record
* EXCEPTIONS
* FILE_OPEN_ERROR = 1
* FILE_READ_ERROR = 2
* NO_BATCH = 3
* GUI_REFUSE_FILETRANSFER = 4
* INVALID_TYPE = 5
* NO_AUTHORITY = 6
* UNKNOWN_ERROR = 7
* BAD_DATA_FORMAT = 8
* HEADER_NOT_ALLOWED = 9
* SEPARATOR_NOT_ALLOWED = 10
* HEADER_TOO_LONG = 11
* UNKNOWN_DP_ERROR = 12
* ACCESS_DENIED = 13
* DP_OUT_OF_MEMORY = 14
* DISK_FULL = 15
* DP_TIMEOUT = 16
* OTHERS = 17
if sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
endif.
loop at record .
perform bdc_dynpro using 'SAPLMGMM' '0060'.
perform bdc_field using 'BDC_CURSOR'
'RMMG1-MATNR'.
perform bdc_field using 'BDC_OKCODE'
'/00'.
perform bdc_field using 'RMMG1-MATNR'
record-matnr_001.
perform bdc_field using 'RMMG1-MBRSH'
record-mbrsh_002.
perform bdc_field using 'RMMG1-MTART'
record-mtart_003.
perform bdc_dynpro using 'SAPLMGMM' '0070'.
perform bdc_field using 'BDC_CURSOR'
'MSICHTAUSW-DYTXT(01)'.
perform bdc_field using 'BDC_OKCODE'
'=ENTR'.
perform bdc_field using 'MSICHTAUSW-KZSEL(01)'
record-kzsel_01_004.
perform bdc_dynpro using 'SAPLMGMM' '4004'.
perform bdc_field using 'BDC_OKCODE'
'=BU'.
perform bdc_field using 'MAKT-MAKTX'
record-maktx_005.
perform bdc_field using 'BDC_CURSOR'
'MARA-MEINS'.
perform bdc_field using 'MARA-MEINS'
record-meins_006.
perform bdc_field using 'MARA-MTPOS_MARA'
record-mtpos_mara_007.
perform bdc_transaction using 'MM01'.
**enddo.
endloop.
perform close_group.
*perform close_dataset using dataset.
&*****************Reward point if helpful************& -
How to write abap code to create manual hierarchy
Hi,
This is urgent got to write abap code to create manual hierarchy.
ThanksHi Adam
Thanks for replying.
In my scenario i have one custom zinfoobject which have lots of attributes.
So, i have to create hierarchy for this zinfoobject with three nodes. one node/charateristic is present in this zinfoobject as attribute. which will be the first node of hierarchy.
Then second custom infoobject is external not present in attribute list. which will be the second node of hierarchy.
Third node will be for which i am creating hierarchy.
So basically need solution for this first.
some one will load hierarchy info in some table and then will create view on top of that then i have to create datasource on top of that and write a program to load the data from that view in this hierarchy.
Need solution for this abap program also.
Thanks
SAPBW -
Create CRM customer/account hierarchy node thru abap code
Hi,
Any one can help me on how to Create CRM customer/account hierarchy node thru abap code?
Is there any Class/methods, FMs that I can use to create node in customer/account hierarchy?
Sample codes will greatly help me.
I hope someone can help me on this since this is my urgent requirements on my project.
Thanks,
jamesJames,
You can find the FM, Class Lib and APIs under the package BUPA_HIERARCHY. -
Creating an xml file from abap code
Hello All,
Please let me know which FM do I need to execute in order to create an XML file from my ABAP code ?
Thanks in advance,
Paul.This has been discussed before
XML files from ABAP programs -
Hi All,
I need to use unix command (MOVE) in ABAP code for transfering a file from one directory to another directory.
Can any one help with how to used unix commands in ABAP?
Thanks in advance.
Regards,
HemendraThe recommended approach always used to be to use transaction SM69 to define a "soft" command name to the operating system command so that it could be configured to work across Windows, Unix etc. For example:
Command name OS Type OS command Parameters for operating system command
Z_FILE_MOVE SunOS Customer mv ? ?
You can then call function module SXPG_COMMAND_EXECUTE (quite well documented) to actually perform the command passing in the appropriate number of parameters.
Jonathan -
Needs sample ABAP code for field routine
Dear Expert,
There is a field "Pay Scale Group" in my DSO which stores the data in the format
AA1/B1/CCC2/DD2/EEE1, A1/BB2/CC2/DDD3/EE2 etc. These data has to be transferred to
InfoCube where "pay Scale Group" in the InfoCube will store the data like EEE1,EE2 etc.
I need to write a field routine on the transformation between DSO and Cube.
Can any one please help me with the sample ABAP code for this scenario.
Some more examples for better understanding of the requirement:-
Data in DSO(Source) Data in Cube(Target)
=================== ===================
AA1/B1/CCC2/DD2/EEE1 EEE1
AAA1/BB2/CC1/DDD3/EE2 EE2
A2/BBB2/CC2/DDD3/EEE5 EEE5
AA2/BB1/C1/DDD3/EE3 EE3
A3/B1/CC2/DDD1/EE4 EE4
Many thanks in advance.
Regards,
Prakash
Please do not dump your code requirements in SDN
Edited by: Pravender on May 18, 2011 11:37 AMHi,
You can use the following code :
Suppose the technical name of the field coming from DSO is ZPAY_SGRP.
And also for example let me take one record, that is ZPAY_SGRP = AA1/B1/CCC2/DD2/EEE1 .
My assumption is that there will always be 4 '/'.
In the field routine write the below code
data: V1(5) type c,
V2(5) type c,
V3(5) type c,
V4(5) type c,
V5(5) type c.
data : VAR1 TYPE /BIC/OIZPAY_SGRP.
split VAR 1 at '/' into V1 V2 V3 V4 V5.
result = V5.
V5 will be having the characters after the last '/' .That is V5 = EEE1.
Hope the above reply was helpful.
Kind Regards,
Ashutosh Singh
Edited by: Ashutosh Singh on May 17, 2011 3:53 PM
Edited by: Ashutosh Singh on May 17, 2011 4:17 PM -
Sample ABAP code for userexits, and calling bapi's
Hi,
Can someone please send me sample ABAP code
1) to do extractor enhancement using user exit.
2) ABAP program to call BAPI to read live cache order series data in SNP and write to Idocs through some ports.
3) ABAP routine to generate file name (based on date/country)in the infopackage to upload flatfiles.
Thank you very much in advance and appreciate any help.
Regards
Prasadhai ,
check this code...
*& Tables
tables : tstc, "SAP Transaction Codes
tadir, "Directory of Repository Objects
modsapt, "SAP Enhancements - Short Texts
modact, "Modifications
trdir, "System table TRDIR
tfdir, "Function Module
enlfdir, "Additional Attributes for Function Modules
tstct. "Transaction Code Texts
*& Variables
data : jtab like tadir occurs 0 with header line.
data : field1(30).
data : v_devclass like tadir-devclass.
*& Selection Screen Parameters
selection-screen begin of block a01 with frame title text-001.
selection-screen skip.
parameters : p_tcode like tstc-tcode obligatory.
selection-screen skip.
selection-screen end of block a01.
*& Start of main program
start-of-selection.
Validate Transaction Code
select single * from tstc
where tcode eq p_tcode.
Find Repository Objects for transaction code
if sy-subrc eq 0.
select single * from tadir
where pgmid = 'R3TR'
and object = 'PROG'
and obj_name = tstc-pgmna.
move : tadir-devclass to v_devclass.
if sy-subrc ne 0.
select single * from trdir
where name = tstc-pgmna.
if trdir-subc eq 'F'.
select single * from tfdir
where pname = tstc-pgmna.
select single * from enlfdir
where funcname = tfdir-funcname.
select single * from tadir
where pgmid = 'R3TR'
and object = 'FUGR'
and obj_name = enlfdir-area.
move : tadir-devclass to v_devclass.
endif.
endif.
Find SAP Modifactions
select * from tadir
into table jtab
where pgmid = 'R3TR'
and object = 'SMOD'
and devclass = v_devclass.
select single * from tstct
where sprsl eq sy-langu
and tcode eq p_tcode.
format color col_positive intensified off.
write:/(19) 'Transaction Code - ',
20(20) p_tcode,
45(50) tstct-ttext.
skip.
if not jtab[] is initial.
write:/(95) sy-uline.
format color col_heading intensified on.
write:/1 sy-vline,
2 'Exit Name',
21 sy-vline ,
22 'Description',
95 sy-vline.
write:/(95) sy-uline.
loop at jtab.
select single * from modsapt
where sprsl = sy-langu and
name = jtab-obj_name.
format color col_normal intensified off.
write:/1 sy-vline,
2 jtab-obj_name hotspot on,
21 sy-vline ,
22 modsapt-modtext,
95 sy-vline.
endloop.
write:/(95) sy-uline.
describe table jtab.
skip.
format color col_total intensified on.
write:/ 'No of Exits:' , sy-tfill.
else.
format color col_negative intensified on.
write:/(95) 'No User Exit exists'.
endif.
else.
format color col_negative intensified on.
write:/(95) 'Transaction Code Does Not Exist'.
endif.
Take the user to SMOD for the Exit that was selected.
at line-selection.
get cursor field field1.
check field1(4) eq 'JTAB'.
set parameter id 'MON' field sy-lisel+1(10).
call transaction 'SMOD' and skip first screen. -
ABAP code for BI 7.0 transformations start routine
Hi all,
I am trying to update data from DSO1 (Source1: transaction data) to Infocube(TARGET)
In the transformations Start routine, I have to read DSO2(Source2: Master data) for some fields.
DSO1 has CUSTOMER as part of key
DSO2 has CUSTOMER (key) and other fields....FIELD1, FILED2, FIELD3
Infocube to be updated with FIELDS1,2 & 3 WHILE READING DSO2.
WHERE DSO1 CUSTOMER matches with DSO2 CUSTOMER.
Also, data NOT TO BE UPLOADED into Infocube if FIELD1 in DSO2= NULL
Please give me the abap code for the above logic.
Appreciate any help in this regard.
Thanks.This is a doc from this site:
https://www.sdn.sap.com/irj/sdn/go/portal/prtroot/docs/library/uuid/6090a621-c170-2910-c1ab-d9203321ee19
Ravi Thothadri -
ABAP code needed to convert from 0calmonth2 & 0calyear to 0calmonth
Hi SAP GURUS,
Can anybody give me the ABAP code to convert from 0calmonth2 and 0calyear to 0calmonth.and please suggest me whether i have to write start routine or end routine in transformations.
Thanks ALL.hi,
in the transformation map 0calmonth2 and 0calyear to the 0calmonth field, and from drop down choose routine.
there will be an area where it will be mentioned write your piece of code below this line.
paste the below code:
Concatenate source_fields-0calmonth2 source_fields-0calyear into result.
also delete the line result = .
save the routine and execute the package.
regards,
Arvind. -
Hi,
I am trying to write an update routine to calculate and populate fields in my ODS infoprovider.
one of the key figure field in my update rules is 'No. of Days'. Based on the 'No. of Days' range, I want to send a key figure(Infoobject:Due amount) value to another infoobject(Bucket1, Bucket2, Bucket3 ect.)in my ODS infoprovider. For example, let's say,
IF NO. OF DAYS = >0 AND <=30
THEN TAKE THE DUE AMOUNT PUT IN BUCKET1
ENDIF.
ELSE IF
NO. OF DAYS = >31 AND <=60
THEN TAKE THE DUE AMOUNT PUT IN BUCKET2
ENDIF.
ELSE IF
NO. OF DAYS = >61 AND <=90
THEN TAKE THE DUE AMOUNT PUT IN BUCKET3
ENDIF.
I think, I know the data flow logic but I don't know how to code in ABAP language. If someone can give me some psuedo like ABAP code, I would appreciate your help with points.Hi Roa,
I would do this in the start routine of the update rule.
Here is a sample on how do this. You could use a case statement for this code also.
Loop at Data_Packet.
IF NO. OF DAYS = >0 AND <=30
Data_Packet-BUCKET1 = DUE AMOUNT
ELSEIF
NO. OF DAYS = >31 AND <=60
Data_Packet-BUCKET2 = DUE AMOUNT
ENDIF.
ELSEIF
NO. OF DAYS = >61 AND <=90
Data_Packet-BUCKET3 = DUE AMOUNT
ENDIF.
modify data_packet.
endlloop.
Cheers! Bill
Maybe you are looking for
-
hi can you tell me 1.what is index oragnized table 2. fragmentation of table 3. what is cascading trigger mean
-
I am trying to display BLOBS in HTMLDB using Report. I am not able to display images, PDF or Docs. I am using the following procedure DISPLAY_IMAGE create or replace procedure "DISPLAY_IMAGE" (p_image_id IN NUMBER) is l_mime varchar2(255);
-
Hi, I am having troubles setting up a user so that they can type Greek text into Contribute 2 on Mac Os 10.3. The Kb is set to Greek text and can successfully enter text in Word etc. but when they try to type in Contribute with Greek enabled they get
-
Can I create a VI to change the 'operator' name on the teststand report?
I want the user to be able to type in a name, as well as other information, in a VI when a test begins. I do not want to create 'users' as I don't know who the testers will be. I want the user to log in as an administrator (or tester -- any generic l
-
TS1436 When trying to burn a cd I get "disc recording not found" why and what can I do
When trying to burn a cd I get "recording not found". Why and what can I do to change this. I do have Windows Media player loaded tried to to burn on that also but did not work.