Call Method - Parameters exporting
Hi All,
CALL METHOD ZXXX->PROCESS
exporting
struct1 = struct1
struct2 = struct2
int_tabl1 = int_tab1
int_tabl2 = int_tab2
int_tabl3 = int_tab3
var1 = var1
var2 = var2.
I'm calling a method like above and exporting 2 structures,3 internal tables and 2 variables to do further processing in the PROCESS routine.
Is there a limit on exporting parameters while calling methods? Will it have any performace issues?
Any ideas appreciated.
Meghna
Hi,
There is restriction on the number of Parameters passed to a method. But it is always better from the performance aspect to pass by reference. So, unless and otherwise needed you can always use the Pass By Reference to Pass by Value.
You can have a look at the link below for a detailed and complete overview of Method Declarations:
http://help.sap.com/saphelp_nw04/Helpdata/EN/56/1eb6c705ad11d2952f0000e8353423/frameset.htm
Hope this will help.
Thanks,
Samantak.
Similar Messages
-
ABAP OOP / Calling Method ...Help
Trying out few oop codes....
While calling class instance methods and passing parameters, when to use the following syntax.
data: cvar type ref to class1.
cvar->method( exporting variable1 = value )
(or) some time i see sample codes with out key word 'exporting'
cvar->method( variable1 = value ) .
(or)
cvar->method( value ) .
(or) some times with key word CALL METHOD
CREATE OBJECT cvar
CALL METHOD cvar->method
EXPORTING
variable1 = value.
Tried out a uniform way of calling ,but getting errors.Any inputs please..
Thanks,
BvanBhavan,
First declare the class.
Implement the class.
Declare the Class reference variable
Create the class object.
call the method.
data: cvar type ref to class1.
CREATE OBJECT cvar
Calling Methods
To call a method, use the following statement:
CALL METHOD <meth> EXPORTING... <ii> =.<f i>...
IMPORTING... <ei> =.<g i>...
CHANGING ... <ci> =.<f i>...
RECEIVING r = h
EXCEPTIONS... <ei> = rc i...
The way in which you address the method <method> depends on the method itself and from where you are calling it. Within the implementation part of a class, you can call the methods of the same class directly using their name <meth>.
CALL METHOD <meth>...
Outside the class, the visibility of the method depends on whether you can call it at all. Visible instance methods can be called from outside the class using
CALL METHOD <ref>-><meth>...
where <ref> is a reference variable whose value points to an instance of the class. Visible instance methods can be called from outside the class using
CALL METHOD <class>=><meth>...
where <class> is the name of the relevant class.
When you call a method, you must pass all non-optional input parameters using the EXPORTING or CHANGING addition in the CALL METHOD statement. You can (but do not have to) import the output parameters into your program using the IMPORTING or RECEIVING addition. Equally, you can (but do not have to) handle any exceptions triggered by the exceptions using the EXCEPTIONS addition. However, this is recommended.
You pass and receive values to and from methods in the same way as with function modules, that is, with the syntax:
... <Formal parameter> = <Actual parameter>
after the corresponding addition. The interface parameters (formal parameters) are always on the left-hand side of the equals sign. The actual parameters are always on the right. The equals sign is not an assignment operator in this context; it merely serves to assign program variables to the interface parameters of the method.
If the interface of a method consists only of a single IMPORTING parameter, you can use the following shortened form of the method call:
CALL METHOD <method>( f).
The actual parameter <f> is passed to the input parameters of the method.
If the interface of a method consists only of IMPORTING parameters, you can use the following shortened form of the method call:
CALL METHOD <method>(....<ii> =.<f i>...).
Each actual parameter <f i > is passed to the corresponding formal parameter <i i >.
Pls. mark if useful -
Exporting table through call method
Hello experts,
I'm trying to make my get_entity_set methode for a condition type:
DATA itab_cond_type TYPE TABLE OF zstruc_cond_type.
DATA wa_cond_type type zstruc_cond_type.
CALL METHOD class->GET_COND_TYPE IMPORTING ex_cond_type = itab_cond_type
DATA: ls_entityset LIKE LINE OF et_entityset.
LOOP AT itab_cond_type INTO wa_cond_type.
ls_entityset-KSCHL = wa_cond_type-KSCHL.
ls_entityset-class = wa_cond_type-VTEXT.
APPEND ls_entityset TO et_entityset.
ENDLOOP.
I get an error at the import. => "itab_cond_type" is not type-compatible with the
formal parameterr "ex_cond_type".
Even though they are both from the same type ... (type table of zstruc_cond_type).
When i change 'DATA itab_cond_type TYPE TABLE OF zstruc_cond_type' to 'DATA itab_cond_type TYPE zstruc_cond_type'
i get an error at the loop at because it is no longer an iternal table and i cannot append my data to et_entityset...
Any ideas of what it is i'm doing wrong here?
Kind regards,
BartPlease check these threads "ME" is not type-compatible with formal parameter "IM_HEADER" and Not compatible with the formal parameter "NEW_ITEMS"
your code should look as below,
DATA: lt_cond_type TYPE TABLE OF zstruc_cond_type,
ls_cond_type LIKE LINE OF lt_cond_type,
ls_entity LIKE LINE OF et_entityset.
*Get data from ZSTRUC_COND_TYPE table
SELECT * FROM zstruc_cond_type INTO TABLE lt_cond_type.
*Fill ET_ENTITYSET
LOOP AT lt_cond_type INTO ls_cond_type.
ls_entity-KSCHL = ls_cond_type-KSCHL.
ls_entity-class = ls_cond_type-VTEXT.
APPEND ls_entity TO et_entityset.
ENDLOOP.
assuming zstruc_cond_type is table.
Regards,
Chandra -
CALL METHOD GRID4- SET_TABLE_FOR_FIRST_DISPLAY
Hi All,
I would like to know how to display 5 internal table same time in a single output screen. I have attached the program for your reference.
Presently I am able to get i_final1 and i_final2 output on the screen. I need to display on the same screen grid 3 and grid 4. Is it possible to display.
*& REPORT Z_READ_PROFILE
REPORT Z_READ_PROFILE.
TABLES: TCATS, TCATST, TCATX_GRID.
DATA: ST_CT1_FIELDCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT1 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT2 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT2 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT3 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT3 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT4 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT4 TYPE LVC_T_FCAT.
DATA: DOCK TYPE REF TO CL_GUI_DOCKING_CONTAINER,
SPLIT TYPE REF TO CL_GUI_SPLITTER_CONTAINER,
GRID1 TYPE REF TO CL_GUI_ALV_GRID,
GRID2 TYPE REF TO CL_GUI_ALV_GRID,
GRID3 TYPE REF TO CL_GUI_ALV_GRID,
GRID4 TYPE REF TO CL_GUI_ALV_GRID,
DOC1 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
DOC3 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
DOC4 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
CON22 TYPE REF TO CL_GUI_DOCKING_CONTAINER,
LI_FIELDCAT1 TYPE LVC_T_FCAT.
SELECTION-SCREEN: BEGIN OF BLOCK B1.
PARAMETERS: P_PROF1 LIKE TCATS-VARIANT,
P_PROF2 LIKE TCATS-VARIANT.
SELECTION-SCREEN: END OF BLOCK B1.
DATA: BEGIN OF I_DD03P OCCURS 0.
INCLUDE STRUCTURE DD03P.
DATA: END OF I_DD03P.
DATA: BEGIN OF I_FIELDS1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS1.
DATA: BEGIN OF I_FIELDS2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS2.
DATA: BEGIN OF I_FINAL1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL1.
DATA: BEGIN OF I_FINAL2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL2.
DATA: BEGIN OF ENTRYLIST OCCURS 0,
MFELD TYPE FAWFLDNAM,
VISIBLE TYPE FAWCUST,
REQUIRED TYPE FAWCUST,
READONLY TYPE FAWCUST,
HIDE TYPE FAWCUST,
PROF1 LIKE TCATS-VARIANT,
END OF ENTRYLIST.
DATA: BEGIN OF WORKLIST OCCURS 0.
INCLUDE STRUCTURE FIELD_SELECTION.
DATA: END OF WORKLIST.
DATA: BEGIN OF I_TCATX_GRID1 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID1.
DATA: BEGIN OF I_TCATX_GRID2 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID2.
PERFORM STATEMENT TO GET THE DATA BASED ON PORIFLE
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS1.
PERFORM GET_COMPONENTS1.
ENDIF.
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS2.
PERFORM GET_COMPONENTS2.
ENDIF.
PERFORM COMPARE_TABLES.
CALL SCREEN 100.
*& FORM GET_FIELDS
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS1.
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF1
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF1 TO I_FIELDS1-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS1-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS1-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS1-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS1-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS1-NOTACT.
APPEND I_FIELDS1.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS
*& FORM GET_FIELDS2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS2 .
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF2
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF2 TO I_FIELDS2-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS2-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS2-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS2-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS2-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS2-NOTACT.
APPEND I_FIELDS2.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS2
*& FORM COMPARE_TABLES
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM COMPARE_TABLES .
CLEAR: I_FIELDS1, I_FIELDS2.
SORT : I_FIELDS1, I_FIELDS2.
DATA: L_TABLE LIKE DD03L-TABNAME,
L_FIELD LIKE DD03L-FIELDNAME.
LOOP AT I_FIELDS1.
READ TABLE I_FIELDS2 WITH KEY MFIELD = I_FIELDS1-MFIELD
INPUT = I_FIELDS1-INPUT
OBLIGAT = I_FIELDS1-OBLIGAT
DISPLAY = I_FIELDS1-DISPLAY
NOTACT = I_FIELDS1-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS1-PROFILE TO I_FINAL1-PROFILE.
SPLIT I_FIELDS1-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL1-TEXT.
ENDIF.
MOVE I_FIELDS1-MFIELD TO I_FINAL1-MFIELD.
MOVE I_FIELDS1-INPUT TO I_FINAL1-INPUT.
MOVE I_FIELDS1-OBLIGAT TO I_FINAL1-OBLIGAT.
MOVE I_FIELDS1-DISPLAY TO I_FINAL1-DISPLAY.
MOVE I_FIELDS1-NOTACT TO I_FINAL1-NOTACT.
APPEND I_FINAL1.
ENDIF.
ENDLOOP.
SORT : I_FIELDS1, I_FIELDS2.
LOOP AT I_FIELDS2.
READ TABLE I_FIELDS1 WITH KEY MFIELD = I_FIELDS2-MFIELD
INPUT = I_FIELDS2-INPUT
OBLIGAT = I_FIELDS2-OBLIGAT
DISPLAY = I_FIELDS2-DISPLAY
NOTACT = I_FIELDS2-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS2-PROFILE TO I_FINAL2-PROFILE.
SPLIT I_FIELDS2-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL2-TEXT.
ENDIF.
MOVE I_FIELDS2-MFIELD TO I_FINAL2-MFIELD.
MOVE I_FIELDS2-INPUT TO I_FINAL2-INPUT.
MOVE I_FIELDS2-OBLIGAT TO I_FINAL2-OBLIGAT.
MOVE I_FIELDS2-DISPLAY TO I_FINAL2-DISPLAY.
MOVE I_FIELDS2-NOTACT TO I_FINAL2-NOTACT.
APPEND I_FINAL2.
ENDIF.
ENDLOOP.
ENDFORM. " COMPARE_TABLES
*& MODULE STATUS_0100 OUTPUT
TEXT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS SPACE.
SET TITLEBAR 'T001'.
PERFORM FIELDCAT_FINAL1.
PERFORM FIELDCAT_FINAL2.
CREATE OBJECT DOCK
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '600'
SIDE = '1'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT DOC1
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '1000'
SIDE = '4'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID1 EXPORTING I_PARENT = DOCK.
CALL METHOD GRID1->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'I_FINAL1'
CHANGING
IT_OUTTAB = I_FINAL1[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT1[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID2 EXPORTING I_PARENT = DOC1.
CALL METHOD GRID2->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'I_FINAL2'
CHANGING
IT_OUTTAB = I_FINAL2[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT2[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT DOC3
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '600'
SIDE = '1'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT DOC4
EXPORTING
REPID = SY-REPID
DYNNR = '100'
EXTENSION = '1000'
SIDE = '4'
EXCEPTIONS
CNTL_ERROR = 1
CNTL_SYSTEM_ERROR = 2
CREATE_ERROR = 3
LIFETIME_ERROR = 4
LIFETIME_DYNPRO_DYNPRO_LINK = 5
OTHERS = 6
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID3 EXPORTING I_PARENT = DOC3.
CALL METHOD GRID3->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'TCATX_GRID'
CHANGING
IT_OUTTAB = I_TCATX_GRID1[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT1[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT GRID4 EXPORTING I_PARENT = DOC4.
CALL METHOD GRID4->SET_TABLE_FOR_FIRST_DISPLAY
EXPORTING
I_STRUCTURE_NAME = 'TCATX_GRID'
CHANGING
IT_OUTTAB = I_TCATX_GRID2[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT2[]
EXCEPTIONS
INVALID_PARAMETER_COMBINATION = 1
PROGRAM_ERROR = 2
TOO_MANY_LINES = 3
OTHERS = 4.
IF SY-SUBRC NE 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& MODULE USER_COMMAND_0100 INPUT
TEXT
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& FORM FIELDCAT_FINAL1
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL1 .
IF IT_CT1_FIELDCAT1[] IS INITIAL.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT1-COL_POS = 0.
ST_CT1_FIELDCAT1-OUTPUTLEN = 8.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT1-KEY = 'X'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 15.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'FIELD'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 30.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ENDIF.
ENDFORM. " FIELDCAT_FINAL1
*& FORM FIELDCAT_FINAL2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL2 .
IF IT_CT1_FIELDCAT2[] IS INITIAL.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT2-COL_POS = 0.
ST_CT1_FIELDCAT2-OUTPUTLEN = 8.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT2-KEY = 'X'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'FIELD'.
ST_CT1_FIELDCAT2-OUTPUTLEN = 15.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-OUTPUTLEN = 30.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT2-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ENDIF.
ENDFORM. " FIELDCAT_FINAL2
*& Form GET_COMPONENTS1
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS1 .
CLEAR : I_TCATX_GRID1.
REFRESH: I_TCATX_GRID1.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID1
WHERE PROFIL EQ P_PROF1.
ENDFORM. " GET_COMPONENTS1
*& Form GET_COMPONENTS2
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS2 .
CLEAR : I_TCATX_GRID2.
REFRESH: I_TCATX_GRID2.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID2
WHERE PROFIL EQ P_PROF2.
ENDFORM. " GET_COMPONENTS2
Thanks & Regards,
Nagaraj KalbaviHi Uwe,
As per your suggestion I have updated my program with splitter. Now I am able to get 3 internal Table but 4th one is not displaying. What could be the reason. I have attached my program for your reference.
& REPORT ZTEST_NAG&
REPORT ZTEST_NAG.
TABLES: TCATS, TCATST, TCATX_GRID.
DATA: ST_CT1_FIELDCAT1 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT1 TYPE LVC_T_FCAT.
DATA: ST_CT1_FIELDCAT2 TYPE LVC_T_FCAT WITH HEADER LINE.
DATA: IT_CT1_FIELDCAT2 TYPE LVC_T_FCAT.
data: go_docking TYPE REF TO cl_gui_docking_container,
go_splitter TYPE REF TO cl_gui_splitter_container,
go_splitter_2 TYPE REF TO cl_gui_splitter_container,
go_cell_top TYPE REF TO cl_gui_container,
go_cell_bottom TYPE REF TO cl_gui_container,
go_cell_left TYPE REF TO cl_gui_container,
go_cell_right TYPE REF TO cl_gui_container,
go_grid1 TYPE REF TO cl_gui_alv_grid,
go_grid2 TYPE REF TO cl_gui_alv_grid,
go_grid3 TYPE REF TO cl_gui_alv_grid,
go_grid4 TYPE REF TO cl_gui_alv_grid.
SELECTION-SCREEN: BEGIN OF BLOCK B1.
PARAMETERS: P_PROF1 LIKE TCATS-VARIANT,
P_PROF2 LIKE TCATS-VARIANT.
SELECTION-SCREEN: END OF BLOCK B1.
DATA: BEGIN OF I_DD03P OCCURS 0.
INCLUDE STRUCTURE DD03P.
DATA: END OF I_DD03P.
DATA: BEGIN OF I_FIELDS1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS1.
DATA: BEGIN OF I_FIELDS2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FIELDS2.
DATA: BEGIN OF I_FINAL1 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL1.
DATA: BEGIN OF I_FINAL2 OCCURS 0,
PROFILE LIKE TCATS-VARIANT,
TEXT LIKE TCATST-TEXT,
MFIELD TYPE FAWFLDNAM,
INPUT LIKE RSFAC-INPUT,
OBLIGAT LIKE RSFAC-OBLIGAT,
DISPLAY LIKE RSFAC-DISPLAY,
NOTACT LIKE RSFAC-NOTACT,
END OF I_FINAL2.
DATA: BEGIN OF ENTRYLIST OCCURS 0,
MFELD TYPE FAWFLDNAM,
VISIBLE TYPE FAWCUST,
REQUIRED TYPE FAWCUST,
READONLY TYPE FAWCUST,
HIDE TYPE FAWCUST,
PROF1 LIKE TCATS-VARIANT,
END OF ENTRYLIST.
DATA: BEGIN OF WORKLIST OCCURS 0.
INCLUDE STRUCTURE FIELD_SELECTION.
DATA: END OF WORKLIST.
DATA: BEGIN OF I_TCATX_GRID1 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID1.
DATA: BEGIN OF I_TCATX_GRID2 OCCURS 0,
PROFIL LIKE TCATX_GRID-PROFIL,
TASKCOMPONENT LIKE TCATX_GRID-TASKCOMPONENT,
COL LIKE TCATX_GRID-COL,
OBLIGAT LIKE TCATX_GRID-OBLIGAT,
END OF I_TCATX_GRID2.
PERFORM STATEMENT TO GET THE DATA BASED ON PORIFLE
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS1.
PERFORM GET_COMPONENTS1.
ENDIF.
IF NOT P_PROF1 IS INITIAL .
PERFORM GET_FIELDS2.
PERFORM GET_COMPONENTS2.
ENDIF.
PERFORM COMPARE_TABLES.
CALL SCREEN 100.
*& FORM GET_FIELDS
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS1.
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF1
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF1 TO I_FIELDS1-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS1-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS1-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS1-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS1-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS1-NOTACT.
APPEND I_FIELDS1.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS
*& FORM GET_FIELDS2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM GET_FIELDS2 .
CLEAR : ENTRYLIST, WORKLIST.
REFRESH: ENTRYLIST, WORKLIST.
CALL FUNCTION 'CATS_GET_INFLUENCES'
EXPORTING
VARIANT = P_PROF2
TABLES
ENTRYLIST_SELECTION = ENTRYLIST
WORKLIST_SELECTION = WORKLIST
IF SY-SUBRC EQ 0.
LOOP AT ENTRYLIST WHERE VISIBLE EQ SPACE
AND REQUIRED EQ SPACE
AND READONLY EQ SPACE.
MOVE 'X' TO ENTRYLIST-HIDE.
MODIFY ENTRYLIST TRANSPORTING HIDE.
ENDLOOP.
LOOP AT ENTRYLIST.
MOVE P_PROF2 TO I_FIELDS2-PROFILE.
MOVE ENTRYLIST-MFELD TO I_FIELDS2-MFIELD.
IF ENTRYLIST-READONLY NE 'X' AND ENTRYLIST-REQUIRED NE 'X' .
MOVE ENTRYLIST-VISIBLE TO I_FIELDS2-INPUT.
ENDIF.
MOVE ENTRYLIST-REQUIRED TO I_FIELDS2-OBLIGAT.
MOVE ENTRYLIST-READONLY TO I_FIELDS2-DISPLAY.
MOVE ENTRYLIST-HIDE TO I_FIELDS2-NOTACT.
APPEND I_FIELDS2.
ENDLOOP.
ENDIF.
ENDFORM. " GET_FIELDS2
*& FORM COMPARE_TABLES
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM COMPARE_TABLES .
CLEAR: I_FIELDS1, I_FIELDS2.
SORT : I_FIELDS1, I_FIELDS2.
DATA: L_TABLE LIKE DD03L-TABNAME,
L_FIELD LIKE DD03L-FIELDNAME.
LOOP AT I_FIELDS1.
READ TABLE I_FIELDS2 WITH KEY MFIELD = I_FIELDS1-MFIELD
INPUT = I_FIELDS1-INPUT
OBLIGAT = I_FIELDS1-OBLIGAT
DISPLAY = I_FIELDS1-DISPLAY
NOTACT = I_FIELDS1-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS1-PROFILE TO I_FINAL1-PROFILE.
SPLIT I_FIELDS1-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL1-TEXT.
ENDIF.
MOVE I_FIELDS1-MFIELD TO I_FINAL1-MFIELD.
MOVE I_FIELDS1-INPUT TO I_FINAL1-INPUT.
MOVE I_FIELDS1-OBLIGAT TO I_FINAL1-OBLIGAT.
MOVE I_FIELDS1-DISPLAY TO I_FINAL1-DISPLAY.
MOVE I_FIELDS1-NOTACT TO I_FINAL1-NOTACT.
APPEND I_FINAL1.
ENDIF.
ENDLOOP.
SORT : I_FIELDS1, I_FIELDS2.
LOOP AT I_FIELDS2.
READ TABLE I_FIELDS1 WITH KEY MFIELD = I_FIELDS2-MFIELD
INPUT = I_FIELDS2-INPUT
OBLIGAT = I_FIELDS2-OBLIGAT
DISPLAY = I_FIELDS2-DISPLAY
NOTACT = I_FIELDS2-NOTACT.
IF SY-SUBRC NE 0.
MOVE I_FIELDS2-PROFILE TO I_FINAL2-PROFILE.
SPLIT I_FIELDS2-MFIELD AT '-' INTO L_TABLE L_FIELD.
CALL FUNCTION 'BUS_DDFIELD_GET'
EXPORTING
I_TABNM = L_TABLE
I_FLDNM = L_FIELD
I_LANGU = SY-LANGU
IMPORTING
E_DD03P = I_DD03P
EXCEPTIONS
FIELD_NOT_FOUND = 1
OTHERS = 2
IF SY-SUBRC EQ 0.
MOVE I_DD03P-DDTEXT TO I_FINAL2-TEXT.
ENDIF.
MOVE I_FIELDS2-MFIELD TO I_FINAL2-MFIELD.
MOVE I_FIELDS2-INPUT TO I_FINAL2-INPUT.
MOVE I_FIELDS2-OBLIGAT TO I_FINAL2-OBLIGAT.
MOVE I_FIELDS2-DISPLAY TO I_FINAL2-DISPLAY.
MOVE I_FIELDS2-NOTACT TO I_FINAL2-NOTACT.
APPEND I_FINAL2.
ENDIF.
ENDLOOP.
ENDFORM. " COMPARE_TABLES
*& MODULE STATUS_0100 OUTPUT
TEXT
MODULE STATUS_0100 OUTPUT.
SET PF-STATUS SPACE.
SET TITLEBAR 'T001'.
PERFORM FIELDCAT_FINAL1.
PERFORM FIELDCAT_FINAL2.
CREATE OBJECT go_docking
EXPORTING
parent = cl_gui_container=>screen0
ratio = 90
EXCEPTIONS
OTHERS = 6.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Create splitter container
CREATE OBJECT go_splitter
EXPORTING
parent = go_docking
rows = 1
columns = 2
NO_AUTODEF_PROGID_DYNNR =
NAME =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Get cell container
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_left.
CALL METHOD go_splitter->get_container
EXPORTING
row = 1
column = 2
RECEIVING
container = go_cell_right.
Create 2nd splitter container
CREATE OBJECT go_splitter_2
EXPORTING
parent = go_cell_left
rows = 2
columns = 1
NO_AUTODEF_PROGID_DYNNR =
NAME =
EXCEPTIONS
cntl_error = 1
cntl_system_error = 2
OTHERS = 3.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Get cell container
CALL METHOD go_splitter_2->get_container
EXPORTING
row = 1
column = 1
RECEIVING
container = go_cell_top.
CALL METHOD go_splitter_2->get_container
EXPORTING
row = 2
column = 1
RECEIVING
container = go_cell_bottom.
Create ALV grids
CREATE OBJECT go_grid1
EXPORTING
i_parent = go_cell_top
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_grid2
EXPORTING
i_parent = go_cell_right
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_grid3
EXPORTING
i_parent = go_cell_bottom
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CREATE OBJECT go_grid4
EXPORTING
i_parent = go_cell_left
EXCEPTIONS
OTHERS = 5.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid1->set_table_for_first_display
EXPORTING
i_structure_name = 'I_FINAL1'
CHANGING
it_outtab = I_FINAL1[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT1[]
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid2->set_table_for_first_display
EXPORTING
i_structure_name = 'I_FINAL2'
CHANGING
it_outtab = I_FINAL2[]
IT_FIELDCATALOG = IT_CT1_FIELDCAT2[]
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid3->set_table_for_first_display
EXPORTING
i_structure_name = 'TCATX_GRID'
CHANGING
it_outtab = I_TCATX_GRID1[] " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
CALL METHOD go_grid4->set_table_for_first_display
EXPORTING
i_structure_name = 'TCATX_GRID'
CHANGING
it_outtab = I_TCATX_GRID2[] " empty !!!
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
Link the docking container to the target dynpro
CALL METHOD go_docking->link
EXPORTING
repid = syst-repid
dynnr = '0100'
CONTAINER =
EXCEPTIONS
OTHERS = 4.
IF sy-subrc ne 0.
MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
ENDIF.
ENDMODULE. " STATUS_0100 OUTPUT
*& MODULE USER_COMMAND_0100 INPUT
TEXT
MODULE USER_COMMAND_0100 INPUT.
CASE SY-UCOMM.
WHEN 'BACK'.
LEAVE TO SCREEN 0.
ENDCASE.
ENDMODULE. " USER_COMMAND_0100 INPUT
*& FORM FIELDCAT_FINAL1
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL1 .
IF IT_CT1_FIELDCAT1[] IS INITIAL.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT1-COL_POS = 0.
ST_CT1_FIELDCAT1-OUTPUTLEN = 8.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT1-KEY = 'X'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 15.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'FIELD'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT1-COL_POS = 1.
ST_CT1_FIELDCAT1-OUTPUTLEN = 30.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ST_CT1_FIELDCAT1-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT1-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT1-COL_POS = 2.
ST_CT1_FIELDCAT1-OUTPUTLEN = 2.
ST_CT1_FIELDCAT1-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT1 TO IT_CT1_FIELDCAT1.
CLEAR ST_CT1_FIELDCAT1.
ENDIF.
ENDFORM. " FIELDCAT_FINAL1
*& FORM FIELDCAT_FINAL2
TEXT
--> P1 TEXT
<-- P2 TEXT
FORM FIELDCAT_FINAL2 .
IF IT_CT1_FIELDCAT2[] IS INITIAL.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'PROFILE'.
ST_CT1_FIELDCAT2-COL_POS = 0.
ST_CT1_FIELDCAT2-OUTPUTLEN = 8.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'PROFILE'.
ST_CT1_FIELDCAT2-KEY = 'X'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'MFIELD'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'FIELD'.
ST_CT1_FIELDCAT2-OUTPUTLEN = 15.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'TEXT'.
ST_CT1_FIELDCAT2-COL_POS = 1.
ST_CT1_FIELDCAT2-OUTPUTLEN = 30.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'TEXT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'INPUT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'INPUT'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'OBLIGAT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'REQUIRED'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL1'.
ST_CT1_FIELDCAT2-FIELDNAME = 'DISPLAY'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'DISPLAY'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ST_CT1_FIELDCAT2-TABNAME = 'I_FINAL2'.
ST_CT1_FIELDCAT2-FIELDNAME = 'NOTACT'.
ST_CT1_FIELDCAT2-COL_POS = 2.
ST_CT1_FIELDCAT2-OUTPUTLEN = 2.
ST_CT1_FIELDCAT2-SCRTEXT_L = 'HIDE'.
APPEND ST_CT1_FIELDCAT2 TO IT_CT1_FIELDCAT2.
CLEAR ST_CT1_FIELDCAT2.
ENDIF.
ENDFORM. " FIELDCAT_FINAL2
*& Form GET_COMPONENTS1
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS1 .
CLEAR : I_TCATX_GRID1.
REFRESH: I_TCATX_GRID1.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID1
WHERE PROFIL EQ P_PROF1.
ENDFORM. " GET_COMPONENTS1
*& Form GET_COMPONENTS2
text
--> p1 text
<-- p2 text
FORM GET_COMPONENTS2 .
CLEAR : I_TCATX_GRID2.
REFRESH: I_TCATX_GRID2.
SELECT * FROM TCATX_GRID
INTO CORRESPONDING FIELDS OF TABLE I_TCATX_GRID2
WHERE PROFIL EQ P_PROF2.
ENDFORM. " GET_COMPONENTS2
Thanks & Regards,
Nagaraj Kalbavi -
Dump while executing class method whose exporting parameter of type table
hi,
i am getting dump after executing a method in which i want to export an internal table which will hold all the states name along with its code on the basis of the country name which is my importing parameter.
for the above i am using importing parameter named as country of type too5u-land1 and the exporting parameter named as itab of type table and below is my code for the requirement.
method PROCESS.
select BLAND BEZEI from T005U
INTO TABLE ITAB WHERE
LAND1 = COUNTRY.
endmethod.Hi,
Please check the below code
parameters country type land1.
*Refer the class which we are using like below
data: a type ref to ZCL_TX_SERVICE_01.
data itab type ycountry.
*ycountry is a table type defined in dictionary with fields BLAND and BEZEI
data wa like line of itab.
*If we are using instance method we need to create the instance like below
create object a.
*In the method process define exporting parameter itab as type ycountry which is a table type already defined
CALL METHOD a->PROCESS
EXPORTING
COUNTRY = country
IMPORTING
ITAB = itab.
loop at itab into wa.
write:/ wa-bland.
endloop.
Regards
Dande -
Call method cl_crm_documents- create_with_file not creating attachment
Hi,
I am trying to create attachment in a transaction type using cl_crm_documents->create_with_file. But it is not creating the same, instead gives error "Error loading file &".
I am uploading a file with fields object_id, text, file name, description and category.
I have passed the parameters as follows:
data: gref_obj type ref to cl_crm_documents.
create object gref_obj.
gw_prop_attr-name = 'BDS_KEYWORD'.
gw_prop_attr-value = gw_attach-category.
append gw_prop_attr to gt_prop_attr.
gs_business_object-instid = gw_guid-guid.(object guid)
gs_business_object-typeid = gv_object_type.(object type)
gs_business_object-catid = 'BO'.
call method gref_obj->create_with_file
exporting
file_name = gw_attach-f_name (name as provided in my uploaded file, in my case it is test)
directory = p_floder (C:\Attachment\)
properties = gt_prop_attr
business_object = gs_business_object
importing
phio = gs_phio_id
loio = gs_loio_id
error = ls_error.
Please help me on this. I doubt the directory that I am giving is wrong.
Thanks.Hi,
Please go through this...
Re: Problem attach document with the FileUpload UI.
Cheers,
Kris. -
CALL METHOD g_editor- get_text_as_r3table
Hi everyone!!!,
I have some problems with CALL METHOD g_editor->get_text_as_r3table, I can't retrieve the text from my custom editor. Can anyone please help me with this issue?.
DATA: g_mytable(line_length) TYPE c OCCURS 0.
CALL METHOD g_editor->get_text_as_r3table
IMPORTING
table = g_mytable.
CALL METHOD cl_gui_cfw=>flush
EXCEPTIONS
OTHERS = 1.
IF sy-subrc NE 0.
add your handling
ENDIF.
Regards...Check this code...
data:
dockingleft type ref to cl_gui_docking_container,
text_editor type ref to cl_gui_textedit,
repid type syrepid.
data: itext type table of tline-tdline,
xtext type tline-tdline.
parameters: p_check.
at selection-screen output.
repid = sy-repid.
create object dockingleft
exporting repid = repid
dynnr = sy-dynnr
side = dockingleft->dock_at_left
extension = 1070.
create object text_editor
exporting
parent = dockingleft.
xtext = 'http:\\www.sap.com'.
append xtext to itext.
call method text_editor->set_text_as_r3table
exporting
table = itext
exceptions
others = 1.
start-of-selection.
call method text_editor->get_text_as_r3table
importing
table = itext
exceptions
others = 1.
loop at itext into xtext.
write:/ xtext.
endloop.
Kindly stolen from Rich Heilman -;)
Greetings,
Blag. -
In a call method, I can make an IMPORT?
In a call method, I can make an IMPORT?
thanks!!You can import, export parameters using call method.
check out this example.
DATA : w_num1 type i value 5,
w_num3 type i value 7,
w_num4 type i.
CLASS c1 DEFINITION.
PUBLIC SECTION.
METHODS : m1
IMPORTING num1 TYPE i
EXPORTING num4 TYPE i
CHANGING num3 type i.
ENDCLASS.
CLASS c1 IMPLEMENTATION.
method m1.
num3 = num3 * 2.
num4 = ( num1 + num3 ) ** 2.
endmethod.
ENDCLASS.
START-OF-SELECTION.
DATA : oref1 TYPE REF TO c1 .
CREATE OBJECT : oref1.
CALL METHOD oref1->m1 EXPORTING num1 = w_num1
IMPORTING num4 = w_num4
CHANGING num3 = w_num3.
Write:/5 w_num1 , w_num3 , w_num4 .
This might help you.
Regards,
Sailaja. -
I am getting a error while using CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
The error is class "CL_SSF_XSF_UTILITIES is unknown. How to correct that?? please help I am new to object oriented programming??
Edited by: priya singh on Nov 18, 2008 2:14 PMThis is my code.
REPORT ZSAVE_FUNCTION .
D A T A D E C L A R A T I O N S *
DATA: v_bitmap TYPE xstring, "graphic data
v_file TYPE string, "file name
v_length TYPE i. "length of binary file
DATA: BEGIN OF it_bitmaps OCCURS 0,
object TYPE tdobjectgr, "object
name TYPE tdobname, "name
id TYPE tdidgr, "id
tdbtype TYPE tdbtype, "graphic type
END OF it_bitmaps.
DATA: itab TYPE TABLE OF x.
*class cl_ssf_xsf_utilities definition.
public section.
methods : get_bds_graphic_as_bmp
DATA: L_GRAPHIC_XSTR TYPE XSTRING.
*method cl_ssf_xsf_utilities
S E L E C T I O N - S C R E E N *
SELECTION-SCREEN BEGIN OF BLOCK b1 WITH FRAME.
PARAMETERS: p_object TYPE tdobjectgr, "object
p_btype TYPE tdbtype, "graphic type
p_name TYPE tdobname, "name
p_id TYPE tdidgr. "id
SELECTION-SCREEN END OF BLOCK b1.
SELECTION-SCREEN BEGIN OF BLOCK b2 WITH FRAME.
PARAMETERS: p_file TYPE rlgrap-filename. "file name
SELECTION-SCREEN END OF BLOCK b2.
*A T S E L E C T I O N - S C R E E N O N V A L U E - R E Q U E S T *
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_name.
*-- Creating f4 help for the parameters
PERFORM get_f4_object_name.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_file.
*-- Getting the current value entered
PERFORM get_current_value.
*-- Value Request Functionality For Input File Name
PERFORM f4_value_request.
S T A R T O F - S E L E C T I O N *
START-OF-SELECTION.
*--Getting the graphic as a BMP file
PERFORM get_graphic_bmp.
*--Convert the Xstring format to binary format
PERFORM convert_to_binary.
*--Download the graphic
PERFORM download_graphic.
*& Form get_current_value
Get the current file path entered
FORM get_current_value .
DATA: BEGIN OF li_dynp_value_tab OCCURS 0.
INCLUDE STRUCTURE dynpread.
DATA: END OF li_dynp_value_tab.
DATA: l_program_name LIKE d020s-prog,
l_dynpro_number LIKE d020s-dnum.
l_program_name = sy-cprog.
l_dynpro_number = sy-dynnr.
REFRESH li_dynp_value_tab.
li_dynp_value_tab-fieldname = 'P_FILE'.
APPEND li_dynp_value_tab.
CALL FUNCTION 'DYNP_VALUES_READ'
EXPORTING
dyname = l_program_name
dynumb = l_dynpro_number
TABLES
dynpfields = li_dynp_value_tab
EXCEPTIONS
invalid_abapworkarea = 04
invalid_dynprofield = 08
invalid_dynproname = 12
invalid_dynpronummer = 16
invalid_request = 20
no_fielddescription = 24
undefind_error = 28.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
READ TABLE li_dynp_value_tab INDEX 1.
p_file = li_dynp_value_tab-fieldvalue.
ENDFORM. " get_current_value
*& Form f4_value_request
Provinding the f4 for the given path
FORM f4_value_request .
*-- if the file is to be downloaded to presentation server
CALL FUNCTION '/SAPDMC/LSM_F4_FRONTEND_FILE'
EXPORTING
pathname = p_file
CHANGING
pathfile = p_file
EXCEPTIONS
canceled_by_user = 1
system_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE 'S' NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f4_value_request
*& Form GET_GRAPHIC_BMP
Get the graphic as a BMP file
FORM get_graphic_bmp.
CALL METHOD cl_ssf_xsf_utilities=>get_bds_graphic_as_bmp
EXPORTING
p_object = p_object
p_name = p_name
p_id = p_id
p_btype = p_btype
RECEIVING
p_bmp = L_GRAPHIC_XSTR
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " GET_GRAPHIC_BMP
*& Form CONVERT_TO_BINARY
Converting the xstring to binary format
FORM convert_to_binary .
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
buffer = v_bitmap
IMPORTING
output_length = v_length
TABLES
binary_tab = itab.
ENDFORM. " CONVERT_TO_BINARY
*& Form DOWNLOAD_GRAPHIC
Download the graphic
FORM download_graphic .
v_file = p_file.
CONCATENATE p_file '.BMP' INTO v_file.
CALL FUNCTION 'GUI_DOWNLOAD'
EXPORTING
bin_filesize = v_length
filename = v_file
filetype = 'BIN'
TABLES
data_tab = itab
EXCEPTIONS
file_write_error = 1
no_batch = 2
gui_refuse_filetransfer = 3
invalid_type = 4
no_authority = 5
unknown_error = 6
header_not_allowed = 7
separator_not_allowed = 8
filesize_not_allowed = 9
header_too_long = 10
dp_error_create = 11
dp_error_send = 12
dp_error_write = 13
unknown_dp_error = 14
access_denied = 15
dp_out_of_memory = 16
disk_full = 17
dp_timeout = 18
file_not_found = 19
dataprovider_exception = 20
control_flush_error = 21
OTHERS = 22.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " DOWNLOAD_GRAPHIC
*& Form GET_F4_OBJECT_NAME
Get F4 values for object names
FORM get_f4_object_name .
DATA: dynpfld_mapping TYPE STANDARD TABLE OF dselc WITH HEADER LINE,
return_tab TYPE STANDARD TABLE OF ddshretval WITH HEADER LINE.
*--Selecting the values to be provided as f4 help
SELECT tdobject
tdname
tdid
tdbtype
FROM stxbitmaps
INTO TABLE it_bitmaps.
*--To update the values in the remaining fields
dynpfld_mapping-fldname = 'F0001'.
dynpfld_mapping-dyfldname = 'P_OBJECT'.
APPEND dynpfld_mapping.
dynpfld_mapping-fldname = 'F0002'.
dynpfld_mapping-dyfldname = 'P_NAME'.
APPEND dynpfld_mapping.
dynpfld_mapping-fldname = 'F0003'.
dynpfld_mapping-dyfldname = 'P_ID'.
APPEND dynpfld_mapping.
dynpfld_mapping-fldname = 'F0004'.
dynpfld_mapping-dyfldname = 'P_BTYPE'.
APPEND dynpfld_mapping.
*--Providing f4 help with the selected values
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'TDOBNAME'
dynpprog = sy-repid
dynpnr = sy-dynnr
dynprofield = 'P_NAME'
value_org = 'S'
TABLES
value_tab = it_bitmaps
dynpfld_mapping = dynpfld_mapping
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 3.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " GET_F4_OBJECT_NAME -
Call method "cl_alv_table_create= create_dynamic_table"
Hi SDN Community,
Is it possible to create dynamic tables. I tried it by call method "cl_alv_table_create=>create_dynamic_table", but the "new_table" of output parameters is empty after the call is executed.
Please suggest.
Thank You.
Pankaj.Hi Pankaj,
Try the code written below and let me know whether it works?
report z_dynamic_itab_test .
include z_table_fs_top.
include z_table_fs_forms.
initialization.
perform clear_fields.
start-of-selection.
perform fetch_data.
end-of-selection.
*& Include Z_TABLE_FS_TOP
Type Pools *
type-pools: slis,
rsds.
Tables *
tables :sscrfields, "Fields on selection screens
dd03l. "Table Fields
Types *
types: begin of t_dd03l,
tabname like dd03l-tabname, "Table Name
fieldname like dd03l-fieldname, "Field Name
keyflag like dd03l-keyflag, "Key Flag
rollname like dd03l-rollname, "Roll Name
position like dd03l-position, "Position
ddtext(30), "Description
end of t_dd03l.
types : begin of t_fname, "To hold the field names
fld like dd03l-fieldname,
end of t_fname.
Internal Tables *
data : it_dd03l type table of t_dd03l, "To hold the field names of dd03l.
it_flds type table of rsdsfields, "To hold the field names
it_fields type table of dd03l, "To hold the field names
it_cat type table of lvc_s_fcat, "To hold Field Catalog
it_fname type table of t_fname.
Work areas *
data: wa_dd03l like line of it_dd03l, "Workarea for IT_DD03L
wa_flds like line of it_flds, "Workarea for IT_FLDS
wa_fields like line of it_fields, "Workarea for IT_FIELDS
wa_cat like line of it_cat , "Workarea for IT_CAT
wa_fname like line of it_fname. "Workarea for IT_FNAME
*SELECTION SCREEN WITH BLOCK DEFINITION.
selection-screen begin of block b2 with frame title text-004.
parameters: p_tbname type dd03l-tabname.
select-options: s_field for dd03l-fieldname no intervals.
selection-screen end of block b2.
Variables *
data : lv_where type string,
lv_cnt type i value '1',
v_records type i.
data : gv_where_cl(100) type c. "Variable to hold Where clause
data: wa_flname(5) type c.
data: wa_fldcat type lvc_s_fcat.
data: it_fldcat type lvc_t_fcat.
data: it type ref to data.
DECLARATION OF FIELD SYMBOLS :
field-symbols: <fs_table> type table.
field-symbols: <fs_temp> type any,
<fs_final> type any.
*& Include Z_TABLE_FS_FORMS
*& Form clear_fields
To clear all work areas and refresh all internal tables.
form clear_fields .
clear wa_dd03l.
clear wa_flds.
clear wa_fields.
clear wa_cat.
clear wa_fname.
refresh it_dd03l.
refresh it_flds.
refresh it_fields.
refresh it_cat.
refresh it_fname.
endform. " clear_fields
*& Form FETCH_DATA
Fetch data from different tables
form fetch_data .
describe table s_field lines v_records.
Populate it_flds from s_field, to hold the fields to be Selected.
if s_field is not initial.
loop at s_field.
wa_flname = s_field-low.
write: s_field-low.
BUILD FIELD CATALOG FOR ALL FIELDS.
wa_flds-fieldname = wa_flname.
append wa_flds to it_flds.
endloop.
endif.
Populate the Where clause as a string.
if s_where[] is not initial.
loop at s_where.
concatenate lv_where s_where-low into lv_where separated by space.
endloop.
endif.
Populate it_dd03l, to hold the field names from DD03L.
select tabname
fieldname
keyflag
rollname
position
from dd03l
into table it_dd03l
where tabname eq p_tbname
and fieldname ne 'MANDT'.
if sy-subrc = 0.
sort it_dd03l by position.
delete it_dd03l where fieldname cp '.INCLU*'. ""CP = Covers Pattern
endif.
Populate it_fname, with fields which have to be selected (entered in selection).
loop at it_dd03l into wa_dd03l.
Read table it_flds.
read table it_flds into wa_flds with key fieldname = wa_dd03l-fieldname.
if sy-subrc = 0.
Move data from it_dd03l to it_fname
wa_fname-fld = wa_dd03l-fieldname.
append wa_fname to it_fname.
clear wa_fname.
endif.
endloop.
*TO CHECK IF TABLE EXISTS.
call function 'SCPR_DB_TABLE_EXIST'
exporting
tabname = p_tbname
exceptions
tab_dont_exist = 1
others = 2.
if sy-subrc <> 0.
if sy-subrc = 1.
GIVE A POP UP.
call function 'POPUP_TO_DECIDE_INFO'
exporting
textline1 = 'Table Does Not Exist !'
titel = 'Invalid Table Name'
start_column = 25
start_row = 6.
endif.
endif.
SELECT ALL RECORDS FROM DD03L.
select *
into table it_fields
from dd03l
where tabname = p_tbname.
if sy-subrc = 0.
sort it_fields by position.
delete it_fields where fieldname cp '.INCLU*'. "CP = Covers Pattern.
endif.
Populate IT_CAT with fields which are REQUIRED.
Display upto 150 fields only.
loop at it_fields into wa_fields to 150.
Read table it_fname
read table it_fname into wa_fname with key fld = wa_fields-fieldname.
if sy-subrc = 0.
Move data from it_fields
wa_cat-tabname = p_tbname.
wa_cat-fieldname = wa_fields-fieldname.
wa_cat-col_pos = lv_cnt.
wa_cat-inttype = wa_fields-inttype.
wa_cat-datatype = wa_fields-datatype.
wa_cat-intlen = wa_fields-intlen.
wa_cat-seltext = wa_fields-fieldname.
wa_cat-decimals = wa_fields-decimals.
wa_cat-ref_field = wa_fields-fieldname.
wa_cat-ref_table = p_tbname.
append wa_cat to it_cat.
clear wa_cat.
lv_cnt = lv_cnt + 1.
endif.
endloop.
CREATE A DYNAMIC INTERNAL TABLE.
call method cl_alv_table_create=>create_dynamic_table
exporting
it_fieldcatalog = it_cat
importing
ep_table = it.
ASSIGN IT TO <FS>.
assign it->* to <fs_table>.
*Select the data from the table given as input and populate
it into the dynamic internal table created based on the where
condition.
select (it_fname)
from (p_tbname)
into table <fs_table>
where (lv_where).
if sy-subrc <> 0.
message 'No data found' type 'I'.
endif.
*Displaying dynamic internal table .
loop at <fs_table> assigning <fs_temp>.
write:/ <fs_temp> quickinfo 'CONTENTS'.
endloop.
endform. " FETCH_DATA
Best Regards,
Deepa Kulkarni -
I have a program that has several statements starting with this CALL_METHOD_* and then some parameters. Is this the same as PERFORM Z_TEST_1(Para1, para2,etc..).
For example, CALL_METHOD_CHECK_ALL 'DOC_TYPE' DOC_TYPE ZTABLE1-fielda_A.
Where can find source code for these CALL_METHOD statements?
What are the CALL_METHOD statements?The CALL METHOD is a key word for calling the OO methods.
We have global classes (created using SE24 transaction) and local classes (using SE38), which contains the collection of methods and attributes.
The method is a block of code which will have the business logic (like Subroutine as you mentioned) and the attributes are the parameters wherein you will inport/ export the data.
The above said methods in the class will be called using the keyword "CALL METHOD".
Before calling the method, we need to create an Object for the class. (If it is a static class we can call the method using the class name itself)
TYPES: obj1 TYPE REF TO zcl_sample.
CREATE OBJECT obj1
EXPPORTING
IMPORTING
EXCEPTIONS.
(while creating the method, the special method constructor will be called)
After the creation of the method, we need to call the method like the below,
CALL METHOD obj1->add
EXPORTING
IMPORTING
The above method is call as "Instance Method"
Static method does not require any method.
CALL METHOD zcl_sample=>add
Hope you understand.
Rgds,
Benu -
Method, parameters and attributes
Dear SAP friends!
Could anybody explain me how to find possible values of a parameter?
Here is an example:
CALL METHOD o_picture->set_display_mode
EXPORTING
display_mode = cl_gui_picture=>display_fit_center.
Parameter "display_mode" has 4 possible values. The parameter values could be found in Attributes Tab.
But how I can identify that these 4 values are related to "display_mode" parameter?
Let's say I want to use method "set_display_mode" of class "cl_gui_picture".
I go to SE84 and display the class. Then I find the method I want to use and click "parameters". Then I see the parameter "display_mode".
I know that possible values of the parameter could be found in Attributes Tab. But there so many of them...
How do I know which is which? Clicking on "display_mode" doesn't give any information and there is no documentation available in English...
Thanks,
TatyanaYes, this is a little bit tricky at times. But the class, method, attributes are designed to be intuitive, meaning that the wording of the methods and and attributes are described in such a way that it is easy to recoginize what contansts can be used to pass to method calls. Lets take the class CL_GUI_DOCKING_CONTAINER for example. Lets look at the CONSTRUCTOR method and its parameter SIDE. You will see that this parameter is of TYPE I and that it is actually using on of the constants as its default, DOCK_AT_LEFT. So if you go to the attributes tab and look for DOCK_AT_LEFT, you will find other contants that are available to pass to this parameter.
If you are looking for a hard list of values(or constants in attributes tabs) which can be passed to any given parameter of any given method, I do not believe that this functionality exists.
REgards,
Rich Heilman
Regards,
Rich Heilman -
Error calling methods CL_GUI_FRONTEND_SERVICES
Hi all,
I have a requirement in BAPI (integrating solman to portal) to download file from app. server to local directory. I used the below FM to get temp directory of presntation server.
CALL METHOD CL_GUI_FRONTEND_SERVICES=>GET_TEMP_DIRECTORY
CHANGING
TEMP_DIR = LV_TEMP_DIR
EXCEPTIONS
CNTL_ERROR = 1
ERROR_NO_GUI = 2
NOT_SUPPORTED_BY_GUI = 3
others = 4.
CALL METHOD cl_gui_cfw=>flush.
It works fine in R3, but when i called it from portal it shows Access not possible using 'NULL' object reference with a short dump .
st22 shows
Error in ABAP application program.
The current ABAP program "CL_GUI_FRONTEND_SERVICES======CP" had to be
terminated because one of the
statements could not be executed.
This is probably due to an error in the ABAP program.
An exception occurred. This exception is dealt with in more detail belo
. The exception, which is assigned to the class 'CX_SY_REF_IS_INITIAL',
neither
caught nor passed along using a RAISING clause, in the procedure
"GET_TEMP_DIRECTORY" "(METHOD)"
Since the caller of the procedure could not have expected this exceptio
to occur, the running program was terminated.
The reason for the exception is:
Attempt to access a component using 'NULL' object reference (points
to nothing).
An object reference must point to an object (an instance of a class)
before you can use it to access components (variable:
"CL_GUI_FRONTEND_SERVICES=>HANDLE").
Either the reference has not yet been set, or it has been reset to
'NULL' by a CLEAR statement.
When i put external break point and the dump comes during execution of CALL METHOD cl_gui_cfw=>flush.
Is it not possible to use CL_GUI_FRONTEND_SERVICES in RFC ??.
thanks and regards
JijoHi,
the dump is because you cannot use that function from a BSP application, which runs in internet or intranet. The procedure in this case is different:
DATA: flights TYPE flighttab,
flight LIKE LINE OF flights,
appl TYPE string,
filetype TYPE string,
output TYPE string,
output2 TYPE xstring,
response TYPE REF TO if_http_response,
l_len TYPE i,
seatsmax TYPE string,
seatsocc TYPE string.
appl = 'application/msexcel'.
filetype = 'attachment;filename=mi archivo.xls'.
SELECT * FROM sflight
INTO TABLE flights
UP TO 20 ROWS.
LOOP AT flights INTO flight.
seatsmax = flight-seatsmax. CONDENSE seatsmax.
seatsocc = flight-seatsocc. CONDENSE seatsocc.
CONCATENATE output
flight-carrid cl_abap_char_utilities=>horizontal_tab
flight-connid cl_abap_char_utilities=>horizontal_tab
flight-fldate cl_abap_char_utilities=>horizontal_tab
flight-planetype cl_abap_char_utilities=>horizontal_tab
seatsmax cl_abap_char_utilities=>horizontal_tab
seatsocc cl_abap_char_utilities=>horizontal_tab
cl_abap_char_utilities=>cr_lf
INTO output.
ENDLOOP.
response = runtime->server->response.
response->delete_header_field( name = if_http_header_fields=>cache_control ).
response->delete_header_field( name = if_http_header_fields=>expires ).
response->delete_header_field( name = if_http_header_fields=>pragma ).
response->set_header_field( name = if_http_header_fields=>content_type
value = appl ).
response->set_header_field( name = 'content-disposition'
value = filetype ).
CALL FUNCTION 'SCMS_STRING_TO_XSTRING'
EXPORTING
text = output
mimetype = 'text/unicode; charset=utf-16le'
IMPORTING
buffer = output2.
CONCATENATE cl_abap_char_utilities=>byte_order_mark_little
output2 INTO output2 IN BYTE MODE.
l_len = XSTRLEN( output2 ).
response->set_data( data = output2
length = l_len ).
navigation->response_complete( ).
This is the code for downloading an Excel file. -
Legacy C program - new Java GUI and calling methods
Hello,
I am fairly new to these forums. I've been working for a company that has an exsisting program that is a propriotery video-client to a video-server. It is written in C and has DirectX components for the standalone C application and ActiveX components for the Internet Explorer version.
I looked over the source code and found a main() function. Now I am trying to execute that main() fuction through java and jni. I have managed to get a simple HelloWorld program to work but am now stuck.
I would like to do the following.
1. Convert the exsisting code to a C library. I have to use Visual C++ 6.0 to create this project. (There is already an exsisting dsw project file for the video client).
Question: How do I get rid of the main() function and compile correctly in Visual C++?
2. How do I call the library function that I created in the above from a java main() method? What should I use to edit and compile java/c code?
Thank you,
ViralHi,
If you need to have fast results you can try to use the ActiveX with COM bridge like Jawin or JACOb (both at sourceforge) or use Eclipse's SWT that has an activeX support too.
An other alternative is to create a full JNI wrapper to your project.
A1 : Replace the main by DllMain (create a new DLL with msvc++ wizard to see how to create a basic DLL).
A2 : Call all functions exported by DLLs with a free tool like JNative.
--Marc (http://jnative.sf.net) -
CALL METHOD cl_gui_frontend_services= file_save_dialog
Hi,
I want to use 'CALL METHOD cl_gui_frontend_services=>file_save_dialog', to choose a path for saving my txt files. I only want the user to be able to choose the path and not have to supply a filename aswell. My filenames are standard in the program and I don't want them to be changed by the user.
Is there another method which is designed for this or is there a simple parameter I have missed?
Thanks and regards,
Simon.AT SELECTION-SCREEN ON VALUE-REQUEST FOR pa_f.
PERFORM f_search_help_pa_f1.
FORM f_search_help_pa_f1 .
CALL FUNCTION 'KD_GET_FILENAME_ON_F4'
EXPORTING
program_name = sy-repid
dynpro_number = sy-dynnr
CHANGING
file_name = pa_f
EXCEPTIONS
mask_too_long = 1
OTHERS = 2.
IF sy-subrc <> 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
ENDFORM. " f_search_help_pa_f1
Try this
Regards
Maybe you are looking for
-
Difference in performance of SBA between Windows and Unix
Hi, I am using a MSF routine which uses SBA to recursively search a sysbld suprerblock and its children to find a specific type block (in this case a ucb). It works fine on both Windows and Solaris Xmath. However, for very large models, there is a h
-
Possible to Restore iTunes Library from Back-Up Drive?
Hi -- I just want to clarify what I've read on another thread about restoring my library from a backup. I have a machine running XP Pro and I find myself in the unfortunate position of having to reinstall the OS. I regularly back-up my machine to an
-
How to change line color in line graph
Hi, I have one 'on change of' field and has three 'show value' fields. Crystal has assigned default colors for these 3 lines..but i want to assign my own colors..is this possible? and can we adjust the line thickness? I am using crystal 2008 comple
-
I know that iTunes sell 720p HD movies. However, if Apple was to release a firmware update for Apple TV, is the hardware capable of out putting 1080p file? Is it just the file and firmware that restricts FULL HD or is there a limitation with the hard
-
EAS not running on Oracle Application Server, Oracle Enterprise Linux
Okay, another question. EAS is up and running on Oracle Application Server, but the URL is unresponsive. In the eas log file, I see Exception message (Oct 25, 2009 11:33:03 AM): no environmentjni in java.library.path java.lang.UnsatisfiedLinkError: n