Hi,
I have written an iView that receives an event using EPCF and extracts data from the client data bag.
I need this iView to pass the data back from the jsp page to the java code.
I am trying to do this using a hidden input field, but I cannot get the code to work.
Here is the code on the jsp page.
<%@ taglib uri="tagLib" prefix="hbj" %>
<jsp:useBean id="SalesOrderBean" scope="application" class="com.sap.training.portal.SalesOrderBean" />
<hbj:content id="myContext" >
<hbj:page title="PageTitle">
<hbj:form id="myFormId">
<hbj:inputField id="Cust_No" type="string" maxlength="20" value="" jsObjectNeeded="true" >
<% Cust_No.setVisible(false);%>
</hbj:inputField>
<hbj:inputField id="Sales_Org" type="string" maxlength="20" value="" jsObjectNeeded="true" >
<% Sales_Org.setVisible(false);%>
</hbj:inputField>
<hbj:textView id="welcome">
<% welcome.setText("Hello, " + SalesOrderBean.getCust_No() + " from " + SalesOrderBean.getSales_Org()); %>
</hbj:textView>
</hbj:form>
</hbj:page>
</hbj:content>
<script>
function eventFired () {
var Cust_No = EPCM.loadClientData('urn:com.sap.training.portal','Cust_No');
var Sales_Org = EPCM.loadClientData('urn:com.sap.training.portal','Sales_Org');
var funcName = htmlb_formid + "_getHtmlbElementId";
func = window[funcName];
var ipField1 = eval(func("Cust_No"));
ipField1.setValue(Cust_No);
var ipField2 = eval(func("Sales_Org"));
ipField2.setValue(Sales_Org);
var form = document.all(htmlb_formid);
form.submit();
}
EPCM.subscribeEvent('urn:com.sap.training.portal',
'SalesOrder',
eventFired);
</script>
In my Java PAI event I have the following code.
public void doProcessAfterInput() throws PageException {
InputField myInputField1 = (InputField) getComponentByName("Cust_No");
if (myInputField1 != null) {
this.Cust_No = myInputField1.getValueAsDataType().toString();
}
InputField myInputField2 = (InputField) getComponentByName("Sales_Org");
if (myInputField2 != null) {
this.Sales_Org = myInputField2.getValueAsDataType().toString();
}
IPortalComponentRequest request = (IPortalComponentRequest) this.getRequest();
IPortalComponentContext myContext = request.getComponentContext();
SalesOrderBean myNameContainer = (SalesOrderBean) myContext.getValue("SalesOrderBean");
myNameContainer.setCust_No(Cust_No);
myNameContainer.setSales_Org(Sales_Org);
}
I always get null from "myNameContainer.getSales_Org".
Any ideas ?
Regrard, Arnold.