How to suppress 'spurious' update events where the entry is identical
We often have clusters with event listeners on reference data caches. These caches are refreshed by calling putAll() to update values efficiently. Although this is efficient, and keeps refresh code simple, many unwanted 'spurious' update events are generated. Spurious in the sense that in most of update events the old and new values are the same.
We considered using a MapTrigger to suppress these uninteresting update events. The problem is how to implement a 'veto' in the MapTrigger.process method. What we'd like to do from a trigger is:
if (old value == new value)
ignore new entry
else
process, enrich, or validate new entry as desired...
end ifWe'd like a clean way to signal from a MapTrigger that an entry should be ignored (rather than rejected). The Javadoc shows two possibilities:
*(1)* undo the pending change by resetting the entry value to the original value obtained from MapTrigger.Entry.getOriginalValue();
*(2)* reject the pending change by throwing a RuntimeException, which will prevent any changes from being committed, and will result in the exception being thrown from the operation that attempted to modify the map
Of these *(2)* Causes a put() failure in the client. That is appropriate for something like a validation failure, but not for simply ignoring an unwanted update. Option *(1)* unfortunately generates an update event!
Our current workaround is a MapEventTransformer to suppress the spurious updates:
public class UpdateSupressionTransformer implements MapEventTransformer {
/** Avoid sending an update event if the value is unchanged */
public MapEvent transform(MapEvent e) {
if (e.getId() == MapEvent.ENTRY_UPDATED) {
if (e.getNewValue().equals(e.getOldValue())) {
return null;
return e;
}This works well but requires client code to register event listeners correctly. It also means that the unecessary change is still generated in the cache. For example a cache stores will be called needlessly.
Can a feature be considered to allow a clean way for identical updates to be ignored, or to not generate events?
Ideally this would be before the update is made - like a trigger. It seems a pity the MapTrigger design does not allow this.
Such a feature would allow simple cache refresh logic using putAll() - without having to check for deltas - avoiding large numbers of unwanted update events. We think this is likely to be a common requirement.
Cheers,
phil
Hi,
I dont think that this is the problem associated with portal.You are working on BI queries in portal but BI screen that you are working on is of SAP R/3 correct me is i am wrong??And the message you are getting is of R/3 screen,BI screens are shown in an iview and an iview cant show any message..
Regards,
Ameya
Similar Messages
-
How do i add an event to the calendar of my ipad?
Just purchased a new IPAD, 1st time user. How do i add an event to the calendar of my ipad? i do not have a "+" symbol.
Go to Settings>iCloud>Calendar>On then Off. Toggle the on/off setting. If you want to use iCloud with the calendar, leave it set to on.
-
HT2513 how do I schedule daily events in the same sequence
How do I schedule daily events in the same sequence.
Hello LeatherneckDevilDog,
Thank you for the details of the issue you are experiencing with duplicate calendar entries. I recommend reviewing the following articles to resolve issues with iCal duplicates:
iCloud: Resolving duplicate calendars after setting up your calendar application for iCloud Calendar
http://support.apple.com/kb/TS4118
iCloud: Advanced Calendar and iCal troubleshooting
http://support.apple.com/kb/TS4337
Thank you for using Apple Support Communities.
Best,
Sheila M. -
How to delete unreleased transport request where the objects are locked
Hi Experts,
I was created a transport request, but I am facing some probelms with taht request, now I want to delete transport request. I tried to delete them in SE10, I am getting message that the objects are locked. Please tell me how to delete unreleased transport requests where the objects belong to this transport request are locked.Hi,
First go to transaction se03 Choose "Unlock Objects (Expert Tool)" option under "Requests/Tasks" and unlock your task,
Than go to se10 and delete what you want.
I hope it helps.
Bulent -
How do you clear updated apps from the App Store
How can you clear updated apps from the list in App Store?
What do you mean by "clear"?
Have a look here: iOS 8: App Store Updates Do Not Clear
If it is the badge count that does not fit, it might be that iTunes is the cause (12.0.1.26). -
iCal 'on my mac' to iPhone - How can I see on my phone, the entries in calendars under 'On My Mac'?
I have several entries (too many) on calendars created prior to iCloud. They are listed as calendars 'On My Mac'. How can I get this information to my phone? I understand that iCloud makes On My Mac calendars obsolete?
I use my phone calendar to see my duties for the day, and only add entries if I'm out and on the fly. These I don't mind typing into the iCloud calendars. But my regular process when I'm sitting in front of the computer is to add them via iCal using the On My Mac calendars created years ago, over time. I need to see this information while on the go. How can I?Welcome to the Apple Community.
Create a new empty calendar from the iCal file menu, select which account you want to create it in.
If you have only a few appointments you can move them individually by editing them and changing the calendar in the edit options.
Alternatively you can copy all the appointments in one calendar to another and delete the original.
To copy a calendar ctrl-click on it from the menu that appears when you select the calendar button (top left corner of iCal) and choose export (export it to your desktop for ease)
Double click the exported file and choose the new empty calendar to import them into.
Ctrl-click on the original calendar from the menu that appears when you select the calendar button and choose delete. -
I am using Windows 7 and Outlook 2010. I have synced my Outlook calendar with my iPhone using the iCloud Control Panel. This is great, but when I add an event in the iCloud calendar in Outlook 2010 and subsequently send out invitations to the event, I get the following error:
"This meeting is not in the Calendar folder for this account. Responses to this meeting will not be tallied. Do you want to send anyway?"
I select "Yes" and the invite goes out. However, when invitees receive the email invitation, there should be 2 emails - one from Outlook and one from iCloud. The iCloud invite does not always come through. If the invitee responds to the Outlook email invite, it does not show up on the iCloud Calendar.
Is there a reason that the iCloud email is not always sent or is there a way to some how update the Windows Outlook Calendar when adding events in the iCloud Calendar through Outlook?I have just discovered this problem as well.
Very annoying!
Now all off my meetings entered in Outlook on my desktop PC are not syncing with my ipad and iphone.
If I had known this would have happened I would never have downloaded Version 2.0 of the icloud control panel.
Does anyone know how I can get the earlier version back? -
How can I enter an event for the first Monday of every month?
I used to have a Custom choice that allowed me to select day or date for repeat. Where is it?
I don't believe there is such a custom repeat option with the iPhone's Calendar app, but if you are syncing calendar events with a supported calendar app on your computer or syncing calendar events over the air with an email account that supports it with an option to create such a custom repeating event with the online calendar, set up the custom repeating event there.
-
TS3714 how can i set an event in the calander to repeat on 2nd thurday of every month
how can i get an event to show in calander every 2nd thursday every momth
Try the app "Week Cal".
-
How to display subtotal in ALV, where the field is not a numeric.
Hi
We are having a requirement to display the sub total for a field using ALV grid display, where the field is not numeric.
The field is characte, Status field(consists of values Submit, Approve ,Reject), where the subtotal should be value of count of group by status .
say status with submit are 10 records, so after all records with submit status are, displyed, we need to display its subtotal as 10.
Thanks & AdvanceHi Satya,
REPORT z_alv_subtotal.*&---------------------------------------------------------------------*
*& Table declaration
*&---------------------------------------------------------------------*TABLES: ekko.*&---------------------------------------------------------------------*
*& Type pool declaration
TYPE-POOLS: slis. " Type pool for ALV*&---------------------------------------------------------------------*
*& Selection screen
SELECT-OPTIONS: s_ebeln FOR ekko-ebeln.*&---------------------------------------------------------------------*
*& Type declaration
*&---------------------------------------------------------------------** Type declaration for internal table to store EKPO data
TYPES: BEGIN OF x_data,
ebeln TYPE char30, " Document no.
ebelp TYPE ebelp, " Item no
matnr TYPE matnr, " Material no
matnr1 TYPE matnr, " Material no
werks TYPE werks_d, " Plant
werks1 TYPE werks_d, " Plant
ntgew TYPE entge, " Net weight
gewe TYPE egewe, " Unit of weight
END OF x_data.*&---------------------------------------------------------------------*
*& Internal table declaration
DATA:* Internal table to store EKPO data
i_ekpo TYPE STANDARD TABLE OF x_data INITIAL SIZE 0,
* Internal table for storing field catalog information
i_fieldcat TYPE slis_t_fieldcat_alv,
* Internal table for Top of Page info. in ALV Display
i_alv_top_of_page TYPE slis_t_listheader,
* Internal table for ALV Display events
i_events TYPE slis_t_event,
* Internal table for storing ALV sort information
i_sort TYPE slis_t_sortinfo_alv,
i_event TYPE slis_t_event.*&---------------------------------------------------------------------*
*& Work area declaration
*&---------------------------------------------------------------------*DATA:
wa_ekko TYPE x_data,
wa_layout TYPE slis_layout_alv,
wa_events TYPE slis_alv_event,
wa_sort TYPE slis_sortinfo_alv.*&---------------------------------------------------------------------*
*& Constant declaration
*&---------------------------------------------------------------------*CONSTANTS:
c_header TYPE char1
VALUE 'H', "Header in ALV
c_item TYPE char1
VALUE 'S'.*&---------------------------------------------------------------------*
*& Start-of-selection event
*&---------------------------------------------------------------------*START-OF-SELECTION.* Select data from ekpo
SELECT ebeln " Doc no
ebelp " Item
matnr " Material
matnr " Material
werks " Plant
werks " Plant
ntgew " Quantity
gewei " Unit
FROM ekpo
INTO TABLE i_ekpo
WHERE ebeln IN s_ebeln
AND ntgew NE '0.00'. IF sy-subrc = 0.
SORT i_ekpo BY ebeln ebelp matnr .
ENDIF.* To build the Page header
PERFORM sub_build_header.* To prepare field catalog
PERFORM sub_field_catalog.* Perform to populate the layout structure
PERFORM sub_populate_layout.* Perform to populate the sort table.
PERFORM sub_populate_sort.* Perform to populate ALV event
PERFORM sub_get_event.END-OF-SELECTION.* Perform to display ALV report
PERFORM sub_alv_report_display.
*& Form sub_build_header
* To build the header
* No Parameter
FORM sub_build_header .* Local data declaration
DATA: l_system TYPE char10 , "System id
l_r_line TYPE slis_listheader, "Hold list header
l_date TYPE char10, "Date
l_time TYPE char10, "Time
l_success_records TYPE i, "No of success records
l_title(300) TYPE c. " Title
* Title Display
l_r_line-typ = c_header. " header
l_title = 'Test report'(001).
l_r_line-info = l_title.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR l_r_line.* Run date Display
CLEAR l_date.
l_r_line-typ = c_item. " Item
WRITE: sy-datum TO l_date MM/DD/YYYY.
l_r_line-key = 'Run Date :'(002).
l_r_line-info = l_date.
APPEND l_r_line TO i_alv_top_of_page.
CLEAR: l_r_line,
l_date.ENDFORM. " sub_build_header
*& Form sub_field_catalog
* Build Field Catalog
* No Parameter
FORM sub_field_catalog .* Build Field Catalog
PERFORM sub_fill_alv_field_catalog USING: '01' '01' 'EBELN' 'I_EKPO' 'L'
'Doc No'(003) ' ' ' ' ' ' ' ', '01' '02' 'EBELP' 'I_EKPO' 'L'
'Item No'(004) 'X' 'X' ' ' ' ', '01' '03' 'MATNR' 'I_EKPO' 'L'
'Material No'(005) 'X' 'X' ' ' ' ', '01' '03' 'MATNR1' 'I_EKPO' 'L'
'Material No'(005) ' ' ' ' ' ' ' ',
'01' '04' 'WERKS' 'I_EKPO' 'L'
'Plant'(006) 'X' 'X' ' ' ' ', '01' '04' 'WERKS1' 'I_EKPO' 'L'
'Plant'(006) ' ' ' ' ' ' ' ', '01' '05' 'NTGEW' 'I_EKPO' 'R'
'Net Weight'(007) ' ' ' ' 'GEWE' 'I_EKPO'.ENDFORM. " sub_field_catalog*&---------------------------------------------------------------------*
*& Form sub_fill_alv_field_catalog
*& For building Field Catalog
*& p_rowpos Row position
*& p_colpos Col position
*& p_fldnam Fldname
*& p_tabnam Tabname
*& p_justif Justification
*& p_seltext Seltext
*& p_out no out
*& p_tech Technical field
*& p_qfield Quantity field
*& p_qtab Quantity table
FORM sub_fill_alv_field_catalog USING p_rowpos TYPE sycurow
p_colpos TYPE sycucol
p_fldnam TYPE fieldname
p_tabnam TYPE tabname
p_justif TYPE char1
p_seltext TYPE dd03p-scrtext_l
p_out TYPE char1
p_tech TYPE char1
p_qfield TYPE slis_fieldname
p_qtab TYPE slis_tabname.* Local declaration for field catalog
DATA: wa_lfl_fcat TYPE slis_fieldcat_alv. wa_lfl_fcat-row_pos = p_rowpos. "Row
wa_lfl_fcat-col_pos = p_colpos. "Column
wa_lfl_fcat-fieldname = p_fldnam. "Field Name
wa_lfl_fcat-tabname = p_tabnam. "Internal Table Name
wa_lfl_fcat-just = p_justif. "Screen Justified
wa_lfl_fcat-seltext_l = p_seltext. "Field Text
wa_lfl_fcat-no_out = p_out. "No output
wa_lfl_fcat-tech = p_tech. "Technical field
wa_lfl_fcat-qfieldname = p_qfield. "Quantity unit
wa_lfl_fcat-qtabname = p_qtab . "Quantity table IF p_fldnam = 'NTGEW'.
wa_lfl_fcat-do_sum = 'X'.
ENDIF.
APPEND wa_lfl_fcat TO i_fieldcat.
CLEAR wa_lfl_fcat.
ENDFORM. " sub_fill_alv_field_catalog*&---------------------------------------------------------------------*
*& Form sub_populate_layout
* Populate ALV layout
* No Parameter
FORM sub_populate_layout . CLEAR wa_layout.
wa_layout-colwidth_optimize = 'X'." Optimization of Col widthENDFORM. " sub_populate_layout*&---------------------------------------------------------------------*
*& Form sub_populate_sort
* Populate ALV sort table
* No Parameter
FORM sub_populate_sort .* Sort on material
wa_sort-spos = '01' .
wa_sort-fieldname = 'MATNR'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.* Sort on plant
wa_sort-spos = '02'.
wa_sort-fieldname = 'WERKS'.
wa_sort-tabname = 'I_EKPO'.
wa_sort-up = 'X'.
wa_sort-subtot = 'X'.
APPEND wa_sort TO i_sort .
CLEAR wa_sort.
ENDFORM. " sub_populate_sort*&---------------------------------------------------------------------*
*& Form sub_get_event
* Get ALV grid event and pass the form name to subtotal_text
* event
* No Parameter
FORM sub_get_event .
CONSTANTS : c_formname_subtotal_text TYPE slis_formname VALUE
'SUBTOTAL_TEXT'. DATA: l_s_event TYPE slis_alv_event.
CALL FUNCTION 'REUSE_ALV_EVENTS_GET'
EXPORTING
i_list_type = 4
IMPORTING
et_events = i_event
EXCEPTIONS
list_type_wrong = 0
OTHERS = 0.* Subtotal
READ TABLE i_event INTO l_s_event
WITH KEY name = slis_ev_subtotal_text.
IF sy-subrc = 0.
MOVE c_formname_subtotal_text TO l_s_event-form.
MODIFY i_event FROM l_s_event INDEX sy-tabix.
ENDIF.ENDFORM. " sub_get_event*&---------------------------------------------------------------------*
*& Form sub_alv_report_display
* For ALV Report Display
* No Parameter
FORM sub_alv_report_display .
DATA: l_repid TYPE syrepid .
l_repid = sy-repid .* This function module for displaying the ALV report
CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'
EXPORTING
i_callback_program = l_repid
i_callback_top_of_page = 'SUB_ALV_TOP_OF_PAGE'
is_layout = wa_layout
it_fieldcat = i_fieldcat
it_sort = i_sort
it_events = i_event
i_default = 'X'
i_save = 'A'
TABLES
t_outtab = i_ekpo
EXCEPTIONS
program_error = 1
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE i000 WITH 'Error in ALV report display'(055).
ENDIF.ENDFORM. " sub_alv_report_display*&---------------------------------------------------------------------*
* FORM sub_alv_top_of_page
* Call ALV top of page
* No parameter
*---------------------------------------------------------------------*FORM sub_alv_top_of_page. "#EC CALLED* To write header for the ALV
CALL FUNCTION 'REUSE_ALV_COMMENTARY_WRITE'
EXPORTING
it_list_commentary = i_alv_top_of_page.
ENDFORM. "alv_top_of_page*&---------------------------------------------------------------------*
*& Form subtotal_text
* Build subtotal text
* P_total Total
* p_subtot_text Subtotal text info
FORM subtotal_text CHANGING
p_total TYPE any
p_subtot_text TYPE slis_subtot_text.
* Material level sub total
IF p_subtot_text-criteria = 'MATNR'.
p_subtot_text-display_text_for_subtotal
= 'Material level total'(009).
ENDIF.* Plant level sub total
IF p_subtot_text-criteria = 'WERKS'.
p_subtot_text-display_text_for_subtotal = 'Plant level total'(010).
ENDIF.
ENDFORM. "subtotal_text
Regards,
Pravin -
How do I create a chart where the lower numbers are at the top?
I'm charting data that shows a ranking, where the rank can be a number anywhere from 1 to 1000. 1 is the highest. When I create a chart, 1 is at the bottom. How do I flip the chart so 1 is at the top and 1000 at the bottom?
Philip,
I think Bad Units suggestion is similar and better. Rather than simply inverting the sign to that with an offset:
I suggested
0 - n
Bad Unit suggested:
100 - n
(assuming there are 100 ranks) if there are A ranks then I suggest (like Bad Unit):
A - n
This can be accomplished by moving the current data to another column, then performing the calculation in the column where the chart takes its' data.
move the data over to an adjacent column
Now enter the formula to adjust the rankings:
B2=100-C2
select B2 and fill down as needed. To do this for a large data set select, and copy, B2. Then select B2 and scroll to the end of the colunm using the scroll bar then shift-click the last cel in the column, then paste. -
How to perform an autocheck event when the field changes in ALV
Hi everybody,
how can I build an event or something which would make my 'wa_fieldcat-checkbox' set to 'X' (auto checked) everytime an editable field in the ALV is changed manually by the user?
I want to perform this task in order to avoid asking the user to manually check the "check box" field everytime wants to make a change, since after the user's changes in the ALV I want to sort the itab with the check box column of the edited items.
Thanks,
Denis MHi Denis,
For ALV a FM REUSE_ALV_GRID_DISPLAY is available.
The FM, has events as importing option.
SLIS_T_EVENT
EVENT - Basically this is the FM to handle Event's. When the user needs to do
some event operation like when double clicking the a particular field we need to
perform some operation. These events are captured by this FM.
slis_ev_data_changed -- To capture user command
slis_ev_user_command -- To capture data changed.
Also please refer the below link in scn. This shows sample code to capture ALV grid data changed.
http://scn.sap.com/thread/261210
Hope this will solve the problem.
Thanks,
Soundarya. -
How to delete an update icon in the system tray?
I have an icon for an update to Bibg Bar, which I don't want and will only install into IE, which I don't have.
How do I get rid of it?Thank you so much for the prompt reply.
I have flushed the system restore points as sugested. But running the same SPYWARE DOCTOR program to scan the computer is appearing to be a tedious task! I have recieved blue screen errors for three consecutive times mid-way during the full system scans. The latest one being, "driver caused error in memory pool destined for disk use", exactly which I could not read, the system restarted immediately.
history of the machine:
norton anitvirus 2005 crashed during an update around the 20th march,2011. the live update said that the virus definitions were corrupted. I used norton removal tool. I downloaded the Norton antivirus2011 from its website. Initially it worked well but later it also crashed. Looking in the hardware section for a faulty driver, it highlighted two such drivers:
BHDrvx86 and Symantec iron Driver. After removing Symantec products completely , these drivers vanished!
I have tried MS essentials and ENod32 by d/l the trial version from their websites. however, the same result.
Using the PC Doctor tool through the service partition showed error in the memory and the dvdwriter. However, the drive reads the HP printer s/w but does not read the original music CDs!!
I had also updated my Service partition by d/l the R&R new version in january. The computer did not behave as erratically before doing this. Is it possible that a virus was introduced into the service partition and hence the memory is giving me errors?
please help me out.! -
How to Create a "FAQ" page where the top of page has all the Hyperlinks
Hi,
On iWeb, how do I Create a "FAQ" page where the top of page has all the Questions as Hyperlinks.
The hyperlinks would not actually link to a separate page, but would automatically scroll the page to the spot where the question is answered.
An good example is below:
http://www.cardrunners.com/members/index.php?option=com_content&task=view&id=102 &Itemid=2
Thanks for your help!Sarah,
As is pointed out what you would like to do is old fashioned Anchors, real easy on a conventional site but not so easy in iWeb.
I made an FAQ by just making questions followed by answers and increasing font size and using bold to make the questions stand out so it is easy to use.
Much more work for you but will approximate what you are trying to achieve is this: On the FAQ page make your list of questions each of which you will make into a hyperlink to go to another page. For every question add a blank page to write the answer on. Uncheck the relevant box so that that page does not appear in the navigation bar. Write your answer on that page then under it make a hyperlink back to the FAQ page. The page would also by default have the normal navigation menu at the top, but adding a "Close Window" or "Back To FAQ" link that is actually just a hyperlink to the FAQ page is helpful for site visitors.
While a lot of work to make the extra pages it should work well and solve your problem.
The simplicity of iWeb soon provides problems as soon as you want to do more than the basics offered. -
HT1451 how do i get updates put in the same folder as apps???
I was being super organised and due to a large amount of apps i decided to make a library in windows explorer dedicateded to apps - how can i get the updates put in the same folder. i also put my music and books into a seperate folder (not in the itunes music folder)how do i get new songs / new books put there?
Drag the artwork from the artwork window to the desktop. Then, select the song without artwork and drag the artwork to the blank artwork window.
Maybe you are looking for
-
After updating to Mavericks, password can not be changed anymore
I upgraded to Mavericks and encountered a serious security problem. In system prefs it is no longer possible to change any of the security settings on the "general" tab. It is possible to change the checkmarks, but after closing the sys prefs, the ch
-
N580 gtx standard or OC?
Hello i'm new and i have bought a n580gtx m2d15d5 OC. my vga S/N is 912-801-1070B1012011507. Is my card a standard or OC version? I still have to install it Thakns a lot :D
-
Material Determination in R/3
Hi, We have a scenario where we have multiple part numbers that could be used as alternatives for one another (little variations of the same model). So when our purchasing guys look up inventory for one part, the system should show the inventory situ
-
Runtime error to get the attribute value of an element
mydoc.xml ========= <?xml version = "1.0"?> <persons> <person name="Joe" age="22" /> </persons> In mydox.xml, I want to get the attribute values of element person. Of course, in the actual XML file, it is more complicated. However, I get the fol
-
LED cinema display + Mac Pro + Boot camp = build in iSight not working
Hallo, I hope that anybody has the same situation. I bought a Mac Pro and the LED cinema display. Installed boot camp and windows vista. Now I recognized that the iSight camera build in the LED cinema display is not always working. Mostly not. Someti