Best practice for searching on surname/lastname/name in Dutch
I'm looking for a best practice to store names of persons, but also names of companies, in my database.
I always store them as is (seems logical since you need to be able to display the original input-name) but I also want to store them transformed in some sort of way so I can easily search on them with LIKE! (Soundex, Metaphone, Q-Gram, ...)
I know SOUNDEX and DIFFERENCE are included in SQLServer, but they don't do the trick.
If somebody searches for the phrase "BAKKER", you should find names like "Backer", "Bakker", ... but also "De Backer", "Debecker", ... and this is where SOUNDEX fails ...
Does someone know some websites to visit, or someone already wrote a good function to transform a string that I can use to store the names but also to transform my search data?
(Example: (Pseudo lang :-))
function MakeSearchable (sString)
sString = sString.Replace(" ", ""); //Remove spaces
sString = sString.Replace("CK", "K");
sString = sString.Replace("KK", "K");
sString = sString.Replace("C", "S");
sString = sString.Replace("SS", "S");
return sString;
Greetz,
Tim
Thanks for the response, but unfortunately the provided links are not much help:
- The first link is about an article I don't have access to (i'm not a registered user)
- The second link is about Integration Services. This is nice for Integration stuff, but I need to have a functionality within a frontend.
- The third link is for use in Excel.
Maybe I'm looking for the wrong thing when wanting to create an extra column with "cleaned" up data. Maybe there's another solution from within my frontend or business layer, but I simply want a textbox on a form where users can type a search-value like
"BAKKER". The result of the search should return names like "DEBACKER", "DE BEKKER", "BACKER", "BAKRE", ...
I used to work in a hospital where they wrote their own SQL-function (on an Interbase database) to do this: They had a column with the original name, and a column with a converted name:
=> DEBACKER => Converted = DEBAKKER
=> DE BEKKER => Converted = DEBEKKER
=> BACKER => Converted = BAKKER
=> BAKRE => Converted = BAKKER
When you searched for "BAKKER", you did a LIKE operation on the converted column ...
What I am looking for is a good function to convert my data as above.
Greetz,
Tim
Similar Messages
-
Best practices for search service in a sharepont farm
Hi
in a sharepoint web application there is many BI dashboards are deployed and also we have plan to
configure enterprise search for this application.
in our sharepoint 2010 farm we have
2 application server s
2 WFE servers
here one application server is running
c.a + webanalytics service and itself is a domain controller
second application server is for only running secure store service+ Performance point service only
1 - here if we run search server service in second application server can any issues to BI performance and
2 - its best practice to run Performance point service and search service in one server
3 -also is it best practice to run search service in a such a application server where already other services running
and where we have only one share point web application need to be crawled and indexed with below crawl schedule.
here we only run full crawl per week and incremental crawl at midnight daily
adilHi adil,
Based on your description, you want to know the best practices for search service in a SharePoint farm.
Different farms have different search topologies, for the best search performance, I recommend that you follow the guidance for small, medium, and large farms.
The article is about the guidance for different farms.
Search service can run with other services in the same server, if condition permits and you want to have better performance for search service and other services including BI performance, you can deploy search service in dedicated server.
If condition permits, I recommend combining a query component with a front-end Web server to avoid putting crawl components and query components on the same serve.
In your SharePoint farm, you can deploy the query components in a WFE server and the crawl components in an application server.
The articles below describe the best practices for enterprise search.
https://technet.microsoft.com/en-us/library/cc850696(v=office.14).aspx
https://technet.microsoft.com/en-us/library/cc560988(v=office.14).aspx
Best regards
Sara Fan
TechNet Community Support -
Best Practice for Searching HTML Source
Hello
What is the best way to search the content of html files?
These would be files I create.
I have tried to use SpotLight but it's not up to it.
The best thing I have found thus far is Multi-File Search in BBEdit.
There I find my annotations under '/* NOTES:'
ThanksThanks for the response, but unfortunately the provided links are not much help:
- The first link is about an article I don't have access to (i'm not a registered user)
- The second link is about Integration Services. This is nice for Integration stuff, but I need to have a functionality within a frontend.
- The third link is for use in Excel.
Maybe I'm looking for the wrong thing when wanting to create an extra column with "cleaned" up data. Maybe there's another solution from within my frontend or business layer, but I simply want a textbox on a form where users can type a search-value like
"BAKKER". The result of the search should return names like "DEBACKER", "DE BEKKER", "BACKER", "BAKRE", ...
I used to work in a hospital where they wrote their own SQL-function (on an Interbase database) to do this: They had a column with the original name, and a column with a converted name:
=> DEBACKER => Converted = DEBAKKER
=> DE BEKKER => Converted = DEBEKKER
=> BACKER => Converted = BAKKER
=> BAKRE => Converted = BAKKER
When you searched for "BAKKER", you did a LIKE operation on the converted column ...
What I am looking for is a good function to convert my data as above.
Greetz,
Tim -
BEST PRACTICE FOR AN EFFICIENT SEARCH FACILITY
Good Morning,
Whilst in Training, our Trainer said that the most efficiency from the Sharpoint Search would be to install the Search Facility on a separate server (hardware).
Not sure how to have this process done.
Your advice and recommendation would be greatly appreciated.
thanks a mil.
NRHHi,
You can
create a dedicated search server that hosts all search components, query and index role, and crawl all on one physical server.
Here are some article for your reference:
Best practices for search in SharePoint Server 2010:
http://technet.microsoft.com/en-us//library/cc850696(v=office.14).aspx
Estimate performance and capacity requirements for SharePoint Server 2010 Search:
http://technet.microsoft.com/en-us/library/gg750251(v=office.14).aspx
Below is a similar post for your reference:
http://social.technet.microsoft.com/Forums/en-US/be5fcccd-d4a3-449e-a945-542d6d917517/setting-up-dedicated-search-and-crawl-servers?forum=sharepointgeneralprevious
Best regards
Wendy Li
TechNet Community Support -
Best practices for deploying forms in a 'cluster'?
Anyone know of any public docs that discuss typical best practices for
- forms deployment;
- forms apps management and version control; and/or
- deploying (and keeping) the .frm/frx in sync when using multiple forms servers in a HA or load balancing envrionment?Hi adil,
Based on your description, you want to know the best practices for search service in a SharePoint farm.
Different farms have different search topologies, for the best search performance, I recommend that you follow the guidance for small, medium, and large farms.
The article is about the guidance for different farms.
Search service can run with other services in the same server, if condition permits and you want to have better performance for search service and other services including BI performance, you can deploy search service in dedicated server.
If condition permits, I recommend combining a query component with a front-end Web server to avoid putting crawl components and query components on the same serve.
In your SharePoint farm, you can deploy the query components in a WFE server and the crawl components in an application server.
The articles below describe the best practices for enterprise search.
https://technet.microsoft.com/en-us/library/cc850696(v=office.14).aspx
https://technet.microsoft.com/en-us/library/cc560988(v=office.14).aspx
Best regards
Sara Fan
TechNet Community Support -
Best practices for ARM - please help!!!
Hi all,
Can you please help with any pointers / links to documents describing best practices for "who should be creating" the GRC request in below workflow of ARM in GRC 10.0??
Create GRC request -> role approver -> risk manager -> security team
options are : end user / Manager / Functional super users / security team.
End user and manager not possible- we can not train so many people. Functional team is refusing since its a lot of work. Please help me with pointers to any best practices documents.
Thanks!!!!In this case, I recommend proposing that the department managers create GRC Access Requests. In order for the managers to comprehend the new process, you should create a separate "Role Catalog" that describes what abilities each role enables. This Role Catalog needs to be taught to the department Managers, and they need to fully understand what tcodes and abilities are inside of each role. From your workflow design, it looks like Role Owners should be brought into these workshops.
You might consider a Role Catalog that the manager could filter on and make selections from. For example, an AP manager could select "Accounts Payable" roles, and then choose from a smaller list of AP-related roles. You could map business functions or tasks to specific technical roles. The design flaw here, of course, is the way your technical roles have been designed.
The point being, GRC AC 10 is not business-user friendly, so using an intuitive "Role Catalog" really helps the managers understand which technical roles they should be selecting in GRC ARs. They can use this catalog to spit out a list of technical role names that they can then search for within the GRC Access Request.
At all costs, avoid having end-users create ARs. They usually select the wrong access, and the process then becomes very long and drawn out because the role owners or security stages need to mix and match the access after the fact. You should choose a Requestor who has the highest chance of requesting the correct access. This is usually the user's Manager, but you need to propose this solution in a way that won't scare off the manager - at the end of the day, they do NOT want to take on more work.
If you are using SAP HR, then you can attempt HR Triggers for New User Access Requests, which automatically fill out and submit the GRC AR upon a specific HR action (New Hire, or Termination). I do not recommend going down this path, however. It is very confusing, time consuming, and difficult to integrate properly.
Good luck!
-Ken -
Best practices for setting up projects
We recently adopted using Captivate for our WBT modules.
As a former Flash and Director user, I can say it’s
fast and does some great things. Doesn’t play so nice with
others on different occasions, but I’m learning. This forum
has been a great source for search and read on specific topics.
I’m trying to understand best practices for using this
product. We’ve had some problems with file size and
incorporating audio and video into our projects. Fortunately, the
forum has helped a lot with that. What I haven’t found a lot
of information on is good or better ways to set up individual
files, use multiple files and publish projects. We’ve decided
to go the route of putting standalones on our Intranet. My gut says
yuck, but for our situation I have yet to find a better way.
My question for discussion, then is: what are some best
practices for setting up individual files, using multiple files and
publishing projects? Any references or input on this would be
appreciated.Hi,
Here are some of my suggestions:
1) Set up a style guide for all your standard slides. Eg.
Title slide, Index slide, chapter slide, end slide, screen capture,
non-screen capture, quizzes etc. This makes life a lot easier.
2) Create your own buttons and captions. The standard ones
are pretty ordinary, and it's hard to get a slick looking style
happening with the standard captions. They are pretty easy to
create (search for add print button to learn how to create
buttons). There should instructions on how to customise captions
somewhere on this forum. Customising means that you can also use
words, symbols, colours unique to your organisation.
3) Google elearning providers. Most use captivate and will
allow you to open samples or temporarily view selected modules.
This will give you great insight on what not to do and some good
ideas on what works well.
4) Timings: Using the above research, I got others to
complete the sample modules to get a feel for timings. The results
were clear, 10 mins good, 15 mins okay, 20 mins kind of okay, 30
mins bad, bad, bad. It's truly better to have a learner complete
2-3 short modules in 30 mins than one big monster. The other
benefit is that shorter files equal smaller size.
5) Narration: It's best to narrate each slide individually
(particularly for screen capture slides). You are more likely to
get it right on the first take, it's easier to edit and you don't
have to re-record the whole thing if you need to update it in
future. To get a slicker effect, use at least two voices: one male,
one female and use slightly different accents.
6) Screen capture slides: If you are recording filling out
long window based databse pages where the compulsory fields are
marked (eg. with a red asterisk) - you don't need to show how to
fill out every field. It's much easier for the learner (and you) to
show how to fill out the first few fields, then fade the screen
capture out, fade the end of the form in with the instructions on
what to do next. This will reduce your file size. In one of my
forms, this meant the removal of about 18 slides!
7) Auto captions: they are verbose (eg. 'Click on Print
Button' instead of 'Click Print'; 'Select the Print Preview item'
instead of 'Select Print Preview'). You have to edit them.
8) PC training syntax: Buttons and hyperlinks should normally
be 'click'; selections from drop down boxes or file lists are
normally 'select': Captivate sometimes mixes them up. Instructions
should always be written in the correct order: eg. Good: Click
'File', Select 'Print Preview'; Bad: Select 'Print Preview' from
the 'File Menu'. Button names, hyperlinks, selections are normally
written in bold
9) Instruction syntax: should always be written in an active
voice: eg. 'Click Options to open the printer menu' instead of
'When the Options button is clicked on, the printer menu will open'
10) Break all modules into chapters. Frame each chapter with
a chapter slide. It's also a good idea to show the Index page
before each chapter slide with a progress indicator (I use an
animated arrow to flash next to the name of the next chapter), I
use a start button rather a 'next' button for the start of each
chapter. You should always have a module overview with the purpose
of the course and a summary slide which states what was covered and
they have complete the module.
11) Put a transparent click button somewhere on each slide.
Set the properties of the click box to take the learner back to the
start of the current chapter by pressing F2. This allows them to
jump back to the start of their chapter at any time. You can also
do a similar thing on the index pages which jumps them to another
chapter.
12) Recording video capture: best to do it at normal speed
and be concious of where your mouse is. Minimise your clicks. Most
people (until they start working with captivate) are sloppy with
their mouse and you end up with lots of unnecessarily slides that
you have to delete out. The speed will default to how you recorded
it and this will reduce the amount of time you spend on changing
timings.
13) Captions: My rule of thumb is minimum of 4 seconds - and
longer depending on the amount of words. Eg. Click 'Print Preview'
is 4 seconds, a paragraph is longer. If you creating knowledge
based modules, make the timing long (eg. 2-3 minutes) and put in a
next button so that the learner can click when they are ready.
Also, narration means the slides will normally be slightly longer.
14) Be creative: Capitvate is desk bound. There are some
learners that just don't respond no matter how interactive
Captivate can be. Incorporate non-captivate and desk free
activities. Eg. As part of our OHS module, there is an activity
where the learner has to print off the floor plan, and then wander
around the floor marking on th emap key items such as: fire exits;
first aid kit, broom and mop cupboard, stationary cupboard, etc.
Good luck! -
Best Practices For Household IOS's/Apple IDs
Greetings:
I've been searching support for best practices for sharing primarily apps, music and video among multple iOS's/Apple IDs. If there is a specific article please point me to it.
Here is my situation:
We currently have 3 iPads (2-kids, 1-dad) in the household and one iTunes account on a win computer. I previously had all iPads on single Apple ID/credit card and controlled the kids' downloads thru the Apple ID password that I kept secret. As the kids have grown older, I found myself constantly entering my password as the kids increased there interest in music/apps/video. I like this approach because all content was shared...I dislike because I was constantly asked to input password for all downloads.
So, I recently set up an individual account for them with the allowance feature at iTunes that allows them to download content on their own (I set restrictions on their iPads). Now I have 3 Apple IDs under one household.
My questions:
With the 3 Apple IDs, what is the best way to share apps,music, videos among myself and the kids? Is it multiple accounts on the computer and some sort of sharing?
Thanks in advance...Hi Bonesaw1962,
We've had our staff and students run iOS updates OTA via Settings -> Software Update. In the past, we put a DNS block on Apple's update servers to prevent users from updating iOS (like last fall when iOS 7 was first released). By blocking mesu.apple com, the iPads weren't able to check for or install any iOS software updates. We waited until iOS 7.0.3 was released before we removed the block to mesu.apple.com at which point we told users if they wanted to update to iOS 7 they could do so OTA. We used our MDM to run reports periodically to see how many people updated to iOS 7 and how many stayed on iOS 6. As time went on, just about everyone updated on their own.
If you go this route (depending on the number of devices you have), you may want to take a look at Caching Server 2 to help with the network load https://www.apple.com/osx/server/features/#caching-server . From Apple's website, "When a user on your network downloads new software from Apple, a copy is automatically stored on your server. So the next time other users on your network update or download that same software, they actually access it from inside the network."
I wish there was a way for MDMs to manage iOS updates, but unfortunately Apple hasn't made this feature available to MDM providers. I've given this feedback to our Apple SE, but haven't heard if it is being considered or not. Keeping fingers crossed.
Hope this helps. Let us know what you decide on and keep us posted on the progress. Good luck!!
~Joe -
I posted a few days ago re failing HDD on mid-2007 iMac. Long story short, took it into Apple store, Genius worked on it for 45 mins before decreeing it in need of new HDD. After considering the expenses of adding memory, new drive, hardware and installation costs, I got a brand new iMac entry level (21.5" screen,
2.7 GHz Intel Core i5, 8 GB 1600 MHz DDR3 memory, 1TB HDD running Mavericks). Also got a Superdrive. I am not needing to migrate anything from the old iMac.
I was surprised that a physical disc for the OS was not included. So I am looking for any Best Practices for setting up this iMac, specifically in the area of backup and recovery. Do I need to make a boot DVD? Would that be in addition to making a Time Machine full backup (using external G-drive)? I have searched this community and the Help topics on Apple Support and have not found any "checklist" of recommended actions. I realize the value of everyone's time, so any feedback is very appreciated.OS X has not been officially issued on physical media since OS X 10.6 (arguably 10.7 was issued on some USB drives, but this was a non-standard approach for purchasing and installing it).
To reinstall the OS, your system comes with a recovery partition that can be booted to by holding the Command-R keys immediately after hearing the boot chimes sound. This partition boots to the OS X tools window, where you can select options to restore from backup or reinstall the OS. If you choose the option to reinstall, then the OS installation files will be downloaded from Apple's servers.
If for some reason your entire hard drive is damaged and even the recovery partition is not accessible, then your system supports the ability to use Internet Recovery, which is the same thing except instead of accessing the recovery boot drive from your hard drive, the system will download it as a disk image (again from Apple's servers) and then boot from that image.
Both of these options will require you have broadband internet access, as you will ultimately need to download several gigabytes of installation data to proceed with the reinstallation.
There are some options available for creating your own boot and installation DVD or external hard drive, but for most intents and purposes this is not necessary.
The only "checklist" option I would recommend for anyone with a new Mac system, is to get a 1TB external drive (or a drive that is at least as big as your internal boot drive) and set it up as a Time Machine backup. This will ensure you have a fully restorable backup of your entire system, which you can access via the recovery partition for restoring if needed, or for migrating data to a fresh OS installation. -
Best practices for office 365 SHARED CALENDAR for whole school / organization
hi
we need guidance on best practice for setting up SHARED CALENDAR on Office365 exchange server for entire organization (school)of150 staff.
Requirements
+ all staff should have read only / reviewer permissions on calendar
+handful staff should have editor permissions on calendar
+ the calendar should synchronise custom categories and colors
Current Solution
at the moment we have found that a shared mailbox is the best solution because;
- allusers can add the shared mailbox on outlook 2010as additional mailbox as readonly
- all the categories & colors for the calendarare automatically synchronised because the color categories are stored within this mailbox.
- you can edit calendar permissions in outlook to allow some users as "editor" of the calendar.Problem with Current Solution
the problem however is that the users also need to access this...
This topic first appeared in the Spiceworks CommunityHi Aleksei,
I think Inactive mailboxes in Exchange Online is the feature that you want. This feature makes it possible for you to preserve (store and archive) the contents of deleted mailboxes indefinitely.
A mailbox becomes inactive when an In-Place Hold or a
Litigation Hold is placed on the mailbox before the corresponding Office 365 user account is deleted.
But I'm afraid that it might be impossible to "easily share certain folders or even whole mailbox with people in the company". As can been seen from below articles, this only allows administrators, compliance officers, or records managers
to use the In-Place eDiscovery feature in Exchange Online to access and search the contents of an inactive mailbox:
http://technet.microsoft.com/en-us/library/dn144876(v=exchg.150).aspx
http://blogs.technet.com/b/exchange/archive/2013/03/21/preserve-mailbox-data-for-ediscovery-using-inactive-mailboxes-in-exchange-online.aspx
Anyway, this is the forum to discuss questions and feedback for Microsoft Office client. For more details about your question, I would suggest you post in the dedicated forum of
Exchange Online, where you can get more experienced responses:
https://social.technet.microsoft.com/Forums/msonline/en-US/home?forum=onlineservicesexchange
The reason why we recommend posting appropriately is you will get the most qualified pool of respondents, and other partners who read the forums regularly can either share their knowledge or learn from your interaction with us. Thank you for your understanding.
Regards,
Ethan Hua
TechNet Community Support
It's recommended to download and install
Configuration Analyzer Tool (OffCAT), which is developed by Microsoft Support teams. Once the tool is installed, you can run it at any time to scan for hundreds of known issues in Office
programs. -
What is the best practice for changing view states?
I have a component with two Pie Charts that display
percentages at two specific dates (think start and end values).
But, I have three views: Start Value only, End Value only, or show
Both. I am using a ToggleButtonBar to control the display. What is
the best practice for changing this kind of view state? Right now
(since this code was inherited), the view states are changed in an
ActionScript function which sets the visible and includeInLayout
properties on each Pie Chart based on the selectedIndex of the
ToggleButtonBar, but, this just doesn't seem like the best way to
do this - not very dynamic. I'd like to be able to change the state
based on the name of the selectedItem, in case the order of the
ToggleButtons changes, and since I am storing the name of the
selectedItem for future reference.
Would using States be better? If so, what would be the best
way to implement this?
Thanks.I would stick with non-states, as I have always heard that
states are more for smaller components that need to change under
certain conditions, like a login screen that changes if the user
needs to register.
That said, if the UI of what you are dealing with is not
overly complex, and if it will not become overly complex, maybe
states is the way to go.
Looking at your code, I don't think you'll save much in terms
of lines of code. -
Best practice for upgrading task definition without deleting task instances
best practice for upgrading task definition in production system without deleting or terminating task instances
If I try and update a task definition with task instances running I get the following error:
Task definition 'My Task - Add User' may not be modified while there are active task instances
Is there a best practice to handle this. I tried to force an update through the console but that didn't work. I tried editing the task from the debug page and got the same error.1) Rename the original task definition.
2) Upload the new task definition with the original name.
3) Later, after all the running tasks have timed out, delete the old definition.
E.g., if your task definition is "myWorkflow":
1) Rename "myWorkflow" to "myWorkflow-old-2009-07-28"
2) Upload the new task definition as "myWorkflow".
Existing tasks will stay linked to the original (renamed) workflow definition.
New tasks will use the new definition.
As the previous poster notes, depending on the changes you are making, letting the old task definitions stay active could have bad side-effects and might be better avoided. -
Best Practice for link to WebdynPro page in welcome page
Hi Experts,
I am new in SAP Portal. I need some guidance from you guys. I have a requirement to create welcome page which is JSP and has a link to a WebdynPro page. I have to put the url in JSP file. So i do not know what kind of URL i should put in the JSP.
The problem is if i put the url which i can see in the address bar like 'http://DevServer/WebDynPro/ApplcationA', when i transport it to another server ,for example Production,. The real url might be change to 'http://ProdServer/WebDynPro/ApplcationA'. It may cause the link in JSP can not be worked.
I would like to ask you the best practice for this case. What url? What configuration?
Thank you in advance,
Noppong Jinbunluphol
P.S. For the JSP, i create it in portal application dc.Dear Noppong,
You can do it with multiple ways like :-
1. Get the current host name and make complete URL with using host name for the webdynpro iview.
request = (IPortalComponentRequest) this.getRequest();
HttpServletRequest req = request.getServletRequest();
StringBuffer strURL = req.getRequestURL();
2. Create the KM Document or Link for webdynpro Iview OR Create the WPC Web Page for the webdynpro ivew
Refer to [http://help.sap.com/saphelp_nw70/helpdata/en/06/4776399abf4b73945acb8fb4f41473/frameset.htm|http://help.sap.com/saphelp_nw70/helpdata/en/06/4776399abf4b73945acb8fb4f41473/frameset.htm]
[http://help.sap.com/saphelp_nw70/helpdata/en/06/4776399abf4b73945acb8fb4f41473/frameset.htm|http://help.sap.com/saphelp_nw70/helpdata/en/06/4776399abf4b73945acb8fb4f41473/frameset.htm]
[http://help.sap.com/saphelp_nw70ehp1/helpdata/en/ff/681a4138a147cbabc3c76bde4dcdbd/content.htm|http://help.sap.com/saphelp_nw70ehp1/helpdata/en/ff/681a4138a147cbabc3c76bde4dcdbd/content.htm]
Hope it will helps
Best Regards
Arun Jaiswal -
Best Practice for Using Static Data in PDPs or Project Plan
Hi There,
I want to make custom reports using PDPs & Project Plan data.
What is the Best Practice for using "Static/Random Data" (which is not available in MS Project 2013 columns) in PDPs & MS Project 2013?
Should I add that data in Custom Field (in MS Project 2013) or make PDPs?
Thanks,
EPM Consultant
Noman SohailHi Dale,
I have a Project Level custom field "Supervisor Name" that is used for Project Information.
For the purpose of viewing that "Project Level custom field Data" in
Project views , I have made Task Level custom field
"SupName" and used Formula:
[SupName] = [Supervisor Name]
That shows Supervisor Name in Schedule.aspx
============
Question: I want that Project Level custom field "Supervisor Name" in
My Work views (Tasks.aspx).
The field is enabled in Task.aspx BUT Data is not present / blank column.
How can I get the data in "My Work views" ?
Noman Sohail -
Best practice for mouseless ADF applications
I am developing an ADF application where the users do not want to use the mouse.
So I would like to know if there are a best practice for this?
I am already using the accessKey functionality and subforms defaultCommand
But I have had problems setting focus to objects on a page like tables. I would like a button to return the focus to the table after it has made the command like delete.
I have implemented a solution where I have found inspiration several threads and other webpages (see below).
Is this solution okay?
Are there any problems with it?
I would also like to know if there are better pathways to go like
out of the box solutions,
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
in advance thanks
Inspiration webpages
https://blogs.oracle.com/jdevotnharvest/entry/how_to_programmatically_set_focus
http://technology.amis.nl/2008/01/04/adf-11g-rich-faces-focus-on-field-after-button-press-or-ppr-including-javascript-in-ppr-response-and-clientlisteners-client-side-programming-in-adf-faces-rich-client-components-part-2/
how to Commit table by writting Java code in Managed Bean?
Table does not refresh and getting error as UIComponent is Null
A short description of the solution:
(jdeveloper version 11.1.1.2.0)
--- Example where I use onSetFocus in jsff page
<af:commandButton text="#{hrsusuiBundle.FOCUS}" id="cb10"
partialSubmit="true" accessKey="f"
shortDesc="Alt+Shift+F"
actionListener="#{managedBean_clientUtils.onSetFocus}">
<af:clientAttribute name="focusField" value="t1"/>
</af:commandButton>
--- Examples where I use doTableActionAndSetFocus in jsff page
--- There have to be a binding in the jsff page to delete, commit and rollback
<af:commandButton text="#{hrsusuiBundle.DELETE}" id="cb4"
accessKey="x"
shortDesc="Alt+Shift+X"
partialSubmit="true"
actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
<af:clientAttribute name="focusField" value="t1"/>
<af:clientAttribute name="actionField" value="Delete"/>
</af:commandButton>
<af:commandButton text="#{hrsusuiBundle.COMMIT}" id="cb5"
accessKey="s" shortDesc="Alt+Shift+S"
partialSubmit="true"
actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}">
<af:clientAttribute name="focusField" value="t1"/>
<af:clientAttribute name="actionField" value="Commit"/>
</af:commandButton>
<af:commandButton text="#{hrsusuiBundle.ROLLBACK}" id="cb6"
accessKey="z" shortDesc="Alt+Shift+Z"
partialSubmit="true"
actionListener="#{managedBean_clientUtils.doTableActionAndSetFocus}"
immediate="true">
<af:resetActionListener/>
<af:clientAttribute name="focusField" value="t1"/>
<af:clientAttribute name="actionField" value="Rollback"/>
</af:commandButton>
--- This is the java class I use
--- It is published in adfc-config.xml as a request scope managedbean
public class ClientUtils {
public ClientUtils() {
public void doTableActionAndSetFocus(ActionEvent event) {
RichCommandButton rcb = (RichCommandButton)event.getSource();
String focusOn = (String)rcb.getAttributes().get("focusField");
String actionToDo = (String)rcb.getAttributes().get("actionField");
UIComponent component = null;
String clientId = null;
component = JSFUtils.findComponentInRoot(focusOn);
clientId = component.getClientId(JSFUtils.getFacesContext());
if ( "Delete".equals(actionToDo) || "Commit".equals(actionToDo) || "Rollback".equals(actionToDo) ){
BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
OperationBinding operationBinding = bindings.getOperationBinding(actionToDo);
Object result = operationBinding.execute();
AdfFacesContext.getCurrentInstance().addPartialTarget(component);
if (clientId != null) {
makeSetFocusJavaScript(clientId);
public static String onSetFocus(ActionEvent event) {
RichCommandButton rcb = (RichCommandButton)event.getSource();
String focusOn = (String)rcb.getAttributes().get("focusField");
String clientId = null;
if (focusOn.contains(":")) {
clientId = focusOn;
} else {
clientId = findComponentsClientIdInRoot(focusOn);
if (clientId != null) {
makeSetFocusJavaScript(clientId);
return null;
private static void writeJavaScriptToClient(String script) {
FacesContext fctx = FacesContext.getCurrentInstance();
ExtendedRenderKitService erks = null;
erks = Service.getRenderKitService(fctx, ExtendedRenderKitService.class);
erks.addScript(fctx, script);
public static void makeSetFocusJavaScript(String clientId) {
if (clientId != null) {
StringBuilder script = new StringBuilder();
//use client id to ensure component is found if located in
//naming container
script.append("var textInput = ");
script.append("AdfPage.PAGE.findComponentByAbsoluteId");
script.append ("('"+clientId+"');");
script.append("if(textInput != null){");
script.append("textInput.focus();");
script.append("}");
writeJavaScriptToClient(script.toString());
public static String findComponentsClientIdInRoot(String id) {
UIComponent component = null;
String clientId = null;
component = JSFUtils.findComponentInRoot(id);
clientId = component.getClientId(JSFUtils.getFacesContext());
return clientId;
}Hi,
I am developing an ADF application where the users do not want to use the mouse. So I would like to know if there are a best practice for this?
Well HTML (and this is the user interface you see) follows a tab index navigation that you follow with "tab" and "shift+tab". Anything else is a short cut for which you use mnemonics (as you already do) or shortcuts (explained in http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html). There is a distinction to make between non-web environments (which I think you and your users have abackground in) and client desktop environments. Browsers block some keyboard functionality for their own purpose. So you may have to find a list of keys first that work across browsers. Unlike desktop clients, which allow you to "press a button" without the button to take focus, this cannot be done on the web. So you need to be clever here, avoiding buttons at all.
The following paper is about JavaScript in ADF and explains the basics for what Chris Muir explains in : http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
http://www.oracle.com/technetwork/developer-tools/jdev/1-2011-javascript-302460.pdf
It has the outline for how to register short cut keys that perform a specific action (e.g. register ctrl+d to delete the current row you are on, or press F11 to execute a query (similar to Oracle Forms frmres files)). However, be aware that this includes some code you have to write (actually quite some code to be honest).
http://www.oracle.com/technetwork/developer-tools/adf/learnmore/79-global-template-button-strategy-360139.pdf (are there an example implementation?), or
http://one-size-doesnt-fit-all.blogspot.dk/2010/11/adf-ui-shell-supporting-global-hotkeys.html
Actually these are implementations as they come with example code for you to use and customize, do they? So what is this question asking for more ? Also note that global buttons don't quite have anything in common with the question you asked. I assume you want to see it as an implementation of the Forms toolbar that operates on the form or table the focus is in. This however does not work for the web as there is nothing that keeps track of which component has a focus and to what iterator (data block) it belongs. This would involve even more coding (though possibly doable)
Frank
Maybe you are looking for
-
PDF Image will not fill up entire custom size page
Fellow Forum Members, I'm using Acrobat 6 and SnagIt 8. My screen captures with SnagIt are being saved in PDF format. But for some reason I can't figure out, the capture image is not filling up the entire 8" x 6" PDF custom size page. I keep on getti
-
Mavericks printing issues.
Since I've installed Mavericks, every app I try to print from crashes. I get a notice that says (name of app) quit unexpectedly while using the pde plug-in. Any suggestions?
-
Schedule reports - Email config
Can somebody provide me the steps for enable schedule report options and the email configuration. Would Email,SMTP configuration enable us to schedule reports provided we have permissions assigned ? Please provide any steps or configurations..Thanks.
-
Guidelines for designing interfaces
Hi, We are in the process of implementing SAP. Are there any guidelines while designing interfaces, when one should one design an interface where data transfer in an interface is done 1) using ALE-Idocs, 2) when should data be transffered using flat
-
Receive Acknowledgement in JMS
Hi, My requirement is as follows, fyi, I am using Weblogic 8.1 sp5: I have configured my weblogic with the connection factory, queue and temporary queue. Then I wrote a client a class to put the message in the queue. I also wrote the class to receive