cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
Showing results for 
Search instead for 
Did you mean: 

Community Tip - You can Bookmark boards, posts or articles that you'd like to access again easily! X

How to create my own ObjectCreateFormProcessor

AntonBagryanov
3-Visitor

How to create my own ObjectCreateFormProcessor

Hi to all!

I need to get the oid after persistable object creation. I have created my own FormProcessor that extends CreateObjectFormProcessor.

I have overrided create action for the promotion request object like follow:

<action name="create" selectRequired="true" ajax="component" uicomponent="PROMOTE">

       <description>Promote create wizard</description>

        <command class="ext.myComp.formProcessor.CreatePRFormProcessor" method="myMethod" windowType="popup"/>

         <includeFilter name="restrictGuestMembers"/>

      </action>

But my own method didn't called after user finish the wizard. As I know system call the execute(NmCommandBean) method. So how can I call my own method? Thanks

1 ACCEPTED SOLUTION

Accepted Solutions

I was mistaken.

You should overwrite the doOperation() method and delete the line where object store. And delete method="..." in your *actions.xml file.

Example:

public class CreatePRFormProcessor extends CreateObjectFormProcessor

{

  @Override

  public FormResult doOperation(NmCommandBean paramNmCommandBean, List<ObjectBean> paramList) throws WTException

  {

  FormResult localFormResult = new FormResult();

  localFormResult.setStatus(FormProcessingStatus.SUCCESS);

  if (paramList.size() > 0)

  {

  localFormResult = super.doOperation(paramNmCommandBean, paramList);

  if (!continueProcessing(localFormResult))

  {

  return localFormResult;

  }

  for (ObjectBean localObjectBean : paramList)

  {

  if ((localObjectBean.getObject() != null) && ((localObjectBean.getObject() instanceof Persistable)))

  {

  String objRef = (new ReferenceFactory()).getReferenceString((Persistable)localObjectBean.getObject());

  }

  }

  }

  return localFormResult;

  }

}

(Persistable)localObjectBean.getObject() is what I need

View solution in original post

1 REPLY 1

I was mistaken.

You should overwrite the doOperation() method and delete the line where object store. And delete method="..." in your *actions.xml file.

Example:

public class CreatePRFormProcessor extends CreateObjectFormProcessor

{

  @Override

  public FormResult doOperation(NmCommandBean paramNmCommandBean, List<ObjectBean> paramList) throws WTException

  {

  FormResult localFormResult = new FormResult();

  localFormResult.setStatus(FormProcessingStatus.SUCCESS);

  if (paramList.size() > 0)

  {

  localFormResult = super.doOperation(paramNmCommandBean, paramList);

  if (!continueProcessing(localFormResult))

  {

  return localFormResult;

  }

  for (ObjectBean localObjectBean : paramList)

  {

  if ((localObjectBean.getObject() != null) && ((localObjectBean.getObject() instanceof Persistable)))

  {

  String objRef = (new ReferenceFactory()).getReferenceString((Persistable)localObjectBean.getObject());

  }

  }

  }

  return localFormResult;

  }

}

(Persistable)localObjectBean.getObject() is what I need

Top Tags