Can we use Union in ABAP???
Can we use Union in ABAP???
I have scenario like,
in an internal table i have entrie like this,
comp code field1 field2 field3 field4 field5
0A1 ABC BCD 00 00 00
0A1 00 00 CDE 00 00
0A1 00 00 00 EFG IJK
but i need a single entry like this,
comp code field1 field2 field3 field4 field5
0A1 ABC BCD CDE EFG IJK
how to do this????
You cannot use SELECT on internal tables so the question of UNION does not arise. Also, you cannot use UNION in ABAP. You need to code it to get the desired output
Move the first line of your internal table to a new int table i_ftab.
DATA: num TYPE char1.
num = 2.
DO.
READ TABLE i_tab -> initial internal table
INTO wa_tab INDEX num.
IF sy-subrc NE 0.
EXIT.
ENDIF.
IF wa_tab-code NE '000'.
MODIFY i_ftab INDEX 1 FROM wa_tab TRANSPORTING code.
ELSEIF wa_tab-field1 NE '000'.
MODIFY i_ftab INDEX 1 FROM wa_tab TRANSPORTING field1.
ENDIF.
num = num + 1.
ENDDO.
Similar Messages
-
How can i use activeX in abap?
hi exports,
i have a activeX of group-ware in my windows-XP.
and, a method of the activeX export employee-code of user.
i want to get a employee-code using the method.
how can i use the activeX in abap?
thank you, and sorry my poor english.
haecheol.
Edited by: HaeCheol Jeong on Jan 30, 2008 3:19 PMcheck out this weblog.
[Using Classic ActiveX Controls in the ABAP Control Framework|/people/thomas.jung3/blog/2005/05/11/using-classic-activex-controls-in-the-abap-control-framework] -
How can I use the WebDynpro tutorial template in APAB workbench?
Hi,
I have downloaded the tutorial template zip file from sdn (https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/webas/webdynpro/tutorial on creating trees in web dynpro - 12.htm), but I don't know how to use it in ABAP workbench.
Is that only for Java environment and can be used in Eclipse?
If not, How can it be used in APAB workbench?
Thank you.
Swee HuHi,
Its a template used in NDS(NetWeaver Developer Studio),in Webdynpro perspective.
what do u mean by how can i use it in ABAP workbench?
Sorry u cant use tat existing template.
if u need the same feature u have to develop ur own...:)
Regards,
Sirisha.R.S -
Can I use logical databases in a WebDynpro ABAP program?
can I use logical databases in a WebDynpro ABAP program?
I need to build a WDA screen that is similar to the SAPDBPNP selection screen (user can find the personnel number based on several criteria, such as last_name/first_name of the employee). So it seems that the existing logical databases have already many nice features already built (like the selection screens, the logic behind the screens etc). So I was wondering if/how I can use them in my WDA application.Hello, Tiberiu.
You cannot use LDB directly within your WDA programa. BUT, you can fetch results from this LDB by using FM LDB_PROCESS. This function module can be called anytime from any kind of ABAP program. But you will still have to create the screen, as it only processes data, not screens.
Regards,
Andre
PS: Pls reward points if it helps. -
Can I use logical databases in a WebDynpro for ABAP program?
can I use logical databases in a WebDynpro ABAP program?
I need to build a WDA screen that is similar to the SAPDBPNP selection screen (user can find the personnel number based on several criteria, such as last_name/first_name of the employee). So it seems that the exisinting logical databases have already many nice features already built (like the selection screens, the logic behind the screens etc). So I was wondering if/how I can use them in my WDA application.Hi
Please let me also know the solution to this. I am a beginner to WebDynpro and want to know if I can make use of LDB's as we do in our normal HR programming do develop a WDA in HR.
Thanks and regards,
Uma. -
How can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.
how can we use TABLE CONTROL in BDC and WORK FLOW of ABAP.?
please explain the important questions.How to deal with table control / step loop in BDC
Steploop and table contol is inevitable in certain transactions. When we run BDC for such transactions, we will face the situation: how many visible lines of steploop/tablecontrol are on the screen? Although we can always find certain method to deal with it, such as function code 'NP', 'POPO', considering some extreme situation: there is only one line visible one the screen, our BDC program should display an error message. (See transaction 'ME21', we you resize your screen to let only one row visible, you can not enter mutiple lines on this screen even you use 'NP')
Now with the help of Poonam on sapfans.com developement forum, I find a method with which we can determine the number of visible lines on Transaction Screen from our Calling BDC program. Maybe it is useless to you, but I think it will give your some idea.
Demo ABAP code has two purposes:
1. how to determine number of visible lines and how to calculte page number;
(the 'calpage' routine has been modify to meet general purpose usage)
2. using field symbol in BDC program, please pay special attention to the difference in Static ASSIGN and Dynamic ASSIGN.
Now I begin to describe the step to implement my method:
(I use transaction 'ME21', screen 121 for sample,
the method using is Call Transation Using..)
Step1: go to screen painter to display the screen 121, then we can count the fixed line on this screen, there is 7 lines above the steploop and 2 lines below the steploop, so there are total 9 fixed lines on this screen. This means except these 9 lines, all the other line is for step loop. Then have a look at steploop itselp, one entry of it will occupy two lines.
(Be careful, for table control, the head and the bottom scroll bar will possess another two fixed lines, and there is a maximum number for table line)
Now we have : FixedLine = 9
LoopLine = 2(for table control, LoopLine is always equal to 1)
Step2: go to transaction itself(ME21) to see how it roll page, in ME21, the first line of new page is always occupied by the last line of last page, so it begin with index '02', but in some other case, fisrt line is empty and ready for input.
Now we have: FirstLine = 0
or FirstLine = 1 ( in our case, FirstLine is 1 because the first line of new page is fulfilled)
Step3: write a subroutine calcalculating number of pages
(here, the name of actual parameter is the same as formal parameter)
global data: FixedLine type i, " number of fixed line on a certain screen
LoopLine type i, " the number of lines occupied by one steploop item
FirstLine type i, " possbile value 0 or 1, 0 stand for the first line of new " scrolling screen is empty, otherwise is 1
Dataline type i, " number of items you will use in BDC, using DESCRIBE to get
pageno type i, " you need to scroll screen how many times.
line type i, " number of lines appears on the screen.
index(2) type N, " the screen index for certain item
begin type i, " from parameter of loop
end type i. " to parameter of loop
*in code sample, the DataTable-linindex stands for the table index number of this line
form calpage using FixedLine type i (see step 1)
LoopLine type i (see step 1)
FirstLine type i (see step 2)
DataLine type i ( this is the item number you will enter in transaction)
changing pageno type i (return the number of page, depends on run-time visible line in table control/ Step Loop)
changing line type i.(visible lines one the screen)
data: midd type i,
vline type i, "visible lines
if DataLine eq 0.
Message eXXX.
endif.
vline = ( sy-srows - FixedLine ) div LoopLine.
*for table control, you should compare vline with maximum line of
*table control, then take the small one that is min(vline, maximum)
*here only illustrate step loop
if FirstLine eq 0.
pageno = DataLine div vline.
if pageno eq 0.
pageno = pageno + 1.
endif.
elseif FirstLine eq 1.
pageno = ( DataLine - 1 ) div ( vline - 1 ) + 1.
midd = ( DataLine - 1 ) mod ( vline - 1).
if midd = 0 and DataLine gt 1.
pageno = pageno - 1.
endif.
endif.
line = vline.
endform.
Step4 write a subroutine to calculate the line index for each item.
form calindex using Line type i (visible lines on the screen)
FirstLine type i(see step 2)
LineIndex type i(item index)
changing Index type n. (index on the screen)
if FirstLine = 0.
index = LineIndex mod Line.
if index = '00'.
index = Line.
endif.
elseif FirstLine = 1.
index = LineIndex mod ( Line - 1 ).
if ( index between 1 and 0 ) and LineIndex gt 1.
index = index + Line - 1.
endif.
if Line = 2.
index = index + Line - 1.
endif.
endif.
endform.
Step5 write a subroutine to calculate the loop range.
form calrange using Line type i ( visible lines on the screen)
DataLine type i
FirstLine type i
loopindex like sy-index
changing begin type i
end type i.
If FirstLine = 0.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loopindex gt 1.
begin = Line * ( loopindex - 1 ) + 1.
end = Line * loopindex.
if end gt DataLine.
end = DataLine.
endif.
endif.
elseif FirstLine = 1.
if loopindex = 1.
begin = 1.
if DataLine <= Line.
end = DataLine.
else.
end = Line.
endif.
elseif loop index gt 1.
begin = ( Line - 1 ) * ( loopindex - 1 ) + 2.
end = ( Line - 1 ) * ( loopindex - 1 ) + Line.
if end gt DataLine.
end = DataLine.
endif.
endif.
endif.
endform.
Step6 using field sysbol in your BDC, for example: in ME21, but you should calculate each item will correponding to which index in steploop/Table Control
form creat_bdc.
field-symbols: <material>, <quan>, <indicator>.
data: name1(14) value 'EKPO-EMATN(XX)',
name2(14) value 'EKPO-MENGE(XX)',
name3(15) value 'RM06E-SELKZ(XX)'.
assign: name1 to <material>,
name2 to <quan>,
name3 to <indicator>.
do pageno times.
if sy-index gt 1
*insert scroll page ok_code"
endif.
perform calrange using Line DataLine FirstLine sy-index
changing begin end.
loop at DataTable from begin to end.
perform calindex using Line FirstLine DataTable-LineIndex changing Index.
name1+11(2) = Index.
name2+11(2) = Index.
name3+12(2) = Index.
perform bdcfield using <material> DataTable-matnr.
perform bdcfield using <quan> DataTable-menge.
perform bdcfield using <indicator> DataTable-indicator.
endloop.
enddo.
An example abap program of handling Table Control during bdc programming.
REPORT zmm_bdcp_purchaseorderkb02
NO STANDARD PAGE HEADING LINE-SIZE 255.
Declaring internal tables *
*-----Declaring line structure
DATA : BEGIN OF it_dummy OCCURS 0,
dummy(255) TYPE c,
END OF it_dummy.
*-----Internal table for line items
DATA : BEGIN OF it_idata OCCURS 0,
ematn(18), "Material Number.
menge(13), "Qyantity.
netpr(11), "Net Price.
werks(4), "Plant.
ebelp(5), "Item Number.
END OF it_idata.
*-----Deep structure for header data and line items
DATA : BEGIN OF it_me21 OCCURS 0,
lifnr(10), "Vendor A/c No.
bsart(4), "A/c Type.
bedat(8), "Date of creation of PO.
ekorg(4), "Purchasing Organisation.
ekgrp(3), "Purchasing Group.
x_data LIKE TABLE OF it_idata,
END OF it_me21.
DATA : x_idata LIKE LINE OF it_idata.
DATA : v_delimit VALUE ','.
DATA : v_indx(3) TYPE n.
DATA : v_fnam(30) TYPE c.
DATA : v_count TYPE n.
DATA : v_ne TYPE i.
DATA : v_ns TYPE i.
*include bdcrecx1.
INCLUDE zmm_incl_purchaseorderkb01.
Search help for file *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
CALL FUNCTION 'F4_FILENAME'
EXPORTING
program_name = syst-cprog
dynpro_number = syst-dynnr
IMPORTING
file_name = p_file.
START-OF-SELECTION.
To upload the data into line structure *
CALL FUNCTION 'WS_UPLOAD'
EXPORTING
filename = p_file
filetype = 'DAT'
TABLES
data_tab = it_dummy.
Processing the data from line structure to internal tables *
REFRESH:it_me21.
CLEAR :it_me21.
LOOP AT it_dummy.
IF it_dummy-dummy+0(01) = 'H'.
v_indx = v_indx + 1.
CLEAR it_idata.
REFRESH it_idata.
CLEAR it_me21-x_data.
REFRESH it_me21-x_data.
SHIFT it_dummy.
SPLIT it_dummy AT v_delimit INTO it_me21-lifnr
it_me21-bsart
it_me21-bedat
it_me21-ekorg
it_me21-ekgrp.
APPEND it_me21.
ELSEIF it_dummy-dummy+0(01) = 'L'.
SHIFT it_dummy.
SPLIT it_dummy AT v_delimit INTO it_idata-ematn
it_idata-menge
it_idata-netpr
it_idata-werks
it_idata-ebelp.
APPEND it_idata TO it_me21-x_data.
MODIFY it_me21 INDEX v_indx.
ENDIF.
ENDLOOP.
To open the group *
PERFORM open_group.
To populate the bdcdata table for header data *
LOOP AT it_me21.
v_count = v_count + 1.
REFRESH it_bdcdata.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0100',
' ' 'BDC_CURSOR' 'EKKO-LIFNR',
' ' 'BDC_OKCODE' '/00',
' ' 'EKKO-LIFNR' it_me21-lifnr,
' ' 'RM06E-BSART' it_me21-bsart,
' ' 'RM06E-BEDAT' it_me21-bedat,
' ' 'EKKO-EKORG' it_me21-ekorg,
' ' 'EKKO-EKGRP' it_me21-ekgrp,
' ' 'RM06E-LPEIN' 'T'.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0120',
' ' 'BDC_CURSOR' 'RM06E-EBELP',
' ' 'BDC_OKCODE' '/00'.
MOVE 1 TO v_indx.
*-----To populate the bdcdata table for line item data
LOOP AT it_me21-x_data INTO x_idata.
CONCATENATE 'EKPO-EMATN(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-ematn.
CONCATENATE 'EKPO-MENGE(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-menge.
CONCATENATE 'EKPO-NETPR(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-netpr.
CONCATENATE 'EKPO-WERKS(' v_indx ')' INTO v_fnam.
PERFORM subr_bdc_table USING ' ' v_fnam x_idata-werks.
v_indx = v_indx + 1.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0120',
' ' 'BDC_CURSOR' 'RM06E-EBELP',
' ' 'BDC_OKCODE' '/00'.
ENDLOOP.
PERFORM subr_bdc_table USING: 'X' 'SAPMM06E' '0120',
' ' 'BDC_CURSOR' 'RM06E-EBELP',
' ' 'BDC_OKCODE' '=BU'.
PERFORM bdc_transaction USING 'ME21'.
ENDLOOP.
PERFORM close_group.
End of selection event *
END-OF-SELECTION.
IF session NE 'X'.
*-----To display the successful records
WRITE :/10 text-001. "Sucess records
WRITE :/10 SY-ULINE(20).
SKIP.
IF it_sucess IS INITIAL.
WRITE :/ text-002.
ELSE.
WRITE :/ text-008, "Total number of Succesful records
35 v_ns.
SKIP.
WRITE:/ text-003, "Vendor Number
17 text-004, "Record number
30 text-005. "Message
ENDIF.
LOOP AT it_sucess.
WRITE:/4 it_sucess-lifnr,
17 it_sucess-tabix CENTERED,
30 it_sucess-sucess_rec.
ENDLOOP.
SKIP.
*-----To display the erroneous records
WRITE:/10 text-006. "Error Records
WRITE:/10 SY-ULINE(17).
SKIP.
IF it_error IS INITIAL.
WRITE:/ text-007. "No error records
ELSE.
WRITE:/ text-009, "Total number of erroneous records
35 v_ne.
SKIP.
WRITE:/ text-003, "Vendor Number
17 text-004, "Record number
30 text-005. "Message
ENDIF.
LOOP AT it_error.
WRITE:/4 it_error-lifnr,
17 it_error-tabix CENTERED,
30 it_error-error_rec.
ENDLOOP.
REFRESH it_sucess.
REFRESH it_error.
ENDIF.
CODE IN INCLUDE.
Include ZMM_INCL_PURCHASEORDERKB01
DATA: it_BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.
DATA: it_MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.
DATA: E_GROUP_OPENED.
*-----Internal table to store sucess records
DATA:BEGIN OF it_sucess OCCURS 0,
msgtyp(1) TYPE c,
lifnr LIKE ekko-lifnr,
tabix LIKE sy-tabix,
sucess_rec(125),
END OF it_sucess.
DATA: g_mess(125) type c.
*-----Internal table to store error records
DATA:BEGIN OF it_error OCCURS 0,
msgtyp(1) TYPE c,
lifnr LIKE ekko-lifnr,
tabix LIKE sy-tabix,
error_rec(125),
END OF it_error.
Selection screen
SELECTION-SCREEN BEGIN OF LINE.
PARAMETERS session RADIOBUTTON GROUP ctu. "create session
SELECTION-SCREEN COMMENT 3(20) text-s07 FOR FIELD session.
SELECTION-SCREEN POSITION 45.
PARAMETERS ctu RADIOBUTTON GROUP ctu. "call transaction
SELECTION-SCREEN COMMENT 48(20) text-s08 FOR FIELD ctu.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(20) text-s01 FOR FIELD group.
SELECTION-SCREEN POSITION 25.
PARAMETERS group(12). "group name of session
SELECTION-SCREEN COMMENT 48(20) text-s05 FOR FIELD ctumode.
SELECTION-SCREEN POSITION 70.
PARAMETERS ctumode LIKE ctu_params-dismode DEFAULT 'N'.
"A: show all dynpros
"E: show dynpro on error only
"N: do not display dynpro
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 48(20) text-s06 FOR FIELD cupdate.
SELECTION-SCREEN POSITION 70.
PARAMETERS cupdate LIKE ctu_params-updmode DEFAULT 'L'.
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 3(20) text-s03 FOR FIELD keep.
SELECTION-SCREEN POSITION 25.
PARAMETERS: keep AS CHECKBOX. "' ' = delete session if finished
"'X' = keep session if finished
SELECTION-SCREEN COMMENT 48(20) text-s09 FOR FIELD e_group.
SELECTION-SCREEN POSITION 70.
PARAMETERS e_group(12). "group name of error-session
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 51(17) text-s03 FOR FIELD e_keep.
SELECTION-SCREEN POSITION 70.
PARAMETERS: e_keep AS CHECKBOX. "' ' = delete session if finished
"'X' = keep session if finished
SELECTION-SCREEN END OF LINE.
PARAMETERS:p_file LIKE rlgrap-filename.
at selection screen *
AT SELECTION-SCREEN.
group and user must be filled for create session
IF SESSION = 'X' AND
GROUP = SPACE. "OR USER = SPACE.
MESSAGE E613(MS).
ENDIF.
create batchinput session *
FORM OPEN_GROUP.
IF SESSION = 'X'.
SKIP.
WRITE: /(20) 'Create group'(I01), GROUP.
SKIP.
*----open batchinput group
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = GROUP
USER = sy-uname.
WRITE:/(30) 'BDC_OPEN_GROUP'(I02),
(12) 'returncode:'(I05),
SY-SUBRC.
ENDIF.
ENDFORM. "OPEN_GROUP
end batchinput session *
FORM CLOSE_GROUP.
IF SESSION = 'X'.
*------close batchinput group
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /(30) 'BDC_CLOSE_GROUP'(I04),
(12) 'returncode:'(I05),
SY-SUBRC.
ELSE.
IF E_GROUP_OPENED = 'X'.
CALL FUNCTION 'BDC_CLOSE_GROUP'.
WRITE: /.
WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06).
ENDIF.
ENDIF.
ENDFORM. "CLOSE_GROUP
Start new transaction according to parameters *
FORM BDC_TRANSACTION USING TCODE TYPE ANY.
DATA: L_SUBRC LIKE SY-SUBRC.
*------batch input session
IF SESSION = 'X'.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
TABLES
DYNPROTAB = it_BDCDATA.
WRITE: / 'BDC_INSERT'(I03),
TCODE,
'returncode:'(I05),
SY-SUBRC,
'RECORD:',
SY-INDEX.
ELSE.
REFRESH it_MESSTAB.
CALL TRANSACTION TCODE USING it_BDCDATA
MODE CTUMODE
UPDATE CUPDATE
MESSAGES INTO it_MESSTAB.
L_SUBRC = SY-SUBRC.
WRITE: / 'CALL_TRANSACTION',
TCODE,
'returncode:'(I05),
L_SUBRC,
'RECORD:',
SY-INDEX.
ENDIF.
Message handling for Call Transaction *
perform subr_mess_hand using g_mess.
*-----Erzeugen fehlermappe
IF L_SUBRC <> 0 AND E_GROUP <> SPACE.
IF E_GROUP_OPENED = ' '.
CALL FUNCTION 'BDC_OPEN_GROUP'
EXPORTING
CLIENT = SY-MANDT
GROUP = E_GROUP
USER = sy-uname
KEEP = E_KEEP.
E_GROUP_OPENED = 'X'.
ENDIF.
CALL FUNCTION 'BDC_INSERT'
EXPORTING
TCODE = TCODE
TABLES
DYNPROTAB = it_BDCDATA.
ENDIF.
REFRESH it_BDCDATA.
ENDFORM. "BDC_TRANSACTION
Form subr_bdc_table *
text
-->P_0220 text *
-->P_0221 text *
-->P_0222 text *
FORM subr_bdc_table USING VALUE(P_0220) TYPE ANY
VALUE(P_0221) TYPE ANY
VALUE(P_0222) TYPE ANY.
CLEAR it_bdcdata.
IF P_0220 = ' '.
CLEAR it_bdcdata.
it_bdcdata-fnam = P_0221.
it_bdcdata-fval = P_0222.
APPEND it_bdcdata.
ELSE.
it_bdcdata-dynbegin = P_0220.
it_bdcdata-program = P_0221.
it_bdcdata-dynpro = P_0222.
APPEND it_bdcdata.
ENDIF.
ENDFORM. " subr_bdc_table
Form subr_mess_hand *
text *
-->P_G_MESS text *
FORM subr_mess_hand USING P_G_MESS TYPE ANY.
LOOP AT IT_MESSTAB.
CALL FUNCTION 'FORMAT_MESSAGE'
EXPORTING
ID = it_messtab-msgid
LANG = it_messtab-msgspra
NO = it_messtab-msgnr
v1 = it_messtab-msgv1
v2 = it_messtab-msgv2
IMPORTING
MSG = P_G_MESS
EXCEPTIONS
OTHERS = 0.
CASE it_messtab-msgtyp.
when 'E'.
it_error-error_rec = P_G_MESS.
it_error-lifnr = it_me21-lifnr.
it_error-tabix = v_count.
APPEND IT_ERROR.
when 'S'.
it_sucess-sucess_rec = P_G_MESS.
it_sucess-lifnr = it_me21-lifnr.
it_sucess-tabix = v_count.
APPEND IT_SUCESS.
endcase.
ENDLOOP.
Describe table it_sucess lines v_ns.
Describe table it_error lines v_ne.
ENDFORM. " subr_mess_hand
Also refer
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/bdc-table-control-668404
and
http://www.sap-img.com/abap/bdc-example-using-table-control-in-bdc.htm
Regards,
srinivas
<b>*reward for useful answers*</b> -
Can we use overload and overwrite concept in OO-abap
hi
can we use overload and overwrite concept in OO-abapHi
CLASS zl_lcl_vehicle DEFINITION.
PUBLIC SECTION.
Signature of method
METHODS: set_make
IMPORTING value(im_make) TYPE string " Pass by value
im_model TYPE string," Pass by reference
ENDCLASS. "zl_lcl_vehicle DEFINITION
CLASS zl_lcl_vehicle IMPLEMENTATION.
Implementation of method.
METHOD set_make.
IF im_make IS NOT INITIAL
AND im_model IS NOT INITIAL.
gv_make = im_make.
gv_model = im_model.
ENDIF.
ENDMETHOD. "set_make
ENDCLASS. "zl_lcl_vehicle
Overloading means changing signature as well as implementation of a method.
Overriding is changing only implementation of method with signature unchanged.
From ABAP perspective, only the CONSTRUCTOR method can be overloaded in a subclass i.e both the signature and implementation can be adapted in subclass.
Any other method can't be overloaded. It can only be redefined/overridden i.e implementation changed with signature unchanged.
In ABAP there is something called a redefinition.
When you inherit a class from a super class, you can redifne a method. You cannot chnage the signature( Interface) of the method. It will remain the same as that of the super class.You must redefine a method in the same visibility section in which it appears in the superclass.
Eg.
CLASS C_SUPER_CLASS DEFINITION .
PUBLIC SECTION.
METHODS: DRIVE ,
STOP.
PROTECTED SECTION.
DATA SPEED TYPE I.
ENDCLASS.
CLASS C_SUPER_CLASS IMPLEMENTATION.
METHOD DRIVE.
SPEED = 0.
WRITE: / 'Bike speed =', SPEED.
ENDMETHOD.
ENDCLASS.
CLASS C_SUB_CLASS DEFINITION INHERITING FROM C_SUPER_CLASS.
PUBLIC SECTION.
METHODS DRIVE REDEFINITION.
ENDCLASS
CLASS C_SUB_CLASS IMPLEMENTATION.
METHOD DRIVE.
SPEED = SPEED + 10.
WRITE: / 'Bicycle speed =', SPEED.
ENDMETHOD.
ENDCLASS.
Regards
Vasu -
Is ABAP expression FORM - PERFORM can be used in SAP BI 7.0 transformation
Hello
Is ABAP expression FORM - PERFORM can be used in SAP BI 7.0 transformations or method odf class is a recommended approach?
ThanksSAP BI 7.x Transformations use OO ABAP where the logic that you enter into the tranformational routines (Start Routine, Characteristic Routines and End Routine) are inside METHODS. PERFORM and FORM are procedural-based ABAP and cannot be used in METHODS.
CLASS-METHOD and Function Modules are your best bets for processing outside of the transformational routine. As for performance, we use both and haven't found any signicant difference between the two (our custom Function Modules usually perform only slight better than our custom METHODS). -
How can we use business object (e.g. crystal report ) in webdynpro abap
Hi All,
We all know that business object has been part of sap products.
But even though in SAP, I really don't know much about business object.
and how can we use the great function of BO and integrate into our development to make
user have much better function and user experience.
Do we have some learning material of BO?
Could someone share some material here?
Thanks and Regards
Aaron.One of the main ways that you can integrate some Business Objects content with WDA is via FlashIslands. If you are on 7.01 or higher, you have the option to use FlashIslands UI element. There are many tutorials on FlashIslands available on SDN. FlashIslands work well with Xcelsius content, since the output of Xcelsius is a Flex component. It is pretty easy to set the Xcelsius interface to External Connection and then write a wrapper Flex Component around the generated output, so that it can be used in the FlashIslands interface.
For Crystal Reports integration you will need NetWeaver 7.02 (comming early next year). We have integrated Crystal Reports as an output option in the Web Dynpro ABAP ALV and the Classic Dynpro ALV. You don't need to do any development to enable this. You can use two different SAP delivered Crystal Reports templates for the ALV output, or create and add your own templates.
Some of ther BOBJ integration is still in prototype and demo phase within SAP. For instance we have a data interface to send data to Explorer onDemand from any ABAP application. We have a prototype FlashIsland for WebI to run in place within Web Dynpro ABAP. Over future enhancement packages you will see increased integration opportunties with the BOBJ capabilites. -
Can i use any OWB mapping operator when i generate ABAP
it seems like in OWB mappings, if i have a SAP table as data source and i want to perform some operations (eg. JOIN, input parameters, expressions) i am limited to generating PLSQL code.
all i can get if i want ABAP generated code is a simple table (all records) column to column mappings ! is this true or am i missing some important steps ?
eg. how can i specify a date as input parameter to be used as a filter value on a SAP table before storing the results in a staging table ? keep in mind that i am expecting the extraction code to be in ABAP ...You need to specify the join condition to generate ABAP code. Start by specfying a foreign key based on the join condition. In table 1, create a unique key. In table 2, create a foreign key based on the unique key of table 1.
There should not be any problem with the filter condition generating ABAP code. If you would like more specific assistance, log a technical assistance request (TAR) on MetaLink and Support can review your map. -
Can you use ABAP for B1 Development
Hi
I have been lookng for answer for the following 2 questons.
1. Is is it possible to use ABAP for B1 Development to create Add-ons.
2. In the standard forms/reports there is no figure to words conversion. Please high light on how to do this.
Ramesh ShankaranShort answer: no you cannot.
Longer answer: B1 gives you access to its objects and GUI
with COM-based libraries. Any language that supports COM
can be used, included VB, VB.NET, C#, C and C++. A wrapper
for Java is also provided to access B1 objects. -
Can i use XSD / XML in Abap Programs
Hi friends
I need to validate a xml file against xsd file. Can i validate it in abap program?
Best Regards.
PHi Pedro,
Simple transformations, or ST, is a proprietary SAP programming language that describes the transformation of ABAP data to XML (serialization) and from XML to ABAP data (deserialization).
Check this out...
Simple Transformations - SAP Library
Regards,
Raj
<dead link corrected>
Message was edited by: Manish Kumar -
Can I use Tcode to start a webdynpro for abap or for JAVA?
I noticed some page program can be started by tcode for administrion. I am not sure whether it is webdynpro or BSP. But can I use tcode to start webdynpro? How to do it?
Hi Yichao,
To Create a Transaction code for a Web Dynpro application, use Transaction SE93 (Transaction Maintenance).
1. On the dialog screen, enter the transaction code (up to 20 characters) then click on Create button.
2. A dialog pop up screen appears, enter meaningful description of the transaction in the Short Text field.
3. Choose the option Transaction with parameters (Parameter transaction).
4. Choose Continue. The Create Parameter Transaction screen appears.
5. In the Transaction field, enter WDYID and select the checkbox Skip initial screen. There is no need to make changes in the Classification group box.
6. Add the necessary entries to the Default Values table by using the F4 help. The values are automatically available after you enter WDYID in the Transaction field.
Try going through this link for a better picture about how to achieve this.
saptechnical . com / Tutorials / WebDynproABAP / TransactionCode / Create.htm
You would have to remove the unnecessary spaces in the URL before you can see the actual working one. It wasn't allowing me to paste that link in here so had to do it this way...
Regards,
Uday -
ABAP interfaces build using BDC and BAPIs can be used/replaced with the XI?
Hi,
We have develeloped our interfases using BDC and BAPIs. Now our client has decited to implement XI. Now could you please help in finding whether these interfaces can be used/replaced with the XI.
If yes, please let us know how?
Thanks and Regards,
ShwetaSingh,
Check this threads where they have discussed on how to use them with XI:
import BAPI into XI
Re: interface of xi with bapi
Re: BDC
Regards,
---Satish -
Can I use classes and methods for a maintenance view events?
Hello experts,
Instead of perform/form, can I instead use classes and methods, etc for a given maintenance view event, lets say for example I want to use event '01' which is before saving records in the database. Help would be greatly appreciated. Thanks a lot guys!Hi viraylab,
1. The architecture provided by maintenance view
for using EVENTS and our own code inside it -
It is provided using FORM/PERFORM
concept only.
2. At this stage,we cannot use classes.
3. However, inside the FORM routine,
we can write what ever we want.
We can aswell use any abap code, including
classes and methods.
(But this classes and methods won't have any
effect on the EVENT provided by maintenance view)
regards,
amit m.
Maybe you are looking for
-
Media Encoder 2014 ohne FLV Support
Hallo Forum, als CC 2014 rausgekommen ist, war ich schon ziemlich überrascht das der ME CC 2014 kein .flv mehr Unterstützt. Durch komplizierte De- und Installationen konnte ich dann den ME CC 2014 löschen und den ME CC wieder holen. Nach dem aktuell
-
How to install plugins in Lightroom
I've searched the forum but could not find a correct answer to this. I'm running LR 2.3 and Vista. I've tried using the Plug-in Manager in Lightroom by going to file tab. When going to the location where I un-zipped the plugins, I always get the sam
-
Event handling... inner classes or not? what do you recomend?
Me question is should you use JButton addbutton=new JButton("Add"); addbutton.addNewActionListener(new ActionListener() public void actionPerformed(ActionEvent e) or this class Window implements ActionListener public void actionPerformed(ActionEvent
-
Trying to distinguish photo from video clip ?
Hi, I have just started using A3. I have noticed that it is difficult to distinguish between photos and video clips in A3. Only from the metadata badges you can see a very small icon in the bottom right hand corner. Is there a better way to easily se
-
Running a series of reports in order
I have several financial reports that need to run in a certain order at the end of every month because some updates occur after a certain report runs. Does anyone know how I can do this? Can one report check to see if another has run?