on 06-04-2009 12:15 PM
Hi,
We have just begun to develop applications with the FPM and we have a serious problem. We need your help.
In a roadmap with a number of steps we are not able to change perspective (and thus move from one step to the next) launching an user event (eg SELECT).
In the onEvent () method we get the event launched but the step does not change.
Anyone knows that it can be? is very rare ...
Regards.
That would mean your SELECT perspective is not getting created or atleast identified...
make sure that the Interface controllers of all the components that you create is connected with component controller of the same component with a data link. No need to map the context just a data link
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
I have ensured that all the Interface controllers of all the components that I create are connected with component controller of the same component with a data link.
One thing I see is that changing the start navigation path setting the "SELECT" perspective as target perspective of IFPM.EVENT_START event, this second perspective is shown well.
Why are not changing perspectives when t raise an event?
The getNextPerspective() method catches the eventname well (SELECT or BACK)....but active perspective doesn't change...?
Please give me any idea....I need solve this soon.
Thanx again.
Hi,
When I faced a similar problem I did following modifications (Which worked)
the id of the button and the event raised is same eg if event raised was fpm.EVENT_REVIEW then I changed button id to REVIEW (all caps similar to event name)
in helper class wrote a code something like as follows
Perspective reviewPerspective = new Perspective("REVIEW", Perspective.LAYOUT_ROW, VAC[]review);
NavigationPath npDetailConfirm = new NavigationPath(Perspective.getName(), IFPM.EVENT_REVIEW, reviewPerspective.getName());
NavigationPath[] navigationPaths = new NavigationPath[] { ...., npDetailConfirm, ....};
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi Aishwarya,
I tried what you told me and do not work for me....I need your help.
Looking at my logs I found that the method getNextPerspective () my CC captures the event well and calculate the perspective to navigate. But after this, the onEvent () is not executed in the VAC, as if it were not to be launched the event or like the start event of fpm...
These are the event raisings in th two actions:
VAC1.- fpm.raiseEvent(IFPM.EVENT_SELECT, new VAC("sap.com/PruebaSteps", "com.ibermatica.pruebas.vc1.Vc1"));
VAC2.- fpm.raiseEvent(IFPM.EVENT_BACK, new VAC("sap.com/PruebaSteps","com.ibermatica.pruebas.vc2.Vc2"));
The ids of the buttons are "SELECT" and "BACK" respectively.
And there is part of my code for the CC:
String dcName = "sap.com/PruebaSteps";
String packageName = "com.ibermatica.pruebas.";
//VACs
VAC vac1 = new VAC(dcName, packageName + "vc1.Vc1");
VAC vac2 = new VAC(dcName, packageName + "vc2.Vc2");
//perspective composition
VAC[] startVac = new VAC[] ;
VAC[] selectVac = new VAC[] ;
//Perspectives
Perspective startPerspective = new Perspective("START", Perspective.LAYOUT_ROW, startVac);
Perspective selectPerspective = new Perspective("SELECT", Perspective.LAYOUT_ROW, selectVac);
// fill the perspectives
perspectives = new HashMap();
perspectives.put(startPerspective.getName(), startPerspective);
perspectives.put(selectPerspective.getName(), selectPerspective);
//Navigation Paths
NavigationPath start = new NavigationPath("", IFPM.EVENT_START,
startPerspective.getName());
NavigationPath toStep2 = new NavigationPath(startPerspective.getName(),
IFPM.EVENT_SELECT,
selectPerspective.getName());
NavigationPath toStep1 = new NavigationPath(selectPerspective.getName(),
IFPM.EVENT_BACK,
startPerspective.getName());
NavigationPath[] navigationPaths = new NavigationPath[]
{ start, toStep2, toStep1 };
...
Please, I need your help.
Thanks again.
Hi Aishwarya,
There is the entire code of my Configuration Component Interface:
public void loadConfiguration( com.sap.pcuigp.xssfpm.java.IFPM fpm )
{
//@@begin loadConfiguration()
log4j.info("Inicio del Cc Prueba: loadConfiguration");
this.fpm = fpm;
String dcName = "sap.com/PruebaSteps";
String packageName = "com.ibermatica.pruebas.";
//VACs
VAC vac1 = new VAC(dcName, packageName + "vc1.Vc1");
VAC vac2 = new VAC(dcName, packageName + "vc2.Vc2");
//perspective composition
VAC[] startVac = new VAC[] {vac1};
VAC[] selectVac = new VAC[] ;
//Perspectives
Perspective startPerspective =
new Perspective("START", Perspective.LAYOUT_ROW, startVac);
Perspective selectPerspective =
new Perspective("SELECT", Perspective.LAYOUT_ROW, selectVac);
// fill the perspectives
perspectives = new HashMap();
perspectives.put(startPerspective.getName(), startPerspective);
perspectives.put(selectPerspective.getName(), selectPerspective);
//Navigation Paths
NavigationPath start =
new NavigationPath("", IFPM.EVENT_START,
startPerspective.getName());
NavigationPath toStep2 = new NavigationPath(startPerspective.getName(),
IFPM.EVENT_SELECT,
selectPerspective.getName());
NavigationPath toStep1 = new NavigationPath(selectPerspective.getName(),
IFPM.EVENT_BACK,
startPerspective.getName());
NavigationPath[] navigationPaths =
new NavigationPath[]
{start, toStep2, toStep1};
//Navigation graph
navigationGraph = new NavigationGraph(navigationPaths);
//Roadmap steps
ROPStep ropStep1 = new ROPStep(startPerspective.getName(),
"Paso 1",
null);
ROPStep ropStep2 = new ROPStep(selectPerspective.getName(),
"Paso 2",
null);
//Roadmap
ROPStep[] ropes = new ROPStep[]
{ropStep1, ropStep2};
ROPState rop1State = new ROPState
(ropes, ropStep1.getId());
ROPState rop2State = new ROPState
(ropes, ropStep2.getId());
//ROP States HashMap
ropStates = new HashMap();
ropStates.put(startPerspective.getName(),rop1State);
ropStates.put(selectPerspective.getName(),rop2State);
//@@end
}
public com.sap.pcuigp.xssutils.java.CAPState getCAPState( com.sap.pcuigp.xssfpm.java.Perspective perspective )
{
//@@begin getCAPState()
log4j.info("CcPrueba: getCAPState");
return null;
//@@end
}
public com.sap.pcuigp.xssfpm.java.Perspective getNextPerspective( com.sap.pcuigp.xssfpm.java.Perspective currentPerspective, java.lang.String eventName )
{
//@@begin getNextPerspective()
log4j.info("CcPrueba: getNextPerspective");
if(currentPerspective != null)
log4j.info("current perspective: "currentPerspective.getName()" "+currentPerspective.getEmbeddedVACs()[0].getComponentName());
log4j.info("event name: "+eventName);
String currentPerspectiveName =
(currentPerspective == null) ? "" : currentPerspective.getName();
String toPerspectiveName =
navigationGraph.getNextNode(currentPerspectiveName, eventName);
if (toPerspectiveName == null) {
fpm.getMessageManager().raiseException(
wdThis.wdGetAPI().getComponent(), null,
IMessageManager.DEFAULT_EXCEPTION,
wdThis.wdGetAPI().getComponent().getTextAccessor().getText("err_no_next_perspective"));
return null;
}
Perspective toPerspective = (Perspective) perspectives.get(toPerspectiveName);
if(toPerspective == null) {
fpm.getMessageManager().raiseException(
wdThis.wdGetAPI().getComponent(), null,
IMessageManager.DEFAULT_EXCEPTION,
"The next perspetive "" + toPerspectiveName
+ "" not defined");
return null;
}
log4j.info("To Perspective: "toPerspective.getName()" , VACs:"+toPerspective.getEmbeddedVACs()[0].getComponentName());
return toPerspective;
//@@end
}
public com.sap.pcuigp.xssfpm.java.Perspective getStartPerspective( )
{
//@@begin getStartPerspective()
log4j.info("CcPrueba: getStartPerspective");
return getNextPerspective(null, IFPM.EVENT_START);
//@@end
}
public com.sap.pcuigp.xssutils.java.ROPState getROPState( com.sap.pcuigp.xssfpm.java.Perspective perspective )
{
//@@begin getROPState()
log4j.info("CcPrueba: getROPState");
log4j.info("CcPrueba: Llega la perspectiva con estado activo: "+perspective.getName());
ROPState ropState = (ROPState) ropStates.get(perspective.getName());
log4j.info("ropState activo: "+ropState.getActiveStep());
return ropState;
//@@end
}
I hope this will help more.
Thank you very much for your effort Aishwarya.
Thanx¡¡
Edited by: Jon Elizondo on Jun 11, 2009 2:28 PM
Hi,
what is the use of following code in the load configuration
ROPState rop1State = new ROPState (ropes, ropStep1.getId());
ROPState rop2State = new ROPState (ropes, ropStep2.getId());
//ROP States
HashMap ropStates = new HashMap();
ropStates.put(startPerspective.getName(),rop1State);
ropStates.put(selectPerspective.getName(),rop2State);
please try once by commenting this code and modifying getROPState() as follows
public com.sap.pcuigp.xssutils.java.ROPState *getROPState*( com.sap.pcuigp.xssfpm.java.Perspective perspective ) {
//@@begin getROPState() log4j.info("CcPrueba: getROPState");
log4j.info("CcPrueba: Llega la perspectiva con estado activo: "+perspective.getName());
String activeStep;
if (perspective.getName().equals(START)) {
activeStep = START;
}
else if (perspective.getName().equals(SELECT)) {
activeStep = SELECT;
}
else {
activeStep = perspective.getName();
}
log4j.info("ropState activo: "+ropState.getActiveStep());
return new ROPState(ropes, activeStep);
//@@end
Hi Aishwarya,
I tried this and after raising event, to getROPState(perspective) method comes the perspective value "START" and therefore activeStep has the value "START"...
I am totally desperate and I do not understand what is happening.
Thank God that you are helping me.
What could be wrong?
Thanks again.
Hi,
I gave the exact id in the view and in the event for my FPM application..........
I created a button with id as REVIEW and then called an action method which has code
fpm.raiseEvent(fpm.EVENT_REVIEW, thisVAC);
if you check EVENT_REVIEW in IFPM interface it equates to a tring review.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi,
I develop my own CC for not using the configuration of the application of PCD.
The method getNextPerspective () of my CC give me back the next perspective to show (second one) when i raised up the event IFPM.EVENT_SELECT in a button 'next'..., is everything ok up there.
However, the perspective and the application returns to the first.
I am desperate, please help ....
Thank you
Did you create the perspetive and provided the next perspetive for on event change?
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Hi,
i am working on the FPM cocepts of EP7.
create a fpm application.
Define road map steps.
define prespectives,
provide the FPP application ID as base configuration ID for your webdynpro application property.
deploy the application.
back to portal.
create FPM views for each Vc you have in your application.
create event links for each fpm views.
add the FPM views to the FPM application prespectivies.
define the navigation like next and back and exit.
it may be help ful for u. if not reply me, i will help u
Cheers,
Apparao
hi,
Yes I am also in EP7 and I followed the steps literally.
Still, I have not managed to change to second perspective.
What I've noticed is that deleting the 'event link' of the FPM application in PCD, my application in the method onEvent () captures the launched event, however if I add the 'event link' in cnfiguration the onEvent () is not called....it seems that the event has not been launched.
Any leads?
Thanks again.
User | Count |
---|---|
81 | |
25 | |
12 | |
9 | |
7 | |
6 | |
5 | |
5 | |
4 | |
4 |
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.