Hi.
We made a portal component with DynPageWithJSP model and this program subscribe event from other iview.
Other iview trigger event and store Data using data bag.
When event trggered my portal component, load data and I wan to process with this data in PAI routine.
So, Here is JSP file.
<%@ taglib uri="tagLib" prefix="hbj" %>
<jsp:useBean id="SalesOrderBean" scope="application" class="com.sap.training.portal.SalesOrderBean" />
<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');
alert(Cust_No + " " + 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>
<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>
Above code, I checked portal compoent load data when event trigger. (in statement : alert(Cust_No + " " + Sales_Org);)
After then, I try to access that data using 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 can't acess it.
Is there any problem ?
Welcome to any comment.
Regards, Arnold