E-Commerce Portal
Hi all,
We need to implement an portal with e-commerce and i ask for all, what is the best architecture for this implementation?
We are thinking in use the Enterprise Portal with webdynpro for Java. what about this?
best regards,
Douglas
MY suggestion would be to use a Hardware Load Balancer to act as a reverse proxy to your Portal servers. This creates a more secure environment.
You can also use the sap web dispatcher, however, my preference is a separate hardware load balancer. One major advantage to this is that when using SSL, you can have the SSL termination do on the LB, and removing that stress from the actual portal servers.
Lookup the sap sizer tool if you are looking for memory and processor requirement for your portal servers.
Regards,
Tom
Similar Messages
-
Out.print written to portlet within portal w/out redirect
I am trying to write output to only just the portlet portion of the portal
without having to do a redirect. What am I missing? The following is my
portlet JSP:
<!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
<%@page import ="java.lang.String" %>
<%@page import ="java.util.*" %>
<%@page import ="java.net.*" %>
<%@page import ="java.io.*" %>
<%
try {
StringBuffer sb = new
StringBuffer("http://localhost:8080/servlet/com.clickaction.erm.events.Event
Servlet?test=test");
for(Enumeration e = request.getParameterNames(); e.hasMoreElements(); ){
String parameterName = (String)e.nextElement();
sb.append("&" + java.net.URLEncoder.encode(parameterName) + "=" +
java.net.URLEncoder.encode(request.getParameter(parameterName)));
String
host="http://localhost:8080/servlet/com.clickaction.erm.events.EventServlet?
com.clickaction.erm.events.EventHandler.EVENT.0=com.clickaction.erm.events.T
ransformerEvent&com.clickaction.erm.events.TransformerEvent.FILE=xml/surveys
/surveyresponsetransforms.xml&clientID=llbean&userID=abcd";
URL servletURL = new URL(sb.toString());
URLConnection con = servletURL.openConnection();
con.setDoInput(true);
con.setUseCaches(false);
con.setRequestProperty("Content-Type", "text/html");
InputStream in = con.getInputStream();
BufferedReader serverStream = new BufferedReader(new InputStreamReader(in));
String receiveString;
while((receiveString = serverStream.readLine()) != null){
out.print(receiveString);
in.close();
} catch (Exception e){
System.out.println("The connection is dead");
response.sendRedirect("http://localhost:7601/mybuybeans");
%>Why can't you do
class Destination
private static Destination d = new Destination();
public static Destination getDestination()
return d;
private Destination()
public void otherMethods()
Now your go between just calls.
Destination.getDestination().otherMethods(); -
Many portals within one session?
Hello,
I have created three different portals which all need to authenticate
the user. Is it possible to get those three portals to use just one
login page, I mean that the user won't have to login more than once? How
are the sessions handled in Weblogic Servers? In weblogic.properties
file you define a sessioncomparator for every portal, for my portals I
am using com.beasys.commerce.portal.admin.PortalSessionComparator, but
Buy Beans example portal uses
com.beasys.commerce.axiom.jsp.DefaultSessionComparator, what is the
difference between these two classes? Allow autologin between browser
sessions can't be used.
I am using Weblogic 5.1 and Personalization Server 2.0.1 with Commerce
Server.
-Maarit-
Maarit Linnekoski [email protected]
tel. +358 (0)9 2311 6649 AtBusiness Communications Oyj
fax +358 (0)9 2311 6601 Itälahdenkatu 19,
mobile +358 (0)50 569 3044 00210 HELSINKI, FINLANDHi Ture
I encounter the same problem for keeping login session across portals
In your example, your invoke the method
putSessionValue( SERVICMANAGER_USER, userLogin, request );
Would you please tell me, how can I get the value of userLogin
Thanks
Warren
Ture Hoefner wrote:
Hello Maarit,
Here are some answers for you.
I have created three different portals which all need to
authenticate
the user. Is it possible to get those three portals to use just one
login page, I mean that the user won't have to login more than once?
How
are the sessions handled in Weblogic Servers?Yes. You can navigate from portal to portal while maintaining the
logged-in state of your user. You can do this by setting the
"TRAFFIC.URI" request attribute equal to the URI of the portal you
want to go to and then use the PortalJspBase.putSessionValue( ) method
to put user and destination information into the session. Then you
could use the PortalJspBase.setLoggedIn( ) method to set the logged-in
status for the user in the new portal (also in the session) because
now when you set session values with methods of PortalJspBase, they
will be fixed up using the URI of the portal you will be going to.
Therefore, the setLoggedIn( ) method works like it were invoked from
the portal you will be going to. Then you could direct a request to
the other portal.
The PortalJspBase.putSessionValue( ) method "fixes up" the keys of
the stored values by prepending a string that uniquely identifies the
portal (made using the TRAFFIC.URI attribute) to avoid naming
collisions (see javadoc at
http://e-docs.bea.com/wlcs/javadoc/p13n/index.html ).
Below is an example I got from someone who implemented such a
solution (I have not tested it). They did not put values in the
session for SERVICEMANAGER_SUCCESSOR or
IMMUTABLE_SERVICE_MANAGER_HOME_PAGE, but they could have.
Make your first JSP page extend PortalJspBase and do something
like this (note that the constants that I have not declared come from
interfaces that are implemented by PortalJspBase (see javadoc):
<%! // Declaration
public static final String MY_PORTAL_NAME = "MyPortal"; // portalname
public static final String MY_PORTAL_URI = "/myportal"; // servlet name
public static final String MY_PORTAL_DIR = "/myportal"; // workingdir
%>
<%
// Get MyPortal
String workingDir = MY_PORTAL_DIR;
String thePage = getPortalManager(request)
.getPortalFor(MY_PORTAL_NAME).getContentURL();
// Set user and destination stuff
request.setAttribute(TRAFFIC_URI, MY_PORTAL_URI);
putSessionValue( SERVICMANAGER_USER, userLogin, request );
putSessionValue( PORTAL_NAME, MY_PORTAL_NAME, request );
putSessionValue( SERVICEMANAGER_HOME_PAGE, thePage, request );
// Log in the user
setLoggedIn(request, response, true);
// Go there
response.sendRedirect(getTrafficURI(request));
%>
In weblogic.properties
file you define a sessioncomparator for every portal, for my portals
I
am using com.beasys.commerce.portal.admin.PortalSessionComparator,
but
Buy Beans example portal uses
com.beasys.commerce.axiom.jsp.DefaultSessionComparator, what is the
difference between these two classes?The <pt:monitorsession> tag uses a SessionComparator to see if the
session is valid, and it can be used to disallow access to a page (see
docs at http://e-docs.bea.com/wlcs/p13ndev/jsptags.htm#1024804
You specify the SessionComparator that you want to register with your
portal or personalized application in weblogic.properties with the
sessioncomparator argument.
The PortalSessionComparator and DefaultSessionComparator both
implement the SessionComparator interface, which defines a single
method, isValid( ) (see javadoc at
http://e-docs.bea.com/wlcs/javadoc/p13n/index.html ) The
DefaultSessionComparator class returns true for the isValid( ) method.
The PortalSessionComparator additionally implements the
PortalAdminConstants interface and checks session attributes to make
sure that the minimum attributes are present for proper operation of
the PortalServiceManager servlet. If you want to add requirements for
a valid portal session, say that the "PREFERRED_CUSTOMER" attribute
must be present and the value must be "true", then you would just
extend PortalSessionComparator and register your new sessioncomparator
argument in weblogic.properties.
Notice that BuyBeans example portal does NOT use the
DefaultSessionComparator. It uses the PortalSessionComparator. The
BuyBeans demo has an example personalized application that is not a
portal (registered as "/mpbb" with the JspServiceManager servlet)
which is used to access an example portal (registered as "/mybuybeans"
with the PortalServiceManager). The personalized application that is
not a portal ("/mpbb") uses the DefaultSessionComparator.
Good luck.
Ture Hoefner
BEA Systems, Inc.
1655 Walnut Street; suite 200
Boulder, CO 80302
www.beasys.com
[att1.html] -
NullPointerException in Portal management
I created a new Portal by copying the exampleportal, editing the config.xml
file, and editing the property set.
The (cloudscape) database was reinitialized by deleting the Commerce db and
copying the CommerceBackup to the Commerce db.
I use WLS 6.0 SP2, and WLCS 3.5.
When opening the newly created portal in the administration tool, the portal
management, the "definition", "associated portlets", and the "layout"
sections show well, but the "colors" section produces a
NullPointerException, of which the stack trace follows:
java.lang.NullPointerException:
at
jsp_compiled._tools._portal._portal_view._jspService(_portal_view.java:708)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImp
l.java:157)
at
com.beasys.commerce.foundation.flow.ServletDestinationHandler.handleDestinat
ion(ServletDestinationHandler.java:51)
at
com.beasys.commerce.foundation.flow.FlowManager.service(FlowManager.java:540
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:1265)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
The "associated groups" section does not show at all. When opening the
exampleportal in the portal management, no such errors occur.
When trying to edit the "colors", the following NullPointerException occurs:
java.lang.NullPointerException:
at
com.beasys.commerce.portal.jspbeans.PortalAppearanceBean.getSchemaProperty(P
ortalAppearanceBean.java:784)
at
jsp_compiled._tools._portal._portal_colors._jspService(_portal_colors.java:6
37)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImp
l.java:157)
at
com.beasys.commerce.foundation.flow.ServletDestinationHandler.handleDestinat
ion(ServletDestinationHandler.java:51)
at
com.beasys.commerce.foundation.flow.FlowManager.service(FlowManager.java:540
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:1265)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Any ideas on why these exceptions are raised, and how I can solve this?
IgnazI created a new Portal by copying the exampleportal, editing the config.xml
file, and editing the property set.
The (cloudscape) database was reinitialized by deleting the Commerce db and
copying the CommerceBackup to the Commerce db.
I use WLS 6.0 SP2, and WLCS 3.5.
When opening the newly created portal in the administration tool, the portal
management, the "definition", "associated portlets", and the "layout"
sections show well, but the "colors" section produces a
NullPointerException, of which the stack trace follows:
java.lang.NullPointerException:
at
jsp_compiled._tools._portal._portal_view._jspService(_portal_view.java:708)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImp
l.java:157)
at
com.beasys.commerce.foundation.flow.ServletDestinationHandler.handleDestinat
ion(ServletDestinationHandler.java:51)
at
com.beasys.commerce.foundation.flow.FlowManager.service(FlowManager.java:540
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:1265)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
The "associated groups" section does not show at all. When opening the
exampleportal in the portal management, no such errors occur.
When trying to edit the "colors", the following NullPointerException occurs:
java.lang.NullPointerException:
at
com.beasys.commerce.portal.jspbeans.PortalAppearanceBean.getSchemaProperty(P
ortalAppearanceBean.java:784)
at
jsp_compiled._tools._portal._portal_colors._jspService(_portal_colors.java:6
37)
at weblogic.servlet.jsp.JspBase.service(JspBase.java:27)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.RequestDispatcherImpl.forward(RequestDispatcherImp
l.java:157)
at
com.beasys.commerce.foundation.flow.ServletDestinationHandler.handleDestinat
ion(ServletDestinationHandler.java:51)
at
com.beasys.commerce.foundation.flow.FlowManager.service(FlowManager.java:540
at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
at
weblogic.servlet.internal.ServletStubImpl.invokeServlet(ServletStubImpl.java
:213)
at
weblogic.servlet.internal.WebAppServletContext.invokeServlet(WebAppServletCo
ntext.java:1265)
at
weblogic.servlet.internal.ServletRequestImpl.execute(ServletRequestImpl.java
:1631)
at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:137)
at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:120)
Any ideas on why these exceptions are raised, and how I can solve this?
Ignaz -
Hi all,
I work with flow control in the WLPS and have some problem.
I am able to invoke unportalized JSP from a pipelet but cann't manage to
return back to the portal home page.
To invoke an unportalized JSP I use the following sequense in the
webflow.properties:
agentsMgr.jsp.link(agentNew)=portals/myPortal/agentNew.jsp
where agentsMgr.jsp is a portlet and agentNew.jsp is a particular JSP.
Now I would like to return back to the portal home page.
I tried to use the following code:
in JSP:
WebflowJSPHelper.createWebflowURL(pageContext,"agentsNew.jsp","link(portalHome)",true)
in webflow.properties: *
.jsp.link(portalHome)=portals/myPortal/portal.jsp
and got an exception.
I changed approach and used
in JSP:
WebflowJSPHelper.createWebflowURL(pageContext,"agentsNew.jsp","link(portalHome)","&portalized=true&dest="+getHomePage(request),
true)
in webflow.properties: nothing
and the result was the same.
I noticed that getHomePage(request) always retrives null although I have
used <%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
Any pointers about using flow management with portals would be greatly
appreciated.
AlexAre you trying to build an interaction system within OBIEE? If that is the case, then OBI might not be an ideal tool as it is a Business Intelligence reporting tool.
-
Redirect service from http to https, session is lost
I have setup two web sites using NT 4.0 IIS so that both
"http://nossl/mybeanbeans" and "https://ssltest/mybeanbeans"
can execute the commerce server mybuybeans example.
Then I modify the shoppingCartDetail.jsp and commandAssembler.jsp
(files attached) hoping that when I click the "Checkout" button
on the Shopping Cart screen, it will redirect the service from
http to https.
The URL is redirected to "https" but it depicts the welcome page
instead of showing the Order Check Out page.
Previous session information is lost.
Can anyone help me?
Thanks
<!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
<%@ page errorPage="../error.jsp" %>
<%@ page import="java.lang.reflect.*" %>
<%@ page import="theory.smartx.command.*" %>
<%@ page import="examples.buybeans.client.*" %>
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase" %>
<%@ page implements="BuyBeansJspConstants" %>
<pt:monitorsession />
<%@ include file="monitorSessionTracker.jsp" %>
<%
// Get the Command class name to instantiate
String commandClassName = request.getParameter(COMMAND_CLASS_NAME_PARAM);
System.out.println("COMMAND_CLASS_NAME_PARAM : " + commandClassName);
if (commandClassName != null) {
// Get the BuyBeansSessionTracker
BuyBeansSessionTracker sessionTracker = (BuyBeansSessionTracker)session.getValue(com.beasys.commerce.portal.admin.PortalAdminHelper.qualifiedName(BUYBEANS_SESSION_TRACKER_KEY ,request));
// Construct an array of 1 element to hold the BuyBeansSessionTracker
// parameter type that the constructor takes.
Class constructorParamTypes[] = new Class[1];
constructorParamTypes[0] = sessionTracker.getClass();
try {
// Get the Class for the concrete Command
Class commandClass = Class.forName(commandClassName);
// Get constructor that takes the BuyBeansSessionTracker as argument
Constructor commandClassCtor = commandClass.getConstructor(constructorParamTypes);
// Set the BuyBeansSessionTracker argument for the constructor
Object ctorParams[] = new Object[1];
ctorParams[0] = sessionTracker;
// Create the instance of the concrete Command
Command command = (Command) commandClassCtor.newInstance(ctorParams);
// Pass the HttpRequest to the command so that it can
// read the parameter and then execute it.
command.assemble(request);
// Store the outstanding command in the session tracker so that
// the main portal page can execute it.
sessionTracker.setCommand(command);
setOverrideDestination(request, getHomePage(request));
%>
<%-- Added by Warren --%>
<%
String queryString = request.getQueryString();
String encodeURL=response.encodeURL(getTrafficURI(request));
String redirectURL=response.encodeRedirectURL("https://ssltest"+encodeURL);
System.out.println("====================");
System.out.println("queryString:" + queryString);
System.out.println("encodeURL:" + encodeURL);
System.out.println("redirectURL:" + redirectURL);
System.out.println("========before sendRedirect============");
response.sendRedirect(redirectURL);
System.out.println("========after sendRedirect============");
%>
<%
System.out.println("======== end commandAssemblerSSL ============");
catch (ClassNotFoundException cnfe) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, cnfe);
catch (NoSuchMethodException nsme) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, nsme);
catch (IllegalAccessException illegalAccessEx) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, illegalAccessEx);
catch (IllegalArgumentException illegalArgEx) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, illegalArgEx);
catch (InstantiationException ie) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ie);
catch (InvocationTargetException ite) {
throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ite);
%>
<!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
<%@ taglib uri="lib/wljsp.jar" prefix="wl" %>
<%@ taglib uri="lib/esportal.jar" prefix="pt" %>
<%@ page errorPage="../error.jsp" %>
<%@ page import="com.beasys.commerce.portal.Portlet" %>
<%@ page import="examples.buybeans.client.*" %>
<%@ page import="theory.smart.ebusiness.item.*" %>
<%@ page import="theory.smart.ebusiness.order.*" %>
<%@ page import="theory.smart.axiom.units.*" %>
<%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
<%@ page implements="BuyBeansJspConstants"%>
<pt:monitorsession />
<%@ include file="monitorSessionTracker.jsp" %>
<SCRIPT LANGUAGE="JavaScript">
<!--
function submitShoppingCartDetailsForm(commandClassName, bbContent)
document.ShoppingCartDetailForm.<%= COMMAND_CLASS_NAME_PARAM %>.value = commandClassName;
document.ShoppingCartDetailForm.<%= BUYBEANS_CONTENT_PARAM %>.value = bbContent;
document.ShoppingCartDetailForm.submit();
//-->
</SCRIPT>
<%
BuyBeansSessionTracker sessionTracker = (BuyBeansSessionTracker)getSessionValue( BUYBEANS_SESSION_TRACKER_KEY, request );
// Get the current Order
Order currOrder = sessionTracker.getEBusinessSession().getOrder();
// Get all the items in the cart as a Vector of orderlines from the session tracker
java.util.Vector orderLines = sessionTracker.getCartOrderLines();
%>
<!-- Display the items from the shopping cart -->
<table width="99%" border="0" cellspacing="0" cellpadding="0" align="center">
<tr bgcolor=FFFFFF>
<td> </td>
<tr bgcolor="#FFFFFF">
<td>
<table width="95%" border="0" cellspacing="0" cellpadding="3" align="center" dwcopytype="CopyTableRow">
<tr>
<td colspan="6"><font face="Arial, Helvetica, Verdana, sans-serif"><%@ include file="contentMessages.jsp" %></font></td>
</tr>
<tr>
<td colspan="6"> <%= JspHelperBase.formatAsTitle("Shopping Cart - SSL*** ") %> </td>
</tr>
<tr>
<td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Product ID</b></font></td>
<td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Description</b></font></td>
<td><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Quantity</b></font></td>
<td align="right"><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Price</b></font></td>
<td align="right"><font face="Arial,Helvetica,sans-serif" color="#666600" size="2"><b>Subtotal</b></font></td>
<td></td>
</tr>
<form method="get" name="ShoppingCartDetailForm" action="<%= response.encodeURL(getTrafficURI(request)) %>" >
<%
// Declare a currency format type
Quantity one = QuantityHome.create();
one.setCount(1);
// Print out all the items in the cart
for(int i = 0; i<orderLines.size(); i++ ) {
OrderLine currOrderLine = (OrderLine)orderLines.elementAt(i);
Item myItem = currOrderLine.getItem();
ItemValue iv = myItem.getItemByValue();
String desc = iv.description;
String id = iv.identifier;
// Specify the color of the row
String rowColor = (i%2 == 0) ? ROW_BACKGROUND_COLOR_1 : ROW_BACKGROUND_COLOR_2 ;
// Specify the name of the quantity text field - name it as qty+i
String qtyInputName = ORDER_QUANTITY + i;
// Specify the name of the remove checkbox
String removeInputName = REMOVE_CHECKED + i;
%>
<!-- print out the details of each item -->
<tr bgcolor="<%= rowColor %>">
<td><%= id %></td>
<td><%= desc %></td>
<td>
<input type="text" name="<%= qtyInputName %>" size=3 maxlength=3 value= "<%= JspHelperBase.formatQuantityAsInteger(currOrderLine.getQuantity()) %>" >
</td>
<td align="right"><%= JspHelperBase.formatPriceAsCurrency(myItem.calculatePrice(one, null)) %></td>
<td align="right"><%= JspHelperBase.formatPriceAsCurrency(currOrderLine.getLinePrice(null)) %></td>
<td><input type="checkbox" name="<%= removeInputName %>" value="<%=REMOVE_CHECKED %>" > Remove </td>
</tr>
<%
%>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td align="right"> <font face="Arial,Helvetica,sans-serif" size="3" color="#666600"><b>Total:</b></font></td>
<td>
<div align="right"><font face="Arial, Helvetica, sans-serif" size="3" color="#990000"><b><%= JspHelperBase.formatPriceAsCurrency(currOrder.getTotalPrice()) %>
</b> </font> </div>
</td>
<td>
<input type="button" name="<%=UPDATE_CART_BUTTON %>"
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.UpdateShoppingCartCommand', '<%= SHOPPING_CART_DETAILS_JSP %>')"
value="Update">
</td>
</tr>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td>
<input type="button" name="<%=CHECKOUT_BUTTON %>"
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.CheckOutCommand', '<%= CHECKOUT_JSP %>')"
value="Checkout">
</td>
</tr>
<tr colspan="6">
<td> </td>
</tr>
<%-- DESTINATION_TAG is required because the form action goes to getTrafficURI() --%>
<%-- In this case, the destination is the command assembler --%>
<%-- <input type=hidden name="<%= DESTINATION_TAG %>" value="<%= COMMAND_ASSEMBLER_JSP %>"> --%>
<%-- The following line is used for testing SSL redirect --%>
<input type=hidden name="<%= DESTINATION_TAG %>" value="/portals/buybeans/portlets/commandAssemblerSSL.jsp" >
<%-- The following two parameters are set by the JavaScript function based --%>
<%-- on the button that the user presses (default value are provided ) --%>
<input type=hidden name="<%= BUYBEANS_CONTENT_PARAM %>" value="<%= SHOPPING_CART_DETAILS_JSP %>">
<input type=hidden name="<%= COMMAND_CLASS_NAME_PARAM %>" value="examples.buybeans.client.UpdateShoppingCartCommand">
</form>
</table>
</td>
</tr>
<tr>
<td> </td>
</tr>
</table>
the problem is when the cookie is exchanged between the browser
and the app server IE treats request coming from http://bc.com:7001
and http://bc.com:7002 as one and the same : so the browser maintains
the same session but netscape treats this as responses coming from two
different servers and hence u lost the session.
I assume u are having this problem with netscape and not IE.
the solution is set this property in the weblogic.properties file
weblogic.httpd.session.cookie.domain=.bc.com
-Sumanth
"senthil ramiah" <[email protected]> wrote in message
news:[email protected]...
>
> Hi,
> Did you receive any replies for this question.
> thanx
> senthil
>
> Warren Li <[email protected]> wrote:
> >
> >I have setup two web sites using NT 4.0 IIS so that both
> > "http://nossl/mybeanbeans" and "https://ssltest/mybeanbeans"
> >can execute the commerce server mybuybeans example.
> >
> > Then I modify the shoppingCartDetail.jsp and commandAssembler.jsp
> > (files attached) hoping that when I click the "Checkout" button
> > on the Shopping Cart screen, it will redirect the service from
> > http to https.
> >
> >The URL is redirected to "https" but it depicts the welcome page
> > instead of showing the Order Check Out page.
> > Previous session information is lost.
> >
> >Can anyone help me?
> >
> >Thanks
> >
> >
> >
> ><!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
> >
> ><%@ page errorPage="../error.jsp" %>
> ><%@ page import="java.lang.reflect.*" %>
> ><%@ page import="theory.smartx.command.*" %>
> ><%@ page import="examples.buybeans.client.*" %>
> >
> ><%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase" %>
> ><%@ page implements="BuyBeansJspConstants" %>
> >
> ><pt:monitorsession />
> >
> ><%@ include file="monitorSessionTracker.jsp" %>
> >
> ><%
> > // Get the Command class name to instantiate
> > String commandClassName =
request.getParameter(COMMAND_CLASS_NAME_PARAM);
> > System.out.println("COMMAND_CLASS_NAME_PARAM : " + commandClassName);
> > if (commandClassName != null) {
> >
> > // Get the BuyBeansSessionTracker
> > BuyBeansSessionTracker sessionTracker =
(BuyBeansSessionTracker)session.getValue(com.beasys.commerce.portal.admin.Po
rtalAdminHelper.qualifiedName(BUYBEANS_SESSION_TRACKER_KEY ,request));
> >
> > // Construct an array of 1 element to hold the
BuyBeansSessionTracker
> > // parameter type that the constructor takes.
> > Class constructorParamTypes[] = new Class[1];
> > constructorParamTypes[0] = sessionTracker.getClass();
> >
> > try {
> > // Get the Class for the concrete Command
> > Class commandClass = Class.forName(commandClassName);
> >
> > // Get constructor that takes the BuyBeansSessionTracker as
argument
> > Constructor commandClassCtor =
commandClass.getConstructor(constructorParamTypes);
> >
> > // Set the BuyBeansSessionTracker argument for the constructor
> > Object ctorParams[] = new Object[1];
> > ctorParams[0] = sessionTracker;
> >
> > // Create the instance of the concrete Command
> > Command command = (Command)
commandClassCtor.newInstance(ctorParams);
> >
> > // Pass the HttpRequest to the command so that it can
> > // read the parameter and then execute it.
> > command.assemble(request);
> >
> > // Store the outstanding command in the session tracker so that
> > // the main portal page can execute it.
> > sessionTracker.setCommand(command);
> > setOverrideDestination(request, getHomePage(request));
> >%>
> >
> ><%-- Added by Warren --%>
> ><%
> > String queryString = request.getQueryString();
> > String encodeURL=response.encodeURL(getTrafficURI(request));
> > String
redirectURL=response.encodeRedirectURL("https://ssltest"+encodeURL);
> > System.out.println("====================");
> > System.out.println("queryString:" + queryString);
> > System.out.println("encodeURL:" + encodeURL);
> > System.out.println("redirectURL:" + redirectURL);
> > System.out.println("========before sendRedirect============");
> > response.sendRedirect(redirectURL);
> > System.out.println("========after sendRedirect============");
> >%>
> >
> ><%
> > System.out.println("======== end commandAssemblerSSL ============");
> > }
> > catch (ClassNotFoundException cnfe) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, cnfe);
> > }
> > catch (NoSuchMethodException nsme) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, nsme);
> > }
> > catch (IllegalAccessException illegalAccessEx) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600,
illegalAccessEx);
> > }
> > catch (IllegalArgumentException illegalArgEx) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600,
illegalArgEx);
> > }
> > catch (InstantiationException ie) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ie);
> > }
> > catch (InvocationTargetException ite) {
> > throw new ApplicationException(BUYBEANS_CATALOG_NAME, 600, ite);
> > }
> > }
> >
> >%>
> >
> >
> ><!-- Copyright (c) 2000 by BEA Systems, Inc. All Rights Reserved. -->
> >
> ><%@ taglib uri="lib/wljsp.jar" prefix="wl" %>
> ><%@ taglib uri="lib/esportal.jar" prefix="pt" %>
> >
> ><%@ page errorPage="../error.jsp" %>
> ><%@ page import="com.beasys.commerce.portal.Portlet" %>
> ><%@ page import="examples.buybeans.client.*" %>
> ><%@ page import="theory.smart.ebusiness.item.*" %>
> ><%@ page import="theory.smart.ebusiness.order.*" %>
> ><%@ page import="theory.smart.axiom.units.*" %>
> ><%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
> >
> ><%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
> ><%@ page implements="BuyBeansJspConstants"%>
> >
> >
> ><pt:monitorsession />
> >
> ><%@ include file="monitorSessionTracker.jsp" %>
> >
> ><SCRIPT LANGUAGE="JavaScript">
> ><!--
> >function submitShoppingCartDetailsForm(commandClassName, bbContent)
> >{
> > document.ShoppingCartDetailForm.<%= COMMAND_CLASS_NAME_PARAM %>.value
= commandClassName;
> > document.ShoppingCartDetailForm.<%= BUYBEANS_CONTENT_PARAM %>.value =
bbContent;
> > document.ShoppingCartDetailForm.submit();
> >}
> >//-->
> ></SCRIPT>
> >
> ><%
> > BuyBeansSessionTracker sessionTracker =
(BuyBeansSessionTracker)getSessionValue( BUYBEANS_SESSION_TRACKER_KEY,
request );
> >
> > // Get the current Order
> > Order currOrder = sessionTracker.getEBusinessSession().getOrder();
> >
> > // Get all the items in the cart as a Vector of orderlines from the
session tracker
> > java.util.Vector orderLines = sessionTracker.getCartOrderLines();
> >%>
> >
> >
> ><!-- Display the items from the shopping cart -->
> > <table width="99%" border="0" cellspacing="0" cellpadding="0"
align="center">
> > <tr bgcolor=FFFFFF>
> > <td> </td>
> > <tr bgcolor="#FFFFFF">
> > <td>
> > <table width="95%" border="0" cellspacing="0" cellpadding="3"
align="center" dwcopytype="CopyTableRow">
> > <tr>
> > <td colspan="6"><font face="Arial, Helvetica, Verdana,
sans-serif"><%@ include file="contentMessages.jsp" %></font></td>
> > </tr>
> > <tr>
> > <td colspan="6"> <%= JspHelperBase.formatAsTitle("Shopping
Cart - SSL*** ") %> </td>
> > </tr>
> > <tr>
> > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
size="2"><b>Product ID</b></font></td>
> > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
size="2"><b>Description</b></font></td>
> > <td><font face="Arial,Helvetica,sans-serif" color="#666600"
size="2"><b>Quantity</b></font></td>
> > <td align="right"><font face="Arial,Helvetica,sans-serif"
color="#666600" size="2"><b>Price</b></font></td>
> > <td align="right"><font face="Arial,Helvetica,sans-serif"
color="#666600" size="2"><b>Subtotal</b></font></td>
> > <td></td>
> > </tr>
> >
> > <form method="get" name="ShoppingCartDetailForm" action="<%=
response.encodeURL(getTrafficURI(request)) %>" >
> > <%
> > // Declare a currency format type
> > Quantity one = QuantityHome.create();
> > one.setCount(1);
> >
> > // Print out all the items in the cart
> > for(int i = 0; i<orderLines.size(); i++ ) {
> > OrderLine currOrderLine =
(OrderLine)orderLines.elementAt(i);
> > Item myItem = currOrderLine.getItem();
> > ItemValue iv = myItem.getItemByValue();
> > String desc = iv.description;
> > String id = iv.identifier;
> >
> > // Specify the color of the row
> > String rowColor = (i%2 == 0) ? ROW_BACKGROUND_COLOR_1 :
ROW_BACKGROUND_COLOR_2 ;
> >
> > // Specify the name of the quantity text field - name
it as qty+i
> > String qtyInputName = ORDER_QUANTITY + i;
> >
> > // Specify the name of the remove checkbox
> > String removeInputName = REMOVE_CHECKED + i;
> >
> >
> > %>
> > <!-- print out the details of each item -->
> > <tr bgcolor="<%= rowColor %>">
> > <td><%= id %></td>
> > <td><%= desc %></td>
> > <td>
> > <input type="text" name="<%= qtyInputName %>" size=3
maxlength=3 value= "<%=
JspHelperBase.formatQuantityAsInteger(currOrderLine.getQuantity()) %>" >
> > </td>
> > <td align="right"><%=
JspHelperBase.formatPriceAsCurrency(myItem.calculatePrice(one, null))
%></td>
> > <td align="right"><%=
JspHelperBase.formatPriceAsCurrency(currOrderLine.getLinePrice(null))
%></td>
> > <td><input type="checkbox" name="<%= removeInputName %>"
value="<%=REMOVE_CHECKED %>" > Remove </td>
> > </tr>
> > <%
> > }
> > %>
> > <tr>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td align="right"> <font face="Arial,Helvetica,sans-serif"
size="3" color="#666600"><b>Total:</b></font></td>
> > <td>
> > <div align="right"><font face="Arial, Helvetica,
sans-serif" size="3" color="#990000"><b><%=
JspHelperBase.formatPriceAsCurrency(currOrder.getTotalPrice()) %>
> > </b> </font> </div>
> > </td>
> > <td>
> > <input type="button" name="<%=UPDATE_CART_BUTTON %>"
> >
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.UpdateShopp
ingCartCommand', '<%= SHOPPING_CART_DETAILS_JSP %>')"
> > value="Update">
> > </td>
> > </tr>
> > <tr>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td> </td>
> > <td>
> > <input type="button" name="<%=CHECKOUT_BUTTON %>"
> >
onClick="submitShoppingCartDetailsForm('examples.buybeans.client.CheckOutCom
mand', '<%= CHECKOUT_JSP %>')"
> > value="Checkout">
> > </td>
> > </tr>
> > <tr colspan="6">
> > <td> </td>
> > </tr>
> >
> > <%-- DESTINATION_TAG is required because the form action goes
to getTrafficURI() --%>
> > <%-- In this case, the destination is the command
--%>
> ><%-- <input type=hidden name="<%= DESTINATION_TAG %>" value="<%=
COMMAND_ASSEMBLER_JSP %>"> --%>
> >
> > <%-- The following line is used for testing SSL redirect --%>
> > <input type=hidden name="<%= DESTINATION_TAG %>"
value="/portals/buybeans/portlets/commandAssemblerSSL.jsp" >
> >
> > <%-- The following two parameters are set by the JavaScript
function based --%>
> > <%-- on the button that the user presses (default value are
provided ) --%>
> > <input type=hidden name="<%= BUYBEANS_CONTENT_PARAM %>"
value="<%= SHOPPING_CART_DETAILS_JSP %>">
> > <input type=hidden name="<%= COMMAND_CLASS_NAME_PARAM %>"
value="examples.buybeans.client.UpdateShoppingCartCommand">
> >
> > </form>
> > </table>
> > </td>
> > </tr>
> > <tr>
> > <td> </td>
> > </tr>
> ></table>
> >
>
-
What is the difference between
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
and
<%@ page import="com.beasys.commerce.portal.admin.PortalJspBase"%>
"Kenneth Lee" <[email protected]> wrote in message news:<3bebfe13$[email protected]>...
> What is the difference between
> <%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
> and
> <%@ page import="com.beasys.commerce.portal.admin.PortalJspBase"%>
On the terminology extends vs import:- First, your jsp is basically a
servlet. Whether your servlet is a kind of another class (extends) or
use (import) another class is up your requirement.
In your case, in theory, it shouldn't make a difference. Why? Because
PortalJspBase is like a utility "Singleton" class (seemed like most of
the functions and variables are static)! Deriving this class would
possibly save some coding effort. However, since you are making a
portlet (aren't you?), making it to be a "kind-of" weblogic portlet
means that you must derive (or in the Java world, extend) from the
above.
Only my 2 cents worth.
Regards
drit
-
Hi,
Any one has idea on how to provide billing services for Cisco DMS solutions ( video portal ) users.
RegardsI've looked at this and I don't think its doable with the video portal in its current version. I take it you are trying to sale content through your video portal. The DMS system definitely doesn't support this. There is no hierarchial permissioning of content and no way to have an e-commerce portal launch when a video is clicked before it begins playing. I don't think it is on the roadmap either.
Sorry.
Check out Accordent Technologies Media Manger it will do it easily. -
Create quotation and contact person
Hello Experts,
I have an <removed by moderator> requirement mentioned below:
Our client will send some Quotation information along with Contact Person data from a E-commerce portal to ECC using Webservice. And then I have to:
1) Create a Contact Person for Bill To Party Customer.
2) And when Contact Person gets created then assign this Contact Person to Bill To Party
3) create Quotation assigning this contact person.
All this processing has to be done in background mode.
Kindly provide any lead, <removed by moderator>
Thanks,
Message was edited by: Manish KumarHi Malik,
Please refer the below SCN links for creating Contact Person.
http://scn.sap.com/thread/159981
http://scn.sap.com/thread/1237915
To create quotation, use the BAPI - 'BAPI_QUOTATION_CREATEFROMDATA2'.
Hope, this helps. -
Personalization Server Framework files
Hi,
I am using the framework files that comes with BEA Personalization Server
(i.e. header.jsp, error. jsp, etc.). I am hoping it will give me a jump
start
in developing the web site.
I am going through the code to understand what it is doing. I am stuck
with one thing in a file called header.jsp.
<%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants" %>
<% String HEADER_FORWARD = "HEADER_FORWARD"; %>
I am trying to figure out what "HEADER_FORWARD" does. I tried
to find out if this constant is declared in the Javadoc API, but yet
I can't find documentation on "PortalTagConstants"
Any help is appreciated... Thank you
TeddyHello,
The personilization server does seem to lack documentation, as for the tags,
the descriptions given are minimal.
I normally look at the use of the tags in the buy beans examples and try to
replicate what I believe the tags are doing in my own test portal. So far I
have had a fair amount of success. If you need any help regarding tag use
please feel free to post your questions to me but I can't garantee detailed
responses to general questions.
best regards hoos.
"Teddy" <[email protected]> wrote in message
news:[email protected]..
Hi,
I have gone through user guide tag documentation. It doesn't
get that much detail. All it says about the framework files is
one or two sentences for each file (e.g. portal.jsp file
is the default file for the portal)
Is there more documentation on it such as a flow chart
of how the code works?
Teddy
Hussein Badakhchani <[email protected]> wrote in message
news:3994310a$[email protected]..
Hello,
it looks like the jsp tags use this attribute to forward the user to the
correct page when they select a button like "home" from the header.
if you need more info read personalisation server user guide tag
specification or feel free to hassal me (it's 18.00 on friday I have togo!)
regards hoos
"Teddy" <[email protected]> wrote in message
news:3992d826$[email protected]..
Hi,
I am using the framework files that comes with BEA Personalization
Server
(i.e. header.jsp, error. jsp, etc.). I am hoping it will give me a
jump
start
in developing the web site.
I am going through the code to understand what it is doing. I am stuck
with one thing in a file called header.jsp.
<%@ page import="com.beasys.commerce.portal.tags.PortalTagConstants"%>
<% String HEADER_FORWARD = "HEADER_FORWARD"; %>
I am trying to figure out what "HEADER_FORWARD" does. I tried
to find out if this constant is declared in the Javadoc API, but yet
I can't find documentation on "PortalTagConstants"
Any help is appreciated... Thank you
Teddy -
Upgrade Plan - Web Shop - NWDI
Hi Experts,
My customer has planned to upgrade their portal from version 7.01 to 7.02 SPS4. They have four environments namely Dev, Quality, Acceptance & Production. They plan to upgrade Dev first, followed by Acceptance & then Production. (Quality is kept as it is for incident mitigation till Production is patched)
The portal is effectively an e-commerce portal which has both portal components & Web shop deployed on it. The Web Shop code is hosted on NWDI which is configured to build the Dev server once the code is checked in.
Now these are my questions:
1. Lets say that while Dev is being upgraded, we need to fix a critical incident involving web shop code. Can we configure NWDI to build Quality rather than Dev. The current setup is that transports need to be done sequentially i.e. D->Q->A->P.
And even if build fails in Quality, can i directly configure NWDI to point to production and do the build there?
2. Is it possible to register the same instance multiple times (say quality instance)under 'target instance'. Will this help me at all?
Regards,
Ramanathan PalaniappanHi Ramanathan,
First of all let me make one thing clear.
No matter how many Runtime systems you have in your landscape (In your case D->Q->A->P), your NWDI usage type or instance, whether it is hosted on your Development Server or some different host separately is common across these systems.
To give you more clarity you need to understand the following concepts.
1) Your Landscape consists D->Q->A->P.
2) Here, lets assume that NWDI is running on your Development Server D.
3) That means all the 3 pillars (DTR, CBS & CMS) of NWDI are present in Dev host.
4) Now, Suppose are maintaining a Track named "Track-A"
5) Whatever developments that are carried out (Source Code Modification) specific to "Track-A" are available in the DTR-Server present Dev Host only.
6) So, the Build process is also specific to Development Host ONLY
7) You cannot use terms like "Can we configure NWDI to build Quality rather than Dev", it simply doesn't make sense.
OK, so far so good.
Lets move further ahead.
There's a big difference between Build process and Deploy Process.
1) When you create a Track, you need to define the Runtime Systems of your Track.
2) When you define runtime systems, your purpose is to provide information to the CMS about--> to which all systems you will be DEPLOYING your Compiled Source Code (Which is in the form .SCA that is created as an output in Assembly step)
3) Build Process as explained above happens only on Development Host in Development Buildspace and Consolidation Buildspace of your Track.
You can also refer to the thread where i have explains step-by-step process about what happens under the hood in NWDI
Re: Comparing records in Update Rules
Now, if you meant to configure NWDI to point Quality rather than Dev in terms of Deployment only then Yes, It is very much possible.
Follow the below mentioned procedure...
1) Open the CMS Web UI >> Landscape Configurator >> Track Data >> Runtime Systems
2) Here, you can configure your runtime system as you wish.
3) For Example if you want to skip the deployment into Quality and directly deploy in production then you can uncheck the "Test" from Selected Runtime Systems.
After you modify the setting in Runtime systems in Landscape configurator, then relevant changes will be reflected in the Transport Studio of your track. Considering the above example The "Test" tab will not be available.
I hope my inputs will help you resolve your query.
Regards,
Shreyas Pandya -
PCM Configuration SAP CRM 2007
Hi Gurus
Need your help,
Currently we are using SAP CRM 2007.We need to configure the variant configurable products,I think in CRM we need to use the PME to configure the variant products,Is the PCM is inbuilt in CRM? or we need to install any software,yes please give me downloadable path.
After configuring the Variant products we need to display in b2b e-commerce portal,
Is any body having any idea please send the response ASAP.
Awaiting for ur response
Regards
Satishhi satish,
pls see the below urls
ftp://ftp.software.ibm.com/software/tivoli/whitepapers/wp-zseries.pdf
sap.sys-con.com/read/category/1639.htm - 103k
sap.sys-con.com/read/521435.htm - 60k
www.sap.com/solutions/business-suite/crm/pdf/Misc_Pathway_to_Profit.pdf
thanks
karthik -
API to find a Portlet from its name
I need to find a Portlet knowing its own name and without any portal name.
I could really find one from the documentation. Thus I looked for it in the
JSP Tag Library Javadoc. But neither <es:portalManager> nor
<es:portletManager> provide this. Finally I checked out add_portlets.jsp
from the tools.war webapp (admin console), where I found
com.beasys.commerce.portal.admin.jspbeans.PortalFinderJspBean (from WLPS
Javadoc, "contains numerous finder methods that wrap many of the
PortalManger APIs."). A method getPortletFor(String aPortletName) seemed to
be exactly what I was looking for.
First, I would like to be sure that it will be supported in following
versions of WLPS. (as I did not find any doc about it)
Secondly, as I now have some performance issues localized on this search
task, I would like to be sure it is the most relevant API to do what I want.
Regards.
YannHello Yann,
The PortalFinderJspBean wraps the methods of the PortalManager session bean.
If you want to, you can use the PortalManager session bean directly.
PortalManagerHome is not in the javadoc (there is an engineering change request
to get it in), but it really does exist and you can get a PortalManager like
this:
PortalManagerHome pmh = (PortalManagerHome)
JNDIHelper.getService(PortalManager.LOOKUP_NAME);
PortalManager pm = pmh.create();
The PortalManager is part of the public API, so it is as safe as anything, as
far as future compatibility.
If you ever have issues with performance, feel free to contact support with
the details. Please open a support case at
http://www.bea.com/support/index.jsp if you are still having a performance
problem.
Yann Feyzeau wrote:
I need to find a Portlet knowing its own name and without any portal name.
I could really find one from the documentation. Thus I looked for it in the
JSP Tag Library Javadoc. But neither <es:portalManager> nor
<es:portletManager> provide this. Finally I checked out add_portlets.jsp
from the tools.war webapp (admin console), where I found
com.beasys.commerce.portal.admin.jspbeans.PortalFinderJspBean (from WLPS
Javadoc, "contains numerous finder methods that wrap many of the
PortalManger APIs."). A method getPortletFor(String aPortletName) seemed to
be exactly what I was looking for.
First, I would like to be sure that it will be supported in following
versions of WLPS. (as I did not find any doc about it)
Secondly, as I now have some performance issues localized on this search
task, I would like to be sure it is the most relevant API to do what I want.
Regards.
Yann--
Ture Hoefner
BEA Systems, Inc.
2590 Pearl St.
Suite 110
Boulder, CO 80302
www.bea.com -
In the Administration tool, I have added a new portlet(JSP). Is there
anyway that I can pass parameters into this JSP? I want to write one JSP
that will access different parts of my application based on that parameter.
thanks
shaneIn the Administration tool, I have added a new portlet(JSP). Is there
anyway that I can pass parameters into this JSP?Hello Shane,
You can pass parameters into this JSP because it is included in the portal
with a <jsp:include>. If you have a request parameter in a URL that requests
your portal, then that request (and it's parameters) are seen by all of the
portlets in the portal. You can look at portal.jsp to see that it uses a
<jsp:include> for portalcontent.jsp, which loops through all of the portlets
and does a <jsp:include> for portlet.jsp, which does a <jsp:include> for a
portlet's header, content and footer.
A <jsp:include> is a dynamic include, which means that the results of
processing the request with the included resource are what is included.
Here is a simple pair of portlets that talk to each other. Notice that it
sends the request back through the FlowManager servlet, which is the routing
framework for your portal. It is registered as the servlet with the service
name "application". The name of the Application Init property set that defines
your portal is included as path info after the servlet name in the request like
this: http://localhost:7501/application/testportal. You can see here that
"testportal" is path info for "application"... Anyways, here you go. Good
luck:
send_portlet.jsp
<!-- This portlet sends a request that is tagged with a target
value so that receive_portlet can read the target in its
request parameters and see that the request is for it. -->
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
<%-- Set the action attribute to submit the form the FlowManager servlet (the "traffic cop")
The method response.encodeURL() is used to allow session tracking with browser Cookies
disabled. --%>
<%
out.println("PortalJspBase.getTrafficURI(request) is: " + getTrafficURI(request));
%>
<br>
<form method="post" action="<%= response.encodeURL(getTrafficURI(request)) %>">
<input type="text" name="theWord" size=10>
<input type="submit" name="submitButton" value="Send">
<!-- put a "target" parameter in the request so that a portlet
can check it to see if they are the intended target of this request -->
<input type="hidden" name="target" value="receive_portlet">
</form>
receive_portlet.jsp
<!-- This portlet checks requests for a target parameter. If it
is equal to "receive_portlet", then it gets the "theWord" parameter
from the request and displays its value -->
<%@ page extends="com.beasys.commerce.portal.admin.PortalJspBase"%>
The Word is
<%
String wordFromSendPortlet = null;
String target = (String) request.getParameter("target");
if (target != null && target.equals("receive_portlet")) {
wordFromSendPortlet = (String) request.getParameter("theWord");
%>
<%=wordFromSendPortlet%>
Ture Hoefner
BEA Systems, Inc.
2590 Pearl St.
Suite 110
Boulder, CO 80302
www.bea.com
[att1.html] -
PME Configuration SAP CRM 2007
Hi Gurus
Need your help,
Currently we are using SAP CRM 2007.We need to configure the variant configurable products,I think in CRM we need to use the PME to configure the variant products,Is the PCM is inbuilt in CRM? or we need to install any software,yes please give me downloadable path.
After configuring the Variant products we need to display in b2b e-commerce portal,
Is any body having any idea please send the response ASAP.
Awaiting for ur response
Regards
SatishHi,
for the majority of manufacturing customers doing make-to-order a re-use of their VC models defined in ERP is the better option. The AP Configurator (new name for the SCE part of the IPC) supports 95% of all of the product model as defined in VC. This re-use allows to conitnue to use the same product master data for high-volume make-to-order orders via CRM and at the same time for engineer-to-orders that are changed solely in ERP.
The typical process looks like this:
- Adjust VC product model to fit AP configurator if necessary (delta-list is described at help.sap.com > ERP > SAP ERP Central Component > Logistics > Variant Configuration > Product Configuration with the Configuration Engine > ERP Master Data and Configuration Engine)
- Adjust VC product model to fit the needs of the extended user base in CRM if necessary (very often the product model in VC is technical and requires specification of many technical characteristics. To overcome this additional sales- or application-oriented characteristics might need to be added that pre-fill in values for the technical characteristics using constraints or other rules)
- Create a Knowledgebase and extract the product model into it
- Set-up CRM Scenario including Middleware replication of product and knowledgebase
- Set-up JSP UI of the AP Configurator within CRM
- Create equivalents of user defined functions in Java and make them available to AP Configurator in CRM
For a subset of customers that does not do manufacturing in ERP setting up a product model in CRM is the other possible option available since CRM 4.0. In CRM 2007 this was improved to allow for multi-level configurable products and also provides a maintenance enviroment for product models that integrates well with the rest of master data maintenance in CRM (pricing, catalog, cross-/upsells, bundles). This maintenance environment (some still call it PME) is available in the overview page of a configurable product within the assignement block called "Product Models".
Regards, Marcus
Maybe you are looking for
-
Multiple clients on same account? Feature request...
Hi, I suspect many or most users have a phone and a PC of some sort. I have a Mac laptop and a Linux box and an Android phone. My problem is that I can only have one client signed in at a time. If I'm on (for example) the Mac, then close the lid an
-
Post Author: Rlitts CA Forum: Authentication I'm sorry if this is already been a topic; but I can't find anything in the administration manual regarding hung users. I'm new to BO Enterprise and was not here when it was installed, so I don't know wha
-
for the last week or two, if I want to attach a file to an email in thunderbird, the finder window opens and closed after about 1 second, before I have had a chance to select a file. The only way to attach a file is to drag into the window from a se
-
Receiving an error message when I try to copy library book from my adobe reader to my Nook. It says I do not have permission to copy. I have not had any previous problems copying library books to my Nook.
-
How to configure "document class"
Dear all, In Change management function, we can add document (doc/xls/ppt/txt.. etc) in business transaction. And, in property of the document, there is a "Document Class" items, which is usually "Document for business transaction". Does anyone kno