Reset Form error on peoplePickerDialog

I have a form where I use LDAP with people picker modal for search users. In Target Value Binding value is a com.webMethods.caf.faces.data.dir.PrincipalModel object.

When I submit the form I execute a WS that save the information. Then I use resetPageFlowStorage() method to clear the form and send another request for the form BUT after resetPageFlowStorage runs and I try to use the peoplePickerDialog again, it shows this error: targetValue binding must accept a PrincipalModelList, String, IURI or String object.

Hi Jesus Carrillo,

I believe the value binding is not getting loaded after you reset it and hence the page is throwing that error.

Try to load the peoplePickerModal from LDAP as part of some async action in the page which should refresh the modal and display the users. So that modal loads all the time based on that async action.

Async action can be triggered based on some definite loading of value/action you think will always gets invoked once page loads even after reset.

Hope this helps.

Regards,
Firoz N

Hi, Firoz. Thank you for your reply.
Actually the peoplePickerDialog refresh itself when dialog shows by the following configurations:

peoplePickerDialog:LazyLoad > Lazy Load = true, Refresh On Show = true, Two Pass = true.

I need to clear the entire form without setting manually empty values to the inputs. resetPageFlowStorage works fine but do that peoplePickerDialog do not.

I tried to use getFacesContext().getExternalContext().redirect(“/blank”); for redirect to blank porlet and on it initialize method redirecto to my form: getFacesContext().getExternalContext().redirect(“/myform”); but the portlet show this error: [POP.001.0002] Se produjo un “javax.portlet.PortletException” con el mensaje “Must be an ActionRequest”

@Jesus_Carrillo1

I could find below information for possible objects that can go in targetValue property based on singleSelect or multiSelect requirement.

The selected principals are referenced by the control’s targetValue property. For a single-item select picker, the targetValue property binds to the following data types:

** com.webmethods.caf.faces.data.dir.IPrincipalProvider - a model object that represents the principal*
** com.webmethods.portal.system.IURI - the My webMethods ServerID of the principal*
** java.lang.String - a string representation of the My webMethods Server ID of the principal*

For a multi-select picker, the targetValue property binds to a list or array of the above types.

You can use the com.webmethods.caf.faces.data.dir.PrincipalModelFactory and com.webmethods.caf.faces.data.dir.PrincipalModelList classes to help create individual principal model objects or lists of principal model objects.

Looks like object is becoming null after you reset. Just try to initialize the object mapped to targetValue binding after reset. so that peoplePickerModal recognizes that it is binded to corrrect property.

Please refer the CAF_Tag_Library_Reference for more details, might be some of the setting will elp, you can also correct if you some setting is causing it to load wrong…

Regards,
Firoz Nalband.

Nothing works.
Now Im trying for another ways. In my portlet “/firstPorlet” I have and action thats a button calls. This action is:

public String enviar() {
resolveDataBinding(ENVIAR_PROPERTY_BINDINGS, this, “enviar.this”, true, false);

  try {
  	getFacesContext().getExternalContext().redirect("/blank");
  	
  } catch (IOException e) {
  	error(e);
  	e.printStackTrace();
  }
  return null;

}

On initialize of /blank portlet I have this:

public String initialize() {
try {
resolveDataBinding(INITIALIZE_PROPERTY_BINDINGS, null, “initialize”, true, false);

      getFacesContext().getExternalContext().redirect("/firstPorlet");
  } catch (Exception e) {
  	error(e);
  	log(e);
  }
  return null;	

}

And this show then following error:
[POP.001.0002] Se produjo un "javax.portlet.PortletException" con el mensaje "Must be an ActionRequest"