CALL METHOD api- mo_core_service- update
Hi All,
I am unable to update the records using this method api->mo_core_service->update . I am getting this error " Server return code 0x84000000: DCNI_MSG_OutOfDate " . I am using MDM5.5 SP06 Patch 4, Server Build 5.5.64.71 - 5.5.64.xx this patch .
We have installed new patch in the last week from that time we are getting this error.
Do i need install the new patch ? or in this patch wont support the method?
please let me know ASAP.
Hi NandKumar,
You are right, while assigning attributes to categories in Taxonomy, when i try cl_mdm_generic_api->mo_core_service->Assign i m facing the same issue. Moreover, when i create Attributes values, i am not able to confirm this behaviour of the API, eg when i create new Atrribute Say "Attribute 2" having Text values say 'Name3' and 'Name4' then what should be the value for ls_feature_domain-value_id-id = ?. if i give '-1' then 'Name1' and 'Name2' values of Attribute1 comes automatically for Attribute2, i.e. Attribute2 having four text values i.e 'Name1' , 'Name2', 'Name3' and 'Name4' . but when i give any other value say '-2' it is not taking and throwing Runtime Unknown Exceptionall error.
Any suggestion will be appreciated.
Thanks in Advance.
Edited by: Mandy on Apr 21, 2008 4:35 PM
Edited by: Mandy on Apr 21, 2008 4:38 PM
Similar Messages
-
Calling administration api method
iS IT POSSIBLE TO CALL ADMINISTRATION API METHODS SUCH AS GETSERVERSTATS() etc from server side code....
I'm still facing problem,,
i need to check the uptime and the number of users connected to the remote server..
this is my code
application.onConnect = function(client,name)
nc_poll=new NetConnection();
nc_poll.connect("rtmp://abcd.com:1111/admin","usrnmame","password");
function onGetServerStats(result)
var dataobj=result.data;
trace("on getserver");
trace(dataobj.up_time);
trace(result.level);
nc_poll.call("getServerStats",new onGetServerStats);
// im getting the ongetserver log in the log but the other traced values..
its showing that
"result has no properties" -
Hi guys,
I’m trying to use Java API to update ASO cube from Planning forms. So there are several steps:
1. Planning form passes variables to HBR
2. HBR passes variables and calls Java CDF
3. CDF performs some operations and uses JAPI classes to update ASO cube.
When I run CDF as runtime command or from JDeveloper/Netbeans if works fine. When I run CDF from HBR but do not use JAVA API methods it works too. But when I call CDF from HBR AND use JAPI methods it doesn’t execute JAPI methods. I do not receive any error; methods that use JAPI methods are simply not executed.
Any ideas why it happens?
Thanks,
DmitryHi,
Have you tried running it from an essbase calc script first and run the essbase server in the foreground (not as a service if you are on windows) then if you have any System.out.prints on errors or in your code they should be outputted to the window.
It usually easier to get it running from a calc script first because you sometimes get better messaging than business rules.
Cheers
John
http://john-goodwin.blogspot.com/ -
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 -
Use of APIs to update Absence info in Oracle HR/SSHR 11i
Dear all,
Use of APIs and Absences
1. Can you please let me know which are the relevant APIs to update Absences Information into Oracle Human Resources Application?
2. Where can I find relevant documentation on how to deploy these APIs?
Thanking you in advance for your feedback
Best regards
ElenaHi Elena,
You may find a list of the APIs in HRMS on Metalink. Just query for "APIs in HRMS". For absences you may use the following APIs: hr_absence_type_api, hr_person_absence_api
You may create a PL/SQL program to use these APIs or alternatively use web ADI to create upload integrators. You may have to write a custom wrapper before calling these APIs if required.
- Vikram -
Anybody has experience calling ID API web service in Java
Hello,
as you know we can programmatically update ID objects by call ID APIs (web service). To do that you need to import the wsdl into a java project, generate web service client and call the client to update ID objects.
I've tried this in NWDS CE version. However I got error when generating web service client from the wsdl of the ID web service. Only the BusinessComponentService passed the ws client genertion, the rest web services do not work.
The error I got:
IWAB0399E Error in generating Java from WSDL: java.lang.NullPointerException
java.lang.NullPointerException
at org.apache.axis.wsdl.toJava.JavaInterfaceWriter.writeOperation(JavaInterfaceWriter.java:126)
Anybody has experience with ID API?
Thanks
JaysonHI Jayson,
you can also request the web service directly.
For example, you could create a local xml file with the values you want to pass to the web service and configure a file 2 soap scenario within XI itself.
You can create interfaces for each available web service.
You could call this scenario "ID objects generator" or something and save the .tpz for the repository objects of this scenario, since you could reuse it in other projects.
Other than that, in Teched '08, Bill Li showed a lot of proxies developed over Java to consume the ID API web services, and they all seemed to work ok. However I do think he used NW Developers Studio 7.0 (2004s), not CE.
I'd raise an OSS msg with SAP in order to check the problem you're getting.
Regards,
Henrique. -
Calling Java APIs from Adobe AIR Front End
HI ,
I have developed an desktop application entirely in java.
Currently it is console based, but i am planning to have a UI for the same in Adobe Flex.
I wanted to know how do I communicate between the two, ie call methods that are defined in my java classes from AIR and return results to Adobe AIR.
There is no server involved.
I want to keep Adobe AIR as front end and Java as back end which will take care of the business logic .
Thanks and Regards,
SantoshiThe best way is probably to use the NativeProcess APIs available in AIR 2 (now in Beta).
Next, would be to use sockets to communicate between the two processes. In AIR 1.5, it is difficult to guarantee that both processes are running, at least when controlling thins from the AIR side rather than the Java side. In AIR 2, you can start other processes, so this is also easier.
There are some 3rd party tools, like Merapi, that help you pass objects between Java and AIR, too. -
Calling method of a custom infotype from ABAP
Hi Experts,
I am working on an application where i need to call a method of a custom defined infotype.
I have done this -->
1. Create a custom infotype 9111
2. SAP creates a class of that infotype ZCL_HRPA_INFOTYPE_9111
3. Inside this method there are few inherited method which provide me functionality of insert , update , delete
i want to call methods IF_HRPA_INFTY_BL~MODIFY,
IF_HRPA_INFTY_BL~INSERT
However when i call these method from abap report this method does not work.
where as when i try to insert an entry using PA30 transaction it works.
Does anyone know why does this happen and what is the solution?
Regards,
Ashish ShahHad the same problem (probably copied from the same program). The answer is that you need to commit the work at the end using something like
* Commit
CALL METHOD busilog->flush
EXPORTING
no_commit = space.
Here is an example of my code for IT0002 which works.
*& Report Z_TEST2
REPORT z_test2.
DATA: a_masterdata_bl TYPE REF TO if_hrpa_masterdata_bl,
p0002 TYPE p0002,
lo_0002 TYPE REF TO cl_hrpa_infotype_0002,
ls_p0002_ref TYPE REF TO data,
container_tab TYPE hrpad_infty_container_tab,
container TYPE REF TO if_hrpa_infty_container,
message_handler TYPE REF TO cl_hrpa_message_list,
infotype_logic TYPE REF TO if_hrpa_infty_bl,
update_mode TYPE hrpad_update_mode VALUE 'XXX',
lt_0002_container TYPE REF TO cl_hrpa_infotype_container,
key TYPE pskey,
l_is_ok TYPE boole_d.
FIELD-SYMBOLS <p0002> TYPE p0002.
* get business logic from masterdata factory
CALL METHOD cl_hrpa_masterdata_factory=>get_business_logic
IMPORTING
business_logic = a_masterdata_bl.
* CATCH cx_hrpa_violated_assertion .
*ENDTRY.
*TRY.
CALL METHOD a_masterdata_bl->read
EXPORTING
tclas = 'A'
pernr = '508'
infty = '0002'
begda = sy-datum
endda = sy-datum
no_auth_check = 'X'
message_handler = message_handler
IMPORTING
container_tab = container_tab
is_ok = l_is_ok
* CATCH cx_hrpa_violated_assertion .
*ENDTRY.
READ TABLE container_tab INTO container INDEX 1.
lt_0002_container ?= container.
TRY.
CALL METHOD lt_0002_container->primary_record_ref
IMPORTING
pnnnn_ref = ls_p0002_ref.
CATCH cx_hrpa_violated_assertion.
ENDTRY.
ASSIGN ls_p0002_ref->* TO <p0002>.
MOVE-CORRESPONDING <p0002> TO key.
break stantric.
<p0002>-vorna = 'Rick'.
container ?= lt_0002_container->modify_primary_record( <p0002> ).
TRY.
CREATE OBJECT lo_0002
EXPORTING
tclas = 'A'
infty = '0002'.
CATCH cx_hrpa_violated_assertion .
ENDTRY.
CREATE OBJECT message_handler.
TRY.
CALL METHOD lo_0002->get_specific_bl
EXPORTING
versionid = '01'
tclas = 'A'
pskey = key
IMPORTING
infotype_logic = infotype_logic.
CATCH cx_hrpa_violated_assertion .
ENDTRY.
TRY.
CALL METHOD infotype_logic->modify
EXPORTING
old_container = lt_0002_container
massn = space
massg = space
update_mode = update_mode
no_auth_check = 'X'
message_handler = message_handler
IMPORTING
is_ok = l_is_ok
CHANGING
container = container.
CATCH cx_hrpa_violated_assertion .
ENDTRY.
* Commit
CALL METHOD a_masterdata_bl->flush
EXPORTING
no_commit = space. -
How to call Java API from BSP?
I have a requirement to call Java API from BSP application.
I have checked the forum and found that it is possible by using some ABAP codes.
However there is no pointer on how this is done.
Can someone explain the details on how to call Java API from BSP is done?
I found class CL_EJB_JAVA_OBJECT_METHODS to call a method in EJB but can't find function or SAP class to call Java API.
Actually is there any BSP extention which can used to call Java API?
Thanks,
Hendricheck out these weblogs, it should give you an idea how to go about it.
/people/ignacio.hernndez/blog/2006/12/04/speech-synthesis-listen-the-application-server-is-talking-to-you
/people/puru.govind/blog/2006/12/20/let-abap-speak
Regards
Raja -
Oop report programme: call method
hi, i need ur guys advice about my oop report. its contain 2 class, lcl_main (main programme), lcl_disp(display report), lcl_update (upload report). all 3 class defination as below:
* C.L.A.S.S D.E.F.I.N.I.T.I.O.N
class lcl_main definition.
public section.
methods: init,
get_filename,
load_data,
chk_col,
chk_data,
chk_mandatory,
disp_status.
endclass.
class lcl_disp definition inheriting from lcl_main.
public section.
methods: chk_9700,
disp_success.
endclass.
class lcl_update definition inheriting from lcl_main.
public section.
methods: update9700.
endclass.
the idea was, i planned to put all methods which will be access by lcl_disp and lcl_update into lcl_main. i currently cofious to call method at lcl_main. currently i done as below, which if want to display (user will choose radio button display - p_view) i will create the object for lcl_disp and call all method in lcl_main and lcl_disp , for example o_disp-> init ... o_disp->loaddata .. and etc. the problem was if i want to choose the update , i need to object for lcl_update and call again the lcl_main with: o_update-> init ... o_update->loaddata .. and etc. the code as below.
the question , the programme can be successfully run with this method but i faced the problem when i tried to create a call method inside others method because at the START-OF-SELECTION i need to identify with object (lcl_disp or lcl_update) first.
2nd, i tried to figure out how at the start-of-selection , i no need to repeat to call method init, loaddata repeatly for different class (lcl_disp and lcl_update). really need advice. thank you.
*---------------------------------------------------------------------|
* INITIALIZATION |
*---------------------------------------------------------------------|
initialization.
data: o_main type ref to lcl_main.
create object: o_main.
* START OF SELECTION *
start-of-selection.
data: o_disp type ref to lcl_disp,
o_update type ref to lcl_update.
create object: o_disp, o_update.
if p_view = 'X'. "for view report
set handler o_handler->handle_event for all instances.
call method o_disp->init.
call method o_disp->load_data.
call method o_disp->chk_col.
"only proceeed if initial - col header and pernr syntax (pre 100 and length = 8)
if o_disp->status = 0.
call method o_disp->chk_data.
endif.
if o_disp->status = 0.
call method o_disp->chk_mandatory.
endif.
if o_disp->status = 0.
call method o_disp->chk_9700.
endif.
call method o_disp->disp_status.
elseif p_upld = 'X'."for update report
set handler o_handler->handle_event for all instances.
call method o_update->init.
call method o_update->load_data.
call method o_update->chk_col.
"only proceeed if initial - col header and pernr syntax (pre 100 and length = 8)
if o_update->status = 0.
call method o_update->chk_data.
endif.
if o_update->status = 0.
call method o_update->update9700.
endif.
call method o_update->disp_status.
endif.
class lcl_main implementation.
method get_filename.
endmethod.
method init.
endmethod.
method load_data.
endmethod.
method chk_col.
endmethod.
method chk_data.
endmethod.
method chk_mandatory.
endmethod.
method disp_status.
endmethod.
endclass.
class lcl_disp implementation.
method chk_9700.
endmethod.
method disp_success.
endclass.
class lcl_update implementation.
method update9700.
endmethod.
endclass.
Edited by: firdaus hashim on Nov 23, 2009 11:01 AMHello Sam,
Go to the class CL_DD_DOCUMENT (trxn SE24).
In the 'Attributes' tab, check for the attributes with SDYDO_ATTRIBUTE as the associated type.
It gives all the available attributes.
BR,
Suhas -
Re: Calling Windows API from Tool
Hi,
If it's only for the UserName on NT you can get the environment variable
USERNAME.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
Url : http://perso.club-internet.fr/dnguyen/
Tim Sawyer a écrit:
Hi George,
I think you need to find out which Windows DLL implements the function and
then wrapper it, using Forté's C Wrappering technique. I'm going to be
doing this for the GetUserName() function, so we can login to our
application automatically, using the username that the user logged into NT
with.
Hope this helps!
Tim Sawyer
PanCredit
Leeds, UK.
From: Aberdour George <[email protected]>
Date: Thu, 6 May 1999 09:08:03 +1000
Subject: Calling Windows API from Tool
Hi,
Does anyone know how to call Windows API calls such as WinExec,
CreateProcess, RegSetValue, etc directly from TOOL ?
These are just examples calls. I know some Windows API calls can be called
via equivalent OperatingSystem method calls, but I would really like toknow
if it is possible to call Windows API routines directly.
Thanks in advance,
George Aberdour
TAFE NSW-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>I'm afraid we have to make it work for NT, 95 and probably 98 too, so we're
looking for something a bit more robust than the environment variable.
Thanks,
Tim Sawyer
PanCredit
Leeds, UK.
From: Daniel Nguyen[SMTP:[email protected]]
Reply To: [email protected]
Sent: 07 May 1999 20:40
To: Tim Sawyer
Cc: '[email protected]'; '[email protected]'
Subject: Re: Calling Windows API from Tool
Hi,
If it's only for the UserName on NT you can get the environment variable
USERNAME.
Hope this helps,
Daniel Nguyen
Freelance Forte Consultant
Url : http://perso.club-internet.fr/dnguyen/
Tim Sawyer a écrit:
Hi George,
I think you need to find out which Windows DLL implements the functionand
then wrapper it, using Forté's C Wrappering technique. I'm going to be
doing this for the GetUserName() function, so we can login to our
application automatically, using the username that the user logged intoNT
with.
Hope this helps!
Tim Sawyer
PanCredit
Leeds, UK.
From: Aberdour George <[email protected]>
Date: Thu, 6 May 1999 09:08:03 +1000
Subject: Calling Windows API from Tool
Hi,
Does anyone know how to call Windows API calls such as WinExec,
CreateProcess, RegSetValue, etc directly from TOOL ?
These are just examples calls. I know some Windows API calls can be
called
via equivalent OperatingSystem method calls, but I would really like toknow
if it is possible to call Windows API routines directly.
Thanks in advance,
George Aberdour
TAFE NSW-
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/>
To unsubscribe, email '[email protected]' with
'unsubscribe forte-users' as the body of the message.
Searchable thread archive <URL:http://pinehurst.sageit.com/listarchive/> -
How to call remote API from root SharePoint 2013 domain (not an app)
I'm trying to follow the article
http://msdn.microsoft.com/en-us/library/office/fp179895%28v=office.15%29.aspx
For a SharePoint 2013 hosted under O365, do I need to create an app to use the SP.* methods in sp.js? I need to call a remote API from the root domain (https://mycompany.sharepoint.com). But the app, as mentioned in the article
above, deploys on a whole different URL (https://mycompany-a2d3f4t454.sharepoint.com).
I need to be able to call the API from pages like https://mycompany.sharepoint.com/pages/default.aspx. Is this not possible?Hi,
According to your description, my understanding is that you want to call remote API from the root domain site.
Yes, you can use SharePoint hosted app to achieve it. SharePoint hosted app has app web and host web, you can create an app to call the remote api in the host web from app web.
Here are some detailed articles for your reference:
http://blog.ctp.com/2014/06/23/data-access-in-sharepoint-hosted-apps/
http://msdn.microsoft.com/en-us/library/office/fp179925(v=office.15).aspx
Best Regards
Zhengyu Guo
TechNet Community Support -
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 -
EAP Peer Method API & Windows 8 issue
We're using EAP Peer Method API in our project. Everything
works fine on Vista and Windows 7 but Windows 8 is giving us some troubles.
Our project uses native Windows WLAN API to start connection to 802.1x protected WiFi AP. For authentication we're using our implementation of EAP method (registered using regsvr32).
Regardless of OS, setting (proper) user credentials before starting connection will result in successful connection. Problem happens when user credentials are either not set or are wrong (like wrong password).
On Vista/Win7, you'd get a popup balloon, like on picture below, and clicking it would make EAP Host call one of functions in our EAP dll, allowing us to display dialog asking user for credentials. But on Win8, there is no popup balloon and our function doesn't
get called. That locks us out of certain usage scenarios we've supported thus far.
Function that I mentioned is 'EapPeerInvokeIdentityUI'
and it is being called on Vista/Win7.
If you need more detailed info, I'll list function
our EAP dll exports:
DllRegisterServer
DllUnregisterServer
EapPeerFreeErrorMemory
EapPeerGetInfo
EapPeerInvokeConfigUI
EapPeerConfigXml2Blob
EapPeerCredentialsXml2Blob
EapPeerConfigBlob2Xml
EapPeerInvokeInteractiveUI
EapPeerInvokeIdentityUI
EapPeerFreeMemory
EapPeerQueryCredentialInputFields
EapPeerQueryUserBlobFromCredentialInputFields
EapPeerQueryInteractiveUIInputFields
EapPeerQueryUIBlobFromInteractiveUIInputFields
We've been doing some research and noticed that Win8's native EAP methods do show dialog to user when password is wrong, therefore we looked into related dll's exported functions and found one that seem interesting - 'EapPeerGetIdentityPageGuid'. We didn't
find any documentation on that function though, not even function signature, so we couldn't do much with it but we suspect it might be called instead of 'EapPeerInvokeIdentityUI' on Windows 8. If we guessed right, some information about 'EapPeerGetIdentityPageGuid'
and related functions would be great, otherwise any help about new Windows 8 behavior would be appreciated.Hi Ethann,
Just a reminder for the above query.
Looks like this is the limitation in Windows 8 where the 802.1x security prompts are integrated into network pane. Here is the link which gives a brief info on changes from win 7 to 8.
http://www.windowsnetworking.com/articles-tutorials/wireless-networking/wireless-changes-windows-81-and-server-2012-r2.html
We are planning to implement a minimal supplicant which takes care of 802.1x authentication. So that we have full control on authentication. Is this
the only possible way?
Hope you have resolved this issue. Your help will reduce our dev effort. Please guide me to troubleshoot this issue.
Thanks -
Calling method from SWF file wtih javascript, when swf file is not loaded in any browser
Hi There,
I have a question regarding flex and javascript integration:
1. We have created certain components and bundle them in swf. these swf file uses webservice to connect to backend code written in java.
2. We have deployed swf file and backend on the same tomcat server.
3. Backend server send some datapoint to UI and plot graph and displyaed to user.
4. Now if user generate graph from datapoint and want to export it, we are tranferring image of that graph from UI to backend. No issues in this process.
5. Now the question is. let say user has not open any swf file in browser and backend scheduling job want to generate the graph. How we will connect to swf file.
6. Is ther any way we can connect or call method of swf from java/jsp/html/javascript code in this scenario without loading swf file in browser??
Please help me!!!
Thanks
Sonu KumarBoth test sites work just fine for me.
The "Update plugin" message is exactly what would be displayed if no .swfobject file at all was found... so it may not be the "version11" thing but rather, perhaps something else is messed up with the .swfobject file.
File can be found in both folders:
http://www.pureimaginationcakes.com/test/Scripts/swfobject_modified.js
http://www.pureimaginationcakes.com/Scripts/swfobject_modified.js
and file does download when downloading the html page (just check the cache).... but for some reason it doesn't seem to be working.... Hummmmm????
Adninjastrator
Maybe you are looking for
-
How to get report for cost estimates material cost only
Hi Gurus, We have requirement in sales order costing that we need to develope report which shows only Material cost for all BOM levels. Normally at lower levels cost of Material and activity cost will be treated as Material cost for next level. Here
-
Dear all, I have trouble to connect em console to database instance. My database is 11.2.0.3 and before this I did the patching from version 11.2.0.1, and now i cannot get fully functionality of em console. error is: Enterprise Manager is not able to
-
How do I resize photos in iPhoto using automator, I haven't been able to do
Hi all, was in Sydney and took over 200 pics there 8.0 megapixels each. it takes forever to send them via ichat and would like to downsize them to 5.1 or 5.0. how do i go about getting them all downsized? Thanks all
-
Backing up a *single* 10TB datafile
What are some best practices for this scenario? How can I get multiple channels/threads to attack this datafile? Backing up via a single channel seems like a waste of time and underutilizing the resources. It seems PARALLELISM only creates multiple t
-
How do I get rid of Firefox4 and return to previous?
I want to uninstall Firefox 4 and return to Firefox 3