Internl table getting refreshed
Hi Experts,
I have the Internal table in controller class i declared like,
IT_MARSTATUS Instance Attribute Public Type WDR_CONTEXT_ATTR_VALUE_LIST
I fill it in DO_INIT method :
if it_marstatus is INITIAL.
select famst ftext from t502t into table it_marstatus where sprsl eq 'EN'.
endif.
then in DO_HANDLE_EVENT method i cleared this internal table and append some data's.
SS_MARSTATUS_TEMP-VALUE ='03'.
SS_MARSTATUS_TEMP-TEXT = MARSTATUS_SELECTED.
APPEND SS_MARSTATUS_TEMP TO IT_MARSTATUS_TEMP.
IT_MARSTATUS = IT_MARSTATUS_TEMP. IT_MARSTATUS_TEMP---> I declared tis IT with in a method.
So now the problem is, in the Do_init method i field IT_MARSTATUS and it has some eight data's. then it comes to DO_HANDLE_EVENT and here it has eight records and in tis method i cleared that Internal table and I append 1 value.
Everything is fine and then the single value from IT_MARSTATUS is displayed in screen perfectly. aftr that if i click the save button it goes to DO_init method. Here in do_init method the Internal table is empty. It has no values.
So again it fills the eight record in do_init method and the screen will displays the whole 8 values. But the req is it should display the single record (i filled it in DO_HANDLE_EVENT method).
I dont know how the data's from Internal table IT_MARSTATUS getting refreshed.
Please anyone help me on this.
Thanks.
Hi Nandini,
Just check in the page->Properties. select the Status as
STATEFUL FOR NOW ON
save activate and run the application now.
Hope this is help ful,let me know if you have any concern.
Thanks
kalyan
Similar Messages
-
SSIS Package : Needs SQL Tables get refreshed every hour
Hello,
I have created a SSIS Package which includes,
Step 1 : Using Execute SQL Task to truncate all the tables
Step 2 : Data Flow Tasks to extract data from SharePoint lists and fill the SQL Tables for SSRS Reporting from that.
Requirement is to refresh SQL Tables every hour. I can do this using SQL Server Agent Job to run SSIS Package.
But, I am not sure is this the feasible way of do this, as we are truncating all the tables. There are around 10-15 tables. Database size is also not large.
Is there any in SSIS to impose only changes done in the SharePoint list to SQL tables rather than truncating them and creating new ones?
Thank you,
Mittal.@Visakh,
Yes I am getting Created,CreatedBy, Modified, ModifiedBy audit fields data from all the SharePoint List.
So, can we just trust these fields and update tables accordingly ?
And how can I do this using SSIS ? Is there any particular control I can use to compare the data and time and update the SQL Tables?
Thank you,
Mittal.
Yes. Provided they have proper data thiat should work fine.
Yes you can use it inside SSIS
You can have a logic like below
1. In execute sql task capture max date for the source table
2. Use data flow task with source query having filter based on date field
ie like
WHERE Modified > ?
And map parameter to maxdate
3. add destination step to populate data
Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs -
Tree Table is not getting refreshed properly in Jdev 11.1.2.0
Hi,
I am seeing a peculiar issue with tree table not getting refreshed in Jdev 11.1.2.0.
Let me explain you my use case.
I have a tree table in a page, where the first column is displayed as selectBooleanRadio component. When user selects this selectBooleanRadio component, that treetable node should get expanded and at the same time all the child records(I have a select boolean check box component(transient attribute) at the child level) for that node should get selected. This is to allow user to unselect the child records, which he/she does not want to process further(some functionality).
Now when the user selects any radio button, the tree table node is not expanded, but the arrow beside the radio button for that node can be seen as expanded.
I thought it may be a partial trigger issue, so i tried refreshing the tree table programatically as well. But it was of no use.
Then I set the partial triggers wrt to SelectBooleanRadio component on the parent container of the TreeTable. After which somehow the node got expanded but the tree table shrinks in width and the actual disclosure functionality of a tree table is lost.
The same use case works perfectly fine in Jdev 11.1.1.5.
For reference:
I created a sample test case(Dept/Emp) in jdev version 11.1.1.5, which works fine. Workspace: http://adf-use-cases.googlecode.com/files/TreeTable1.rar
But the same test case, when i created in jdev version 11.1.2.0, gives issues. Workspace: http://adf-use-cases.googlecode.com/files/TreeTableUseCase.rar
If you download the application and run in respective jdev version, you will get to know more about the issue.
Please let me know, If I am doing anything wrong in the implementation of this use case.
Any help/suggestions are appreciated.
Thanks
Umesh
Note: My complete application is in Jdev 11.1.2.0, so I can't degrade my jdev version to 11.1.1.5.Thanks Frank for the reply.
But upgrading the jdeveloper to 11.1.2.2 is not an ideal solution for us now, because of the size of the project.
Some how, the issue of refreshing the tree table is resolved. I am using a command button with clientComponent to true and causing a full page refresh.
I am not sure, if this is a perfect solution.
As you said, that this behavior may be an issue with the Jdev version 11.1.2.0, I am using. I am going with the above said approach. -
Tableview getting refreshed when changing data in the rows
Hi Gurus,
Iu2019m doing a BSP with MVC. The requirement is as below.
In the main page there is a button u2018Create Orderu2019, to create a sales order, once I click this button, another screen (pop up) comes up and within that I have a Tableview display with the below fields with the data of 20 records.
Material no
Quantity
Delivery Date
Here user is allowed to choose the quantity and delivery date by selecting each row.(with MULTISELECT option in BSP)
The issue is after I select first row and change the quantity and date, and if I click on second row, the Tableview gets refreshed to enable the second row to be editable and the changes what I did on the first row are also refreshed.
So i want the Tableview not to be refreshed when selecting the multiple rows. So that I can keep the changes I make to the quantity and date fields Can you please suggest any method.
Cheers,
Srini.Hi Srinivas,
You need to capture the value entered by user in Quantity and date field and update the internal table with these values for the current selected row.
For ex.
The tableView code is like:
<htmlb:tableView id = "material"
headerText = "<%= otr(Z_SUS/HEADER_TEXT_MATERIALS) %>"
headerVisible = "true"
design = "alternating"
onRowSelection = "MyEventRowSelection"
selectionMode = "MULTILINEEDIT"
width = "880"
filter = "SERVER"
emptyTableText = "<%= otr(Z_SUS/EMPTYTABLE_MATERIALS) %>"
iterator = "<%= iterator %>"
table = "<%= gt_materials %>" />
In eventhandler OnInputProcessing :
DATA: lt_fields type tihttpnvp ,
ls_fields like line of lt_fields.
call method request->get_form_fields
changing
fields = lt_fields
Now the internal table lt_fields contains all the editable cell values , just update the internal table of your tableview with these values.
You can try these threads
[Thread-I.|Re: Retrieve changes made in tableView]
[Thread-II|https://forums.sdn.sap.com/click.jspa?searchID=24460585&messageID=5516977]
Search the forum for more information on this.
Regards,
Anubhav -
Message not getting refreshed in bsp pages.
Hi experts,
An error message which is getting displayed should be removed on leaving the page. I mean the meassage area is not getting refreshed on leaving the page. Everytime i need to refresh the page to remove it. Please help.
Abhi.hello Friend,
Please clear the internal table / work are used to show message in OnInitialization method of the BSP page.
now It is not getting cleared at the time leaving the page and data stays in memory...
Thanks
K. -
MPCUI metadata driven CustomUI Table is refreshing for every second
I have a table in my home page when I customized the home page with metadata driven MPCUI.
My table is getting populated with SQLDataService qrery. when I try to scroll down the table, it is not allowing me to scroll down as for every 1 second the table is getting refreshed.
Can some tell me how to get rid of this refreshing.
I am pasting my code here
<SqlStatements>
<Sql name="HC_EXA_REPORT"><![CDATA[
// The actual SQL code is here and do not want to paste the SQL...
]]>
</Sql>
</SqlStatements>
<ActivityDefinition>
<mp:Page id="hcReportsPg" label="Exadata HealthChecks Reports"
xmlns:mx="http://www.adobe.com/2006/mxml"
xmlns:mp="http://www.oracle.com/mpcui"
>
<mp:services>
<mp:SQLDataService id="hcReport" queryID="HC_EXA_REPORT" properties="{props('EMIP_BIND_TARGET_GUID',appModel.target.guid)}" />
</mp:services>
<mx:VBox width="100%" height="100%">
<!-- 1st row -->
<mx:HBox width="100%" height="100%">
<mp:Region title="Exadata HealthChecks Reports" width="100%" height="100%">
<mp:Table id="repSummaryTable2" dataProvider="{hcReport}">
<mp:columns>
<mx:AdvancedDataGridColumn dataField="Metric"/>
<mx:AdvancedDataGridColumn dataField="Check name"/>
<mx:AdvancedDataGridColumn dataField="name"/>
<mx:AdvancedDataGridColumn dataField="Instance name"/>
<mx:AdvancedDataGridColumn dataField="Parameter"/>
<mx:AdvancedDataGridColumn dataField="Status"/>
<mx:AdvancedDataGridColumn dataField="Outfilepath"/>
<mx:AdvancedDataGridColumn dataField="Fail Message"/>
<mx:AdvancedDataGridColumn dataField="Risk Message"/>
<mx:AdvancedDataGridColumn dataField="Benefit/Impact Message"/>
<mx:AdvancedDataGridColumn dataField="Recommendation Message"/>
<mx:AdvancedDataGridColumn dataField="Alert"/>
<mx:AdvancedDataGridColumn dataField="Collection Timestamp"/>
<mx:AdvancedDataGridColumn dataField="Exachk Results From"/>
<mx:AdvancedDataGridColumn dataField="Exachk Results Timestamp"/>
</mp:columns>
</mp:Table>
</mp:Region>
</mx:HBox>
</mx:VBox>
</mp:Page>
</ActivityDefinition>Hi, sorry, I haven't played with MPCUI yet but it we're excited about the capabilities it appears to provide. We'd like to "combine" a lot of our reports and one-offs into OEM so things are better-organized.
That said... I dug around a bit and thought this might help. Could you add timePeriod & interval to your own c:Table id element (is that the correct term)?
In the case of the table component, you can specify the metric directly also:
<c:Table id="processesTable" width="100%" height="100%"
metricName="CPUProcessesPerf"
metricColumns="['ProcUser', 'ProcCPU', 'ProcCmd']"
timePeriod="REALTIME"
interval="30"
>
<c:columns>
<mx:AdvancedDataGridColumn width="50" dataField="key" />
<mx:AdvancedDataGridColumn width="100" dataField="ProcUser" />
<mx:AdvancedDataGridColumn width="80" dataField="ProcCPU" />
<mx:AdvancedDataGridColumn width="400" dataField="ProcCmd" />
</c:columns>
</c:Table>
Source: http://docs.oracle.com/cd/E24628_01/doc.121/e25161/mgt_ui.htm#CHDEGFBG
HTHs...
Edited by: Richard Evans on Dec 29, 2011 1:31 AM - forgot the URL -
Error while trying to populate a table and refreshing
Hello,
I have created a java class in which i have the POJO's(non BC) and generated data controls off the java class. The java class also contains a list (of user defined objects - lstPriceeventTypes) which i have dropped as a table on a jspx.
When i create a page: The list is initially empty. Now when i try to add a row using a command tool bar button which inturn invokes a method addSomething() in that same java class; in this method - i create the user defined object and add it to the list. Now i am expecting the table to show one row after i exit the addSomething method.
The problem: the table is not getting refreshed.
I tried
BindingContainer bindings = getBindings();
OperationBinding operationBinding =
bindings.getOperationBinding("Execute"); // ID of the execute action binding you've created in your pagedef as above
System.out.println("bef ex");
Object result = operationBinding.execute();
with the pagdef having the entry
<action IterBinding="lstPriceeventTypesIterator" id="Execute"
RequiresUpdateModel="true" Action="iteratorExecute"/>
The method getBindings has
public BindingContainer getBindings() {
if (this.bindings == null) {
FacesContext fc = FacesContext.getCurrentInstance();
this.bindings = (
BindingContainer)fc.getApplication().evaluateExpressionGet(fc,
"#{bindings}",
BindingContainer.class);
return this.bindings;
So when i click on the button which accesses the method above; It throws the exception
WARNING: ADF: Adding the following JSF error message: Unexpected exception caught: java.lang.NoClassDefFoundError, msg=javax/faces/context/FacesContext
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.NoClassDefFoundError, msg=javax/faces/context/FacesContext
at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:603)
at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2112)
I do have FacesContext in my library. Any pointers please?It seemed to work:
Changed the following -
BindingContainer bindings = JUMetaObjectManager.getJUMom().getBindingContext().getCurrentBindingsEntry();
used a commandtoolbar button with partialSubmit="true" and the table having a partial trigger on the button (partialTriggers="::ctb1")
a normal commandButton wouldnt require a partialTrigger.....
Any idea if getting the bindingcontainer in this way is correct "JUMetaObjectManager.getJUMom().getBindingContext().getCurrentBindingsEntry(); -
Cell data not getting refreshed in which user enters data OO ALV(editable)
Hi Friends,
I am using OO ALV for editable grid display.
I am unable to change grid data in the cell in which user enters something, using OO ALV. Did through debugging of my own program and found that some problem with system program. Then I did all system debugging. Could not find out why is the grid not getting refreshed with the new data in the cell in which user had entered some value. Rest of the cell's data are getting refreshed with the values which i am updating in the final internal table. I can see that the data in the final internal table is changed for the cell in which user enters data. But even after the call of
CALL METHOD obj_alvgrid1->refresh_table_display
does not refreshes the data in the cell in which user had entered data. Rest of the cells data are getting refreshed.
Piece of code:
SET HANDLER obj_event_receiver->handle_data_changed
FOR obj_alvgrid1.
METHODS: handle_data_changed
FOR EVENT data_changed OF cl_gui_alv_grid
IMPORTING er_data_changed
e_onf4
e_onf4_before
e_onf4_after.
METHOD handle_data_changed.
DATA : v_valid TYPE char1,
v_refresh TYPE char1.
*--check mt_good_cells semantically
CALL METHOD perform_semantic_checks( er_data_changed ).
*--If PBO is again visited, just refresh the ALV grid.
CALL METHOD obj_alvgrid1->refresh_table_display
EXCEPTIONS
finished = 1
OTHERS = 2.
IF sy-subrc <> 0.
EXIT.
ENDIF.
ENDMETHOD.
METHOD perform_semantic_checks.
LOOP AT er_data_changed->mt_good_cells INTO w_good.
v_index = sy-tabix.
CASE w_good-fieldname.
WHEN 'ZASCAS'.
*Now here based on some conditions I am changing my final internal table i_zamtsmatnp
MODIFY i_zamtsmatnp FROM w_zamtsmatnp INDEX
w_good-row_id TRANSPORTING
zascas modif.
User enters data in zascas field. Based on the data entered, I am changing other fields which is getting refreshed. I am also changing zascas in the program even after user had already entered the value which was bit wrong and i am correcting it in the program on the even "data_changed" even.
Please help me friends as i m strugling past hours wondering why the data is not getting refreshed for the cell in which user enter data.
Regards,
SuryaHi Surya,
The approach you are following is correct. You need to use the comibnation of all these things:
Event - DATA_CHANGED
Methods - CHECK_CHANGED_DATA
- GET_CHANGED_DATA.
However, here are few standard programs which are having similar functionality.
BCALV_EDIT_03
BCALV_EDIT_07
Check out these once.
Note: If anything is helpful, dont forget to reward points
Thanks,
Adithya K
SAP Practise
[email protected] -
DDocType meta filed not getting refreshed
Not sure what could be the cause for this. I added some values for dDocType meta data fleld. The values are not getting refreshed. I restarted the server removed browser cookies but still the doct types I see is old. I checked the database to see if the table is updated with values. The values in the table are correct. What could be the reason for dDocTypes not showing the latest entries?
Regards,
PratapThis sounds familiar, I think I solved it by just restarting the browser.
Also check that you're not using pre-defined values for your rules. -
How many times will internal table get filled?
Dear BW / ABAP gurus:
I am observing a routine in a transformation in 7.0 data flow.
The internal table is created as follows in the global declaration in the Start Routine:
TYPES: BEGIN OF ST_PROD,
/BIC/AZPROD TYPE /BIC/OIAZPROD,
/BIC/AZCOST TYPE /BIC/OIAZCOST,
END OF ST_PROD.
DATA: IT_PROD TYPE TABLE OF ST_PROD,
WA_PROD TYPE ST_PROD.
The programmer is fetching data for product cost which is not available in the source. This code is written in the Start Routine:
SELECT /BIC/AZPROD /BIC/AZCOST
FROM /BIC/PAZPROD
INTO CORRESPONDING FIELDS OF TABLE IT_PROD
WHERE OBJVERS = 'A'.
My questions:
(1) Is it a standard practice to create the internal table in the global declaration?
(2) Is it a standard practice to fill the internal table with data in the Start Routine? Is it possible to fill the internal table with data in the global declaration? Or is the global declaration only reserved for declaring variables and creating internal tables?
(3) What is the use of 2nd part global?
(4) Let's say there are 100, 000 records at the source and the DTP package size is 50,000. Then the Start Routine will get executed 2 times. So the code in the Start Routine will hit the database 2 times to fill the internal table. Is this correct?
Note to mods: Please do not delete the thread. Move to the beginner section if you think this is basic. But please do not delete. It take a long time to type out the questions.hi Saurav,
(1) Is it a standard practice to create the internal table in the global declaration?
1. No ,internal table should be created in global part only if they are getting used in field level or end routine .Else they must be in local part and should get refreshed at the end so that performance not get affected.
(2) Is it a standard practice to fill the internal table with data in the Start Routine? Is it possible to fill the internal table with data in the global declaration? Or is the global declaration only reserved for declaring variables and creating internal tables?
1.No if only you want to use the data in field level routine and start routine ,you will fill table in start routine otherwise no .
2.first global part is for data declaration so no in first global part select cannot come .
3.Second global part can have select but you cannot write any statement using source package or result package here as they are private object of transformation class and not recognized at this area.However simple select on any table other than these will be fine .
(3) What is the use of 2nd part global?
1.In second global part you can declare internal table ,structures that are not of type source package or result package but independent and can use them .
2.If you will declare these table in first global part they will be private object and you cannot write select using them in second global part .
3.Second global part is also declaration but outside the class so these objects are global across transformation with more flexibility .
4.If you will declare any data here using the structure of source /result package you will get error .This is a data declaration part comes between transformation definition and implementation part .
(4) Let's say there are 100, 000 records at the source and the DTP package size is 50,000. Then the Start Routine will get executed 2 times. So the code in the Start Routine will hit the database 2 times to fill the internal table. Is this correct?
yes the source and result package are actually the DTP packages only so code will get executed same no of time as you have number of packages in DTP extraction .
Hope this will be helpful .
Regards,
Jaya Tiwari -
JDev 11.1g Table gets lopped.
I come across a problem, when some action is made and page is refreshed the table gets stucked into infinite loop (slide bar is jumping up and down until the browser crashes).
I get some data where this problem ocuurs:
x161 is null
AdfDhtmlPage.prototype.scheduleTimer= function(x157,x158,x159,x160)
AdfAssert.assertFunction(x158);
AdfAssert.assertNumber(x160);
var x161=AdfDhtmlPage._timers;
var x162=AdfDhtmlPage._nextTimerId++;
var x163={context:x157,state:x159,callback:x158,timerId:x162};
x161[x162]=x163;
x163.domTimerId=this.getDomWindow().setTimeout(
"AdfDhtmlPage.__callTimerCallback(" + x162 + ");",x160);
return x162;
too much recursion
AdfDhtmlTablePeer.prototype._getElemBySubId= function(x598,x599)
var x600=this.getDomElement();
if (x600==null)
x600=x599;
return AdfDhtmlTablePeer._getChildBySubId(x600,x598);
}On page is simple table in which in one column are go links, which commits a action (there is no problem with actions).
Thank you for your help, RokCan you check your faces-config.xml file, are navigation rules correct? Check the action property of the component which submits the page..
Regards,
Vikram -
Selection Screen getting refreshed after execution..
Hello All,
I have a strange problem..
My selection-screen values are getting refreshed after execution and come back to selection screen. I am using normal ALV Fm to display the values. Can some suggest a possible reason?
Many thanks,
V NairNo .. I have checked it..Selection variables are not getting refreshed.
My Code Below
REPORT yhr_icm_exception_report.
Type Pool declarations
TYPE-POOLS: slis, "For AlV
sdydo, "Dynamic Documents
icon. "For ICON
Table declarations
TABLES : yhr_icm_exp_log, "ICM Exceptions Log
yhr_icm_exp_hist. "ICM Exception History
Include Constants
INCLUDE yhr_icm_constants . "Program to hold constants
Types declarations
*-To hold return field
TYPES: BEGIN OF ty_returntab.
INCLUDE STRUCTURE ddshretval. "Interface Structure
TYPES: END OF ty_returntab.
*-To hold deletion records
TYPES : BEGIN OF ty_icm_del,
tab_name TYPE yhr_tabname, "Internal table name
objid TYPE hrobjid, "Object ID
begda TYPE begda, "Begin Date
otype TYPE otype, "Object Type
END OF ty_icm_del.
*-Message details to be displayed
TYPES : BEGIN OF ty_message,
msgnr TYPE msgno, "System message number
text TYPE yhr_icm_exp_log-msgxx, "Message Text
END OF ty_message.
*-To hold exception log
TYPES : BEGIN OF ty_icm_exp_log,
msgno TYPE msgnr, "Message number
run_id TYPE yhr_icm_erun_id, "Exception Run ID
delta_id TYPE yhr_icm_run_id, "Run ID
record_type TYPE yhr_icm_exp_type, "Record Type
otype TYPE yhr_otype, "Object Type
objid TYPE hrobjid, "Object ID
begda TYPE begda, "Begin Date
msgxx TYPE msgxx, "Message
status TYPE yhr_icm_icon, "Status
delta_relevance TYPE yhr_delta_rel, "Delta Relevance
END OF ty_icm_exp_log.
*-To hold email attachment
TYPES: BEGIN OF ty_attach,
text(500) TYPE c, "Text
END OF ty_attach.
*To hold object type & text
TYPES :BEGIN OF ty_objid_text,
objid TYPE objid, "Object ID
text TYPE emnam, "Object Text
END OF ty_objid_text.
*-To hold counter values - Exp , Del & historical
TYPES :BEGIN OF ty_count,
exp(10) TYPE c, "Exceptions
del(10) TYPE c, "Deletions
hist(10) TYPE c, "Historical Deletions
END OF ty_count.
*- To hold lock details
TYPES : BEGIN OF ty_lock,
live TYPE c, "Live Callidus Program
genr TYPE c, "Generation Program
exp TYPE c, "Exception Program
END OF ty_lock.
Range Declarations
RANGES :
gr_objid FOR hrp1001-objid, "Range for Object ID
gr_pernr FOR pa0000-pernr. "Range for Employee number
Internal Table Declarations
DATA : gt_records TYPE STANDARD TABLE OF yhr_icm_exp_report,
gt_objid_text TYPE STANDARD TABLE OF ty_objid_text,
gt_icm_exp_log TYPE STANDARD TABLE OF ty_icm_exp_log,
gt_returntab TYPE STANDARD TABLE OF ty_returntab,
gt_t777o TYPE STANDARD TABLE OF t777o,
gt_diff_tab TYPE STANDARD TABLE OF yhr_icm_diff,
gt_del_tab TYPE STANDARD TABLE OF ty_icm_del, "#EC *
gt_iattach TYPE STANDARD TABLE OF ty_attach,
gt_message TYPE STANDARD TABLE OF ty_message,
gt_fieldcat TYPE slis_t_fieldcat_alv,
gt_heading TYPE slis_t_listheader,
gt_exceptions TYPE yhr_icm_exp_list_t,
gt_events TYPE slis_t_event.
Structure Declarations
DATA : gs_objid_text TYPE ty_objid_text,
gs_icm_exp_log TYPE ty_icm_exp_log,
gs_records TYPE yhr_icm_exp_report,
gs_exceptions TYPE yhr_icm_exp_list,
gs_count TYPE ty_count,
gs_fieldcat TYPE slis_fieldcat_alv, "#EC *
gs_returntab TYPE ty_returntab,
gs_icm_exp_hist TYPE yhr_icm_exp_hist,
gs_iattach TYPE ty_attach,
gs_message TYPE ty_message, "#EC *
gs_layout TYPE slis_layout_alv,
gs_t777o TYPE t777o,
gs_lock TYPE ty_lock.
Constant declarations
CONSTANTS:
c_yes TYPE string VALUE 'YES',
c_no TYPE string VALUE 'NO',
c_true TYPE c VALUE 'X',
c_deletions TYPE c VALUE 'D',
c_delta_no TYPE c VALUE 'N',
c_delta_yes TYPE c VALUE 'Y',
c_historical TYPE c VALUE 'H',
c_a TYPE c VALUE 'A',
c_error TYPE c VALUE 'E',
c_equal(2) TYPE c VALUE 'EQ',
c_participants TYPE c VALUE 'P',
c_include TYPE c VALUE 'I',
c_position TYPE c VALUE 'S',
c_organization TYPE c VALUE 'O',
c_runlock TYPE string VALUE 'RUN_LOCK',
c_parameter TYPE string VALUE 'P',
c_selfield TYPE string VALUE 'SEL_FIELD' ,
c_type TYPE string VALUE 'TYPE',
c_topofpage TYPE string VALUE 'TOP_OF_PAGE',
c_rectype TYPE string VALUE ' S_RECTYPE',
c_objectkey TYPE string VALUE 'OBJECTKEY1',
c_icon_green TYPE string VALUE '@08@',
c_icon_red TYPE string VALUE '@0A@',
c_icon_amber TYPE string VALUE '@09@',
c_green TYPE string VALUE 'GREEN',
c_amber TYPE string VALUE 'AMBER',
c_red TYPE string VALUE 'RED',
c_tabname TYPE slis_tabname VALUE 'GT_RECORDS',
c_structname TYPE dd02l-tabname VALUE 'YHR_ICM_EXP_REPORT' ,
c_siwb_wallpaper TYPE sdydo_key VALUE 'SIWB_WALLPAPER',
c_user_command TYPE slis_formname VALUE 'F01_ALV_EVENT_USER_COMMAND',
c_genname TYPE trdir-name VALUE 'YHR_ICM_GENERATE_EXCEPTIONS',
c_expname TYPE trdir-name VALUE 'YHR_ICM_EXCEPTION_REPORT',
c_pf_status TYPE slis_formname VALUE 'SET_PF_STATUS',
c_msg_class TYPE string VALUE 'YHR_ICM'.
Global Variable Declarations
DATA: gv_email_error TYPE c,
gv_email_sent TYPE c,
gv_exit TYPE c.
Selection Screen - Block I
SELECTION-SCREEN: BEGIN OF BLOCK b3 WITH FRAME TITLE text-s07.
SELECT-OPTIONS:
*- Run ID
s_run_id FOR yhr_icm_exp_hist-run_id,
*- Exception Type
s_rectyp FOR yhr_icm_exp_log-record_type NO INTERVALS,
*- Object Type
s_otype FOR yhr_icm_exp_log-otype NO INTERVALS,
*- Object ID
s_objid FOR yhr_icm_exp_log-objid NO INTERVALS,
*- Start Date
s_begda FOR yhr_icm_exp_log-begda,
*- Message number
s_msgno FOR yhr_icm_exp_log-msgno,
*- Message Text
s_msgxx FOR yhr_icm_exp_log-msgxx.
SELECT-OPTIONS:
*- Delta Relevance
s_relv FOR yhr_icm_exp_log-delta_relevance NO INTERVALS.
PARAMETERS:
*- Long Text
p_ltext AS CHECKBOX DEFAULT ' '.
SELECTION-SCREEN: END OF BLOCK b3.
Selection Screen - Block II
SELECTION-SCREEN: BEGIN OF BLOCK b2 WITH FRAME TITLE text-s08.
SELECTION-SCREEN BEGIN OF LINE.
SELECTION-SCREEN COMMENT 1(14) text-033.
*-Sucess
PARAMETERS:
p_stat_s AS CHECKBOX. "D11K917251
SELECTION-SCREEN COMMENT 24(14) text-034.
*-Warning
PARAMETERS:
p_stat_w AS CHECKBOX. "D11K917251
SELECTION-SCREEN COMMENT 48(15) text-035.
PARAMETERS:
*-Error
p_stat_e AS CHECKBOX . "D11K917251
SELECTION-SCREEN END OF LINE.
SELECTION-SCREEN: END OF BLOCK b2.
Selection Screen - Block III
SELECTION-SCREEN: BEGIN OF BLOCK b4 WITH FRAME TITLE text-s09.
*-Email Details
PARAMETERS:
p_email(128) TYPE c.
SELECTION-SCREEN: END OF BLOCK b4.
Selection Screen on value request.
AT SELECTION-SCREEN ON VALUE-REQUEST FOR s_msgno-low.
PERFORM f4_message.
Selection Screen Output.
AT SELECTION-SCREEN OUTPUT.
CHECK gt_returntab[] IS NOT INITIAL.
REFRESH s_msgno.
s_msgno-option = c_equal.
s_msgno-sign = c_include.
LOOP AT gt_returntab INTO gs_returntab.
s_msgno-low = gs_returntab-fieldval.
s_msgno-high = space.
APPEND s_msgno.
ENDLOOP.
At Selection Screen for Validation
AT SELECTION-SCREEN.
CLEAR gv_email_error.
*-Validate Object Type
PERFORM validate_objecttype.
*-Validate Exception ID
PERFORM fetch_exp_header.
*-Validate Exception Type
PERFORM validate_exptype.
*-Validate Message Number
PERFORM validate_msgno.
*-Validate Message Type
PERFORM validate_msgtype.
*-Validate Delta
PERFORM validate_delta.
*-Validate Email ID
PERFORM validate_email USING p_email
CHANGING gv_email_error.
IF gv_email_error IS NOT INITIAL.
MESSAGE e000(yhr_icm) WITH text-027.
ENDIF.
Initialization
INITIALIZATION.
Initialization
PERFORM initialization.
Start Of Selection
START-OF-SELECTION.
CLEAR : gv_email_error,
gv_email_sent,
gv_exit,
gs_lock.
Try locking the main program
PERFORM lock_generation_program.
CHECK gs_lock IS INITIAL.
*-Fetch the messages stored in table
PERFORM fetch_item_records.
Read object type text.
PERFORM read_text.
Get Object Text
PERFORM get_object_text.
*-Fetch the current SAP messages
PERFORM fetch_records.
*-Update Delta Flag
PERFORM update_delta_flag.
*-Compare messages in table & in SAP
PERFORM compare_message.
If receiver is not blank, try sending out mail
PERFORM send_mail USING p_email.
End Of Selection
END-OF-SELECTION.
IF gv_exit IS NOT INITIAL.
EXIT.
ENDIF.
*-Display ALV
PERFORM display_alv.
*-Build the event table for ALV display
PERFORM build_eventtab CHANGING gt_events[].
*-Fill the layout details
PERFORM layout_build .
Release all locks
PERFORM release_locks.
*-Finally call the grid display
PERFORM display_data.
*& Form set_pf_status
text
-->RT_EXTAB text
FORM set_pf_status USING rt_extab TYPE slis_t_extab. "#EC *
Set PF Status
SET PF-STATUS 'STANDARD'.
ENDFORM. "Set_pf_status
*& Form DISPLAY_ALV
text
--> p1 text
<-- p2 text
FORM display_alv .
*- Use FM to create field catalog
CALL FUNCTION 'REUSE_ALV_FIELDCATALOG_MERGE'
EXPORTING
i_program_name = sy-repid
i_internal_tabname = c_tabname
i_structure_name = c_structname
CHANGING
ct_fieldcat = gt_fieldcat
EXCEPTIONS
inconsistent_interface = 1
program_error = 1
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-001.
EXIT.
ENDIF.
*- Remove SEL Field Column as it is not required
DELETE gt_fieldcat WHERE fieldname = c_selfield.
*-If user chooses long text, activate icon
IF p_ltext IS INITIAL.
LOOP AT gt_fieldcat INTO gs_fieldcat WHERE fieldname = c_type.
gs_fieldcat-icon = c_true.
ENDLOOP.
ENDIF.
ENDFORM. " DISPLAY_ALV
*& Form BUILD_EVENTTAB
text
<--P_GT_EVENTS[] text
FORM build_eventtab CHANGING p_events TYPE slis_t_event.
DATA: ls_event TYPE slis_alv_event.
*-Get the list of event for alv
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 0
IMPORTING
et_events = p_events.
*-Add top of page event to event list
READ TABLE p_events
WITH KEY name = slis_ev_top_of_page
INTO ls_event.
IF sy-subrc = 0.
MOVE c_topofpage TO ls_event-form.
APPEND ls_event TO p_events.
ENDIF.
ENDFORM. " BUILD_EVENTTAB
*& Form LAYOUT_BUILD
text
--> p1 text
<-- p2 text
FORM layout_build .
gs_layout-zebra = c_true.
gs_layout-colwidth_optimize = c_true.
gs_layout-detail_popup = c_true.
gs_layout-detail_initial_lines = c_true.
gs_layout-detail_titlebar = text-044.
gs_layout-box_fieldname = c_selfield.
ENDFORM. " LAYOUT_BUILD
*& Form DISPLAY_DATA
text
--> p1 text
<-- p2 text
FORM display_data .
*-Display ALV display
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_user_command = c_user_command
i_background_id = c_siwb_wallpaper
i_callback_program = sy-repid
i_callback_pf_status_set = c_pf_status
i_default = c_true
i_save = c_a
is_layout = gs_layout
it_fieldcat = gt_fieldcat
it_events = gt_events
TABLES
t_outtab = gt_records.
ENDFORM. " DISPLAY_DATA
*& Form FETCH_RECORDS
text
--> p1 text
<-- p2 text
FORM fetch_records .
REFRESH : gt_diff_tab,
gt_del_tab,
gr_pernr,
gt_exceptions.
CLEAR: gs_icm_exp_log.
*-Get Employee details
PERFORM get_person_data.
*-Get Position Details
PERFORM get_position_data.
*-Get Organization Details
PERFORM get_org_data.
*-Get Exception current SAP exception list.
PERFORM get_exception_list.
*-Add deletion records
PERFORM filter_deletions.
ENDFORM. " FETCH_RECORDS
*& Form top_of_page
text
FORM top_of_page. "#EC *
PERFORM build_comment USING gt_heading.
*-Display Use FM to display Top Of Page
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = gt_heading[].
CLEAR gt_heading.
ENDFORM. "TOP_OF_PAGE
*& Form build_comment
text
-->P_HEADING text
FORM build_comment USING p_heading TYPE slis_t_listheader.
DATA: ls_hline TYPE slis_listheader,
lv_text(120) TYPE c.
*-Display report title
ls_hline-typ = c_historical.
WRITE text-006 TO lv_text.
ls_hline-info = lv_text.
APPEND ls_hline TO p_heading.
CLEAR ls_hline.
ls_hline-typ = c_s.
*-Remove leading & trailing spaces
CONDENSE : gs_count-del, gs_count-exp, gs_count-hist.
*-If the count is space then pass 0
IF gs_count-del = space.
gs_count-del = 0.
ENDIF.
IF gs_count-exp = space.
gs_count-exp = 0.
ENDIF.
IF gs_count-hist = space.
gs_count-hist = 0.
ENDIF.
IF gs_lock IS INITIAL.
*-Display Deletion, Exception, Historical Count
CONCATENATE text-037 gs_count-del
text-032 gs_count-exp
text-039 gs_count-hist
INTO ls_hline-info SEPARATED BY space.
ELSEIF gs_lock-live IS NOT INITIAL.
ls_hline-info = text-007.
ELSEIF gs_lock-genr IS NOT INITIAL.
ls_hline-info = text-008.
ELSEIF gs_lock-exp IS NOT INITIAL.
ls_hline-info = text-009.
ENDIF.
APPEND ls_hline TO p_heading.
CLEAR ls_hline.
ENDFORM. "BUILD_COMMENT
*& Form INITIALIZATION
text
--> p1 text
<-- p2 text
FORM initialization .
Read Previous run
SELECT MAX( run_id )
INTO s_run_id-low
FROM yhr_icm_exp_hist. "#EC *
s_run_id-option = c_equal.
s_run_id-sign = c_include.
APPEND s_run_id.
s_rectyp-option = c_equal.
s_rectyp-sign = c_include.
s_rectyp-low = c_error.
APPEND s_rectyp.
s_rectyp-low = c_deletions.
APPEND s_rectyp.
PERFORM restrict_selections.
*Get the message from Message Class YHR_ICM
SELECT msgnr
text
FROM t100
INTO TABLE gt_message
WHERE arbgb = c_msg_class AND
msgnr GT '000'. "#EC *
ENDFORM. " INITIALIZATION
*& Form F4_MESSAGE
text
<--P_P_MSGNO text
FORM f4_message.
F4 Help - Display all messages
CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'
EXPORTING
retfield = 'MSGNR'
dynpprog = sy-cprog
dynpnr = sy-dynnr
dynprofield = 'S_MSGNR'
window_title = text-045
value_org = c_s
multiple_choice = c_true
TABLES
value_tab = gt_message
return_tab = gt_returntab
EXCEPTIONS
parameter_error = 1
no_values_found = 2
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-002.
EXIT.
ELSEIF sy-subrc = 2.
MESSAGE i000(yhr_icm) WITH text-003.
EXIT.
ENDIF.
ENDFORM. " F4_MESSAGE
*& Form VALIDATE_OBJECTTYPE
text
--> p1 text
<-- p2 text
FORM validate_objecttype .
CHECK s_otype-low IS NOT INITIAL.
CONDENSE s_otype-low.
Validate object type to check whether user has entered only S, P or O
IF s_otype-low NE c_organization AND
s_otype-low NE c_position AND
s_otype-low NE c_participants .
MESSAGE e000(yhr_icm) WITH 'Enter either S(Position), P(Person) or O(Org Unit)'(021).
ENDIF.
ENDFORM. " VALIDATE_OBJECTTYPE
*& Form VALIDATE_OBJECTTYPE
FORM f01_alv_event_user_command USING r_ucomm LIKE sy-ucomm
rs_selfield TYPE slis_selfield."#EC *
DATA : lv_answer TYPE c,
lt_fields TYPE STANDARD TABLE OF sval,
ls_fields TYPE sval.
*-Get the row user has selected in ALV list
READ TABLE gt_records INTO gs_records INDEX rs_selfield-tabindex.
CASE r_ucomm.
WHEN 'DISP'.
CASE gs_records-otype.
WHEN 'S'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.
WHEN 'P'.
SET PARAMETER ID 'PER' FIELD gs_records-objid.
CALL TRANSACTION 'PA20' AND SKIP FIRST SCREEN.
WHEN 'O'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01_DISP' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN 'CHNG'.
CASE gs_records-otype.
WHEN 'S'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.
WHEN 'P'.
SET PARAMETER ID 'PER' FIELD gs_records-objid.
CALL TRANSACTION 'PA30' AND SKIP FIRST SCREEN.
WHEN 'O'.
SET PARAMETER ID 'POT' FIELD gs_records-otype.
SET PARAMETER ID 'PON' FIELD gs_records-objid.
CALL TRANSACTION 'PP01' AND SKIP FIRST SCREEN.
ENDCASE.
WHEN 'EMAIL'.
*- Check whether email has already been sent
IF gv_email_sent = c_true.
*- If yes, then display pop up to confirm for mailing again
CALL FUNCTION 'POPUP_TO_CONFIRM'
EXPORTING
text_question = text-041
text_button_1 = text-042
text_button_2 = text-043
IMPORTING
answer = lv_answer
EXCEPTIONS
text_not_found = 1
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-004.
EXIT.
ENDIF.
*- Continue only if user has selected Yes
CHECK lv_answer = '1'.
ENDIF.
*- Add Email Field & Table
ls_fields-tabname = 'SZA5_D0700'.
ls_fields-fieldname = 'SMTP_ADDR'.
APPEND ls_fields TO lt_fields.
*- Use FM to get new Email ID
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
popup_title = text-s09
start_column = '5'
start_row = '5'
TABLES
fields = lt_fields
EXCEPTIONS
error_in_fields = 1
OTHERS = 1.
IF sy-subrc = 1.
MESSAGE i000(yhr_icm) WITH text-004.
EXIT.
ENDIF.
*- Get the Email user has entered
READ TABLE lt_fields INTO ls_fields INDEX 1.
*- Validate Email ID
PERFORM validate_email USING ls_fields-value
CHANGING gv_email_error.
*- If the flag is not initial, indicates possible error
IF gv_email_error IS NOT INITIAL.
MESSAGE i000(yhr_icm) WITH text-027.
EXIT.
ELSE.
If no error, then try ending email
PERFORM send_mail USING ls_fields-value.
ENDIF.
WHEN 'REFRESH'.
*- Fetch the current SAP messages
PERFORM fetch_records.
*- Update Delta Flag
PERFORM update_delta_flag.
*- Compare messages in table & in SAP
PERFORM compare_message.
*- Refresh alv which is already displayed
rs_selfield-refresh = c_true.
ENDCASE.
ENDFORM. "F01_ALV_EVENT_USER_COMMAND
*& Form RESTRICT_SELECTIONS
text
--> p1 text
<-- p2 text
FORM restrict_selections .
TYPE-POOLS sscr.
STATICS: lt_restrict TYPE sscr_restrict,
lt_opt_list TYPE sscr_opt_list,
ls_*** TYPE sscr_***.
Restrict the wage type selection so the user can only enter
values with the 'EQ' clause.
CLEAR lt_opt_list.
MOVE c_objectkey TO lt_opt_list.
MOVE c_true TO: lt_opt_list-options-eq,
lt_opt_list-options-bt,
lt_opt_list-options-cp,
lt_opt_list-options-eq,
lt_opt_list-options-ge,
lt_opt_list-options-gt,
lt_opt_list-options-le,
lt_opt_list-options-lt.
APPEND lt_opt_list TO lt_restrict-opt_list_tab.
MOVE: c_s TO ls_***-kind,
c_rectype TO ls_***-name,
c_include TO ls_***-sg_main,
space TO ls_***-sg_addy,
c_objectkey TO ls_***-op_main.
APPEND ls_*** TO lt_restrict-***_tab.
*-Restrict the values OTYPE
MOVE 'S_OTYPE' TO ls_***-name.
APPEND ls_*** TO lt_restrict-***_tab.
*-Restrict the values OBJID
MOVE 'S_OBJID' TO ls_***-name.
APPEND ls_*** TO lt_restrict-***_tab.
*-Use FM to restrict the values
CALL FUNCTION 'SELECT_OPTIONS_RESTRICT'
EXPORTING
restriction = lt_restrict.
ENDFORM. " RESTRICT_SELECTIONS
*& Form GET_PERSON_DATA
text
--> p1 text
<-- p2 text
FORM get_person_data .
DATA : lt_del_tab TYPE STANDARD TABLE OF yhr_icm_diff.
SORT gt_icm_exp_log BY msgno .
gr_pernr-sign = c_include.
gr_pernr-option = c_equal.
LOOP AT gt_icm_exp_log INTO gs_icm_exp_log WHERE otype = c_participants AND
record_type = c_error.
*- Sort the table based on msgno and collect pernr
gr_pernr-sign = c_include.
gr_pernr-option = c_equal.
gr_pernr-low = gs_icm_exp_log-objid.
APPEND gr_pernr.
CLEAR gr_pernr-low.
AT END OF msgno. "#EC *
*- For the list of Pernr having same PERNR get the current exp details
IF gs_icm_exp_log-msgno = c_msg_100.
*- Export the pernr list to memory id & import in the below FM
*- Selection of records should be based on values exported from here
EXPORT gr_pernr TO MEMORY ID 'PERNR_0001'.
Get Org Assignment 0001 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0001_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_101. "Y_HR_DIFF_PERNR_0001_ORG_DATA
ELSEIF gs_icm_exp_log-msgno = c_msg_102 .
EXPORT gr_pernr TO MEMORY ID 'PERNR_0000'.
Get Actions 0000 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0000_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_103.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0002'.
Get Personal Details 0002 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0002_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_104.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0004'.
Get Disability 0004 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0004_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_105.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0006'.
Get Addresses 0006 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0006_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_106.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0007'.
Get Planned Time 0007 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0007_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_107.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0016'.
Get Contract Element 0016 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0016_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_108.
EXPORT gr_pernr TO MEMORY ID 'PERNR_0077'.
Get Additional Personal 0077 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0077_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_109 .
EXPORT gr_pernr TO MEMORY ID 'PERNR_0105'.
Get Communications 0105 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_0105_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda
refresh = space
UPDATE = space
TABLES
diff_tab = gt_diff_tab
del_tab = lt_del_tab.
ELSEIF gs_icm_exp_log-msgno = c_msg_110.
EXPORT gr_pernr TO MEMORY ID 'PERNR_2001'.
Get Absences 2001 Data
CALL FUNCTION 'Y_HR_DIFF_PERNR_2001_DATA'
EXPORTING
period_begda = gs_icm_exp_hist-begda
period_endda = gs_icm_exp_hist-endda -
Focus on next navigatble item in ADF Table after refresh
Hi,
How to set the focus in the ADF table to next navigable item after Table Refresh.
I have valueChangeListner set to one of the columns in the table. Once the Value is changed in the Column we perform calculations based on the value and update the RowIterator.
To get the updated values I refresh the Table. It shows the updated values correctly.
After refresh the contorl/focus moves to the Table header.
Instead We would like to have the focus on the next navigable Item in the Table.
Or is there a way to change the values in the Table without refreshing by Partial trigger on the Table.
Thanks,
SatyaHi Arun,
I did that but it doesn't seems to be working as it need to refresh its own column.
eg:
Row COL1 COL2
R1: Rxxxx Val1
R2: Lxxxx Val2
R3: Exxxx Val3
R4: Fxxxx Val4
When I modify Val1 Val4 need to be calculated using val1-val3/val2
I'm doing this in ValueChangeListener. and setting attribute values by finding the correct row using RowsetIterator.
When I refresh the Table Iterator in Row R4 Val4 is showing the correct values.
But If I refresh the COL2 it doesn't change the value in row R4
I have tried by setting IterartorBinding Refresh to always / ifneeded. Tried both declarative and Dynamically. There is no effect.
Thanks,
Satya -
ALV tree not getting refreshed
Hi
I have 2 fields A and B in the main screen and a tabstrip with 4 tabs.
Each tab contains a ALV tree
Now when I open the main screen for the first time the ALV tree data is coming properly as per the default values of A and B.
But when I change the values of A or B the ALV tree does not get refreshed. The final table has the changed data but the ALV shows only the old data.
I am doing the ALV tree for the first time in module pool. Please provide some sample code to refresh the ALV tree.
Regards,Hi
Alv tree is now getting refreshed.The subscreen refresh problem is solved
we have to use REFRESH_TABLE_DISPLAY method to do it.
if tree1 is initial
create object
create container
call method set_table_for_first display
else.
call method refresh_table_display.
endif.
Regards,
Mozila -
Urgent - MV not getting refreshed
I created a MV as under.
CREATE MATERIALIZED VIEW schema.abc_mv
TABLESPACE "aaa"
REFRESH FAST ON DEMAND START WITH sysdate+0 NEXT SYSDATE+5/1440
AS SELECT *
FROM abc@dblink;
Its not getting refreshed. Yesterday one record was inserted in the abc table but the MV was not refreshed. I tried refreshing the MV manually by running the below script but its still not working. PLEASE HELPPPP!
BEGIN
DBMS_MVIEW.REFRESH('abc_mv');
END;For urgent issues please log with metalink
Maybe you are looking for
-
How do I connect Bowers & Wilkins speakers to my MacBook Pro via AirPlay?
The speakers connect with my iPhone & iPad no problem but the speakers do not show under the AirPlay icon on the top toolbar of my MacBook Pro. When I go into Preferences > Sound > Output, I can then see the speakers but my Bluetooth speaker connecti
-
Correct way to obtain AppModule from ManagedBean?
hi, There are many posts on this forum and others in the net with examples on how to obtain an AppModule from a ManagedBean (some of them uses depecrated methods, like using ValueBinding). But what's the correct way to do so? Is this the correct one
-
Error: pre-defined filters are no longer available in the universe
Hi All, I'm getting following error message while schedule the webi report . "Some pre-defined filters are no longer available in the universe. See your Business Objects administrator. (Error: WIS 00003) ". I have migrated the universe and reports fr
-
Autorization object for veiwing log of process chain
Hi, I am looking out for an authorization object or role which will give only access to view the log generated on a day due to the execution of process chain. Thanks in advance. Regards, Naveen
-
Why does my keyboard have a gap in it?
Why does my keyboard have a gap in it?