E-recruitment 3.0 in ep6

Hi,
My company is about to release EP6 (SP12) to our employees and I have had a request to create an iView that contains the "Search for Jobs" bsp application.  We currently have e-Recruitment working with EP6, for example, a link to the Internal Candidate Start Page.
I have generated the URLs for the active services that we are using, and created a BSP iView to point directly to the search for jobs BSP, HRRCF_REG_SRCH. 
The error that I am getting is when trying to launch the iView, it gives me a null pointer reference when trying to create the controller.  Now, when launching the internal candidate start page, we go through the bsp application, hrrcf_start_int, and give the context and start page id in the Application Parameters.  BUT, when you do the same set up for the search for jobs, the null pointer comes up to haunt me.
Has anyone out there been able to connect directly to a BSP application in e-recruiting 3.00?
Cheers,
Kevin

Hi Kevin-
It works for me if I reference the BSP directly (i.e. HRRCF_REG_SRCH) but do NOT specify a context or start page ID. Have you tried this?
-Matt

Similar Messages

  • SSO to ITS via EP6

    Ok all knowing people, I have this working in EP5 but, can't get it working in EP6.
    Our Portal:
    EP6 SP2 Pack3 Hotfix7.  Working like a champ.  However, SSO to our ITS box will not work.
    I have downloaded and am using the SAP application integrator.  After creating the ITS System I make an Iview with com.sap.portal.appintergrator.sap with the generic component selection. 
    Url template is HTTPS://its.server.net/scripts/wgate/webgui/! ?<authentication>
    Template fraction for user mapping:
        login=<mappeduser>&password=<mappedpassword>
    After I run the Iview I get a runtime error.
    "Unable to process template https://its.server.net/scripts/wgate/webgui/! ?<authentication> because authentication is an invalid terminal property of the context."
    Am I going in the wrong direction?  Do you know of anyone that is running a webgui within an Iview with SSO?

    Hi,
    you have to create a "SAP Transaction iView" instead of using the app integrator.
    ==> right click on the desired folder in the PCD ==> choose "New" and "iView" ==> choose "SAP Transaction iView" ==> enter the ID info ==> choose the GUI type ("SAP Gui for HTML in your case) ==> select your SAP system and enter the desired transaction code ==> save
    Regards,
    Michael

  • EREC: What is new in SAP E-Recruitment 6.0 SP5, SP7 and SP8?

    Hi
    Does anyone know what are the features available or improved in SAP E-Recruitment 6.0 for Support Package 5,7 & 8?
    Regards
    Ridzuan
    Edited by: Ridzuan Mohsin on Nov 18, 2011 9:30 AM

    Hi Ridzuan,
    as the named support packages are already years old is your question actually about e-recruiting 600 or do you mean the support packages for an enhancement package (like EhP 3 or EhP 4) for the e-recruiting application.
    Rgds.
    Roman

  • Issue in Data transfers using ALE for E-Recruiting standalone system

    Dear Experts,
    We have an issue in data transfers using ALE. We are having standalone system where E-Recruiting is maintaind seperately and the version is EHP5.
    When we configured iDoc in Sandbox and its working fine. But when it comes to Dev and Quality servers this is not working fine.
    we have created iDocs using the following filters.
    For Object P: Infotypes 0000, 0001, 0002, 0003, 0006, 0024, 0105.
    For Objects O,S: 1032, Subtype: 0010
    For Object: 1001, Subtype: A003, A008, A012, B007
    For Object O: 1001, Subtype: A002, B002, B003, B012, Tyoe of related object: O,S
    For Objects: C, O, S, Subtype: 1000, 1002, 1028
    For Object:C, Subtype: 1001, Subtype: A007
    When we do the data transfers in Sandbox using PFAL it is transferring the data properly.
    But when we do the same iin Dev and Quality servers we are not able to do it and gettign 52, 51 errors.
    Here we are facing a strange issue. For some Users when we transfer data it is transferring data but with 52 error messgae.
    For some users I am getting 51 error where i could not transfer any data.
    For some users, when we tranfer O, S, and P related data is moving but getting mostly 52 error and all the relationships are not moving here for O,S and properly. But P related CP, BP and NA are getting created successfully.
    It is happening only in Dev and Quality server and that too some users are able to get transferred but not all.
    Where will be the issue? How can we resolve this?
    Any help will be appreciable.
    Thank you in advance.

    Hi Sekhar,
    Have a look over these threads.
    Errors in ALE data transfer to E-Recruiting.
    http://scn.sap.com/thread/1535402    
    BR,
    RAM.

  • Custom Application Configuration not pulling the data in E-Recruiting

    Hello,
    My requirement is to make some fields 'required', hide some buttons, change button texts & hide some columns in standard wd component (ERC_A_REQ_MGMT) delivered by SAP. So I created an application configuration and component configuration and did the layout customization. Now in the application I am passing this new configuration name with the parameter (sap-wd-configId)(......sap/bc/webdynpro/sap/erc_a_req_mgmt?sap-wd-configId=ZZERC_A_REQ_MGMT)
    As this is a portal environment, in LPD_CUST, In the application parameters, I've used this parameter (sap-wd-configId=ZZERC_A_REQ_MGMT). The custom application is displayed, however, the data is not being passed to this custom configuration, so when I open a exisiting requisition from dashboard, this is shown as empty screen (like a new requisition), but when I take off this parameter from the lpd_cust, the standard app is working fine. Can you please help me understand why the data is not being passed to the custom application configuration?
    Really appreciate your insights.
    Thank you.

    Hi,
    We faced the same issue in SAP E-recruiting EHP4 solution. The reason is, the configuration which is assigned statically in FPM editor is loaded after the OVERRIDE_EVENT_OIF and thus discards all context nodes which have been already initialized. Afterwards, the context node of has no value anymore and the field on UI doesnu2019t display anything.
    Remove the static component configuration in the FPM editor and use the following code in the wddoinit method of the view V_GEN_JOB_INFO. This assignment happens at the runtime.
      data: lo_api_controller          type ref to if_wd_component,
            lo_pers_manager            type ref to if_wd_personalization,
            ls_configuration           type wdy_config_key,
            lt_config_table            type wdy_config_table,
            ls_config_header           type wdy_config_header,
            lo_fpm                     type fpm_s_runtime_info,
            ls_fpm                     type fpm_s_runtime_info.
          lo_api_controller = wd_comp_controller->wd_get_api( ).
         lo_pers_manager = lo_api_controller->get_personalization_manager( ).
         lo_fpm = wd_comp_controller->go_fpm->get_runtime_info( ).
        ls_configuration-config_id    = u2018ZERU_REG_REQ_MGMT_UIu2019 u201C Your Component configuration name
        lo_pers_manager->load_config_by_key( ls_configuration ).
       Thanks,
       S Rajkumar.
    Edited by: Rajkumar S on Aug 24, 2010 7:54 AM

  • EP5.0 Custom .par File Does Not Work in EP6.0 SP2

    I have a .par file called CustomerSearch.par that is used in EP5.0, and I am now trying to get this .par file to work in EP6.0 SP2.  I noticed the directory structure changes, so my .par structure is this:
    CustomerSearch.par
    -->  portal-inf
    portalapp.xml
    lib
    CustomerSearch.jar
    TableViewExample.class
    pagelet
    TableView.jsp
    I am getting the following error in the portal console logs when I try to access the component after I have uploaded the CustomerSearch.par file.  Does anyone have any suggestions?
    Error Message
    Jan 26, 2005 4:23:50 PM # Client_Thread_34 Fatal Exception ID:04:23_26/01/05_0019
    com.sapportals.portal.prt.component.PortalComponentException: Error in service call of Resource
    Component : CustomerSearch.TableViewExample
    Component class : TableViewExample
    User : testUser
    at com.sapportals.portal.prt.core.PortalRequestManager.handlePortalComponentException(PortalRequestManager.java:858)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:389)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:462)
    at com.sapportals.portal.prt.component.AbstractComponentResponse.include(AbstractComponentResponse.java:88)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:226)
    at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
    at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:109)
    at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:135)
    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:300)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:190)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:209)
    at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:576)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:300)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:190)
    at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:669)
    at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:208)
    at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:149)
    at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:833)
    at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:665)
    at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:312)
    at com.inqmy.services.httpserver.server.Response.handle(Response.java:173)
    at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1229)
    at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
    at com.inqmy.core.cluster.impl5.ParserRunner.run(ParserRunner.java:55)
    at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:148)
    Caused by: com.sapportals.portal.prt.component.PortalComponentException: PortalComponentException
    at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:123)
    at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:224)
    at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:86)
    at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:338)
    at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:817)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:385)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:462)
    at com.sapportals.portal.prt.component.AbstractComponentResponse.include(AbstractComponentResponse.java:88)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:226)
    at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
    at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:109)
    at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:135)
    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:300)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:190)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:209)
    at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:576)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:300)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:190)
    at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:669)
    at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:208)
    at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:149)
    at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:833)
    at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:665)
    at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:312)
    at com.inqmy.services.httpserver.server.Response.handle(Response.java:173)
    at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1229)
    at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
    at com.inqmy.core.cluster.impl5.ParserRunner.run(ParserRunner.java:55)
    at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:148)
    Caused by: com.sapportals.portal.prt.servlets_jsp.server.compiler.CompilingException: D:/usr/sap/EPD1/j2ee/j2ee_22/cluster/server/services/servlet_jsp/work/jspTemp/irj/root/WEB-INF/portal/portalapps/CustomerSearch/work/pagelet/_sapportalsjsp_TableView.java:39: cannot resolve symbol
    symbol : class MyBean
    location: package TableViewExample
    TableViewExample.MyBean myBeanName = null;
    ^
    D:/usr/sap/EPD1/j2ee/j2ee_22/cluster/server/services/servlet_jsp/work/jspTemp/irj/root/WEB-INF/portal/portalapps/CustomerSearch/work/pagelet/_sapportalsjsp_TableView.java:41: cannot resolve symbol
    symbol : class MyBean
    location: package TableViewExample
    myBeanName = (TableViewExample.MyBean)pageContext.getAttribute("myBeanName", PageContext.APPLICATION_SCOPE);
    ^
    D:/usr/sap/EPD1/j2ee/j2ee_22/cluster/server/services/servlet_jsp/work/jspTemp/irj/root/WEB-INF/portal/portalapps/CustomerSearch/work/pagelet/_sapportalsjsp_TableView.java:45: cannot resolve symbol
    symbol : class MyBean
    location: package TableViewExample
    myBeanName = (TableViewExample.MyBean) Beans.instantiate(this.getClass().getClassLoader(), "TableViewExample.MyBean");
    ^
    3 errors
    at com.sapportals.portal.prt.servlets_jsp.server.compiler.JavaCompiler.compileExternal(JavaCompiler.java:439)
    at com.sapportals.portal.prt.servlets_jsp.server.compiler.JavaCompiler.compile(JavaCompiler.java:539)
    at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPParser.parse(JSPParser.java:2140)
    at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.compile(JSPCompiler.java:76)
    at com.sapportals.portal.prt.servlets_jsp.server.jsp.JSPCompiler.run(JSPCompiler.java:118)
    at com.sapportals.portal.prt.core.broker.JSPComponentItem.compileJSP(JSPComponentItem.java:224)
    at com.sapportals.portal.prt.core.broker.JSPComponentItem.getComponentInstance(JSPComponentItem.java:86)
    at com.sapportals.portal.prt.core.broker.PortalComponentItemFacade.service(PortalComponentItemFacade.java:338)
    at com.sapportals.portal.prt.core.broker.PortalComponentItem.service(PortalComponentItem.java:817)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:385)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:462)
    at com.sapportals.portal.prt.component.AbstractComponentResponse.include(AbstractComponentResponse.java:88)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:226)
    at com.sapportals.portal.htmlb.page.JSPDynPage.doOutput(JSPDynPage.java:76)
    at com.sapportals.htmlb.page.PageProcessor.handleRequest(PageProcessor.java:109)
    at com.sapportals.portal.htmlb.page.PageProcessorComponent.doContent(PageProcessorComponent.java:135)
    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:300)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:190)
    at com.sapportals.portal.prt.component.PortalComponentResponse.include(PortalComponentResponse.java:209)
    at com.sapportals.portal.prt.pom.PortalNode.service(PortalNode.java:576)
    at com.sapportals.portal.prt.core.PortalRequestManager.callPortalComponent(PortalRequestManager.java:300)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:138)
    at com.sapportals.portal.prt.core.PortalRequestManager.dispatchRequest(PortalRequestManager.java:190)
    at com.sapportals.portal.prt.core.PortalRequestManager.runRequestCycle(PortalRequestManager.java:669)
    at com.sapportals.portal.prt.connection.ServletConnection.handleRequest(ServletConnection.java:208)
    at com.sapportals.portal.prt.dispatcher.Dispatcher$doService.run(Dispatcher.java:532)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.sapportals.portal.prt.dispatcher.Dispatcher.service(Dispatcher.java:415)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.InvokerServlet.service(InvokerServlet.java:126)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
    at com.inqmy.services.servlets_jsp.server.RunServlet.runSerlvet(RunServlet.java:149)
    at com.inqmy.services.servlets_jsp.server.ServletsAndJspImpl.startServlet(ServletsAndJspImpl.java:833)
    at com.inqmy.services.httpserver.server.RequestAnalizer.checkFilename(RequestAnalizer.java:665)
    at com.inqmy.services.httpserver.server.RequestAnalizer.handle(RequestAnalizer.java:312)
    at com.inqmy.services.httpserver.server.Response.handle(Response.java:173)
    at com.inqmy.services.httpserver.server.HttpServerFrame.request(HttpServerFrame.java:1229)
    at com.inqmy.core.service.context.container.session.ApplicationSessionMessageListener.process(ApplicationSessionMessageListener.java:36)
    at com.inqmy.core.cluster.impl5.ParserRunner.run(ParserRunner.java:55)
    at com.inqmy.core.thread.impl0.ActionObject.run(ActionObject.java:46)
    at java.security.AccessController.doPrivileged(Native Method)
    at com.inqmy.core.thread.impl0.SingleThread.run(SingleThread.java:148)
    [email protected]7 #
    TableViewExample.java Code
    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.ResultSetMetaData;
    import java.sql.SQLException;
    import java.sql.Statement;
    import java.util.Vector;
    import com.sapportals.htmlb.InputField;
    import com.sapportals.htmlb.event.Event;
    import com.sapportals.htmlb.event.TableNavigationEvent;
    import com.sapportals.htmlb.page.DynPage;
    import com.sapportals.htmlb.page.PageException;
    import com.sapportals.htmlb.table.DefaultTableViewModel;
    import com.sapportals.htmlb.table.TableView;
    import com.sapportals.htmlb.table.TableViewModel;
    import com.sapportals.portal.htmlb.page.JSPDynPage;
    import com.sapportals.portal.htmlb.page.PageProcessorComponent;
    import com.sapportals.portal.prt.component.*;
    public class TableViewExample extends PageProcessorComponent
         /* (non-Javadoc)
    @see com.sapportals.portal.htmlb.page.PageProcessorComponent#getPage()
         public DynPage getPage()
              return new MyDynPage();
         public class MyDynPage extends JSPDynPage
              //variables
              private int visibleRow = 1;
              public String search;
              public String state = "0";
              MyBean myBean;
              /* (non-Javadoc)
    @see com.sapportals.htmlb.page.DynPage#doInitialization()
              //Get Context and Initialize Bean
              public void doInitialization() throws PageException
                   IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
                   IPortalComponentContext myContext = request.getComponentContext();
                   IPortalComponentProfile myProfile = myContext.getProfile();
                   IPortalComponentProfile userProfile = request.getComponentContext().getProfile();
                   MyBean myBean = new MyBean();
                   myBean.setText("");
                   myProfile.putValue("myBeanName", myBean);
              /* (non-Javadoc)
    @see com.sapportals.htmlb.page.DynPage#doProcessAfterInput()
               //Called Directly After The Data Was Submitted
              public void doProcessAfterInput() throws PageException
                   //Get the Bean Object
                   IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
                   IPortalComponentContext context = request.getComponentContext();
                   IPortalComponentProfile profile = context.getProfile();
                   //Get the Account Info Input Field
                   InputField myInputField = (InputField) getComponentByName("account_input");
                   if( myInputField != null )
                        search = myInputField.getValueAsDataType().toString();
                   myBean = (MyBean) profile.getValue("myBeanName");
                   myBean.setAccount(search);
                   myBean.MyBeanModel();
                   state = myBean.state;
                   if( state == "1" )
                        //get the selected row / rows
                        //get the tableView by getComponentByName
                        TableView table = (TableView) this.getComponentByName("myTableView");
                        //Get the first visible row
                        int firstVisibleRow = table.getVisibleFirstRow();
                        //Get the last visible row
                        int lastVisibleRow = table.getVisibleLastRow();
                        //which of the visible rows was selected
                        StringBuffer strBuff = new StringBuffer();
                        for( int i = firstVisibleRow; i <= lastVisibleRow; i++ )
                             if( table.isRowSelected(i) )
                                  strBuff.append("Row: " + i + " : ");
              /* (non-Javadoc)
    @see com.sapportals.htmlb.page.DynPage#doProcessBeforeOutput()
              //Called Directly Before Output - Last Called Function
              public void doProcessBeforeOutput() throws PageException
                   //set the jsp to load
                   this.setJspName("TableView.jsp");
              //Called If The Navigation Event Was Send
              //The JSP has set the navigation mode byline so the user can navigate
              //line by line, page up and down, first and last entry
              public void onNavigation(Event event)
                   if( state == "1" )
                        //Navigation - get the event to recover the actual position
                        TableNavigationEvent tne = (TableNavigationEvent) event;
                        //With the event the method getFirstVariableRowAfter() can be used
                        //which gives the acutal position (after the event)
                        this.visibleRow = tne.getFirstVisibleRowAfter();
                        if( myBean != null )
                             //just for the first time, when there is no bean
                             //set the new visibleRow
                             myBean.setVisibleRow(new Integer(this.visibleRow).toString());
              public void onSendButtonClicked(Event event) throws PageException
                   IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
                   IPortalComponentContext context = request.getComponentContext();
                   IPortalComponentProfile myProfile = context.getProfile();
                   IPortalComponentProfile userProfile = request.getComponentContext().getProfile();
                   myBean = (MyBean) myProfile.getValue("myBeanName");
                   state = "1";
                   myBean.setState("1");
                   myProfile.putValue("myBeanName", myBean);
         public class MyBean
              //Properties
              public DefaultTableViewModel model;
              private String visibleRow = "1";
              private String text;
              private String account;
              private String state = "0";
              private String searchType;
              //get/set account
              public void setAccount(String account)
                   this.account = account;
              public String getAccount()
                   return this.account;
              //get/set state
              public void setState(String state)
                   this.state = state;
              public String getState()
                   return this.state;
              //get/set model
              public void setModel(DefaultTableViewModel model)
                   this.model = model;
              public TableViewModel getModel()
                   return this.model;
              //get/set Text for status messages
              public void setText(String text)
                   this.text = text;
              public String getText()
                   return this.text;
              //get/set VisibleRow for tableView
              public void setVisibleRow(String visibleRow)
                   this.visibleRow = visibleRow;
              public String getVisibleRow()
                   return this.visibleRow;
              //get/set SearchType
              public void setSearchType(String searchType)
                   this.searchType = searchType;
              public String getSearchType()
                   return this.searchType;
              //Create Table View Model
              public void MyBeanModel()
                   model = this.createNewTable(model);
                   //Set Table Text
                   if( model.getRowCount() > 0 )
                        this.setText("Customer Information Found For: " + this.getSearchType());
                   else
                        this.setText("No Records Found For Account: " + this.getAccount());
              //Create Data For A DefaultTableViewModel By Using Vector
              private DefaultTableViewModel createNewTable(DefaultTableViewModel model)
                   //Get a vector with a filled up data array
                   Vector data = null;
                   try
                        data = doGet();     
                   catch( ClassNotFoundException e )
                        e.printStackTrace();
                   //Get a new vector for the titles
                   Vector colName = new Vector();
                   colName.addElement("NUMBER");
                   colName.addElement("CUSTOMER NAME");
                   colName.addElement("PHONE");
                   colName.addElement("STREET");
                   colName.addElement("CITY");
                   colName.addElement("STATE");
                   colName.addElement("ZIP");
                   model = new DefaultTableViewModel(data, colName);
                   return model;
              //Method will execute SQL string with search parameter on the database
              public Vector doGet() throws ClassNotFoundException
                   Statement stmt = null;
                   Vector myVector = new Vector();
                   try
                        //Load the sun jdbc-odbc bridge driver
                        DriverManager.registerDriver (new oracle.jdbc.OracleDriver());
                        String dbUrl = "jdbc:oracle:oci8:@testX003";
                        Connection con = DriverManager.getConnection(dbUrl, "test", "test");
                        //Create a statement to submit SQL statements to the driver
                        stmt = con.createStatement();
                        String query = "select PAYER_NUM, PAYER_CUST_NAME, PAYER_PHONE_NUM_1 " +
                                          "PAYER_STR_ADDR, PAYER_CITY_NAME, PAYER_ST_ABBR, PAYER_ZIP_CD " +
                                          "from CUST_PAYER where PAYER_NUM = " + this.getAccount() + "";
                        this.setSearchType("Payer Search");
                        ResultSet rs;
                        rs = stmt.executeQuery(query);
                        ResultSetMetaData rsmd = rs.getMetaData();
                        //Get number of columns
                        int numCols = rsmd.getColumnCount();
                        if( numCols == 0 )
                             query = "select SLDTO_NUM, SLDTO_CUST_NAME, SLDTO_PHONE_NUM_1 " +
                                       "SLDTO_STR_ADDR, SLDTO_CITY_NAME, SLDTO_ST_ABBR, SLDTO_ZIP_CD " +
                                       "from CUST_PAYER where SLDTO_NUM = " + this.getAccount() + "";
                             this.setSearchType("SoldTo Search");
                             rs = stmt.executeQuery(query);
                        myVector = createData(rs);
                        //Close ResultSet
                        rs.close();
                        //Close Statement
                        stmt.close();
                        //Close Connection
                        con.close();
                   catch( SQLException ex)
                        this.account = ex.getMessage();
                   return myVector;
              //This method pulls the database selection results and places them into vectors
              private Vector createData(ResultSet res) throws SQLException
                   //Get the metadata infro
                   ResultSetMetaData rsmd = res.getMetaData();
                   //Get number of columns
                   int numCols = rsmd.getColumnCount();
                   String checkVal;
                   //Loop through the result set and load rows of data into Vector
                   Vector dataVec = new Vector();
                   Vector retVector = new Vector();
                   int k = 0;
                   while( res.next() )
                        k++;
                        for( int i = 1; i

    Hi Bernhard,
    nice to hear that we resolve the problem
    > Karstens answer solved my base problem,
    > Detlevs answer lead into the right direction.
    Not that I've that need for points...
    It's just the question why my answer (if you follow the link, my answer was: delete two lines, from which one is essential to be deleted) only "lead into the right direction"... In fact, it solved the base problem, I would claim for me
    To give the technical background: If your write
    <property name="ComponentType" value="jspnative"/>
    the portal runtime expects a component consisting of a native JSP; the second directive -
    <property name="JSP" value="pagelet/InitialPage.jsp"/>
    - for this case tells where to find this JSP. So if you delete the first line, <i>at least</i> the second line has no sense anymore. To clean up such a portalapp.xml, it just makes sense also to delete the second line.
    Best regards
    Detlev

  • Deploy PAR from Ep5 to EP6 problem

    Hi ,
    I am now using EP6 and i need to deploy a PAR file ( generated in EP5) into the portal using ( System administrator /support / portal runtime / Admin console ..) to upload it into PCD , the upload was processed successfully [ but i see that in the list  :
    <i> Server ID      Local version Repository version  
    P1  4206950 <b> undefined  undefined</b>  ( while others : 5.0.5.4 )</i>And then in the content management when i want to create a new iview from PAR file , i can not see it in the list ( P1.PAR ) that i have just deployed ....till now i am very confused about it , anyone can help me to deploy it ( I need it urgently right )
    Thanks ,
                   Qui nguyen

    Hi vankat ,
    First i'd like to thank so musch for your answer , i've done like that i saw it in the PCD but when i preview it the following errors occur:
      Portal Runtime Error
    <i>An exception occurred while processing a request for :
    iView : N/A
    Component Name : N/A
    Could not find portal application .
    Exception id: 01:05_26/12/06_0034_4206950
    See the details for the exception ID in the log file</i>
    And
      <i>Portal Runtime Error
    An exception occurred while processing a request for :
    iView : pcd:portal_content/Development..............g.dev_iview
    Component Name : null
    Page could not create the iView.
    See the details for the exception ID in the log file</i>
    What are the above lines mean and how to recover it ? and if i want to look for the log file where i can find it in the server ?
    Thanks ,

  • SSO to SAP EP6 (for Employee Self Service) using WebSEAL

    Hi SDN friends,
    We are about to embark on a SSO implementation using IBM WebSEAL for SAP EP6 ESS (Employee Self Service) connecting through to an SAP R/3 4.7 server.  Since the ESS solution for 4.7 still uses ITS services, this means that we have ITS iViews in the EP6 portal.
    We have managed to look through the whitepaper 'IBM Tivoli Access Manager - Single Sign On for SAP NetWeaver - September 2005' described at https://www.sdn.sap.com/irj/sdn/developerareas/ibm
    We have the following queries, if anybody has a simple answer to these:
    -  Is it absolutely necessary to configure an SNC connection between ITS/EP6 and R/3 server to achieve SSO for the portal?
    -  Given that SAP EP6 references ITS IAC iviews, is it necessary for us to configure both ITS and EP6 for SSO, or can we simply configure EP6 for SSO?  If so, is it also necessary to configure both for SSL?
    -  Otherwise, how easy is it to set up SSO in this scenario without SSL (for demo purposes)?
    Any thoughts would be greatly appreciated.
    Cheers
    John Moy

    Hello John,
    regarding your questions:
    ad 1) no. SNC is only mandatory if you use X.509-based SSO to R/3. You can also use SAP logon ticket-based SSO from EP to R/3 or usermapping that do both not require SNC.
    ad 2) yes, you have to configure both EP and ITS at WebSeal.
    ad 3) you can always omit SSL. However for production use, it is recommended.
    Regards
    Michael

  • Cannot get ITS SSO to work with EP6 Sp15

    I am having problems with SSO from EP6 to ITS (my EP5 to the same ITS works great).
    This is what I have done.....
    It is a R3 4.6C system so I wondered if any patches were needed....however I have got SSO working with the SAP Win GUI - so this tells me that the R3 system and the imported verify.der certificate is OK.
    The connection test for ITS works - so this tells me the parameters in the System are correct.
    The parameter mysapcomusesso2cookie is set to 1 - and this is the same ITS system that is used for SSO between the EP5 portal and R3....and it works in this case.
    I have set only the following parameters in the System:
    ITS Description = Test1
    ITS Host Name = myportal.com:91
    ITS Path= /scripts/wgate
    ITS Protoco = http
    Logon Method = LOGONTICKETS
    Anything else I may be missing?
    Thanks
    Patrick

    Hi
    What mean "FQDN"?
    I must 'dots' in my address..?
    Bogdan

  • Install EP6 with XI 3.0 on the same WAS

    Hello,
    I've installed EP6 on the same Web AS that XI 3.0 is installed.
    I would like to know if it is ok to install EP6 that way ? can I connect EP6 to R/3 systems while it is installed that way ?
    Please Advice,
    Dimitry Haritonov

    Hello John,
    Finally I understood what was my problem.
    During the installation Web AS 6.40 (ABAP+JAVA) for XI 3.0, you choose a specific UME option that is suitable only for XI : "Use central ABAP system for users and groups".
    If you install EP6 on the same Web AS you won't be able to connect your portal to LDAP. In other words you won't be able to change data source (Portal->system Administration->System configuration->UM configuration->Data Sources ).
    note number : 718383
    I'd be glad if someone will add another info on the subject.
    Regards,
    Dimitry Haritonov
    Message was edited by: Dimitry Haritonov

  • CP and BP is not being created in E-Recruitment after PFAL

    Dear Experts,
    I need your valuable insight into the below issue:
    We are implementing SAP E-Recruitment in our company and we have a stand alone system for e-rec, i.e. I2-B scenario. Release 604. 
    We defined the process model, filter groups as described in note and many threads here. We are able to transfer (distribute) objects O, S, C, Q and QK using PFAL. When I am trying to distribute object P (IT0000, 0001, 0002, 0006, 0009, 0105 and 1001), object P is getting created with PA infotypes but system does not create the CP, BP and NA objects in E-Rec. My understanding after reading the documentation and some threads on SCN is that system should create these objects (CP, BP and NA) on distributing Object P from ECC.
    Do we need to Run the HRALXSYNC program in E-Recruitment to create these objects? We thought of running this program as well but the Employee Check box in the selection screen of the program is disabled. Even after implementing BADI  HRALX_HRALXSYNC_BADI it remains disabled.
    Any sort of help would be greatly appreciated...
    Kind Regards
    Syed Aijaz

    Dear Salil,
    Thank you for the quick response.
    I had considered maintaing the number ranges for CP in E-Recruitment, but had two concerns/doubts about it:
    1. We have already generated CP in ECC for all Persons and the numbers are taken from an internal range Subgroup ($$$$) and CPs have their own IDs starting with 5XXXXXXX. Now if I maintain a number range in E-Rec, different from this, would that be an issue? I understand that we need to have the same CP ID in both the systems (ECC and E-Rec). Kindly clarify.
    2. We have not maintained any number ranges for other objects (O, S, C, Q, & QK) in E-Rec system. But system has created these objects in E-Recruitment on running PFAL.
    Currently we are doing all these settngs in Sandbox system only.
    Kindly advise....
    Thanks
    Edited by: meetaijaz on Feb 1, 2012 9:38 AM

  • 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&gt;Preferences&gt;Java&gt;Code Generation&gt;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

  • Function Modules and non-PI services to create a front-end to E-Recruiting

    I have looked quite a bit throughout the forums and via Google and am having a hard time answering this question.  I'm positive I'm not the first to ask this.  Anyway, our business users are not too keen on the look and feel of the WebDynpros or BSP's that are available via the E-Recruiting system.  They would like to really change the look and feel of the application.  Is there any document discussing how to change the look and feel of the External Facing job board and application process?  I have not been able to find a cookbook or anything related to this. I could dig through a bunch of code and work my way back, but their has to be a better way. 
    I'm looking for either a how-to guide that discusses to what extent the look and feel of the screen can change and/or what are the services/function modules that are being used for the external candidate (create candidate, list jobs, show job details, apply for jobs, etc.). Any thoughts would be appreciated.
    Thanks.

    am not a techie so cannot answer your question in earnst but I know exactly how youfel about e-rec looka nd feel so adding my two pence:
    1. when discussing e-rec it is imp to mentione the version below version 6 it was bsp 6 onwardsit is webdynpro.
    2. before we discuss code changes, what is the extent of 'look and feel' change your clientwants? can that be addresed via the portal-theme by way of developing a flashy new css based theme? thatmakes life easy for everybody involved and also makes the entire nw portal flasy not just the outward facing job portal...  at a comparitively low cost...
    3. If the answer to abovepoint is a 'no' I guess the only option is to go-a-code-dredging,..
    good luck.

  • Recruitment - Applicant attachments to be transferred to PA

    Dear Experts,
    Im able to transfer Applicant data from recruitment to PA and EMployee ID is generated along with Infotypes updation.
    Now my query is Is there any option to transfer Applicants attachments also along with Applicants data transfer to PA in recruirment module??
    If so where to do settings.
    Thanks
    Ravi

    Hi,
    In SAP each module is a stand alone module.
    PBA7  and PBA8 are used for transferring of data from RC to PA.
    If you want to transfer any data from one module to other module is possible by using data carrier instruments with technical people help.
    Thanks,
    Venu

  • Follow-up Activities in Recruitment...

    Hi Experts,
    I have a query regarding 'Recruitment-PB60'. When I try to do 'Follow-up Activities', it is not working & giving me an error- 'Activity
    type 007 not maintained (Choose another Entry) & likewise Activity Type 018 & 016 not ..............'
    How would it be sorted out? Kindly explain.
    Thanks & Regards,
    Geeta Chaudhary.

    Hi,
    If you are hiring the applicant after completing  the Bulk processing PBA3.
    1. In PB60 you first select the Hire date from the planned activities and click on  Follow-up activities then from the pop p screen tick the completed activity as interview inv.
    In the next pop up complete activity select the activity type 016 interim reply.
    2. Next again select the hire date from the planned activity and go to edit and select created completed activity and select the activity type 014 Hiring date.
    Try to execute this and see.

Maybe you are looking for

  • Thnkpad T61 w port replicator - Video won't extend to external monitor

    Okay, I pressed what I thought was a ctrl-alt-del combo on my laptop and but obviously it wasn't as now my video, while fine on the laptop, will not extend to the replicator's attached video.  I've restarted the machine, cold started it, unplugged fr

  • How to shorting a song in itunes

    I am trying to create a animoto video and I need to shorten the minutes of a song in itunes.  How can I perminately shorten the time so the music file from itunes will be less than 4 MB? Thanks

  • Annoying issue with Logger

    When I tell my FileHandler to append to an existing XML log file, it adds the follow two lines to the log file every time: <?xml version="1.0" encoding="windows-1252" standalone="no"?> <!DOCTYPE log SYSTEM "logger.dtd"> This means that, if I have had

  • EXC_CRASH (SIGABRT)

    Can anyone decipher enough of this to help figure out why this app is bombing out? Process:         abm [62569] Path:            /Library/McAfee/*/abm Identifier:      abm Version:         ??? Code Type:       X86 (Native) Parent Process:  sudo [6256

  • Starting Aperture on a new comuter

    Hi ! I have restored my configuration from Time Machine onto a new iMac following the death of my MacBook. Aperture is prompting me for the serial number of my installation CD. I can't find the original package. Is there a way to retrieve it or by-pa