EP6 SP9 PDK issue
Hi,
Installed EP6 SP9 and imported the PDK through SDM. Some links under Java Development->User Interface Development are not showing. It says <b>404 not found The requested resource does not exist</b>.
The same is the case with some links under Java Development->Portal Development.
Can anyone help me out with this probelm. Do I need to apply some PDK patch?
Thanks in advance,
Madhu
Hi Madhu,
instead of installing PDK SP9 (60.9.0), install PDK SP6 (60.6.0) and also the PDK 6.0 SP9 Patch (pdk60patch.zip).
PDK for SP6: ftp://ftp.sap.com/pub/sdn/devkits/PDK/6.0.6.0_PDK_BP.zip
PDK Patch for SP9: https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/business_packages/a1-8-4/pdk60patch.zip
For removing once installed business packages, see Deinstalling a Business Package
This should help you solve your problem,
Robert
PS: Please consider rewarding points for helpfull answers!
Similar Messages
-
Error in the standard htmlb.jar from EP6 SP9 (HTMLx)
I've successfully migrated my custom developed applications from EP5 SP5 to EP6 SP9. I've used the well known 3rd party
HTMLxframework for the DatePicker and Locale corrections only (I am a brazilian developer).
In the org.sapportals.htmlb.rendering there is a class named RenderUtil.
This class has two places with this specific code:
ResourceBundle r = ResourceBundle.getBundle("java.text.resources.LocaleElements", locale);
Which is very wrong as the "java.text.resources.LocaleElements" is available only until j2sdk 1.3. In the EP5 that runs under 1.3 there's no problem but EP6 uses j2sdk 1.4 and this packages has been relocated from the standard package to a "ext" (extension) package and been renamed as "sun.text.resources.LocaleElements".
So, as HTMLx uses this RenderUtil class, I had to decompile the original from the htmlb.jar using JAD and corrected the above line with the following new line or code:
ResourceBundle r = ResourceBundle.getBundle("sun.text.resources.LocaleElements", locale);
More than that, I had to change several places of the HTMLx's HxInputFieldRenderer to reflect the class name changes made to the CSSs of the EP6. In the new version SAP does not open a pop-up window for the DatePicker. Instead they chose to rewrite it as a dynamic layer. So the HTMLx code has to change to reflect that.
Here follows the workaround version of HxInputFieldRenderer.java (notice that some strings are not internationalized, I just copied and pasted the parts I needed, so it's not a definitive version, but will help you get a clue of what to do):
* HxInputFieldRenderer.java
* Copyright (C) 2003 Alan Hobbs
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
package org.open.sapportals.htmlx.rendering;
import javax.servlet.jsp.PageContext;
import org.open.sapportals.htmlx.HxField;
import org.open.sapportals.htmlx.HxInputField;
import org.open.sapportals.htmlx.HxLocaleUtil;
import com.sapportals.htmlb.Component;
import com.sapportals.htmlb.Form;
import com.sapportals.htmlb.InputField;
import com.sapportals.htmlb.enum.DataType;
import com.sapportals.htmlb.enum.InputFieldDesign;
import com.sapportals.htmlb.enum.ResourceType;
import com.sapportals.htmlb.rendering.DefaultInputFieldRenderer;
import com.sapportals.htmlb.rendering.IPageContext;
import com.sapportals.htmlb.type.AbstractDataType;
import com.sapportals.htmlb.type.DataDate;
import com.sapportals.htmlb.type.DataString;
import com.sapportals.htmlb.type.Date;
import com.sapportals.portal.prt.component.IPortalComponentRequest;
import com.sapportals.portal.prt.component.IPortalComponentResponse;
import com.sapportals.portal.prt.logger.ILogger;
import com.sapportals.portal.prt.runtime.PortalRuntime;
import com.sapportals.portal.prt.service.urlgenerator.IUrlGeneratorService;
import com.sapportals.portal.prt.service.urlgenerator.specialized.IPortalUrlGenerator;
import com.sapportals.portal.prt.service.urlgenerator.specialized.ISpecializedUrlGenerator;
* @author Alan.Hobbs
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
* Render the HxInputField.
* Version Date Author Description
* 0.1.0 1-Aug-2003 AHobbs Origional
* 0.1.0 4-Aug-2003 AHobbs Added resource bundle
* 0.1.1 6-Aug-2003 AHobbs Write hidden fields to store the locale
* 0.1.1 8-Aug-2003 AHobbs Don't show the date picker button if the field is disabled
* 0.1.2 10-Aug-2003 AHobbs Only generate the month and day name javascript once per form
* 1.1.0 1-Apr-2004 AHobbs Added render methods to allow a HTMLB InputField
* to be used instead of a HxInputField
* 1.1.0 6-Apr-2004 AHobbs Changed the names for the hidden fields to "_HTMLX_xxxxx"
* 1.1.0 20-Apr-2004 AHobbs Allow debug code to be written to the console with System.out.println()
* 1.3.0 4-May-2004 AHobbs Added PopUp rendering
public class HxInputFieldRenderer extends DefaultInputFieldRenderer {
protected ILogger m_logger = PortalRuntime.getLogger("htmlx");
private static boolean writingDebugToConsole;
public HxInputFieldRenderer() {
super();
public void render(Component component, IPageContext pc)
m_logger.info("Entry: HxInputFieldRenderer.render()");
if (!(component instanceof HxInputField)) {
m_logger.warning(
"HxInputFieldRenderer.render() component is not instanceof HxInputField " +
"(component.getClass().getName()='" + component.getClass().getName() + "')");
return;
HxInputField inf = (HxInputField)component;
DataType type = inf.getType();
if (writingDebugToConsole) {
System.out.println("Start rendering HxInputField (id='" + inf.getId() + "') ...");
m_logger.info(" id='" + inf.getId() + "'");
m_logger.info(inf.toString());
/* Only include for PDK version 5.0.5.0 and above - may not be required ???
// m_logger.info(" VersionInfo.getVersion()='" + VersionInfo.getVersion() + "'");
// if (VersionInfo.?????) {
// if (pc.isUsingSession() && !inf.isVisible() && inf.getParkInSession()) {
// String uniqueName = pc.getParamIdForComponent(inf);
// Object value = inf.getValue();
// String valueString = null;
// if (value != null) {
// if (value instanceof AbstractDataType) {
// AbstractDataType dataValue = (AbstractDataType)value;
// if (dataValue != null)
// if (dataValue.isValid())
// valueString = dataValue.toString(pc);
// else
// if (dataValue instanceof DataString)
// valueString = dataValue.toString(pc);
// else
// valueString = dataValue.getValueAsString();
// else {
// valueString = value.toString();
// else {
// valueString = "";
// pc.getParamList().put(uniqueName, valueString);
// return;
boolean showDateHelp = false;
if (DataType.DATE.equals(type)
&& inf.isShowHelp()
&& !inf.isDisabled()) {
showDateHelp = true;
boolean showPatternHint = false;
if (inf.isShowPatternHint()
&& (DataType.DATE.equals(type)
|| DataType.TIME.equals(type))
|| ((inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0))) {
showPatternHint = true;
boolean showStatusMsg = false;
if (inf.isShowStatusMsg() && (inf.getStatusMsg() != null) && (inf.getStatusMsg().length() > 0)) {
showStatusMsg = true;
if (showDateHelp || showPatternHint || showStatusMsg) {
pc.write("<table cellspacing="0" cellpadding="0" border="0" id="");
pc.write(""><tr><td>");
String uniqueName = pc.getParamIdForComponent(inf);
if (inf.isVisible()) {
pc.write("<span id="");
pc.write(uniqueName);
pc.write("-r" class="urEdfHelpWhl">");
if (inf.isPassword())
pc.write("<input type="password" class="sapEdf");
else
pc.write("<input type="text" class="sapEdf");
if (inf.isInvalid())
pc.write("i");
if (inf.isRequired())
pc.write("Req");
else
pc.write("Txt");
if (inf.isDisabled())
pc.write("Dsbl");
else
pc.write("Enbl");
if (inf.getDesign() == InputFieldDesign.SMALL)
pc.write("Sml");
pc.write("" autocomplete="off");
int mySize = inf.getSize();
if (mySize > 0) {
pc.write("" size="");
pc.write(mySize);
int maxlength = inf.getMaxlength();
if (maxlength > 0) {
pc.write("" maxlength ="");
pc.write(maxlength);
java.lang.String value = inf.getWidth();
if (value != null && !"".equals(value)) {
pc.write("" style="width:");
pc.write(value);
pc.write(";");
java.lang.String tooltip = inf.getTooltip();
if (tooltip != null) {
pc.write("" title="");
pc.writeEncoded(tooltip);
pc.write(" onchange="return htmlbDoEvent(this,'TV','onchange','0','");
pc.write(uniqueName);
pc.write("',1,1,'',0);" ");
pc.write(" onblur="return htmlbDoEvent(this,'TV','onblur','0','");
pc.write(uniqueName);
pc.write("',1,1,'',0);" ");
if(inf.isDisabled())
pc.write("" readonly="");
else {
pc.write("<input type="hidden");
pc.write("" name="");
pc.write(uniqueName);
if (inf.isLabeled()) {
pc.write("" id="");
pc.write(uniqueName);
Object value = inf.getValue();
pc.write("" value="");
if (value != null) {
String valueString = null;
if (value instanceof AbstractDataType) {
m_logger.info("-- Abstract Data Type");
AbstractDataType dataValue = (AbstractDataType)value;
if (dataValue != null) {
m_logger.info("-- dataValue != null");
if (dataValue.isValid()) {
m_logger.info("-- dataValue.isValid()");
if (dataValue instanceof DataDate) {
m_logger.info("-- dataValue instanceof DataDate");
Date date = ((DataDate)dataValue).getValue();
valueString = HxLocaleUtil.formatDate(date, pc.getLocale());
else {
m_logger.info("-- NOT dataValue instanceof DataDate");
valueString = dataValue.toString(pc);
else if (dataValue instanceof DataString) {
m_logger.info("-- dataValue instanceof DataString");
valueString = dataValue.toString(pc);
else {
m_logger.info("-- dataValue.getValueAsString()");
valueString = dataValue.getValueAsString();
else {
// Not Abstract Data Type
m_logger.info("-- Not Abstract Data Type");
valueString = value.toString();
pc.writeEncoded(valueString);
pc.write(""/>");
if (showDateHelp) {
String dateFormat = HxLocaleUtil.getSapDatePatternNumber(pc.getLocale());
pc.write("</td><td align='left'><button id='");
pc.write(uniqueName);
pc.write("-btn' type="button" tabindex="-1" ti="-1" class="urEdfHlpDate" onclick="htmlb_showDateHelp(event,'");
pc.write(uniqueName);
pc.write("','");
pc.write(dateFormat);
pc.write("','1')"></button>");
pc.write("<script>htmlb_addTexts('pt_BR',{SAPUR_OCTOBER:"Outubro",SAPUR_MSG_LOADING:"Processo de carga em andamento"," +
"SAPUR_SUNDAY_ABBREV:"Do",SAPUR_F4FIELD_TUTOR:"Pressionar F4 para exibir as entradas possíveis"," +
"SAPUR_INVALID:"Não válido",SAPUR_FEBRUARY:"Fevereiro",SAPUR_F4FIELD:"F4- campo de entrada"," +
"SAPUR_FRIDAY_ABBREV:"6ª",SAPUR_WEDNESDAY_ABBREV:"4ª",SAPUR_MAY:"Maio",SAPUR_MSG_WARNING:"Advertência"," +
"SAPUR_DECEMBER:"Dezembro",SAPUR_SEPARATOR:"-",SAPUR_MSG_SUCCESS:"Com êxito",SAPUR_SATURDAY_ABBREV:"Sa"," +
"SAPUR_THURSDAY_ABBREV:"5ª",SAPUR_MSG:"{0} {1} {2}",SAPUR_BUTTON_WHL:"{0} - {1} - {2} - {3}",SAPUR_JULY:"Julho"," +
"SAPUR_APRIL:"Abril",SAPUR_FIELD_TIME:"Hora",SAPUR_MSG_ERROR:"Erro",SAPUR_REQUIRED:"Necessário"," +
"SAPUR_BUTTON_WHL3:"{0} - {1} - {2}",SAPUR_SEPTEMBER:"Setembro",SAPUR_NOVEMBER:"Novembro",SAPUR_AUGUST:"Agosto"," +
"SAPUR_JANUARY:"Janeiro",SAPUR_BUTTON:"Botão",SAPUR_FIELD_PW:"Senha",SAPUR_FIELD:"Texto editável"," +
"SAPUR_DISABLED:"Não disponível",SAPUR_FIELD_DATE:"Data",SAPUR_MARCH:"Março",SAPUR_FIELD_NUMBER:"N°"," +
"SAPUR_MSG_STOP:"Stop",SAPUR_BUTTON_WHL4:"{0} - {1} - {2} - {3}"," +
"SAPUR_BUTTON_ENABLED:"Para ativar, utilizar a barra de espaço",SAPUR_TUESDAY_ABBREV:"3ª",SAPUR_READOLNY:""," +
"SAPUR_MSG_JUMPKEY:"Pressionar a barra de espaço para navegar para o campo correspondente",SAPUR_JUNE:"Junho"," +
"SAPUR_MONDAY_ABBREV:"2ª"});</script>");
if (showPatternHint) {
String pattern = "";
String patternTooltip = "";
if (DataType.DATE.equals(type)) {
pattern = HxLocaleUtil.getDatePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.DatePatternTooltip", pattern);
else if (DataType.TIME.equals(type)) {
pattern = HxLocaleUtil.getTimePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.TimePatternTooltip", pattern);
pattern = " " + pattern;
else if ((inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0)) {
pattern = " " + inf.getPatternHint();
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.PatternTooltip", pattern);
pc.write("</td><td align='left'>");
pc.write("<span class='sapTxtLeg' title='" + patternTooltip + "'><nobr>");
pc.write("<font color='666666' face='Microsoft Sans Serif' style='vertical-align:super' size='1'><b>" + pattern + "</b></font>");
pc.write("</nobr></span>");
if (showStatusMsg) {
if (inf.getStatusMsgPosition().equalsIgnoreCase("RIGHT")) {
pc.write("</td><td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' size='1'>");
else if (inf.getStatusMsgPosition().equalsIgnoreCase("BELOW")) {
pc.write("</td></tr><tr>");
if (showDateHelp && showPatternHint) {
pc.write("<td align='left' colspan='3'>");
else if (showDateHelp ^ showPatternHint) { // '^' is Exclusive OR (XOR)
pc.write("<td align='left' colspan='2'>");
else {
pc.write("<td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' style='verticle-align:super' size='1'>");
pc.write("<nobr>" + inf.getStatusMsg() + "</nobr>");
pc.write("</font>");
if (showDateHelp || showPatternHint || showStatusMsg) {
pc.write("</td></tr></table>");
// Generate code to store the current Locale in the HTML form,
// and make the month and day names available in javascript arrays.
// The form's Language attribute is used as a flag so that this is only
// done once for each form.
Form form = pc.getCurrentForm();
if ((form.getLanguage() == null)
|| (!form.getLanguage().equals(pc.getLocale().toString()))) {
// Save the locale in the html form as hidden fields so that the
// same locale can be used to parse returned data.
pc.write("<input type="hidden" name="_HTMLX_LANGUAGE_" value="" + pc.getLocale().getLanguage() + "">");
pc.write("<input type="hidden" name="_HTMLX_COUNTRY_" value="" + pc.getLocale().getCountry() + "">");
pc.write("<input type="hidden" name="_HTMLX_VARIANT_" value="" + pc.getLocale().getVariant() + "">");
// Write javascript arrays of month and day names in the locale language
StringBuffer sb = new StringBuffer(250);
String javaScriptPath = pc.getJavascriptPath();
sb.append("var javaScriptPath='");
sb.append(javaScriptPath);
sb.append("';");
java.lang.String dayNames[] = RenderUtil.getDayAbbreviations(pc.getLocale());
if (dayNames.length != 7) {
throw new IllegalStateException("Only locales with 7 days are supported!");
sb.append("var htmlbDayNames = new Array('");
for (int i = 0; i < 6; i++) {
sb.append(dayNames<i>);
sb.append("','");
sb.append(dayNames[6]);
sb.append("');n");
sb.append("var htmlbMonthNames = new Array('");
java.lang.String monthNames[] = RenderUtil.getMonthNames(pc.getLocale());
for (int i = 0; i < 11; i++) {
sb.append(monthNames<i>);
sb.append("','");
sb.append(monthNames[11]);
sb.append("');n");
java.lang.String jscript = sb.toString();
pc.getDocument().getIncludes().addBodyEndResource(ResourceType.DIRECTJSCRIPT, "HTMLB_INPUTFIELD_DATEHELP", jscript);
// Set the language in the form so we don't do this again
form.setLanguage(pc.getLocale().toString());
if (writingDebugToConsole) {
System.out.println("Finished rendering HxInputField (id='" + inf.getId() + "')");
m_logger.info("Exit: HxInputFieldRenderer.render()");
// Methods to allow the Standard HTMLB InputField to Mimic HxInputField
// The key idea here is to use the standard InputField ONLY as a String
// field (never Date) so that we have total control over the display format
// and then HTMLX looks after ofrmating the string, abd displaying the
// help icons, status messages etc.
* Render the HTML placed before a HTMLB InputField, an InputField,
* and the code placed after the InputFIeld, so that it behaves like a
* HTMLX HxInputField
* @param field
* @param pc
public static InputField mimicRender(HxField hxField, IPageContext pc) {
HxInputField hxInputField = new HxInputField(hxField, pc.getLocale());
return mimicRender(hxInputField, pc);
* Render the HTML placed before a HTMLB InputField, an InputField,
* and the code placed after the InputFIeld, so that it behaves like a
* HTMLX HxInputField
* @param field
* @param pc
public static InputField mimicRender(HxInputField hxInputField, IPageContext pc) {
// Render stuff before InputField
renderBeforeInputTag(hxInputField, pc);
// Render InputField
InputField inputField = new InputField(hxInputField.getId());
setUpInputField(hxInputField, inputField, pc);
// This is a kludge to make a field read only. It is achieved by
// adding the flag to the 'width' attribute. HTMLB then unknowingly
// adds the flag when it renders the 'width' attribute.
if (hxInputField.isReadOnly()) {
inputField.setWidth( inputField.getWidth() + ";" readonly="");
inputField.render(pc);
String uniqueName = pc.getParamIdForComponent(inputField);
String popUpKeyUniqueName = "";
// If the field has a Pop Up add a hidden field for the Key populated by the Pop Up
if (hxInputField.isShowPopUp()) {
InputField keyInputField = new InputField(hxInputField.getId() + "PopUpKey");
keyInputField.setVisible(false);
keyInputField.setValue(hxInputField.getPopUpKeyValue());
keyInputField.render(pc);
popUpKeyUniqueName = pc.getParamIdForComponent(keyInputField);
// Render stuff after InputField
renderAfterInputTag(hxInputField, pc, uniqueName, popUpKeyUniqueName);
return inputField;
* Render the HTML to be placed before a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param field
* @param pc
public static void renderBeforeInputTag(HxField field, IPageContext pc) {
renderBeforeInputTag(new HxInputField(field), pc);
* Render the HTML to be placed before a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param inf
* @param pc
public static void renderBeforeInputTag(HxInputField inf, IPageContext pc)
if (writingDebugToConsole) {
System.out.println("Start rendering mimic HxInputField (id='" + inf.getId() + "') ...");
if (showDateHelp(inf) || showPopUp(inf) || showPatternHint(inf) || showStatusMsg(inf)) {
pc.write("<table cellspacing="0" cellpadding="0" border="0" id="");
pc.write(""><tr><td>");
* Set a HMTLB InputField with the values stored in the HxField.
* This makes for less code in the JSP, and some versions of the PDK/EP
* do not support some paramters in the TAG (e.g. Tooltip)
* @param hxField
* @param myContext
* @param pageContext
public static InputField setUpInputField(HxField hxField, IPageContext pc, PageContext pageContext) {
Component component = (Component)pageContext.getAttribute(hxField.getId());
if (!(component instanceof InputField)) {
String msg =
"HxInputFieldRenderer.setUpInputTag() component is not instanceof InputField " +
"(hxField.getId()='" + hxField.getId() + "' " +
" component.getClass().getName()='" + component.getClass().getName() + "')";
PortalRuntime.getLogger("htmlx").severe(msg);
throw new IllegalArgumentException(msg);
InputField inf = (InputField)pageContext.getAttribute(hxField.getId());
setUpInputField(hxField, inf, pc);
return inf;
* Set a HMTLB InputField with the values in the HxField.
* This makes for less code in the JSP, and some versions of the PDK/EP
* do not allow you to set some paramters in the TAG (e.g. Tooltip)
* @param hxField
* @param myContext
* @param pageContext
public static void setUpInputField(HxField hxField, InputField inf, IPageContext pc) {
inf.setDisabled(hxField.isDisabled());
inf.setInvalid(hxField.isInvalid());
inf.setMaxlength(hxField.getMaxLength());
inf.setRequired(hxField.isRequired());
inf.setShowHelp(false);
inf.setTooltip(hxField.getTooltip());
inf.setType(DataType.STRING);
inf.setValue(hxField.getValueAsString(pc.getLocale()));
inf.setVisible(hxField.isVisible());
inf.setSize(hxField.getMaxLength());
* Set a HMTLB InputField with the values stored in the HxField.
* This makes for less code in the JSP, and some versions of the PDK/EP
* do not support some paramters in the TAG (e.g. Tooltip)
* @param hxField
* @param myContext
* @param pageContext
public static void setUpInputField(HxInputField hxInputField, InputField inf, IPageContext pc) {
inf.setDisabled(hxInputField.isDisabled());
inf.setInvalid(hxInputField.isInvalid());
inf.setMaxlength(hxInputField.getMaxlength());
inf.setRequired(hxInputField.isRequired());
inf.setShowHelp(false);
inf.setTooltip(hxInputField.getTooltip());
inf.setType(DataType.STRING);
inf.setValue(hxInputField.getPreformattedValueAsString());
inf.setVisible(hxInputField.isVisible());
inf.setSize(hxInputField.getSize());
* Render the HTML to be placed after a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param field
* @param myContext
* @param pageContext
public static void renderAfterInputTag(HxField field, IPageContext pc, PageContext pageContext) {
renderAfterInputTag(new HxInputField(field), pc, pageContext);
* Render the HTML to be placed after a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param inf
* @param myContext
* @param pageContext
public static void renderAfterInputTag(HxInputField inf, IPageContext pc, PageContext pageContext) {
Component component = (Component)pageContext.getAttribute(inf.getId());
String uniqueName = pc.getParamIdForComponent(component);
String popUpKeyUniqueName = "";
if (inf.isShowPopUp()) {
component = (Component)pageContext.getAttribute(inf.getId() + "PopUpKey");
popUpKeyUniqueName = pc.getParamIdForComponent(component);
renderAfterInputTag(inf, pc, uniqueName, popUpKeyUniqueName);
* Render the HTML to be placed after a HTMLB InputField so that it
* behaves like a HTMLX HxInputField
* @param inf
* @param pc
* @param uniqueName
* @param popUpKeyUniqueName
public static void renderAfterInputTag(
HxInputField inf,
IPageContext pc,
String uniqueName,
String popUpKeyUniqueName)
if (showDateHelp(inf)) {
String dateFormat = HxLocaleUtil.getSapDatePatternNumber(pc.getLocale());
pc.write("</td><td align='left'><button id='");
pc.write(uniqueName);
pc.write("-btn' type="button" tabindex="-1" ti="-1" class="urEdfHlpDate" onclick="htmlb_showDateHelp(event,'");
pc.write(uniqueName);
pc.write("','");
pc.write(dateFormat);
pc.write("','1')"></button>");
pc.write("<script>htmlb_addTexts('pt_BR',{SAPUR_OCTOBER:"Outubro",SAPUR_MSG_LOADING:"Processo de carga em andamento"," +
"SAPUR_SUNDAY_ABBREV:"Do",SAPUR_F4FIELD_TUTOR:"Pressionar F4 para exibir as entradas possíveis"," +
"SAPUR_INVALID:"Não válido",SAPUR_FEBRUARY:"Fevereiro",SAPUR_F4FIELD:"F4- campo de entrada"," +
"SAPUR_FRIDAY_ABBREV:"6ª",SAPUR_WEDNESDAY_ABBREV:"4ª",SAPUR_MAY:"Maio",SAPUR_MSG_WARNING:"Advertência"," +
"SAPUR_DECEMBER:"Dezembro",SAPUR_SEPARATOR:"-",SAPUR_MSG_SUCCESS:"Com êxito",SAPUR_SATURDAY_ABBREV:"Sa"," +
"SAPUR_THURSDAY_ABBREV:"5ª",SAPUR_MSG:"{0} {1} {2}",SAPUR_BUTTON_WHL:"{0} - {1} - {2} - {3}",SAPUR_JULY:"Julho"," +
"SAPUR_APRIL:"Abril",SAPUR_FIELD_TIME:"Hora",SAPUR_MSG_ERROR:"Erro",SAPUR_REQUIRED:"Necessário"," +
"SAPUR_BUTTON_WHL3:"{0} - {1} - {2}",SAPUR_SEPTEMBER:"Setembro",SAPUR_NOVEMBER:"Novembro",SAPUR_AUGUST:"Agosto"," +
"SAPUR_JANUARY:"Janeiro",SAPUR_BUTTON:"Botão",SAPUR_FIELD_PW:"Senha",SAPUR_FIELD:"Texto editável"," +
"SAPUR_DISABLED:"Não disponível",SAPUR_FIELD_DATE:"Data",SAPUR_MARCH:"Março",SAPUR_FIELD_NUMBER:"N°"," +
"SAPUR_MSG_STOP:"Stop",SAPUR_BUTTON_WHL4:"{0} - {1} - {2} - {3}"," +
"SAPUR_BUTTON_ENABLED:"Para ativar, utilizar a barra de espaço",SAPUR_TUESDAY_ABBREV:"3ª",SAPUR_READOLNY:""," +
"SAPUR_MSG_JUMPKEY:"Pressionar a barra de espaço para navegar para o campo correspondente",SAPUR_JUNE:"Junho"," +
"SAPUR_MONDAY_ABBREV:"2ª"});</script>");
if (showPopUp(inf)) {
String dateFormat = HxLocaleUtil.getSapDatePatternNumber(pc.getLocale());
pc.write("</td><td align='left'><div class="urEdfHlpSml" onClick="");
pc.write("htmlxPopUp('");
pc.write(getPopUpUrl(pc, inf.getPopUpPage()));
pc.write("', '");
pc.write(uniqueName);
pc.write("', '");
pc.write(popUpKeyUniqueName);
pc.write("', ");
pc.write(inf.getPopUpWidth());
pc.write(", ");
pc.write(inf.getPopUpHeight());
pc.write(", '");
pc.write(inf.getPopUpAttributes());
pc.write("')">");
pc.write(" </div>");
if (showPatternHint(inf)) {
String pattern = "";
String patternTooltip = "";
if (DataType.DATE.equals(inf.getType())) {
pattern = HxLocaleUtil.getDatePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.DatePatternTooltip", pattern);
else if (DataType.TIME.equals(inf.getType())) {
pattern = HxLocaleUtil.getTimePatternInLocaleLanguage(pc.getLocale());
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.TimePatternTooltip", pattern);
pattern = " " + pattern;
else if ((inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0)) {
pattern = " " + inf.getPatternHint();
patternTooltip = HxLocaleUtil.formatHxMsg(pc.getLocale(), "HxInputField.PatternTooltip", pattern);
pc.write("</td><td align='left'>");
pc.write("<span class='sapTxtLeg' title='" + patternTooltip + "'><nobr>");
pc.write("<font color='666666' face='Microsoft Sans Serif' style='vertical-align:super' size='1'><b>" + pattern + "</b></font>");
pc.write("</nobr></span>");
if (showStatusMsg(inf)) {
if (inf.getStatusMsgPosition().equalsIgnoreCase("RIGHT")) {
pc.write("</td><td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' size='1'>");
else if (inf.getStatusMsgPosition().equalsIgnoreCase("BELOW")) {
pc.write("</td></tr><tr>");
if (showDateHelp(inf) && showPatternHint(inf)) {
pc.write("<td align='left' colspan='3'>");
else if (showDateHelp(inf) ^ showPatternHint(inf)) { // '^' is Exclusive OR (XOR)
pc.write("<td align='left' colspan='2'>");
else {
pc.write("<td align='left'>");
pc.write("<font color='990000' face='Microsoft Sans Serif' style='verticle-align:super' size='1'>");
pc.write("<nobr>" + inf.getStatusMsg() + "</nobr>");
pc.write("</font>");
if (showDateHelp(inf) || showPopUp(inf) || showPatternHint(inf) || showStatusMsg(inf)) {
pc.write("</span></td></tr></table>");
// Generate code to store the current Locale in the HTML form,
// and make the month and day names available in javascript arrays.
// The form's Language attribute is used as a flag so that this is only
// done once for each form.
Form form = pc.getCurrentForm();
if ((form.getLanguage() == null)
|| (!form.getLanguage().equals(pc.getLocale().toString()))) {
// Save the locale in the html form as hidden fields so that the
// same locale can be used to parse returned data.
pc.write("<input type="hidden" name="_HTMLX_LANGUAGE_" value="" + pc.getLocale().getLanguage() + "">");
pc.write("<input type="hidden" name="_HTMLX_COUNTRY_" value="" + pc.getLocale().getCountry() + "">");
pc.write("<input type="hidden" name="_HTMLX_VARIANT_" value="" + pc.getLocale().getVariant() + "">");
// Write javascript arrays of month and day names in the locale language
StringBuffer sb = new StringBuffer(250);
String javaScriptPath = pc.getJavascriptPath();
sb.append("var javaScriptPath='");
sb.append(javaScriptPath);
sb.append("';");
java.lang.String dayNames[] = RenderUtil.getDayAbbreviations(pc.getLocale());
if (dayNames.length != 7) {
throw new IllegalStateException("Only locales with 7 days are supported!");
sb.append("var htmlbDayNames = new Array('");
for (int i = 0; i < 6; i++) {
sb.append(dayNames<i>);
sb.append("','");
sb.append(dayNames[6]);
sb.append("');n");
sb.append("var htmlbMonthNames = new Array('");
java.lang.String monthNames[] = RenderUtil.getMonthNames(pc.getLocale());
for (int i = 0; i < 11; i++) {
sb.append(monthNames<i>);
sb.append("','");
sb.append(monthNames[11]);
sb.append("');n");
String jscript = sb.toString();
pc.getDocument().getIncludes().addBodyEndResource(ResourceType.DIRECTJSCRIPT, "HTMLB_INPUTFIELD_DATEHELP", jscript);
pc.getDocument().getIncludes().addBodyEndResource(ResourceType.DIRECTJSCRIPT, "HTMLX", getHtmlxJavascript());
// Set the language in the form so we don't do this again
form.setLanguage(pc.getLocale().toString());
if (writingDebugToConsole) {
System.out.println("Finished rendering mimic HxInputField (id='" + inf.getId() + "')");
private static boolean showDateHelp(HxInputField inf) {
if (DataType.DATE.equals(inf.getType())
&& inf.isShowHelp()
&& !inf.isDisabled()) {
return true;
return false;
private static boolean showPopUp(HxInputField inf) {
if (!showDateHelp(inf)
&& !inf.isDisabled()
&& inf.isShowPopUp()) {
return true;
return false;
private static boolean showPatternHint(HxInputField inf) {
boolean isDateOrTime = DataType.DATE.equals(inf.getType()) || DataType.TIME.equals(inf.getType());
boolean patternHintSet = (inf.getPatternHint() != null) && (inf.getPatternHint().length() > 0);
if (inf.isShowPatternHint()
&& (isDateOrTime || patternHintSet)) {
return true;
return false;
private static boolean showStatusMsg(HxInputField inf) {
if (inf.isShowStatusMsg()
&& (inf.getStatusMsg() != null)
&& (inf.getStatusMsg().length() > 0)) {
return true;
return false;
private static String getPopUpUrl(IPageContext pc, String pageName) {
IPortalComponentRequest request = (IPortalComponentRequest)pc.getRequest();
IPortalComponentResponse response = (IPortalComponentResponse)pc.getResponse();
IPortalUrlGenerator portalGen = null;
IUrlGeneratorService urlGen = (IUrlGeneratorService)request.getService(IUrlGeneratorService.KEY);
ISpecializedUrlGenerator specUrlGen2 = urlGen.getSpecializedUrlGenerator(IPortalUrlGenerator.KEY);
if (specUrlGen2 instanceof IPortalUrlGenerator) {
portalGen = (IPortalUrlGenerator) specUrlGen2;
// Create the url to the iView
String url = "";
if (portalGen != null) {
// Create the parameters passed to SAP transaction for mesima
url = portalGen.generatePortalComponentUrl(request, pageName); // "htmlxJarMimicExample.default");
return url;
protected static String getHtmlxJavascript() {
return "n" +
" if(window.document.domain == window.location.hostname) { n" +
" document.domain = document.domain.substring(document.domain.indexOf('.')+1); n" +
" } n" +
" var popUpTextId; n" +
" var popUpKeyId; n" +
" var myPopUp; n" +
" function setTextField(text) { n" +
" field = document.getElementById(popUpTextId); n" +
" if (field) { n" +
" field.value = text; n" +
" } n" +
" else { n" +
" alert('Text target field for pop up not found (' + popUpTextId + ')'); n" +
" } n" +
" } n" +
" function setKeyField(key) { n" +
" field = document.getElementById(popUpKeyId); n" +
" if (field) { n" +
" field.value = key; n" +
" } n" +
" } n" +
" function setFields(text, key, close) { n" +
" setTextField(text); n" +
" setKeyField(key); n" +
" if (close) { n" +
" myPopUp.close(); n" +
" } n" +
" return false; n" +
" } n" +
" function htmlxPopUp(url, textId, keyId, width, height, attributes) { n" +
" popUpTextId = textId; n" +
" popUpKeyId = keyId; n" +
" if (myPopUp) { n" +
" myPopUp.close(); n" +
" } n" +
" if (event!=null){ n" +
" xPos = event.screenX-event.offsetX; n" +
" yPos = event.screenY-event.offsetY; n" +
" } n" +
" if ((xPos+width) > screen.availWidth) { n" +
" xPos=screen.availWidth - width - 10; n" +
" } n" +
" if ((yPos+height) > screen.availHeight) { n" +
" yPos=screen.availHeight - height - 10; n" +
" } n" +
" sizeAndPos = 'width=' + width + ', height=' + height + ', top=' + yPos + ', left=' + xPos; n" +
" myPopUp = window.open(url, 'PopUp', sizeAndPos + ', ' + attributes); n" +
" if (!myPopUp) { n" +
" alert('You may have unrequested popup blocking on.'); n" +
" } n" +
" }n";
// Methods to assist dubugging JSP pages
* @return True if debug messages are being written to the console
public static boolean isWritingDebugToConsole() {
return writingDebugToConsole;
* When an error occurs in a JSP page the line number given in the stack
* trace is rarely the line that caused the error. This can make traking
* down errors in a JSP page can be very difficult. By writing debug messages
* to the console every time a field is rendered, it can be much easier to
* identify the area of code causing a problem.<p>
* <b>Do NOT set this in the production release of your application.</b>
* @param b
public static void setWritingDebugToConsole(boolean b) {
writingDebugToConsole = b;
* Initialise to NOT write debug to the console
static {
writingDebugToConsole = false;Try these
[http://help.sap.com/saphelp_nwmobile71/helpdata/en/45/65ad4ee0531aa8e10000000a114a6b/content.htm]
[http://help.sap.com/saphelp_nw04/helpdata/en/6f/1bd5c6a85b11d6b28500508b5d5211/content.htm]
[http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc01381.0120/doc/html/koh1278435126915.html]
Reagards,
Mouli -
Changing the security zone in EP6 SP9
Hi,
could anyone tell me if it is possible to change the Security Zone of an object without redeploying it?
(in NW04 SR1 : EP6 SP9)
Thanks,
Stuart.Just guessing here, but I think this isn't possible. If it were, it could be a major security issue.
-
How to find the user - role assignments in the database for EP6 SP9?
L.S.,
We have a quite specific requirement: to see which users have access to our portal environment (EP6 SP9). It does not immediately matter (though would probably still be nice to know if possible) which roles users have exactly.
I've been looking in the database to find user-to-role assignments there, but I'm unable to find any. The closest I got is the PID filed in the UME_STRINGS table, but users remain listed there even when all their portal roles are revoked afterwards. Any ideas?
Kind Regards,
Steven Dijkmanhi Steven,
Sorry but you will have to write some code. the following lines of code will work for you.
IRoleSearchFilter rolefilter = UMFactory.getRoleFactory().getRoleSearchFilter();
ISearchResult result = UMFactory.getRoleFactory().searchRoles(rolefilter);
while (result.hasNext()) {
String rolestr = (String) result.next();
IRole r = UMFactory.getRoleFactory().getRole(rolestr);
response.write(r.getDisplayName());
response.write("<br>");
Iterator users = r.getMembers(true);
while (users.hasNext()){
String userstr = (String)users.next();
IUser user = UMFactory.getUserFactory().getUser(userstr);
response.write(user.getDisplayName()); -
Business Package-Sales implementation in EP6 SP9
Hi all
i want to use the business package for sales and implement it in EP6 SP9. I got the package (BPSALESAN601_0-20000653.zip) from the market place. I uploded it to the server. But it is not working in EP side.
Please help me...Hi Bobu,
This seems to be problem wiht System Name parameters for the iViews(Property Editor) generated by uploading the package.
1. You have to create the system in the portal for the SAP system which you want to connect.
2. Create an alias for the system
3. Set the system parameter to the above ailas for the uploaded iViews.
4. Assign the role created to the required user.
I think above steps will solve your problem. If it solves dn't forget to give me points
Regards,
Maria -
Business Package implementation on EP6 SP9
Hi all
i want to use the business package for sales and implement it in EP6 SP9. I got the package (BPSALESAN601_0-20000653.zip) from the market place. I uploded it to the server. But it is not working in EP side.
Please help me...Hi Bobu,
This seems to be problem wiht System Name parameters for the iViews(Property Editor) generated by uploading the package.
1. You have to create the system in the portal for the SAP system which you want to connect.
2. Create an alias for the system
3. Set the system parameter to the above ailas for the uploaded iViews.
4. Assign the role created to the required user.
I think above steps will solve your problem. If it solves dn't forget to give me points
Regards,
Maria -
Roles tab not working in USER MANAGEMENT OF EP6 SP9
Hi
I have successfully installed WAS 6.4 SP9 with EP6 SP9, TREX, KMC. When I click on USERAdministration -> ROLES, Im getting an error in a Dialog box
"Internet Explorer cannot open the Internet Site http://<hostname>:<port>/irj/portal". Operation Aborted
I got the same error even after 3 times fresh installation. During installation process I didn't encountered any error.
Can anyone guide me in this.
thanks
rajas already said this is a problem with Portal SP9. There is a problem with the iview.
You have two choices. Install a newer patch (patch 13).
Or go directly to the WebAS Java start page
http://
There you can logon to the UME Interface ( a link is provided at the startpage) and assign roles to users or groups.
The usermanagement is the same for portal and webas java so it should work - at least it did for me.
Tell me if it works.
Message was edited by: Dirk Jäckel -
Installing KMC SP4 on EP6 SP9 patch 1
Hi
I have a problem when installing KMC SP4 on my EP6 SP9 system.
In the last step "Deploy CM Par files (post processing)" I get an error saying:
"ERROR 2004-12-16 14:34:42
CJS-00278 SAPinst could not complete the upgrade. The server process was stopped unexpectedly. Contact your local support center."
Any ideas what to do?
Cheers,
Jacob VennervaldHi Mike,
I am also facing a similar problem while instalation of KMC on my WAS server. WAS 6.40 SP 9 and EP 6 SP 9. The error is
"SAP inst could not find any SAP J2EE instance that match the portal platform requirements. the installation stops. Install the SAP J2EE 6.40 accoding to portal PAM requirements, and run the installation again."
Pls help
Regards,
Naresh -
Hi,
After installation of SAP CRM Business Package 6.0.2.2 and Support Package CRM 6.0.2.3 on EP6 SP9, I found that navigation within the BSP's/iviews was not working.
The last time I remember that this worked properly was on SP6.
I found that SAP note 809848 is dealing with this and the recommendation is to upgrade to SP11 (te last patch/hotfix). After uprading to Patch 3 of SP11, the problem was not solved and we are still not able to use the links in these CRM iviews.
Anybody with the same problem? and what is the last patch/hotfix of sp11, if any hotfix is available.
Regards,
Mohammed AghattassHi Thomas,
Thanks for your reply, actualy I did upgraded to SP10 and SP11 but this did not solved the problem. Also openened an OSS message for days now without any results.
Is it possible to mail me the adjusted par SAP sent to you or send me the OSS Message number you opened with SAP so that I can refer to it.
[email protected]
Regards,
Mhammed -
Distributed Install EP6 SP9 SR1 Windows/Oracle - Problem
Hi,
I am doing a distributed installation of EP6 SP9 WAS640 Java with Oracle DB on Windows over Windows Domain.
EP should be on one host
Oracle on another
The problem is during the EP part of the SAP Inst installation, the installation crashes.
In the logs it says that the Oracle User does not have enough priviledges.
Has anybody else experienced this when making a distributed installation ?
The Oracle SIDADM User is created automatically and is in the correct admin and oraadmin groups.
Any ideas will be very useful.
Thanks,
Tomas.We tried this simple procedure, we created user <sapsid>adm as domain user, member of domain admin groups With this user j2sdk1.4.2_06 was installed. Oracle 9.2.0.4.0 was installed with this domain user too.
Local security policy was set only for user <SAPSID>adm in categories Act as part of operating systems, Replace process level token, Adjust memory quottas. Only JAVA_HOME was set from environmental variables. The installation procedure was working well and deploy SAP Web AS.
Independently of above described procedure I tried to perform EP6 SR-1 deployment as distributed solution in local mode ( there were only local users on both computers, the identical UID and PASSW for both machines). Success too. After SAP Web AS deployment I deployed SAP EP6 SR-1 and performed all post-installation checks and everything was working fine.
So I guess there is a right assignment which is not described in WebAS 6.40 Java installation guides and which is needed to perform installation in domain mode ( maybe something in Terminal services?local policy? domain policy?). I don't know exactly what.
I reported this situation to OSS and I'll upgrade this topic after I get results back.
Best Regards
Ondrej Skoda
Consultant -
Hi,
I am trying to use the yahoo iView in my page(EP6-SP9).But i am not able to create the iView.
When trying to create the Yahoo iview it displays the following error.I am behind the proxy.Can you please let me know how to configure the proxy settings for the yahoo iview in the portal.
ERROR:
If this portal is behind a firewall, check if the proxy service is configured correctly. The current proxy server is: Proxy server is undefined.
Can anyone please let me know the step by step procedure for customizing the yahoo iview .
Thanks In Advance,
Varma.You can find instructions on how to configure your proxy here:
http://help.sap.com/saphelp_nw04/helpdata/en/33/8abf9e0ce011d7b84900047582c9f7/frameset.htm
Hope that helps. -
EP6 sp9 installation get stuck on "deploy via sdm/j2ee"
Hi,
I'm trying to install the ep6 SP9 after I have installed the WAS SP9 and upgrade it to SP13
Now, The installation get stuck at "deploy via sdm/j2ee" stage.
This result is the same after several attempts including shutdown and restrat the processes
There are not any errors on the installaion logs and everything looks fine
Does anybody has any idea what it wrong ?
Thanks
AmiThanks Priya for your reply,
I did saw on the java log file the following error:
<b>
java.lang.NoClassDefFoundError: iaik/utils/Base64Exception</b>
at com.sap.engine.core.configuration.impl.persistence.rdbms.DBConnectionPool.<init>(DBConnectionPool.java:108)
at com.sap.engine.core.configuration.impl.persistence.rdbms.
This is the only error message I'm getting.
The installation is being freeze for many hours and there is not any CPU load.
So I think that this message error causing the installation to freeze.
Does anyone familier with that error ?
Thanks a lot
Ami -
EP6 SP9 - Client Certification doesnt work. Exception in SAPMLogonCertServl
Hi, when I setup X509 client certificate logon for EP6 SP9, the user does not get logged in. Instead it goes to the standard logon screen. Can anyone help to fix this problem?
Thanks!
<b><u>The security log has this error.</u></b>
Guest | LOGIN.ERROR | null | | Login Method=[default], UserID=[null], IP Address=[149.59.173.26], Reason=[No login module succeeded.]
<b><u>Looking at the defaulttrace.trc log, I found</u></b>
Exception occured in SAPMLogonCertServlet
[EXCEPTION]
java.lang.NullPointerException
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.doLogon(SAPMLogonCertLogic.java:328)
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.doCertLogon(SAPMLogonCertLogic.java:295)
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.certLogon(SAPMLogonCertLogic.java:281)
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.executeRequest(SAPMLogonCertLogic.java:119)
at com.sapportals.portal.ume.component.logon.SAPMLogonCertComponent.doContent(SAPMLogonCertComponent.java:59)
at com.sapportals.portal.prt.component.AbstractPortalComponent.serviceDeprecated(AbstractPortalComponent.java:209)
at com.sapportals.portal.prt.component.AbstractPortalComponent.service(AbstractPortalComponent.java:114)
at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:328)
at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:136)Did you find a solution? I'm having a smilar problem (I think)
Exception occured in SAPMLogonCertServlet
[EXCEPTION]
java.lang.NullPointerException
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.doLogon(SAPMLogonCertLogic.java:325)
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.doCertLogon(SAPMLogonCertLogic.java:292)
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.certLogon(SAPMLogonCertLogic.java:278)
at com.sap.security.core.sapmimp.logon.SAPMLogonCertLogic.executeRequest(SAPMLogonCertLogic.java:115)
at com.sapportals.portal.ume.component.logon.SAPMLogonCertComponent.doContent(SAPMLogonCertComponent.java:59)
with this 2 messages above..
Exception ID:01:12_16/04/09_0007_8921150
[EXCEPTION]
com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Resource
Component : com.sap.portal.runtime.logon.certlogon
Component class : com.sapportals.portal.ume.component.logon.SAPMLogonCertComponent
User : Guest
...SOME MORE...
... 43 more
Caused by: java.lang.NullPointerException
at java.net.URLDecoder.decode(URLDecoder.java:118)
at java.net.URLDecoder.decode(URLDecoder.java:82)
at com.sap.security.core.sapmimp.logon.LogonBean.getLogonURL(LogonBean.java:122)
at _sapportalsjsp_umLogonCertPage.subDoContent(_sapportalsjsp_umLogonCertPage.java:655)
at _sapportalsjsp_umLogonCertPage.doContent(_sapportalsjsp_umLogonCertPage.java:55)
... 47 more
Thanks!
Christof -
Error during installation of EP6 SP9
Hi I successfully installed WAS 6.4 SP9 on max db successfully. After that Im trying to install EP6 SP9.
(Extracted ep6sp9.zip 117 mb ).
When I install EP6 SP9 I get the following error in LOG file
WARNING 2005-01-19 12:25:07
Unable to get information about path
LABEL.ASC\ using GetVolumeInformation. Operating system error message: The filename, directory name, or volume label syntax is incorrect.
ERROR 2005-01-19 12:29:09
FKD-00037 Query did not return a result.
ERROR 2005-01-19 12:29:09
FKD-00038 Query did not return a result.Select attribute SDM_HOME, statement: WHERE DISPLAYNAME = ''
can any body help me in this reg.
Do I need to install EP6 SP7 or any older version first ?
thanks
rajHi Raja,
I had the same problem.
<b>Solution:</b>
Do not call SAPInst via a preceeding (relative or absolute) path.Navigate to the loacation of SAPInst <SAPINST/<OS-TYPE>/ folder on the DVD or the DVD image> and call SAPInst from there.
Hope I could help.
Cheers
Martin -
Virtual host name for Portal (EP6 SP9)
Hi,
I just tried to set virtual host for the portal URL of a EP6 SP9. I set an DNS-Alias portal.company.com for the IP-adress leading to hostname.company.com. So, http://portal.company.com:50000/irj already leads to the portal start page.
I cannot find any differences after setting the virtual host alias 'portal' in the J2EE Administrator. I read the documentation in help.sap.com ... don#t know how to proceed. When looking at the access path in the details menu of a KM file, I still get the hostname.company.com-URL ....
In addition, can I switch the J2EE Engine make listen to port 80 and lead the alias directly to /irj, so that http://portal.company.com directly leads to the portal logon page??
Thanks for any help
MartinHi Martin,
1. To change the target URL of KM resources you can to the following:
Access the URL Generation Service Configuration by navigating to:
System Administration -> System Configuration -> Knowledge Management -> Configuration
Content Management -> Global Services -> URL Generator Service
Change the Host property to "portal.company.com".
2. You change the Port by opening the Visual Administrator and going to : Dispatcher -> Services -> HTTP Provider
Change there the "Ports" entry from (Port:50000,Type:http)to (Port:80,Type:http). Then go on "Save".
3. To remove the "/irj" from the portal URL you can create a index.jsp with the following content, and save it in the J2EE Documentation folder:
<Drive>:\usr\sap\<SAPSID>\JC<J2EE_instance_number>\j2ee\cluster\server0\apps\sap.com\com.sap.engine.docs.examples\servlet_jsp\_default\root
<%
//Send the redirect using server redirection (not client script)
//This will also send the HTTP GET parameters
String queryString = request.getQueryString() ;
if (queryString==null ) {
response.sendRedirect
("irj/servlet/prt/portal/prtroot/com.sap.portal.navigation.portallauncher.default") ;
} else {//redirect with HTTP GET parameters
response.sendRedirect
("irj/servlet/prt/portal/prtroot/com.sap.portal.navigation.portallauncher.default?" + queryString) ;
%>
Hope this helps,
Robert
Maybe you are looking for
-
Help! Safari keeps crashing on my main account - but works fine on my guest account.
Running ancient OS 5.7. Should I update? Can I do this from guest account, if authorised as admin? Error Message: Process: Safari [567] Path: /Applications/Safari.app/Contents/MacOS/Safari Identifier: com.apple.Safari Version: 5.0.6 (5533.22.3) Bui
-
Internet works in VM but not native OS
I am running an Ubuntu 9.04 virtual machine in VirtualBox on my Macbook pro. As I understand, VirtualBox tricks the guest OS to think there's an wired ethernet connection and redirects traffic through the hosts' connection. So I find it very strange
-
Firefox Crashes - Too Many Bookmarks
I have over 100,000 bookmarks of research. Firefox Home Screen goes black after a few minutes of attempting to sync bookmarks for the first time on device. I am using a iPhone 3GS with iOS 4. When I reduce the nuber, which I should not have to and pr
-
I own an Apple Airport Extreme and my signal strength is terrible. Any ideas?
-
"#NAME?" showing up instead of values...NEED HELP!
Gurus, I need to write BPC reports to a network folder by the entity so that anyone who is not BPC user can access it. Is it possible? I have set up a book with the entity being varkey. The reports publish alright but if BPC is not running on users'