ALV Edit in place.
Hi
I want to have the "Edit in place" functionality in an ALV. Do you have an URL or example of how to do this?
Thanx in advance
Hi,
When we using REUSE_ALV_GRID_DISPLAY
Most of us are facing Problem in ALV GRID if there is any editable field in the grid,When we edit the field in the GRID, its not getting reflected in the internal table
Do like this..
Write this code in the callback subroutine (eg: in USER_COMMAND subroutine),
Data ref1 type ref to cl_gui_alv_grid.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
E_GRID = ref1.
call method ref1->check_changed_data
Pls do give points ,if this will solve your problem
Cheers,
Pramod
Similar Messages
-
Send sample prg for alv editable from ztable
Hi ,
Need of prg for alv editable . get data from ztable in standard tool bar i need to create record insert ,delete ,modify existing records .
Thanks in advance.
Regarding,
kumarHi Anil,
> Try like this code i wrote this code for fetch some records from database table and approve/ reject
> the records by clicking buttons.
REPORT zcl_timesheet_approval MESSAGE-ID zcl_msg.
CLASS L_CL_EVENTS DEFINITION *
Class for inserting buttons on the toolbar *
CLASS l_cl_events DEFINITION.
PUBLIC SECTION.
METHODS:
toolbar FOR EVENT toolbar
OF cl_gui_alv_grid
IMPORTING e_object
e_interactive,
user_command FOR EVENT user_command
OF cl_gui_alv_grid
IMPORTING e_ucomm .
ENDCLASS. " L_CL_EVENTS DEFINITION
CLASS L_CL_EVENTS IMPLEMENTATION *
Implementation of class L_CL_EVENTS *
CLASS l_cl_events IMPLEMENTATION.
METHOD toolbar.
PERFORM event_toolbar USING e_object.
ENDMETHOD. " TOOLBAR
METHOD user_command.
PERFORM event_ucomm USING e_ucomm.
ENDMETHOD. " USER_COMMAND
ENDCLASS. " L_CL_EVENTS IMPLEMENTATION
Tables decalration..................................................
TABLES:
zcl_timesheet. " Employee master table
CONSTANTS:
c_boolean_yes(1) TYPE c " Boolean - yes
VALUE 'X',
c_approve_status(1) TYPE c " Approval status
VALUE 'A',
c_rej_status(1) TYPE c " Rejected status
VALUE 'R',
c_save_status(1) TYPE c " Save status
VALUE 'S',
c_fcode_approve(7) TYPE c " Function code - APPROVE
VALUE 'APPROVE',
c_fcode_rej(6) TYPE c " Function code - REJECT
VALUE 'REJECT',
c_fcode_back(4) TYPE c " Function code - BACK
VALUE 'BACK',
c_fcode_onli(4) TYPE c " Function code - EXECUTE
VALUE 'ONLI',
c_fcode_exit(4) TYPE c " Function code - EXIT
VALUE 'EXIT',
c_fcode_cancel(6) TYPE c " Function code - CANCEL
VALUE 'CANCEL',
c_zero(1) TYPE c " Constant value 0
VALUE '0',
c_alv_scr(7) TYPE c " GUI status : ALV screen
VALUE 'ALV_SCR'.
Type definition...................................................
Type definition of the structure to hold data from table *
zcl_timesheet. *
TYPES:
BEGIN OF type_s_time,
empid TYPE zcl_timesheet-empid,
" Employee ID
workdate TYPE zcl_timesheet-workdate,
" Date
groupid TYPE zcl_timesheet-groupid,
" Group ID
projectid TYPE zcl_timesheet-projectid,
" Project ID
projectname TYPE zcl_timesheet-projectname,
" Project name
objectid TYPE zcl_timesheet-objectid,
" Object ID
objectname TYPE zcl_timesheet-objectname,
" Object name
activityid TYPE zcl_timesheet-activityid,
" Activity ID
activityname TYPE zcl_timesheet-activityname,
" Activity name
timeworked TYPE zcl_timesheet-timeworked,
" Time spent on work
description TYPE zcl_timesheet-description,
" Description
taskstatus TYPE zcl_timesheet-taskstatus,
" Status of the proj
billstatus TYPE zcl_timesheet-billstatus,
" Billing status
appstatus TYPE zcl_timesheet-appstatus,
" Staus of the record
wstatus TYPE zcl_timesheet-wstatus,
" Working status
mngcomment TYPE zcl_timesheet-mngcomment,
" Managers comment
END OF type_s_time.
Field-string declarations...........................................
DATA:
Field-string to build fieldcat.
fs_fcat TYPE lvc_s_fcat,
Field-string for t_timesheet
fs_timesheet TYPE zcl_timesheet.
Working variables...................................................
DATA:
w_valid(1) TYPE c, " To get the flag from check_data
w_display(1) TYPE c, " Flag to display all records
ok_code TYPE syst-ucomm, " Function code on dialog screens
w_okcode TYPE syst-ucomm, " Temporary function code
w_first(1) TYPE c, " To place buttons for first time
w_submit(1) TYPE c, " Flag to display submitted records
w_empid TYPE zcl_emprecord-empid.
" Employee ID for GET parameter
Internal table declarations........................................
DATA:
Internal table to build fieldcat.
t_fcat TYPE lvc_t_fcat,
Internal table to display data.
t_time TYPE TABLE OF type_s_time,
Internal table to hold submitted data.
t_timesheet TYPE TABLE OF zcl_timesheet.
For ALV ...........................................................
DATA:
To create instance for cl_gui_custom_container
g_grid TYPE REF TO cl_gui_custom_container,
To create instance for cl_gui_alv_grid
g_alv TYPE REF TO cl_gui_alv_grid,
To create instance for l_cl_events
g_events TYPE REF TO l_cl_events,
To assign name for custom container
g_container TYPE scrfname VALUE 'CONTAINER',
To assign layout
g_fcatlayo TYPE lvc_s_layo.
Selection screen elements............................................
SELECTION-SCREEN BEGIN OF BLOCK blck WITH FRAME TITLE text-000.
SELECT-OPTIONS:
s_group FOR zcl_timesheet-groupid " Group ID
NO INTERVALS,
s_prjid FOR zcl_timesheet-projectid, " Project ID
s_empid FOR zcl_timesheet-empid, " Employee ID
s_date FOR zcl_timesheet-workdate. " Date
SELECTION-SCREEN END OF BLOCK blck.
SELECTION-SCREEN BEGIN OF BLOCK blck1 WITH FRAME TITLE text-015.
PARAMETERS:
p_app RADIOBUTTON GROUP g1 USER-COMMAND app ,
" To approve timesheet
p_disp RADIOBUTTON GROUP g1. " To display timesheet
SELECTION-SCREEN END OF BLOCK blck1.
AT SELECTION-SCREEN EVENT *
AT SELECTION-SCREEN.
To perform user actions on the selection screen
PERFORM user_command.
MODULE STATUS_0100 OUTPUT *
This module will create the objects for the instance and display *
the records *
MODULE status_0100 OUTPUT.
SET PF-STATUS c_alv_scr.
PERFORM set_titlebar USING w_display.
If program executed in foreground.
IF sy-batch IS INITIAL.
If g_grid is empty.
IF g_grid IS INITIAL.
To create object for instance grid
CREATE OBJECT g_grid
EXPORTING
container_name = g_container.
To create object for object grid
CREATE OBJECT g_alv
EXPORTING
i_parent = g_grid.
ELSE.
CALL METHOD g_alv->refresh_table_display.
ENDIF. " IF G_GRID IS INITIAL
ENDIF. " IF SY-BATCH IS INITIAL
REFRESH t_fcat.
If w_display eq 'X' .
IF w_display EQ c_boolean_yes.
To display all records except saved data
PERFORM display_allrecords.
ENDIF. " IF W_FLAG EQ C_BOOLEAN_YES
IF w_submit EQ c_boolean_yes.
To display submitted records
PERFORM submitted_records.
ENDIF. " IF W_SUBMIT EQ C_BOOLEAN_YES
ENDMODULE. " STATUS_0100 OUTPUT
MODULE USER_COMMAND_0100 INPUT *
To perform user actions in the screen 100 *
MODULE user_command_0100 INPUT.
To update the data in the ALV grid
PERFORM check_changed_data.
w_okcode = ok_code.
CLEAR ok_code.
CASE w_okcode.
WHEN c_fcode_back.
LEAVE TO SCREEN 0.
WHEN c_fcode_exit OR c_fcode_cancel.
LEAVE PROGRAM.
ENDCASE. " CASE W_OKCODE
ENDMODULE. " USER_COMMAND_0100
FORM GET_DATA *
To get the submitted data from zcl_timesheet *
No parameters are passsed to this subroutine *
FORM get_data .
SELECT *
FROM zcl_timesheet
INTO TABLE t_timesheet
WHERE empid IN s_empid
AND workdate IN s_date
AND groupid IN s_group
AND projectid IN s_prjid
AND appstatus EQ c_boolean_yes.
IF sy-subrc NE 0.
MESSAGE e000 .
ELSE.
CALL SCREEN 100.
ENDIF. " IF SY-SUBRC NE 0
ENDFORM. " GET_DATA
FORM BUILD_FCAT *
To build the field catalog giving managers comment in editable mode *
-->PR_Tabname type lvc_tname *
-->PR_Fieldname type lvc_fname *
-->PR_Coltext type lvc_txtcol *
-->PR_Colpos type lvc_colpos *
FORM build_fcat USING pr_tabname TYPE lvc_tname
pr_fieldname TYPE lvc_fname
pr_coltext TYPE lvc_txtcol
pr_colpos TYPE lvc_colpos.
CLEAR fs_fcat.
fs_fcat-tabname = pr_tabname.
fs_fcat-fieldname = pr_fieldname.
fs_fcat-coltext = pr_coltext.
fs_fcat-col_pos = pr_colpos.
IF fs_fcat-fieldname EQ 'MNGCOMMENT'.
fs_fcat-edit = c_boolean_yes.
fs_fcat-lowercase = c_boolean_yes.
fs_fcat-dd_outlen = 60.
ELSE.
fs_fcat-edit = space.
ENDIF. " IF FS_FCAT-FIELDNAME...
APPEND fs_fcat TO t_fcat.
ENDFORM. " BUILD_FCAT
FORM BUILD_FCATD *
To build fieldcatalog in the display mode *
-->pr_Tabname type lvc_tname *
-->pr_Fieldname type lvc_fname *
-->pr_Coltext type lvc_txtcol *
-->pr_Colpos type lvc_colpos *
FORM build_fcatd USING pr_tabname TYPE lvc_tname
pr_fieldname TYPE lvc_fname
pr_coltext TYPE lvc_txtcol
pr_colpos TYPE lvc_colpos .
CLEAR fs_fcat.
fs_fcat-tabname = pr_tabname.
fs_fcat-fieldname = pr_fieldname.
fs_fcat-coltext = pr_coltext.
fs_fcat-col_pos = pr_colpos.
fs_fcat-edit = space.
APPEND fs_fcat TO t_fcat.
ENDFORM. " BUILD_FCATD
FORM ALV_DISPLAY *
To display data in ALV *
--> pr_table type standard table *
--> pr_fcat type lvc_t_fcat *
FORM alv_display USING pr_table TYPE STANDARD TABLE
pr_fcat TYPE lvc_t_fcat .
Local data declaration....
DATA: lt_exclude TYPE ui_functions.
To exclude buttons on the ALV grid
PERFORM exclude_tb_functions CHANGING lt_exclude.
To display ALV
CALL METHOD g_alv->set_table_for_first_display
EXPORTING
i_default = space
is_layout = g_fcatlayo
it_toolbar_excluding = lt_exclude
CHANGING
it_outtab = pr_table[]
it_fieldcatalog = pr_fcat[].
ENDFORM. " ALV_DISPLAY
FORM EVENT_TOOLBAR *
Setting toolbar in the alv grid *
-->E_OBJECT TYPE REF TO CL_ALV_EVENT_TOOLBAR_SET *
FORM event_toolbar USING e_object
TYPE REF TO cl_alv_event_toolbar_set.
Local declaration for the button.
DATA: ls_toolbar TYPE stb_button.
To add Approve button
ls_toolbar-function = c_fcode_approve.
ls_toolbar-butn_type = c_zero.
ls_toolbar-text = text-001.
APPEND ls_toolbar TO e_object->mt_toolbar.
To add Reject button
CLEAR ls_toolbar.
ls_toolbar-function = c_fcode_rej.
ls_toolbar-butn_type = c_zero.
ls_toolbar-text = text-013.
APPEND ls_toolbar TO e_object->mt_toolbar.
ENDFORM. " EVENT_TOOLBAR
FORM EXCLUDE_TB_FUNCTIONS *
To exclude buttons from ALV grid *
<--> PR_EXCLUDE TYPE UI_FUNCTIONS *
FORM exclude_tb_functions CHANGING pr_exclude TYPE ui_functions.
Local data declaration...
DATA ls_exclude TYPE ui_func.
To remove the buttons on the ALV grid.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_copy_row.
APPEND ls_exclude TO pr_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_delete_row.
APPEND ls_exclude TO pr_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_append_row.
APPEND ls_exclude TO pr_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_insert_row.
APPEND ls_exclude TO pr_exclude.
ls_exclude = cl_gui_alv_grid=>mc_fc_loc_move_row.
APPEND ls_exclude TO pr_exclude.
ENDFORM. " EXCLUDE_TB_FUNCTIONS
FORM EVENT_UCOMM *
After Input in the ALV grid,if user select record and press *
approve or reject then the record will get updated *
--> PR_ucomm type sy-ucomm *
FORM event_ucomm USING pr_ucomm LIKE sy-ucomm.
CASE pr_ucomm.
If e_ucomm contains 'APP' i.e.function code for Approve button
WHEN c_fcode_approve. " To approve selected record
PERFORM app_timesheet USING c_approve_status.
If e_ucomm contains 'REJ' i.e. function code for Reject
WHEN c_fcode_rej. " To reject selected record
PERFORM app_timesheet USING c_rej_status.
ENDCASE. " CASE E_UCOMM
ENDFORM. " EVENT_UCOMM
FORM APP_TIMESHEET *
To get the selected records and update the records in database *
--> pr_status type char01 *
FORM app_timesheet USING pr_status TYPE char01 .
Local data declaration......
DATA:
lt_marked_rows TYPE lvc_t_roid, " Table to get rowid
l_fs_marked_row LIKE LINE OF lt_marked_rows.
" Field-string for lt_marked_rows
To get all the selected rows in the table lt_marked_rows
CALL METHOD g_alv->get_selected_rows
IMPORTING
et_row_no = lt_marked_rows.
Reading each row id and updating the database.
LOOP AT lt_marked_rows INTO l_fs_marked_row.
Reading the table t_timesheet with rowid
READ TABLE t_timesheet INTO fs_timesheet INDEX
l_fs_marked_row-row_id.
If record is there in the table.
IF sy-subrc EQ 0.
CLEAR fs_timesheet-appstatus.
GET PARAMETER ID 'ZEMPID' FIELD w_empid.
Changing the appstatus.
fs_timesheet-appstatus = pr_status.
fs_timesheet-approvedby = w_empid.
Updating the database table.
UPDATE zcl_timesheet FROM fs_timesheet.
IF sy-subrc EQ 0.
DELETE t_timesheet INDEX l_fs_marked_row-row_id.
PERFORM refresh_table USING pr_status.
ENDIF. " IF SY-SUBRC EQ 0.
ENDIF. " IF SY-SUBRC EQ 0
ENDLOOP. " LOOP AT LT_MARKED_ROWS...
ENDFORM. " APP_TIMESHEET
FORM CHECK_CHANGED_DATA *
To change the data *
No parameters are passsed to this subroutine *
FORM check_changed_data .
To change the data.
CALL METHOD g_alv->check_changed_data.
ENDFORM. " CHECK_CHANGED_DATA
FORM DISPLAY_ALL *
To display all the records *
No parameters are passsed to this subroutine *
FORM display_all .
SELECT empid " Employee ID
workdate " Workdate
groupid " Groupid
projectid " Project ID
projectname " Project name
objectid " Object ID
objectname " Object name
activityid " Activity ID
activityname " Activity name
timeworked " Time worked
description " Description
taskstatus " Task status
billstatus " Bill status
appstatus " Approved status
wstatus " Working status
mngcomment " Manager comment
FROM zcl_timesheet
INTO TABLE t_time
WHERE empid IN s_empid
AND workdate IN s_date
AND groupid IN s_group
AND projectid IN s_prjid
AND appstatus NE c_save_status.
IF sy-subrc NE 0.
MESSAGE e000.
ELSE.
CALL SCREEN 100.
ENDIF. " IF SY-SUBRC NE 0
ENDFORM. " DISPLAY_ALL
FORM REFFRESH_TABLE *
To refresh output table and issue message according p_status *
-->PR_STATUS TYPE CHAR01 *
FORM refresh_table USING pr_status TYPE char01.
To refresh output table.
CALL METHOD g_alv->refresh_table_display.
Depending upon pr_status message is given.
IF pr_status EQ c_approve_status.
MESSAGE s001.
ELSE.
MESSAGE s002.
ENDIF. " IF P_STATUS EQ C_APPROVE_STATUS
ENDFORM. " REFRESH_TABLE
FORM SET_TITLEBAR *
To set titlebar on the screen 100. *
-->PR_STATUS TYPE CHAR01 *
FORM set_titlebar USING pr_status TYPE char01.
If pr_status eq 'X'.
IF pr_status EQ c_boolean_yes.
SET TITLEBAR c_alv_scr WITH text-017.
ELSE.
SET TITLEBAR c_alv_scr WITH text-018.
ENDIF. " IF P_STATUS EQ C_BOOLEAN_YES
ENDFORM. " SET_TITLEBAR
FORM USER_COMMAND *
According to sy-ucomm the action is performed in the screen 100 *
No parameters are passsed to this subroutine *
FORM user_command .
CASE sy-ucomm.
If p_app is selected, submitted data will be displayed for approval
WHEN c_fcode_onli OR c_fcode_approve.
CLEAR sy-ucomm.
To display the submitted records.
IF p_app EQ c_boolean_yes.
w_submit = c_boolean_yes.
To get submitted records
PERFORM get_data.
ENDIF. " IF P_APP EQ C_BOOLEAN_YES
To display all records according to selection.
IF p_disp EQ c_boolean_yes.
w_display = c_boolean_yes.
To display
PERFORM display_all.
CLEAR w_display.
ENDIF. " IF P_DISP EQ C_BOOLEAN_YES
ENDCASE. " CASE SY-UCOMM
ENDFORM. " USER_COMMAND
FORM DISPLAY_ALLRECORDS *
To display all the records in the display mode *
No parameters are passsed to this subroutine *
FORM display_allrecords .
CLEAR w_display.
PERFORM build_fcatd USING 'T_TIME' 'WORKDATE' text-002 '1'.
PERFORM build_fcatd USING 'T_TIME' 'EMPID' text-009 '2'.
PERFORM build_fcatd USING 'T_TIME' 'PROJECTID' text-003 '3'.
PERFORM build_fcatd USING 'T_TIME' 'PROJECTNAME' text-004 '4'.
PERFORM build_fcatd USING 'T_TIME' 'OBJECTID' text-005 '5'.
PERFORM build_fcatd USING 'T_TIME' 'OBJECTNAME' text-006 '6'.
PERFORM build_fcatd USING 'T_TIME' 'ACTIVITYID' text-007 '7'.
PERFORM build_fcatd USING 'T_TIME' 'ACTIVITYNAME' text-008 '8'.
PERFORM build_fcatd USING 'T_TIME' 'TIMEWORKED' text-010 '9'.
PERFORM build_fcatd USING 'T_TIME' 'DESCRIPTION' text-011 '10'.
PERFORM build_fcatd USING 'T_TIME' 'APPSTATUS' text-012 '11'.
PERFORM build_fcatd USING 'T_TIME' 'BILLSTATUS' text-016 '12'.
PERFORM build_fcatd USING 'T_TIME' 'MNGCOMMENT' text-014 '13'.
PERFORM alv_display USING t_time t_fcat.
ENDFORM. " DISPLAY_ALLRECORDS
FORM SUBMITTED_RECORDS *
To display submitted records for the manager to approve *
No parameters are passsed to this subroutine *
FORM submitted_records .
CLEAR w_submit.
To create object for instance g_events
CREATE OBJECT g_events.
If w_first equal to space
IF w_first IS INITIAL.
SET HANDLER g_events->toolbar
FOR g_alv.
w_first = c_boolean_yes.
ENDIF. " IF W_FIRST IS INITIAL..
SET HANDLER g_events->user_command
FOR g_alv.
g_fcatlayo-sel_mode = c_approve_status.
REFRESH t_fcat.
PERFORM build_fcat USING 'T_TIMESHEET' 'WORKDATE' text-002 '1'.
PERFORM build_fcat USING 'T_TIMESHEET' 'EMPID' text-009 '2'.
PERFORM build_fcat USING 'T_TIMESHEET' 'PROJECTID' text-003 '3'.
PERFORM build_fcat USING 'T_TIMESHEET' 'PROJECTNAME' text-004 '4'.
PERFORM build_fcat USING 'T_TIMESHEET' 'OBJECTID' text-005 '5'.
PERFORM build_fcat USING 'T_TIMESHEET' 'OBJECTNAME' text-006 '6'.
PERFORM build_fcat USING 'T_TIMESHEET' 'ACTIVITYID' text-007 '7'.
PERFORM build_fcat USING 'T_TIMESHEET' 'ACTIVITYNAME' text-008 '8'.
PERFORM build_fcat USING 'T_TIMESHEET' 'TIMEWORKED' text-010 '9'.
PERFORM build_fcat USING 'T_TIMESHEET' 'DESCRIPTION' text-011 '10'.
PERFORM build_fcat USING 'T_TIMESHEET' 'APPSTATUS' text-012 '11'.
PERFORM build_fcat USING 'T_TIMESHEET' 'BILLSTATUS' text-016 '12'.
PERFORM build_fcat USING 'T_TIMESHEET' 'MNGCOMMENT' text-014 '13'.
PERFORM alv_display USING t_timesheet t_fcat.
ENDFORM. " SUBMITTED_RECORDS
Plzz Reward if it is useful,
Mahi. -
Edit-in-place NOT working...
I've recently installed FCS at our small shop. I've read the Geller book, followed the Admin manual, and pretty much have gotten it to work.
However, I can't get "edit in place" to work. It did work when I initially installed the system and tested it. And now, after a complete re-install, it doesn't work.
I am using two local RAIDs. Each have a media directory that I set up as a device. For example:
One device is called "Mojo Project Media 02"
In the Device Pane (on the Admin / Client Java Interface) the Local Directory reads:
"/Volumes/RAID_02/Mojo Project Media 02"
So the Mac edit-in-place URI reads:
"file://localhost/Volumes/RAID_02/Mojo Project Media 02"
I can't get the edit in place URI to not ad "localhost" but I don't think this should matter.
Whenever I try to move media into a Browser Window from FCS, it tells me I must copy it to my local cache first. This didn't happen when I first installed/configured the system.
Can you not set up edit-in-place for a local directory (ie. a volume locally attached to the server with FCS installed)?
I know it worked before. Is there something I am missing?Thanks A. Richards.
After much testing, I realized that on the FCSr machine that it indeed had edit-in-place status because of the storage directly attached to it. BUT the other client computers did not.
So basically, since we don't have the $1000 a seat for XSAN and we are only cutting DV and DVCPRO HD...
We could configure our Mac Pro Server to be an AFP share over the network; it's plenty fast over Ethernet since it's aggregated over 6 gigabit ports to a switch and has PCIe RAID storage attached. We could give this edit-in-place status IF...
We used another machine (server class) to install FCSr on.
This would work right? -
ODrive Edit in Place PDF Document Manual Versioning enabled Error
Hi,
Any one has tried or able to do edit in place with ODrive and PDF Document type?
I have manual versioning enable. When I am doing edit in place from ODrive for PDF Document getting following error.
I have manually check out the document before doing Edit from ODrive.
Need help to resolve this issue.
Thanks,
Jigar
Error logs
07/05/31 15:45:07 content: [oracle.ifs.ecm.util.FolderUtilities] [24] 99117 publicuser1 INFO: resolveLegacyPath targetPath =
07/05/31 15:46:29 content: [oracle.ifs.protocols.dav.ecm.EcmDavServlet] [23] 99117 publicuser1 WARNING: no mapping found for ORACLE.FDK.ItemNotCheckedOut
07/05/31 15:46:29 content: [oracle.ifs.protocols.dav.ecm.EcmDavServlet] [23] 99117 publicuser1 WARNING: unmapped exception: oracle.ifs.fdk.FdkException:
ErrorCode = ORACLE.FDK.AggregateError; DetailedErrorCode = ORACLE.FDK.AggregateError; Cause = IFS-90244: Cannot update all of the specified
items; ServerStackTraceId = ; Info = null; Entries = 1
Main Exception Stack Trace:
ORACLE.FDK.AggregateError:ORACLE.FDK.AggregateError
at oracle.ifs.fdk.FdkException.getInstance(FdkException.java:181)
at oracle.ifs.fdk.FdkException.getInstance(FdkException.java:74)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1661)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocument(FileManagerImpl.java:1511)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.doPut(EcmDavServlet.java:1688)
at oracle.ifs.protocols.dav.DavServlet.doPut(DavServlet.java:1929)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2622)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.processRequest(EcmDavServlet.java:3616)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2396)
at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java:2361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:103)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
Caused by: oracle.ifs.common.IfsException: IFS-90244: Cannot update all of the specified items
at oracle.ifs.ecm.util.BulkUtilities.ecmUpdate(BulkUtilities.java:369)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1653)
... 19 more
FdkException Details: oracle.ifs.fdk.FdkException: ErrorCode = ORACLE.FDK.AggregateError; DetailedErrorCode = ORACLE.FDK.AggregateError;
Cause = IFS-90244: Cannot update all of the specified items; ServerStackTraceId = ; Info = null; Entries = 1
Entry[0] = oracle.ifs.fdk.FdkExceptionEntry: ErrorCode = ORACLE.FDK.OperationError; DetailedErrorCode = ORACLE.FDK.ItemNotCheckedOut;
ItemID = 99150; Cause = IFS-90301: Cannot update a Document under version control that is not checked out; Info = null
Cause Exception Stack Trace:
oracle.ifs.common.IfsException: IFS-90301: Cannot update a Document under version control that is not checked out
at oracle.ifs.ecm.beans.EcmDocument.lowLevelUpdate(EcmDocument.java:938)
at oracle.ifs.ecm.beans.EcmDocument.ecmUpdate(EcmDocument.java:618)
at oracle.ifs.ecm.util.BulkUtilities.ecmUpdate(BulkUtilities.java:345)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1653)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocument(FileManagerImpl.java:1511)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.doPut(EcmDavServlet.java:1688)
at oracle.ifs.protocols.dav.DavServlet.doPut(DavServlet.java:1929)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2622)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.processRequest(EcmDavServlet.java:3616)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2396)
at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java:2361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:103)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
Entry[0] = oracle.ifs.fdk.FdkExceptionEntry: ErrorCode = ORACLE.FDK.OperationError; DetailedErrorCode = ORACLE.FDK.ItemNotCheckedOut;
ItemID = 99150; Cause = IFS-90301: Cannot update a Document under version control that is not checked out; Info = null
Cause Exception Stack Trace:
oracle.ifs.common.IfsException: IFS-90301: Cannot update a Document under version control that is not checked out
at oracle.ifs.ecm.beans.EcmDocument.lowLevelUpdate(EcmDocument.java:938)
at oracle.ifs.ecm.beans.EcmDocument.ecmUpdate(EcmDocument.java:618)
at oracle.ifs.ecm.util.BulkUtilities.ecmUpdate(BulkUtilities.java:345)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1653)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocument(FileManagerImpl.java:1511)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.doPut(EcmDavServlet.java:1688)
at oracle.ifs.protocols.dav.DavServlet.doPut(DavServlet.java:1929)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2622)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.processRequest(EcmDavServlet.java:3616)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2396)
at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java:2361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind.server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind.server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:103)
at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
at com.evermind.server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
at com.evermind.util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
07/05/31 15:46:29 content: Servlet error
ORACLE.FDK.AggregateError:ORACLE.FDK.AggregateError
at oracle.ifs.fdk.FdkException.getInstance(FdkException.java:181)
at oracle.ifs.fdk.FdkException.getInstance(FdkException.java:74)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1661)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocument(FileManagerImpl.java:1511)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.doPut(EcmDavServlet.java:1688)
at oracle.ifs.protocols.dav.DavServlet.doPut(DavServlet.java:1929)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2622)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.processRequest(EcmDavServlet.java:3616)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2396)
at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java:2361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:103)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)
Caused by: oracle.ifs.common.IfsException: IFS-90244: Cannot update all of the specified items
at oracle.ifs.ecm.util.BulkUtilities.ecmUpdate(BulkUtilities.java:369)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1653)
... 19 more
FdkException Details: oracle.ifs.fdk.FdkException: ErrorCode = ORACLE.FDK.AggregateError; DetailedErrorCode = ORACLE.FDK.AggregateError;
Cause = IFS-90244: Cannot update all of the specified items; ServerStackTraceId = ; Info = null; Entries = 1
Entry[0] = oracle.ifs.fdk.FdkExceptionEntry: ErrorCode = ORACLE.FDK.OperationError; DetailedErrorCode = ORACLE.FDK.ItemNotCheckedOut;
ItemID = 99150; Cause = IFS-90301: Cannot update a Document under version control that is not checked out; Info = null
Cause Exception Stack Trace:
oracle.ifs.common.IfsException: IFS-90301: Cannot update a Document under version control that is not checked out
at oracle.ifs.ecm.beans.EcmDocument.lowLevelUpdate(EcmDocument.java:938)
at oracle.ifs.ecm.beans.EcmDocument.ecmUpdate(EcmDocument.java:618)
at oracle.ifs.ecm.util.BulkUtilities.ecmUpdate(BulkUtilities.java:345)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocuments(FileManagerImpl.java:1653)
at oracle.ifs.fdk.impl.FileManagerImpl.updateDocument(FileManagerImpl.java:1511)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.doPut(EcmDavServlet.java:1688)
at oracle.ifs.protocols.dav.DavServlet.doPut(DavServlet.java:1929)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2622)
at oracle.ifs.protocols.dav.ecm.EcmDavServlet.processRequest(EcmDavServlet.java:3616)
at oracle.ifs.protocols.dav.DavServlet.processRequest(DavServlet.java:2396)
at oracle.ifs.protocols.dav.DavServlet.service(DavServlet.java:2361)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ResourceFilterChain.doFilter(ResourceFilterChain.java:65)
at oracle.security.jazn.oc4j.JAZNFilter.doFilter(Unknown Source)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.EvermindFilterChain.doFilter(EvermindFilterChain.java:16)
at oracle.ifs.fdk.http.HttpServerManager.doFilter(HttpServerManager.java:103)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:659)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:330)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:830)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:224)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].server.http.AJPRequestHandler.run(AJPRequestHandler.java:133)
at com.evermind[Oracle Application Server Containers for J2EE 10g (10.1.2.0.2)].util.ReleasableResourcePooledExecutor$MyWorker.run(ReleasableResourcePooledExecutor.java:192)
at java.lang.Thread.run(Thread.java:534)Hi Matt,
Thank you for your very useful reply.
I have non blocking serial approval workflow.
In my workflow I have attachment as PDF document to be signed. URI of that document is from Odrive. Foe example O:\sjrwmd\DMSFAContainer\DMSFALibrary\36397\P041282\978599\Invoice_with_2_blank_sig_OD_2.pdf
When task has been assign to any user, from task detail page of the worklist application user click / open that pdf file and sign the document. When user save this document Odrive should save that to Contentdb.
Just wanted to know that why it is not ODrive bug?
I was able to do following test It works only in Acrobat 6.0.
Steps I did,
1) Upload pdf file to folder with manual versioning enable.
2) Manually checked out file from web ui.
3) Login to ODrive using same user
4) Created html file with link (Please replace href portion to your url of the file)
<HTML>
<BODY>
Testing Link <BR>
<a class="blue" href="O:/sjrwmd/DMSFAContainer/DMSFALibrary/36397/P041282/978599/Invoice_102_wit
h_blank_sig_OD.pdf" target="_blank">Invoice_101CD.pdf</a> <BR>
<a class="blue" href="O:/sjrwmd/DMSFAContainer/DMSFALibrary/16966/P040577/246361/ST_Memo.doc"
target="_blank">ST_Memo.doc</a>
</BODY>
</HTML>
5) Open html in browser
6) Click on document link
7) Will open pdf files in browser
8) Sign the document
9) Click on save a copy button.
10) In the save a copy dialog , file name place paste your file url of o drive for example in my
case
O:/sjrwmd/DMSFAContainer/DMSFALibrary/36397/P041282/978599/Invoice_102_with_blank_sig_OD.pdf
click save
11) This should save updated file
12) Checked in document
I will look into programmatically way to achive this.
Regards,
Jigar -
Hello Abapers,
I am not getting the desired output as per example.
I have followed all the steps as per the example but still a looser can anyone help me in this.
When I execute the program I get the following run time error
Field symbol has not been assigned.
I tried commenting the subroutine call
1} perform Change_fieldcatalogue and fetch data.
and i was getting the 2 custom container (top, bottom) on the screen output this time.
I have also created a screen 600 with all the attributes.
But i have doubt with this statement
Create a Custom container and name it CCONT and OK code as OK_CODE.
Save check and Activate the screen painter.
I hope on the layout screen the one which says custom control is only the custom container but i see that the fct code box is not highlighted then how can i assign a fctcode.
Could you plz also clear this.
Thanks in advance.
Ranjith Nambiar
Program code below
A small note about this program
*& AS : ALV report which displays the contents of the table T006
*& (as a docking container in the bottom) along with the
*& editable ALV which contains the ALV fieldcatalogue table structure.
*& With the available toolbar options of the editable ALV in the output,
*& user can change the fieldcatalogue as per his requirement.
*& When the user clicks 'SUBMIT',the display of the ALV with table T006
*& gets modified and customised accordingly to the user's requirement.
REPORT ZNRD_ALV_EDITABLE.
* Structure declaration for t006
types : begin of ty_t006.
include structure t006.
types : end of ty_t006.
* Internal table and work area declaration for t006.
data : it_t006 type standard table of ty_t006,
wa_t006 type ty_t006.
* Declaration for ALV
data : ok_code type sy-ucomm, " Ok code.
it_fcat type lvc_t_fcat, " Fieldcatalogue.
it_fieldcat type lvc_t_fcat, " Fieldcatalogue for Fieldcatalogue itself.
it_layout type lvc_s_layo.
*Declaration for toolbar functions
data : it_excl_func type ui_functions,
* Controls to display it_t006 and its fieldcatalogue
cont_dock type ref to cl_gui_docking_container,
cont_alvgd type ref to cl_gui_alv_grid,
* Controls to display fieldcatalogue as editable alv gridand container
cont_cust type ref to cl_gui_custom_container,
cont_editalvgd type ref to cl_gui_alv_grid.
initialization.
start-of-selection.
* Local class definition for data changed in fieldcatalogue alv
CLASS lcl_event_receiver definition.
public section.
methods handle_data_changed
for event data_changed of cl_gui_alv_grid
importing er_data_changed.
endclass. " lcl_event_receiver definition.
* Local class implementation for data changed in fieldcatalogue alv
CLASS lcl_event_receiver implementation.
method handle_data_changed.
endmethod. " handle_data_changed.
endclass. "lcl_event_receiver implementation
* Data declaration for event receiver
data : event_receiver type ref to lcl_event_receiver.
end-of-selection.
* Setting the screen for alv output for table display and changed fieldcatalogue display
set screen 600.
*& Module STATUS_0600 OUTPUT
* text
MODULE STATUS_0600 OUTPUT.
SET PF-STATUS 'STATUS600'.
SET TITLEBAR 'TITLE600'.
* Create ALV grid if doesn't exits.
if cont_dock is initial.
perform Create_alv.
endif.
ENDMODULE. " STATUS_0600 OUTPUT
*& Form Create_alv
* text
* --> p1 text
* <-- p2 text
FORM Create_alv.
* Create a docking container and dock the control at the bottom
create object cont_dock
exporting
dynnr = '600'
extension = 100
side = cl_gui_docking_container=>dock_at_bottom.
* Create ALV grid for displaying the table
create object cont_alvgd
exporting
i_parent = cont_dock.
* Create custom container for ALV
create object cont_cust
exporting
container_name = 'CCONT'.
* Create alv editable grid
create object cont_editalvgd
exporting
i_parent = cont_cust.
* Register events for the editable alv
create object event_receiver.
set handler event_receiver->handle_data_changed for cont_editalvgd.
call method cont_editalvgd->register_edit_event
exporting
i_event_id = cl_gui_alv_grid=>mc_evt_modified.
*Building fieldcatalogue for the initial display
perform Build_fieldcatalogue changing it_fcat it_fieldcat.
* Building the fieldcatalogue after the user has changed it
perform Change_fieldcatalogue changing it_fieldcat.
* Fetch data from the table.
perform Fetch_data.
* Get excluding functions for the alv editable tool bar
APPEND cl_gui_alv_grid=>mc_fc_loc_append_row TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_insert_row TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_cut TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_sort TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_sort_asc TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_sort_dsc TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_subtot TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_sum TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_graph TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_info TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_print TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_filter TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_views TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_mb_export TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_mb_sum TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_mb_sum TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_mb_paste TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_find TO it_excl_func.
APPEND cl_gui_alv_grid=>mc_fc_loc_copy TO it_excl_func.
*Alv display for the T006 table at the bottom
CALL METHOD cont_alvgd->set_table_for_first_display
CHANGING
it_outtab = it_t006[]
it_fieldcatalog = it_fcat[].
* optimize column width of grid displaying fieldcatalog
it_layout-cwidth_opt = 'X'.
* Get fieldcatalog of table T006 - alv might have
* modified it after passing.
CALL METHOD cont_alvgd->get_frontend_fieldcatalog
IMPORTING
et_fieldcatalog = it_fcat[].
*to Send Buffered Automation Queue to Frontend
CALL METHOD cl_gui_cfw=>flush.
* Display fieldcatalog of table T006 in editable alv grid
CALL METHOD cont_editalvgd->set_table_for_first_display
EXPORTING
is_layout = it_layout
it_toolbar_excluding = it_excl_func
CHANGING
it_outtab = it_fcat[]
it_fieldcatalog = it_fieldcat[].
ENDFORM. " Create_alv
*& Module USER_COMMAND_0600 INPUT
* text
MODULE USER_COMMAND_0600 INPUT.
case ok_code.
when 'SUBMIT'.
* To get the current fieldcatalogue from the front end
call method cont_alvgd->set_frontend_fieldcatalog
exporting
it_fieldcatalog = it_fieldcat.
call method cont_alvgd->refresh_table_display.
call method cl_gui_cfw=>flush.
when 'EXIT'.
leave program.
endcase.
ENDMODULE. " USER_COMMAND_0600 INPUT
*& Form Build_fieldcatalogue
* text
* <--P_IT_FCAT text
* <--P_IT_FIELDCAT text
FORM Build_fieldcatalogue CHANGING P_IT_FCAT
P_IT_FIELDCAT.
* Fieldcatalog for table T006: it_fldcat
* to generate the fields automatically
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'T006'
CHANGING
ct_fieldcat = it_fieldcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
* Fieldcatalog for table LVC_T_FCAT:it_fcat
* Generate fieldcatalog of fieldcatalog structure.
* This fieldcatalog is used to display fieldcatalog 'it_fldcat'
* on the top of the screen.
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'LVC_S_FCAT'
CHANGING
ct_fieldcat = it_fcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
ENDFORM. " Build_fieldcatalogue
*& Form Change_fieldcatalogue
* After the user has modified the fieldcatalogue we build another fieldcat
* for the modified alv display
* <--P_IT_FIELDCAT text
FORM Change_fieldcatalogue CHANGING P_IT_FIELDCAT.
DATA ls_fcat TYPE lvc_s_fcat.
LOOP AT it_fcat INTO ls_fcat.
ls_fcat-coltext = ls_fcat-fieldname.
ls_fcat-edit = 'X'.
IF ls_fcat-fieldname = 'COL_POS' OR ls_fcat-fieldname = 'FIELDNAME'.
ls_fcat-key = 'X'.
ENDIF.
MODIFY it_fcat FROM ls_fcat.
ENDLOOP.
ENDFORM. " Change_fieldcatalogue
*& Form Fetch_data
* text
* --> p1 text
* <-- p2 text
FORM Fetch_data .
select * from t006 into table it_t006 up to 50 rows.
ENDFORM. " Fetch_datacomment this particular section deals with top container.
CALL METHOD cont_editalvgd->set_table_for_first_display
EXPORTING
is_layout = it_layout
it_toolbar_excluding = it_excl_func
CHANGING
it_outtab = it_fcat[]
it_fieldcatalog = it_fieldcat[].
CALL FUNCTION 'LVC_FIELDCATALOG_MERGE'
EXPORTING
i_structure_name = 'LVC_S_FCAT' "This is deep strucure
CHANGING
ct_fieldcat = it_fcat[]
EXCEPTIONS
inconsistent_interface = 1
program_error = 2
OTHERS = 3.
LVC_S_FCAT is a deep structure , so try to comment that section and see. if you want that part , populate the fieldcatalog manually. -
HOW TO: EDIT IN PLACE ON WINDOWS CLIENT
Hi everybody,
I work in TIBA (broadcaster company), we use FCS so much and I have a problem, actually i have running edit in place on XSAN for MAC clients, but i cant work of the same way on windows.
We have XSAN and fiber channels working.
I configure the device but it doesn´t work.
Somebody, help me please. My email is [email protected]
Kind regards
EmilianoHi,
No iam not using stornext for the windows clients.
The mac and windows clients running on ethernet. The the mac clients have mapped the xsan volumes using AFP or SMB protocol and the edit in place works ok.
The windows clients have mapped the xsan volumes through SMB but the edit un place doesnt work, the files are cached and doesn´t run as edit in place.
Note: sorry by my english.
kind regard.
Emiliano
Are you using StorNext FX to add the Windows clients to your Xsan? If so, then all you have to do is add the Windows Edit-in-place URI to each EIP device in the Devices section of the Java client Admin GUI (not the System Preferences pane). Once you've done that, EIP will work for the Windows clients as well. Here are the instructions for entering the correct URI syntax.
If you are not using StorNext FX for your Windows clients, please give us more detail on how your system is set up. -
How to set column names in OVS search help of ALV EDIT
Hi All,
I have a OVS search help for my ALV EDIT column.This OVS will have two columns,I need to give the names(name1 , name2) to the columns.
I am writing the below codo in phase 0.
ls_text-name = 'Column1'.
ls_text-value = 'name1'.
INSERT ls_text INTO TABLE lt_column_texts.
ls_text-name = 'Column2'.
ls_text-value = 'name2'.
INSERT ls_text INTO TABLE lt_column_texts.
ovs_callback_object->set_configuration(
label_texts = lt_label_texts
column_texts = lt_column_texts
group_header = lv_group_header
window_title = lv_window_title
table_header = lv_table_header
col_count = 2
row_count = 20 ).
Below code in Phase 3.
Assign ovs_callback_object->selection->* to <ls_selection>.
if <ls_selection> is assigned.
ovs_callback_object->context_element->set_attribute(
name = `ATR1`
value = <ls_selection>-Column1 ).
endif.
But,the column names are not getting set.Please provide your inputs.
Regards,
Salmahi,
About your requirement, i don't know why you need to code in "Phase 3" of OVS.
"Phase 3" is used for transporting your selected value to Your ALV.
I think, the reason why you loose the result table including your customized column title, is that you loose the "Phase 2".
Generally, in the past i used OVS as the following code simply.Just one example:
* declare data structures for the fields to be displayed and
* for the table columns of the selection list, if necessary
types:
begin of lty_stru_input,
* add fields for the display of your search input here
carrid type string,
connid type string,
end of lty_stru_input.
types:
begin of lty_stru_list,
* add fields for the selection list here
carrid type string,
connid type string,
text type string,
end of lty_stru_list.
data: ls_search_input type lty_stru_input,
lt_select_list type standard table of lty_stru_list,
ls_text type wdr_name_value,
lt_label_texts type wdr_name_value_list,
lt_column_texts type wdr_name_value_list,
case ovs_callback_object->phase_indicator.
when if_wd_ovs=>co_phase_0. "configuration phase, may be omitted
* in this phase you have the possibility to define the texts,
* if you do not want to use the defaults (DDIC-texts)
ls_text-name = 'CARRID'. "must match a field name of search
ls_text-value = 'Search Field-Carrid'.
insert ls_text into table lt_label_texts.
ls_text-name = 'CONNID'. "must match a field name of search
ls_text-value = 'Search Field-Connid'.
insert ls_text into table lt_label_texts.
ls_text-name = 'CARRID'. "must match a field in list structure
ls_text-value = 'Result-Carrid'.
insert ls_text into table lt_column_texts.
ls_text-name = 'CONNID'. "must match a field in list structure
ls_text-value = 'Result-Connid'.
insert ls_text into table lt_column_texts.
ls_text-name = 'TEXT'. "must match a field in list structure
ls_text-value = 'Result-Text'.
insert ls_text into table lt_column_texts.
lv_group_header = 'Group Header'.
lv_window_title = 'Window Title'.
lv_table_header = 'Table Header'.
ovs_callback_object->set_configuration(
label_texts = lt_label_texts
column_texts = lt_column_texts
group_header = lv_group_header
window_title = lv_window_title
table_header = lv_table_header
col_count = 3
row_count = 8 ).
when if_wd_ovs=>co_phase_2.
* If phase 1 is implemented, use the field input for the
* selection of the table.
* If phase 1 is omitted, use values from your own context.
if ovs_callback_object->query_parameters is not bound.
******** TODO exception handling
endif.
assign ovs_callback_object->query_parameters->*
to <ls_query_params>.
SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_select_list FROM ZTABLE_FLIGHT
WHERE CARRID LIKE lw_carrid
AND CONNID LIKE lw_connid
*ovs_callback_object->set_output_table( output = lt_select_list ).*
Hope it can help.
Best wishes. -
Assets are "Edit In Place" yet dragging to Final Cut Pro requests caching
This is an odd one. I have a large number of assets on our device that I can successfully drag from Final Cut Server directly to Final Cut Pro without issue. However I have what appears to be thousands of assets on the exact same device that I can not drag without the dialog box "You must add this asset to the cache before you can use it in a Final Cut Studio project."
This is very weird. If I right click on the asset in Final Cut Studio and select to view the Original Media I get the warning "The asset is an edit-in-place asset. Any changes..." so obviously it knows it is an edit in place asset, so why are they giving me grief when dragging to Final Cut Pro?
Specs: Final Cut Server 1.1, Final Cut Pro 6.0.4
Thanks!Sorry that I keep replying to myself, but the bazaar behavior continues...
I took one of these odd assets and made a copy to my desktop. Then I deleted the asset and file within Final Cut Server. Next I moved the asset from my desktop back to the original location and waited for a Full Scan to pick up the asset.
After the Full Scan, the asset was draggable to Final Cut Pro! I can't possibly do this to every asset. Did the database get corrupt?
Ideas? Thanks! -
'Edit in Place' for XLSM-files (Excel Macro-Enabled)
Hi,
is it possible to activate 'Edit in Place' for xlsm-files (Excel Macro-Enabled Workbook file)?
For xls(x)-files there is the link 'Edit This File', but not for files of type 'xlsm' allthough they could be dealt the same way with Excel.
I know I can edit this files using the 'Add-in for MS Office' and via the 'Vibe Desktop', but it would be nice to deal them like other Excel-files.
thx
MartinOriginally Posted by mschuhmann
RTFM helps I admit:
Novell Vibe 3.3 Administration Guide > Site Setup > Setting Up Site-Wide Customizations > Configuring File Associations for Edit in Place Applications
Novell Doc: Novell Vibe 3.3 Administration Guide - Configuring File Associations for Edit in Place Applications
Append ".xlsm" for the variable edit.in.place.file.applet.extensions, edit.in.place.file.webdav.extensions
Hi Martin,
Yeah, the Vibe docs can help on occasion
Still, thanks for feeding it back to the forums as it can be quicker finding a hit in the forums than having to go through the docs!
Cheers,
Willem -
Problem with alv edit and save
hi all,
can anyone find me a solution for alv edit and save...the issue is that i will be editing and just clicking on save button withot any row selction and the data changed should be updated in database.
sunil.Hi Bhaskar,
To make fields editable in ALV, while creating the field catalog for ALV, use:-
wa_field-edit = 'X'. " to make a field editable
To check the data changed in ALV, use code:-
ALV GRID Display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = sy_repid " report id
i_callback_user_command = 'USER_COMMAND' " to handle user command
it_fieldcat = it_field " for field catalog
it_sort = it_sort " for sort records info
TABLES
t_outtab = it_final "internal table with records
EXCEPTIONS
program_error = 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.
Sub-routine USER_COMMAND
FORM user_command USING v_okcode LIKE sy-ucomm selfield TYPE slis_selfield.
* assign the function code to variable v_okcode
v_okcode = sy-ucomm.
* handle the code execution based on the function code encountered
CASE v_okcode.
* when the function code is EXECUTE then process the selected records
WHEN 'EXECUTE'.
*to reflect the data changed into internal table
DATA : ref_grid TYPE REF TO cl_gui_alv_grid. "new
IF ref_grid IS INITIAL.
CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR'
IMPORTING
e_grid = ref_grid.
ENDIF.
IF NOT ref_grid IS INITIAL.
CALL METHOD ref_grid->check_changed_data.
ENDIF.
* refresh the ALV Grid output from internal table
selfield-refresh = c_check.
ENDCASE.
Hope this solves your problem.
Thanks & Regards,
Tarun Gambhir -
How to handle 'ENTER' Key on ALV Editable Grid on sub screen (Tabstrips)
Hello Experts ,
I have 2 questions with ALV Editable grid;
please help me if you have answers.
I created ALV grid on one of sub screens on a Tab Strip,
As soon as user types one of the columns of the ALV grid and press u2018ENTERu2019 key, it has to return corresponding details for that line.
I tried to implement this logic in ALV grid event u2018handle_data_changedu2019, but ALV internal table is not getting populated with new entry entered in the grid. but u2018double_clicku2019 event working my purpose, but user might need enter key.
and I thought I would do implement that logic in PAI event of the sub screen, u2018ENTERu2019 key not getting trigger on PAI event of the screen until cursor is on grid.
Another question 2: How do I control and not to be deleted a line on the grid (based on validation), where do I validate and by pass the delete function for a particular line, or suggest me to gray out only one line on the grid .
I would like to have delete function to work as it is ,except for some validations..
Can I implement using PAI event of the sub screen or any by ALV event.
Please suggest me..
Edited by: Ravindranath Arusam on May 13, 2010 2:42 PMIn DATA_CHANGED event, you will get the modified row into the attribute MP_MOD_ROWS of the impoerting object ER_DATA_CHANGED. Since this MP_MOD_ROWS is the Object reference to Data, you need to have the field symbol to get the value.
FIELD-SYMBOLS: <lft_mod_output> TYPE t_t_output.
ASSIGN er_data_changed->mp_mod_rows->* TO <lft_mod_output>.
You can get the Value of the Cell by using the method GET_CELL_VALUE of the same ER_DATA_CHANGED object and use the method MODIFY_CELL To update the value back to ALV.
To Restrict the row deletion:
When the row is deleted it is being added to Attribute mt_deleted_rows of the object ER_DATA_CHANGED. You can put the data back to the table in the DATA_CHANGE_FINISHED event. Visit this post http://help-abap.blogspot.com/2008/10/alv-disable-delete-key-on-keyboard-in.html for more information.
Regards,
Naimesh Patel -
How do you edit the "place" in Places?
I've been working on assigning places to images in my Aperture library. I'm doing this manually.
At the top of the Map View, you see the Country, State, City and Place. I cannot figure out how to edit the Place. Aperture keeps assigning the same Place to all of my images.
For example, I have photos from Berryville, Virginia. When I add that location, it automaticallly adds Folly Beach as the Place. Same thing happens with some photos taken in New Orleans.
Moving the Pin doesn't solve the issue. I've deleted the loation and tried adding it again, but the same thing happens. I don't see anything in the Aperture user manual that addresses this.
Any help would be appreciated.It took me some time to figure it out, too:
What I do for my older pictures without gps data is:
- select the picture in the places view
- Main menu -> Metadata -> assign Location
- in the search field (upper left corner) I enter the name of a Landmark that I am looking for
- Aperture will show the landmark on the map, marked by a pin, and a place name that I do not want
- then I move the pin to the precise spot on the map and adjust the radius to a very small value, so that not all my pictures will show up in the same location
- now in the bottom row text field the place name can be edited. I change it to the name I want and press "assign"
Hope that helps
Léonie -
Edit-In-Place with CMSDK 9.0.4.2.X ?
Hi all,
Oracle Content Services and Oracle Content DB ship with a special Active-X-Component "Edit-in-Place" which allows the user to edit documents directly in an Oracle-Drive-connected DMS repository. This feature is used i.e. in Oracle ADF to build web applications in which the user can edit documents in MS Word et al. simply by clicking the "edit-in-place" link.
Unfortunately, we run Oracle CMSDK 9.0.4.2.X, so we have doubts about using the "Edit-in-Place" control in our environment.
Does anybody know
- whether it would be possible to include the Active-X-control "Edit-in-place" in our Oracle ADF applications running on AS 10.1.2.0.2
- whether the "Edit-in-place" control would work with the Oracle CMSDK 9.0.4.2.x
- what system requirements are generally needed for the "Edit-in-Place" control
- whether this use would be certified and licensed appropriately
- if the control can not be used: Is there any workaround or best practise on how to edit documents in the CMSDK repository directly from web applications?
Many thanks in advance.
Regards,
ThomasHi Thomas,
we implemented a cross-browser edit-in-place solution for CM SDK 9.0.4.x. If you're interested check out inxire.com.
Regards,
Toni -
Geotagging - how can I edit new places that I have previously created but with typos, errors etc? How do I delete a place I have set up? Then I could create a new, correct entry. I'm using iPhoto '09.
Is it OK to reply to my own question?? Thanks to the related posts that appeared AFTER I'd made the post above, I learnt about the 'Manage my places' item under the Windows menu. I felt a bit dumb not knowing this.
BUT it doesn't completely resolve the issue. The info shown in the EXIF (using opt-cmd-I) under Places has the place name I choose, but it is followed by a few other lines that are incorrect and do not seem to be anything to do with any data I can see under 'Manage my places'.
Can anyone explain where these other entries might come from, and how to edit them? -
ALV Editable Grid Control F4 help problem
HI Experts,
am facing some funny and critical problem in ALV Editable GRID,that is i used OOPS concept for ALV GRID Control output,
in fieldcatalog i given for fields as
wafieldcatlog-f4availabl = 'X'.
wafieldcatlog-ref_table = 'table'.
wafieldcatlog-ref_field = 'field'.
and for seven fields i given like this .
but in that editable if i use F4 help for the field and get that data and later save means that data is not considering and giving error message.
So can any one please help if u confused pls reply fo any clarifications, pls help me out in this situation.
THXwafieldcatlog-f4availabl = 'X'.
wafieldcatlog-ref_table = 'table'. "should be in caps
wafieldcatlog-ref_field = 'field'. "should be in caps.
what error you are getting while saving..?
Maybe you are looking for
-
Hp Officejet Pro 8600 Premium suddenly printed very slowly from PC
Hi, and thanks for any insights. I have a client with an Officejet Pro 8600 Premium, and printing to this printer over USB has suddenly become very slow. The dedicated PC is XP with 2 GB of ram and only using 40 GB on a 200 GB drive. The printer ha
-
Oracle Patch 10.2.0.4 error - Windows Server 2008 x64
Hello! Could you please give your comments if you have seen errors described below? It appeared during the Oracle Patch 10.2.0.4 installation in Windows Server 2008 x64. *************installActions2010-08-06_11-02-02PM.log****************** Using par
-
Forcing user to enter values at table level
Hi, I have created a table ztest. How to force user to enter the values for certain fields in the table which are not keys, similar to not null in RDBMS. selecting the initial values filed in SE11 populates with some default value, but it doesnt forc
-
Changing email address within Enterprise
We will be changing our email address from fsc.edu to fitchburgstate.edu. I have been told I need to manually change this address for all scheduled reports on the Enterprise. Is there an easier way to do this instead of going into each report? Thank
-
How to set conditions as a query in cfl?
i have a combo box and a matrix. i have a cfl in the matrix column, once i select the particular value in the combobox the corresponding values must appear in the cfl. how can this be done?